@owp/core 2.5.4 → 2.5.6
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/configs/theme.d.ts +3 -0
- package/configs/theme.js +1 -0
- package/dist/_virtual/index11.js +2 -2
- package/dist/_virtual/index13.js +2 -2
- package/dist/_virtual/index14.js +2 -2
- package/dist/_virtual/index15.js +2 -2
- package/dist/_virtual/index16.js +4 -4
- package/dist/_virtual/index17.js +4 -4
- package/dist/_virtual/index18.js +4 -4
- package/dist/_virtual/index19.js +4 -4
- package/dist/components/OwpPageSkeleton/OwpPageSkeleton.js +4 -4
- package/dist/components/OwpTable/OwpDataTable.js +293 -327
- package/dist/components/OwpTable/OwpDataTable.js.map +1 -1
- package/dist/components/OwpTable/OwpTable.js +102 -117
- package/dist/components/OwpTable/OwpTable.js.map +1 -1
- package/dist/components/OwpTable/internal/defaultTableStyle.js +50 -0
- package/dist/components/OwpTable/internal/defaultTableStyle.js.map +1 -0
- package/dist/components/OwpTreeGrid/OwpTreeGrid.js +47 -45
- package/dist/components/OwpTreeGrid/OwpTreeGrid.js.map +1 -1
- package/dist/components/OwpTreeGrid/internal/treeGridRuntime.js +179 -161
- package/dist/components/OwpTreeGrid/internal/treeGridRuntime.js.map +1 -1
- package/dist/configs/defaultConfig.js +1 -1
- package/dist/configs/theme.js +28 -0
- package/dist/configs/theme.js.map +1 -0
- package/dist/contexts/OwpAppProvider.js.map +1 -1
- package/dist/features/themePreview/components/ThemePreviewCanvas.js +492 -0
- package/dist/features/themePreview/components/ThemePreviewCanvas.js.map +1 -0
- package/dist/features/themePreview/components/ThemePreviewCanvasSections.js +678 -0
- package/dist/features/themePreview/components/ThemePreviewCanvasSections.js.map +1 -0
- package/dist/features/themePreview/components/ThemePreviewColorField.js +372 -0
- package/dist/features/themePreview/components/ThemePreviewColorField.js.map +1 -0
- package/dist/features/themePreview/components/ThemePreviewControls.js +306 -0
- package/dist/features/themePreview/components/ThemePreviewControls.js.map +1 -0
- package/dist/features/themePreview/components/themePreviewCanvas.icons.js +17 -0
- package/dist/features/themePreview/components/themePreviewCanvas.icons.js.map +1 -0
- package/dist/features/themePreview/components/themePreviewCanvas.shared.js +296 -0
- package/dist/features/themePreview/components/themePreviewCanvas.shared.js.map +1 -0
- package/dist/features/themePreview/configs/grid.js +45 -0
- package/dist/features/themePreview/configs/grid.js.map +1 -0
- package/dist/features/themePreview/configs/presets.js +1074 -0
- package/dist/features/themePreview/configs/presets.js.map +1 -0
- package/dist/features/themePreview/configs/previewStorage.js +94 -0
- package/dist/features/themePreview/configs/previewStorage.js.map +1 -0
- package/dist/features/themePreview/configs/settings.js +148 -0
- package/dist/features/themePreview/configs/settings.js.map +1 -0
- package/dist/features/themePreview/configs/snackbar.js +39 -0
- package/dist/features/themePreview/configs/snackbar.js.map +1 -0
- package/dist/features/themePreview/configs/surface.js +10 -0
- package/dist/features/themePreview/configs/surface.js.map +1 -0
- package/dist/features/themePreview/configs/table.js +30 -0
- package/dist/features/themePreview/configs/table.js.map +1 -0
- package/dist/features/themePreview/defs/ThemePreviewGridDef.xml.js +43 -0
- package/dist/features/themePreview/defs/ThemePreviewGridDef.xml.js.map +1 -0
- package/dist/features/themePreview/defs/ThemePreviewReadonlyGridDef.xml.js +43 -0
- package/dist/features/themePreview/defs/ThemePreviewReadonlyGridDef.xml.js.map +1 -0
- package/dist/features/themePreview/dialogs/ThemePreviewDialog.js +441 -0
- package/dist/features/themePreview/dialogs/ThemePreviewDialog.js.map +1 -0
- package/dist/features/themePreview/hooks/useThemePreview.js +280 -0
- package/dist/features/themePreview/hooks/useThemePreview.js.map +1 -0
- package/dist/features/themePreview/utils/color.js +79 -0
- package/dist/features/themePreview/utils/color.js.map +1 -0
- package/dist/features/themePreview/utils/themePreviewDefinitions.js +526 -0
- package/dist/features/themePreview/utils/themePreviewDefinitions.js.map +1 -0
- package/dist/features/themePreview/utils/themePreviewExport.js +320 -0
- package/dist/features/themePreview/utils/themePreviewExport.js.map +1 -0
- package/dist/features/themePreview/utils/themePreviewSettings.js +211 -0
- package/dist/features/themePreview/utils/themePreviewSettings.js.map +1 -0
- package/dist/features/themePreview.js +75 -0
- package/dist/features/themePreview.js.map +1 -0
- package/dist/layout/components/logo/Logo.js +49 -45
- package/dist/layout/components/logo/Logo.js.map +1 -1
- package/dist/layout/components/toggles/NavigationSearchToggle.js +3 -3
- package/dist/layout/components/toggles/ThemePreviewToggle.js +51 -0
- package/dist/layout/components/toggles/ThemePreviewToggle.js.map +1 -0
- package/dist/layout/components/toolbar/ToolbarLayout.js +8 -6
- package/dist/layout/components/toolbar/ToolbarLayout.js.map +1 -1
- package/dist/node_modules/.pnpm/@mui_icons-material@7.3.9_@mui_material@7.3.9_@emotion_react@11.14.0_@types_react@19.2._dc2be6bc014bebdac88a574e3e02c144/node_modules/@mui/icons-material/esm/CheckCircleOutline.js +9 -0
- package/dist/node_modules/.pnpm/@mui_icons-material@7.3.9_@mui_material@7.3.9_@emotion_react@11.14.0_@types_react@19.2._dc2be6bc014bebdac88a574e3e02c144/node_modules/@mui/icons-material/esm/CheckCircleOutline.js.map +1 -0
- package/dist/node_modules/.pnpm/@mui_icons-material@7.3.9_@mui_material@7.3.9_@emotion_react@11.14.0_@types_react@19.2._dc2be6bc014bebdac88a574e3e02c144/node_modules/@mui/icons-material/esm/DownloadOutlined.js +9 -0
- package/dist/node_modules/.pnpm/@mui_icons-material@7.3.9_@mui_material@7.3.9_@emotion_react@11.14.0_@types_react@19.2._dc2be6bc014bebdac88a574e3e02c144/node_modules/@mui/icons-material/esm/DownloadOutlined.js.map +1 -0
- package/dist/node_modules/.pnpm/@mui_icons-material@7.3.9_@mui_material@7.3.9_@emotion_react@11.14.0_@types_react@19.2._dc2be6bc014bebdac88a574e3e02c144/node_modules/@mui/icons-material/esm/ErrorOutline.js +9 -0
- package/dist/node_modules/.pnpm/@mui_icons-material@7.3.9_@mui_material@7.3.9_@emotion_react@11.14.0_@types_react@19.2._dc2be6bc014bebdac88a574e3e02c144/node_modules/@mui/icons-material/esm/ErrorOutline.js.map +1 -0
- package/dist/node_modules/.pnpm/@mui_icons-material@7.3.9_@mui_material@7.3.9_@emotion_react@11.14.0_@types_react@19.2._dc2be6bc014bebdac88a574e3e02c144/node_modules/@mui/icons-material/esm/InfoOutlined.js +9 -0
- package/dist/node_modules/.pnpm/@mui_icons-material@7.3.9_@mui_material@7.3.9_@emotion_react@11.14.0_@types_react@19.2._dc2be6bc014bebdac88a574e3e02c144/node_modules/@mui/icons-material/esm/InfoOutlined.js.map +1 -0
- package/dist/node_modules/.pnpm/@mui_icons-material@7.3.9_@mui_material@7.3.9_@emotion_react@11.14.0_@types_react@19.2._dc2be6bc014bebdac88a574e3e02c144/node_modules/@mui/icons-material/esm/KeyboardArrowUpRounded.js +9 -0
- package/dist/node_modules/.pnpm/@mui_icons-material@7.3.9_@mui_material@7.3.9_@emotion_react@11.14.0_@types_react@19.2._dc2be6bc014bebdac88a574e3e02c144/node_modules/@mui/icons-material/esm/KeyboardArrowUpRounded.js.map +1 -0
- package/dist/node_modules/.pnpm/@mui_icons-material@7.3.9_@mui_material@7.3.9_@emotion_react@11.14.0_@types_react@19.2._dc2be6bc014bebdac88a574e3e02c144/node_modules/@mui/icons-material/esm/MenuRounded.js +9 -0
- package/dist/node_modules/.pnpm/@mui_icons-material@7.3.9_@mui_material@7.3.9_@emotion_react@11.14.0_@types_react@19.2._dc2be6bc014bebdac88a574e3e02c144/node_modules/@mui/icons-material/esm/MenuRounded.js.map +1 -0
- package/dist/node_modules/.pnpm/@mui_icons-material@7.3.9_@mui_material@7.3.9_@emotion_react@11.14.0_@types_react@19.2._dc2be6bc014bebdac88a574e3e02c144/node_modules/@mui/icons-material/esm/NotificationsNoneOutlined.js +9 -0
- package/dist/node_modules/.pnpm/@mui_icons-material@7.3.9_@mui_material@7.3.9_@emotion_react@11.14.0_@types_react@19.2._dc2be6bc014bebdac88a574e3e02c144/node_modules/@mui/icons-material/esm/NotificationsNoneOutlined.js.map +1 -0
- package/dist/node_modules/.pnpm/@mui_icons-material@7.3.9_@mui_material@7.3.9_@emotion_react@11.14.0_@types_react@19.2._dc2be6bc014bebdac88a574e3e02c144/node_modules/@mui/icons-material/esm/PaletteOutlined.js +25 -0
- package/dist/node_modules/.pnpm/@mui_icons-material@7.3.9_@mui_material@7.3.9_@emotion_react@11.14.0_@types_react@19.2._dc2be6bc014bebdac88a574e3e02c144/node_modules/@mui/icons-material/esm/PaletteOutlined.js.map +1 -0
- package/dist/node_modules/.pnpm/@mui_icons-material@7.3.9_@mui_material@7.3.9_@emotion_react@11.14.0_@types_react@19.2._dc2be6bc014bebdac88a574e3e02c144/node_modules/@mui/icons-material/esm/RestoreOutlined.js +9 -0
- package/dist/node_modules/.pnpm/@mui_icons-material@7.3.9_@mui_material@7.3.9_@emotion_react@11.14.0_@types_react@19.2._dc2be6bc014bebdac88a574e3e02c144/node_modules/@mui/icons-material/esm/RestoreOutlined.js.map +1 -0
- package/dist/node_modules/.pnpm/@mui_icons-material@7.3.9_@mui_material@7.3.9_@emotion_react@11.14.0_@types_react@19.2._dc2be6bc014bebdac88a574e3e02c144/node_modules/@mui/icons-material/esm/SaveOutlined.js +9 -0
- package/dist/node_modules/.pnpm/@mui_icons-material@7.3.9_@mui_material@7.3.9_@emotion_react@11.14.0_@types_react@19.2._dc2be6bc014bebdac88a574e3e02c144/node_modules/@mui/icons-material/esm/SaveOutlined.js.map +1 -0
- package/dist/node_modules/.pnpm/@mui_icons-material@7.3.9_@mui_material@7.3.9_@emotion_react@11.14.0_@types_react@19.2._dc2be6bc014bebdac88a574e3e02c144/node_modules/@mui/icons-material/esm/SpaceDashboardOutlined.js +9 -0
- package/dist/node_modules/.pnpm/@mui_icons-material@7.3.9_@mui_material@7.3.9_@emotion_react@11.14.0_@types_react@19.2._dc2be6bc014bebdac88a574e3e02c144/node_modules/@mui/icons-material/esm/SpaceDashboardOutlined.js.map +1 -0
- package/dist/node_modules/.pnpm/@mui_icons-material@7.3.9_@mui_material@7.3.9_@emotion_react@11.14.0_@types_react@19.2._dc2be6bc014bebdac88a574e3e02c144/node_modules/@mui/icons-material/esm/UploadFileOutlined.js +9 -0
- package/dist/node_modules/.pnpm/@mui_icons-material@7.3.9_@mui_material@7.3.9_@emotion_react@11.14.0_@types_react@19.2._dc2be6bc014bebdac88a574e3e02c144/node_modules/@mui/icons-material/esm/UploadFileOutlined.js.map +1 -0
- package/dist/node_modules/.pnpm/@mui_icons-material@7.3.9_@mui_material@7.3.9_@emotion_react@11.14.0_@types_react@19.2._dc2be6bc014bebdac88a574e3e02c144/node_modules/@mui/icons-material/esm/WarningAmberRounded.js +9 -0
- package/dist/node_modules/.pnpm/@mui_icons-material@7.3.9_@mui_material@7.3.9_@emotion_react@11.14.0_@types_react@19.2._dc2be6bc014bebdac88a574e3e02c144/node_modules/@mui/icons-material/esm/WarningAmberRounded.js.map +1 -0
- package/dist/node_modules/.pnpm/jsbarcode@3.12.1/node_modules/jsbarcode/bin/barcodes/CODE128/index.js +1 -1
- package/dist/node_modules/.pnpm/jsbarcode@3.12.1/node_modules/jsbarcode/bin/barcodes/CODE39/index.js +1 -1
- package/dist/node_modules/.pnpm/jsbarcode@3.12.1/node_modules/jsbarcode/bin/barcodes/CODE93/constants.js +1 -1
- package/dist/node_modules/.pnpm/jsbarcode@3.12.1/node_modules/jsbarcode/bin/barcodes/CODE93/index.js +1 -1
- package/dist/node_modules/.pnpm/jsbarcode@3.12.1/node_modules/jsbarcode/bin/barcodes/EAN_UPC/index.js +1 -1
- package/dist/node_modules/.pnpm/jsbarcode@3.12.1/node_modules/jsbarcode/bin/barcodes/GenericBarcode/index.js +1 -1
- package/dist/node_modules/.pnpm/jsbarcode@3.12.1/node_modules/jsbarcode/bin/barcodes/ITF/constants.js +1 -1
- package/dist/node_modules/.pnpm/jsbarcode@3.12.1/node_modules/jsbarcode/bin/barcodes/ITF/index.js +1 -1
- package/dist/node_modules/.pnpm/jsbarcode@3.12.1/node_modules/jsbarcode/bin/barcodes/MSI/index.js +1 -1
- package/dist/node_modules/.pnpm/jsbarcode@3.12.1/node_modules/jsbarcode/bin/barcodes/codabar/index.js +1 -1
- package/dist/node_modules/.pnpm/jsbarcode@3.12.1/node_modules/jsbarcode/bin/barcodes/pharmacode/index.js +1 -1
- package/dist/node_modules/.pnpm/jsbarcode@3.12.1/node_modules/jsbarcode/bin/renderers/index.js +1 -1
- package/dist/node_modules/.pnpm/react-overlays@5.2.1_react-dom@19.2.4_react@19.2.4__react@19.2.4/node_modules/react-overlays/esm/Portal.js +1 -1
- package/dist/owp-app.css +1 -1
- package/dist/types/components/OwpTable/internal/defaultTableStyle.d.ts +49 -0
- package/dist/types/components/OwpTreeGrid/OwpTreeGrid.d.ts +2 -1
- package/dist/types/components/OwpTreeGrid/internal/treeGridRuntime.d.ts +6 -1
- package/dist/types/configs/theme/index.d.ts +6 -0
- package/dist/types/contexts/OwpAppProvider.d.ts +2 -0
- package/dist/types/features/themePreview/components/ThemePreviewCanvas.d.ts +8 -0
- package/dist/types/features/themePreview/components/ThemePreviewCanvasSections.d.ts +82 -0
- package/dist/types/features/themePreview/components/ThemePreviewColorField.d.ts +10 -0
- package/dist/types/features/themePreview/components/ThemePreviewControls.d.ts +18 -0
- package/dist/types/features/themePreview/components/index.d.ts +3 -0
- package/dist/types/features/themePreview/components/themePreviewCanvas.icons.d.ts +3 -0
- package/dist/types/features/themePreview/components/themePreviewCanvas.shared.d.ts +121 -0
- package/dist/types/features/themePreview/configs/grid.d.ts +41 -0
- package/dist/types/features/themePreview/configs/index.d.ts +7 -0
- package/dist/types/features/themePreview/configs/presets.d.ts +1152 -0
- package/dist/types/features/themePreview/configs/previewStorage.d.ts +35 -0
- package/dist/types/features/themePreview/configs/settings.d.ts +271 -0
- package/dist/types/features/themePreview/configs/snackbar.d.ts +43 -0
- package/dist/types/features/themePreview/configs/surface.d.ts +6 -0
- package/dist/types/features/themePreview/configs/table.d.ts +47 -0
- package/dist/types/features/themePreview/dialogs/ThemePreviewDialog.d.ts +3 -0
- package/dist/types/features/themePreview/dialogs/index.d.ts +1 -0
- package/dist/types/features/themePreview/hooks/index.d.ts +1 -0
- package/dist/types/features/themePreview/hooks/useThemePreview.d.ts +61 -0
- package/dist/types/features/themePreview/index.d.ts +6 -0
- package/dist/types/features/themePreview/types/index.d.ts +1 -0
- package/dist/types/features/themePreview/types/themePreview.d.ts +44 -0
- package/dist/types/features/themePreview/utils/color.d.ts +14 -0
- package/dist/types/features/themePreview/utils/index.d.ts +4 -0
- package/dist/types/features/themePreview/utils/themePreviewDefinitions.d.ts +10 -0
- package/dist/types/features/themePreview/utils/themePreviewExport.d.ts +46 -0
- package/dist/types/features/themePreview/utils/themePreviewSettings.d.ts +54 -0
- package/dist/types/layout/components/toggles/ThemePreviewToggle.d.ts +5 -0
- package/dist/types/utils/zipUtil.d.ts +1 -0
- package/dist/utils/zipUtil.js +38 -36
- package/dist/utils/zipUtil.js.map +1 -1
- package/features/themePreview.d.ts +3 -0
- package/features/themePreview.js +1 -0
- package/package.json +3 -1
|
@@ -0,0 +1,280 @@
|
|
|
1
|
+
var ae = Object.defineProperty;
|
|
2
|
+
var n = (o, d) => ae(o, "name", { value: d, configurable: !0 });
|
|
3
|
+
import { getThemePreviewTemporaryState as j, persistThemePreviewTemporaryState as q, clearThemePreviewAppliedSettings as ne, persistThemePreviewAppliedSettings as G } from "../configs/previewStorage.js";
|
|
4
|
+
import { defaultSnackbarTheme as f, defaultSnackbarProviderProps as T } from "../configs/snackbar.js";
|
|
5
|
+
import { useGetCurrentSettings as se, useSetDefaultSettings as oe } from "../../../hooks/useOwpSettings.js";
|
|
6
|
+
import { useMemo as y, useState as g } from "react";
|
|
7
|
+
import ce from "dayjs";
|
|
8
|
+
import { getThemePreviewPresetOptions as ie, getThemePreviewDraftSettings as le, getThemePreviewSelectionState as de, getThemePreviewResetSettings as me, cloneThemePreviewSettings as A, getThemePreviewPresetOptionsByMode as Se, applyThemePreviewPreset as H, THEME_PREVIEW_CUSTOM_PRESET_KEY as k, setThemePreviewDraftSettings as U, setThemePreviewPaletteValues as Pe, setThemePreviewPaletteValue as pe, isThemePreviewCustomSection as he, setThemePreviewSelectionState as ve } from "../utils/themePreviewSettings.js";
|
|
9
|
+
import { merge as h } from "../../../node_modules/.pnpm/es-toolkit@1.39.10/node_modules/es-toolkit/dist/compat/object/merge.js";
|
|
10
|
+
import { isEqual as M } from "../../../node_modules/.pnpm/es-toolkit@1.39.10/node_modules/es-toolkit/dist/predicate/isEqual.js";
|
|
11
|
+
const W = {
|
|
12
|
+
main: k,
|
|
13
|
+
navbar: k,
|
|
14
|
+
toolbar: k
|
|
15
|
+
};
|
|
16
|
+
function C(o) {
|
|
17
|
+
return !he(o);
|
|
18
|
+
}
|
|
19
|
+
n(C, "isThemePreviewPresetSectionKey");
|
|
20
|
+
function ue(o) {
|
|
21
|
+
return {
|
|
22
|
+
main: o.theme.main.palette.mode === "dark" ? "dark" : "light",
|
|
23
|
+
navbar: o.theme.navbar.palette.mode === "dark" ? "dark" : "light",
|
|
24
|
+
toolbar: o.theme.toolbar.palette.mode === "dark" ? "dark" : "light"
|
|
25
|
+
};
|
|
26
|
+
}
|
|
27
|
+
n(ue, "getThemePreviewSelectedModes");
|
|
28
|
+
function Y(o, d, v, m, c) {
|
|
29
|
+
return {
|
|
30
|
+
draftSettings: A(d),
|
|
31
|
+
savedAt: ce().toISOString(),
|
|
32
|
+
saveType: c,
|
|
33
|
+
selectionState: {
|
|
34
|
+
activeSection: o,
|
|
35
|
+
selectedModes: m,
|
|
36
|
+
selectedPresetKeys: v
|
|
37
|
+
},
|
|
38
|
+
version: 1
|
|
39
|
+
};
|
|
40
|
+
}
|
|
41
|
+
n(Y, "createThemePreviewTemporaryState");
|
|
42
|
+
function x(o, d, v, m) {
|
|
43
|
+
return {
|
|
44
|
+
draftSettings: d,
|
|
45
|
+
selectionState: {
|
|
46
|
+
activeSection: o,
|
|
47
|
+
selectedModes: m,
|
|
48
|
+
selectedPresetKeys: v
|
|
49
|
+
}
|
|
50
|
+
};
|
|
51
|
+
}
|
|
52
|
+
n(x, "createThemePreviewTemporaryComparableState");
|
|
53
|
+
function Be({
|
|
54
|
+
initialSection: o = "main",
|
|
55
|
+
initialPresetKeys: d,
|
|
56
|
+
presetThemes: v,
|
|
57
|
+
resetTheme: m
|
|
58
|
+
}) {
|
|
59
|
+
const c = se(), K = oe(), E = y(() => ie(v), [v]), V = le(c), w = y(
|
|
60
|
+
() => de(c, d),
|
|
61
|
+
[c, d]
|
|
62
|
+
), _ = y(
|
|
63
|
+
() => me(c, m, f),
|
|
64
|
+
[c, m]
|
|
65
|
+
), z = y(
|
|
66
|
+
() => h({}, f, c.snackbar),
|
|
67
|
+
[c]
|
|
68
|
+
), F = y(
|
|
69
|
+
() => h(
|
|
70
|
+
{},
|
|
71
|
+
T,
|
|
72
|
+
c.snackbarProviderProps
|
|
73
|
+
),
|
|
74
|
+
[c]
|
|
75
|
+
), [r, O] = g(o), [a, J] = g(() => V), [l, N] = g(
|
|
76
|
+
w.selectedPresetKeys
|
|
77
|
+
), [S, Q] = g(w.selectedModes), [X, D] = g(() => j()), [Z, b] = g(
|
|
78
|
+
() => x(
|
|
79
|
+
o,
|
|
80
|
+
V,
|
|
81
|
+
w.selectedPresetKeys,
|
|
82
|
+
w.selectedModes
|
|
83
|
+
)
|
|
84
|
+
), $ = !!X, ee = !M(
|
|
85
|
+
x(
|
|
86
|
+
r,
|
|
87
|
+
a,
|
|
88
|
+
l,
|
|
89
|
+
S
|
|
90
|
+
),
|
|
91
|
+
Z
|
|
92
|
+
), te = !M(c.theme, a.theme) || !M(z, a.snackbar) || !M(F, a.snackbarProviderProps), R = /* @__PURE__ */ n((e, t) => {
|
|
93
|
+
ve({
|
|
94
|
+
selectedPresetKeys: e,
|
|
95
|
+
selectedModes: t
|
|
96
|
+
});
|
|
97
|
+
}, "persistSelectionState"), re = /* @__PURE__ */ n((e) => (U(e), e), "persistDraftSettings"), u = /* @__PURE__ */ n((e) => (J(e), re(e)), "commitDraftSettings"), P = /* @__PURE__ */ n((e, t) => {
|
|
98
|
+
N(e), Q(t), R(e, t);
|
|
99
|
+
}, "commitSelectionState");
|
|
100
|
+
return {
|
|
101
|
+
activeSection: r,
|
|
102
|
+
canApplyToMain: te,
|
|
103
|
+
draftSettings: a,
|
|
104
|
+
hasTemporaryChanges: ee,
|
|
105
|
+
hasTemporarySnapshot: $,
|
|
106
|
+
presetOptions: E,
|
|
107
|
+
selectedModes: S,
|
|
108
|
+
selectedPresetKeys: l,
|
|
109
|
+
setActiveSection: O,
|
|
110
|
+
handlePaletteValueChange: /* @__PURE__ */ n((e, t) => {
|
|
111
|
+
if (u(pe(a, r, e, t)), !C(r))
|
|
112
|
+
return;
|
|
113
|
+
const i = {
|
|
114
|
+
...l,
|
|
115
|
+
[r]: k
|
|
116
|
+
};
|
|
117
|
+
P(i, S);
|
|
118
|
+
}, "handlePaletteValueChange"),
|
|
119
|
+
handlePaletteValuesChange: /* @__PURE__ */ n((e) => {
|
|
120
|
+
if (!e.length || (u(Pe(a, r, e)), !C(r)))
|
|
121
|
+
return;
|
|
122
|
+
const t = {
|
|
123
|
+
...l,
|
|
124
|
+
[r]: k
|
|
125
|
+
};
|
|
126
|
+
P(t, S);
|
|
127
|
+
}, "handlePaletteValuesChange"),
|
|
128
|
+
handleApplyToMain: /* @__PURE__ */ n(() => {
|
|
129
|
+
const e = Y(
|
|
130
|
+
r,
|
|
131
|
+
a,
|
|
132
|
+
l,
|
|
133
|
+
S,
|
|
134
|
+
"manual"
|
|
135
|
+
);
|
|
136
|
+
U(a), R(l, S), q(e), G({
|
|
137
|
+
theme: a.theme,
|
|
138
|
+
snackbar: a.snackbar,
|
|
139
|
+
snackbarProviderProps: a.snackbarProviderProps
|
|
140
|
+
}), D(e), b({
|
|
141
|
+
draftSettings: a,
|
|
142
|
+
selectionState: e.selectionState
|
|
143
|
+
}), K({
|
|
144
|
+
theme: a.theme,
|
|
145
|
+
snackbar: a.snackbar,
|
|
146
|
+
snackbarProviderProps: a.snackbarProviderProps
|
|
147
|
+
});
|
|
148
|
+
}, "handleApplyToMain"),
|
|
149
|
+
handleLoadSettings: /* @__PURE__ */ n((e, t = f, i = T) => {
|
|
150
|
+
const s = h({}, c, {
|
|
151
|
+
theme: e,
|
|
152
|
+
snackbar: h({}, f, t),
|
|
153
|
+
snackbarProviderProps: h(
|
|
154
|
+
{},
|
|
155
|
+
T,
|
|
156
|
+
i
|
|
157
|
+
)
|
|
158
|
+
}), p = ue(s);
|
|
159
|
+
u(s), P(W, p), b(
|
|
160
|
+
x(
|
|
161
|
+
r,
|
|
162
|
+
s,
|
|
163
|
+
W,
|
|
164
|
+
p
|
|
165
|
+
)
|
|
166
|
+
), G({
|
|
167
|
+
theme: e,
|
|
168
|
+
snackbar: s.snackbar,
|
|
169
|
+
snackbarProviderProps: s.snackbarProviderProps
|
|
170
|
+
}), K({
|
|
171
|
+
theme: e,
|
|
172
|
+
snackbar: s.snackbar,
|
|
173
|
+
snackbarProviderProps: s.snackbarProviderProps
|
|
174
|
+
});
|
|
175
|
+
}, "handleLoadSettings"),
|
|
176
|
+
handlePresetKeyChange: /* @__PURE__ */ n((e) => {
|
|
177
|
+
if (!C(r) || e === k)
|
|
178
|
+
return;
|
|
179
|
+
const t = v[e];
|
|
180
|
+
if (!t)
|
|
181
|
+
return;
|
|
182
|
+
u(H(a, r, t));
|
|
183
|
+
const i = {
|
|
184
|
+
...S,
|
|
185
|
+
[r]: t.palette.mode === "dark" ? "dark" : "light"
|
|
186
|
+
}, s = {
|
|
187
|
+
...l,
|
|
188
|
+
[r]: e
|
|
189
|
+
};
|
|
190
|
+
P(s, i);
|
|
191
|
+
}, "handlePresetKeyChange"),
|
|
192
|
+
handlePresetModeChange: /* @__PURE__ */ n((e) => {
|
|
193
|
+
if (!C(r))
|
|
194
|
+
return;
|
|
195
|
+
const t = {
|
|
196
|
+
...S,
|
|
197
|
+
[r]: e
|
|
198
|
+
}, i = Se(
|
|
199
|
+
E,
|
|
200
|
+
r,
|
|
201
|
+
e
|
|
202
|
+
)[0];
|
|
203
|
+
if (!i) {
|
|
204
|
+
P(l, t);
|
|
205
|
+
return;
|
|
206
|
+
}
|
|
207
|
+
const s = v[i.key];
|
|
208
|
+
if (!s) {
|
|
209
|
+
P(l, t);
|
|
210
|
+
return;
|
|
211
|
+
}
|
|
212
|
+
u(H(a, r, s));
|
|
213
|
+
const p = {
|
|
214
|
+
...l,
|
|
215
|
+
[r]: i.key
|
|
216
|
+
};
|
|
217
|
+
P(p, t);
|
|
218
|
+
}, "handlePresetModeChange"),
|
|
219
|
+
handleReset: /* @__PURE__ */ n(() => {
|
|
220
|
+
var i, s, p, L, B, I;
|
|
221
|
+
const e = h({}, A(_), {
|
|
222
|
+
snackbarProviderProps: T
|
|
223
|
+
}), t = {
|
|
224
|
+
main: ((s = (i = m.main) == null ? void 0 : i.palette) == null ? void 0 : s.mode) === "dark" ? "dark" : "light",
|
|
225
|
+
navbar: ((L = (p = m.navbar) == null ? void 0 : p.palette) == null ? void 0 : L.mode) === "dark" ? "dark" : "light",
|
|
226
|
+
toolbar: ((I = (B = m.toolbar) == null ? void 0 : B.palette) == null ? void 0 : I.mode) === "dark" ? "dark" : "light"
|
|
227
|
+
};
|
|
228
|
+
u(e), P(d, t), b(
|
|
229
|
+
x(
|
|
230
|
+
r,
|
|
231
|
+
e,
|
|
232
|
+
d,
|
|
233
|
+
t
|
|
234
|
+
)
|
|
235
|
+
), ne(), K({
|
|
236
|
+
theme: m,
|
|
237
|
+
snackbar: f,
|
|
238
|
+
snackbarProviderProps: T
|
|
239
|
+
});
|
|
240
|
+
}, "handleReset"),
|
|
241
|
+
handleTemporaryLoad: /* @__PURE__ */ n(() => {
|
|
242
|
+
const e = j();
|
|
243
|
+
if (!e)
|
|
244
|
+
return !1;
|
|
245
|
+
const t = A(
|
|
246
|
+
h({}, c, e.draftSettings)
|
|
247
|
+
), i = h(
|
|
248
|
+
{},
|
|
249
|
+
l,
|
|
250
|
+
e.selectionState.selectedPresetKeys
|
|
251
|
+
), s = h(
|
|
252
|
+
{},
|
|
253
|
+
S,
|
|
254
|
+
e.selectionState.selectedModes
|
|
255
|
+
), p = e.selectionState.activeSection;
|
|
256
|
+
return u(t), O(p), P(i, s), D(e), b({
|
|
257
|
+
draftSettings: t,
|
|
258
|
+
selectionState: e.selectionState
|
|
259
|
+
}), !0;
|
|
260
|
+
}, "handleTemporaryLoad"),
|
|
261
|
+
handleTemporarySave: /* @__PURE__ */ n((e = "manual") => {
|
|
262
|
+
const t = Y(
|
|
263
|
+
r,
|
|
264
|
+
a,
|
|
265
|
+
l,
|
|
266
|
+
S,
|
|
267
|
+
e
|
|
268
|
+
);
|
|
269
|
+
q(t), D(t), b({
|
|
270
|
+
draftSettings: a,
|
|
271
|
+
selectionState: t.selectionState
|
|
272
|
+
});
|
|
273
|
+
}, "handleTemporarySave")
|
|
274
|
+
};
|
|
275
|
+
}
|
|
276
|
+
n(Be, "useThemePreview");
|
|
277
|
+
export {
|
|
278
|
+
Be as useThemePreview
|
|
279
|
+
};
|
|
280
|
+
//# sourceMappingURL=useThemePreview.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"useThemePreview.js","sources":["../../../../src/features/themePreview/hooks/useThemePreview.ts"],"sourcesContent":["import {\n clearThemePreviewAppliedSettings,\n getThemePreviewTemporaryState,\n persistThemePreviewAppliedSettings,\n persistThemePreviewTemporaryState,\n type ThemePreviewTemporaryState,\n} from '@/features/themePreview/configs/previewStorage';\nimport {\n defaultSnackbarProviderProps,\n defaultSnackbarTheme,\n type SnackbarProviderTheme,\n} from '@/features/themePreview/configs/snackbar';\nimport { useGetCurrentSettings, useSetDefaultSettings } from '@/hooks';\nimport type { OwpSettingsConfigType } from '@/types';\nimport { isEqual, merge } from 'es-toolkit/compat';\nimport { useMemo, useState } from 'react';\nimport type { PartialDeep } from 'type-fest';\nimport type {\n ThemePreviewMode,\n ThemePreviewPresetKeyBySection,\n ThemePreviewPresetSectionKey,\n ThemePreviewPresetThemes,\n ThemePreviewSectionKey,\n ThemePreviewSettings,\n} from '../types';\nimport {\n applyThemePreviewPreset,\n cloneThemePreviewSettings,\n getThemePreviewDraftSettings,\n getThemePreviewPresetOptions,\n getThemePreviewPresetOptionsByMode,\n getThemePreviewResetSettings,\n getThemePreviewSelectionState,\n isThemePreviewCustomSection,\n setThemePreviewDraftSettings,\n setThemePreviewPaletteValue,\n setThemePreviewPaletteValues,\n setThemePreviewSelectionState,\n THEME_PREVIEW_CUSTOM_PRESET_KEY,\n} from '../utils';\nimport dayjs from 'dayjs';\n\ninterface UseThemePreviewOptions {\n initialSection?: ThemePreviewSectionKey;\n initialPresetKeys: ThemePreviewPresetKeyBySection;\n presetThemes: ThemePreviewPresetThemes;\n resetTheme: PartialDeep<OwpSettingsConfigType['theme']>;\n}\n\ntype ThemePreviewSettingsWithSnackbarProviderProps = OwpSettingsConfigType & {\n snackbarProviderProps?: SnackbarProviderTheme;\n};\n\nconst themePreviewCustomPresetKeys = {\n main: THEME_PREVIEW_CUSTOM_PRESET_KEY,\n navbar: THEME_PREVIEW_CUSTOM_PRESET_KEY,\n toolbar: THEME_PREVIEW_CUSTOM_PRESET_KEY,\n} satisfies ThemePreviewPresetKeyBySection;\n\nfunction isThemePreviewPresetSectionKey(\n sectionKey: ThemePreviewSectionKey,\n): sectionKey is ThemePreviewPresetSectionKey {\n return !isThemePreviewCustomSection(sectionKey);\n}\n\nfunction getThemePreviewSelectedModes(settings: OwpSettingsConfigType) {\n return {\n main: settings.theme.main.palette.mode === 'dark' ? 'dark' : 'light',\n navbar: settings.theme.navbar.palette.mode === 'dark' ? 'dark' : 'light',\n toolbar: settings.theme.toolbar.palette.mode === 'dark' ? 'dark' : 'light',\n } satisfies Record<ThemePreviewPresetSectionKey, ThemePreviewMode>;\n}\n\nfunction createThemePreviewTemporaryState(\n activeSection: ThemePreviewSectionKey,\n draftSettings: ThemePreviewSettings,\n selectedPresetKeys: ThemePreviewPresetKeyBySection,\n selectedModes: Record<ThemePreviewPresetSectionKey, ThemePreviewMode>,\n saveType: ThemePreviewTemporaryState['saveType'],\n) {\n return {\n draftSettings: cloneThemePreviewSettings(draftSettings),\n savedAt: dayjs().toISOString(),\n saveType,\n selectionState: {\n activeSection,\n selectedModes,\n selectedPresetKeys,\n },\n version: 1,\n } satisfies ThemePreviewTemporaryState;\n}\n\nfunction createThemePreviewTemporaryComparableState(\n activeSection: ThemePreviewSectionKey,\n draftSettings: ThemePreviewSettings,\n selectedPresetKeys: ThemePreviewPresetKeyBySection,\n selectedModes: Record<ThemePreviewPresetSectionKey, ThemePreviewMode>,\n) {\n return {\n draftSettings,\n selectionState: {\n activeSection,\n selectedModes,\n selectedPresetKeys,\n },\n };\n}\n\nexport function useThemePreview({\n initialSection = 'main',\n initialPresetKeys: _initialPresetKeys,\n presetThemes,\n resetTheme,\n}: UseThemePreviewOptions) {\n const currentSettings = useGetCurrentSettings() as OwpSettingsConfigType;\n const setDefaultSettings = useSetDefaultSettings();\n const presetOptions = useMemo(() => getThemePreviewPresetOptions(presetThemes), [presetThemes]);\n const initialDraftSettings = getThemePreviewDraftSettings(currentSettings);\n const initialSelectionState = useMemo(\n () => getThemePreviewSelectionState(currentSettings, _initialPresetKeys),\n [currentSettings, _initialPresetKeys],\n );\n const resetSettings = useMemo(\n () => getThemePreviewResetSettings(currentSettings, resetTheme, defaultSnackbarTheme),\n [currentSettings, resetTheme],\n );\n const currentSnackbarTheme = useMemo(\n () => merge({}, defaultSnackbarTheme, currentSettings.snackbar),\n [currentSettings],\n );\n const currentSnackbarProviderProps = useMemo(\n () =>\n merge(\n {},\n defaultSnackbarProviderProps,\n (currentSettings as ThemePreviewSettingsWithSnackbarProviderProps)\n .snackbarProviderProps,\n ) as SnackbarProviderTheme,\n [currentSettings],\n );\n\n const [activeSection, setActiveSection] = useState<ThemePreviewSectionKey>(initialSection);\n const [draftSettings, setDraftSettings] = useState<ThemePreviewSettings>(() => initialDraftSettings);\n const [selectedPresetKeys, setSelectedPresetKeys] = useState<ThemePreviewPresetKeyBySection>(\n initialSelectionState.selectedPresetKeys,\n );\n const [selectedModes, setSelectedModes] = useState<\n Record<ThemePreviewPresetSectionKey, ThemePreviewMode>\n >(initialSelectionState.selectedModes);\n const [temporarySnapshot, setTemporarySnapshot] = useState(() => getThemePreviewTemporaryState());\n const [temporaryComparableSnapshot, setTemporaryComparableSnapshot] = useState(() =>\n createThemePreviewTemporaryComparableState(\n initialSection,\n initialDraftSettings,\n initialSelectionState.selectedPresetKeys,\n initialSelectionState.selectedModes,\n ),\n );\n const hasTemporarySnapshot = Boolean(temporarySnapshot);\n const hasTemporaryChanges =\n !isEqual(\n createThemePreviewTemporaryComparableState(\n activeSection,\n draftSettings,\n selectedPresetKeys,\n selectedModes,\n ),\n temporaryComparableSnapshot,\n );\n const canApplyToMain =\n !isEqual(currentSettings.theme, draftSettings.theme) ||\n !isEqual(currentSnackbarTheme, draftSettings.snackbar) ||\n !isEqual(currentSnackbarProviderProps, draftSettings.snackbarProviderProps);\n\n const persistSelectionState = (\n nextPresetKeys: ThemePreviewPresetKeyBySection,\n nextSelectedModes: Record<ThemePreviewPresetSectionKey, ThemePreviewMode>,\n ) => {\n setThemePreviewSelectionState({\n selectedPresetKeys: nextPresetKeys,\n selectedModes: nextSelectedModes,\n });\n };\n\n const persistDraftSettings = (nextDraftSettings: ThemePreviewSettings) => {\n setThemePreviewDraftSettings(nextDraftSettings);\n return nextDraftSettings;\n };\n const commitDraftSettings = (nextDraftSettings: ThemePreviewSettings) => {\n setDraftSettings(nextDraftSettings);\n return persistDraftSettings(nextDraftSettings);\n };\n\n const commitSelectionState = (\n nextPresetKeys: ThemePreviewPresetKeyBySection,\n nextSelectedModes: Record<ThemePreviewPresetSectionKey, ThemePreviewMode>,\n ) => {\n setSelectedPresetKeys(nextPresetKeys);\n setSelectedModes(nextSelectedModes);\n persistSelectionState(nextPresetKeys, nextSelectedModes);\n };\n\n const handlePaletteValueChange = (path: string, value: string) => {\n commitDraftSettings(setThemePreviewPaletteValue(draftSettings, activeSection, path, value));\n\n if (!isThemePreviewPresetSectionKey(activeSection)) {\n return;\n }\n\n const nextPresetKeys = {\n ...selectedPresetKeys,\n [activeSection]: THEME_PREVIEW_CUSTOM_PRESET_KEY,\n };\n\n commitSelectionState(nextPresetKeys, selectedModes);\n };\n\n const handlePaletteValuesChange = (updates: Array<{ path: string; value: string }>) => {\n if (!updates.length) {\n return;\n }\n\n commitDraftSettings(setThemePreviewPaletteValues(draftSettings, activeSection, updates));\n\n if (!isThemePreviewPresetSectionKey(activeSection)) {\n return;\n }\n\n const nextPresetKeys = {\n ...selectedPresetKeys,\n [activeSection]: THEME_PREVIEW_CUSTOM_PRESET_KEY,\n };\n\n commitSelectionState(nextPresetKeys, selectedModes);\n };\n\n const handlePresetModeChange = (mode: ThemePreviewMode) => {\n if (!isThemePreviewPresetSectionKey(activeSection)) {\n return;\n }\n\n const nextSelectedModes = {\n ...selectedModes,\n [activeSection]: mode,\n };\n\n const nextPresetOption = getThemePreviewPresetOptionsByMode(\n presetOptions,\n activeSection,\n mode,\n )[0];\n\n if (!nextPresetOption) {\n commitSelectionState(selectedPresetKeys, nextSelectedModes);\n return;\n }\n\n const presetTheme = presetThemes[nextPresetOption.key];\n\n if (!presetTheme) {\n commitSelectionState(selectedPresetKeys, nextSelectedModes);\n return;\n }\n\n commitDraftSettings(applyThemePreviewPreset(draftSettings, activeSection, presetTheme));\n const nextPresetKeys = {\n ...selectedPresetKeys,\n [activeSection]: nextPresetOption.key,\n };\n\n commitSelectionState(nextPresetKeys, nextSelectedModes);\n };\n\n const handlePresetKeyChange = (presetKey: string) => {\n if (!isThemePreviewPresetSectionKey(activeSection)) {\n return;\n }\n\n if (presetKey === THEME_PREVIEW_CUSTOM_PRESET_KEY) {\n return;\n }\n\n const presetTheme = presetThemes[presetKey];\n\n if (!presetTheme) {\n return;\n }\n\n commitDraftSettings(applyThemePreviewPreset(draftSettings, activeSection, presetTheme));\n const nextSelectedModes = {\n ...selectedModes,\n [activeSection]: presetTheme.palette.mode === 'dark' ? 'dark' : 'light',\n };\n const nextPresetKeys = {\n ...selectedPresetKeys,\n [activeSection]: presetKey,\n };\n\n commitSelectionState(nextPresetKeys, nextSelectedModes);\n };\n\n const handleReset = () => {\n const nextDraftSettings = merge({}, cloneThemePreviewSettings(resetSettings), {\n snackbarProviderProps: defaultSnackbarProviderProps,\n }) as ThemePreviewSettings;\n const nextSelectedModes = {\n main: resetTheme.main?.palette?.mode === 'dark' ? 'dark' : 'light',\n navbar: resetTheme.navbar?.palette?.mode === 'dark' ? 'dark' : 'light',\n toolbar: resetTheme.toolbar?.palette?.mode === 'dark' ? 'dark' : 'light',\n } satisfies Record<ThemePreviewPresetSectionKey, ThemePreviewMode>;\n\n commitDraftSettings(nextDraftSettings);\n commitSelectionState(_initialPresetKeys, nextSelectedModes);\n setTemporaryComparableSnapshot(\n createThemePreviewTemporaryComparableState(\n activeSection,\n nextDraftSettings,\n _initialPresetKeys,\n nextSelectedModes,\n ),\n );\n clearThemePreviewAppliedSettings();\n setDefaultSettings({\n theme: resetTheme,\n snackbar: defaultSnackbarTheme,\n snackbarProviderProps: defaultSnackbarProviderProps,\n } as PartialDeep<OwpSettingsConfigType>);\n };\n\n const handleApplyToMain = () => {\n const nextTemporaryState = createThemePreviewTemporaryState(\n activeSection,\n draftSettings,\n selectedPresetKeys,\n selectedModes,\n 'manual',\n );\n\n setThemePreviewDraftSettings(draftSettings);\n persistSelectionState(selectedPresetKeys, selectedModes);\n persistThemePreviewTemporaryState(nextTemporaryState);\n persistThemePreviewAppliedSettings({\n theme: draftSettings.theme,\n snackbar: draftSettings.snackbar,\n snackbarProviderProps: draftSettings.snackbarProviderProps,\n });\n setTemporarySnapshot(nextTemporaryState);\n setTemporaryComparableSnapshot({\n draftSettings,\n selectionState: nextTemporaryState.selectionState,\n });\n setDefaultSettings({\n theme: draftSettings.theme,\n snackbar: draftSettings.snackbar,\n snackbarProviderProps: draftSettings.snackbarProviderProps,\n } as PartialDeep<OwpSettingsConfigType>);\n };\n\n const handleLoadSettings = (\n theme: OwpSettingsConfigType['theme'],\n snackbarTheme = defaultSnackbarTheme,\n snackbarProviderProps: SnackbarProviderTheme = defaultSnackbarProviderProps,\n ) => {\n const nextDraftSettings = merge({}, currentSettings, {\n theme,\n snackbar: merge({}, defaultSnackbarTheme, snackbarTheme),\n snackbarProviderProps: merge(\n {},\n defaultSnackbarProviderProps,\n snackbarProviderProps,\n ),\n }) as ThemePreviewSettings;\n const nextSelectedModes = getThemePreviewSelectedModes(nextDraftSettings);\n\n commitDraftSettings(nextDraftSettings);\n commitSelectionState(themePreviewCustomPresetKeys, nextSelectedModes);\n setTemporaryComparableSnapshot(\n createThemePreviewTemporaryComparableState(\n activeSection,\n nextDraftSettings,\n themePreviewCustomPresetKeys,\n nextSelectedModes,\n ),\n );\n persistThemePreviewAppliedSettings({\n theme,\n snackbar: nextDraftSettings.snackbar,\n snackbarProviderProps: nextDraftSettings.snackbarProviderProps,\n });\n setDefaultSettings({\n theme,\n snackbar: nextDraftSettings.snackbar,\n snackbarProviderProps: nextDraftSettings.snackbarProviderProps,\n } as PartialDeep<OwpSettingsConfigType>);\n };\n\n const handleTemporarySave = (saveType: ThemePreviewTemporaryState['saveType'] = 'manual') => {\n const nextTemporaryState = createThemePreviewTemporaryState(\n activeSection,\n draftSettings,\n selectedPresetKeys,\n selectedModes,\n saveType,\n );\n\n persistThemePreviewTemporaryState(nextTemporaryState);\n setTemporarySnapshot(nextTemporaryState);\n setTemporaryComparableSnapshot({\n draftSettings,\n selectionState: nextTemporaryState.selectionState,\n });\n };\n\n const handleTemporaryLoad = () => {\n const temporaryState = getThemePreviewTemporaryState();\n\n if (!temporaryState) {\n return false;\n }\n\n const nextDraftSettings = cloneThemePreviewSettings(\n merge({}, currentSettings, temporaryState.draftSettings) as ThemePreviewSettings,\n );\n const nextSelectedPresetKeys = merge(\n {},\n selectedPresetKeys,\n temporaryState.selectionState.selectedPresetKeys,\n ) as ThemePreviewPresetKeyBySection;\n const nextSelectedModes = merge(\n {},\n selectedModes,\n temporaryState.selectionState.selectedModes,\n ) as Record<ThemePreviewPresetSectionKey, ThemePreviewMode>;\n const nextActiveSection = temporaryState.selectionState.activeSection;\n\n commitDraftSettings(nextDraftSettings);\n setActiveSection(nextActiveSection);\n commitSelectionState(nextSelectedPresetKeys, nextSelectedModes);\n setTemporarySnapshot(temporaryState);\n setTemporaryComparableSnapshot({\n draftSettings: nextDraftSettings,\n selectionState: temporaryState.selectionState,\n });\n\n return true;\n };\n\n return {\n activeSection,\n canApplyToMain,\n draftSettings,\n hasTemporaryChanges,\n hasTemporarySnapshot,\n presetOptions,\n selectedModes,\n selectedPresetKeys,\n setActiveSection,\n handlePaletteValueChange,\n handlePaletteValuesChange,\n handleApplyToMain,\n handleLoadSettings,\n handlePresetKeyChange,\n handlePresetModeChange,\n handleReset,\n handleTemporaryLoad,\n handleTemporarySave,\n };\n}\n"],"names":["themePreviewCustomPresetKeys","THEME_PREVIEW_CUSTOM_PRESET_KEY","isThemePreviewPresetSectionKey","sectionKey","isThemePreviewCustomSection","__name","getThemePreviewSelectedModes","settings","createThemePreviewTemporaryState","activeSection","draftSettings","selectedPresetKeys","selectedModes","saveType","cloneThemePreviewSettings","dayjs","createThemePreviewTemporaryComparableState","useThemePreview","initialSection","_initialPresetKeys","presetThemes","resetTheme","currentSettings","useGetCurrentSettings","setDefaultSettings","useSetDefaultSettings","presetOptions","useMemo","getThemePreviewPresetOptions","initialDraftSettings","getThemePreviewDraftSettings","initialSelectionState","getThemePreviewSelectionState","resetSettings","getThemePreviewResetSettings","defaultSnackbarTheme","currentSnackbarTheme","merge","currentSnackbarProviderProps","defaultSnackbarProviderProps","setActiveSection","useState","setDraftSettings","setSelectedPresetKeys","setSelectedModes","temporarySnapshot","setTemporarySnapshot","getThemePreviewTemporaryState","temporaryComparableSnapshot","setTemporaryComparableSnapshot","hasTemporarySnapshot","hasTemporaryChanges","isEqual","canApplyToMain","persistSelectionState","nextPresetKeys","nextSelectedModes","setThemePreviewSelectionState","persistDraftSettings","nextDraftSettings","setThemePreviewDraftSettings","commitDraftSettings","commitSelectionState","path","value","setThemePreviewPaletteValue","updates","setThemePreviewPaletteValues","nextTemporaryState","persistThemePreviewTemporaryState","persistThemePreviewAppliedSettings","theme","snackbarTheme","snackbarProviderProps","presetKey","presetTheme","applyThemePreviewPreset","mode","nextPresetOption","getThemePreviewPresetOptionsByMode","_b","_a","_d","_c","_f","_e","clearThemePreviewAppliedSettings","temporaryState","nextSelectedPresetKeys","nextActiveSection"],"mappings":"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"}
|
|
@@ -0,0 +1,79 @@
|
|
|
1
|
+
var $ = Object.defineProperty;
|
|
2
|
+
var i = (t, n) => $(t, "name", { value: n, configurable: !0 });
|
|
3
|
+
import { getContrastRatio as u, darken as h, lighten as d } from "@mui/material/styles";
|
|
4
|
+
const a = /^rgba?\(\s*(\d{1,3})(?:\.\d+)?\s*,\s*(\d{1,3})(?:\.\d+)?\s*,\s*(\d{1,3})(?:\.\d+)?(?:\s*,\s*(0|1|0?\.\d+))?\s*\)$/i;
|
|
5
|
+
function C(t) {
|
|
6
|
+
const n = Number.parseInt(t, 16);
|
|
7
|
+
return Number.isNaN(n) ? "00" : n.toString(16).padStart(2, "0");
|
|
8
|
+
}
|
|
9
|
+
i(C, "normalizeHexChannel");
|
|
10
|
+
function b(t) {
|
|
11
|
+
const n = t[0] ?? "0", r = t[1] ?? "0", e = t[2] ?? "0";
|
|
12
|
+
return `#${n}${n}${r}${r}${e}${e}`;
|
|
13
|
+
}
|
|
14
|
+
i(b, "normalizeShortHex");
|
|
15
|
+
function l(t) {
|
|
16
|
+
return Math.max(0, Math.min(255, Number.parseInt(t, 10) || 0)).toString(16).padStart(2, "0");
|
|
17
|
+
}
|
|
18
|
+
i(l, "normalizeRgbChannel");
|
|
19
|
+
function m(t, n = "#000000") {
|
|
20
|
+
if (!t)
|
|
21
|
+
return n;
|
|
22
|
+
const r = t.trim();
|
|
23
|
+
if (/^#[0-9a-f]{6}$/i.test(r))
|
|
24
|
+
return r;
|
|
25
|
+
if (/^#[0-9a-f]{3}$/i.test(r))
|
|
26
|
+
return b(r.slice(1));
|
|
27
|
+
if (/^#[0-9a-f]{8}$/i.test(r))
|
|
28
|
+
return `#${r.slice(1, 7)}`;
|
|
29
|
+
const e = r.match(a);
|
|
30
|
+
if (e) {
|
|
31
|
+
const [, o, s, c] = e;
|
|
32
|
+
return `#${l(o ?? "0")}${l(s ?? "0")}${l(c ?? "0")}`;
|
|
33
|
+
}
|
|
34
|
+
if (/^#[0-9a-f]{1,2}$/i.test(r)) {
|
|
35
|
+
const o = C(r.slice(1));
|
|
36
|
+
return `#${o}${o}${o}`;
|
|
37
|
+
}
|
|
38
|
+
return n;
|
|
39
|
+
}
|
|
40
|
+
i(m, "toColorPickerValue");
|
|
41
|
+
function N(t, n) {
|
|
42
|
+
const r = t == null ? void 0 : t.trim().match(a);
|
|
43
|
+
if (!r || !r[4])
|
|
44
|
+
return n;
|
|
45
|
+
const e = m(n).slice(1), o = Number.parseInt(e.slice(0, 2), 16), s = Number.parseInt(e.slice(2, 4), 16), c = Number.parseInt(e.slice(4, 6), 16), f = r[4];
|
|
46
|
+
return `rgba(${o}, ${s}, ${c}, ${f})`;
|
|
47
|
+
}
|
|
48
|
+
i(N, "applyColorPickerValue");
|
|
49
|
+
function T(t) {
|
|
50
|
+
const n = t == null ? void 0 : t.trim().match(a);
|
|
51
|
+
return (n == null ? void 0 : n[4]) ?? null;
|
|
52
|
+
}
|
|
53
|
+
i(T, "getColorAlphaValue");
|
|
54
|
+
function g(t) {
|
|
55
|
+
if (!t)
|
|
56
|
+
return !1;
|
|
57
|
+
const n = t.trim();
|
|
58
|
+
return /^#[0-9a-f]{1,8}$/i.test(n) || a.test(n);
|
|
59
|
+
}
|
|
60
|
+
i(g, "canDeriveThemePreviewColor");
|
|
61
|
+
function R(t, n = {}) {
|
|
62
|
+
if (!g(t))
|
|
63
|
+
return null;
|
|
64
|
+
const r = m(t), e = n.whiteTextColor ?? "#FFFFFF", o = n.blackTextColor ?? "#111827", s = u(r, e), c = u(r, o);
|
|
65
|
+
return {
|
|
66
|
+
light: d(r, 0.18),
|
|
67
|
+
dark: h(r, 0.24),
|
|
68
|
+
contrastText: s >= c ? e : o
|
|
69
|
+
};
|
|
70
|
+
}
|
|
71
|
+
i(R, "deriveThemePreviewPaletteGroupValues");
|
|
72
|
+
export {
|
|
73
|
+
N as applyColorPickerValue,
|
|
74
|
+
g as canDeriveThemePreviewColor,
|
|
75
|
+
R as deriveThemePreviewPaletteGroupValues,
|
|
76
|
+
T as getColorAlphaValue,
|
|
77
|
+
m as toColorPickerValue
|
|
78
|
+
};
|
|
79
|
+
//# sourceMappingURL=color.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"color.js","sources":["../../../../src/features/themePreview/utils/color.ts"],"sourcesContent":["import { darken, getContrastRatio, lighten } from '@mui/material/styles';\n\nconst RGB_COLOR_PATTERN =\n /^rgba?\\(\\s*(\\d{1,3})(?:\\.\\d+)?\\s*,\\s*(\\d{1,3})(?:\\.\\d+)?\\s*,\\s*(\\d{1,3})(?:\\.\\d+)?(?:\\s*,\\s*(0|1|0?\\.\\d+))?\\s*\\)$/i;\n\nfunction normalizeHexChannel(value: string) {\n const channel = Number.parseInt(value, 16);\n\n if (Number.isNaN(channel)) {\n return '00';\n }\n\n return channel.toString(16).padStart(2, '0');\n}\n\nfunction normalizeShortHex(value: string) {\n const red = value[0] ?? '0';\n const green = value[1] ?? '0';\n const blue = value[2] ?? '0';\n\n return `#${red}${red}${green}${green}${blue}${blue}`;\n}\n\nfunction normalizeRgbChannel(value: string) {\n const channel = Math.max(0, Math.min(255, Number.parseInt(value, 10) || 0));\n\n return channel.toString(16).padStart(2, '0');\n}\n\nexport function toColorPickerValue(value?: string, fallback = '#000000') {\n if (!value) {\n return fallback;\n }\n\n const trimmedValue = value.trim();\n\n if (/^#[0-9a-f]{6}$/i.test(trimmedValue)) {\n return trimmedValue;\n }\n\n if (/^#[0-9a-f]{3}$/i.test(trimmedValue)) {\n return normalizeShortHex(trimmedValue.slice(1));\n }\n\n if (/^#[0-9a-f]{8}$/i.test(trimmedValue)) {\n return `#${trimmedValue.slice(1, 7)}`;\n }\n\n const rgbMatch = trimmedValue.match(RGB_COLOR_PATTERN);\n\n if (rgbMatch) {\n const [, red, green, blue] = rgbMatch;\n\n return `#${normalizeRgbChannel(red ?? '0')}${normalizeRgbChannel(green ?? '0')}${normalizeRgbChannel(blue ?? '0')}`;\n }\n\n if (/^#[0-9a-f]{1,2}$/i.test(trimmedValue)) {\n const normalizedChannel = normalizeHexChannel(trimmedValue.slice(1));\n return `#${normalizedChannel}${normalizedChannel}${normalizedChannel}`;\n }\n\n return fallback;\n}\n\nexport function applyColorPickerValue(previousValue: string | undefined, nextPickerValue: string) {\n const previousMatch = previousValue?.trim().match(RGB_COLOR_PATTERN);\n\n if (!previousMatch || !previousMatch[4]) {\n return nextPickerValue;\n }\n\n const nextColorValue = toColorPickerValue(nextPickerValue).slice(1);\n const red = Number.parseInt(nextColorValue.slice(0, 2), 16);\n const green = Number.parseInt(nextColorValue.slice(2, 4), 16);\n const blue = Number.parseInt(nextColorValue.slice(4, 6), 16);\n const alpha = previousMatch[4];\n\n return `rgba(${red}, ${green}, ${blue}, ${alpha})`;\n}\n\nexport function getColorAlphaValue(value?: string) {\n const colorMatch = value?.trim().match(RGB_COLOR_PATTERN);\n\n return colorMatch?.[4] ?? null;\n}\n\nexport function canDeriveThemePreviewColor(value?: string) {\n if (!value) {\n return false;\n }\n\n const trimmedValue = value.trim();\n\n return (\n /^#[0-9a-f]{1,8}$/i.test(trimmedValue) ||\n RGB_COLOR_PATTERN.test(trimmedValue)\n );\n}\n\ntype ThemePreviewDerivedColorOptions = {\n blackTextColor?: string;\n whiteTextColor?: string;\n};\n\nexport function deriveThemePreviewPaletteGroupValues(\n mainColor: string,\n options: ThemePreviewDerivedColorOptions = {},\n) {\n if (!canDeriveThemePreviewColor(mainColor)) {\n return null;\n }\n\n const normalizedMainColor = toColorPickerValue(mainColor);\n const whiteTextColor = options.whiteTextColor ?? '#FFFFFF';\n const blackTextColor = options.blackTextColor ?? '#111827';\n const lightContrastRatio = getContrastRatio(normalizedMainColor, whiteTextColor);\n const darkContrastRatio = getContrastRatio(normalizedMainColor, blackTextColor);\n\n return {\n light: lighten(normalizedMainColor, 0.18),\n dark: darken(normalizedMainColor, 0.24),\n contrastText: lightContrastRatio >= darkContrastRatio ? whiteTextColor : blackTextColor,\n };\n}\n"],"names":["RGB_COLOR_PATTERN","normalizeHexChannel","value","channel","__name","normalizeShortHex","red","green","blue","normalizeRgbChannel","toColorPickerValue","fallback","trimmedValue","rgbMatch","normalizedChannel","applyColorPickerValue","previousValue","nextPickerValue","previousMatch","nextColorValue","alpha","getColorAlphaValue","colorMatch","canDeriveThemePreviewColor","deriveThemePreviewPaletteGroupValues","mainColor","options","normalizedMainColor","whiteTextColor","blackTextColor","lightContrastRatio","getContrastRatio","darkContrastRatio","lighten","darken"],"mappings":";;;AAEA,MAAMA,IACJ;AAEF,SAASC,EAAoBC,GAAe;AAC1C,QAAMC,IAAU,OAAO,SAASD,GAAO,EAAE;AAEzC,SAAI,OAAO,MAAMC,CAAO,IACf,OAGFA,EAAQ,SAAS,EAAE,EAAE,SAAS,GAAG,GAAG;AAC7C;AARSC,EAAAH,GAAA;AAUT,SAASI,EAAkBH,GAAe;AACxC,QAAMI,IAAMJ,EAAM,CAAC,KAAK,KAClBK,IAAQL,EAAM,CAAC,KAAK,KACpBM,IAAON,EAAM,CAAC,KAAK;AAEzB,SAAO,IAAII,CAAG,GAAGA,CAAG,GAAGC,CAAK,GAAGA,CAAK,GAAGC,CAAI,GAAGA,CAAI;AACpD;AANSJ,EAAAC,GAAA;AAQT,SAASI,EAAoBP,GAAe;AAG1C,SAFgB,KAAK,IAAI,GAAG,KAAK,IAAI,KAAK,OAAO,SAASA,GAAO,EAAE,KAAK,CAAC,CAAC,EAE3D,SAAS,EAAE,EAAE,SAAS,GAAG,GAAG;AAC7C;AAJSE,EAAAK,GAAA;AAMF,SAASC,EAAmBR,GAAgBS,IAAW,WAAW;AACvE,MAAI,CAACT;AACH,WAAOS;AAGT,QAAMC,IAAeV,EAAM,KAAA;AAE3B,MAAI,kBAAkB,KAAKU,CAAY;AACrC,WAAOA;AAGT,MAAI,kBAAkB,KAAKA,CAAY;AACrC,WAAOP,EAAkBO,EAAa,MAAM,CAAC,CAAC;AAGhD,MAAI,kBAAkB,KAAKA,CAAY;AACrC,WAAO,IAAIA,EAAa,MAAM,GAAG,CAAC,CAAC;AAGrC,QAAMC,IAAWD,EAAa,MAAMZ,CAAiB;AAErD,MAAIa,GAAU;AACZ,UAAM,GAAGP,GAAKC,GAAOC,CAAI,IAAIK;AAE7B,WAAO,IAAIJ,EAAoBH,KAAO,GAAG,CAAC,GAAGG,EAAoBF,KAAS,GAAG,CAAC,GAAGE,EAAoBD,KAAQ,GAAG,CAAC;AAAA,EACnH;AAEA,MAAI,oBAAoB,KAAKI,CAAY,GAAG;AAC1C,UAAME,IAAoBb,EAAoBW,EAAa,MAAM,CAAC,CAAC;AACnE,WAAO,IAAIE,CAAiB,GAAGA,CAAiB,GAAGA,CAAiB;AAAA,EACtE;AAEA,SAAOH;AACT;AAjCgBP,EAAAM,GAAA;AAmCT,SAASK,EAAsBC,GAAmCC,GAAyB;AAChG,QAAMC,IAAgBF,KAAA,gBAAAA,EAAe,OAAO,MAAMhB;AAElD,MAAI,CAACkB,KAAiB,CAACA,EAAc,CAAC;AACpC,WAAOD;AAGT,QAAME,IAAiBT,EAAmBO,CAAe,EAAE,MAAM,CAAC,GAC5DX,IAAM,OAAO,SAASa,EAAe,MAAM,GAAG,CAAC,GAAG,EAAE,GACpDZ,IAAQ,OAAO,SAASY,EAAe,MAAM,GAAG,CAAC,GAAG,EAAE,GACtDX,IAAO,OAAO,SAASW,EAAe,MAAM,GAAG,CAAC,GAAG,EAAE,GACrDC,IAAQF,EAAc,CAAC;AAE7B,SAAO,QAAQZ,CAAG,KAAKC,CAAK,KAAKC,CAAI,KAAKY,CAAK;AACjD;AAdgBhB,EAAAW,GAAA;AAgBT,SAASM,EAAmBnB,GAAgB;AACjD,QAAMoB,IAAapB,KAAA,gBAAAA,EAAO,OAAO,MAAMF;AAEvC,UAAOsB,KAAA,gBAAAA,EAAa,OAAM;AAC5B;AAJgBlB,EAAAiB,GAAA;AAMT,SAASE,EAA2BrB,GAAgB;AACzD,MAAI,CAACA;AACH,WAAO;AAGT,QAAMU,IAAeV,EAAM,KAAA;AAE3B,SACE,oBAAoB,KAAKU,CAAY,KACrCZ,EAAkB,KAAKY,CAAY;AAEvC;AAXgBR,EAAAmB,GAAA;AAkBT,SAASC,EACdC,GACAC,IAA2C,IAC3C;AACA,MAAI,CAACH,EAA2BE,CAAS;AACvC,WAAO;AAGT,QAAME,IAAsBjB,EAAmBe,CAAS,GAClDG,IAAiBF,EAAQ,kBAAkB,WAC3CG,IAAiBH,EAAQ,kBAAkB,WAC3CI,IAAqBC,EAAiBJ,GAAqBC,CAAc,GACzEI,IAAoBD,EAAiBJ,GAAqBE,CAAc;AAE9E,SAAO;AAAA,IACL,OAAOI,EAAQN,GAAqB,IAAI;AAAA,IACxC,MAAMO,EAAOP,GAAqB,IAAI;AAAA,IACtC,cAAcG,KAAsBE,IAAoBJ,IAAiBC;AAAA,EAAA;AAE7E;AAnBgBzB,EAAAoB,GAAA;"}
|