@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.
Files changed (155) hide show
  1. package/configs/theme.d.ts +3 -0
  2. package/configs/theme.js +1 -0
  3. package/dist/_virtual/index11.js +2 -2
  4. package/dist/_virtual/index13.js +2 -2
  5. package/dist/_virtual/index14.js +2 -2
  6. package/dist/_virtual/index15.js +2 -2
  7. package/dist/_virtual/index16.js +4 -4
  8. package/dist/_virtual/index17.js +4 -4
  9. package/dist/_virtual/index18.js +4 -4
  10. package/dist/_virtual/index19.js +4 -4
  11. package/dist/components/OwpPageSkeleton/OwpPageSkeleton.js +4 -4
  12. package/dist/components/OwpTable/OwpDataTable.js +293 -327
  13. package/dist/components/OwpTable/OwpDataTable.js.map +1 -1
  14. package/dist/components/OwpTable/OwpTable.js +102 -117
  15. package/dist/components/OwpTable/OwpTable.js.map +1 -1
  16. package/dist/components/OwpTable/internal/defaultTableStyle.js +50 -0
  17. package/dist/components/OwpTable/internal/defaultTableStyle.js.map +1 -0
  18. package/dist/components/OwpTreeGrid/OwpTreeGrid.js +47 -45
  19. package/dist/components/OwpTreeGrid/OwpTreeGrid.js.map +1 -1
  20. package/dist/components/OwpTreeGrid/internal/treeGridRuntime.js +179 -161
  21. package/dist/components/OwpTreeGrid/internal/treeGridRuntime.js.map +1 -1
  22. package/dist/configs/defaultConfig.js +1 -1
  23. package/dist/configs/theme.js +28 -0
  24. package/dist/configs/theme.js.map +1 -0
  25. package/dist/contexts/OwpAppProvider.js.map +1 -1
  26. package/dist/features/themePreview/components/ThemePreviewCanvas.js +492 -0
  27. package/dist/features/themePreview/components/ThemePreviewCanvas.js.map +1 -0
  28. package/dist/features/themePreview/components/ThemePreviewCanvasSections.js +678 -0
  29. package/dist/features/themePreview/components/ThemePreviewCanvasSections.js.map +1 -0
  30. package/dist/features/themePreview/components/ThemePreviewColorField.js +372 -0
  31. package/dist/features/themePreview/components/ThemePreviewColorField.js.map +1 -0
  32. package/dist/features/themePreview/components/ThemePreviewControls.js +306 -0
  33. package/dist/features/themePreview/components/ThemePreviewControls.js.map +1 -0
  34. package/dist/features/themePreview/components/themePreviewCanvas.icons.js +17 -0
  35. package/dist/features/themePreview/components/themePreviewCanvas.icons.js.map +1 -0
  36. package/dist/features/themePreview/components/themePreviewCanvas.shared.js +296 -0
  37. package/dist/features/themePreview/components/themePreviewCanvas.shared.js.map +1 -0
  38. package/dist/features/themePreview/configs/grid.js +45 -0
  39. package/dist/features/themePreview/configs/grid.js.map +1 -0
  40. package/dist/features/themePreview/configs/presets.js +1074 -0
  41. package/dist/features/themePreview/configs/presets.js.map +1 -0
  42. package/dist/features/themePreview/configs/previewStorage.js +94 -0
  43. package/dist/features/themePreview/configs/previewStorage.js.map +1 -0
  44. package/dist/features/themePreview/configs/settings.js +148 -0
  45. package/dist/features/themePreview/configs/settings.js.map +1 -0
  46. package/dist/features/themePreview/configs/snackbar.js +39 -0
  47. package/dist/features/themePreview/configs/snackbar.js.map +1 -0
  48. package/dist/features/themePreview/configs/surface.js +10 -0
  49. package/dist/features/themePreview/configs/surface.js.map +1 -0
  50. package/dist/features/themePreview/configs/table.js +30 -0
  51. package/dist/features/themePreview/configs/table.js.map +1 -0
  52. package/dist/features/themePreview/defs/ThemePreviewGridDef.xml.js +43 -0
  53. package/dist/features/themePreview/defs/ThemePreviewGridDef.xml.js.map +1 -0
  54. package/dist/features/themePreview/defs/ThemePreviewReadonlyGridDef.xml.js +43 -0
  55. package/dist/features/themePreview/defs/ThemePreviewReadonlyGridDef.xml.js.map +1 -0
  56. package/dist/features/themePreview/dialogs/ThemePreviewDialog.js +441 -0
  57. package/dist/features/themePreview/dialogs/ThemePreviewDialog.js.map +1 -0
  58. package/dist/features/themePreview/hooks/useThemePreview.js +280 -0
  59. package/dist/features/themePreview/hooks/useThemePreview.js.map +1 -0
  60. package/dist/features/themePreview/utils/color.js +79 -0
  61. package/dist/features/themePreview/utils/color.js.map +1 -0
  62. package/dist/features/themePreview/utils/themePreviewDefinitions.js +526 -0
  63. package/dist/features/themePreview/utils/themePreviewDefinitions.js.map +1 -0
  64. package/dist/features/themePreview/utils/themePreviewExport.js +320 -0
  65. package/dist/features/themePreview/utils/themePreviewExport.js.map +1 -0
  66. package/dist/features/themePreview/utils/themePreviewSettings.js +211 -0
  67. package/dist/features/themePreview/utils/themePreviewSettings.js.map +1 -0
  68. package/dist/features/themePreview.js +75 -0
  69. package/dist/features/themePreview.js.map +1 -0
  70. package/dist/layout/components/logo/Logo.js +49 -45
  71. package/dist/layout/components/logo/Logo.js.map +1 -1
  72. package/dist/layout/components/toggles/NavigationSearchToggle.js +3 -3
  73. package/dist/layout/components/toggles/ThemePreviewToggle.js +51 -0
  74. package/dist/layout/components/toggles/ThemePreviewToggle.js.map +1 -0
  75. package/dist/layout/components/toolbar/ToolbarLayout.js +8 -6
  76. package/dist/layout/components/toolbar/ToolbarLayout.js.map +1 -1
  77. 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
  78. 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
  79. 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
  80. 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
  81. 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
  82. 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
  83. 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
  84. 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
  85. 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
  86. 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
  87. 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
  88. 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
  89. 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
  90. 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
  91. 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
  92. 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
  93. 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
  94. 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
  95. 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
  96. 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
  97. 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
  98. 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
  99. 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
  100. 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
  101. 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
  102. 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
  103. package/dist/node_modules/.pnpm/jsbarcode@3.12.1/node_modules/jsbarcode/bin/barcodes/CODE128/index.js +1 -1
  104. package/dist/node_modules/.pnpm/jsbarcode@3.12.1/node_modules/jsbarcode/bin/barcodes/CODE39/index.js +1 -1
  105. package/dist/node_modules/.pnpm/jsbarcode@3.12.1/node_modules/jsbarcode/bin/barcodes/CODE93/constants.js +1 -1
  106. package/dist/node_modules/.pnpm/jsbarcode@3.12.1/node_modules/jsbarcode/bin/barcodes/CODE93/index.js +1 -1
  107. package/dist/node_modules/.pnpm/jsbarcode@3.12.1/node_modules/jsbarcode/bin/barcodes/EAN_UPC/index.js +1 -1
  108. package/dist/node_modules/.pnpm/jsbarcode@3.12.1/node_modules/jsbarcode/bin/barcodes/GenericBarcode/index.js +1 -1
  109. package/dist/node_modules/.pnpm/jsbarcode@3.12.1/node_modules/jsbarcode/bin/barcodes/ITF/constants.js +1 -1
  110. package/dist/node_modules/.pnpm/jsbarcode@3.12.1/node_modules/jsbarcode/bin/barcodes/ITF/index.js +1 -1
  111. package/dist/node_modules/.pnpm/jsbarcode@3.12.1/node_modules/jsbarcode/bin/barcodes/MSI/index.js +1 -1
  112. package/dist/node_modules/.pnpm/jsbarcode@3.12.1/node_modules/jsbarcode/bin/barcodes/codabar/index.js +1 -1
  113. package/dist/node_modules/.pnpm/jsbarcode@3.12.1/node_modules/jsbarcode/bin/barcodes/pharmacode/index.js +1 -1
  114. package/dist/node_modules/.pnpm/jsbarcode@3.12.1/node_modules/jsbarcode/bin/renderers/index.js +1 -1
  115. 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
  116. package/dist/owp-app.css +1 -1
  117. package/dist/types/components/OwpTable/internal/defaultTableStyle.d.ts +49 -0
  118. package/dist/types/components/OwpTreeGrid/OwpTreeGrid.d.ts +2 -1
  119. package/dist/types/components/OwpTreeGrid/internal/treeGridRuntime.d.ts +6 -1
  120. package/dist/types/configs/theme/index.d.ts +6 -0
  121. package/dist/types/contexts/OwpAppProvider.d.ts +2 -0
  122. package/dist/types/features/themePreview/components/ThemePreviewCanvas.d.ts +8 -0
  123. package/dist/types/features/themePreview/components/ThemePreviewCanvasSections.d.ts +82 -0
  124. package/dist/types/features/themePreview/components/ThemePreviewColorField.d.ts +10 -0
  125. package/dist/types/features/themePreview/components/ThemePreviewControls.d.ts +18 -0
  126. package/dist/types/features/themePreview/components/index.d.ts +3 -0
  127. package/dist/types/features/themePreview/components/themePreviewCanvas.icons.d.ts +3 -0
  128. package/dist/types/features/themePreview/components/themePreviewCanvas.shared.d.ts +121 -0
  129. package/dist/types/features/themePreview/configs/grid.d.ts +41 -0
  130. package/dist/types/features/themePreview/configs/index.d.ts +7 -0
  131. package/dist/types/features/themePreview/configs/presets.d.ts +1152 -0
  132. package/dist/types/features/themePreview/configs/previewStorage.d.ts +35 -0
  133. package/dist/types/features/themePreview/configs/settings.d.ts +271 -0
  134. package/dist/types/features/themePreview/configs/snackbar.d.ts +43 -0
  135. package/dist/types/features/themePreview/configs/surface.d.ts +6 -0
  136. package/dist/types/features/themePreview/configs/table.d.ts +47 -0
  137. package/dist/types/features/themePreview/dialogs/ThemePreviewDialog.d.ts +3 -0
  138. package/dist/types/features/themePreview/dialogs/index.d.ts +1 -0
  139. package/dist/types/features/themePreview/hooks/index.d.ts +1 -0
  140. package/dist/types/features/themePreview/hooks/useThemePreview.d.ts +61 -0
  141. package/dist/types/features/themePreview/index.d.ts +6 -0
  142. package/dist/types/features/themePreview/types/index.d.ts +1 -0
  143. package/dist/types/features/themePreview/types/themePreview.d.ts +44 -0
  144. package/dist/types/features/themePreview/utils/color.d.ts +14 -0
  145. package/dist/types/features/themePreview/utils/index.d.ts +4 -0
  146. package/dist/types/features/themePreview/utils/themePreviewDefinitions.d.ts +10 -0
  147. package/dist/types/features/themePreview/utils/themePreviewExport.d.ts +46 -0
  148. package/dist/types/features/themePreview/utils/themePreviewSettings.d.ts +54 -0
  149. package/dist/types/layout/components/toggles/ThemePreviewToggle.d.ts +5 -0
  150. package/dist/types/utils/zipUtil.d.ts +1 -0
  151. package/dist/utils/zipUtil.js +38 -36
  152. package/dist/utils/zipUtil.js.map +1 -1
  153. package/features/themePreview.d.ts +3 -0
  154. package/features/themePreview.js +1 -0
  155. 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":"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"}