@machinemetrics/mm-react-components 0.2.3-2 → 0.2.3-21

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 (169) hide show
  1. package/README.md +89 -30
  2. package/agent-docs/agent-documentation-reference.md +364 -0
  3. package/agent-docs/ai-agent-guide.md +558 -0
  4. package/agent-docs/ai-agent-init-guide.md +465 -0
  5. package/agent-docs/chakra-migration-readme.md +265 -0
  6. package/agent-docs/chakra-migration-troubleshooting.md +649 -0
  7. package/agent-docs/component-mapping-reference.md +466 -0
  8. package/agent-docs/init-readme.md +283 -0
  9. package/agent-docs/init-troubleshooting.md +550 -0
  10. package/agent-docs/setup-reference.md +365 -0
  11. package/dist/App.d.ts.map +1 -1
  12. package/dist/README.md +89 -30
  13. package/dist/components/ui/alert-dialog.d.ts +15 -0
  14. package/dist/components/ui/alert-dialog.d.ts.map +1 -0
  15. package/dist/components/ui/alert.d.ts +10 -0
  16. package/dist/components/ui/alert.d.ts.map +1 -0
  17. package/dist/components/ui/avatar.d.ts +7 -0
  18. package/dist/components/ui/avatar.d.ts.map +1 -0
  19. package/dist/components/ui/breadcrumb.d.ts +12 -0
  20. package/dist/components/ui/breadcrumb.d.ts.map +1 -0
  21. package/dist/components/ui/button.d.ts.map +1 -1
  22. package/dist/components/ui/card.d.ts +10 -0
  23. package/dist/components/ui/card.d.ts.map +1 -0
  24. package/dist/components/ui/chart.d.ts +41 -0
  25. package/dist/components/ui/chart.d.ts.map +1 -0
  26. package/dist/components/ui/command.d.ts +19 -0
  27. package/dist/components/ui/command.d.ts.map +1 -0
  28. package/dist/components/ui/data-table/TableView.d.ts +1 -1
  29. package/dist/components/ui/data-table/TableView.d.ts.map +1 -1
  30. package/dist/components/ui/data-table/cards/ResponsiveTable.d.ts +1 -1
  31. package/dist/components/ui/data-table/cards/ResponsiveTable.d.ts.map +1 -1
  32. package/dist/components/ui/data-table/cards/RowCard.d.ts +2 -1
  33. package/dist/components/ui/data-table/cards/RowCard.d.ts.map +1 -1
  34. package/dist/components/ui/data-table/index.d.ts +3 -1
  35. package/dist/components/ui/data-table/index.d.ts.map +1 -1
  36. package/dist/components/ui/data-table/pagination.d.ts +3 -1
  37. package/dist/components/ui/data-table/pagination.d.ts.map +1 -1
  38. package/dist/components/ui/data-table/parts/BatchActionsToolbar.d.ts +7 -0
  39. package/dist/components/ui/data-table/parts/BatchActionsToolbar.d.ts.map +1 -0
  40. package/dist/components/ui/data-table/parts/CellContent.d.ts +7 -0
  41. package/dist/components/ui/data-table/parts/CellContent.d.ts.map +1 -0
  42. package/dist/components/ui/data-table/parts/ColGroup.d.ts +7 -0
  43. package/dist/components/ui/data-table/parts/ColGroup.d.ts.map +1 -0
  44. package/dist/components/ui/data-table/parts/SortableHeader.d.ts +13 -0
  45. package/dist/components/ui/data-table/parts/SortableHeader.d.ts.map +1 -0
  46. package/dist/components/ui/data-table/parts/TableBody.d.ts +11 -0
  47. package/dist/components/ui/data-table/parts/TableBody.d.ts.map +1 -0
  48. package/dist/components/ui/data-table/parts/TableHeader.d.ts +15 -0
  49. package/dist/components/ui/data-table/parts/TableHeader.d.ts.map +1 -0
  50. package/dist/components/ui/data-table/toolbar/DataTableToolbar.d.ts +2 -1
  51. package/dist/components/ui/data-table/toolbar/DataTableToolbar.d.ts.map +1 -1
  52. package/dist/components/ui/data-table/types.d.ts +33 -10
  53. package/dist/components/ui/data-table/types.d.ts.map +1 -1
  54. package/dist/components/ui/data-table/useTableController.d.ts +12 -1
  55. package/dist/components/ui/data-table/useTableController.d.ts.map +1 -1
  56. package/dist/components/ui/data-table/utils.d.ts +2 -0
  57. package/dist/components/ui/data-table/utils.d.ts.map +1 -1
  58. package/dist/components/ui/date-picker.d.ts +36 -0
  59. package/dist/components/ui/date-picker.d.ts.map +1 -0
  60. package/dist/components/ui/dropdown-menu.d.ts +1 -1
  61. package/dist/components/ui/dropdown-menu.d.ts.map +1 -1
  62. package/dist/components/ui/form.d.ts +25 -0
  63. package/dist/components/ui/form.d.ts.map +1 -0
  64. package/dist/components/ui/hero-metric-card/HeroMetricCard.d.ts +4 -0
  65. package/dist/components/ui/hero-metric-card/HeroMetricCard.d.ts.map +1 -0
  66. package/dist/components/ui/hero-metric-card/HeroMetricCardItem.d.ts +4 -0
  67. package/dist/components/ui/hero-metric-card/HeroMetricCardItem.d.ts.map +1 -0
  68. package/dist/components/ui/hero-metric-card/constants.d.ts +13 -0
  69. package/dist/components/ui/hero-metric-card/constants.d.ts.map +1 -0
  70. package/dist/components/ui/hero-metric-card/grid.d.ts +4 -0
  71. package/dist/components/ui/hero-metric-card/grid.d.ts.map +1 -0
  72. package/dist/components/ui/hero-metric-card/hooks.d.ts +6 -0
  73. package/dist/components/ui/hero-metric-card/hooks.d.ts.map +1 -0
  74. package/dist/components/ui/hero-metric-card/index.d.ts +5 -0
  75. package/dist/components/ui/hero-metric-card/index.d.ts.map +1 -0
  76. package/dist/components/ui/hero-metric-card/parsing.d.ts +11 -0
  77. package/dist/components/ui/hero-metric-card/parsing.d.ts.map +1 -0
  78. package/dist/components/ui/hero-metric-card/refs.d.ts +3 -0
  79. package/dist/components/ui/hero-metric-card/refs.d.ts.map +1 -0
  80. package/dist/components/ui/hero-metric-card/trend.d.ts +4 -0
  81. package/dist/components/ui/hero-metric-card/trend.d.ts.map +1 -0
  82. package/dist/components/ui/hero-metric-card/types.d.ts +60 -0
  83. package/dist/components/ui/hero-metric-card/types.d.ts.map +1 -0
  84. package/dist/components/ui/hero-metric-card/utils.d.ts +10 -0
  85. package/dist/components/ui/hero-metric-card/utils.d.ts.map +1 -0
  86. package/dist/components/ui/pagination.d.ts +14 -0
  87. package/dist/components/ui/pagination.d.ts.map +1 -0
  88. package/dist/components/ui/progress.d.ts +1 -0
  89. package/dist/components/ui/progress.d.ts.map +1 -1
  90. package/dist/components/ui/separator.d.ts +5 -0
  91. package/dist/components/ui/separator.d.ts.map +1 -0
  92. package/dist/components/ui/simple-pagination.d.ts +8 -0
  93. package/dist/components/ui/simple-pagination.d.ts.map +1 -0
  94. package/dist/components/ui/sonner.d.ts +4 -0
  95. package/dist/components/ui/sonner.d.ts.map +1 -0
  96. package/dist/components/ui/spinner-carbide.d.ts +5 -0
  97. package/dist/components/ui/spinner-carbide.d.ts.map +1 -0
  98. package/dist/components/ui/spinner.d.ts +4 -0
  99. package/dist/components/ui/spinner.d.ts.map +1 -0
  100. package/dist/components/ui/textarea.d.ts +4 -0
  101. package/dist/components/ui/textarea.d.ts.map +1 -0
  102. package/dist/docs/GETTING_STARTED.md +13 -5
  103. package/dist/index.d.ts +22 -0
  104. package/dist/index.d.ts.map +1 -1
  105. package/dist/lib/mm-react-components.css +1 -0
  106. package/dist/main.d.ts +1 -2
  107. package/dist/main.d.ts.map +1 -1
  108. package/dist/mm-react-components.es.js +16740 -7065
  109. package/dist/mm-react-components.es.js.map +1 -1
  110. package/dist/mm-react-components.umd.js +28 -11
  111. package/dist/mm-react-components.umd.js.map +1 -1
  112. package/dist/preview/AlertDialogPreview.d.ts +2 -0
  113. package/dist/preview/AlertDialogPreview.d.ts.map +1 -0
  114. package/dist/preview/AlertPreview.d.ts +2 -0
  115. package/dist/preview/AlertPreview.d.ts.map +1 -0
  116. package/dist/preview/AvatarPreview.d.ts +2 -0
  117. package/dist/preview/AvatarPreview.d.ts.map +1 -0
  118. package/dist/preview/BreadcrumbPreview.d.ts +2 -0
  119. package/dist/preview/BreadcrumbPreview.d.ts.map +1 -0
  120. package/dist/preview/CardPreview.d.ts +2 -0
  121. package/dist/preview/CardPreview.d.ts.map +1 -0
  122. package/dist/preview/ChartPreview.d.ts +2 -0
  123. package/dist/preview/ChartPreview.d.ts.map +1 -0
  124. package/dist/preview/ColorsPreview.d.ts +7 -0
  125. package/dist/preview/ColorsPreview.d.ts.map +1 -0
  126. package/dist/preview/CommandPreview.d.ts +2 -0
  127. package/dist/preview/CommandPreview.d.ts.map +1 -0
  128. package/dist/preview/DataTablePreview.d.ts.map +1 -1
  129. package/dist/preview/DatePickerPreview.d.ts +2 -0
  130. package/dist/preview/DatePickerPreview.d.ts.map +1 -0
  131. package/dist/preview/DateRangePickerPreview.d.ts.map +1 -1
  132. package/dist/preview/FormPreview.d.ts +2 -0
  133. package/dist/preview/FormPreview.d.ts.map +1 -0
  134. package/dist/preview/HeroMetricCardPreview.d.ts +2 -0
  135. package/dist/preview/HeroMetricCardPreview.d.ts.map +1 -0
  136. package/dist/preview/PaginationPreview.d.ts +2 -0
  137. package/dist/preview/PaginationPreview.d.ts.map +1 -0
  138. package/dist/preview/SeparatorPreview.d.ts +2 -0
  139. package/dist/preview/SeparatorPreview.d.ts.map +1 -0
  140. package/dist/preview/SonnerPreview.d.ts +2 -0
  141. package/dist/preview/SonnerPreview.d.ts.map +1 -0
  142. package/dist/preview/SpinnerPreview.d.ts +2 -0
  143. package/dist/preview/SpinnerPreview.d.ts.map +1 -0
  144. package/dist/preview/TextareaPreview.d.ts +2 -0
  145. package/dist/preview/TextareaPreview.d.ts.map +1 -0
  146. package/dist/scripts/chakra-to-shadcn-migrator/chakra-to-shadcn.config.json +577 -0
  147. package/dist/scripts/chakra-to-shadcn-migrator/lib/args.js +63 -0
  148. package/dist/scripts/chakra-to-shadcn-migrator/lib/colors.js +14 -0
  149. package/dist/scripts/chakra-to-shadcn-migrator/lib/config.js +15 -0
  150. package/dist/scripts/chakra-to-shadcn-migrator/lib/deps.js +125 -0
  151. package/dist/scripts/chakra-to-shadcn-migrator/lib/file-io.js +44 -0
  152. package/dist/scripts/chakra-to-shadcn-migrator/lib/render.js +89 -0
  153. package/dist/scripts/chakra-to-shadcn-migrator/lib/transform.js +550 -0
  154. package/dist/scripts/chakra-to-shadcn-migrator/package.json +11 -0
  155. package/dist/scripts/init.cjs +216 -0
  156. package/dist/scripts/npx-init.cjs +418 -0
  157. package/dist/tailwind.base.config.js +89 -0
  158. package/dist/themes/carbide.css +369 -91
  159. package/package.json +40 -10
  160. package/src/index.css +111 -498
  161. package/dist/index.css +0 -536
  162. package/dist/themes/base.css +0 -536
  163. package/dist/themes/complete.css +0 -8
  164. package/scripts/README.md +0 -171
  165. package/scripts/chakra-to-shadcn-migrator/README.md +0 -107
  166. package/src/themes/base.css +0 -536
  167. package/src/themes/carbide.css +0 -1257
  168. package/src/themes/complete.css +0 -8
  169. /package/{scripts → dist/scripts}/chakra-to-shadcn-migrator/bin/chakra-to-shadcn.js +0 -0
package/src/index.css CHANGED
@@ -1,536 +1,149 @@
1
- @import url('https://fonts.googleapis.com/css2?family=Noto+Sans:wght@400;500;600;700&display=swap');
2
- @import url('https://fonts.googleapis.com/css2?family=Inconsolata:wght@400;600;700&display=swap');
3
- @import 'tailwindcss';
4
- @import 'tw-animate-css';
1
+ /* =============================
2
+ PREVIEW-ONLY STYLES
3
+ ============================= */
5
4
 
6
- [data-slot='progress'] {
7
- /* Disabled/unknown visual base aligns with inputs/buttons disabled look */
5
+ /* Import the consolidated Carbide theme */
6
+ @import './themes/carbide.css';
7
+
8
+ /* =============================
9
+ PREVIEW-SPECIFIC STYLES
10
+ ============================= */
11
+
12
+ /* These styles are only for the preview application and should not be included in the library distribution */
13
+
14
+ /* Preview app specific overrides */
15
+ .preview-app {
16
+ /* Any preview-specific styles can go here */
8
17
  }
9
18
 
10
- .mmc-progress[data-unknown='true'] {
11
- opacity: 0.6;
19
+ /* Development-only styles */
20
+ .dev-only {
21
+ /* Development-specific styles */
12
22
  }
13
23
 
14
- .mmc-progress[data-unknown='true'] [data-slot='progress-indicator'] {
15
- filter: grayscale(0.2) brightness(0.9);
24
+ /* =============================
25
+ PREVIEW-ONLY COMPONENT STYLES
26
+ ============================= */
27
+
28
+ /* These styles are only used in the preview app and should not be in the library distribution */
29
+
30
+ /* Centralized overlay class to keep overlays consistent */
31
+ .mmc-overlay {
32
+ background-color: var(--overlay-bg);
33
+ -webkit-backdrop-filter: blur(4px);
34
+ backdrop-filter: blur(4px);
35
+ }
36
+
37
+ /* Colors preview-specific code styling to avoid green accents conflicting with swatches */
38
+ .mmc-colors code {
39
+ background-color: var(--grey-150);
40
+ color: var(--grey-700);
41
+ border: none;
42
+ }
43
+ .carbide.dark .mmc-colors code {
44
+ background-color: var(--grey-800);
45
+ color: var(--grey-200);
46
+ border: none;
16
47
  }
17
48
 
18
- /* Shimmer overlay for active progress state */
19
- @keyframes mm-progress-shimmer {
49
+ /* Animated ellipsis for in-progress labels */
50
+ @keyframes mm-ellipsis {
20
51
  0% {
21
- transform: translateX(-100%);
22
- opacity: 0;
52
+ content: '';
23
53
  }
24
- 10% {
25
- opacity: 0.15;
54
+ 33% {
55
+ content: '.';
26
56
  }
27
- 50% {
28
- opacity: 0.25;
57
+ 66% {
58
+ content: '..';
29
59
  }
30
60
  100% {
31
- transform: translateX(100%);
32
- opacity: 0;
61
+ content: '...';
33
62
  }
34
63
  }
35
-
36
- [data-slot='progress-indicator']::before {
64
+ .mmc-animated-ellipsis::after {
65
+ display: inline-block;
66
+ width: 16px;
67
+ text-align: left;
37
68
  content: '';
38
- position: absolute;
39
- inset: 0;
40
- background: linear-gradient(
41
- 90deg,
42
- transparent 0%,
43
- rgba(255, 255, 255, 0.15) 50%,
44
- transparent 100%
45
- );
46
- transform: translateX(-100%);
47
- pointer-events: none;
48
- animation: mm-progress-shimmer 2.4s ease-in-out infinite;
69
+ animation: mm-ellipsis 1.5s steps(3, end) infinite;
49
70
  }
50
71
 
51
- @custom-variant dark (&:is(.dark *));
52
-
53
- @theme inline {
54
- --radius-sm: calc(var(--radius) - 4px);
55
- --radius-md: calc(var(--radius) - 2px);
56
- --radius-lg: var(--radius);
57
- --radius-xl: calc(var(--radius) + 4px);
58
- --color-background: var(--background);
59
- --color-foreground: var(--foreground);
60
- --color-card: var(--card);
61
- --color-card-foreground: var(--card-foreground);
62
- --color-popover: var(--popover);
63
- --color-popover-foreground: var(--popover-foreground);
64
- --color-primary: var(--primary);
65
- --color-primary-foreground: var(--primary-foreground);
66
- --color-secondary: var(--secondary);
67
- --color-secondary-foreground: var(--secondary-foreground);
68
- --color-muted: var(--muted);
69
- --color-muted-foreground: var(--muted-foreground);
70
- --color-accent: var(--accent);
71
- --color-accent-foreground: var(--accent-foreground);
72
- --color-destructive: var(--destructive);
73
- --color-border: var(--border);
74
- --color-input: var(--input);
75
- --color-ring: var(--ring);
76
- --color-chart-1: var(--chart-1);
77
- --color-chart-2: var(--chart-2);
78
- --color-chart-3: var(--chart-3);
79
- --color-chart-4: var(--chart-4);
80
- --color-chart-5: var(--chart-5);
81
- --color-sidebar: var(--sidebar);
82
- --color-sidebar-foreground: var(--sidebar-foreground);
83
- --color-sidebar-primary: var(--sidebar-primary);
84
- --color-sidebar-primary-foreground: var(--sidebar-primary-foreground);
85
- --color-sidebar-accent: var(--sidebar-accent);
86
- --color-sidebar-accent-foreground: var(--sidebar-accent-foreground);
87
- --color-sidebar-border: var(--sidebar-border);
88
- --color-sidebar-ring: var(--sidebar-ring);
72
+ /* In-progress status colors */
73
+ .mmc-khub-status--in-progress .mmc-khub-status__label {
74
+ color: var(--foreground);
89
75
  }
90
-
91
- :root {
92
- --radius: 0.5rem;
93
- --radius-sm: 4px;
94
- --radius-md: calc(var(--radius) - 2px);
95
- --radius-lg: var(--radius);
96
- --radius-xl: calc(var(--radius) + 4px);
97
- --background: oklch(1 0 0);
98
- --foreground: oklch(0.145 0 0);
99
- --card: oklch(1 0 0);
100
- --card-foreground: oklch(0.145 0 0);
101
- --popover: oklch(1 0 0);
102
- --popover-foreground: oklch(0.145 0 0);
103
- --primary: oklch(0.205 0 0);
104
- --primary-foreground: oklch(0.985 0 0);
105
- --secondary: oklch(0.97 0 0);
106
- --secondary-foreground: oklch(0.205 0 0);
107
- --muted: oklch(0.97 0 0);
108
- --muted-foreground: oklch(0.556 0 0);
109
- --accent: oklch(0.97 0 0);
110
- --accent-foreground: oklch(0.205 0 0);
111
- --destructive: oklch(0.577 0.245 27.325);
112
- --border: oklch(0.922 0 0);
113
- --input: oklch(0.922 0 0);
114
- --ring: oklch(0.708 0 0);
115
- --chart-1: oklch(0.646 0.222 41.116);
116
- --chart-2: oklch(0.6 0.118 184.704);
117
- --chart-3: oklch(0.398 0.07 227.392);
118
- --chart-4: oklch(0.828 0.189 84.429);
119
- --chart-5: oklch(0.769 0.188 70.08);
120
- --sidebar: oklch(0.985 0 0);
121
- --sidebar-foreground: oklch(0.145 0 0);
122
- --sidebar-primary: oklch(0.205 0 0);
123
- --sidebar-primary-foreground: oklch(0.985 0 0);
124
- --sidebar-accent: oklch(0.97 0 0);
125
- --sidebar-accent-foreground: oklch(0.205 0 0);
126
- --sidebar-border: oklch(0.922 0 0);
127
- --sidebar-ring: oklch(0.708 0 0);
128
-
129
- /* Overlay token (base) */
130
- --overlay-bg: rgba(0, 0, 0, 0.8);
131
-
132
- /* --- Typography tokens (shadcn/ui reference) --- */
133
- --font-sans:
134
- ui-sans-serif, system-ui, -apple-system, BlinkMacSystemFont, 'Segoe UI',
135
- Roboto, 'Helvetica Neue', Arial, 'Noto Sans', sans-serif,
136
- 'Apple Color Emoji', 'Segoe UI Emoji', 'Segoe UI Symbol', 'Noto Color Emoji';
137
- --font-mono:
138
- ui-monospace, SFMono-Regular, Menlo, Monaco, Consolas, 'Liberation Mono',
139
- 'Courier New', monospace;
140
- --font-heading: var(--font-sans);
141
- --font-body: var(--font-sans);
142
-
143
- --text-base-size: 1rem; /* 16px */
144
- --text-sm-size: 0.875rem; /* 14px */
145
- --text-lg-size: 1.125rem; /* 18px */
146
-
147
- --font-weight-normal: 400;
148
- --font-weight-medium: 500;
149
- --font-weight-bold: 700;
150
-
151
- --leading-tight: 1.25;
152
- --leading-normal: 1.5;
153
-
154
- --tracking-tight: -0.015em;
155
- --tracking-normal: 0;
76
+ .carbide.dark .mmc-khub-status--in-progress .mmc-khub-status__label {
77
+ color: var(--foreground);
156
78
  }
157
79
 
158
- .dark {
159
- --background: oklch(0.145 0 0);
160
- --foreground: oklch(0.985 0 0);
161
- --card: oklch(0.205 0 0);
162
- --card-foreground: oklch(0.985 0 0);
163
- --popover: oklch(0.205 0 0);
164
- --popover-foreground: oklch(0.985 0 0);
165
- --primary: oklch(0.922 0 0);
166
- --primary-foreground: oklch(0.205 0 0);
167
- --secondary: oklch(0.269 0 0);
168
- --secondary-foreground: oklch(0.985 0 0);
169
- --muted: oklch(0.269 0 0);
170
- --muted-foreground: oklch(0.708 0 0);
171
- --accent: oklch(0.269 0 0);
172
- --accent-foreground: oklch(0.985 0 0);
173
- --destructive: oklch(0.704 0.191 22.216);
174
- --border: oklch(1 0 0 / 10%);
175
- --input: oklch(1 0 0 / 15%);
176
- --ring: oklch(0.556 0 0);
177
- --chart-1: oklch(0.488 0.243 264.376);
178
- --chart-2: oklch(0.696 0.17 162.48);
179
- --chart-3: oklch(0.769 0.188 70.08);
180
- --chart-4: oklch(0.627 0.265 303.9);
181
- --chart-5: oklch(0.645 0.246 16.439);
182
- --sidebar: oklch(0.205 0 0);
183
- --sidebar-foreground: oklch(0.985 0 0);
184
- --sidebar-primary: oklch(0.488 0.243 264.376);
185
- --sidebar-primary-foreground: oklch(0.985 0 0);
186
- --sidebar-accent: oklch(0.269 0 0);
187
- --sidebar-accent-foreground: oklch(0.985 0 0);
188
- --sidebar-border: oklch(1 0 0 / 10%);
189
- --sidebar-ring: oklch(0.556 0 0);
80
+ /* Consistent KHUB status layout */
81
+ .mmc-khub {
82
+ --khub-progress-width: 80px;
83
+ --khub-status-gutter: 88px;
190
84
  }
191
-
192
- @layer base {
193
- * {
194
- @apply border-border outline-ring/50;
195
- }
196
- body {
197
- @apply bg-background text-foreground;
198
- }
199
- .lead {
200
- @apply text-xl text-muted-foreground;
201
- }
202
- .large {
203
- @apply text-lg font-semibold;
204
- }
205
- .small {
206
- @apply text-sm font-medium leading-none;
207
- }
208
- .muted {
209
- @apply text-sm text-muted-foreground;
210
- }
211
- :root {
212
- --sidebar-background: 0 0% 98%;
213
- --sidebar-foreground: 240 5.3% 26.1%;
214
- --sidebar-primary: 240 5.9% 10%;
215
- --sidebar-primary-foreground: 0 0% 98%;
216
- --sidebar-accent: 240 4.8% 95.9%;
217
- --sidebar-accent-foreground: 240 5.9% 10%;
218
- --sidebar-border: 220 13% 91%;
219
- --sidebar-ring: 217.2 91.2% 59.8%;
220
- }
221
-
222
- .dark {
223
- --sidebar-background: 240 5.9% 10%;
224
- --sidebar-foreground: 240 4.8% 95.9%;
225
- --sidebar-primary: 224.3 76.3% 48%;
226
- --sidebar-primary-foreground: 0 0% 100%;
227
- --sidebar-accent: 240 3.7% 15.9%;
228
- --sidebar-accent-foreground: 240 4.8% 95.9%;
229
- --sidebar-border: 240 3.7% 15.9%;
230
- --sidebar-ring: 217.2 91.2% 59.8%;
231
- }
232
-
233
- /* Centralized overlay class to keep overlays consistent */
234
- .mmc-overlay {
235
- background-color: var(--overlay-bg);
236
- -webkit-backdrop-filter: blur(4px);
237
- backdrop-filter: blur(4px);
238
- }
239
-
240
- /* Universal Carbide hover for input-like controls */
241
- .carbide
242
- :is(
243
- input:not([type]),
244
- input[type='text'],
245
- input[type='email'],
246
- input[type='password'],
247
- input[type='search'],
248
- input[type='number'],
249
- input[type='url'],
250
- input[type='tel'],
251
- textarea,
252
- [data-slot='checkbox'],
253
- [data-slot='radio-group-item'],
254
- [data-slot='toggle'],
255
- [data-slot='filter-section-trigger']
256
- ) {
257
- @apply transition-[background-color,box-shadow];
258
- }
259
-
260
- .carbide
261
- :is(
262
- input:not([type]),
263
- input[type='text'],
264
- input[type='email'],
265
- input[type='password'],
266
- input[type='search'],
267
- input[type='number'],
268
- input[type='url'],
269
- input[type='tel'],
270
- textarea,
271
- [data-slot='checkbox'],
272
- [data-slot='radio-group-item'],
273
- [data-slot='toggle'],
274
- [data-slot='filter-section-trigger']
275
- ):where(:not(:disabled)):hover {
276
- background-color: var(--accent);
277
- }
278
-
279
- .carbide.dark
280
- :is(
281
- input:not([type]),
282
- input[type='text'],
283
- input[type='email'],
284
- input[type='password'],
285
- input[type='search'],
286
- input[type='number'],
287
- input[type='url'],
288
- input[type='tel'],
289
- textarea,
290
- [data-slot='checkbox'],
291
- [data-slot='radio-group-item'],
292
- [data-slot='toggle'],
293
- [data-slot='filter-section-trigger']
294
- ):where(:not(:disabled)):hover {
295
- background-color: var(--input-surface-hover-bg);
296
- }
297
-
298
- /* Ensure elements styled via the bg-input utility also receive hover */
299
- .carbide .bg-input:where(:not(:disabled)):hover {
300
- background-color: var(--accent);
301
- }
302
- .carbide.dark .bg-input:where(:not(:disabled)):hover {
303
- background-color: var(--input-surface-hover-bg);
304
- }
305
-
306
- /* Table row hover vs action trigger hover contrast (base declaration) */
307
- .mmc-data-table-preview
308
- .mmc-table-action-trigger:where(:not(:disabled)):hover {
309
- background-color: color-mix(in oklab, var(--accent) 92%, black 8%);
310
- }
311
- .carbide.dark
312
- .mmc-data-table-preview
313
- .mmc-table-action-trigger:where(:not(:disabled)):hover {
314
- background-color: color-mix(
315
- in oklab,
316
- var(--input-surface-hover-bg) 90%,
317
- white 10%
318
- );
319
- }
320
-
321
- /* Put higher-precedence overrides in utilities layer to beat Tailwind utilities */
322
- @layer utilities {
323
- /* Animated ellipsis for in-progress labels */
324
- @keyframes mm-ellipsis {
325
- 0% {
326
- content: '';
327
- }
328
- 33% {
329
- content: '.';
330
- }
331
- 66% {
332
- content: '..';
333
- }
334
- 100% {
335
- content: '...';
336
- }
337
- }
338
- .mmc-animated-ellipsis::after {
339
- display: inline-block;
340
- width: 16px;
341
- text-align: left;
342
- content: '';
343
- animation: mm-ellipsis 1.5s steps(3, end) infinite;
344
- }
345
-
346
- /* In-progress status colors */
347
- .mmc-khub-status--in-progress .mmc-khub-status__label {
348
- color: var(--foreground);
349
- }
350
- .carbide.dark .mmc-khub-status--in-progress .mmc-khub-status__label {
351
- color: var(--foreground);
352
- }
353
- /* Consistent KHUB status layout */
354
- .mmc-khub {
355
- --khub-progress-width: 80px;
356
- --khub-status-gutter: 88px;
357
- }
358
- .mmc-khub-status {
359
- min-width: 0;
360
- }
361
- .mmc-khub-status__gutter {
362
- width: var(--khub-status-gutter);
363
- flex: 0 0 var(--khub-status-gutter);
364
- display: inline-flex;
365
- align-items: center;
366
- }
367
- .mmc-khub-status__label {
368
- display: inline-block;
369
- max-width: 100%;
370
- }
371
- .mmc-khub-status__progress {
372
- width: var(--khub-progress-width);
373
- flex: 0 0 var(--khub-progress-width);
374
- }
375
-
376
- /* Match in-progress text styling to badges */
377
- .mmc-khub-status--in-progress .mmc-khub-status__label {
378
- font-size: 0.75rem;
379
- line-height: 1rem;
380
- font-weight: 400;
381
- color: var(--grey-700) !important;
382
- }
383
- .carbide.dark .mmc-khub-status--in-progress .mmc-khub-status__label {
384
- color: var(--grey-200) !important;
385
- }
386
-
387
- /* Remove fade overflow mask for KHUB status cells */
388
- .mmc-table-cell__content:has(> .mmc-khub-status) {
389
- -webkit-mask-image: none !important;
390
- mask-image: none !important;
391
- }
392
- /* Elevate action trigger hover contrast above Tailwind utilities */
393
- .mmc-data-table-preview .mmc-table-action-trigger:hover {
394
- background-color: var(--table-action-hover-bg) !important;
395
- }
396
- .carbide.dark .mmc-data-table-preview .mmc-table-action-trigger:hover {
397
- background-color: var(--table-action-hover-bg) !important;
398
- }
399
- }
400
-
401
- /* Universal single-line overflow wrapper for table cell contents */
402
- .mmc-table-cell__content {
403
- display: block;
404
- width: 100%;
405
- white-space: nowrap;
406
- overflow: hidden;
407
- --fade-edge: 16px;
408
- }
409
- /* Apply masks ONLY when overflow is detected via JS-added modifier classes */
410
- .mmc-table-cell__content--fade-right {
411
- -webkit-mask-image: linear-gradient(
412
- to right,
413
- rgba(0, 0, 0, 1) calc(100% - var(--fade-edge)),
414
- rgba(0, 0, 0, 0) 100%
415
- );
416
- mask-image: linear-gradient(
417
- to right,
418
- rgba(0, 0, 0, 1) calc(100% - var(--fade-edge)),
419
- rgba(0, 0, 0, 0) 100%
420
- );
421
- }
422
- .mmc-table-cell__content--fade-left {
423
- -webkit-mask-image: linear-gradient(
424
- to left,
425
- rgba(0, 0, 0, 1) calc(100% - var(--fade-edge)),
426
- rgba(0, 0, 0, 0) 100%
427
- );
428
- mask-image: linear-gradient(
429
- to left,
430
- rgba(0, 0, 0, 1) calc(100% - var(--fade-edge)),
431
- rgba(0, 0, 0, 0) 100%
432
- );
433
- }
434
- .mmc-table-cell__content--fade-both {
435
- -webkit-mask-image: linear-gradient(
436
- to right,
437
- transparent 0,
438
- rgba(0, 0, 0, 1) var(--fade-edge),
439
- rgba(0, 0, 0, 1) calc(100% - var(--fade-edge)),
440
- transparent 100%
441
- );
442
- mask-image: linear-gradient(
443
- to right,
444
- transparent 0,
445
- rgba(0, 0, 0, 1) var(--fade-edge),
446
- rgba(0, 0, 0, 1) calc(100% - var(--fade-edge)),
447
- transparent 100%
448
- );
449
- }
85
+ .mmc-khub-status {
86
+ min-width: 0;
450
87
  }
451
-
452
- /* Collapsible animations using Radix-provided height variable */
453
- @keyframes mm-collapsible-down {
454
- from {
455
- height: 0;
456
- opacity: 0;
457
- }
458
- to {
459
- height: var(--radix-collapsible-content-height);
460
- opacity: 1;
461
- }
88
+ .mmc-khub-status__gutter {
89
+ width: var(--khub-status-gutter);
90
+ flex: 0 0 var(--khub-status-gutter);
91
+ display: inline-flex;
92
+ align-items: center;
462
93
  }
463
-
464
- @keyframes mm-collapsible-up {
465
- from {
466
- height: var(--radix-collapsible-content-height);
467
- opacity: 1;
468
- }
469
- to {
470
- height: 0;
471
- opacity: 0;
472
- }
94
+ .mmc-khub-status__label {
95
+ display: inline-block;
96
+ max-width: 100%;
97
+ }
98
+ .mmc-khub-status__progress {
99
+ width: var(--khub-progress-width);
100
+ flex: 0 0 var(--khub-progress-width);
473
101
  }
474
102
 
475
- /* JS-driven height animation now handles height. Keep only overflow hidden. */
476
- [data-slot='collapsible-content'] {
477
- overflow: hidden;
103
+ /* Match in-progress text styling to badges */
104
+ .mmc-khub-status--in-progress .mmc-khub-status__label {
105
+ font-size: 0.75rem;
106
+ line-height: 1rem;
107
+ font-weight: 400;
108
+ color: var(--grey-700) !important;
478
109
  }
479
- /* Radix sets hidden on closed when forceMount is used; override to enable CSS animation */
480
- [data-slot='collapsible-content'][hidden] {
481
- display: block !important;
110
+ .carbide.dark .mmc-khub-status--in-progress .mmc-khub-status__label {
111
+ color: var(--grey-200) !important;
482
112
  }
483
- /* JS controls height now; avoid conflicting state heights */
484
113
 
485
- /* Progress micro-interactions */
486
- @keyframes mm-progress-head-flash {
487
- 0% {
488
- opacity: 0;
489
- transform: translateX(0);
490
- }
491
- 30% {
492
- opacity: 0.6;
493
- }
494
- 100% {
495
- opacity: 0;
496
- transform: translateX(8px);
497
- }
114
+ /* Remove fade overflow mask for KHUB status cells */
115
+ .mmc-table-cell__content:has(> .mmc-khub-status) {
116
+ -webkit-mask-image: none !important;
117
+ mask-image: none !important;
498
118
  }
499
119
 
500
- @keyframes mm-progress-breathe {
501
- 0%,
502
- 100% {
503
- filter: brightness(1);
504
- opacity: 1;
505
- }
506
- 50% {
507
- filter: brightness(1.35);
508
- opacity: 0.8;
509
- }
120
+ /* Table action trigger hover contrast */
121
+ .mmc-data-table-preview .mmc-table-action-trigger:hover {
122
+ background-color: var(--table-action-hover-bg) !important;
123
+ }
124
+ .carbide.dark .mmc-data-table-preview .mmc-table-action-trigger:hover {
125
+ background-color: var(--table-action-hover-bg) !important;
510
126
  }
511
127
 
512
- [data-slot='progress'] [data-slot='progress-indicator']::after {
513
- content: '';
514
- position: absolute;
515
- right: -2px;
516
- top: 0;
517
- bottom: 0;
518
- width: 12px;
519
- pointer-events: none;
520
- /* Avoid color-mix/oklch for broader browser support; use simple alpha gradient */
521
- background: radial-gradient(
522
- 12px 12px at 100% 50%,
523
- rgba(255, 255, 255, 0.6),
524
- transparent 70%
128
+ /* Table row hover vs action trigger hover contrast */
129
+ .mmc-data-table-preview .mmc-table-action-trigger:where(:not(:disabled)):hover {
130
+ background-color: color-mix(in oklab, var(--accent) 92%, black 8%);
131
+ }
132
+ .carbide.dark
133
+ .mmc-data-table-preview
134
+ .mmc-table-action-trigger:where(:not(:disabled)):hover {
135
+ background-color: color-mix(
136
+ in oklab,
137
+ var(--input-surface-hover-bg) 90%,
138
+ white 10%
525
139
  );
526
- opacity: 0;
527
140
  }
528
141
 
529
- .mmc-progress[data-animating='true'] [data-slot='progress-indicator']::after {
530
- animation: mm-progress-head-flash 600ms ease-out 1;
142
+ /* Progress component demo styles (preview only) */
143
+ .mmc-progress[data-unknown='true'] {
144
+ opacity: 0.6;
531
145
  }
532
146
 
533
- /* Always-on pulse for the fill, regardless of state */
534
- [data-slot='progress-indicator'] {
535
- animation: mm-progress-breathe 1.65s ease-in-out infinite;
147
+ .mmc-progress[data-unknown='true'] [data-slot='progress-indicator'] {
148
+ filter: grayscale(0.2) brightness(0.9);
536
149
  }