@owp/core 2.5.4 → 2.5.5

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 (149) hide show
  1. package/dist/_virtual/index10.js +2 -2
  2. package/dist/_virtual/index11.js +2 -2
  3. package/dist/_virtual/index12.js +2 -2
  4. package/dist/_virtual/index13.js +2 -2
  5. package/dist/_virtual/index15.js +2 -2
  6. package/dist/_virtual/index16.js +4 -4
  7. package/dist/_virtual/index17.js +4 -4
  8. package/dist/_virtual/index18.js +4 -4
  9. package/dist/_virtual/index19.js +4 -4
  10. package/dist/_virtual/index5.js +2 -2
  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/contexts/OwpAppProvider.js.map +1 -1
  23. package/dist/features/themePreview/components/ThemePreviewCanvas.js +492 -0
  24. package/dist/features/themePreview/components/ThemePreviewCanvas.js.map +1 -0
  25. package/dist/features/themePreview/components/ThemePreviewCanvasSections.js +678 -0
  26. package/dist/features/themePreview/components/ThemePreviewCanvasSections.js.map +1 -0
  27. package/dist/features/themePreview/components/ThemePreviewColorField.js +301 -0
  28. package/dist/features/themePreview/components/ThemePreviewColorField.js.map +1 -0
  29. package/dist/features/themePreview/components/ThemePreviewControls.js +306 -0
  30. package/dist/features/themePreview/components/ThemePreviewControls.js.map +1 -0
  31. package/dist/features/themePreview/components/themePreviewCanvas.icons.js +17 -0
  32. package/dist/features/themePreview/components/themePreviewCanvas.icons.js.map +1 -0
  33. package/dist/features/themePreview/components/themePreviewCanvas.shared.js +296 -0
  34. package/dist/features/themePreview/components/themePreviewCanvas.shared.js.map +1 -0
  35. package/dist/features/themePreview/configs/grid.js +45 -0
  36. package/dist/features/themePreview/configs/grid.js.map +1 -0
  37. package/dist/features/themePreview/configs/presets.js +1106 -0
  38. package/dist/features/themePreview/configs/presets.js.map +1 -0
  39. package/dist/features/themePreview/configs/previewStorage.js +93 -0
  40. package/dist/features/themePreview/configs/previewStorage.js.map +1 -0
  41. package/dist/features/themePreview/configs/settings.js +148 -0
  42. package/dist/features/themePreview/configs/settings.js.map +1 -0
  43. package/dist/features/themePreview/configs/snackbar.js +39 -0
  44. package/dist/features/themePreview/configs/snackbar.js.map +1 -0
  45. package/dist/features/themePreview/configs/surface.js +10 -0
  46. package/dist/features/themePreview/configs/surface.js.map +1 -0
  47. package/dist/features/themePreview/configs/table.js +30 -0
  48. package/dist/features/themePreview/configs/table.js.map +1 -0
  49. package/dist/features/themePreview/defs/ThemePreviewGridDef.xml.js +43 -0
  50. package/dist/features/themePreview/defs/ThemePreviewGridDef.xml.js.map +1 -0
  51. package/dist/features/themePreview/defs/ThemePreviewReadonlyGridDef.xml.js +43 -0
  52. package/dist/features/themePreview/defs/ThemePreviewReadonlyGridDef.xml.js.map +1 -0
  53. package/dist/features/themePreview/dialogs/ThemePreviewDialog.js +429 -0
  54. package/dist/features/themePreview/dialogs/ThemePreviewDialog.js.map +1 -0
  55. package/dist/features/themePreview/hooks/useThemePreview.js +235 -0
  56. package/dist/features/themePreview/hooks/useThemePreview.js.map +1 -0
  57. package/dist/features/themePreview/utils/color.js +79 -0
  58. package/dist/features/themePreview/utils/color.js.map +1 -0
  59. package/dist/features/themePreview/utils/themePreviewDefinitions.js +526 -0
  60. package/dist/features/themePreview/utils/themePreviewDefinitions.js.map +1 -0
  61. package/dist/features/themePreview/utils/themePreviewExport.js +111 -0
  62. package/dist/features/themePreview/utils/themePreviewExport.js.map +1 -0
  63. package/dist/features/themePreview/utils/themePreviewSettings.js +211 -0
  64. package/dist/features/themePreview/utils/themePreviewSettings.js.map +1 -0
  65. package/dist/features/themePreview.js +75 -0
  66. package/dist/features/themePreview.js.map +1 -0
  67. package/dist/layout/components/logo/Logo.js +49 -45
  68. package/dist/layout/components/logo/Logo.js.map +1 -1
  69. package/dist/layout/components/toggles/NavigationSearchToggle.js +3 -3
  70. package/dist/layout/components/toggles/ThemePreviewToggle.js +51 -0
  71. package/dist/layout/components/toggles/ThemePreviewToggle.js.map +1 -0
  72. package/dist/layout/components/toolbar/ToolbarLayout.js +8 -6
  73. package/dist/layout/components/toolbar/ToolbarLayout.js.map +1 -1
  74. 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
  75. 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
  76. 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
  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/DownloadOutlined.js.map +1 -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/ErrorOutline.js +9 -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/ErrorOutline.js.map +1 -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/InfoOutlined.js +9 -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/InfoOutlined.js.map +1 -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/KeyboardArrowUpRounded.js +9 -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/KeyboardArrowUpRounded.js.map +1 -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/MenuRounded.js +9 -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/MenuRounded.js.map +1 -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/NotificationsNoneOutlined.js +9 -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/NotificationsNoneOutlined.js.map +1 -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/PaletteOutlined.js +25 -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/PaletteOutlined.js.map +1 -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/RestoreOutlined.js +9 -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/RestoreOutlined.js.map +1 -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/SaveOutlined.js +9 -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/SaveOutlined.js.map +1 -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/SpaceDashboardOutlined.js +9 -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/SpaceDashboardOutlined.js.map +1 -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/UploadFileOutlined.js +9 -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/UploadFileOutlined.js.map +1 -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/WarningAmberRounded.js +9 -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/WarningAmberRounded.js.map +1 -0
  100. package/dist/node_modules/.pnpm/jsbarcode@3.12.1/node_modules/jsbarcode/bin/barcodes/CODE128/constants.js +1 -1
  101. package/dist/node_modules/.pnpm/jsbarcode@3.12.1/node_modules/jsbarcode/bin/barcodes/CODE128/index.js +1 -1
  102. package/dist/node_modules/.pnpm/jsbarcode@3.12.1/node_modules/jsbarcode/bin/barcodes/CODE39/index.js +1 -1
  103. package/dist/node_modules/.pnpm/jsbarcode@3.12.1/node_modules/jsbarcode/bin/barcodes/CODE93/index.js +1 -1
  104. package/dist/node_modules/.pnpm/jsbarcode@3.12.1/node_modules/jsbarcode/bin/barcodes/EAN_UPC/index.js +1 -1
  105. package/dist/node_modules/.pnpm/jsbarcode@3.12.1/node_modules/jsbarcode/bin/barcodes/GenericBarcode/index.js +1 -1
  106. package/dist/node_modules/.pnpm/jsbarcode@3.12.1/node_modules/jsbarcode/bin/barcodes/ITF/constants.js +1 -1
  107. package/dist/node_modules/.pnpm/jsbarcode@3.12.1/node_modules/jsbarcode/bin/barcodes/ITF/index.js +1 -1
  108. package/dist/node_modules/.pnpm/jsbarcode@3.12.1/node_modules/jsbarcode/bin/barcodes/MSI/index.js +1 -1
  109. package/dist/node_modules/.pnpm/jsbarcode@3.12.1/node_modules/jsbarcode/bin/barcodes/codabar/index.js +1 -1
  110. package/dist/node_modules/.pnpm/jsbarcode@3.12.1/node_modules/jsbarcode/bin/barcodes/pharmacode/index.js +1 -1
  111. package/dist/node_modules/.pnpm/jsbarcode@3.12.1/node_modules/jsbarcode/bin/renderers/index.js +1 -1
  112. package/dist/node_modules/.pnpm/react-is@16.13.1/node_modules/react-is/index.js +1 -1
  113. 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
  114. package/dist/owp-app.css +1 -1
  115. package/dist/types/components/OwpTable/internal/defaultTableStyle.d.ts +49 -0
  116. package/dist/types/components/OwpTreeGrid/OwpTreeGrid.d.ts +2 -1
  117. package/dist/types/components/OwpTreeGrid/internal/treeGridRuntime.d.ts +6 -1
  118. package/dist/types/contexts/OwpAppProvider.d.ts +2 -0
  119. package/dist/types/features/themePreview/components/ThemePreviewCanvas.d.ts +8 -0
  120. package/dist/types/features/themePreview/components/ThemePreviewCanvasSections.d.ts +82 -0
  121. package/dist/types/features/themePreview/components/ThemePreviewColorField.d.ts +10 -0
  122. package/dist/types/features/themePreview/components/ThemePreviewControls.d.ts +18 -0
  123. package/dist/types/features/themePreview/components/index.d.ts +3 -0
  124. package/dist/types/features/themePreview/components/themePreviewCanvas.icons.d.ts +3 -0
  125. package/dist/types/features/themePreview/components/themePreviewCanvas.shared.d.ts +121 -0
  126. package/dist/types/features/themePreview/configs/grid.d.ts +41 -0
  127. package/dist/types/features/themePreview/configs/index.d.ts +7 -0
  128. package/dist/types/features/themePreview/configs/presets.d.ts +1153 -0
  129. package/dist/types/features/themePreview/configs/previewStorage.d.ts +34 -0
  130. package/dist/types/features/themePreview/configs/settings.d.ts +271 -0
  131. package/dist/types/features/themePreview/configs/snackbar.d.ts +43 -0
  132. package/dist/types/features/themePreview/configs/surface.d.ts +6 -0
  133. package/dist/types/features/themePreview/configs/table.d.ts +47 -0
  134. package/dist/types/features/themePreview/dialogs/ThemePreviewDialog.d.ts +3 -0
  135. package/dist/types/features/themePreview/dialogs/index.d.ts +1 -0
  136. package/dist/types/features/themePreview/hooks/index.d.ts +1 -0
  137. package/dist/types/features/themePreview/hooks/useThemePreview.d.ts +60 -0
  138. package/dist/types/features/themePreview/index.d.ts +6 -0
  139. package/dist/types/features/themePreview/types/index.d.ts +1 -0
  140. package/dist/types/features/themePreview/types/themePreview.d.ts +44 -0
  141. package/dist/types/features/themePreview/utils/color.d.ts +14 -0
  142. package/dist/types/features/themePreview/utils/index.d.ts +4 -0
  143. package/dist/types/features/themePreview/utils/themePreviewDefinitions.d.ts +10 -0
  144. package/dist/types/features/themePreview/utils/themePreviewExport.d.ts +1091 -0
  145. package/dist/types/features/themePreview/utils/themePreviewSettings.d.ts +54 -0
  146. package/dist/types/layout/components/toggles/ThemePreviewToggle.d.ts +5 -0
  147. package/features/themePreview.d.ts +3 -0
  148. package/features/themePreview.js +1 -0
  149. package/package.json +2 -1
@@ -0,0 +1,235 @@
1
+ var Q = Object.defineProperty;
2
+ var a = (o, S) => Q(o, "name", { value: S, configurable: !0 });
3
+ import { getThemePreviewTemporaryState as L, persistThemePreviewTemporaryState as B, clearThemePreviewAppliedSettings as X, persistThemePreviewAppliedSettings as I } from "../configs/previewStorage.js";
4
+ import { defaultSnackbarTheme as T } from "../configs/snackbar.js";
5
+ import { useGetCurrentSettings as Z, useSetDefaultSettings as $ } from "../../../hooks/useOwpSettings.js";
6
+ import { useMemo as k, useState as v } from "react";
7
+ import { getThemePreviewPresetOptions as ee, getThemePreviewResetSettings as te, getThemePreviewDraftSettings as ne, getThemePreviewSelectionState as ae, cloneThemePreviewSettings as C, getThemePreviewPresetOptionsByMode as re, applyThemePreviewPreset as _, THEME_PREVIEW_CUSTOM_PRESET_KEY as f, setThemePreviewDraftSettings as q, setThemePreviewPaletteValues as se, setThemePreviewPaletteValue as oe, isThemePreviewCustomSection as ie, setThemePreviewSelectionState as ce } from "../utils/themePreviewSettings.js";
8
+ import { merge as u } from "../../../node_modules/.pnpm/es-toolkit@1.39.10/node_modules/es-toolkit/dist/compat/object/merge.js";
9
+ import { isEqual as x } from "../../../node_modules/.pnpm/es-toolkit@1.39.10/node_modules/es-toolkit/dist/predicate/isEqual.js";
10
+ const le = {
11
+ main: f,
12
+ navbar: f,
13
+ toolbar: f
14
+ };
15
+ function b(o) {
16
+ return !ie(o);
17
+ }
18
+ a(b, "isThemePreviewPresetSectionKey");
19
+ function de(o) {
20
+ return {
21
+ main: o.theme.main.palette.mode === "dark" ? "dark" : "light",
22
+ navbar: o.theme.navbar.palette.mode === "dark" ? "dark" : "light",
23
+ toolbar: o.theme.toolbar.palette.mode === "dark" ? "dark" : "light"
24
+ };
25
+ }
26
+ a(de, "getThemePreviewSelectedModes");
27
+ function G(o, S, p, d, i) {
28
+ return {
29
+ draftSettings: C(S),
30
+ savedAt: (/* @__PURE__ */ new Date()).toISOString(),
31
+ saveType: i,
32
+ selectionState: {
33
+ activeSection: o,
34
+ selectedModes: d,
35
+ selectedPresetKeys: p
36
+ },
37
+ version: 1
38
+ };
39
+ }
40
+ a(G, "createThemePreviewTemporaryState");
41
+ function me(o, S, p, d) {
42
+ return {
43
+ draftSettings: S,
44
+ selectionState: {
45
+ activeSection: o,
46
+ selectedModes: d,
47
+ selectedPresetKeys: p
48
+ }
49
+ };
50
+ }
51
+ a(me, "createThemePreviewTemporaryComparableState");
52
+ function De({
53
+ initialSection: o = "main",
54
+ initialPresetKeys: S,
55
+ presetThemes: p,
56
+ resetTheme: d
57
+ }) {
58
+ const i = Z(), w = $(), K = k(() => ee(p), [p]), H = k(
59
+ () => te(i, d, T),
60
+ [i, d]
61
+ ), U = k(
62
+ () => u({}, T, i.snackbar),
63
+ [i]
64
+ ), [n, D] = v(o), [s, W] = v(
65
+ () => ne(i)
66
+ ), A = k(
67
+ () => ae(i, S),
68
+ [i, S]
69
+ ), [c, Y] = v(
70
+ A.selectedPresetKeys
71
+ ), [m, j] = v(A.selectedModes), [y, M] = v(() => L()), z = !!y, F = !y || !x(
72
+ me(
73
+ n,
74
+ s,
75
+ c,
76
+ m
77
+ ),
78
+ {
79
+ draftSettings: y.draftSettings,
80
+ selectionState: y.selectionState
81
+ }
82
+ ), J = !x(i.theme, s.theme) || !x(U, s.snackbar), E = /* @__PURE__ */ a((e, t) => {
83
+ ce({
84
+ selectedPresetKeys: e,
85
+ selectedModes: t
86
+ });
87
+ }, "persistSelectionState"), N = /* @__PURE__ */ a((e) => (q(e), e), "persistDraftSettings"), P = /* @__PURE__ */ a((e) => (W(e), N(e)), "commitDraftSettings"), h = /* @__PURE__ */ a((e, t) => {
88
+ Y(e), j(t), E(e, t);
89
+ }, "commitSelectionState");
90
+ return {
91
+ activeSection: n,
92
+ canApplyToMain: J,
93
+ draftSettings: s,
94
+ hasTemporaryChanges: F,
95
+ hasTemporarySnapshot: z,
96
+ presetOptions: K,
97
+ selectedModes: m,
98
+ selectedPresetKeys: c,
99
+ setActiveSection: D,
100
+ handlePaletteValueChange: /* @__PURE__ */ a((e, t) => {
101
+ if (P(oe(s, n, e, t)), !b(n))
102
+ return;
103
+ const r = {
104
+ ...c,
105
+ [n]: f
106
+ };
107
+ h(r, m);
108
+ }, "handlePaletteValueChange"),
109
+ handlePaletteValuesChange: /* @__PURE__ */ a((e) => {
110
+ if (!e.length || (P(se(s, n, e)), !b(n)))
111
+ return;
112
+ const t = {
113
+ ...c,
114
+ [n]: f
115
+ };
116
+ h(t, m);
117
+ }, "handlePaletteValuesChange"),
118
+ handleApplyToMain: /* @__PURE__ */ a(() => {
119
+ const e = G(
120
+ n,
121
+ s,
122
+ c,
123
+ m,
124
+ "manual"
125
+ );
126
+ q(s), E(c, m), B(e), I({
127
+ theme: s.theme,
128
+ snackbar: s.snackbar
129
+ }), M(e), w({
130
+ theme: s.theme,
131
+ snackbar: s.snackbar
132
+ });
133
+ }, "handleApplyToMain"),
134
+ handleLoadSettings: /* @__PURE__ */ a((e, t = T) => {
135
+ const r = u({}, i, {
136
+ theme: e,
137
+ snackbar: u({}, T, t)
138
+ }), l = de(r);
139
+ P(r), h(le, l), I({
140
+ theme: e,
141
+ snackbar: r.snackbar
142
+ }), w({
143
+ theme: e,
144
+ snackbar: r.snackbar
145
+ });
146
+ }, "handleLoadSettings"),
147
+ handlePresetKeyChange: /* @__PURE__ */ a((e) => {
148
+ if (!b(n) || e === f)
149
+ return;
150
+ const t = p[e];
151
+ if (!t)
152
+ return;
153
+ P(_(s, n, t));
154
+ const r = {
155
+ ...m,
156
+ [n]: t.palette.mode === "dark" ? "dark" : "light"
157
+ }, l = {
158
+ ...c,
159
+ [n]: e
160
+ };
161
+ h(l, r);
162
+ }, "handlePresetKeyChange"),
163
+ handlePresetModeChange: /* @__PURE__ */ a((e) => {
164
+ if (!b(n))
165
+ return;
166
+ const t = {
167
+ ...m,
168
+ [n]: e
169
+ }, r = re(
170
+ K,
171
+ n,
172
+ e
173
+ )[0];
174
+ if (!r) {
175
+ h(c, t);
176
+ return;
177
+ }
178
+ const l = p[r.key];
179
+ if (!l) {
180
+ h(c, t);
181
+ return;
182
+ }
183
+ P(_(s, n, l));
184
+ const g = {
185
+ ...c,
186
+ [n]: r.key
187
+ };
188
+ h(g, t);
189
+ }, "handlePresetModeChange"),
190
+ handleReset: /* @__PURE__ */ a(() => {
191
+ var r, l, g, V, O, R;
192
+ const e = C(H), t = {
193
+ main: ((l = (r = d.main) == null ? void 0 : r.palette) == null ? void 0 : l.mode) === "dark" ? "dark" : "light",
194
+ navbar: ((V = (g = d.navbar) == null ? void 0 : g.palette) == null ? void 0 : V.mode) === "dark" ? "dark" : "light",
195
+ toolbar: ((R = (O = d.toolbar) == null ? void 0 : O.palette) == null ? void 0 : R.mode) === "dark" ? "dark" : "light"
196
+ };
197
+ P(e), h(S, t), X(), w({
198
+ theme: d,
199
+ snackbar: T
200
+ });
201
+ }, "handleReset"),
202
+ handleTemporaryLoad: /* @__PURE__ */ a(() => {
203
+ const e = L();
204
+ if (!e)
205
+ return !1;
206
+ const t = C(
207
+ u({}, i, e.draftSettings)
208
+ ), r = u(
209
+ {},
210
+ c,
211
+ e.selectionState.selectedPresetKeys
212
+ ), l = u(
213
+ {},
214
+ m,
215
+ e.selectionState.selectedModes
216
+ ), g = e.selectionState.activeSection;
217
+ return P(t), D(g), h(r, l), M(e), !0;
218
+ }, "handleTemporaryLoad"),
219
+ handleTemporarySave: /* @__PURE__ */ a((e = "manual") => {
220
+ const t = G(
221
+ n,
222
+ s,
223
+ c,
224
+ m,
225
+ e
226
+ );
227
+ B(t), M(t);
228
+ }, "handleTemporarySave")
229
+ };
230
+ }
231
+ a(De, "useThemePreview");
232
+ export {
233
+ De as useThemePreview
234
+ };
235
+ //# 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 { defaultSnackbarTheme } 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';\n\ninterface UseThemePreviewOptions {\n initialSection?: ThemePreviewSectionKey;\n initialPresetKeys: ThemePreviewPresetKeyBySection;\n presetThemes: ThemePreviewPresetThemes;\n resetTheme: PartialDeep<OwpSettingsConfigType['theme']>;\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: new Date().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 resetSettings = useMemo(\n () => getThemePreviewResetSettings(currentSettings, resetTheme, defaultSnackbarTheme),\n [currentSettings, resetTheme],\n );\n const currentSnackbarTheme = useMemo(\n () => merge({}, defaultSnackbarTheme, currentSettings.snackbar),\n [currentSettings],\n );\n\n const [activeSection, setActiveSection] = useState<ThemePreviewSectionKey>(initialSection);\n const [draftSettings, setDraftSettings] = useState<ThemePreviewSettings>(() =>\n getThemePreviewDraftSettings(currentSettings),\n );\n const initialSelectionState = useMemo(\n () => getThemePreviewSelectionState(currentSettings, _initialPresetKeys),\n [currentSettings, _initialPresetKeys],\n );\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 hasTemporarySnapshot = Boolean(temporarySnapshot);\n const hasTemporaryChanges =\n !temporarySnapshot ||\n !isEqual(\n createThemePreviewTemporaryComparableState(\n activeSection,\n draftSettings,\n selectedPresetKeys,\n selectedModes,\n ),\n {\n draftSettings: temporarySnapshot.draftSettings,\n selectionState: temporarySnapshot.selectionState,\n },\n );\n const canApplyToMain =\n !isEqual(currentSettings.theme, draftSettings.theme) ||\n !isEqual(currentSnackbarTheme, draftSettings.snackbar);\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 = cloneThemePreviewSettings(resetSettings);\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 clearThemePreviewAppliedSettings();\n setDefaultSettings({\n theme: resetTheme,\n snackbar: defaultSnackbarTheme,\n });\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 });\n setTemporarySnapshot(nextTemporaryState);\n setDefaultSettings({\n theme: draftSettings.theme,\n snackbar: draftSettings.snackbar,\n });\n };\n\n const handleLoadSettings = (\n theme: OwpSettingsConfigType['theme'],\n snackbarTheme = defaultSnackbarTheme,\n ) => {\n const nextDraftSettings = merge({}, currentSettings, {\n theme,\n snackbar: merge({}, defaultSnackbarTheme, snackbarTheme),\n }) as ThemePreviewSettings;\n const nextSelectedModes = getThemePreviewSelectedModes(nextDraftSettings);\n\n commitDraftSettings(nextDraftSettings);\n commitSelectionState(themePreviewCustomPresetKeys, nextSelectedModes);\n persistThemePreviewAppliedSettings({\n theme,\n snackbar: nextDraftSettings.snackbar,\n });\n setDefaultSettings({\n theme,\n snackbar: nextDraftSettings.snackbar,\n });\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 };\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\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","createThemePreviewTemporaryComparableState","useThemePreview","initialSection","_initialPresetKeys","presetThemes","resetTheme","currentSettings","useGetCurrentSettings","setDefaultSettings","useSetDefaultSettings","presetOptions","useMemo","getThemePreviewPresetOptions","resetSettings","getThemePreviewResetSettings","defaultSnackbarTheme","currentSnackbarTheme","merge","setActiveSection","useState","setDraftSettings","getThemePreviewDraftSettings","initialSelectionState","getThemePreviewSelectionState","setSelectedPresetKeys","setSelectedModes","temporarySnapshot","setTemporarySnapshot","getThemePreviewTemporaryState","hasTemporarySnapshot","hasTemporaryChanges","isEqual","canApplyToMain","persistSelectionState","nextPresetKeys","nextSelectedModes","setThemePreviewSelectionState","persistDraftSettings","nextDraftSettings","setThemePreviewDraftSettings","commitDraftSettings","commitSelectionState","path","value","setThemePreviewPaletteValue","updates","setThemePreviewPaletteValues","nextTemporaryState","persistThemePreviewTemporaryState","persistThemePreviewAppliedSettings","theme","snackbarTheme","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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"}