@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,320 @@
1
+ var g = Object.defineProperty;
2
+ var t = (e, r) => g(e, "name", { value: r, configurable: !0 });
3
+ import { defaultGridTheme as k } from "../configs/grid.js";
4
+ import { defaultSnackbarProviderProps as h, defaultSnackbarTheme as P } from "../configs/snackbar.js";
5
+ import { defaultTableTheme as v } from "../configs/table.js";
6
+ import { themesConfig as x, defaultToolbarDivider as S, defaultNavbarDivider as w, defaultToolbarSecondaryPalette as s, defaultNavbarSecondaryPalette as f, defaultSecondaryPalette as m, defaultPrimaryPalette as d, darkPaletteText as C, lightPaletteText as _ } from "../configs/presets.js";
7
+ import { defaultSettingsConfig as u } from "../configs/settings.js";
8
+ import { defaultLayoutSurface as T } from "../configs/surface.js";
9
+ const E = ["main", "navbar", "toolbar"], $ = ["toolbar", "navbar", "main"], c = {
10
+ defaultGridTheme: "__OWP_THEME_PREVIEW_DEFAULT_GRID_THEME__",
11
+ defaultSnackbarProviderProps: "__OWP_THEME_PREVIEW_DEFAULT_SNACKBAR_PROVIDER_PROPS__",
12
+ defaultSnackbarTheme: "__OWP_THEME_PREVIEW_DEFAULT_SNACKBAR_THEME__",
13
+ defaultTableTheme: "__OWP_THEME_PREVIEW_DEFAULT_TABLE_THEME__"
14
+ };
15
+ function b(e, r, n, l) {
16
+ const i = n.find(
17
+ (p) => e.theme[p].palette.mode === r
18
+ ), o = i ? e.theme[i].palette.text : void 0;
19
+ return {
20
+ primary: (o == null ? void 0 : o.primary) ?? l.primary ?? "",
21
+ secondary: (o == null ? void 0 : o.secondary) ?? l.secondary ?? "",
22
+ disabled: (o == null ? void 0 : o.disabled) ?? l.disabled ?? ""
23
+ };
24
+ }
25
+ t(b, "getThemePreviewTextPalette");
26
+ function N(e) {
27
+ const r = e.theme.navbar.palette.primary ?? T;
28
+ return {
29
+ light: r.light ?? T.light,
30
+ main: r.main ?? T.main,
31
+ dark: r.dark ?? T.dark,
32
+ contrastText: r.contrastText ?? T.contrastText
33
+ };
34
+ }
35
+ t(N, "getThemePreviewSurfaceExport");
36
+ function O(e) {
37
+ const r = e.theme.main.palette.primary ?? d;
38
+ return {
39
+ light: r.light ?? d.light,
40
+ main: r.main ?? d.main,
41
+ dark: r.dark ?? d.dark,
42
+ contrastText: r.contrastText ?? d.contrastText
43
+ };
44
+ }
45
+ t(O, "getThemePreviewPrimaryPaletteExport");
46
+ function R(e) {
47
+ const r = e.theme.main.palette.secondary ?? m;
48
+ return {
49
+ light: r.light ?? m.light,
50
+ main: r.main ?? m.main,
51
+ dark: r.dark ?? m.dark,
52
+ contrastText: r.contrastText ?? m.contrastText
53
+ };
54
+ }
55
+ t(R, "getThemePreviewSecondaryPaletteExport");
56
+ function A(e) {
57
+ const r = e.theme.navbar.palette.secondary ?? f;
58
+ return {
59
+ main: r.main ?? f.main,
60
+ contrastText: r.contrastText ?? f.contrastText
61
+ };
62
+ }
63
+ t(A, "getThemePreviewNavbarSecondaryPaletteExport");
64
+ function V(e) {
65
+ const r = e.theme.toolbar.palette.secondary ?? s;
66
+ return {
67
+ light: r.light ?? s.light,
68
+ main: r.main ?? s.main,
69
+ dark: r.dark ?? s.dark,
70
+ contrastText: r.contrastText ?? s.contrastText
71
+ };
72
+ }
73
+ t(V, "getThemePreviewToolbarSecondaryPaletteExport");
74
+ function y(e) {
75
+ return e.replace(/\\/g, "\\\\").replace(/'/g, "\\'").replace(/\r/g, "\\r").replace(/\n/g, "\\n");
76
+ }
77
+ t(y, "escapeTsString");
78
+ function D(e) {
79
+ return /^[A-Za-z_$][A-Za-z0-9_$]*$/.test(e) ? e : `'${y(e)}'`;
80
+ }
81
+ t(D, "formatTsPropertyKey");
82
+ function a(e, r = 0) {
83
+ const n = " ".repeat(r), l = " ".repeat(r + 1);
84
+ if (Array.isArray(e))
85
+ return e.length ? `[
86
+ ${e.map((i) => `${l}${a(i, r + 1)}`).join(`,
87
+ `)}
88
+ ${n}]` : "[]";
89
+ if (e && typeof e == "object") {
90
+ const i = Object.entries(e).filter(
91
+ ([, o]) => o !== void 0
92
+ );
93
+ return i.length ? `{
94
+ ${i.map(([o, p]) => `${l}${D(o)}: ${a(p, r + 1)}`).join(`,
95
+ `)}
96
+ ${n}}` : "{}";
97
+ }
98
+ return typeof e == "string" ? `'${y(e)}'` : typeof e == "number" || typeof e == "boolean" ? String(e) : e === null ? "null" : "undefined";
99
+ }
100
+ t(a, "toTsLiteral");
101
+ function j(e, r) {
102
+ return Object.entries(r).reduce((n, [l, i]) => n.split(`'${l}'`).join(i), e);
103
+ }
104
+ t(j, "replaceTsReferenceTokens");
105
+ function F(e) {
106
+ const r = e.theme.main.grid ?? k;
107
+ return [
108
+ "import type { OwpGridThemeConfigType } from '@owp/core/types';",
109
+ "",
110
+ `export const defaultGridTheme = ${a(r)} satisfies OwpGridThemeConfigType;`,
111
+ ""
112
+ ].join(`
113
+ `);
114
+ }
115
+ t(F, "createThemePreviewGridConfigFile");
116
+ function G(e) {
117
+ return [
118
+ `export const defaultLayoutSurface = ${a(e.surface.defaultLayoutSurface)} as const;`,
119
+ ""
120
+ ].join(`
121
+ `);
122
+ }
123
+ t(G, "createThemePreviewSurfaceConfigFile");
124
+ function L(e) {
125
+ return [
126
+ `export const lightPaletteText = ${a(e.presets.lightPaletteText)};`,
127
+ "",
128
+ `export const darkPaletteText = ${a(e.presets.darkPaletteText)};`,
129
+ "",
130
+ `export const defaultPrimaryPalette = ${a(e.presets.defaultPrimaryPalette)};`,
131
+ "",
132
+ `export const defaultSecondaryPalette = ${a(e.presets.defaultSecondaryPalette)};`,
133
+ "",
134
+ `export const defaultNavbarSecondaryPalette = ${a(e.presets.defaultNavbarSecondaryPalette)};`,
135
+ "",
136
+ `export const defaultNavbarDivider = ${a(e.presets.defaultNavbarDivider)};`,
137
+ "",
138
+ `export const defaultToolbarDivider = ${a(e.presets.defaultToolbarDivider)};`,
139
+ "",
140
+ `export const defaultToolbarSecondaryPalette = ${a(e.presets.defaultToolbarSecondaryPalette)};`,
141
+ ""
142
+ ].join(`
143
+ `);
144
+ }
145
+ t(L, "createThemePreviewPresetsConfigFile");
146
+ function H(e) {
147
+ const r = e.snackbar ?? P, n = e.snackbarProviderProps ?? h;
148
+ return [
149
+ "import type { SnackbarProviderProps } from 'notistack';",
150
+ "",
151
+ "export const snackbarVariantKeys = ['default', 'success', 'info', 'warning', 'error'] as const;",
152
+ "",
153
+ "export type SnackbarVariantKey = (typeof snackbarVariantKeys)[number];",
154
+ "",
155
+ "export type SnackbarVariantTheme = {",
156
+ " backgroundColor: string;",
157
+ " color: string;",
158
+ "};",
159
+ "",
160
+ "export type SnackbarTheme = Record<SnackbarVariantKey, SnackbarVariantTheme>;",
161
+ "",
162
+ "export type SnackbarProviderTheme = Omit<SnackbarProviderProps, 'children'>;",
163
+ "",
164
+ `export const defaultSnackbarTheme = ${a(r)} satisfies SnackbarTheme;`,
165
+ "",
166
+ `export const defaultSnackbarProviderProps = ${a(n)} satisfies SnackbarProviderTheme;`,
167
+ ""
168
+ ].join(`
169
+ `);
170
+ }
171
+ t(H, "createThemePreviewSnackbarConfigFile");
172
+ function W(e) {
173
+ const r = e.theme.main.table ?? v;
174
+ return [
175
+ "import type { OwpTableThemeConfigType } from '@owp/core/types';",
176
+ "",
177
+ "type OwpTableHeaderConfigType = NonNullable<OwpTableThemeConfigType['header']>;",
178
+ "type OwpTableCellConfigType = NonNullable<OwpTableThemeConfigType['cell']>;",
179
+ "",
180
+ "export type ThemePreviewTableCellConfigType = OwpTableCellConfigType & {",
181
+ " backgroundColor?: string;",
182
+ "};",
183
+ "",
184
+ "export type ThemePreviewTableVariantConfigType = {",
185
+ " header?: OwpTableHeaderConfigType;",
186
+ " cell?: ThemePreviewTableCellConfigType;",
187
+ "};",
188
+ "",
189
+ "export type ThemePreviewTableRowConfigType = {",
190
+ " backgroundColor?: string;",
191
+ " hoverBackgroundColor?: string;",
192
+ " selectedBackgroundColor?: string;",
193
+ "};",
194
+ "",
195
+ "export type ThemePreviewTableConfigType = ThemePreviewTableVariantConfigType & {",
196
+ " borderRadius?: number | string;",
197
+ " field?: ThemePreviewTableVariantConfigType;",
198
+ " row?: ThemePreviewTableRowConfigType;",
199
+ "};",
200
+ "",
201
+ `export const defaultTableTheme = ${a(r)} satisfies ThemePreviewTableConfigType;`,
202
+ ""
203
+ ].join(`
204
+ `);
205
+ }
206
+ t(W, "createThemePreviewTableConfigFile");
207
+ function I(e) {
208
+ const r = {
209
+ customScrollbars: u.customScrollbars,
210
+ direction: u.direction,
211
+ snackbar: c.defaultSnackbarTheme,
212
+ snackbarProviderProps: c.defaultSnackbarProviderProps,
213
+ theme: {
214
+ ...e.theme,
215
+ main: {
216
+ ...e.theme.main,
217
+ grid: c.defaultGridTheme,
218
+ table: c.defaultTableTheme
219
+ }
220
+ }
221
+ };
222
+ return [
223
+ "import type { OwpSettingsConfigType } from '@owp/core/types';",
224
+ "import type { PartialDeep } from 'type-fest';",
225
+ "import { defaultGridTheme } from './grid';",
226
+ "import { defaultSnackbarProviderProps, defaultSnackbarTheme } from './snackbar';",
227
+ "import { defaultTableTheme } from './table';",
228
+ "",
229
+ `export const defaultSettingsConfig = ${j(a(r), {
230
+ [c.defaultGridTheme]: "defaultGridTheme",
231
+ [c.defaultSnackbarProviderProps]: "defaultSnackbarProviderProps",
232
+ [c.defaultSnackbarTheme]: "defaultSnackbarTheme",
233
+ [c.defaultTableTheme]: "defaultTableTheme"
234
+ })} as PartialDeep<OwpSettingsConfigType> & {`,
235
+ " snackbarProviderProps: typeof defaultSnackbarProviderProps;",
236
+ "};",
237
+ ""
238
+ ].join(`
239
+ `);
240
+ }
241
+ t(I, "createThemePreviewSettingsConfigFile");
242
+ function K(e) {
243
+ const r = e.snackbarProviderProps ?? h;
244
+ return {
245
+ surface: {
246
+ defaultLayoutSurface: N(e)
247
+ },
248
+ presets: {
249
+ lightPaletteText: b(
250
+ e,
251
+ "light",
252
+ E,
253
+ _
254
+ ),
255
+ darkPaletteText: b(
256
+ e,
257
+ "dark",
258
+ $,
259
+ C
260
+ ),
261
+ defaultPrimaryPalette: O(e),
262
+ defaultSecondaryPalette: R(e),
263
+ defaultNavbarDivider: e.theme.navbar.palette.divider ?? w,
264
+ defaultNavbarSecondaryPalette: A(e),
265
+ defaultToolbarDivider: e.theme.toolbar.palette.divider ?? S,
266
+ defaultToolbarSecondaryPalette: V(e),
267
+ themesConfig: {
268
+ ...x,
269
+ light1: e.theme.main,
270
+ light2: e.theme.navbar,
271
+ surfaceDark: e.theme.toolbar
272
+ }
273
+ },
274
+ settings: {
275
+ defaultSettingsConfig: {
276
+ ...u,
277
+ snackbarProviderProps: r,
278
+ theme: e.theme
279
+ },
280
+ defaultSnackbarTheme: e.snackbar ?? P,
281
+ defaultSnackbarProviderProps: r
282
+ }
283
+ };
284
+ }
285
+ t(K, "createThemePreviewExportData");
286
+ function Q(e) {
287
+ const r = K(e);
288
+ return [
289
+ {
290
+ fileName: "grid.ts",
291
+ content: F(e)
292
+ },
293
+ {
294
+ fileName: "presets.ts",
295
+ content: L(r)
296
+ },
297
+ {
298
+ fileName: "settings.ts",
299
+ content: I(e)
300
+ },
301
+ {
302
+ fileName: "snackbar.ts",
303
+ content: H(e)
304
+ },
305
+ {
306
+ fileName: "surface.ts",
307
+ content: G(r)
308
+ },
309
+ {
310
+ fileName: "table.ts",
311
+ content: W(e)
312
+ }
313
+ ];
314
+ }
315
+ t(Q, "createThemePreviewAppConfigFiles");
316
+ export {
317
+ Q as createThemePreviewAppConfigFiles,
318
+ K as createThemePreviewExportData
319
+ };
320
+ //# sourceMappingURL=themePreviewExport.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"themePreviewExport.js","sources":["../../../../src/features/themePreview/utils/themePreviewExport.ts"],"sourcesContent":["import { defaultGridTheme } from '@/features/themePreview/configs/grid';\nimport {\n defaultSnackbarProviderProps,\n defaultSnackbarTheme,\n type SnackbarProviderTheme,\n type SnackbarTheme,\n} from '@/features/themePreview/configs/snackbar';\nimport { defaultTableTheme } from '@/features/themePreview/configs/table';\nimport {\n darkPaletteText,\n defaultNavbarDivider,\n defaultNavbarSecondaryPalette,\n defaultPrimaryPalette,\n defaultSecondaryPalette,\n defaultToolbarDivider,\n defaultToolbarSecondaryPalette,\n lightPaletteText,\n themesConfig,\n} from '@/features/themePreview/configs/presets';\nimport { defaultSettingsConfig } from '@/features/themePreview/configs/settings';\nimport { defaultLayoutSurface } from '@/features/themePreview/configs/surface';\nimport type { OwpSettingsConfigType } from '@/types';\nimport type { ThemePreviewPaletteSectionKey, ThemePreviewSettings } from '../types';\n\ntype ThemePreviewTextPalette = {\n disabled?: string;\n primary?: string;\n secondary?: string;\n};\n\nexport interface ThemePreviewExportData {\n presets: {\n darkPaletteText: ThemePreviewTextPalette;\n defaultNavbarDivider: string;\n defaultNavbarSecondaryPalette: Record<string, string | undefined>;\n defaultPrimaryPalette: Record<string, string | undefined>;\n defaultSecondaryPalette: Record<string, string | undefined>;\n defaultToolbarDivider: string;\n defaultToolbarSecondaryPalette: Record<string, string | undefined>;\n lightPaletteText: ThemePreviewTextPalette;\n themesConfig: Record<string, unknown>;\n };\n settings: {\n defaultSettingsConfig: Omit<typeof defaultSettingsConfig, 'snackbar' | 'theme'> & {\n snackbar: SnackbarTheme;\n snackbarProviderProps: SnackbarProviderTheme;\n theme: OwpSettingsConfigType['theme'];\n };\n defaultSnackbarProviderProps: SnackbarProviderTheme;\n defaultSnackbarTheme: SnackbarTheme;\n };\n surface: {\n defaultLayoutSurface: {\n contrastText?: string;\n dark?: string;\n light?: string;\n main?: string;\n };\n };\n}\n\nexport interface ThemePreviewAppConfigFile {\n content: string;\n fileName: string;\n}\n\nconst themePreviewLightTextSections: ThemePreviewPaletteSectionKey[] = ['main', 'navbar', 'toolbar'];\nconst themePreviewDarkTextSections: ThemePreviewPaletteSectionKey[] = ['toolbar', 'navbar', 'main'];\nconst themePreviewRefTokens = {\n defaultGridTheme: '__OWP_THEME_PREVIEW_DEFAULT_GRID_THEME__',\n defaultSnackbarProviderProps: '__OWP_THEME_PREVIEW_DEFAULT_SNACKBAR_PROVIDER_PROPS__',\n defaultSnackbarTheme: '__OWP_THEME_PREVIEW_DEFAULT_SNACKBAR_THEME__',\n defaultTableTheme: '__OWP_THEME_PREVIEW_DEFAULT_TABLE_THEME__',\n} as const;\n\nfunction getThemePreviewTextPalette(\n settings: OwpSettingsConfigType,\n mode: 'light' | 'dark',\n sectionKeys: ThemePreviewPaletteSectionKey[],\n fallbackPalette: ThemePreviewTextPalette,\n) {\n const matchedTheme = sectionKeys.find(\n (sectionKey) => settings.theme[sectionKey].palette.mode === mode,\n );\n const textPalette = matchedTheme ? settings.theme[matchedTheme].palette.text : undefined;\n\n return {\n primary: textPalette?.primary ?? fallbackPalette.primary ?? '',\n secondary: textPalette?.secondary ?? fallbackPalette.secondary ?? '',\n disabled: textPalette?.disabled ?? fallbackPalette.disabled ?? '',\n };\n}\n\nfunction getThemePreviewSurfaceExport(settings: OwpSettingsConfigType) {\n const surfacePalette = settings.theme.navbar.palette.primary ?? defaultLayoutSurface;\n\n return {\n light: surfacePalette.light ?? defaultLayoutSurface.light,\n main: surfacePalette.main ?? defaultLayoutSurface.main,\n dark: surfacePalette.dark ?? defaultLayoutSurface.dark,\n contrastText: surfacePalette.contrastText ?? defaultLayoutSurface.contrastText,\n };\n}\n\nfunction getThemePreviewPrimaryPaletteExport(settings: OwpSettingsConfigType) {\n const primaryPalette = settings.theme.main.palette.primary ?? defaultPrimaryPalette;\n\n return {\n light: primaryPalette.light ?? defaultPrimaryPalette.light,\n main: primaryPalette.main ?? defaultPrimaryPalette.main,\n dark: primaryPalette.dark ?? defaultPrimaryPalette.dark,\n contrastText: primaryPalette.contrastText ?? defaultPrimaryPalette.contrastText,\n };\n}\n\nfunction getThemePreviewSecondaryPaletteExport(settings: OwpSettingsConfigType) {\n const secondaryPalette = settings.theme.main.palette.secondary ?? defaultSecondaryPalette;\n\n return {\n light: secondaryPalette.light ?? defaultSecondaryPalette.light,\n main: secondaryPalette.main ?? defaultSecondaryPalette.main,\n dark: secondaryPalette.dark ?? defaultSecondaryPalette.dark,\n contrastText: secondaryPalette.contrastText ?? defaultSecondaryPalette.contrastText,\n };\n}\n\nfunction getThemePreviewNavbarSecondaryPaletteExport(settings: OwpSettingsConfigType) {\n const secondaryPalette =\n settings.theme.navbar.palette.secondary ?? defaultNavbarSecondaryPalette;\n\n return {\n main: secondaryPalette.main ?? defaultNavbarSecondaryPalette.main,\n contrastText: secondaryPalette.contrastText ?? defaultNavbarSecondaryPalette.contrastText,\n };\n}\n\nfunction getThemePreviewToolbarSecondaryPaletteExport(settings: OwpSettingsConfigType) {\n const secondaryPalette =\n settings.theme.toolbar.palette.secondary ?? defaultToolbarSecondaryPalette;\n\n return {\n light: secondaryPalette.light ?? defaultToolbarSecondaryPalette.light,\n main: secondaryPalette.main ?? defaultToolbarSecondaryPalette.main,\n dark: secondaryPalette.dark ?? defaultToolbarSecondaryPalette.dark,\n contrastText:\n secondaryPalette.contrastText ?? defaultToolbarSecondaryPalette.contrastText,\n };\n}\n\nfunction escapeTsString(value: string) {\n return value\n .replace(/\\\\/g, '\\\\\\\\')\n .replace(/'/g, \"\\\\'\")\n .replace(/\\r/g, '\\\\r')\n .replace(/\\n/g, '\\\\n');\n}\n\nfunction formatTsPropertyKey(key: string) {\n return /^[A-Za-z_$][A-Za-z0-9_$]*$/.test(key) ? key : `'${escapeTsString(key)}'`;\n}\n\nfunction toTsLiteral(value: unknown, indentLevel = 0): string {\n const indent = ' '.repeat(indentLevel);\n const nextIndent = ' '.repeat(indentLevel + 1);\n\n if (Array.isArray(value)) {\n if (!value.length) {\n return '[]';\n }\n\n return `[\\n${value.map((item) => `${nextIndent}${toTsLiteral(item, indentLevel + 1)}`).join(',\\n')}\\n${indent}]`;\n }\n\n if (value && typeof value === 'object') {\n const entries = Object.entries(value as Record<string, unknown>).filter(\n ([, entryValue]) => entryValue !== undefined,\n );\n\n if (!entries.length) {\n return '{}';\n }\n\n return `{\\n${entries.map(([key, entryValue]) => `${nextIndent}${formatTsPropertyKey(key)}: ${toTsLiteral(entryValue, indentLevel + 1)}`).join(',\\n')}\\n${indent}}`;\n }\n\n if (typeof value === 'string') {\n return `'${escapeTsString(value)}'`;\n }\n\n if (typeof value === 'number' || typeof value === 'boolean') {\n return String(value);\n }\n\n if (value === null) {\n return 'null';\n }\n\n return 'undefined';\n}\n\nfunction replaceTsReferenceTokens(\n literal: string,\n replacements: Record<string, string>,\n) {\n return Object.entries(replacements).reduce((acc, [token, replacement]) => {\n return acc.split(`'${token}'`).join(replacement);\n }, literal);\n}\n\nfunction createThemePreviewGridConfigFile(draftSettings: ThemePreviewSettings) {\n const gridTheme = draftSettings.theme.main.grid ?? defaultGridTheme;\n\n return [\n \"import type { OwpGridThemeConfigType } from '@owp/core/types';\",\n '',\n `export const defaultGridTheme = ${toTsLiteral(gridTheme)} satisfies OwpGridThemeConfigType;`,\n '',\n ].join('\\n');\n}\n\nfunction createThemePreviewSurfaceConfigFile(exportData: ThemePreviewExportData) {\n return [\n `export const defaultLayoutSurface = ${toTsLiteral(exportData.surface.defaultLayoutSurface)} as const;`,\n '',\n ].join('\\n');\n}\n\nfunction createThemePreviewPresetsConfigFile(exportData: ThemePreviewExportData) {\n return [\n `export const lightPaletteText = ${toTsLiteral(exportData.presets.lightPaletteText)};`,\n '',\n `export const darkPaletteText = ${toTsLiteral(exportData.presets.darkPaletteText)};`,\n '',\n `export const defaultPrimaryPalette = ${toTsLiteral(exportData.presets.defaultPrimaryPalette)};`,\n '',\n `export const defaultSecondaryPalette = ${toTsLiteral(exportData.presets.defaultSecondaryPalette)};`,\n '',\n `export const defaultNavbarSecondaryPalette = ${toTsLiteral(exportData.presets.defaultNavbarSecondaryPalette)};`,\n '',\n `export const defaultNavbarDivider = ${toTsLiteral(exportData.presets.defaultNavbarDivider)};`,\n '',\n `export const defaultToolbarDivider = ${toTsLiteral(exportData.presets.defaultToolbarDivider)};`,\n '',\n `export const defaultToolbarSecondaryPalette = ${toTsLiteral(exportData.presets.defaultToolbarSecondaryPalette)};`,\n '',\n ].join('\\n');\n}\n\nfunction createThemePreviewSnackbarConfigFile(draftSettings: ThemePreviewSettings) {\n const snackbarTheme = draftSettings.snackbar ?? defaultSnackbarTheme;\n const snackbarProviderProps =\n draftSettings.snackbarProviderProps ?? defaultSnackbarProviderProps;\n\n return [\n \"import type { SnackbarProviderProps } from 'notistack';\",\n '',\n \"export const snackbarVariantKeys = ['default', 'success', 'info', 'warning', 'error'] as const;\",\n '',\n 'export type SnackbarVariantKey = (typeof snackbarVariantKeys)[number];',\n '',\n 'export type SnackbarVariantTheme = {',\n ' backgroundColor: string;',\n ' color: string;',\n '};',\n '',\n 'export type SnackbarTheme = Record<SnackbarVariantKey, SnackbarVariantTheme>;',\n '',\n \"export type SnackbarProviderTheme = Omit<SnackbarProviderProps, 'children'>;\",\n '',\n `export const defaultSnackbarTheme = ${toTsLiteral(snackbarTheme)} satisfies SnackbarTheme;`,\n '',\n `export const defaultSnackbarProviderProps = ${toTsLiteral(snackbarProviderProps)} satisfies SnackbarProviderTheme;`,\n '',\n ].join('\\n');\n}\n\nfunction createThemePreviewTableConfigFile(draftSettings: ThemePreviewSettings) {\n const tableTheme = draftSettings.theme.main.table ?? defaultTableTheme;\n\n return [\n \"import type { OwpTableThemeConfigType } from '@owp/core/types';\",\n '',\n \"type OwpTableHeaderConfigType = NonNullable<OwpTableThemeConfigType['header']>;\",\n \"type OwpTableCellConfigType = NonNullable<OwpTableThemeConfigType['cell']>;\",\n '',\n 'export type ThemePreviewTableCellConfigType = OwpTableCellConfigType & {',\n ' backgroundColor?: string;',\n '};',\n '',\n 'export type ThemePreviewTableVariantConfigType = {',\n ' header?: OwpTableHeaderConfigType;',\n ' cell?: ThemePreviewTableCellConfigType;',\n '};',\n '',\n 'export type ThemePreviewTableRowConfigType = {',\n ' backgroundColor?: string;',\n ' hoverBackgroundColor?: string;',\n ' selectedBackgroundColor?: string;',\n '};',\n '',\n 'export type ThemePreviewTableConfigType = ThemePreviewTableVariantConfigType & {',\n ' borderRadius?: number | string;',\n ' field?: ThemePreviewTableVariantConfigType;',\n ' row?: ThemePreviewTableRowConfigType;',\n '};',\n '',\n `export const defaultTableTheme = ${toTsLiteral(tableTheme)} satisfies ThemePreviewTableConfigType;`,\n '',\n ].join('\\n');\n}\n\nfunction createThemePreviewSettingsConfigFile(draftSettings: ThemePreviewSettings) {\n const nextSettingsConfig = {\n customScrollbars: defaultSettingsConfig.customScrollbars,\n direction: defaultSettingsConfig.direction,\n snackbar: themePreviewRefTokens.defaultSnackbarTheme,\n snackbarProviderProps: themePreviewRefTokens.defaultSnackbarProviderProps,\n theme: {\n ...draftSettings.theme,\n main: {\n ...draftSettings.theme.main,\n grid: themePreviewRefTokens.defaultGridTheme,\n table: themePreviewRefTokens.defaultTableTheme,\n },\n },\n };\n\n const settingsLiteral = replaceTsReferenceTokens(toTsLiteral(nextSettingsConfig), {\n [themePreviewRefTokens.defaultGridTheme]: 'defaultGridTheme',\n [themePreviewRefTokens.defaultSnackbarProviderProps]: 'defaultSnackbarProviderProps',\n [themePreviewRefTokens.defaultSnackbarTheme]: 'defaultSnackbarTheme',\n [themePreviewRefTokens.defaultTableTheme]: 'defaultTableTheme',\n });\n\n return [\n \"import type { OwpSettingsConfigType } from '@owp/core/types';\",\n \"import type { PartialDeep } from 'type-fest';\",\n \"import { defaultGridTheme } from './grid';\",\n \"import { defaultSnackbarProviderProps, defaultSnackbarTheme } from './snackbar';\",\n \"import { defaultTableTheme } from './table';\",\n '',\n `export const defaultSettingsConfig = ${settingsLiteral} as PartialDeep<OwpSettingsConfigType> & {`,\n ' snackbarProviderProps: typeof defaultSnackbarProviderProps;',\n '};',\n '',\n ].join('\\n');\n}\n\nexport function createThemePreviewExportData(\n draftSettings: ThemePreviewSettings,\n): ThemePreviewExportData {\n const resolvedSnackbarProviderProps =\n draftSettings.snackbarProviderProps ?? defaultSnackbarProviderProps;\n\n return {\n surface: {\n defaultLayoutSurface: getThemePreviewSurfaceExport(draftSettings),\n },\n presets: {\n lightPaletteText: getThemePreviewTextPalette(\n draftSettings,\n 'light',\n themePreviewLightTextSections,\n lightPaletteText,\n ),\n darkPaletteText: getThemePreviewTextPalette(\n draftSettings,\n 'dark',\n themePreviewDarkTextSections,\n darkPaletteText,\n ),\n defaultPrimaryPalette: getThemePreviewPrimaryPaletteExport(draftSettings),\n defaultSecondaryPalette: getThemePreviewSecondaryPaletteExport(draftSettings),\n defaultNavbarDivider:\n draftSettings.theme.navbar.palette.divider ?? defaultNavbarDivider,\n defaultNavbarSecondaryPalette: getThemePreviewNavbarSecondaryPaletteExport(draftSettings),\n defaultToolbarDivider:\n draftSettings.theme.toolbar.palette.divider ?? defaultToolbarDivider,\n defaultToolbarSecondaryPalette: getThemePreviewToolbarSecondaryPaletteExport(draftSettings),\n themesConfig: {\n ...themesConfig,\n light1: draftSettings.theme.main,\n light2: draftSettings.theme.navbar,\n surfaceDark: draftSettings.theme.toolbar,\n },\n },\n settings: {\n defaultSettingsConfig: {\n ...defaultSettingsConfig,\n snackbarProviderProps: resolvedSnackbarProviderProps,\n theme: draftSettings.theme,\n },\n defaultSnackbarTheme: draftSettings.snackbar ?? defaultSnackbarTheme,\n defaultSnackbarProviderProps: resolvedSnackbarProviderProps,\n },\n };\n}\n\nexport function createThemePreviewAppConfigFiles(\n draftSettings: ThemePreviewSettings,\n): ThemePreviewAppConfigFile[] {\n const exportData = createThemePreviewExportData(draftSettings);\n\n return [\n {\n fileName: 'grid.ts',\n content: createThemePreviewGridConfigFile(draftSettings),\n },\n {\n fileName: 'presets.ts',\n content: createThemePreviewPresetsConfigFile(exportData),\n },\n {\n fileName: 'settings.ts',\n content: createThemePreviewSettingsConfigFile(draftSettings),\n },\n {\n fileName: 'snackbar.ts',\n content: createThemePreviewSnackbarConfigFile(draftSettings),\n },\n {\n fileName: 'surface.ts',\n content: createThemePreviewSurfaceConfigFile(exportData),\n },\n {\n fileName: 'table.ts',\n content: createThemePreviewTableConfigFile(draftSettings),\n },\n ];\n}\n"],"names":["themePreviewLightTextSections","themePreviewDarkTextSections","themePreviewRefTokens","getThemePreviewTextPalette","settings","mode","sectionKeys","fallbackPalette","matchedTheme","sectionKey","textPalette","__name","getThemePreviewSurfaceExport","surfacePalette","defaultLayoutSurface","getThemePreviewPrimaryPaletteExport","primaryPalette","defaultPrimaryPalette","getThemePreviewSecondaryPaletteExport","secondaryPalette","defaultSecondaryPalette","getThemePreviewNavbarSecondaryPaletteExport","defaultNavbarSecondaryPalette","getThemePreviewToolbarSecondaryPaletteExport","defaultToolbarSecondaryPalette","escapeTsString","value","formatTsPropertyKey","key","toTsLiteral","indentLevel","indent","nextIndent","item","entries","entryValue","replaceTsReferenceTokens","literal","replacements","acc","token","replacement","createThemePreviewGridConfigFile","draftSettings","gridTheme","defaultGridTheme","createThemePreviewSurfaceConfigFile","exportData","createThemePreviewPresetsConfigFile","createThemePreviewSnackbarConfigFile","snackbarTheme","defaultSnackbarTheme","snackbarProviderProps","defaultSnackbarProviderProps","createThemePreviewTableConfigFile","tableTheme","defaultTableTheme","createThemePreviewSettingsConfigFile","nextSettingsConfig","defaultSettingsConfig","createThemePreviewExportData","resolvedSnackbarProviderProps","lightPaletteText","darkPaletteText","defaultNavbarDivider","defaultToolbarDivider","themesConfig","createThemePreviewAppConfigFiles"],"mappings":"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"}
@@ -0,0 +1,211 @@
1
+ var E = Object.defineProperty;
2
+ var o = (e, t) => E(e, "name", { value: t, configurable: !0 });
3
+ import { toolbarCuratedPresetKeys as _ } from "../configs/presets.js";
4
+ import { defaultSnackbarTheme as d, defaultSnackbarProviderProps as k } from "../configs/snackbar.js";
5
+ import { merge as l } from "../../../node_modules/.pnpm/es-toolkit@1.39.10/node_modules/es-toolkit/dist/compat/object/merge.js";
6
+ import { isString as N } from "../../../node_modules/.pnpm/es-toolkit@1.39.10/node_modules/es-toolkit/dist/compat/predicate/isString.js";
7
+ import { isObject as h } from "../../../node_modules/.pnpm/es-toolkit@1.39.10/node_modules/es-toolkit/dist/compat/predicate/isObject.js";
8
+ const j = "__custom__", V = ["grid", "table", "snackbar"];
9
+ let v = null, S = null;
10
+ const b = "snackbarProviderProps.";
11
+ function u(e) {
12
+ return h(e) ? e : {};
13
+ }
14
+ o(u, "asObjectRecord");
15
+ function I(e, t = d) {
16
+ const a = "snackbar" in e && h(e.snackbar) ? e.snackbar : void 0;
17
+ return l({}, d, t, a);
18
+ }
19
+ o(I, "getThemePreviewSnackbarTheme");
20
+ function R(e, t = k) {
21
+ const a = "snackbarProviderProps" in e && h(e.snackbarProviderProps) ? e.snackbarProviderProps : void 0;
22
+ return l(
23
+ {},
24
+ k,
25
+ t,
26
+ a
27
+ );
28
+ }
29
+ o(R, "getThemePreviewSnackbarProviderProps");
30
+ function T(e, t = d) {
31
+ return l({}, e, {
32
+ snackbar: I(e, t),
33
+ snackbarProviderProps: R(e)
34
+ });
35
+ }
36
+ o(T, "createThemePreviewSettings");
37
+ function A(e) {
38
+ return V.includes(e);
39
+ }
40
+ o(A, "isThemePreviewCustomSection");
41
+ function p(e, t) {
42
+ switch (t) {
43
+ case "grid":
44
+ return u(e.theme.main.grid);
45
+ case "table":
46
+ return u(e.theme.main.table);
47
+ case "snackbar":
48
+ return u(e.snackbar);
49
+ default:
50
+ return u(e.theme[t].palette);
51
+ }
52
+ }
53
+ o(p, "getThemePreviewSectionTarget");
54
+ function w(e) {
55
+ return T(e);
56
+ }
57
+ o(w, "cloneThemePreviewSettings");
58
+ function H(e, t, a = d) {
59
+ return l({}, T(e, a), {
60
+ theme: t
61
+ });
62
+ }
63
+ o(H, "getThemePreviewResetSettings");
64
+ function O(e, t, a) {
65
+ const [r, i] = a.startsWith(b) ? [u(e.snackbarProviderProps), a.slice(b.length)] : [p(e, t), a], n = i.split(".").reduce((c, s) => u(c)[s], r);
66
+ return typeof n == "number" ? String(n) : N(n) ? n : "";
67
+ }
68
+ o(O, "getThemePreviewPaletteValue");
69
+ function f(e, t) {
70
+ return e.theme[t].palette.mode === "dark" ? "dark" : "light";
71
+ }
72
+ o(f, "getThemePreviewSectionMode");
73
+ function F(e) {
74
+ return T(v ?? e);
75
+ }
76
+ o(F, "getThemePreviewDraftSettings");
77
+ function U(e) {
78
+ v = w(e);
79
+ }
80
+ o(U, "setThemePreviewDraftSettings");
81
+ function X(e, t) {
82
+ return l(
83
+ {
84
+ selectedPresetKeys: t,
85
+ selectedModes: {
86
+ main: f(e, "main"),
87
+ navbar: f(e, "navbar"),
88
+ toolbar: f(e, "toolbar")
89
+ }
90
+ },
91
+ S ?? {}
92
+ );
93
+ }
94
+ o(X, "getThemePreviewSelectionState");
95
+ function Y(e) {
96
+ S = l({}, e);
97
+ }
98
+ o(Y, "setThemePreviewSelectionState");
99
+ function $() {
100
+ v = null, S = null;
101
+ }
102
+ o($, "resetThemePreviewSessionState");
103
+ function x(e, t, a) {
104
+ const r = t.split("."), i = r.pop();
105
+ if (!i)
106
+ return;
107
+ let n = e;
108
+ r.forEach((s) => {
109
+ const P = n[s];
110
+ h(P) || (n[s] = {}), n = u(n[s]);
111
+ });
112
+ const c = n[i];
113
+ if (typeof c == "number") {
114
+ const s = Number(a.replace(/,/g, "."));
115
+ n[i] = Number.isNaN(s) ? c : s;
116
+ return;
117
+ }
118
+ n[i] = a;
119
+ }
120
+ o(x, "applyThemePreviewPaletteValue");
121
+ function y(e, t, a) {
122
+ if (!a.length)
123
+ return e;
124
+ const r = w(e), i = p(r, t), n = u(r.snackbarProviderProps);
125
+ switch (a.forEach(({ path: c, value: s }) => {
126
+ const P = c.startsWith(
127
+ b
128
+ ), m = P ? c.slice(b.length) : c;
129
+ x(
130
+ P ? n : i,
131
+ m,
132
+ s
133
+ );
134
+ }), r.snackbarProviderProps = n, t) {
135
+ case "grid":
136
+ return r.theme.main.grid = i, r;
137
+ case "table":
138
+ return r.theme.main.table = i, r;
139
+ case "snackbar":
140
+ return r.snackbar = i, r;
141
+ default:
142
+ return r.theme[t].palette = i, r;
143
+ }
144
+ }
145
+ o(y, "setThemePreviewPaletteValues");
146
+ function q(e, t, a, r) {
147
+ return y(e, t, [{ path: a, value: r }]);
148
+ }
149
+ o(q, "setThemePreviewPaletteValue");
150
+ function z(e) {
151
+ const t = /^(light|dark)(\d+)$/, a = new Set(_);
152
+ return Object.entries(e).reduce((r, [i, n]) => (n != null && n.palette && r.push({
153
+ key: i,
154
+ label: i,
155
+ mode: n.palette.mode === "dark" ? "dark" : "light",
156
+ sections: a.has(i) ? ["toolbar"] : void 0,
157
+ originalIndex: r.length
158
+ }), r), []).sort((r, i) => {
159
+ const n = r.key.match(t), c = i.key.match(t), s = !!n;
160
+ if (s !== !!c)
161
+ return s ? 1 : -1;
162
+ if (n && c) {
163
+ const m = (n[1] === "light" ? 0 : 1) - (c[1] === "light" ? 0 : 1);
164
+ if (m !== 0)
165
+ return m;
166
+ const g = Number(n[2]) - Number(c[2]);
167
+ if (g !== 0)
168
+ return g;
169
+ }
170
+ return r.originalIndex - i.originalIndex;
171
+ }).map((r) => ({
172
+ key: r.key,
173
+ label: r.label,
174
+ mode: r.mode,
175
+ sections: r.sections
176
+ }));
177
+ }
178
+ o(z, "getThemePreviewPresetOptions");
179
+ function G(e, t, a) {
180
+ return e.filter(
181
+ (r) => r.mode === a && (!r.sections || r.sections.includes(t))
182
+ );
183
+ }
184
+ o(G, "getThemePreviewPresetOptionsByMode");
185
+ function J(e, t, a) {
186
+ return l({}, e, {
187
+ theme: {
188
+ [t]: a
189
+ }
190
+ });
191
+ }
192
+ o(J, "applyThemePreviewPreset");
193
+ export {
194
+ j as THEME_PREVIEW_CUSTOM_PRESET_KEY,
195
+ J as applyThemePreviewPreset,
196
+ w as cloneThemePreviewSettings,
197
+ F as getThemePreviewDraftSettings,
198
+ O as getThemePreviewPaletteValue,
199
+ z as getThemePreviewPresetOptions,
200
+ G as getThemePreviewPresetOptionsByMode,
201
+ H as getThemePreviewResetSettings,
202
+ f as getThemePreviewSectionMode,
203
+ X as getThemePreviewSelectionState,
204
+ A as isThemePreviewCustomSection,
205
+ $ as resetThemePreviewSessionState,
206
+ U as setThemePreviewDraftSettings,
207
+ q as setThemePreviewPaletteValue,
208
+ y as setThemePreviewPaletteValues,
209
+ Y as setThemePreviewSelectionState
210
+ };
211
+ //# sourceMappingURL=themePreviewSettings.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"themePreviewSettings.js","sources":["../../../../src/features/themePreview/utils/themePreviewSettings.ts"],"sourcesContent":["import { toolbarCuratedPresetKeys } from '@/features/themePreview/configs/presets';\nimport {\n defaultSnackbarProviderProps,\n defaultSnackbarTheme,\n type SnackbarProviderTheme,\n type SnackbarTheme,\n} from '@/features/themePreview/configs/snackbar';\nimport type { OwpSettingsConfigType } from '@/types';\nimport { isObject, isString, merge } from 'es-toolkit/compat';\nimport type { PartialDeep } from 'type-fest';\nimport type {\n ThemePreviewMode,\n ThemePreviewPresetKeyBySection,\n ThemePreviewPresetOption,\n ThemePreviewPresetSectionKey,\n ThemePreviewPresetThemes,\n ThemePreviewSectionKey,\n ThemePreviewSettings,\n} from '../types';\n\nexport const THEME_PREVIEW_CUSTOM_PRESET_KEY = '__custom__';\nconst themePreviewCustomSectionKeys = ['grid', 'table', 'snackbar'] as const;\n\ntype ThemePreviewSelectionState = {\n selectedModes: Record<ThemePreviewPresetSectionKey, ThemePreviewMode>;\n selectedPresetKeys: ThemePreviewPresetKeyBySection;\n};\n\nlet persistedThemePreviewDraftSettings: ThemePreviewSettings | null = null;\nlet persistedThemePreviewSelectionState: ThemePreviewSelectionState | null = null;\nconst THEME_PREVIEW_SNACKBAR_PROVIDER_PROPS_PATH_PREFIX = 'snackbarProviderProps.';\ntype ThemePreviewPaletteValueUpdate = {\n path: string;\n value: string;\n};\n\nfunction asObjectRecord(value: unknown) {\n return isObject(value) ? (value as Record<string, unknown>) : {};\n}\n\nfunction getThemePreviewSnackbarTheme(\n settings: OwpSettingsConfigType | ThemePreviewSettings,\n snackbar = defaultSnackbarTheme,\n) {\n const nextSnackbar =\n 'snackbar' in settings && isObject(settings.snackbar) ? settings.snackbar : undefined;\n\n return merge({}, defaultSnackbarTheme, snackbar, nextSnackbar) as SnackbarTheme;\n}\n\nfunction getThemePreviewSnackbarProviderProps(\n settings: OwpSettingsConfigType | ThemePreviewSettings,\n snackbarProviderProps = defaultSnackbarProviderProps,\n) {\n const nextSnackbarProviderProps =\n 'snackbarProviderProps' in settings && isObject(settings.snackbarProviderProps)\n ? settings.snackbarProviderProps\n : undefined;\n\n return merge(\n {},\n defaultSnackbarProviderProps,\n snackbarProviderProps,\n nextSnackbarProviderProps,\n ) as SnackbarProviderTheme;\n}\n\nfunction createThemePreviewSettings(\n settings: OwpSettingsConfigType | ThemePreviewSettings,\n snackbar = defaultSnackbarTheme,\n) {\n return merge({}, settings, {\n snackbar: getThemePreviewSnackbarTheme(settings, snackbar),\n snackbarProviderProps: getThemePreviewSnackbarProviderProps(settings),\n }) as ThemePreviewSettings;\n}\n\nexport function isThemePreviewCustomSection(sectionKey: ThemePreviewSectionKey) {\n return (themePreviewCustomSectionKeys as readonly ThemePreviewSectionKey[]).includes(sectionKey);\n}\n\nfunction getThemePreviewSectionTarget(\n settings: ThemePreviewSettings,\n sectionKey: ThemePreviewSectionKey,\n) {\n switch (sectionKey) {\n case 'grid':\n return asObjectRecord(settings.theme.main.grid);\n case 'table':\n return asObjectRecord(settings.theme.main.table);\n case 'snackbar':\n return asObjectRecord(settings.snackbar);\n default:\n return asObjectRecord(settings.theme[sectionKey].palette);\n }\n}\n\nexport function cloneThemePreviewSettings(settings: ThemePreviewSettings) {\n return createThemePreviewSettings(settings);\n}\n\nexport function getThemePreviewResetSettings(\n settings: OwpSettingsConfigType,\n resetTheme: PartialDeep<OwpSettingsConfigType['theme']>,\n snackbar = defaultSnackbarTheme,\n) {\n return merge({}, createThemePreviewSettings(settings, snackbar), {\n theme: resetTheme,\n }) as ThemePreviewSettings;\n}\n\nexport function getThemePreviewPaletteValue(\n settings: ThemePreviewSettings,\n sectionKey: ThemePreviewSectionKey,\n path: string,\n) {\n const [pathSource, resolvedPath] = path.startsWith(THEME_PREVIEW_SNACKBAR_PROVIDER_PROPS_PATH_PREFIX)\n ? [asObjectRecord(settings.snackbarProviderProps), path.slice(THEME_PREVIEW_SNACKBAR_PROVIDER_PROPS_PATH_PREFIX.length)]\n : [getThemePreviewSectionTarget(settings, sectionKey), path];\n\n const value = resolvedPath.split('.').reduce<unknown>((acc, key) => {\n const currentValue = asObjectRecord(acc);\n\n return currentValue[key];\n }, pathSource);\n\n if (typeof value === 'number') {\n return String(value);\n }\n\n return isString(value) ? value : '';\n}\n\nexport function getThemePreviewSectionMode(\n settings: OwpSettingsConfigType,\n sectionKey: ThemePreviewPresetSectionKey,\n) {\n return settings.theme[sectionKey].palette.mode === 'dark' ? 'dark' : 'light';\n}\n\nexport function getThemePreviewDraftSettings(currentSettings: OwpSettingsConfigType) {\n return createThemePreviewSettings(persistedThemePreviewDraftSettings ?? currentSettings);\n}\n\nexport function setThemePreviewDraftSettings(settings: ThemePreviewSettings) {\n persistedThemePreviewDraftSettings = cloneThemePreviewSettings(settings);\n}\n\nexport function getThemePreviewSelectionState(\n settings: OwpSettingsConfigType,\n initialPresetKeys: ThemePreviewPresetKeyBySection,\n) {\n return merge(\n {\n selectedPresetKeys: initialPresetKeys,\n selectedModes: {\n main: getThemePreviewSectionMode(settings, 'main'),\n navbar: getThemePreviewSectionMode(settings, 'navbar'),\n toolbar: getThemePreviewSectionMode(settings, 'toolbar'),\n },\n },\n persistedThemePreviewSelectionState ?? {},\n ) as ThemePreviewSelectionState;\n}\n\nexport function setThemePreviewSelectionState(selectionState: ThemePreviewSelectionState) {\n persistedThemePreviewSelectionState = merge({}, selectionState) as ThemePreviewSelectionState;\n}\n\nexport function resetThemePreviewSessionState() {\n persistedThemePreviewDraftSettings = null;\n persistedThemePreviewSelectionState = null;\n}\n\nfunction applyThemePreviewPaletteValue(\n target: Record<string, unknown>,\n path: string,\n value: string,\n) {\n const pathKeys = path.split('.');\n const lastPathKey = pathKeys.pop();\n\n if (!lastPathKey) {\n return;\n }\n\n let currentTarget = target;\n\n pathKeys.forEach((key) => {\n const nextTarget = currentTarget[key];\n\n if (!isObject(nextTarget)) {\n currentTarget[key] = {};\n }\n\n currentTarget = asObjectRecord(currentTarget[key]);\n });\n\n const currentValue = currentTarget[lastPathKey];\n\n if (typeof currentValue === 'number') {\n const nextNumericValue = Number(value.replace(/,/g, '.'));\n currentTarget[lastPathKey] = Number.isNaN(nextNumericValue) ? currentValue : nextNumericValue;\n return;\n }\n\n currentTarget[lastPathKey] = value;\n}\n\nexport function setThemePreviewPaletteValues(\n settings: ThemePreviewSettings,\n sectionKey: ThemePreviewSectionKey,\n updates: ThemePreviewPaletteValueUpdate[],\n) {\n if (!updates.length) {\n return settings;\n }\n\n const nextSettings = cloneThemePreviewSettings(settings);\n const sectionTarget = getThemePreviewSectionTarget(nextSettings, sectionKey);\n const snackbarProviderPropsTarget = asObjectRecord(nextSettings.snackbarProviderProps);\n\n updates.forEach(({ path, value }) => {\n const isSnackbarProviderPropsPath = path.startsWith(\n THEME_PREVIEW_SNACKBAR_PROVIDER_PROPS_PATH_PREFIX,\n );\n const resolvedPath = isSnackbarProviderPropsPath\n ? path.slice(THEME_PREVIEW_SNACKBAR_PROVIDER_PROPS_PATH_PREFIX.length)\n : path;\n\n applyThemePreviewPaletteValue(\n isSnackbarProviderPropsPath ? snackbarProviderPropsTarget : sectionTarget,\n resolvedPath,\n value,\n );\n });\n\n nextSettings.snackbarProviderProps = snackbarProviderPropsTarget as SnackbarProviderTheme;\n\n switch (sectionKey) {\n case 'grid':\n nextSettings.theme.main.grid =\n sectionTarget as OwpSettingsConfigType['theme']['main']['grid'];\n return nextSettings;\n case 'table':\n nextSettings.theme.main.table =\n sectionTarget as OwpSettingsConfigType['theme']['main']['table'];\n return nextSettings;\n case 'snackbar':\n nextSettings.snackbar = sectionTarget as SnackbarTheme;\n return nextSettings;\n default:\n nextSettings.theme[sectionKey].palette = sectionTarget;\n return nextSettings;\n }\n}\n\nexport function setThemePreviewPaletteValue(\n settings: ThemePreviewSettings,\n sectionKey: ThemePreviewSectionKey,\n path: string,\n value: string,\n) {\n return setThemePreviewPaletteValues(settings, sectionKey, [{ path, value }]);\n}\n\nexport function getThemePreviewPresetOptions(presetThemes: ThemePreviewPresetThemes) {\n const numberedPresetPattern = /^(light|dark)(\\d+)$/;\n const toolbarCuratedPresetKeySet = new Set<string>(toolbarCuratedPresetKeys);\n\n return Object.entries(presetThemes)\n .reduce<Array<ThemePreviewPresetOption & { originalIndex: number }>>((acc, [key, theme]) => {\n if (!theme?.palette) {\n return acc;\n }\n\n acc.push({\n key,\n label: key,\n mode: theme.palette.mode === 'dark' ? 'dark' : 'light',\n sections: toolbarCuratedPresetKeySet.has(key) ? ['toolbar'] : undefined,\n originalIndex: acc.length,\n });\n\n return acc;\n }, [])\n .sort((leftOption, rightOption) => {\n const leftMatch = leftOption.key.match(numberedPresetPattern);\n const rightMatch = rightOption.key.match(numberedPresetPattern);\n const leftIsNumberedPreset = Boolean(leftMatch);\n const rightIsNumberedPreset = Boolean(rightMatch);\n\n if (leftIsNumberedPreset !== rightIsNumberedPreset) {\n return leftIsNumberedPreset ? 1 : -1;\n }\n\n if (leftMatch && rightMatch) {\n const familyOrder =\n (leftMatch[1] === 'light' ? 0 : 1) - (rightMatch[1] === 'light' ? 0 : 1);\n\n if (familyOrder !== 0) {\n return familyOrder;\n }\n\n const presetNumberOrder = Number(leftMatch[2]) - Number(rightMatch[2]);\n\n if (presetNumberOrder !== 0) {\n return presetNumberOrder;\n }\n }\n\n return leftOption.originalIndex - rightOption.originalIndex;\n })\n .map((presetOption) => ({\n key: presetOption.key,\n label: presetOption.label,\n mode: presetOption.mode,\n sections: presetOption.sections,\n }));\n}\n\nexport function getThemePreviewPresetOptionsByMode(\n presetOptions: ThemePreviewPresetOption[],\n sectionKey: ThemePreviewPresetSectionKey,\n mode: 'light' | 'dark',\n) {\n return presetOptions.filter(\n (presetOption) =>\n presetOption.mode === mode &&\n (!presetOption.sections || presetOption.sections.includes(sectionKey)),\n );\n}\n\nexport function applyThemePreviewPreset(\n settings: ThemePreviewSettings,\n sectionKey: ThemePreviewPresetSectionKey,\n presetTheme: ThemePreviewPresetThemes[string],\n) {\n return merge({}, settings, {\n theme: {\n [sectionKey]: presetTheme,\n },\n }) as ThemePreviewSettings;\n}\n"],"names":["THEME_PREVIEW_CUSTOM_PRESET_KEY","themePreviewCustomSectionKeys","persistedThemePreviewDraftSettings","persistedThemePreviewSelectionState","THEME_PREVIEW_SNACKBAR_PROVIDER_PROPS_PATH_PREFIX","asObjectRecord","value","isObject","__name","getThemePreviewSnackbarTheme","settings","snackbar","defaultSnackbarTheme","nextSnackbar","merge","getThemePreviewSnackbarProviderProps","snackbarProviderProps","defaultSnackbarProviderProps","nextSnackbarProviderProps","createThemePreviewSettings","isThemePreviewCustomSection","sectionKey","getThemePreviewSectionTarget","cloneThemePreviewSettings","getThemePreviewResetSettings","resetTheme","getThemePreviewPaletteValue","path","pathSource","resolvedPath","acc","key","isString","getThemePreviewSectionMode","getThemePreviewDraftSettings","currentSettings","setThemePreviewDraftSettings","getThemePreviewSelectionState","initialPresetKeys","setThemePreviewSelectionState","selectionState","resetThemePreviewSessionState","applyThemePreviewPaletteValue","target","pathKeys","lastPathKey","currentTarget","nextTarget","currentValue","nextNumericValue","setThemePreviewPaletteValues","updates","nextSettings","sectionTarget","snackbarProviderPropsTarget","isSnackbarProviderPropsPath","setThemePreviewPaletteValue","getThemePreviewPresetOptions","presetThemes","numberedPresetPattern","toolbarCuratedPresetKeySet","toolbarCuratedPresetKeys","theme","leftOption","rightOption","leftMatch","rightMatch","leftIsNumberedPreset","familyOrder","presetNumberOrder","presetOption","getThemePreviewPresetOptionsByMode","presetOptions","mode","applyThemePreviewPreset","presetTheme"],"mappings":"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"}