@pyreweb/fabric 1.2.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 (210) hide show
  1. package/README.md +119 -0
  2. package/dist/fabric.cjs.js +18109 -0
  3. package/dist/fabric.css +2180 -0
  4. package/dist/fabric.esm.js +18062 -0
  5. package/dist/fabric.min.js +18112 -0
  6. package/dist/types/components/atoms/FAvatar/FAvatar.test.d.ts +1 -0
  7. package/dist/types/components/atoms/FBadge/FBadge.test.d.ts +1 -0
  8. package/dist/types/components/atoms/FButton/FButton.test.d.ts +1 -0
  9. package/dist/types/components/atoms/FCheckbox/FCheckbox.test.d.ts +1 -0
  10. package/dist/types/components/atoms/FDivider/FDivider.test.d.ts +1 -0
  11. package/dist/types/components/atoms/FIcon/FIcon.test.d.ts +1 -0
  12. package/dist/types/components/atoms/FInput/FInput.test.d.ts +1 -0
  13. package/dist/types/components/atoms/FLoader/FLoader.test.d.ts +1 -0
  14. package/dist/types/components/atoms/FRadio/FRadio.test.d.ts +1 -0
  15. package/dist/types/components/atoms/FTextarea/FTextarea.test.d.ts +1 -0
  16. package/dist/types/components/atoms/FToggle/FToggle.test.d.ts +1 -0
  17. package/dist/types/components/atoms/FTypography/FTypography.test.d.ts +1 -0
  18. package/dist/types/components/atoms/index.d.ts +13 -0
  19. package/dist/types/components/molecules/FAccordionItem/FAccordionItem.test.d.ts +1 -0
  20. package/dist/types/components/molecules/FAlert/FAlert.test.d.ts +1 -0
  21. package/dist/types/components/molecules/FBreadcrumb/FBreadcrumb.test.d.ts +1 -0
  22. package/dist/types/components/molecules/FButtonGroup/FButtonGroup.test.d.ts +1 -0
  23. package/dist/types/components/molecules/FCard/FCard.test.d.ts +1 -0
  24. package/dist/types/components/molecules/FDatePicker/FDatePicker.test.d.ts +1 -0
  25. package/dist/types/components/molecules/FEmptyState/FEmptyState.test.d.ts +1 -0
  26. package/dist/types/components/molecules/FFilePreview/FFilePreview.test.d.ts +1 -0
  27. package/dist/types/components/molecules/FFormField/FFormField.test.d.ts +1 -0
  28. package/dist/types/components/molecules/FListItem/FListItem.test.d.ts +1 -0
  29. package/dist/types/components/molecules/FPagination/FPagination.test.d.ts +1 -0
  30. package/dist/types/components/molecules/FSearchBar/FSearchBar.test.d.ts +1 -0
  31. package/dist/types/components/molecules/FSelect/FSelect.test.d.ts +1 -0
  32. package/dist/types/components/molecules/FStatCard/FStatCard.test.d.ts +1 -0
  33. package/dist/types/components/molecules/FTabs/FTabs.test.d.ts +1 -0
  34. package/dist/types/components/molecules/FToast/FToast.test.d.ts +1 -0
  35. package/dist/types/components/molecules/index.d.ts +18 -0
  36. package/dist/types/components/organisms/FActivityFeed/FActivityFeed.test.d.ts +1 -0
  37. package/dist/types/components/organisms/FDataTable/FDataTable.test.d.ts +1 -0
  38. package/dist/types/components/organisms/FDrawer/FDrawer.test.d.ts +1 -0
  39. package/dist/types/components/organisms/FFileUpload/FFileUpload.test.d.ts +1 -0
  40. package/dist/types/components/organisms/FFilterSidebar/FFilterSidebar.test.d.ts +1 -0
  41. package/dist/types/components/organisms/FForm/FForm.test.d.ts +1 -0
  42. package/dist/types/components/organisms/FModal/FModal.test.d.ts +1 -0
  43. package/dist/types/components/organisms/FNavigationSidebar/FNavigationSidebar.test.d.ts +1 -0
  44. package/dist/types/components/organisms/FOnboardingStepper/FOnboardingStepper.test.d.ts +1 -0
  45. package/dist/types/components/organisms/FOnboardingStepper/FStepperProgress.test.d.ts +1 -0
  46. package/dist/types/components/organisms/FPageHeader/FPageHeader.test.d.ts +1 -0
  47. package/dist/types/components/organisms/FProfileSection/FProfileSection.test.d.ts +1 -0
  48. package/dist/types/components/organisms/FToastProvider/FToastProvider.test.d.ts +1 -0
  49. package/dist/types/components/organisms/FUserMenu/FUserMenu.test.d.ts +1 -0
  50. package/dist/types/components/organisms/index.d.ts +14 -0
  51. package/dist/types/components/utils/FThemeProvider.test.d.ts +1 -0
  52. package/dist/types/components/utils/index.d.ts +2 -0
  53. package/dist/types/components.d.ts +602 -0
  54. package/dist/types/composables/index.d.ts +12 -0
  55. package/dist/types/composables/useDataTableState.d.ts +106 -0
  56. package/dist/types/composables/useDataTableState.test.d.ts +1 -0
  57. package/dist/types/composables/useFormValidation.d.ts +49 -0
  58. package/dist/types/composables/useFormValidation.test.d.ts +1 -0
  59. package/dist/types/composables/useSidebarState.d.ts +65 -0
  60. package/dist/types/composables/useSidebarState.test.d.ts +1 -0
  61. package/dist/types/index.d.ts +19 -0
  62. package/dist/types/types.d.ts +529 -0
  63. package/package.json +100 -0
  64. package/src/components/atoms/FAvatar/FAvatar.stories.js +100 -0
  65. package/src/components/atoms/FAvatar/FAvatar.test.ts +95 -0
  66. package/src/components/atoms/FAvatar/FAvatar.vue +190 -0
  67. package/src/components/atoms/FBadge/FBadge.stories.js +129 -0
  68. package/src/components/atoms/FBadge/FBadge.test.ts +93 -0
  69. package/src/components/atoms/FBadge/FBadge.vue +103 -0
  70. package/src/components/atoms/FButton/FButton.stories.js +122 -0
  71. package/src/components/atoms/FButton/FButton.test.ts +98 -0
  72. package/src/components/atoms/FButton/FButton.vue +147 -0
  73. package/src/components/atoms/FCheckbox/FCheckbox.stories.js +96 -0
  74. package/src/components/atoms/FCheckbox/FCheckbox.test.ts +64 -0
  75. package/src/components/atoms/FCheckbox/FCheckbox.vue +76 -0
  76. package/src/components/atoms/FDivider/FDivider.stories.js +104 -0
  77. package/src/components/atoms/FDivider/FDivider.test.ts +80 -0
  78. package/src/components/atoms/FDivider/FDivider.vue +117 -0
  79. package/src/components/atoms/FIcon/FIcon.stories.js +189 -0
  80. package/src/components/atoms/FIcon/FIcon.test.ts +99 -0
  81. package/src/components/atoms/FIcon/FIcon.vue +192 -0
  82. package/src/components/atoms/FInput/FInput.stories.js +119 -0
  83. package/src/components/atoms/FInput/FInput.test.ts +79 -0
  84. package/src/components/atoms/FInput/FInput.vue +88 -0
  85. package/src/components/atoms/FLoader/FLoader.stories.js +109 -0
  86. package/src/components/atoms/FLoader/FLoader.test.ts +66 -0
  87. package/src/components/atoms/FLoader/FLoader.vue +97 -0
  88. package/src/components/atoms/FRadio/FRadio.stories.js +105 -0
  89. package/src/components/atoms/FRadio/FRadio.test.ts +75 -0
  90. package/src/components/atoms/FRadio/FRadio.vue +119 -0
  91. package/src/components/atoms/FTextarea/FTextarea.stories.js +126 -0
  92. package/src/components/atoms/FTextarea/FTextarea.test.ts +94 -0
  93. package/src/components/atoms/FTextarea/FTextarea.vue +156 -0
  94. package/src/components/atoms/FToggle/FToggle.stories.js +108 -0
  95. package/src/components/atoms/FToggle/FToggle.test.ts +96 -0
  96. package/src/components/atoms/FToggle/FToggle.vue +123 -0
  97. package/src/components/atoms/FTypography/FTypography.stories.js +127 -0
  98. package/src/components/atoms/FTypography/FTypography.test.ts +93 -0
  99. package/src/components/atoms/FTypography/FTypography.vue +78 -0
  100. package/src/components/atoms/index.ts +27 -0
  101. package/src/components/molecules/FAccordionItem/FAccordionItem.stories.js +71 -0
  102. package/src/components/molecules/FAccordionItem/FAccordionItem.test.ts +61 -0
  103. package/src/components/molecules/FAccordionItem/FAccordionItem.vue +105 -0
  104. package/src/components/molecules/FAlert/FAlert.stories.js +87 -0
  105. package/src/components/molecules/FAlert/FAlert.test.ts +59 -0
  106. package/src/components/molecules/FAlert/FAlert.vue +108 -0
  107. package/src/components/molecules/FBreadcrumb/FBreadcrumb.stories.js +90 -0
  108. package/src/components/molecules/FBreadcrumb/FBreadcrumb.test.ts +76 -0
  109. package/src/components/molecules/FBreadcrumb/FBreadcrumb.vue +117 -0
  110. package/src/components/molecules/FButtonGroup/FButtonGroup.stories.js +82 -0
  111. package/src/components/molecules/FButtonGroup/FButtonGroup.test.ts +44 -0
  112. package/src/components/molecules/FButtonGroup/FButtonGroup.vue +31 -0
  113. package/src/components/molecules/FCard/FCard.stories.js +136 -0
  114. package/src/components/molecules/FCard/FCard.test.ts +87 -0
  115. package/src/components/molecules/FCard/FCard.vue +75 -0
  116. package/src/components/molecules/FDatePicker/FDatePicker.stories.js +305 -0
  117. package/src/components/molecules/FDatePicker/FDatePicker.test.ts +282 -0
  118. package/src/components/molecules/FDatePicker/FDatePicker.vue +750 -0
  119. package/src/components/molecules/FEmptyState/FEmptyState.stories.js +98 -0
  120. package/src/components/molecules/FEmptyState/FEmptyState.test.ts +82 -0
  121. package/src/components/molecules/FEmptyState/FEmptyState.vue +89 -0
  122. package/src/components/molecules/FFilePreview/FFilePreview.stories.js +130 -0
  123. package/src/components/molecules/FFilePreview/FFilePreview.test.ts +70 -0
  124. package/src/components/molecules/FFilePreview/FFilePreview.vue +125 -0
  125. package/src/components/molecules/FFormField/FFormField.stories.js +149 -0
  126. package/src/components/molecules/FFormField/FFormField.test.ts +85 -0
  127. package/src/components/molecules/FFormField/FFormField.vue +107 -0
  128. package/src/components/molecules/FListItem/FListItem.stories.js +158 -0
  129. package/src/components/molecules/FListItem/FListItem.test.ts +93 -0
  130. package/src/components/molecules/FListItem/FListItem.vue +113 -0
  131. package/src/components/molecules/FPagination/FPagination.stories.js +132 -0
  132. package/src/components/molecules/FPagination/FPagination.test.ts +79 -0
  133. package/src/components/molecules/FPagination/FPagination.vue +206 -0
  134. package/src/components/molecules/FSearchBar/FSearchBar.stories.js +129 -0
  135. package/src/components/molecules/FSearchBar/FSearchBar.test.ts +81 -0
  136. package/src/components/molecules/FSearchBar/FSearchBar.vue +180 -0
  137. package/src/components/molecules/FSelect/FSelect.stories.js +333 -0
  138. package/src/components/molecules/FSelect/FSelect.test.ts +478 -0
  139. package/src/components/molecules/FSelect/FSelect.vue +551 -0
  140. package/src/components/molecules/FStatCard/FStatCard.stories.js +144 -0
  141. package/src/components/molecules/FStatCard/FStatCard.test.ts +78 -0
  142. package/src/components/molecules/FStatCard/FStatCard.vue +106 -0
  143. package/src/components/molecules/FTabs/FTab.vue +63 -0
  144. package/src/components/molecules/FTabs/FTabs.stories.js +277 -0
  145. package/src/components/molecules/FTabs/FTabs.test.ts +264 -0
  146. package/src/components/molecules/FTabs/FTabs.vue +273 -0
  147. package/src/components/molecules/FToast/FToast.stories.js +150 -0
  148. package/src/components/molecules/FToast/FToast.test.ts +157 -0
  149. package/src/components/molecules/FToast/FToast.vue +283 -0
  150. package/src/components/molecules/index.ts +37 -0
  151. package/src/components/organisms/FActivityFeed/FActivityFeed.stories.js +217 -0
  152. package/src/components/organisms/FActivityFeed/FActivityFeed.test.ts +134 -0
  153. package/src/components/organisms/FActivityFeed/FActivityFeed.vue +589 -0
  154. package/src/components/organisms/FDataTable/FDataTable.stories.js +370 -0
  155. package/src/components/organisms/FDataTable/FDataTable.test.ts +248 -0
  156. package/src/components/organisms/FDataTable/FDataTable.vue +808 -0
  157. package/src/components/organisms/FDrawer/FDrawer.stories.js +296 -0
  158. package/src/components/organisms/FDrawer/FDrawer.test.ts +142 -0
  159. package/src/components/organisms/FDrawer/FDrawer.vue +303 -0
  160. package/src/components/organisms/FFileUpload/FFileUpload.stories.js +162 -0
  161. package/src/components/organisms/FFileUpload/FFileUpload.test.ts +103 -0
  162. package/src/components/organisms/FFileUpload/FFileUpload.vue +616 -0
  163. package/src/components/organisms/FFilterSidebar/FFilterSidebar.stories.js +161 -0
  164. package/src/components/organisms/FFilterSidebar/FFilterSidebar.test.ts +92 -0
  165. package/src/components/organisms/FFilterSidebar/FFilterSidebar.vue +458 -0
  166. package/src/components/organisms/FForm/FForm.stories.js +270 -0
  167. package/src/components/organisms/FForm/FForm.test.ts +63 -0
  168. package/src/components/organisms/FForm/FForm.vue +19 -0
  169. package/src/components/organisms/FModal/FModal.stories.js +227 -0
  170. package/src/components/organisms/FModal/FModal.test.ts +181 -0
  171. package/src/components/organisms/FModal/FModal.vue +319 -0
  172. package/src/components/organisms/FNavigationSidebar/FNavigationSidebar.stories.js +176 -0
  173. package/src/components/organisms/FNavigationSidebar/FNavigationSidebar.test.ts +95 -0
  174. package/src/components/organisms/FNavigationSidebar/FNavigationSidebar.vue +577 -0
  175. package/src/components/organisms/FOnboardingStepper/FOnboardingStepper.stories.js +197 -0
  176. package/src/components/organisms/FOnboardingStepper/FOnboardingStepper.test.ts +114 -0
  177. package/src/components/organisms/FOnboardingStepper/FOnboardingStepper.vue +212 -0
  178. package/src/components/organisms/FOnboardingStepper/FStepperProgress.stories.js +122 -0
  179. package/src/components/organisms/FOnboardingStepper/FStepperProgress.test.ts +130 -0
  180. package/src/components/organisms/FOnboardingStepper/FStepperProgress.vue +146 -0
  181. package/src/components/organisms/FPageHeader/FPageHeader.stories.js +142 -0
  182. package/src/components/organisms/FPageHeader/FPageHeader.test.ts +83 -0
  183. package/src/components/organisms/FPageHeader/FPageHeader.vue +241 -0
  184. package/src/components/organisms/FProfileSection/FProfileSection.stories.js +190 -0
  185. package/src/components/organisms/FProfileSection/FProfileSection.test.ts +85 -0
  186. package/src/components/organisms/FProfileSection/FProfileSection.vue +562 -0
  187. package/src/components/organisms/FToastProvider/FToastProvider.stories.js +290 -0
  188. package/src/components/organisms/FToastProvider/FToastProvider.test.ts +215 -0
  189. package/src/components/organisms/FToastProvider/FToastProvider.vue +214 -0
  190. package/src/components/organisms/FUserMenu/FUserMenu.stories.js +170 -0
  191. package/src/components/organisms/FUserMenu/FUserMenu.test.ts +102 -0
  192. package/src/components/organisms/FUserMenu/FUserMenu.vue +407 -0
  193. package/src/components/organisms/index.ts +29 -0
  194. package/src/components/utils/FThemeProvider.stories.js +236 -0
  195. package/src/components/utils/FThemeProvider.test.ts +244 -0
  196. package/src/components/utils/FThemeProvider.vue +191 -0
  197. package/src/components/utils/index.ts +3 -0
  198. package/src/components.d.ts +602 -0
  199. package/src/composables/README.md +233 -0
  200. package/src/composables/index.ts +25 -0
  201. package/src/composables/useDataTableState.test.ts +378 -0
  202. package/src/composables/useDataTableState.ts +361 -0
  203. package/src/composables/useFormValidation.test.ts +198 -0
  204. package/src/composables/useFormValidation.ts +178 -0
  205. package/src/composables/useSidebarState.test.ts +307 -0
  206. package/src/composables/useSidebarState.ts +201 -0
  207. package/src/env.d.ts +14 -0
  208. package/src/index.ts +167 -0
  209. package/src/styles/tailwind.css +173 -0
  210. package/src/types.ts +740 -0
package/src/index.ts ADDED
@@ -0,0 +1,167 @@
1
+ import './styles/tailwind.css';
2
+ import {
3
+ FAvatar,
4
+ FBadge,
5
+ FButton,
6
+ FCheckbox,
7
+ FDivider,
8
+ FIcon,
9
+ FInput,
10
+ FLoader,
11
+ FRadio,
12
+ FTextarea,
13
+ FToggle,
14
+ FTypography
15
+ } from './components/atoms';
16
+ import {
17
+ FAccordionItem,
18
+ FAlert,
19
+ FBreadcrumb,
20
+ FButtonGroup,
21
+ FDatePicker,
22
+ FEmptyState,
23
+ FFilePreview,
24
+ FFormField,
25
+ FCard,
26
+ FSearchBar,
27
+ FListItem,
28
+ FPagination,
29
+ FSelect,
30
+ FTabs,
31
+ FTab,
32
+ FToast
33
+ } from './components/molecules';
34
+ import {
35
+ FActivityFeed,
36
+ FForm,
37
+ FDataTable,
38
+ FDrawer,
39
+ FFileUpload,
40
+ FPageHeader,
41
+ FModal,
42
+ FUserMenu,
43
+ FOnboardingStepper,
44
+ FProfileSection,
45
+ FToastProvider
46
+ } from './components/organisms';
47
+ import { FThemeProvider } from './components/utils';
48
+ import type { VueConstructor, Component } from 'vue';
49
+
50
+ // Export all types
51
+ export * from './types';
52
+
53
+ // Export composables
54
+ export * from './composables';
55
+
56
+ // Type for components record
57
+ type ComponentsRecord = Record<string, Component>;
58
+
59
+ const components: ComponentsRecord = {
60
+ FAccordionItem,
61
+ FActivityFeed,
62
+ FAlert,
63
+ FAvatar,
64
+ FBadge,
65
+ FBreadcrumb,
66
+ FButton,
67
+ FButtonGroup,
68
+ FCheckbox,
69
+ FDataTable,
70
+ FDatePicker,
71
+ FDivider,
72
+ FDrawer,
73
+ FEmptyState,
74
+ FFilePreview,
75
+ FFileUpload,
76
+ FIcon,
77
+ FInput,
78
+ FListItem,
79
+ FLoader,
80
+ FModal,
81
+ FOnboardingStepper,
82
+ FPageHeader,
83
+ FProfileSection,
84
+ FRadio,
85
+ FSelect,
86
+ FTab,
87
+ FTabs,
88
+ FTextarea,
89
+ FToggle,
90
+ FTypography,
91
+ FFormField,
92
+ FCard,
93
+ FForm,
94
+ FSearchBar,
95
+ FPagination,
96
+ FUserMenu,
97
+ FToast,
98
+ FToastProvider,
99
+ FThemeProvider
100
+ };
101
+
102
+ const install = (Vue: VueConstructor): void => {
103
+ Object.keys(components).forEach((name) => {
104
+ // Type assertion is necessary because Vue 2's component registration
105
+ // doesn't have perfect TypeScript support for dynamic component maps
106
+ // eslint-disable-next-line @typescript-eslint/no-explicit-any
107
+ Vue.component(name, components[name] as any);
108
+ });
109
+ };
110
+
111
+ // Auto-install when Vue is found (browser global)
112
+ declare global {
113
+ interface Window {
114
+ Vue?: VueConstructor;
115
+ }
116
+ }
117
+
118
+ if (typeof window !== 'undefined' && window.Vue) {
119
+ install(window.Vue);
120
+ }
121
+
122
+ export default {
123
+ install
124
+ };
125
+
126
+ export {
127
+ FAccordionItem,
128
+ FActivityFeed,
129
+ FAlert,
130
+ FAvatar,
131
+ FBadge,
132
+ FBreadcrumb,
133
+ FButton,
134
+ FButtonGroup,
135
+ FCheckbox,
136
+ FDataTable,
137
+ FDatePicker,
138
+ FDivider,
139
+ FDrawer,
140
+ FEmptyState,
141
+ FFilePreview,
142
+ FFileUpload,
143
+ FIcon,
144
+ FInput,
145
+ FListItem,
146
+ FLoader,
147
+ FModal,
148
+ FOnboardingStepper,
149
+ FPageHeader,
150
+ FProfileSection,
151
+ FRadio,
152
+ FSelect,
153
+ FTab,
154
+ FTabs,
155
+ FTextarea,
156
+ FToggle,
157
+ FTypography,
158
+ FFormField,
159
+ FCard,
160
+ FForm,
161
+ FSearchBar,
162
+ FPagination,
163
+ FUserMenu,
164
+ FToast,
165
+ FToastProvider,
166
+ FThemeProvider
167
+ };
@@ -0,0 +1,173 @@
1
+ @import "tailwindcss";
2
+
3
+ /*
4
+ * Fabric Design System - Theme System with Dark/Light Mode Support
5
+ *
6
+ * This theming system uses CSS custom properties for dynamic theme switching.
7
+ *
8
+ * Theme Usage:
9
+ * - Add `data-theme="light"` or `data-theme="dark"` to any container (typically <html> or <body>)
10
+ * - Use FThemeProvider component for automatic theme management
11
+ *
12
+ * Customization:
13
+ * Override these variables in your application's CSS:
14
+ *
15
+ * :root {
16
+ * --color-primary-500: oklch(0.55 0.20 250);
17
+ * --theme-background: oklch(1 0 0);
18
+ * ...
19
+ * }
20
+ */
21
+
22
+ @theme {
23
+ /* Transition durations for consistent micro-interactions */
24
+ --transition-duration-fast: 100ms;
25
+ --transition-duration-base: 200ms;
26
+ --transition-duration-slow: 300ms;
27
+
28
+ /* Transition easing functions for smooth animations */
29
+ --transition-easing-standard: cubic-bezier(0.4, 0, 0.2, 1); /* ease-in-out with slight emphasis */
30
+ --transition-easing-emphasized: cubic-bezier(0.2, 0, 0, 1); /* ease-out for emphasized movements */
31
+
32
+ /* Primary color palette - Blue by default */
33
+ --color-primary-50: oklch(0.97 0.01 250);
34
+ --color-primary-100: oklch(0.93 0.03 250);
35
+ --color-primary-200: oklch(0.87 0.06 250);
36
+ --color-primary-300: oklch(0.76 0.11 250);
37
+ --color-primary-400: oklch(0.63 0.17 250);
38
+ --color-primary-500: oklch(0.55 0.20 250);
39
+ --color-primary-600: oklch(0.49 0.20 250);
40
+ --color-primary-700: oklch(0.42 0.17 250);
41
+ --color-primary-800: oklch(0.35 0.14 250);
42
+ --color-primary-900: oklch(0.28 0.10 250);
43
+ --color-primary-950: oklch(0.21 0.07 250);
44
+
45
+ /* Success color palette - Green by default */
46
+ --color-success-50: oklch(0.98 0.02 145);
47
+ --color-success-100: oklch(0.94 0.05 145);
48
+ --color-success-200: oklch(0.87 0.10 145);
49
+ --color-success-300: oklch(0.76 0.15 145);
50
+ --color-success-400: oklch(0.64 0.18 145);
51
+ --color-success-500: oklch(0.55 0.18 145);
52
+ --color-success-600: oklch(0.47 0.16 145);
53
+ --color-success-700: oklch(0.40 0.13 145);
54
+ --color-success-800: oklch(0.34 0.10 145);
55
+ --color-success-900: oklch(0.28 0.08 145);
56
+ --color-success-950: oklch(0.18 0.05 145);
57
+
58
+ /* Danger color palette - Red by default */
59
+ --color-danger-50: oklch(0.97 0.02 25);
60
+ --color-danger-100: oklch(0.94 0.04 25);
61
+ --color-danger-200: oklch(0.88 0.08 25);
62
+ --color-danger-300: oklch(0.78 0.13 25);
63
+ --color-danger-400: oklch(0.67 0.18 25);
64
+ --color-danger-500: oklch(0.58 0.20 25);
65
+ --color-danger-600: oklch(0.51 0.19 25);
66
+ --color-danger-700: oklch(0.44 0.16 25);
67
+ --color-danger-800: oklch(0.37 0.13 25);
68
+ --color-danger-900: oklch(0.30 0.10 25);
69
+ --color-danger-950: oklch(0.20 0.06 25);
70
+
71
+ /* Warning color palette - Yellow/Orange by default */
72
+ --color-warning-50: oklch(0.98 0.02 85);
73
+ --color-warning-100: oklch(0.95 0.05 85);
74
+ --color-warning-200: oklch(0.90 0.10 85);
75
+ --color-warning-300: oklch(0.82 0.15 85);
76
+ --color-warning-400: oklch(0.74 0.18 85);
77
+ --color-warning-500: oklch(0.68 0.18 85);
78
+ --color-warning-600: oklch(0.60 0.16 85);
79
+ --color-warning-700: oklch(0.52 0.13 75);
80
+ --color-warning-800: oklch(0.44 0.10 75);
81
+ --color-warning-900: oklch(0.36 0.07 75);
82
+ --color-warning-950: oklch(0.25 0.05 75);
83
+
84
+ /* Neutral color palette - Gray by default */
85
+ --color-neutral-50: oklch(0.98 0.00 0);
86
+ --color-neutral-100: oklch(0.96 0.00 0);
87
+ --color-neutral-200: oklch(0.92 0.00 0);
88
+ --color-neutral-300: oklch(0.87 0.00 0);
89
+ --color-neutral-400: oklch(0.70 0.00 0);
90
+ --color-neutral-500: oklch(0.55 0.00 0);
91
+ --color-neutral-600: oklch(0.45 0.00 0);
92
+ --color-neutral-700: oklch(0.37 0.00 0);
93
+ --color-neutral-800: oklch(0.27 0.00 0);
94
+ --color-neutral-900: oklch(0.20 0.00 0);
95
+ --color-neutral-950: oklch(0.13 0.00 0);
96
+ }
97
+
98
+ /*
99
+ * Semantic Theme Variables
100
+ * These variables adapt to the current theme (light/dark)
101
+ */
102
+ :root,
103
+ [data-theme="light"] {
104
+ /* Background colors */
105
+ --theme-background: var(--color-neutral-50);
106
+ --theme-foreground: var(--color-neutral-900);
107
+
108
+ /* Card/Surface colors */
109
+ --theme-card: oklch(1 0 0); /* Pure white for cards in light mode */
110
+ --theme-card-foreground: var(--color-neutral-900);
111
+
112
+ /* Muted backgrounds (for secondary surfaces) */
113
+ --theme-muted: var(--color-neutral-100);
114
+ --theme-muted-foreground: var(--color-neutral-600);
115
+
116
+ /* Border colors */
117
+ --theme-border: var(--color-neutral-300);
118
+
119
+ /* Input colors */
120
+ --theme-input-background: oklch(1 0 0);
121
+ --theme-input-border: var(--color-neutral-300);
122
+ --theme-input-foreground: var(--color-neutral-900);
123
+ --theme-input-placeholder: var(--color-neutral-500);
124
+
125
+ /* Accent colors (maintain brand colors) */
126
+ --theme-primary: var(--color-primary-600);
127
+ --theme-primary-foreground: oklch(1 0 0);
128
+
129
+ --theme-success: var(--color-success-600);
130
+ --theme-success-foreground: oklch(1 0 0);
131
+
132
+ --theme-danger: var(--color-danger-600);
133
+ --theme-danger-foreground: oklch(1 0 0);
134
+
135
+ --theme-warning: var(--color-warning-600);
136
+ --theme-warning-foreground: oklch(1 0 0);
137
+ }
138
+
139
+ [data-theme="dark"] {
140
+ /* Background colors - darker shades */
141
+ --theme-background: oklch(0.15 0.00 0);
142
+ --theme-foreground: var(--color-neutral-50);
143
+
144
+ /* Card/Surface colors - slightly lighter than background */
145
+ --theme-card: oklch(0.18 0.00 0);
146
+ --theme-card-foreground: var(--color-neutral-50);
147
+
148
+ /* Muted backgrounds */
149
+ --theme-muted: oklch(0.20 0.00 0);
150
+ --theme-muted-foreground: var(--color-neutral-400);
151
+
152
+ /* Border colors - more subtle in dark mode */
153
+ --theme-border: oklch(0.30 0.00 0);
154
+
155
+ /* Input colors */
156
+ --theme-input-background: oklch(0.18 0.00 0);
157
+ --theme-input-border: oklch(0.30 0.00 0);
158
+ --theme-input-foreground: var(--color-neutral-50);
159
+ --theme-input-placeholder: var(--color-neutral-500);
160
+
161
+ /* Accent colors - slightly adjusted for dark mode visibility */
162
+ --theme-primary: var(--color-primary-500);
163
+ --theme-primary-foreground: oklch(0.15 0.00 0);
164
+
165
+ --theme-success: var(--color-success-500);
166
+ --theme-success-foreground: oklch(0.15 0.00 0);
167
+
168
+ --theme-danger: var(--color-danger-500);
169
+ --theme-danger-foreground: oklch(0.15 0.00 0);
170
+
171
+ --theme-warning: var(--color-warning-500);
172
+ --theme-warning-foreground: oklch(0.15 0.00 0);
173
+ }