@nanahoshi/mona-ui 0.1.0

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 (134) hide show
  1. package/README.md +25 -0
  2. package/fesm2022/nanahoshi-mona-ui-auto-complete.mjs +590 -0
  3. package/fesm2022/nanahoshi-mona-ui-avatar.mjs +168 -0
  4. package/fesm2022/nanahoshi-mona-ui-breadcrumb.mjs +220 -0
  5. package/fesm2022/nanahoshi-mona-ui-button-group.mjs +225 -0
  6. package/fesm2022/nanahoshi-mona-ui-button.mjs +497 -0
  7. package/fesm2022/nanahoshi-mona-ui-calendar.mjs +1569 -0
  8. package/fesm2022/nanahoshi-mona-ui-check-box.mjs +339 -0
  9. package/fesm2022/nanahoshi-mona-ui-chip.mjs +453 -0
  10. package/fesm2022/nanahoshi-mona-ui-circular-progress-bar.mjs +200 -0
  11. package/fesm2022/nanahoshi-mona-ui-color-gradient.mjs +853 -0
  12. package/fesm2022/nanahoshi-mona-ui-color-palette.mjs +923 -0
  13. package/fesm2022/nanahoshi-mona-ui-color-picker.mjs +495 -0
  14. package/fesm2022/nanahoshi-mona-ui-combo-box.mjs +686 -0
  15. package/fesm2022/nanahoshi-mona-ui-common.mjs +642 -0
  16. package/fesm2022/nanahoshi-mona-ui-contextmenu.mjs +485 -0
  17. package/fesm2022/nanahoshi-mona-ui-date-input.mjs +132 -0
  18. package/fesm2022/nanahoshi-mona-ui-date-picker.mjs +460 -0
  19. package/fesm2022/nanahoshi-mona-ui-datetime-picker.mjs +659 -0
  20. package/fesm2022/nanahoshi-mona-ui-dialog.mjs +828 -0
  21. package/fesm2022/nanahoshi-mona-ui-dropdown-button.mjs +523 -0
  22. package/fesm2022/nanahoshi-mona-ui-dropdown-list.mjs +615 -0
  23. package/fesm2022/nanahoshi-mona-ui-dropdowns.mjs +701 -0
  24. package/fesm2022/nanahoshi-mona-ui-editor.mjs +1400 -0
  25. package/fesm2022/nanahoshi-mona-ui-expansion-panel.mjs +245 -0
  26. package/fesm2022/nanahoshi-mona-ui-fieldset.mjs +170 -0
  27. package/fesm2022/nanahoshi-mona-ui-filter.mjs +680 -0
  28. package/fesm2022/nanahoshi-mona-ui-grid-grid-footer-cell.component-B9SQH5N-.mjs +105 -0
  29. package/fesm2022/nanahoshi-mona-ui-grid-grid-footer-table-cell.directive-DlLwcCFT.mjs +42 -0
  30. package/fesm2022/nanahoshi-mona-ui-grid-grid-list.component-Dgea-O0X.mjs +130 -0
  31. package/fesm2022/nanahoshi-mona-ui-grid-grid-toggle.component-DIUutx9s.mjs +773 -0
  32. package/fesm2022/nanahoshi-mona-ui-grid-grid-virtual-list.component-DRHycGIh.mjs +240 -0
  33. package/fesm2022/nanahoshi-mona-ui-grid-nanahoshi-mona-ui-grid-C3eZIaJK.mjs +5374 -0
  34. package/fesm2022/nanahoshi-mona-ui-grid.mjs +2 -0
  35. package/fesm2022/nanahoshi-mona-ui-internal-filter-input.mjs +87 -0
  36. package/fesm2022/nanahoshi-mona-ui-internal-indicator-icon.mjs +154 -0
  37. package/fesm2022/nanahoshi-mona-ui-internal-list.mjs +1356 -0
  38. package/fesm2022/nanahoshi-mona-ui-internal-tree.mjs +2263 -0
  39. package/fesm2022/nanahoshi-mona-ui-internal.mjs +379 -0
  40. package/fesm2022/nanahoshi-mona-ui-list-box.mjs +630 -0
  41. package/fesm2022/nanahoshi-mona-ui-list-view.mjs +527 -0
  42. package/fesm2022/nanahoshi-mona-ui-list.mjs +4 -0
  43. package/fesm2022/nanahoshi-mona-ui-menubar.mjs +966 -0
  44. package/fesm2022/nanahoshi-mona-ui-multi-select.mjs +641 -0
  45. package/fesm2022/nanahoshi-mona-ui-notification.mjs +536 -0
  46. package/fesm2022/nanahoshi-mona-ui-numeric-text-box.mjs +597 -0
  47. package/fesm2022/nanahoshi-mona-ui-pager.mjs +790 -0
  48. package/fesm2022/nanahoshi-mona-ui-placeholder.mjs +83 -0
  49. package/fesm2022/nanahoshi-mona-ui-popover.mjs +325 -0
  50. package/fesm2022/nanahoshi-mona-ui-popup-menu.mjs +1559 -0
  51. package/fesm2022/nanahoshi-mona-ui-popup.mjs +1321 -0
  52. package/fesm2022/nanahoshi-mona-ui-progress-bar.mjs +294 -0
  53. package/fesm2022/nanahoshi-mona-ui-query.mjs +175 -0
  54. package/fesm2022/nanahoshi-mona-ui-radio-button.mjs +339 -0
  55. package/fesm2022/nanahoshi-mona-ui-scroll-view.mjs +565 -0
  56. package/fesm2022/nanahoshi-mona-ui-slider.mjs +1049 -0
  57. package/fesm2022/nanahoshi-mona-ui-split-button.mjs +636 -0
  58. package/fesm2022/nanahoshi-mona-ui-splitter.mjs +843 -0
  59. package/fesm2022/nanahoshi-mona-ui-stepper.mjs +537 -0
  60. package/fesm2022/nanahoshi-mona-ui-switch.mjs +308 -0
  61. package/fesm2022/nanahoshi-mona-ui-tabs.mjs +664 -0
  62. package/fesm2022/nanahoshi-mona-ui-text-area.mjs +111 -0
  63. package/fesm2022/nanahoshi-mona-ui-text-box.mjs +369 -0
  64. package/fesm2022/nanahoshi-mona-ui-theme.mjs +314 -0
  65. package/fesm2022/nanahoshi-mona-ui-time-picker.mjs +450 -0
  66. package/fesm2022/nanahoshi-mona-ui-time-selector.mjs +723 -0
  67. package/fesm2022/nanahoshi-mona-ui-tooltip.mjs +716 -0
  68. package/fesm2022/nanahoshi-mona-ui-tree-view.mjs +733 -0
  69. package/fesm2022/nanahoshi-mona-ui-window.mjs +1329 -0
  70. package/fesm2022/nanahoshi-mona-ui.mjs +9 -0
  71. package/package.json +289 -0
  72. package/types/nanahoshi-mona-ui-auto-complete.d.ts +223 -0
  73. package/types/nanahoshi-mona-ui-avatar.d.ts +642 -0
  74. package/types/nanahoshi-mona-ui-breadcrumb.d.ts +70 -0
  75. package/types/nanahoshi-mona-ui-button-group.d.ts +77 -0
  76. package/types/nanahoshi-mona-ui-button.d.ts +111 -0
  77. package/types/nanahoshi-mona-ui-calendar.d.ts +262 -0
  78. package/types/nanahoshi-mona-ui-check-box.d.ts +133 -0
  79. package/types/nanahoshi-mona-ui-chip.d.ts +130 -0
  80. package/types/nanahoshi-mona-ui-circular-progress-bar.d.ts +113 -0
  81. package/types/nanahoshi-mona-ui-color-gradient.d.ts +201 -0
  82. package/types/nanahoshi-mona-ui-color-palette.d.ts +102 -0
  83. package/types/nanahoshi-mona-ui-color-picker.d.ts +156 -0
  84. package/types/nanahoshi-mona-ui-combo-box.d.ts +232 -0
  85. package/types/nanahoshi-mona-ui-common.d.ts +386 -0
  86. package/types/nanahoshi-mona-ui-contextmenu.d.ts +129 -0
  87. package/types/nanahoshi-mona-ui-date-input.d.ts +60 -0
  88. package/types/nanahoshi-mona-ui-date-picker.d.ts +177 -0
  89. package/types/nanahoshi-mona-ui-datetime-picker.d.ts +199 -0
  90. package/types/nanahoshi-mona-ui-dialog.d.ts +261 -0
  91. package/types/nanahoshi-mona-ui-dropdown-button.d.ts +159 -0
  92. package/types/nanahoshi-mona-ui-dropdown-list.d.ts +219 -0
  93. package/types/nanahoshi-mona-ui-dropdowns.d.ts +176 -0
  94. package/types/nanahoshi-mona-ui-editor.d.ts +113 -0
  95. package/types/nanahoshi-mona-ui-expansion-panel.d.ts +87 -0
  96. package/types/nanahoshi-mona-ui-fieldset.d.ts +68 -0
  97. package/types/nanahoshi-mona-ui-filter.d.ts +115 -0
  98. package/types/nanahoshi-mona-ui-grid.d.ts +1114 -0
  99. package/types/nanahoshi-mona-ui-internal-filter-input.d.ts +25 -0
  100. package/types/nanahoshi-mona-ui-internal-indicator-icon.d.ts +28 -0
  101. package/types/nanahoshi-mona-ui-internal-list.d.ts +269 -0
  102. package/types/nanahoshi-mona-ui-internal-tree.d.ts +391 -0
  103. package/types/nanahoshi-mona-ui-internal.d.ts +136 -0
  104. package/types/nanahoshi-mona-ui-list-box.d.ts +225 -0
  105. package/types/nanahoshi-mona-ui-list-view.d.ts +188 -0
  106. package/types/nanahoshi-mona-ui-list.d.ts +1 -0
  107. package/types/nanahoshi-mona-ui-menubar.d.ts +198 -0
  108. package/types/nanahoshi-mona-ui-multi-select.d.ts +247 -0
  109. package/types/nanahoshi-mona-ui-notification.d.ts +106 -0
  110. package/types/nanahoshi-mona-ui-numeric-text-box.d.ts +161 -0
  111. package/types/nanahoshi-mona-ui-pager.d.ts +238 -0
  112. package/types/nanahoshi-mona-ui-placeholder.d.ts +35 -0
  113. package/types/nanahoshi-mona-ui-popover.d.ts +130 -0
  114. package/types/nanahoshi-mona-ui-popup-menu.d.ts +412 -0
  115. package/types/nanahoshi-mona-ui-popup.d.ts +485 -0
  116. package/types/nanahoshi-mona-ui-progress-bar.d.ts +139 -0
  117. package/types/nanahoshi-mona-ui-query.d.ts +89 -0
  118. package/types/nanahoshi-mona-ui-radio-button.d.ts +128 -0
  119. package/types/nanahoshi-mona-ui-scroll-view.d.ts +166 -0
  120. package/types/nanahoshi-mona-ui-slider.d.ts +305 -0
  121. package/types/nanahoshi-mona-ui-split-button.d.ts +182 -0
  122. package/types/nanahoshi-mona-ui-splitter.d.ts +70 -0
  123. package/types/nanahoshi-mona-ui-stepper.d.ts +173 -0
  124. package/types/nanahoshi-mona-ui-switch.d.ts +125 -0
  125. package/types/nanahoshi-mona-ui-tabs.d.ts +158 -0
  126. package/types/nanahoshi-mona-ui-text-area.d.ts +42 -0
  127. package/types/nanahoshi-mona-ui-text-box.d.ts +164 -0
  128. package/types/nanahoshi-mona-ui-theme.d.ts +23 -0
  129. package/types/nanahoshi-mona-ui-time-picker.d.ts +184 -0
  130. package/types/nanahoshi-mona-ui-time-selector.d.ts +143 -0
  131. package/types/nanahoshi-mona-ui-tooltip.d.ts +130 -0
  132. package/types/nanahoshi-mona-ui-tree-view.d.ts +274 -0
  133. package/types/nanahoshi-mona-ui-window.d.ts +295 -0
  134. package/types/nanahoshi-mona-ui.d.ts +2 -0
@@ -0,0 +1,314 @@
1
+ import * as i0 from '@angular/core';
2
+ import { inject, DOCUMENT, signal, Injectable } from '@angular/core';
3
+
4
+ /**
5
+ * Parses an OKLCH color string (with optional alpha) into its components.
6
+ * Lightness (L) can be a percentage (e.g., "39.8%") or a number (e.g., "0.398").
7
+ * If L is a number, it's converted to the 0-100 scale (0.398 -> 39.8).
8
+ * @param oklchColorString - e.g., "oklch(39.8% 0.195 277.366)" or "oklch(0.21 0.01 0)"
9
+ * @returns Parsed OklchColor object or null if invalid.
10
+ */
11
+ function parseOklch(oklchColorString) {
12
+ const matchResult = oklchColorString.match(/oklch\(\s*([\d.]+)(%?)\s+([\d.]+)\s+([\d.]+)\s*(?:\/\s*([\d.]+))?\s*\)/i);
13
+ if (matchResult && matchResult[1] !== undefined && matchResult[3] !== undefined && matchResult[4] !== undefined) {
14
+ let lightnessValue = parseFloat(matchResult[1]);
15
+ const lightnessUnit = matchResult[2];
16
+ if (lightnessUnit === "") {
17
+ lightnessValue *= 100;
18
+ }
19
+ const chromaValue = parseFloat(matchResult[3]);
20
+ const hueValue = parseFloat(matchResult[4]);
21
+ let alphaValue = undefined;
22
+ if (matchResult[5] !== undefined) {
23
+ alphaValue = parseFloat(matchResult[5]);
24
+ }
25
+ return { l: lightnessValue, c: chromaValue, h: hueValue, a: alphaValue };
26
+ }
27
+ return null;
28
+ }
29
+ /**
30
+ * Formats OklchColor components back into an OKLCH string.
31
+ * Ensures L is clamped [0, 100], C is non-negative, and H is wrapped [0, 360).
32
+ * Alpha is included if defined and < 1. L is always formatted as a percentage.
33
+ * Matches precision of the input example.
34
+ * @param colorComponents - OklchColor object
35
+ * @returns Formatted OKLCH string.
36
+ */
37
+ function formatOklch(colorComponents) {
38
+ const clampedLightness = Math.max(0, Math.min(100, colorComponents.l));
39
+ const clampedChroma = Math.max(0, colorComponents.c);
40
+ let wrappedHue = colorComponents.h % 360;
41
+ if (wrappedHue < 0) {
42
+ wrappedHue += 360;
43
+ }
44
+ let oklchOutputString = `oklch(${clampedLightness.toFixed(1)}% ${clampedChroma.toFixed(3)} ${wrappedHue.toFixed(3)}`;
45
+ if (colorComponents.a !== undefined && colorComponents.a < 1.0) {
46
+ const clampedAlpha = Math.max(0, Math.min(1, colorComponents.a));
47
+ oklchOutputString += ` / ${clampedAlpha.toString()}`;
48
+ }
49
+ oklchOutputString += `)`;
50
+ return oklchOutputString;
51
+ }
52
+ /**
53
+ * Generates a primary color palette based on a given primary OKLCH color.
54
+ * The relationships are derived from the example provided, with adjustments
55
+ * for a "more white-y" foreground.
56
+ * @param primaryOklchString The primary color in OKLCH string format.
57
+ * @returns An object containing the generated color palette.
58
+ * @throws Error if the primaryOklchString is invalid.
59
+ */
60
+ function generatePrimaryColorPalette(primaryOklchString) {
61
+ const primaryColor = parseOklch(primaryOklchString);
62
+ if (!primaryColor) {
63
+ throw new Error("Invalid primary color string. Expected format: oklch(L[%] C H [/ A])");
64
+ }
65
+ const colorPalette = {
66
+ "--color-primary": formatOklch(primaryColor),
67
+ "--color-primary-foreground": "",
68
+ "--color-primary-hover": "",
69
+ "--color-primary-active": "",
70
+ "--color-primary-selected": "",
71
+ "--color-secondary-selected": ""
72
+ };
73
+ // --color-primary-foreground: Adjusted for a "more white-y" appearance
74
+ // L: Increased to 97.5% (was 94.3%)
75
+ // C: Decreased to 0.005 (was 0.029) to be more achromatic
76
+ // H: Kept the primaryColor.h + 17.222 relationship
77
+ colorPalette["--color-primary-foreground"] = formatOklch({
78
+ l: 97.5, // Higher lightness for more "whiteness"
79
+ c: 0.005, // Lower chroma for more neutrality (closer to pure white)
80
+ h: primaryColor.h + 17.222
81
+ });
82
+ colorPalette["--color-primary-hover"] = formatOklch({
83
+ l: primaryColor.l + 6,
84
+ c: primaryColor.c,
85
+ h: primaryColor.h
86
+ });
87
+ colorPalette["--color-primary-active"] = formatOklch({
88
+ l: primaryColor.l - 4,
89
+ c: primaryColor.c,
90
+ h: primaryColor.h
91
+ });
92
+ colorPalette["--color-primary-selected"] = formatOklch({
93
+ l: primaryColor.l + 9,
94
+ c: primaryColor.c,
95
+ h: primaryColor.h
96
+ });
97
+ colorPalette["--color-secondary-selected"] = formatOklch({
98
+ l: primaryColor.l + 4,
99
+ c: primaryColor.c,
100
+ h: primaryColor.h,
101
+ a: 0.5
102
+ });
103
+ return colorPalette;
104
+ }
105
+
106
+ const themeColorMap = {
107
+ flora: "oklch(50.8% 0.118 165.612)",
108
+ kafka: "oklch(0.2912 0.0994 349.29)",
109
+ lisa: "oklch(0.3671 0.1381 281.69)",
110
+ mona: "oklch(0.4008 0.107 308.49)",
111
+ reina: "oklch(42.4% 0.199 265.638)",
112
+ rosaria: "oklch(0.3987 0.1272 20.69)"
113
+ };
114
+
115
+ class ThemeService {
116
+ #document;
117
+ #theme;
118
+ #themeVariant;
119
+ constructor() {
120
+ this.#document = inject(DOCUMENT);
121
+ this.#theme = signal("mona", /* @ts-ignore */
122
+ ...(ngDevMode ? [{ debugName: "#theme" }] : /* istanbul ignore next */ []));
123
+ this.#themeVariant = signal("light", /* @ts-ignore */
124
+ ...(ngDevMode ? [{ debugName: "#themeVariant" }] : /* istanbul ignore next */ []));
125
+ this.themeId = signal("mona-light", /* @ts-ignore */
126
+ ...(ngDevMode ? [{ debugName: "themeId" }] : /* istanbul ignore next */ []));
127
+ this.theme = this.#theme.asReadonly();
128
+ this.themeVariant = this.#themeVariant.asReadonly();
129
+ this.updateThemeVariables();
130
+ }
131
+ setThemeId(themeId) {
132
+ const [theme, variant] = themeId.split("-");
133
+ this.#theme.set(theme);
134
+ this.#themeVariant.set(variant);
135
+ this.themeId.set(themeId);
136
+ this.updateThemeVariables();
137
+ }
138
+ getActiveThemeVariables() {
139
+ const theme = this.theme();
140
+ const variant = this.themeVariant();
141
+ if (theme === "mona") {
142
+ return variant === "light" ? this.getMonaLightThemeVariables() : this.getMonaDarkThemeVariables();
143
+ }
144
+ return {};
145
+ }
146
+ getMonaDarkThemeVariables() {
147
+ return {
148
+ "--color-background": "oklch(0.21 0 0)",
149
+ "--color-background-dark": "oklch(0.19 0 0)",
150
+ "--color-foreground": "oklch(100% 0.001 106.424)",
151
+ "--color-hover": "oklch(22.5% 0 0)",
152
+ "--color-active": "oklch(19.5% 0 0)",
153
+ "--color-selected": "oklch(24% 0 0)",
154
+ "--color-header-background": "oklch(0.18 0 0)",
155
+ "--color-header-foreground": "oklch(0.20 0 0)",
156
+ "--color-accent": "oklch(24.5% 0 0)",
157
+ "--color-accent-dark": "oklch(21.5% 0 0)",
158
+ "--color-accent-foreground": "oklch(97% 0 0)",
159
+ "--color-accent-hover": "oklch(26.5% 0 0)",
160
+ "--color-accent-active": "oklch(31.5% 0 0)",
161
+ "--color-input-background": "oklch(0.20 0 0)",
162
+ "--color-input-border": "oklch(0.12 0 0)",
163
+ "--color-input-hover": "oklch(0.22 0 0)",
164
+ "--color-input-active": "oklch(0.21 0 0)",
165
+ "--color-popover": "#fff",
166
+ "--color-popover-foreground": "#09090b",
167
+ ...generatePrimaryColorPalette(themeColorMap.flora),
168
+ "--color-secondary": "oklch(0.27 0 0)",
169
+ "--color-secondary-foreground": "oklch(97.7% 0.001 106.424)",
170
+ "--color-secondary-hover": "oklch(0.29 0 0)",
171
+ "--color-secondary-active": "oklch(0.31 0 0)",
172
+ // "--color-secondary-selected": "oklch(43.8% 0.195 277.366 / 0.5)",
173
+ "--color-success": "oklch(62.7% 0.194 149.214)",
174
+ "--color-success-foreground": "oklch(94.3% 0.029 294.588)",
175
+ "--color-success-hover": "oklch(66.7% 0.194 149.214)",
176
+ "--color-success-active": "oklch(54.7% 0.194 149.214)",
177
+ "--color-success-selected": "oklch(76.7% 0.194 149.214)",
178
+ "--color-error": "oklch(57.7% 0.245 27.325)",
179
+ "--color-error-foreground": "oklch(94.3% 0.029 294.588)",
180
+ "--color-error-hover": "oklch(61.7% 0.245 27.325)",
181
+ "--color-error-active": "oklch(53.7% 0.245 27.325)",
182
+ "--color-error-selected": "oklch(71.7% 0.245 27.325)",
183
+ "--color-warning": "oklch(66.6% 0.179 58.318)",
184
+ "--color-warning-foreground": "oklch(94.3% 0.029 294.588)",
185
+ "--color-warning-hover": "oklch(70.6% 0.179 58.318)",
186
+ "--color-warning-active": "oklch(58.6% 0.179 58.318)",
187
+ "--color-warning-selected": "oklch(80.6% 0.179 58.318)",
188
+ "--color-info": "oklch(54.6% 0.245 262.881)",
189
+ "--color-info-foreground": "oklch(94.3% 0.029 294.588)",
190
+ "--color-info-hover": "oklch(58.6% 0.245 262.881)",
191
+ "--color-info-active": "oklch(46.6% 0.245 262.881)",
192
+ "--color-info-selected": "oklch(68.6% 0.245 262.881)",
193
+ "--color-muted": "#f4f4f5",
194
+ "--color-muted-foreground": "#71717a",
195
+ "--color-border": "oklch(0.1689 0.0021 286.18)",
196
+ "--color-input": "#e4e4e7",
197
+ "--color-chart-1": "#e76e50",
198
+ "--color-chart-2": "#2a9d90",
199
+ "--color-chart-3": "#274754",
200
+ "--color-chart-4": "#e8c468",
201
+ "--color-chart-5": "#f4a462",
202
+ "--color-scrollbar-thumb": "#d1d5db",
203
+ "--color-scrollbar-thumb-hover": "#9ca3af",
204
+ "--color-scrollbar-thumb-active": "#6b7280",
205
+ "--color-scrollbar-thumb-focus": "#9ca3af",
206
+ "--color-scrollbar-track": "#f9fafb",
207
+ "--color-scrollbar-track-hover": "#f4f5f7",
208
+ "--color-scrollbar-track-active": "#e5e7eb",
209
+ "--color-scrollbar-track-focus": "#f4f5f7",
210
+ "--color-scrollbar-corner": "#f9fafb",
211
+ // Temporary variables for testing purposes
212
+ "--page-background": "#1a1b1c",
213
+ "--color-demo-background": "#202122"
214
+ // "--color-demo-background": "oklch(0.24 0 0)"
215
+ };
216
+ }
217
+ getMonaLightThemeVariables() {
218
+ return {
219
+ "--color-background": "oklch(1 0 0)",
220
+ "--color-background-dark": "oklch(0.99 0 0)",
221
+ "--color-foreground": "oklch(0.1407 0.0044 285.82)",
222
+ "--color-hover": "oklch(0.96 0 0)",
223
+ "--color-active": "oklch(0.94 0 0)",
224
+ "--color-selected": "#f4f5f7",
225
+ "--color-header-background": "oklch(0.97 0 0)",
226
+ "--color-header-foreground": "oklch(0.99 0 0)",
227
+ "--color-accent": "oklch(0.96 0 0)",
228
+ "--color-accent-dark": "oklch(0.93 0 0)",
229
+ "--color-accent-foreground": "oklch(0.21 0 0)",
230
+ "--color-accent-hover": "oklch(0.95 0 0)",
231
+ "--color-accent-active": "oklch(0.90 0 0)",
232
+ "--color-input-background": "oklch(1 0 0)",
233
+ "--color-input-border": "oklch(0.92 0 0)",
234
+ "--color-input-hover": "oklch(0.95 0 0)",
235
+ "--color-input-active": "oklch(0.98 0 0)",
236
+ "--color-popover": "#fff",
237
+ "--color-popover-foreground": "#09090b",
238
+ ...generatePrimaryColorPalette("oklch(0.21 0.01 0)"),
239
+ // ...generatePrimaryColorPalette("oklch(0.59 0.25 17.59)"),
240
+ "--color-secondary": "oklch(.97 0 0)",
241
+ "--color-secondary-foreground": "oklch(0.21 0 0)",
242
+ "--color-secondary-hover": "oklch(0.95 0 0)",
243
+ "--color-secondary-active": "oklch(0.90 0 0)",
244
+ "--color-success": "oklch(62.7% 0.194 149.214)",
245
+ "--color-success-foreground": "oklch(97.7% 0.001 106.424)",
246
+ "--color-success-hover": "oklch(66.7% 0.194 149.214)",
247
+ "--color-success-active": "oklch(54.7% 0.194 149.214)",
248
+ "--color-success-selected": "oklch(76.7% 0.194 149.214)",
249
+ "--color-error": "oklch(57.7% 0.245 27.325)",
250
+ "--color-error-foreground": "oklch(94.3% 0.029 294.588)",
251
+ "--color-error-hover": "oklch(61.7% 0.245 27.325)",
252
+ "--color-error-active": "oklch(53.7% 0.245 27.325)",
253
+ "--color-error-selected": "oklch(71.7% 0.245 27.325)",
254
+ "--color-warning": "oklch(66.6% 0.179 58.318)",
255
+ "--color-warning-foreground": "oklch(94.3% 0.029 294.588)",
256
+ "--color-warning-hover": "oklch(70.6% 0.179 58.318)",
257
+ "--color-warning-active": "oklch(58.6% 0.179 58.318)",
258
+ "--color-warning-selected": "oklch(80.6% 0.179 58.318)",
259
+ "--color-info": "oklch(54.6% 0.245 262.881)",
260
+ "--color-info-foreground": "oklch(94.3% 0.029 294.588)",
261
+ "--color-info-hover": "oklch(58.6% 0.245 262.881)",
262
+ "--color-info-active": "oklch(46.6% 0.245 262.881)",
263
+ "--color-info-selected": "oklch(68.6% 0.245 262.881)",
264
+ "--color-muted": "#f4f4f5",
265
+ "--color-muted-foreground": "#71717a",
266
+ "--color-destructive": "#ef4444",
267
+ "--color-destructive-foreground": "#fafafa",
268
+ "--color-border": "oklch(0.9197 0.004 286.32)",
269
+ "--color-input": "#e4e4e7",
270
+ "--color-chart-1": "#e76e50",
271
+ "--color-chart-2": "#2a9d90",
272
+ "--color-chart-3": "#274754",
273
+ "--color-chart-4": "#e8c468",
274
+ "--color-chart-5": "#f4a462",
275
+ "--color-scrollbar-thumb": "#d1d5db",
276
+ "--color-scrollbar-thumb-hover": "#9ca3af",
277
+ "--color-scrollbar-thumb-active": "#6b7280",
278
+ "--color-scrollbar-thumb-focus": "#9ca3af",
279
+ "--color-scrollbar-track": "#f9fafb",
280
+ "--color-scrollbar-track-hover": "#f4f5f7",
281
+ "--color-scrollbar-track-active": "#e5e7eb",
282
+ "--color-scrollbar-track-focus": "#f4f5f7",
283
+ "--color-scrollbar-corner": "#f9fafb",
284
+ "--page-background": "#fff",
285
+ "--color-demo-background": "#f9fafb"
286
+ };
287
+ }
288
+ updateThemeVariables() {
289
+ const themeVariables = this.getActiveThemeVariables();
290
+ const root = this.#document.querySelector(":root");
291
+ Object.entries(themeVariables).forEach(([key, value]) => {
292
+ root.style.setProperty(key, value);
293
+ });
294
+ }
295
+ static { this.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "22.0.6", ngImport: i0, type: ThemeService, deps: [], target: i0.ɵɵFactoryTarget.Injectable }); }
296
+ static { this.ɵprov = i0.ɵɵngDeclareInjectable({ minVersion: "12.0.0", version: "22.0.6", ngImport: i0, type: ThemeService, providedIn: "root" }); }
297
+ }
298
+ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "22.0.6", ngImport: i0, type: ThemeService, decorators: [{
299
+ type: Injectable,
300
+ args: [{
301
+ providedIn: "root"
302
+ }]
303
+ }], ctorParameters: () => [] });
304
+
305
+ /*
306
+ * Public API Surface of @nanahoshi/mona-ui/theme
307
+ */
308
+
309
+ /**
310
+ * Generated bundle index. Do not edit.
311
+ */
312
+
313
+ export { ThemeService };
314
+ //# sourceMappingURL=nanahoshi-mona-ui-theme.mjs.map