@machinemetrics/mm-react-components 1.4.1 → 1.5.0-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 (205) hide show
  1. package/CHANGELOG.md +31 -0
  2. package/README.md +27 -0
  3. package/agent-docs/agent-documentation-reference.md +106 -13
  4. package/agent-docs/ai-agent-guide.md +2 -0
  5. package/agent-docs/ai-agent-init-guide.md +1 -1
  6. package/agent-docs/component-mapping-reference.md +3 -1
  7. package/agent-docs/cursor-skill-mm-carbide.md +1 -1
  8. package/agent-docs/lovable.md +1 -0
  9. package/agent-docs/tickets-pattern.md +78 -0
  10. package/dist/README.md +27 -0
  11. package/dist/components/ui/accordion.d.ts +9 -2
  12. package/dist/components/ui/accordion.d.ts.map +1 -1
  13. package/dist/components/ui/alert-dialog.d.ts +11 -2
  14. package/dist/components/ui/alert-dialog.d.ts.map +1 -1
  15. package/dist/components/ui/alert.d.ts +4 -3
  16. package/dist/components/ui/alert.d.ts.map +1 -1
  17. package/dist/components/ui/avatar.d.ts +5 -1
  18. package/dist/components/ui/avatar.d.ts.map +1 -1
  19. package/dist/components/ui/breadcrumb.d.ts +9 -1
  20. package/dist/components/ui/breadcrumb.d.ts.map +1 -1
  21. package/dist/components/ui/button.d.ts +7 -1
  22. package/dist/components/ui/button.d.ts.map +1 -1
  23. package/dist/components/ui/card.d.ts +25 -3
  24. package/dist/components/ui/card.d.ts.map +1 -1
  25. package/dist/components/ui/collapsible.d.ts +22 -1
  26. package/dist/components/ui/collapsible.d.ts.map +1 -1
  27. package/dist/components/ui/command.d.ts +3 -0
  28. package/dist/components/ui/command.d.ts.map +1 -1
  29. package/dist/components/ui/data-table/pagination.d.ts.map +1 -1
  30. package/dist/components/ui/data-table/toolbar/DataTableToolbar.d.ts.map +1 -1
  31. package/dist/components/ui/data-table/toolbar/filters/FilterControl.d.ts +14 -0
  32. package/dist/components/ui/data-table/toolbar/filters/FilterControl.d.ts.map +1 -0
  33. package/dist/components/ui/data-table/toolbar/filters/FilterMenu.d.ts.map +1 -1
  34. package/dist/components/ui/data-table/toolbar/filters/InlineFilterMenu.d.ts +13 -0
  35. package/dist/components/ui/data-table/toolbar/filters/InlineFilterMenu.d.ts.map +1 -0
  36. package/dist/components/ui/data-table/toolbar/filters/index.d.ts +2 -0
  37. package/dist/components/ui/data-table/toolbar/filters/index.d.ts.map +1 -1
  38. package/dist/components/ui/date-picker.d.ts +8 -1
  39. package/dist/components/ui/date-picker.d.ts.map +1 -1
  40. package/dist/components/ui/date-range-picker/get-range-calendar-selected.d.ts +8 -0
  41. package/dist/components/ui/date-range-picker/get-range-calendar-selected.d.ts.map +1 -0
  42. package/dist/components/ui/date-range-picker/hooks/use-date-range-picker-state.d.ts +38 -0
  43. package/dist/components/ui/date-range-picker/hooks/use-date-range-picker-state.d.ts.map +1 -0
  44. package/dist/components/ui/date-range-picker/index.d.ts +9 -0
  45. package/dist/components/ui/date-range-picker/index.d.ts.map +1 -0
  46. package/dist/components/ui/date-range-picker/parts/company-day-settings-row.d.ts +7 -0
  47. package/dist/components/ui/date-range-picker/parts/company-day-settings-row.d.ts.map +1 -0
  48. package/dist/components/ui/date-range-picker/parts/custom-hours-selects.d.ts +8 -0
  49. package/dist/components/ui/date-range-picker/parts/custom-hours-selects.d.ts.map +1 -0
  50. package/dist/components/ui/date-range-picker/parts/date-range-picker-cancel-apply-buttons.d.ts +10 -0
  51. package/dist/components/ui/date-range-picker/parts/date-range-picker-cancel-apply-buttons.d.ts.map +1 -0
  52. package/dist/components/ui/date-range-picker/parts/date-range-picker-clear-button.d.ts +5 -0
  53. package/dist/components/ui/date-range-picker/parts/date-range-picker-clear-button.d.ts.map +1 -0
  54. package/dist/components/ui/date-range-picker/parts/date-range-picker-trigger.d.ts +24 -0
  55. package/dist/components/ui/date-range-picker/parts/date-range-picker-trigger.d.ts.map +1 -0
  56. package/dist/components/ui/date-range-picker/parts/dual-month-range-calendars.d.ts +15 -0
  57. package/dist/components/ui/date-range-picker/parts/dual-month-range-calendars.d.ts.map +1 -0
  58. package/dist/components/ui/date-range-picker/parts/full-variant-header.d.ts +2 -0
  59. package/dist/components/ui/date-range-picker/parts/full-variant-header.d.ts.map +1 -0
  60. package/dist/components/ui/date-range-picker/parts/preset-sidebar.d.ts +9 -0
  61. package/dist/components/ui/date-range-picker/parts/preset-sidebar.d.ts.map +1 -0
  62. package/dist/components/ui/date-range-picker/parts/range-calendar.d.ts +16 -0
  63. package/dist/components/ui/date-range-picker/parts/range-calendar.d.ts.map +1 -0
  64. package/dist/components/ui/date-range-picker/presets.d.ts +34 -0
  65. package/dist/components/ui/date-range-picker/presets.d.ts.map +1 -0
  66. package/dist/components/ui/date-range-picker/types.d.ts +29 -0
  67. package/dist/components/ui/date-range-picker/types.d.ts.map +1 -0
  68. package/dist/components/ui/date-range-picker/utils.d.ts +24 -0
  69. package/dist/components/ui/date-range-picker/utils.d.ts.map +1 -0
  70. package/dist/components/ui/date-range-picker/variants/full.d.ts +11 -0
  71. package/dist/components/ui/date-range-picker/variants/full.d.ts.map +1 -0
  72. package/dist/components/ui/date-range-picker/variants/simple.d.ts +9 -0
  73. package/dist/components/ui/date-range-picker/variants/simple.d.ts.map +1 -0
  74. package/dist/components/ui/date-range-picker.d.ts +2 -8
  75. package/dist/components/ui/date-range-picker.d.ts.map +1 -1
  76. package/dist/components/ui/dialog.d.ts +12 -2
  77. package/dist/components/ui/dialog.d.ts.map +1 -1
  78. package/dist/components/ui/drawer.d.ts +16 -2
  79. package/dist/components/ui/drawer.d.ts.map +1 -1
  80. package/dist/components/ui/form.d.ts +19 -1
  81. package/dist/components/ui/form.d.ts.map +1 -1
  82. package/dist/components/ui/kanban/KanbanBoard.d.ts +8 -0
  83. package/dist/components/ui/kanban/KanbanBoard.d.ts.map +1 -0
  84. package/dist/components/ui/kanban/KanbanCard.d.ts +8 -0
  85. package/dist/components/ui/kanban/KanbanCard.d.ts.map +1 -0
  86. package/dist/components/ui/kanban/KanbanCardOverlay.d.ts +8 -0
  87. package/dist/components/ui/kanban/KanbanCardOverlay.d.ts.map +1 -0
  88. package/dist/components/ui/kanban/KanbanColumn.d.ts +8 -0
  89. package/dist/components/ui/kanban/KanbanColumn.d.ts.map +1 -0
  90. package/dist/components/ui/kanban/KanbanContext.d.ts +28 -0
  91. package/dist/components/ui/kanban/KanbanContext.d.ts.map +1 -0
  92. package/dist/components/ui/kanban/dragEndUtils.d.ts +26 -0
  93. package/dist/components/ui/kanban/dragEndUtils.d.ts.map +1 -0
  94. package/dist/components/ui/kanban/index.d.ts +9 -0
  95. package/dist/components/ui/kanban/index.d.ts.map +1 -0
  96. package/dist/components/ui/kanban/types.d.ts +58 -0
  97. package/dist/components/ui/kanban/types.d.ts.map +1 -0
  98. package/dist/components/ui/pagination.d.ts +21 -0
  99. package/dist/components/ui/pagination.d.ts.map +1 -1
  100. package/dist/components/ui/popover.d.ts +11 -2
  101. package/dist/components/ui/popover.d.ts.map +1 -1
  102. package/dist/components/ui/select.d.ts +10 -2
  103. package/dist/components/ui/select.d.ts.map +1 -1
  104. package/dist/components/ui/sheet-banner.d.ts +1 -1
  105. package/dist/components/ui/sheet-banner.d.ts.map +1 -1
  106. package/dist/components/ui/sonner.d.ts +4 -1
  107. package/dist/components/ui/sonner.d.ts.map +1 -1
  108. package/dist/components/ui/status/index.d.ts +7 -0
  109. package/dist/components/ui/status/index.d.ts.map +1 -0
  110. package/dist/components/ui/status/status-badge.d.ts +17 -0
  111. package/dist/components/ui/status/status-badge.d.ts.map +1 -0
  112. package/dist/components/ui/status/status-intent.d.ts +21 -0
  113. package/dist/components/ui/status/status-intent.d.ts.map +1 -0
  114. package/dist/components/ui/status/status-progress.d.ts +20 -0
  115. package/dist/components/ui/status/status-progress.d.ts.map +1 -0
  116. package/dist/components/ui/table.d.ts +8 -2
  117. package/dist/components/ui/table.d.ts.map +1 -1
  118. package/dist/components/ui/tabs/index.d.ts +6 -0
  119. package/dist/components/ui/tabs/index.d.ts.map +1 -0
  120. package/dist/components/ui/tabs/scroll-tabs-row.d.ts +6 -0
  121. package/dist/components/ui/tabs/scroll-tabs-row.d.ts.map +1 -0
  122. package/dist/components/ui/tabs/tabs-constants.d.ts +11 -0
  123. package/dist/components/ui/tabs/tabs-constants.d.ts.map +1 -0
  124. package/dist/components/ui/tabs/tabs-content.d.ts +5 -0
  125. package/dist/components/ui/tabs/tabs-content.d.ts.map +1 -0
  126. package/dist/components/ui/tabs/tabs-context.d.ts +9 -0
  127. package/dist/components/ui/tabs/tabs-context.d.ts.map +1 -0
  128. package/dist/components/ui/tabs/tabs-list-underline.d.ts +7 -0
  129. package/dist/components/ui/tabs/tabs-list-underline.d.ts.map +1 -0
  130. package/dist/components/ui/tabs/tabs-list.d.ts +8 -0
  131. package/dist/components/ui/tabs/tabs-list.d.ts.map +1 -0
  132. package/dist/components/ui/tabs/tabs-trigger.d.ts +7 -0
  133. package/dist/components/ui/tabs/tabs-trigger.d.ts.map +1 -0
  134. package/dist/components/ui/tabs/tabs-variants.d.ts +7 -0
  135. package/dist/components/ui/tabs/tabs-variants.d.ts.map +1 -0
  136. package/dist/components/ui/tabs/tabs.d.ts +15 -0
  137. package/dist/components/ui/tabs/tabs.d.ts.map +1 -0
  138. package/dist/components/ui/tabs/use-tabs-underline-scroll.d.ts +15 -0
  139. package/dist/components/ui/tabs/use-tabs-underline-scroll.d.ts.map +1 -0
  140. package/dist/components/ui/tabs.d.ts +5 -26
  141. package/dist/components/ui/tabs.d.ts.map +1 -1
  142. package/dist/components/ui/tickets/TicketActivitySection.d.ts +20 -0
  143. package/dist/components/ui/tickets/TicketActivitySection.d.ts.map +1 -0
  144. package/dist/components/ui/tickets/TicketDates.d.ts +20 -0
  145. package/dist/components/ui/tickets/TicketDates.d.ts.map +1 -0
  146. package/dist/components/ui/tickets/TicketDetailLayout.d.ts +32 -0
  147. package/dist/components/ui/tickets/TicketDetailLayout.d.ts.map +1 -0
  148. package/dist/components/ui/tickets/TicketDetails.d.ts +34 -0
  149. package/dist/components/ui/tickets/TicketDetails.d.ts.map +1 -0
  150. package/dist/components/ui/tickets/TicketDetailsSidebar.d.ts +21 -0
  151. package/dist/components/ui/tickets/TicketDetailsSidebar.d.ts.map +1 -0
  152. package/dist/components/ui/tickets/TicketFieldControl.d.ts +32 -0
  153. package/dist/components/ui/tickets/TicketFieldControl.d.ts.map +1 -0
  154. package/dist/components/ui/tickets/TicketForm.d.ts +22 -0
  155. package/dist/components/ui/tickets/TicketForm.d.ts.map +1 -0
  156. package/dist/components/ui/tickets/TicketLabels.d.ts +57 -0
  157. package/dist/components/ui/tickets/TicketLabels.d.ts.map +1 -0
  158. package/dist/components/ui/tickets/TicketTypes.d.ts +67 -0
  159. package/dist/components/ui/tickets/TicketTypes.d.ts.map +1 -0
  160. package/dist/components/ui/tickets/TicketUserSelect.d.ts +17 -0
  161. package/dist/components/ui/tickets/TicketUserSelect.d.ts.map +1 -0
  162. package/dist/components/ui/tickets/UserDisplay.d.ts +21 -0
  163. package/dist/components/ui/tickets/UserDisplay.d.ts.map +1 -0
  164. package/dist/components/ui/tickets/UserFieldValue.d.ts +24 -0
  165. package/dist/components/ui/tickets/UserFieldValue.d.ts.map +1 -0
  166. package/dist/components/ui/tickets/index.d.ts +12 -0
  167. package/dist/components/ui/tickets/index.d.ts.map +1 -0
  168. package/dist/components/ui/toggle-group.d.ts +6 -0
  169. package/dist/components/ui/toggle-group.d.ts.map +1 -1
  170. package/dist/components/ui/tooltip.d.ts +6 -1
  171. package/dist/components/ui/tooltip.d.ts.map +1 -1
  172. package/dist/cursor-skill/mm-carbide/SKILL.md +16 -4
  173. package/dist/cursor-skill/mm-carbide/reference.md +15 -3
  174. package/dist/docs/GETTING_STARTED.md +26 -0
  175. package/dist/index.d.ts +20 -3
  176. package/dist/index.d.ts.map +1 -1
  177. package/dist/lib/mm-react-components.css +1 -1
  178. package/dist/lib/normalize-host-color-mode.d.ts +6 -0
  179. package/dist/lib/normalize-host-color-mode.d.ts.map +1 -0
  180. package/dist/lib/theme-root.d.ts +18 -0
  181. package/dist/lib/theme-root.d.ts.map +1 -0
  182. package/dist/lib/use-host-theme.d.ts +15 -0
  183. package/dist/lib/use-host-theme.d.ts.map +1 -0
  184. package/dist/lib/with-display-name.d.ts +2 -0
  185. package/dist/lib/with-display-name.d.ts.map +1 -0
  186. package/dist/mm-react-components.es.js +971 -816
  187. package/dist/mm-react-components.es.js.map +1 -1
  188. package/dist/mm-react-components.umd.js +1 -1
  189. package/dist/mm-react-components.umd.js.map +1 -1
  190. package/dist/preview/AccordionPreview.d.ts.map +1 -1
  191. package/dist/preview/BreadcrumbPreview.d.ts.map +1 -1
  192. package/dist/preview/ButtonPreview.d.ts.map +1 -1
  193. package/dist/preview/CardPreview.d.ts.map +1 -1
  194. package/dist/preview/CollapsiblePreview.d.ts.map +1 -1
  195. package/dist/preview/DataTableLimitationsPreview.d.ts.map +1 -1
  196. package/dist/preview/DateRangePickerPreview.d.ts.map +1 -1
  197. package/dist/preview/KanbanPreview.d.ts +2 -0
  198. package/dist/preview/KanbanPreview.d.ts.map +1 -0
  199. package/dist/preview/SheetBannerPreview.d.ts.map +1 -1
  200. package/dist/preview/StatusPreview.d.ts +2 -0
  201. package/dist/preview/StatusPreview.d.ts.map +1 -0
  202. package/dist/preview/TicketsPreview.d.ts +2 -0
  203. package/dist/preview/TicketsPreview.d.ts.map +1 -0
  204. package/dist/themes/carbide.css +217 -1
  205. package/package.json +5 -1
@@ -1 +1 @@
1
- {"version":3,"file":"AccordionPreview.d.ts","sourceRoot":"","sources":["../../src/preview/AccordionPreview.tsx"],"names":[],"mappings":"AAQA,MAAM,CAAC,OAAO,UAAU,gBAAgB,4CA4BvC"}
1
+ {"version":3,"file":"AccordionPreview.d.ts","sourceRoot":"","sources":["../../src/preview/AccordionPreview.tsx"],"names":[],"mappings":"AAaA,MAAM,CAAC,OAAO,UAAU,gBAAgB,4CAsFvC"}
@@ -1 +1 @@
1
- {"version":3,"file":"BreadcrumbPreview.d.ts","sourceRoot":"","sources":["../../src/preview/BreadcrumbPreview.tsx"],"names":[],"mappings":"AAgBA,MAAM,CAAC,OAAO,UAAU,iBAAiB,4CAyMxC"}
1
+ {"version":3,"file":"BreadcrumbPreview.d.ts","sourceRoot":"","sources":["../../src/preview/BreadcrumbPreview.tsx"],"names":[],"mappings":"AAkBA,MAAM,CAAC,OAAO,UAAU,iBAAiB,4CAiOxC"}
@@ -1 +1 @@
1
- {"version":3,"file":"ButtonPreview.d.ts","sourceRoot":"","sources":["../../src/preview/ButtonPreview.tsx"],"names":[],"mappings":"AAIA,MAAM,CAAC,OAAO,UAAU,aAAa,4CA6DpC"}
1
+ {"version":3,"file":"ButtonPreview.d.ts","sourceRoot":"","sources":["../../src/preview/ButtonPreview.tsx"],"names":[],"mappings":"AAYA,MAAM,CAAC,OAAO,UAAU,aAAa,4CA4DpC"}
@@ -1 +1 @@
1
- {"version":3,"file":"CardPreview.d.ts","sourceRoot":"","sources":["../../src/preview/CardPreview.tsx"],"names":[],"mappings":"AAcA,MAAM,CAAC,OAAO,UAAU,WAAW,4CAkMlC"}
1
+ {"version":3,"file":"CardPreview.d.ts","sourceRoot":"","sources":["../../src/preview/CardPreview.tsx"],"names":[],"mappings":"AAeA,MAAM,CAAC,OAAO,UAAU,WAAW,4CAoQlC"}
@@ -1 +1 @@
1
- {"version":3,"file":"CollapsiblePreview.d.ts","sourceRoot":"","sources":["../../src/preview/CollapsiblePreview.tsx"],"names":[],"mappings":"AASA,MAAM,CAAC,OAAO,UAAU,kBAAkB,4CA2BzC"}
1
+ {"version":3,"file":"CollapsiblePreview.d.ts","sourceRoot":"","sources":["../../src/preview/CollapsiblePreview.tsx"],"names":[],"mappings":"AAcA,MAAM,CAAC,OAAO,UAAU,kBAAkB,4CA+CzC"}
@@ -1 +1 @@
1
- {"version":3,"file":"DataTableLimitationsPreview.d.ts","sourceRoot":"","sources":["../../src/preview/DataTableLimitationsPreview.tsx"],"names":[],"mappings":"AAqPA,MAAM,CAAC,OAAO,UAAU,2BAA2B,4CAelD"}
1
+ {"version":3,"file":"DataTableLimitationsPreview.d.ts","sourceRoot":"","sources":["../../src/preview/DataTableLimitationsPreview.tsx"],"names":[],"mappings":"AAoZA,MAAM,CAAC,OAAO,UAAU,2BAA2B,4CAmBlD"}
@@ -1 +1 @@
1
- {"version":3,"file":"DateRangePickerPreview.d.ts","sourceRoot":"","sources":["../../src/preview/DateRangePickerPreview.tsx"],"names":[],"mappings":"AAIA,MAAM,CAAC,OAAO,UAAU,sBAAsB,4CAsB7C"}
1
+ {"version":3,"file":"DateRangePickerPreview.d.ts","sourceRoot":"","sources":["../../src/preview/DateRangePickerPreview.tsx"],"names":[],"mappings":"AAkCA,MAAM,CAAC,OAAO,UAAU,sBAAsB,4CAsE7C"}
@@ -0,0 +1,2 @@
1
+ export default function KanbanPreview(): import("react/jsx-runtime").JSX.Element;
2
+ //# sourceMappingURL=KanbanPreview.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"KanbanPreview.d.ts","sourceRoot":"","sources":["../../src/preview/KanbanPreview.tsx"],"names":[],"mappings":"AAuEA,MAAM,CAAC,OAAO,UAAU,aAAa,4CAsDpC"}
@@ -1 +1 @@
1
- {"version":3,"file":"SheetBannerPreview.d.ts","sourceRoot":"","sources":["../../src/preview/SheetBannerPreview.tsx"],"names":[],"mappings":"AAIA,MAAM,CAAC,OAAO,UAAU,kBAAkB,4CAkEzC"}
1
+ {"version":3,"file":"SheetBannerPreview.d.ts","sourceRoot":"","sources":["../../src/preview/SheetBannerPreview.tsx"],"names":[],"mappings":"AAUA,MAAM,CAAC,OAAO,UAAU,kBAAkB,4CAkFzC"}
@@ -0,0 +1,2 @@
1
+ export default function StatusPreview(): import("react/jsx-runtime").JSX.Element;
2
+ //# sourceMappingURL=StatusPreview.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"StatusPreview.d.ts","sourceRoot":"","sources":["../../src/preview/StatusPreview.tsx"],"names":[],"mappings":"AAeA,MAAM,CAAC,OAAO,UAAU,aAAa,4CA+DpC"}
@@ -0,0 +1,2 @@
1
+ export default function TicketsPreview(): import("react/jsx-runtime").JSX.Element;
2
+ //# sourceMappingURL=TicketsPreview.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"TicketsPreview.d.ts","sourceRoot":"","sources":["../../src/preview/TicketsPreview.tsx"],"names":[],"mappings":"AAmSA,MAAM,CAAC,OAAO,UAAU,cAAc,4CAmErC"}
@@ -360,9 +360,18 @@
360
360
  --tablehead-fg: var(--foreground);
361
361
  --tablehead-border: var(--grey-300);
362
362
 
363
+ /* =============================
364
+ CARD: SECTIONED MUTED BANDS
365
+ (CardHeader / CardContent / CardFooter tone="muted")
366
+ Stronger than bg-muted/x on white card — see ui/card.tsx
367
+ ============================= */
368
+ --card-section-muted-header-bg: var(--grey-150);
369
+ --card-section-muted-content-bg: var(--grey-100);
370
+ --card-section-muted-footer-bg: var(--grey-150);
371
+
363
372
  /* =============================
364
373
  BUTTONS
365
- ============================= */
374
+ ============================= */
366
375
  --button-secondary-bg: transparent;
367
376
  --button-secondary-border: var(--grey-700);
368
377
  --button-secondary-hover-bg: var(--grey-150);
@@ -396,6 +405,37 @@
396
405
  --code-bg: color-mix(in srgb, var(--brand-green) 18%, transparent);
397
406
  --code-fg: var(--brand-green);
398
407
  --code-border: transparent;
408
+
409
+ /* =============================
410
+ SEMANTIC STATUS INTENTS (LIGHT)
411
+ ============================= */
412
+ /* Five intents an author picks by meaning: success / warning / danger / info /
413
+ unknown. `-bg`/`-fg`/`-border` clothe a filled chip; `-solid` is the
414
+ saturated fill for bars and dots on a page background. */
415
+ --status-success-bg: var(--green-200);
416
+ --status-success-fg: var(--green-800);
417
+ --status-success-border: var(--green-300);
418
+ --status-success-solid: var(--green-600);
419
+
420
+ --status-warning-bg: var(--orange-200);
421
+ --status-warning-fg: var(--orange-800);
422
+ --status-warning-border: var(--orange-300);
423
+ --status-warning-solid: var(--orange-500);
424
+
425
+ --status-danger-bg: var(--red-200);
426
+ --status-danger-fg: var(--red-800);
427
+ --status-danger-border: var(--red-300);
428
+ --status-danger-solid: var(--red-600);
429
+
430
+ --status-info-bg: var(--indigo-200);
431
+ --status-info-fg: var(--indigo-800);
432
+ --status-info-border: var(--indigo-300);
433
+ --status-info-solid: var(--indigo-600);
434
+
435
+ --status-unknown-bg: var(--grey-200);
436
+ --status-unknown-fg: var(--grey-700);
437
+ --status-unknown-border: var(--grey-500);
438
+ --status-unknown-solid: var(--grey-500);
399
439
  }
400
440
 
401
441
  /* =============================
@@ -586,6 +626,75 @@
586
626
 
587
627
  /* variant="custom": intentionally no color rules here — consumers style via className / own CSS */
588
628
 
629
+ /* =============================
630
+ SEMANTIC STATUS INTENTS
631
+ Consumed by StatusBadge / StatusProgress via `data-status-intent`.
632
+ ============================= */
633
+ .carbide [data-status-intent='success'] {
634
+ --status-bg: var(--status-success-bg);
635
+ --status-fg: var(--status-success-fg);
636
+ --status-border: var(--status-success-border);
637
+ --status-solid: var(--status-success-solid);
638
+ }
639
+ .carbide [data-status-intent='warning'] {
640
+ --status-bg: var(--status-warning-bg);
641
+ --status-fg: var(--status-warning-fg);
642
+ --status-border: var(--status-warning-border);
643
+ --status-solid: var(--status-warning-solid);
644
+ }
645
+ .carbide [data-status-intent='danger'] {
646
+ --status-bg: var(--status-danger-bg);
647
+ --status-fg: var(--status-danger-fg);
648
+ --status-border: var(--status-danger-border);
649
+ --status-solid: var(--status-danger-solid);
650
+ }
651
+ .carbide [data-status-intent='info'] {
652
+ --status-bg: var(--status-info-bg);
653
+ --status-fg: var(--status-info-fg);
654
+ --status-border: var(--status-info-border);
655
+ --status-solid: var(--status-info-solid);
656
+ }
657
+ .carbide [data-status-intent='unknown'] {
658
+ --status-bg: var(--status-unknown-bg);
659
+ --status-fg: var(--status-unknown-fg);
660
+ --status-border: var(--status-unknown-border);
661
+ --status-solid: var(--status-unknown-solid);
662
+ }
663
+
664
+ .carbide [data-slot='badge'][data-status-intent] {
665
+ background-color: var(--status-bg);
666
+ color: var(--status-fg);
667
+ border-color: var(--status-border);
668
+ }
669
+ /* `unknown` must not read as a muted `danger`: a dashed edge separates the two
670
+ without relying on hue. */
671
+ .carbide [data-slot='badge'][data-status-intent='unknown'] {
672
+ border-style: dashed;
673
+ }
674
+
675
+ .carbide [data-slot='status-progress'] {
676
+ color: var(--status-fg);
677
+ }
678
+
679
+ .carbide [data-slot='progress'][data-status-intent] {
680
+ background-color: var(--status-bg);
681
+ }
682
+ .carbide
683
+ [data-slot='progress'][data-status-intent]
684
+ [data-slot='progress-indicator'] {
685
+ background-color: var(--status-solid);
686
+ }
687
+ /* The generic dark Progress rules further down this file match with equal
688
+ specificity and would otherwise win on source order. */
689
+ .carbide.dark [data-slot='progress'][data-status-intent] {
690
+ background-color: var(--status-bg);
691
+ }
692
+ .carbide.dark
693
+ [data-slot='progress'][data-status-intent]
694
+ [data-slot='progress-indicator'] {
695
+ background-color: var(--status-solid);
696
+ }
697
+
589
698
  /* =============================
590
699
  ALERT VARIANTS
591
700
  ============================= */
@@ -801,6 +910,11 @@
801
910
  --tablehead-fg: var(--foreground);
802
911
  --tablehead-border: var(--grey-600);
803
912
 
913
+ /* Card section bands — distinct from --card in dark */
914
+ --card-section-muted-header-bg: var(--grey-800);
915
+ --card-section-muted-content-bg: color-mix(in srgb, var(--card) 65%, var(--muted) 35%);
916
+ --card-section-muted-footer-bg: var(--grey-800);
917
+
804
918
  /* =============================
805
919
  CODE (TYPOGRAPHY TOKENS - DARK)
806
920
  ============================= */
@@ -808,6 +922,34 @@
808
922
  --code-fg: var(--brand-green);
809
923
  --code-border: transparent;
810
924
 
925
+ /* =============================
926
+ SEMANTIC STATUS INTENTS (DARK)
927
+ ============================= */
928
+ --status-success-bg: var(--green-900);
929
+ --status-success-fg: var(--green-200);
930
+ --status-success-border: var(--green-700);
931
+ --status-success-solid: var(--green-400);
932
+
933
+ --status-warning-bg: var(--orange-900);
934
+ --status-warning-fg: var(--orange-200);
935
+ --status-warning-border: var(--orange-700);
936
+ --status-warning-solid: var(--orange-400);
937
+
938
+ --status-danger-bg: var(--red-900);
939
+ --status-danger-fg: var(--red-200);
940
+ --status-danger-border: var(--red-700);
941
+ --status-danger-solid: var(--red-400);
942
+
943
+ --status-info-bg: var(--indigo-900);
944
+ --status-info-fg: var(--indigo-200);
945
+ --status-info-border: var(--indigo-700);
946
+ --status-info-solid: var(--indigo-400);
947
+
948
+ --status-unknown-bg: var(--grey-800);
949
+ --status-unknown-fg: var(--grey-400);
950
+ --status-unknown-border: var(--grey-600);
951
+ --status-unknown-solid: var(--grey-500);
952
+
811
953
  /* =============================
812
954
  BUTTONS
813
955
  ============================= */
@@ -1533,6 +1675,25 @@ tr
1533
1675
  color: var(--foreground);
1534
1676
  }
1535
1677
 
1678
+ /* Inset accordion: align item chrome with inner rounded surface */
1679
+ .carbide
1680
+ [data-slot='accordion'][data-variant='inset']
1681
+ [data-slot='accordion-item'] {
1682
+ padding-left: 0.25rem;
1683
+ padding-right: 0.25rem;
1684
+ }
1685
+ .carbide
1686
+ [data-slot='accordion'][data-variant='inset']
1687
+ [data-slot='accordion-item']:first-child {
1688
+ border-top-left-radius: var(--radius-md);
1689
+ border-top-right-radius: var(--radius-md);
1690
+ }
1691
+ .carbide
1692
+ [data-slot='accordion'][data-variant='inset']
1693
+ [data-slot='accordion-item']:last-child {
1694
+ border-bottom: none;
1695
+ }
1696
+
1536
1697
  /* =============================
1537
1698
  POPOVER
1538
1699
  ============================= */
@@ -1549,6 +1710,56 @@ tr
1549
1710
  box-shadow: 0 12px 32px rgba(15, 23, 42, 0.45);
1550
1711
  }
1551
1712
 
1713
+ /* =============================
1714
+ DATE RANGE PICKER (FULL VARIANT)
1715
+ ============================= */
1716
+ .carbide [data-slot='date-range-picker-header'] {
1717
+ color: var(--muted-foreground);
1718
+ border-bottom: 1px solid var(--border);
1719
+ }
1720
+ .carbide [data-slot='date-range-picker-presets'] {
1721
+ background-color: color-mix(in srgb, var(--muted) 30%, transparent);
1722
+ border-right: 1px solid var(--border);
1723
+ }
1724
+ .carbide [data-slot='date-range-picker-presets-label'] {
1725
+ font-size: 0.75rem;
1726
+ font-weight: 500;
1727
+ color: var(--muted-foreground);
1728
+ }
1729
+ .carbide [data-slot='date-range-picker-preset'] {
1730
+ color: var(--popover-foreground);
1731
+ }
1732
+ .carbide [data-slot='date-range-picker-preset']:hover {
1733
+ background-color: var(--accent);
1734
+ color: var(--accent-foreground);
1735
+ }
1736
+ .carbide [data-slot='date-range-picker-preset'][data-active='true'] {
1737
+ background-color: var(--primary);
1738
+ color: var(--primary-foreground);
1739
+ }
1740
+ .carbide [data-slot='date-range-picker-preset'][data-active='true']:hover {
1741
+ background-color: color-mix(in srgb, var(--primary) 90%, black);
1742
+ color: var(--primary-foreground);
1743
+ }
1744
+ .carbide [data-slot='date-range-picker-settings'] {
1745
+ border-top: 1px solid var(--border);
1746
+ }
1747
+ .carbide [data-slot='date-range-picker-settings-label'] {
1748
+ color: var(--muted-foreground);
1749
+ }
1750
+ .carbide [data-slot='date-range-picker-info-trigger']:hover {
1751
+ background-color: var(--accent);
1752
+ }
1753
+ .carbide [data-slot='date-range-picker-footer'] {
1754
+ border-top: 1px solid var(--border);
1755
+ }
1756
+ .carbide [data-slot='date-range-picker-footer-summary'] {
1757
+ color: var(--foreground);
1758
+ }
1759
+ .carbide [data-slot='date-range-picker-footer-icon'] {
1760
+ color: var(--muted-foreground);
1761
+ }
1762
+
1552
1763
  /* =============================
1553
1764
  SLIDER (SEMANTIC HOOK)
1554
1765
  ============================= */
@@ -1759,6 +1970,11 @@ tr
1759
1970
  border-radius: 0;
1760
1971
  background-color: transparent;
1761
1972
  }
1973
+ /* No shadow when calendar is embedded in popover or card */
1974
+ .carbide [data-slot='popover-content'] [data-slot='calendar'],
1975
+ .carbide [data-slot='card-content'] [data-slot='calendar'] {
1976
+ box-shadow: none;
1977
+ }
1762
1978
  .carbide [data-slot='calendar'] .rdp-months {
1763
1979
  display: flex;
1764
1980
  gap: 1rem;
package/package.json CHANGED
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "name": "@machinemetrics/mm-react-components",
3
- "version": "1.4.1",
3
+ "version": "1.5.0-0",
4
4
  "description": "Industrial-grade React components for manufacturing applications",
5
5
  "keywords": [
6
6
  "react",
@@ -82,6 +82,7 @@
82
82
  "format": "prettier --write \"src/**/*.{ts,tsx,js,jsx,json,css,md}\"",
83
83
  "format:check": "prettier --check \"src/**/*.{ts,tsx,js,jsx,json,css,md}\"",
84
84
  "test": "playwright test --config=playwright.config.ts --reporter=line",
85
+ "test:unit": "node --import tsx --test src/components/ui/date-range-picker/utils.node.test.ts",
85
86
  "test:ui": "playwright test --config=playwright.config.ts --ui",
86
87
  "test:headed": "playwright test --config=playwright.config.ts --headed",
87
88
  "test:visual": "npm run test:visual:light && npm run test:visual:dark",
@@ -106,6 +107,9 @@
106
107
  "ci:setup": "npm run test:visual:update",
107
108
  "ci:check": "npm run build && npm run test:visual",
108
109
  "check:health": "tsx scripts/check-component-health.ts",
110
+ "check:display-names": "node scripts/check-display-names.mjs",
111
+ "add:display-names": "node scripts/add-display-names.mjs",
112
+ "verify:display-names": "node scripts/check-display-names.mjs --strict",
109
113
  "update-test": "tsx scripts/update-test-workflow.ts",
110
114
  "prepublishOnly": "npm run type-check && npm run lint && npm run build",
111
115
  "clean": "rm -rf dist dev-dist dist-preview"