@shival99/z-ui 1.0.1 → 1.0.2

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 (114) hide show
  1. package/assets/css/animations.css +207 -0
  2. package/assets/css/base.css +76 -0
  3. package/assets/css/tailwind.css +53 -0
  4. package/assets/css/themes/gray.css +73 -0
  5. package/assets/css/themes/green.css +75 -0
  6. package/assets/css/themes/hospital.css +79 -0
  7. package/assets/css/themes/neutral.css +73 -0
  8. package/assets/css/themes/orange.css +73 -0
  9. package/assets/css/themes/slate.css +73 -0
  10. package/assets/css/themes/stone.css +73 -0
  11. package/assets/css/themes/violet.css +73 -0
  12. package/assets/css/themes/zinc.css +73 -0
  13. package/assets/images/avatar.svg +6 -0
  14. package/assets/images/logo.svg +6 -0
  15. package/fesm2022/shival99-z-ui-components-z-accordion.mjs +148 -0
  16. package/fesm2022/shival99-z-ui-components-z-accordion.mjs.map +1 -0
  17. package/fesm2022/shival99-z-ui-components-z-breadcrumb.mjs +74 -0
  18. package/fesm2022/shival99-z-ui-components-z-breadcrumb.mjs.map +1 -0
  19. package/fesm2022/shival99-z-ui-components-z-button.mjs +155 -0
  20. package/fesm2022/shival99-z-ui-components-z-button.mjs.map +1 -0
  21. package/fesm2022/shival99-z-ui-components-z-calendar.mjs +2335 -0
  22. package/fesm2022/shival99-z-ui-components-z-calendar.mjs.map +1 -0
  23. package/fesm2022/shival99-z-ui-components-z-checkbox.mjs +240 -0
  24. package/fesm2022/shival99-z-ui-components-z-checkbox.mjs.map +1 -0
  25. package/fesm2022/shival99-z-ui-components-z-code.mjs +139 -0
  26. package/fesm2022/shival99-z-ui-components-z-code.mjs.map +1 -0
  27. package/fesm2022/shival99-z-ui-components-z-drawer.mjs +664 -0
  28. package/fesm2022/shival99-z-ui-components-z-drawer.mjs.map +1 -0
  29. package/fesm2022/shival99-z-ui-components-z-dropdown-menu.mjs +55 -0
  30. package/fesm2022/shival99-z-ui-components-z-dropdown-menu.mjs.map +1 -0
  31. package/fesm2022/shival99-z-ui-components-z-editor.mjs +411 -0
  32. package/fesm2022/shival99-z-ui-components-z-editor.mjs.map +1 -0
  33. package/fesm2022/shival99-z-ui-components-z-filter.mjs +794 -0
  34. package/fesm2022/shival99-z-ui-components-z-filter.mjs.map +1 -0
  35. package/fesm2022/shival99-z-ui-components-z-icon.mjs +451 -0
  36. package/fesm2022/shival99-z-ui-components-z-icon.mjs.map +1 -0
  37. package/fesm2022/shival99-z-ui-components-z-input.mjs +804 -0
  38. package/fesm2022/shival99-z-ui-components-z-input.mjs.map +1 -0
  39. package/fesm2022/shival99-z-ui-components-z-loading.mjs +105 -0
  40. package/fesm2022/shival99-z-ui-components-z-loading.mjs.map +1 -0
  41. package/fesm2022/shival99-z-ui-components-z-menu.mjs +351 -0
  42. package/fesm2022/shival99-z-ui-components-z-menu.mjs.map +1 -0
  43. package/fesm2022/shival99-z-ui-components-z-modal.mjs +722 -0
  44. package/fesm2022/shival99-z-ui-components-z-modal.mjs.map +1 -0
  45. package/fesm2022/shival99-z-ui-components-z-pagination.mjs +131 -0
  46. package/fesm2022/shival99-z-ui-components-z-pagination.mjs.map +1 -0
  47. package/fesm2022/shival99-z-ui-components-z-popover.mjs +917 -0
  48. package/fesm2022/shival99-z-ui-components-z-popover.mjs.map +1 -0
  49. package/fesm2022/shival99-z-ui-components-z-radio.mjs +154 -0
  50. package/fesm2022/shival99-z-ui-components-z-radio.mjs.map +1 -0
  51. package/fesm2022/shival99-z-ui-components-z-select.mjs +998 -0
  52. package/fesm2022/shival99-z-ui-components-z-select.mjs.map +1 -0
  53. package/fesm2022/shival99-z-ui-components-z-skeleton.mjs +139 -0
  54. package/fesm2022/shival99-z-ui-components-z-skeleton.mjs.map +1 -0
  55. package/fesm2022/shival99-z-ui-components-z-switch.mjs +127 -0
  56. package/fesm2022/shival99-z-ui-components-z-switch.mjs.map +1 -0
  57. package/fesm2022/shival99-z-ui-components-z-table.mjs +2628 -0
  58. package/fesm2022/shival99-z-ui-components-z-table.mjs.map +1 -0
  59. package/fesm2022/shival99-z-ui-components-z-tabs.mjs +259 -0
  60. package/fesm2022/shival99-z-ui-components-z-tabs.mjs.map +1 -0
  61. package/fesm2022/shival99-z-ui-components-z-timeline.mjs +335 -0
  62. package/fesm2022/shival99-z-ui-components-z-timeline.mjs.map +1 -0
  63. package/fesm2022/shival99-z-ui-components-z-toast.mjs +93 -0
  64. package/fesm2022/shival99-z-ui-components-z-toast.mjs.map +1 -0
  65. package/fesm2022/shival99-z-ui-components-z-tooltip.mjs +660 -0
  66. package/fesm2022/shival99-z-ui-components-z-tooltip.mjs.map +1 -0
  67. package/fesm2022/shival99-z-ui-components-z-upload.mjs +504 -0
  68. package/fesm2022/shival99-z-ui-components-z-upload.mjs.map +1 -0
  69. package/fesm2022/shival99-z-ui-i18n.mjs +258 -0
  70. package/fesm2022/shival99-z-ui-i18n.mjs.map +1 -0
  71. package/fesm2022/shival99-z-ui-pipes.mjs +116 -0
  72. package/fesm2022/shival99-z-ui-pipes.mjs.map +1 -0
  73. package/fesm2022/shival99-z-ui-providers.mjs +203 -0
  74. package/fesm2022/shival99-z-ui-providers.mjs.map +1 -0
  75. package/fesm2022/shival99-z-ui-services.mjs +919 -0
  76. package/fesm2022/shival99-z-ui-services.mjs.map +1 -0
  77. package/fesm2022/shival99-z-ui-utils.mjs +591 -0
  78. package/fesm2022/shival99-z-ui-utils.mjs.map +1 -0
  79. package/fesm2022/z-ui.mjs +3 -19924
  80. package/fesm2022/z-ui.mjs.map +1 -1
  81. package/package.json +129 -1
  82. package/types/shival99-z-ui-components-z-accordion.d.ts +55 -0
  83. package/types/shival99-z-ui-components-z-breadcrumb.d.ts +36 -0
  84. package/types/shival99-z-ui-components-z-button.d.ts +41 -0
  85. package/types/shival99-z-ui-components-z-calendar.d.ts +300 -0
  86. package/types/shival99-z-ui-components-z-checkbox.d.ts +84 -0
  87. package/types/shival99-z-ui-components-z-code.d.ts +35 -0
  88. package/types/shival99-z-ui-components-z-drawer.d.ts +232 -0
  89. package/types/shival99-z-ui-components-z-dropdown-menu.d.ts +50 -0
  90. package/types/shival99-z-ui-components-z-editor.d.ts +115 -0
  91. package/types/shival99-z-ui-components-z-filter.d.ts +268 -0
  92. package/types/shival99-z-ui-components-z-icon.d.ts +291 -0
  93. package/types/shival99-z-ui-components-z-input.d.ts +188 -0
  94. package/types/shival99-z-ui-components-z-loading.d.ts +46 -0
  95. package/types/shival99-z-ui-components-z-menu.d.ts +116 -0
  96. package/types/shival99-z-ui-components-z-modal.d.ts +270 -0
  97. package/types/shival99-z-ui-components-z-pagination.d.ts +52 -0
  98. package/types/shival99-z-ui-components-z-popover.d.ts +134 -0
  99. package/types/shival99-z-ui-components-z-radio.d.ts +63 -0
  100. package/types/shival99-z-ui-components-z-select.d.ts +268 -0
  101. package/types/shival99-z-ui-components-z-skeleton.d.ts +55 -0
  102. package/types/shival99-z-ui-components-z-switch.d.ts +48 -0
  103. package/types/shival99-z-ui-components-z-table.d.ts +482 -0
  104. package/types/shival99-z-ui-components-z-tabs.d.ts +75 -0
  105. package/types/shival99-z-ui-components-z-timeline.d.ts +98 -0
  106. package/types/shival99-z-ui-components-z-toast.d.ts +61 -0
  107. package/types/shival99-z-ui-components-z-tooltip.d.ts +85 -0
  108. package/types/shival99-z-ui-components-z-upload.d.ts +136 -0
  109. package/types/shival99-z-ui-i18n.d.ts +50 -0
  110. package/types/shival99-z-ui-pipes.d.ts +36 -0
  111. package/types/shival99-z-ui-providers.d.ts +132 -0
  112. package/types/shival99-z-ui-services.d.ts +364 -0
  113. package/types/shival99-z-ui-utils.d.ts +145 -0
  114. package/types/z-ui.d.ts +3 -4977
@@ -0,0 +1,207 @@
1
+ /* ===== Animation Utilities ===== */
2
+ @layer base {
3
+ @keyframes z-enter {
4
+ from {
5
+ opacity: var(--z-enter-opacity, 1);
6
+ transform: translate3d(var(--z-enter-translate-x, 0), var(--z-enter-translate-y, 0), 0)
7
+ scale3d(var(--z-enter-scale, 1), var(--z-enter-scale, 1), var(--z-enter-scale, 1));
8
+ }
9
+ }
10
+
11
+ @keyframes z-exit {
12
+ to {
13
+ opacity: var(--z-exit-opacity, 1);
14
+ transform: translate3d(var(--z-exit-translate-x, 0), var(--z-exit-translate-y, 0), 0)
15
+ scale3d(var(--z-exit-scale, 1), var(--z-exit-scale, 1), var(--z-exit-scale, 1));
16
+ }
17
+ }
18
+
19
+ .z-animate-in {
20
+ animation: z-enter 180ms cubic-bezier(0.32, 0.72, 0, 1);
21
+ animation-fill-mode: forwards;
22
+ }
23
+
24
+ .z-animate-out {
25
+ animation: z-exit 150ms cubic-bezier(0.32, 0.72, 0, 1);
26
+ animation-fill-mode: forwards;
27
+ }
28
+
29
+ /* Fade */
30
+ .z-fade-in {
31
+ --z-enter-opacity: 0;
32
+ }
33
+
34
+ .z-fade-out {
35
+ --z-exit-opacity: 0;
36
+ }
37
+
38
+ /* Zoom/Scale */
39
+ .z-zoom-in-95 {
40
+ --z-enter-scale: 0.95;
41
+ }
42
+
43
+ .z-zoom-out-95 {
44
+ --z-exit-scale: 0.95;
45
+ }
46
+
47
+ .z-zoom-in-90 {
48
+ --z-enter-scale: 0.9;
49
+ }
50
+
51
+ .z-zoom-out-90 {
52
+ --z-exit-scale: 0.9;
53
+ }
54
+
55
+ /* Slide */
56
+ .z-slide-in-from-top-2 {
57
+ --z-enter-translate-y: -4px;
58
+ }
59
+
60
+ .z-slide-out-to-top-2 {
61
+ --z-exit-translate-y: -4px;
62
+ }
63
+
64
+ .z-slide-in-from-bottom-2 {
65
+ --z-enter-translate-y: 4px;
66
+ }
67
+
68
+ .z-slide-out-to-bottom-2 {
69
+ --z-exit-translate-y: 4px;
70
+ }
71
+
72
+ .z-slide-in-from-left-2 {
73
+ --z-enter-translate-x: -4px;
74
+ }
75
+
76
+ .z-slide-out-to-left-2 {
77
+ --z-exit-translate-x: -4px;
78
+ }
79
+
80
+ .z-slide-in-from-right-2 {
81
+ --z-enter-translate-x: 4px;
82
+ }
83
+
84
+ .z-slide-out-to-right-2 {
85
+ --z-exit-translate-x: 4px;
86
+ }
87
+
88
+ /* Slide-4 (8px) - for popover */
89
+ .z-slide-in-from-top-4 {
90
+ --z-enter-translate-y: -8px;
91
+ }
92
+
93
+ .z-slide-out-to-top-4 {
94
+ --z-exit-translate-y: -8px;
95
+ }
96
+
97
+ .z-slide-in-from-bottom-4 {
98
+ --z-enter-translate-y: 8px;
99
+ }
100
+
101
+ .z-slide-out-to-bottom-4 {
102
+ --z-exit-translate-y: 8px;
103
+ }
104
+
105
+ .z-slide-in-from-left-4 {
106
+ --z-enter-translate-x: -8px;
107
+ }
108
+
109
+ .z-slide-out-to-left-4 {
110
+ --z-exit-translate-x: -8px;
111
+ }
112
+
113
+ .z-slide-in-from-right-4 {
114
+ --z-enter-translate-x: 8px;
115
+ }
116
+
117
+ .z-slide-out-to-right-4 {
118
+ --z-exit-translate-x: 8px;
119
+ }
120
+
121
+ /* Duration modifiers */
122
+ .z-duration-100 {
123
+ animation-duration: 100ms;
124
+ }
125
+
126
+ .z-duration-150 {
127
+ animation-duration: 150ms;
128
+ }
129
+
130
+ .z-duration-200 {
131
+ animation-duration: 200ms;
132
+ }
133
+
134
+ .z-duration-300 {
135
+ animation-duration: 300ms;
136
+ }
137
+
138
+ /* CDK Overlay Backdrop Animation */
139
+ @keyframes z-backdrop-enter {
140
+ from {
141
+ opacity: 0;
142
+ }
143
+
144
+ to {
145
+ opacity: 1;
146
+ }
147
+ }
148
+
149
+ @keyframes z-backdrop-exit {
150
+ from {
151
+ opacity: 1;
152
+ }
153
+
154
+ to {
155
+ opacity: 0;
156
+ }
157
+ }
158
+
159
+ @keyframes z-spin-effect {
160
+ to {
161
+ transform: rotate(360deg);
162
+ }
163
+ }
164
+
165
+ .z-animate-spin {
166
+ animation: z-spin-effect 1s linear infinite;
167
+ }
168
+
169
+ @keyframes z-wave-effect {
170
+ to {
171
+ box-shadow: 0 0 0 5px var(--z-wave-color, currentColor);
172
+ }
173
+ }
174
+
175
+ @keyframes z-fade-effect {
176
+ to {
177
+ opacity: 0;
178
+ }
179
+ }
180
+
181
+ .z-animate-wave {
182
+ position: absolute;
183
+ inset: 0;
184
+ display: block;
185
+ border-radius: inherit;
186
+ box-shadow: 0 0 0 0 var(--z-wave-color, currentColor);
187
+ opacity: 0.2;
188
+ animation:
189
+ z-fade-effect 2s cubic-bezier(0.08, 0.82, 0.17, 1),
190
+ z-wave-effect 0.4s cubic-bezier(0.08, 0.82, 0.17, 1);
191
+ animation-fill-mode: forwards;
192
+ pointer-events: none;
193
+ }
194
+
195
+ /* CDK Backdrop Styles for Service Mode Modal */
196
+ .cdk-overlay-backdrop {
197
+ animation: z-backdrop-enter 150ms ease-out forwards;
198
+ }
199
+
200
+ .cdk-overlay-backdrop.cdk-overlay-backdrop-showing {
201
+ opacity: 1;
202
+ }
203
+
204
+ .cdk-overlay-backdrop.z-backdrop-leaving {
205
+ animation: z-backdrop-exit 120ms ease-in forwards;
206
+ }
207
+ }
@@ -0,0 +1,76 @@
1
+ /* ===== Base Styles ===== */
2
+ @layer base {
3
+ * {
4
+ @apply border-border outline-ring/50;
5
+ }
6
+
7
+ body {
8
+ @apply bg-background text-foreground;
9
+ font-family:
10
+ 'Be Vietnam Pro',
11
+ system-ui,
12
+ -apple-system,
13
+ sans-serif;
14
+ }
15
+
16
+ /* ===== Custom Scrollbar Styles ===== */
17
+ /* * {
18
+ scrollbar-width: auto;
19
+ scrollbar-color: #d1d5db transparent;
20
+ }
21
+
22
+ *:hover {
23
+ scrollbar-color: #9ca3af transparent;
24
+ } */
25
+
26
+ /* WebKit browsers (Chrome, Safari, Edge) */
27
+ ::-webkit-scrollbar {
28
+ width: 7px;
29
+ height: 7px;
30
+ }
31
+
32
+ ::-webkit-scrollbar-track {
33
+ background: transparent;
34
+ }
35
+
36
+ ::-webkit-scrollbar-thumb {
37
+ background-color: #d1d5db;
38
+ border-radius: 5px;
39
+ }
40
+
41
+ ::-webkit-scrollbar-thumb:hover,
42
+ ::-webkit-scrollbar-thumb:active {
43
+ background-color: #9ca3af;
44
+ }
45
+
46
+ ::-webkit-scrollbar-corner {
47
+ background: transparent;
48
+ }
49
+
50
+ /* Dark mode scrollbar */
51
+ .dark ::-webkit-scrollbar-thumb {
52
+ background-color: #4b5563;
53
+ }
54
+
55
+ .dark ::-webkit-scrollbar-thumb:hover,
56
+ .dark ::-webkit-scrollbar-thumb:active {
57
+ background-color: #6b7280;
58
+ }
59
+
60
+ :root {
61
+ --scrollbar-track-color: transparent;
62
+ --scrollbar-track-shape: 5px;
63
+ --scrollbar-track-thickness: 7px;
64
+ --scrollbar-thumb-color: #d1d5db;
65
+ --scrollbar-thumb-hover-color: #9ca3af;
66
+ --scrollbar-thumb-shape: 5px;
67
+ --scrollbar-thumb-min-size: 40;
68
+ --scrollbar-hover-opacity-transition-leave-duration: 0.3s;
69
+ --scrollbar-hover-opacity-transition-leave-delay: 0.5s;
70
+ }
71
+
72
+ .dark {
73
+ --scrollbar-thumb-color: #4b5563;
74
+ --scrollbar-thumb-hover-color: #6b7280;
75
+ }
76
+ }
@@ -0,0 +1,53 @@
1
+ @import 'tailwindcss';
2
+
3
+ /* Configure dark mode to use class instead of prefers-color-scheme */
4
+ @custom-variant dark (&:where(.dark, .dark *));
5
+
6
+ @theme inline {
7
+ --color-background: var(--background);
8
+ --color-foreground: var(--foreground);
9
+ --color-card: var(--card);
10
+ --color-card-foreground: var(--card-foreground);
11
+ --color-popover: var(--popover);
12
+ --color-popover-foreground: var(--popover-foreground);
13
+ --color-primary: var(--primary);
14
+ --color-primary-foreground: var(--primary-foreground);
15
+ --color-secondary: var(--secondary);
16
+ --color-secondary-foreground: var(--secondary-foreground);
17
+ --color-muted: var(--muted);
18
+ --color-muted-foreground: var(--muted-foreground);
19
+ --color-accent: var(--accent);
20
+ --color-accent-foreground: var(--accent-foreground);
21
+ --color-destructive: var(--destructive);
22
+ --color-destructive-foreground: var(--destructive-foreground);
23
+ --color-border: var(--border);
24
+ --color-input: var(--input);
25
+ --color-ring: var(--ring);
26
+ --color-chart-1: var(--chart-1);
27
+ --color-chart-2: var(--chart-2);
28
+ --color-chart-3: var(--chart-3);
29
+ --color-chart-4: var(--chart-4);
30
+ --color-chart-5: var(--chart-5);
31
+ --color-sidebar: var(--sidebar);
32
+ --color-sidebar-foreground: var(--sidebar-foreground);
33
+ --color-sidebar-primary: var(--sidebar-primary);
34
+ --color-sidebar-primary-foreground: var(--sidebar-primary-foreground);
35
+ --color-sidebar-accent: var(--sidebar-accent);
36
+ --color-sidebar-accent-foreground: var(--sidebar-accent-foreground);
37
+ --color-sidebar-border: var(--sidebar-border);
38
+ --color-sidebar-ring: var(--sidebar-ring);
39
+ --radius-sm: calc(var(--radius) - 4px);
40
+ --radius-md: calc(var(--radius) - 2px);
41
+ --radius-lg: var(--radius);
42
+ --radius-xl: calc(var(--radius) + 4px);
43
+ }
44
+
45
+ /* Base styles */
46
+ @import './base.css';
47
+
48
+ /* Animations */
49
+ @import './animations.css';
50
+
51
+ /* Themes - Only neutral theme is bundled (default theme) */
52
+ /* Other themes are lazy loaded by ZThemeService when setTheme() is called */
53
+ @import './themes/neutral.css';
@@ -0,0 +1,73 @@
1
+ /* GRAY THEME */
2
+ :root[z-theme='gray'] {
3
+ --radius: 0.625rem;
4
+ --background: oklch(1 0 0);
5
+ --foreground: oklch(0.13 0.028 261.692);
6
+ --card: oklch(1 0 0);
7
+ --card-foreground: oklch(0.13 0.028 261.692);
8
+ --popover: oklch(1 0 0);
9
+ --popover-foreground: oklch(0.13 0.028 261.692);
10
+ --primary: oklch(0.21 0.034 264.665);
11
+ --primary-foreground: oklch(0.985 0.002 247.839);
12
+ --secondary: oklch(0.967 0.003 264.542);
13
+ --secondary-foreground: oklch(0.21 0.034 264.665);
14
+ --muted: oklch(0.967 0.003 264.542);
15
+ --muted-foreground: oklch(0.551 0.027 264.364);
16
+ --accent: oklch(0.967 0.003 264.542);
17
+ --accent-foreground: oklch(0.21 0.034 264.665);
18
+ --destructive: oklch(0.577 0.245 27.325);
19
+ --destructive-foreground: oklch(0.985 0 0);
20
+ --border: oklch(0.928 0.006 264.531);
21
+ --input: oklch(0.928 0.006 264.531);
22
+ --input-autofill: oklch(1 0 0);
23
+ --ring: oklch(0.707 0.022 261.325);
24
+ --chart-1: oklch(0.646 0.222 41.116);
25
+ --chart-2: oklch(0.6 0.118 184.704);
26
+ --chart-3: oklch(0.398 0.07 227.334);
27
+ --chart-4: oklch(0.828 0.189 84.429);
28
+ --chart-5: oklch(0.769 0.188 70.08);
29
+ --sidebar: oklch(0.985 0.002 247.839);
30
+ --sidebar-foreground: oklch(0.13 0.028 261.692);
31
+ --sidebar-primary: oklch(0.21 0.034 264.665);
32
+ --sidebar-primary-foreground: oklch(0.985 0.002 247.839);
33
+ --sidebar-accent: oklch(0.967 0.003 264.542);
34
+ --sidebar-accent-foreground: oklch(0.21 0.034 264.665);
35
+ --sidebar-border: oklch(0.928 0.006 264.531);
36
+ --sidebar-ring: oklch(0.707 0.022 261.325);
37
+ }
38
+
39
+ :root[z-theme='gray'].dark {
40
+ --background: oklch(0.13 0.028 261.692);
41
+ --foreground: oklch(0.985 0.002 247.839);
42
+ --card: oklch(0.21 0.034 264.665);
43
+ --card-foreground: oklch(0.985 0.002 247.839);
44
+ --popover: oklch(0.21 0.034 264.665);
45
+ --popover-foreground: oklch(0.985 0.002 247.839);
46
+ --primary: oklch(0.928 0.006 264.531);
47
+ --primary-foreground: oklch(0.21 0.034 264.665);
48
+ --secondary: oklch(0.278 0.033 256.848);
49
+ --secondary-foreground: oklch(0.985 0.002 247.839);
50
+ --muted: oklch(0.278 0.033 256.848);
51
+ --muted-foreground: oklch(0.707 0.022 261.325);
52
+ --accent: oklch(0.278 0.033 256.848);
53
+ --accent-foreground: oklch(0.985 0.002 247.839);
54
+ --destructive: oklch(0.704 0.191 22.216);
55
+ --destructive-foreground: oklch(0.985 0 0);
56
+ --border: oklch(1 0 0 / 10%);
57
+ --input: oklch(1 0 0 / 15%);
58
+ --input-autofill: oklch(0.19 0 0);
59
+ --ring: oklch(0.551 0.027 264.364);
60
+ --chart-1: oklch(0.488 0.243 264.376);
61
+ --chart-2: oklch(0.696 0.17 162.48);
62
+ --chart-3: oklch(0.769 0.188 70.08);
63
+ --chart-4: oklch(0.627 0.265 303.9);
64
+ --chart-5: oklch(0.645 0.246 16.439);
65
+ --sidebar: oklch(0.21 0.034 264.665);
66
+ --sidebar-foreground: oklch(0.985 0.002 247.839);
67
+ --sidebar-primary: oklch(0.928 0.006 264.531);
68
+ --sidebar-primary-foreground: oklch(0.21 0.034 264.665);
69
+ --sidebar-accent: oklch(0.278 0.033 256.848);
70
+ --sidebar-accent-foreground: oklch(0.985 0.002 247.839);
71
+ --sidebar-border: oklch(1 0 0 / 10%);
72
+ --sidebar-ring: oklch(0.551 0.027 264.364);
73
+ }
@@ -0,0 +1,75 @@
1
+ /* GREEN THEME (Default) */
2
+ :root,
3
+ :root[z-theme='green'] {
4
+ --radius: 0.65rem;
5
+ --background: oklch(1 0 0);
6
+ --foreground: oklch(0.141 0.005 285.823);
7
+ --card: oklch(1 0 0);
8
+ --card-foreground: oklch(0.141 0.005 285.823);
9
+ --popover: oklch(1 0 0);
10
+ --popover-foreground: oklch(0.141 0.005 285.823);
11
+ --primary: oklch(0.648 0.2 131.684);
12
+ --primary-foreground: oklch(0.986 0.031 120.757);
13
+ --secondary: oklch(0.967 0.001 286.375);
14
+ --secondary-foreground: oklch(0.21 0.006 285.885);
15
+ --muted: oklch(0.967 0.001 286.375);
16
+ --muted-foreground: oklch(0.552 0.016 285.938);
17
+ --accent: oklch(0.967 0.001 286.375);
18
+ --accent-foreground: oklch(0.21 0.006 285.885);
19
+ --destructive: oklch(0.577 0.245 27.325);
20
+ --destructive-foreground: oklch(0.985 0 0);
21
+ --border: oklch(0.92 0.004 286.32);
22
+ --input: oklch(0.92 0.004 286.32);
23
+ --input-autofill: oklch(1 0 0);
24
+ --ring: oklch(0.841 0.238 128.85);
25
+ --chart-1: oklch(0.871 0.15 154.449);
26
+ --chart-2: oklch(0.723 0.219 149.579);
27
+ --chart-3: oklch(0.627 0.194 149.214);
28
+ --chart-4: oklch(0.527 0.154 150.069);
29
+ --chart-5: oklch(0.448 0.119 151.328);
30
+ --sidebar: oklch(0.985 0 0);
31
+ --sidebar-foreground: oklch(0.141 0.005 285.823);
32
+ --sidebar-primary: oklch(0.648 0.2 131.684);
33
+ --sidebar-primary-foreground: oklch(0.986 0.031 120.757);
34
+ --sidebar-accent: oklch(0.967 0.001 286.375);
35
+ --sidebar-accent-foreground: oklch(0.21 0.006 285.885);
36
+ --sidebar-border: oklch(0.92 0.004 286.32);
37
+ --sidebar-ring: oklch(0.841 0.238 128.85);
38
+ }
39
+
40
+ :root.dark,
41
+ :root[z-theme='green'].dark {
42
+ --background: oklch(0.141 0.005 285.823);
43
+ --foreground: oklch(0.985 0 0);
44
+ --card: oklch(0.21 0.006 285.885);
45
+ --card-foreground: oklch(0.985 0 0);
46
+ --popover: oklch(0.21 0.006 285.885);
47
+ --popover-foreground: oklch(0.985 0 0);
48
+ --primary: oklch(0.648 0.2 131.684);
49
+ --primary-foreground: oklch(0.986 0.031 120.757);
50
+ --secondary: oklch(0.274 0.006 286.033);
51
+ --secondary-foreground: oklch(0.985 0 0);
52
+ --muted: oklch(0.274 0.006 286.033);
53
+ --muted-foreground: oklch(0.705 0.015 286.067);
54
+ --accent: oklch(0.274 0.006 286.033);
55
+ --accent-foreground: oklch(0.985 0 0);
56
+ --destructive: oklch(0.704 0.191 22.216);
57
+ --destructive-foreground: oklch(0.985 0 0);
58
+ --border: oklch(1 0 0 / 10%);
59
+ --input: oklch(1 0 0 / 15%);
60
+ --input-autofill: oklch(0.19 0 0);
61
+ --ring: oklch(0.405 0.101 131.063);
62
+ --chart-1: oklch(0.871 0.15 154.449);
63
+ --chart-2: oklch(0.723 0.219 149.579);
64
+ --chart-3: oklch(0.627 0.194 149.214);
65
+ --chart-4: oklch(0.527 0.154 150.069);
66
+ --chart-5: oklch(0.448 0.119 151.328);
67
+ --sidebar: oklch(0.21 0.006 285.885);
68
+ --sidebar-foreground: oklch(0.985 0 0);
69
+ --sidebar-primary: oklch(0.768 0.233 130.85);
70
+ --sidebar-primary-foreground: oklch(0.986 0.031 120.757);
71
+ --sidebar-accent: oklch(0.274 0.006 286.033);
72
+ --sidebar-accent-foreground: oklch(0.985 0 0);
73
+ --sidebar-border: oklch(1 0 0 / 10%);
74
+ --sidebar-ring: oklch(0.405 0.101 131.063);
75
+ }
@@ -0,0 +1,79 @@
1
+ /* HOSPITAL THEME - Main color: #2e37a4 */
2
+ :root[z-theme='hospital'] {
3
+ --radius: 0.65rem;
4
+ --background: oklch(1 0 0);
5
+ --foreground: oklch(0.2 0.05 264);
6
+ --card: oklch(1 0 0);
7
+ --card-foreground: oklch(0.2 0.05 264);
8
+ --popover: oklch(1 0 0);
9
+ --popover-foreground: oklch(0.2 0.05 264);
10
+ /* Primary: #2e37a4 converted to oklch */
11
+ --primary: oklch(0.35 0.18 264);
12
+ --primary-foreground: oklch(0.98 0 0);
13
+ /* Secondary: lighter shade */
14
+ --secondary: oklch(0.96 0.02 264);
15
+ --secondary-foreground: oklch(0.25 0.08 264);
16
+ --muted: oklch(0.967 0.003 264.542);
17
+ --muted-foreground: oklch(0.551 0.027 264.364);
18
+ --accent: oklch(0.96 0.02 264);
19
+ --accent-foreground: oklch(0.25 0.08 264);
20
+ --destructive: oklch(0.577 0.245 27.325);
21
+ --destructive-foreground: oklch(0.985 0 0);
22
+ --border: oklch(0.92 0.02 264);
23
+ --input: oklch(0.92 0.02 264);
24
+ --input-autofill: oklch(1 0 0);
25
+ --ring: oklch(0.45 0.15 264);
26
+ /* Chart colors - hospital blue palette */
27
+ --chart-1: oklch(0.75 0.12 264);
28
+ --chart-2: oklch(0.55 0.16 264);
29
+ --chart-3: oklch(0.35 0.18 264);
30
+ --chart-4: oklch(0.3 0.15 264);
31
+ --chart-5: oklch(0.25 0.12 264);
32
+ /* Sidebar - uses primary color */
33
+ --sidebar: oklch(0.35 0.18 264);
34
+ --sidebar-foreground: oklch(0.98 0 0);
35
+ /* Active state: white background with primary text */
36
+ --sidebar-primary: oklch(1 0 0);
37
+ --sidebar-primary-foreground: oklch(0.35 0.18 264);
38
+ /* Hover state: semi-transparent white */
39
+ --sidebar-accent: oklch(1 0 0 / 20%);
40
+ --sidebar-accent-foreground: oklch(0.98 0 0);
41
+ --sidebar-border: oklch(0.4 0.16 264);
42
+ --sidebar-ring: oklch(0.55 0.18 264);
43
+ }
44
+
45
+ :root[z-theme='hospital'].dark {
46
+ --background: oklch(0.15 0.03 264);
47
+ --foreground: oklch(0.98 0 0);
48
+ --card: oklch(0.2 0.04 264);
49
+ --card-foreground: oklch(0.98 0 0);
50
+ --popover: oklch(0.2 0.04 264);
51
+ --popover-foreground: oklch(0.98 0 0);
52
+ --primary: oklch(0.5 0.2 264);
53
+ --primary-foreground: oklch(0.98 0 0);
54
+ --secondary: oklch(0.25 0.05 264);
55
+ --secondary-foreground: oklch(0.98 0 0);
56
+ --muted: oklch(0.25 0.05 264);
57
+ --muted-foreground: oklch(0.7 0.04 264);
58
+ --accent: oklch(0.25 0.05 264);
59
+ --accent-foreground: oklch(0.98 0 0);
60
+ --destructive: oklch(0.704 0.191 22.216);
61
+ --destructive-foreground: oklch(0.985 0 0);
62
+ --border: oklch(1 0 0 / 10%);
63
+ --input: oklch(1 0 0 / 15%);
64
+ --input-autofill: oklch(0.19 0 0);
65
+ --ring: oklch(0.45 0.18 264);
66
+ --chart-1: oklch(0.75 0.12 264);
67
+ --chart-2: oklch(0.55 0.16 264);
68
+ --chart-3: oklch(0.4 0.18 264);
69
+ --chart-4: oklch(0.35 0.15 264);
70
+ --chart-5: oklch(0.3 0.12 264);
71
+ --sidebar: oklch(0.25 0.1 264);
72
+ --sidebar-foreground: oklch(0.98 0 0);
73
+ --sidebar-primary: oklch(0.5 0.2 264);
74
+ --sidebar-primary-foreground: oklch(0.98 0 0);
75
+ --sidebar-accent: oklch(0.3 0.08 264);
76
+ --sidebar-accent-foreground: oklch(0.98 0 0);
77
+ --sidebar-border: oklch(1 0 0 / 10%);
78
+ --sidebar-ring: oklch(0.45 0.18 264);
79
+ }
@@ -0,0 +1,73 @@
1
+ /* NEUTRAL THEME */
2
+ :root[z-theme='neutral'] {
3
+ --radius: 0.625rem;
4
+ --background: oklch(1 0 0);
5
+ --foreground: oklch(0.145 0 0);
6
+ --card: oklch(1 0 0);
7
+ --card-foreground: oklch(0.145 0 0);
8
+ --popover: oklch(1 0 0);
9
+ --popover-foreground: oklch(0.145 0 0);
10
+ --primary: oklch(0.205 0 0);
11
+ --primary-foreground: oklch(0.985 0 0);
12
+ --secondary: oklch(0.97 0 0);
13
+ --secondary-foreground: oklch(0.205 0 0);
14
+ --muted: oklch(0.97 0 0);
15
+ --muted-foreground: oklch(0.556 0 0);
16
+ --accent: oklch(0.97 0 0);
17
+ --accent-foreground: oklch(0.205 0 0);
18
+ --destructive: oklch(0.577 0.245 27.325);
19
+ --destructive-foreground: oklch(0.985 0 0);
20
+ --border: oklch(0.922 0 0);
21
+ --input: oklch(0.922 0 0);
22
+ --input-autofill: oklch(1 0 0);
23
+ --ring: oklch(0.708 0 0);
24
+ --chart-1: oklch(0.646 0.222 41.116);
25
+ --chart-2: oklch(0.6 0.118 184.704);
26
+ --chart-3: oklch(0.398 0.07 227.334);
27
+ --chart-4: oklch(0.828 0.189 84.429);
28
+ --chart-5: oklch(0.769 0.188 70.08);
29
+ --sidebar: oklch(0.985 0 0);
30
+ --sidebar-foreground: oklch(0.145 0 0);
31
+ --sidebar-primary: oklch(0.205 0 0);
32
+ --sidebar-primary-foreground: oklch(0.985 0 0);
33
+ --sidebar-accent: oklch(0.97 0 0);
34
+ --sidebar-accent-foreground: oklch(0.205 0 0);
35
+ --sidebar-border: oklch(0.922 0 0);
36
+ --sidebar-ring: oklch(0.708 0 0);
37
+ }
38
+
39
+ :root[z-theme='neutral'].dark {
40
+ --background: oklch(0.145 0 0);
41
+ --foreground: oklch(0.985 0 0);
42
+ --card: oklch(0.205 0 0);
43
+ --card-foreground: oklch(0.985 0 0);
44
+ --popover: oklch(0.205 0 0);
45
+ --popover-foreground: oklch(0.985 0 0);
46
+ --primary: oklch(0.922 0 0);
47
+ --primary-foreground: oklch(0.205 0 0);
48
+ --secondary: oklch(0.269 0 0);
49
+ --secondary-foreground: oklch(0.985 0 0);
50
+ --muted: oklch(0.269 0 0);
51
+ --muted-foreground: oklch(0.708 0 0);
52
+ --accent: oklch(0.269 0 0);
53
+ --accent-foreground: oklch(0.985 0 0);
54
+ --destructive: oklch(0.704 0.191 22.216);
55
+ --destructive-foreground: oklch(0.985 0 0);
56
+ --border: oklch(1 0 0 / 10%);
57
+ --input: oklch(1 0 0 / 15%);
58
+ --input-autofill: oklch(0.19 0 0);
59
+ --ring: oklch(0.556 0 0);
60
+ --chart-1: oklch(0.488 0.243 264.376);
61
+ --chart-2: oklch(0.696 0.17 162.48);
62
+ --chart-3: oklch(0.769 0.188 70.08);
63
+ --chart-4: oklch(0.627 0.265 303.9);
64
+ --chart-5: oklch(0.645 0.246 16.439);
65
+ --sidebar: oklch(0.205 0 0);
66
+ --sidebar-foreground: oklch(0.985 0 0);
67
+ --sidebar-primary: oklch(0.922 0 0);
68
+ --sidebar-primary-foreground: oklch(0.205 0 0);
69
+ --sidebar-accent: oklch(0.269 0 0);
70
+ --sidebar-accent-foreground: oklch(0.985 0 0);
71
+ --sidebar-border: oklch(1 0 0 / 10%);
72
+ --sidebar-ring: oklch(0.556 0 0);
73
+ }