@machinemetrics/mm-react-components 1.5.0-0 → 1.5.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 (219) hide show
  1. package/CHANGELOG.md +40 -31
  2. package/README.md +0 -27
  3. package/agent-docs/agent-documentation-reference.md +13 -106
  4. package/agent-docs/ai-agent-guide.md +13 -15
  5. package/agent-docs/ai-agent-init-guide.md +1 -1
  6. package/agent-docs/chakra-migration-readme.md +7 -6
  7. package/agent-docs/chakra-migration-troubleshooting.md +8 -8
  8. package/agent-docs/component-mapping-reference.md +46 -12
  9. package/agent-docs/{cursor-skill-mm-carbide.md → cursor-skill-components.md} +18 -14
  10. package/agent-docs/lovable.md +0 -1
  11. package/dist/README.md +0 -27
  12. package/dist/components/ui/accordion.d.ts +2 -9
  13. package/dist/components/ui/accordion.d.ts.map +1 -1
  14. package/dist/components/ui/alert-dialog.d.ts +2 -11
  15. package/dist/components/ui/alert-dialog.d.ts.map +1 -1
  16. package/dist/components/ui/alert.d.ts +3 -4
  17. package/dist/components/ui/alert.d.ts.map +1 -1
  18. package/dist/components/ui/avatar.d.ts +1 -5
  19. package/dist/components/ui/avatar.d.ts.map +1 -1
  20. package/dist/components/ui/breadcrumb.d.ts +1 -9
  21. package/dist/components/ui/breadcrumb.d.ts.map +1 -1
  22. package/dist/components/ui/button.d.ts +1 -7
  23. package/dist/components/ui/button.d.ts.map +1 -1
  24. package/dist/components/ui/card.d.ts +3 -25
  25. package/dist/components/ui/card.d.ts.map +1 -1
  26. package/dist/components/ui/collapsible.d.ts +1 -22
  27. package/dist/components/ui/collapsible.d.ts.map +1 -1
  28. package/dist/components/ui/command.d.ts +0 -3
  29. package/dist/components/ui/command.d.ts.map +1 -1
  30. package/dist/components/ui/data-table/pagination.d.ts.map +1 -1
  31. package/dist/components/ui/data-table/toolbar/DataTableToolbar.d.ts.map +1 -1
  32. package/dist/components/ui/data-table/toolbar/filters/FilterMenu.d.ts.map +1 -1
  33. package/dist/components/ui/data-table/toolbar/filters/index.d.ts +0 -2
  34. package/dist/components/ui/data-table/toolbar/filters/index.d.ts.map +1 -1
  35. package/dist/components/ui/date-picker.d.ts +1 -8
  36. package/dist/components/ui/date-picker.d.ts.map +1 -1
  37. package/dist/components/ui/date-range-picker.d.ts +8 -2
  38. package/dist/components/ui/date-range-picker.d.ts.map +1 -1
  39. package/dist/components/ui/dialog.d.ts +2 -12
  40. package/dist/components/ui/dialog.d.ts.map +1 -1
  41. package/dist/components/ui/drawer.d.ts +2 -16
  42. package/dist/components/ui/drawer.d.ts.map +1 -1
  43. package/dist/components/ui/form.d.ts +1 -19
  44. package/dist/components/ui/form.d.ts.map +1 -1
  45. package/dist/components/ui/pagination.d.ts +0 -21
  46. package/dist/components/ui/pagination.d.ts.map +1 -1
  47. package/dist/components/ui/popover.d.ts +2 -11
  48. package/dist/components/ui/popover.d.ts.map +1 -1
  49. package/dist/components/ui/select.d.ts +2 -10
  50. package/dist/components/ui/select.d.ts.map +1 -1
  51. package/dist/components/ui/sheet-banner.d.ts +1 -1
  52. package/dist/components/ui/sheet-banner.d.ts.map +1 -1
  53. package/dist/components/ui/sonner.d.ts +1 -4
  54. package/dist/components/ui/sonner.d.ts.map +1 -1
  55. package/dist/components/ui/table.d.ts +2 -8
  56. package/dist/components/ui/table.d.ts.map +1 -1
  57. package/dist/components/ui/tabs.d.ts +26 -5
  58. package/dist/components/ui/tabs.d.ts.map +1 -1
  59. package/dist/components/ui/toggle-group.d.ts +0 -6
  60. package/dist/components/ui/toggle-group.d.ts.map +1 -1
  61. package/dist/components/ui/tooltip.d.ts +1 -6
  62. package/dist/components/ui/tooltip.d.ts.map +1 -1
  63. package/dist/cursor-skill/components/SKILL.md +231 -0
  64. package/dist/cursor-skill/components/component-structure.md +33 -0
  65. package/dist/cursor-skill/components/reference.md +39 -0
  66. package/dist/cursor-skill/{mm-carbide → components}/widget-rules.md +16 -50
  67. package/dist/docs/GETTING_STARTED.md +0 -26
  68. package/dist/index.d.ts +3 -20
  69. package/dist/index.d.ts.map +1 -1
  70. package/dist/lib/mm-react-components.css +1 -1
  71. package/dist/mm-react-components.es.js +816 -971
  72. package/dist/mm-react-components.es.js.map +1 -1
  73. package/dist/mm-react-components.umd.js +1 -1
  74. package/dist/mm-react-components.umd.js.map +1 -1
  75. package/dist/preview/AccordionPreview.d.ts.map +1 -1
  76. package/dist/preview/BreadcrumbPreview.d.ts.map +1 -1
  77. package/dist/preview/ButtonPreview.d.ts.map +1 -1
  78. package/dist/preview/CardPreview.d.ts.map +1 -1
  79. package/dist/preview/CollapsiblePreview.d.ts.map +1 -1
  80. package/dist/preview/DataTableLimitationsPreview.d.ts.map +1 -1
  81. package/dist/preview/DateRangePickerPreview.d.ts.map +1 -1
  82. package/dist/preview/SearchInputPreview.d.ts +2 -0
  83. package/dist/preview/SearchInputPreview.d.ts.map +1 -0
  84. package/dist/preview/SheetBannerPreview.d.ts.map +1 -1
  85. package/dist/preview/SimplePaginationPreview.d.ts +2 -0
  86. package/dist/preview/SimplePaginationPreview.d.ts.map +1 -0
  87. package/dist/preview/SpinnerCarbidePreview.d.ts +2 -0
  88. package/dist/preview/SpinnerCarbidePreview.d.ts.map +1 -0
  89. package/dist/scripts/init.cjs +3 -3
  90. package/dist/scripts/install-skill.cjs +425 -47
  91. package/dist/themes/carbide.css +21 -234
  92. package/package.json +6 -5
  93. package/agent-docs/tickets-pattern.md +0 -78
  94. package/dist/components/ui/data-table/toolbar/filters/FilterControl.d.ts +0 -14
  95. package/dist/components/ui/data-table/toolbar/filters/FilterControl.d.ts.map +0 -1
  96. package/dist/components/ui/data-table/toolbar/filters/InlineFilterMenu.d.ts +0 -13
  97. package/dist/components/ui/data-table/toolbar/filters/InlineFilterMenu.d.ts.map +0 -1
  98. package/dist/components/ui/date-range-picker/get-range-calendar-selected.d.ts +0 -8
  99. package/dist/components/ui/date-range-picker/get-range-calendar-selected.d.ts.map +0 -1
  100. package/dist/components/ui/date-range-picker/hooks/use-date-range-picker-state.d.ts +0 -38
  101. package/dist/components/ui/date-range-picker/hooks/use-date-range-picker-state.d.ts.map +0 -1
  102. package/dist/components/ui/date-range-picker/index.d.ts +0 -9
  103. package/dist/components/ui/date-range-picker/index.d.ts.map +0 -1
  104. package/dist/components/ui/date-range-picker/parts/company-day-settings-row.d.ts +0 -7
  105. package/dist/components/ui/date-range-picker/parts/company-day-settings-row.d.ts.map +0 -1
  106. package/dist/components/ui/date-range-picker/parts/custom-hours-selects.d.ts +0 -8
  107. package/dist/components/ui/date-range-picker/parts/custom-hours-selects.d.ts.map +0 -1
  108. package/dist/components/ui/date-range-picker/parts/date-range-picker-cancel-apply-buttons.d.ts +0 -10
  109. package/dist/components/ui/date-range-picker/parts/date-range-picker-cancel-apply-buttons.d.ts.map +0 -1
  110. package/dist/components/ui/date-range-picker/parts/date-range-picker-clear-button.d.ts +0 -5
  111. package/dist/components/ui/date-range-picker/parts/date-range-picker-clear-button.d.ts.map +0 -1
  112. package/dist/components/ui/date-range-picker/parts/date-range-picker-trigger.d.ts +0 -24
  113. package/dist/components/ui/date-range-picker/parts/date-range-picker-trigger.d.ts.map +0 -1
  114. package/dist/components/ui/date-range-picker/parts/dual-month-range-calendars.d.ts +0 -15
  115. package/dist/components/ui/date-range-picker/parts/dual-month-range-calendars.d.ts.map +0 -1
  116. package/dist/components/ui/date-range-picker/parts/full-variant-header.d.ts +0 -2
  117. package/dist/components/ui/date-range-picker/parts/full-variant-header.d.ts.map +0 -1
  118. package/dist/components/ui/date-range-picker/parts/preset-sidebar.d.ts +0 -9
  119. package/dist/components/ui/date-range-picker/parts/preset-sidebar.d.ts.map +0 -1
  120. package/dist/components/ui/date-range-picker/parts/range-calendar.d.ts +0 -16
  121. package/dist/components/ui/date-range-picker/parts/range-calendar.d.ts.map +0 -1
  122. package/dist/components/ui/date-range-picker/presets.d.ts +0 -34
  123. package/dist/components/ui/date-range-picker/presets.d.ts.map +0 -1
  124. package/dist/components/ui/date-range-picker/types.d.ts +0 -29
  125. package/dist/components/ui/date-range-picker/types.d.ts.map +0 -1
  126. package/dist/components/ui/date-range-picker/utils.d.ts +0 -24
  127. package/dist/components/ui/date-range-picker/utils.d.ts.map +0 -1
  128. package/dist/components/ui/date-range-picker/variants/full.d.ts +0 -11
  129. package/dist/components/ui/date-range-picker/variants/full.d.ts.map +0 -1
  130. package/dist/components/ui/date-range-picker/variants/simple.d.ts +0 -9
  131. package/dist/components/ui/date-range-picker/variants/simple.d.ts.map +0 -1
  132. package/dist/components/ui/kanban/KanbanBoard.d.ts +0 -8
  133. package/dist/components/ui/kanban/KanbanBoard.d.ts.map +0 -1
  134. package/dist/components/ui/kanban/KanbanCard.d.ts +0 -8
  135. package/dist/components/ui/kanban/KanbanCard.d.ts.map +0 -1
  136. package/dist/components/ui/kanban/KanbanCardOverlay.d.ts +0 -8
  137. package/dist/components/ui/kanban/KanbanCardOverlay.d.ts.map +0 -1
  138. package/dist/components/ui/kanban/KanbanColumn.d.ts +0 -8
  139. package/dist/components/ui/kanban/KanbanColumn.d.ts.map +0 -1
  140. package/dist/components/ui/kanban/KanbanContext.d.ts +0 -28
  141. package/dist/components/ui/kanban/KanbanContext.d.ts.map +0 -1
  142. package/dist/components/ui/kanban/dragEndUtils.d.ts +0 -26
  143. package/dist/components/ui/kanban/dragEndUtils.d.ts.map +0 -1
  144. package/dist/components/ui/kanban/index.d.ts +0 -9
  145. package/dist/components/ui/kanban/index.d.ts.map +0 -1
  146. package/dist/components/ui/kanban/types.d.ts +0 -58
  147. package/dist/components/ui/kanban/types.d.ts.map +0 -1
  148. package/dist/components/ui/status/index.d.ts +0 -7
  149. package/dist/components/ui/status/index.d.ts.map +0 -1
  150. package/dist/components/ui/status/status-badge.d.ts +0 -17
  151. package/dist/components/ui/status/status-badge.d.ts.map +0 -1
  152. package/dist/components/ui/status/status-intent.d.ts +0 -21
  153. package/dist/components/ui/status/status-intent.d.ts.map +0 -1
  154. package/dist/components/ui/status/status-progress.d.ts +0 -20
  155. package/dist/components/ui/status/status-progress.d.ts.map +0 -1
  156. package/dist/components/ui/tabs/index.d.ts +0 -6
  157. package/dist/components/ui/tabs/index.d.ts.map +0 -1
  158. package/dist/components/ui/tabs/scroll-tabs-row.d.ts +0 -6
  159. package/dist/components/ui/tabs/scroll-tabs-row.d.ts.map +0 -1
  160. package/dist/components/ui/tabs/tabs-constants.d.ts +0 -11
  161. package/dist/components/ui/tabs/tabs-constants.d.ts.map +0 -1
  162. package/dist/components/ui/tabs/tabs-content.d.ts +0 -5
  163. package/dist/components/ui/tabs/tabs-content.d.ts.map +0 -1
  164. package/dist/components/ui/tabs/tabs-context.d.ts +0 -9
  165. package/dist/components/ui/tabs/tabs-context.d.ts.map +0 -1
  166. package/dist/components/ui/tabs/tabs-list-underline.d.ts +0 -7
  167. package/dist/components/ui/tabs/tabs-list-underline.d.ts.map +0 -1
  168. package/dist/components/ui/tabs/tabs-list.d.ts +0 -8
  169. package/dist/components/ui/tabs/tabs-list.d.ts.map +0 -1
  170. package/dist/components/ui/tabs/tabs-trigger.d.ts +0 -7
  171. package/dist/components/ui/tabs/tabs-trigger.d.ts.map +0 -1
  172. package/dist/components/ui/tabs/tabs-variants.d.ts +0 -7
  173. package/dist/components/ui/tabs/tabs-variants.d.ts.map +0 -1
  174. package/dist/components/ui/tabs/tabs.d.ts +0 -15
  175. package/dist/components/ui/tabs/tabs.d.ts.map +0 -1
  176. package/dist/components/ui/tabs/use-tabs-underline-scroll.d.ts +0 -15
  177. package/dist/components/ui/tabs/use-tabs-underline-scroll.d.ts.map +0 -1
  178. package/dist/components/ui/tickets/TicketActivitySection.d.ts +0 -20
  179. package/dist/components/ui/tickets/TicketActivitySection.d.ts.map +0 -1
  180. package/dist/components/ui/tickets/TicketDates.d.ts +0 -20
  181. package/dist/components/ui/tickets/TicketDates.d.ts.map +0 -1
  182. package/dist/components/ui/tickets/TicketDetailLayout.d.ts +0 -32
  183. package/dist/components/ui/tickets/TicketDetailLayout.d.ts.map +0 -1
  184. package/dist/components/ui/tickets/TicketDetails.d.ts +0 -34
  185. package/dist/components/ui/tickets/TicketDetails.d.ts.map +0 -1
  186. package/dist/components/ui/tickets/TicketDetailsSidebar.d.ts +0 -21
  187. package/dist/components/ui/tickets/TicketDetailsSidebar.d.ts.map +0 -1
  188. package/dist/components/ui/tickets/TicketFieldControl.d.ts +0 -32
  189. package/dist/components/ui/tickets/TicketFieldControl.d.ts.map +0 -1
  190. package/dist/components/ui/tickets/TicketForm.d.ts +0 -22
  191. package/dist/components/ui/tickets/TicketForm.d.ts.map +0 -1
  192. package/dist/components/ui/tickets/TicketLabels.d.ts +0 -57
  193. package/dist/components/ui/tickets/TicketLabels.d.ts.map +0 -1
  194. package/dist/components/ui/tickets/TicketTypes.d.ts +0 -67
  195. package/dist/components/ui/tickets/TicketTypes.d.ts.map +0 -1
  196. package/dist/components/ui/tickets/TicketUserSelect.d.ts +0 -17
  197. package/dist/components/ui/tickets/TicketUserSelect.d.ts.map +0 -1
  198. package/dist/components/ui/tickets/UserDisplay.d.ts +0 -21
  199. package/dist/components/ui/tickets/UserDisplay.d.ts.map +0 -1
  200. package/dist/components/ui/tickets/UserFieldValue.d.ts +0 -24
  201. package/dist/components/ui/tickets/UserFieldValue.d.ts.map +0 -1
  202. package/dist/components/ui/tickets/index.d.ts +0 -12
  203. package/dist/components/ui/tickets/index.d.ts.map +0 -1
  204. package/dist/cursor-skill/mm-carbide/SKILL.md +0 -84
  205. package/dist/cursor-skill/mm-carbide/reference.md +0 -71
  206. package/dist/lib/normalize-host-color-mode.d.ts +0 -6
  207. package/dist/lib/normalize-host-color-mode.d.ts.map +0 -1
  208. package/dist/lib/theme-root.d.ts +0 -18
  209. package/dist/lib/theme-root.d.ts.map +0 -1
  210. package/dist/lib/use-host-theme.d.ts +0 -15
  211. package/dist/lib/use-host-theme.d.ts.map +0 -1
  212. package/dist/lib/with-display-name.d.ts +0 -2
  213. package/dist/lib/with-display-name.d.ts.map +0 -1
  214. package/dist/preview/KanbanPreview.d.ts +0 -2
  215. package/dist/preview/KanbanPreview.d.ts.map +0 -1
  216. package/dist/preview/StatusPreview.d.ts +0 -2
  217. package/dist/preview/StatusPreview.d.ts.map +0 -1
  218. package/dist/preview/TicketsPreview.d.ts +0 -2
  219. package/dist/preview/TicketsPreview.d.ts.map +0 -1
@@ -1,11 +1,11 @@
1
1
  /* Note: Font imports are now handled in src/lib/styles.css to avoid @import ordering issues */
2
2
 
3
3
  :root {
4
- --radius: 0.5rem;
5
- --radius-sm: 4px;
6
- --radius-md: calc(var(--radius) - 2px);
7
- --radius-lg: var(--radius);
8
- --radius-xl: calc(var(--radius) + 4px);
4
+ --radius: 0.5rem; /* parity-exempt: theme-invariant radius scale */
5
+ --radius-sm: 4px; /* parity-exempt: theme-invariant radius scale */
6
+ --radius-md: calc(var(--radius) - 2px); /* parity-exempt: theme-invariant radius scale */
7
+ --radius-lg: var(--radius); /* parity-exempt: theme-invariant radius scale */
8
+ --radius-xl: calc(var(--radius) + 4px); /* parity-exempt: theme-invariant radius scale */
9
9
  --background: oklch(1 0 0);
10
10
  --foreground: oklch(0.145 0 0);
11
11
  --card: oklch(1 0 0);
@@ -35,32 +35,35 @@
35
35
  --sidebar-ring: oklch(0.708 0 0);
36
36
 
37
37
  /* Overlay token (base) */
38
+ /* parity-exempt: theme-invariant base — dark handling lives in consumer rules via color-mix */
38
39
  --overlay-bg: rgba(0, 0, 0, 0.8);
39
40
 
40
41
  /* --- Typography tokens (shadcn/ui reference) --- */
42
+ /* parity-exempt: theme-invariant font stack */
41
43
  --font-sans:
42
44
  ui-sans-serif, system-ui, -apple-system, BlinkMacSystemFont, 'Segoe UI',
43
45
  Roboto, 'Helvetica Neue', Arial, 'Noto Sans Variable', sans-serif,
44
46
  'Apple Color Emoji', 'Segoe UI Emoji', 'Segoe UI Symbol', 'Noto Color Emoji';
47
+ /* parity-exempt: theme-invariant font stack */
45
48
  --font-mono:
46
49
  ui-monospace, SFMono-Regular, Menlo, Monaco, Consolas, 'Liberation Mono',
47
50
  'Courier New', monospace;
48
- --font-heading: var(--font-sans);
49
- --font-body: var(--font-sans);
51
+ --font-heading: var(--font-sans); /* parity-exempt: theme-invariant font stack */
52
+ --font-body: var(--font-sans); /* parity-exempt: theme-invariant font stack */
50
53
 
51
- --text-base-size: 1rem; /* 16px */
52
- --text-sm-size: 0.875rem; /* 14px */
53
- --text-lg-size: 1.125rem; /* 18px */
54
+ --text-base-size: 1rem; /* 16px */ /* parity-exempt: theme-invariant type scale */
55
+ --text-sm-size: 0.875rem; /* 14px */ /* parity-exempt: theme-invariant type scale */
56
+ --text-lg-size: 1.125rem; /* 18px */ /* parity-exempt: theme-invariant type scale */
54
57
 
55
- --font-weight-normal: 400;
56
- --font-weight-medium: 500;
57
- --font-weight-bold: 700;
58
+ --font-weight-normal: 400; /* parity-exempt: theme-invariant weight scale */
59
+ --font-weight-medium: 500; /* parity-exempt: theme-invariant weight scale */
60
+ --font-weight-bold: 700; /* parity-exempt: theme-invariant weight scale */
58
61
 
59
- --leading-tight: 1.25;
60
- --leading-normal: 1.5;
62
+ --leading-tight: 1.25; /* parity-exempt: theme-invariant line-height scale */
63
+ --leading-normal: 1.5; /* parity-exempt: theme-invariant line-height scale */
61
64
 
62
- --tracking-tight: -0.015em;
63
- --tracking-normal: 0;
65
+ --tracking-tight: -0.015em; /* parity-exempt: theme-invariant tracking scale */
66
+ --tracking-normal: 0; /* parity-exempt: theme-invariant tracking scale */
64
67
  }
65
68
 
66
69
  .dark {
@@ -360,18 +363,9 @@
360
363
  --tablehead-fg: var(--foreground);
361
364
  --tablehead-border: var(--grey-300);
362
365
 
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
-
372
366
  /* =============================
373
367
  BUTTONS
374
- ============================= */
368
+ ============================= */
375
369
  --button-secondary-bg: transparent;
376
370
  --button-secondary-border: var(--grey-700);
377
371
  --button-secondary-hover-bg: var(--grey-150);
@@ -405,37 +399,6 @@
405
399
  --code-bg: color-mix(in srgb, var(--brand-green) 18%, transparent);
406
400
  --code-fg: var(--brand-green);
407
401
  --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);
439
402
  }
440
403
 
441
404
  /* =============================
@@ -626,75 +589,6 @@
626
589
 
627
590
  /* variant="custom": intentionally no color rules here — consumers style via className / own CSS */
628
591
 
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
-
698
592
  /* =============================
699
593
  ALERT VARIANTS
700
594
  ============================= */
@@ -910,11 +804,6 @@
910
804
  --tablehead-fg: var(--foreground);
911
805
  --tablehead-border: var(--grey-600);
912
806
 
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
-
918
807
  /* =============================
919
808
  CODE (TYPOGRAPHY TOKENS - DARK)
920
809
  ============================= */
@@ -922,34 +811,6 @@
922
811
  --code-fg: var(--brand-green);
923
812
  --code-border: transparent;
924
813
 
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
-
953
814
  /* =============================
954
815
  BUTTONS
955
816
  ============================= */
@@ -1675,25 +1536,6 @@ tr
1675
1536
  color: var(--foreground);
1676
1537
  }
1677
1538
 
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
-
1697
1539
  /* =============================
1698
1540
  POPOVER
1699
1541
  ============================= */
@@ -1710,56 +1552,6 @@ tr
1710
1552
  box-shadow: 0 12px 32px rgba(15, 23, 42, 0.45);
1711
1553
  }
1712
1554
 
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
-
1763
1555
  /* =============================
1764
1556
  SLIDER (SEMANTIC HOOK)
1765
1557
  ============================= */
@@ -1970,11 +1762,6 @@ tr
1970
1762
  border-radius: 0;
1971
1763
  background-color: transparent;
1972
1764
  }
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
- }
1978
1765
  .carbide [data-slot='calendar'] .rdp-months {
1979
1766
  display: flex;
1980
1767
  gap: 1rem;
package/package.json CHANGED
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "name": "@machinemetrics/mm-react-components",
3
- "version": "1.5.0-0",
3
+ "version": "1.5.0",
4
4
  "description": "Industrial-grade React components for manufacturing applications",
5
5
  "keywords": [
6
6
  "react",
@@ -82,7 +82,11 @@
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
+ "test:skill": "node --test \"tests/skill/*.test.mjs\"",
86
+ "check:theme-parity": "node scripts/check-theme-parity.cjs",
87
+ "check:component-artifacts": "node scripts/check-component-artifacts.cjs --all",
88
+ "verify:component": "node scripts/verify-component.cjs",
89
+ "verify": "npm run lint && npm run type-check && npm run test:skill && npm run check:theme-parity && npm run check:component-artifacts && npm run build",
86
90
  "test:ui": "playwright test --config=playwright.config.ts --ui",
87
91
  "test:headed": "playwright test --config=playwright.config.ts --headed",
88
92
  "test:visual": "npm run test:visual:light && npm run test:visual:dark",
@@ -107,9 +111,6 @@
107
111
  "ci:setup": "npm run test:visual:update",
108
112
  "ci:check": "npm run build && npm run test:visual",
109
113
  "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",
113
114
  "update-test": "tsx scripts/update-test-workflow.ts",
114
115
  "prepublishOnly": "npm run type-check && npm run lint && npm run build",
115
116
  "clean": "rm -rf dist dev-dist dist-preview"
@@ -1,78 +0,0 @@
1
- # Ticket pattern (`TicketForm`, `TicketDetails`)
2
-
3
- Carbide-composed UI for configurable work-item fields: form, per-field control, and **detail body** (header with id + title + status/priority/due, main column for description + activity, sticky metadata rail). Same idea as `TicketForm` — **presentation only**: no overlay, open state, or routing inside the library. Your app chooses where it mounts (page, `Sheet`, drawer) and owns visibility.
4
-
5
- ## Quick start
6
-
7
- ```tsx
8
- import {
9
- TicketForm,
10
- TicketDetails,
11
- UserDisplay,
12
- fieldKeyToHeader,
13
- Sheet,
14
- SheetContent,
15
- } from '@machinemetrics/mm-react-components';
16
- import { MyUserSelect } from './MyUserSelect';
17
-
18
- <TicketForm
19
- fieldDefinitions={defs}
20
- onSubmit={(values) => saveTicket(values)}
21
- onCancel={() => navigate(-1)}
22
- getDisplayName={(id) => ...}
23
- getCurrentUser={() => api.getMe()}
24
- userSelectComponent={MyUserSelect}
25
- />;
26
-
27
- <Sheet open={open} onOpenChange={setOpen}>
28
- <SheetContent side="right" className="p-0 flex flex-col ...">
29
- <TicketDetails
30
- ticket={ticket}
31
- ticketFieldDefinitions={ticketDefs}
32
- formFieldDefinitions={formDefs}
33
- getDisplayName={(id) => ...}
34
- usersLoading={loading}
35
- onValuesChange={(next) => updateTicket(ticket.id, next)}
36
- userSelectComponent={MyUserSelect}
37
- comments={comments}
38
- systemEvents={systemEvents}
39
- onPostComment={({ authorUserId, body }) => addComment(...)}
40
- onBack={() => setOpen(false)}
41
- onAddCustomField={() => openAddFieldFlow()}
42
- />
43
- </SheetContent>
44
- </Sheet>;
45
- ```
46
-
47
- ## Types
48
-
49
- Use exported `TicketFieldDefinition`, `Ticket`, `Comment`, `TicketSystemEvent`, and `TicketConfig` for shared shapes between host and UI.
50
-
51
- For **read-only timestamps** (e.g. last updated), use **`type: 'updatedDate'`** on the field — not `text` or `date`. The UI shows a muted read-only line; the host still passes the raw value (typically ISO) on the ticket. Use **`formatTicketTimestampDisplay`** if you render the value elsewhere.
52
-
53
- ## Layout helpers
54
-
55
- `partitionDetailFields` returns `headerFields`, `mainColumnFields`, `sidebarPeopleFields`, `sidebarDateFields`, `sidebarCustomFields`, plus `sidebarFields` (flattened rail list), `mainTopFields` (same as main column / description), and `otherMainFields` (same as custom — legacy names). Use these if you build a custom shell instead of `TicketDetails`.
56
-
57
- ## Activity
58
-
59
- - **Comments** — existing `Comment[]` and `onPostComment`.
60
- - **System events** — optional `TicketSystemEvent[]` (`id`, `createdAt`, `message`) for the **Updates** tab; merged chronologically with comments under **All**.
61
-
62
- ## Copy / i18n
63
-
64
- Pass `labels` (see `TicketFormLabels`, `TicketDetailsLabels`, `TicketFieldControlLabels`) or use `mergeTicketFormLabels` / `mergeTicketDetailsLabels` defaults.
65
-
66
- ## Theming
67
-
68
- Carbide hooks use `data-slot` on ticket surfaces:
69
-
70
- - **`TicketForm`:** `ticket-form` (root form), `ticket-form-readonly-field` (e.g. `updatedDate`, `currentUser` rows).
71
- - **`TicketDetails`:** `ticket-details`, `ticket-details-header`, `ticket-details-main`, `ticket-details-activity`, `ticket-details-sidebar`.
72
- - **`TicketFieldControl`:** `ticket-field-control` wraps each field; primitives inside still expose their own slots (`input`, `date-picker`, etc.).
73
-
74
- See [src/components/ui/tickets/README.md](../src/components/ui/tickets/README.md) for the full table.
75
-
76
- ## See also
77
-
78
- - [src/components/ui/tickets/README.md](../src/components/ui/tickets/README.md) (source tree; also shipped in repo)
@@ -1,14 +0,0 @@
1
- import type * as React from 'react';
2
- import type { RegisteredFilter } from './types';
3
- interface FilterControlProps<TData> {
4
- filter: RegisteredFilter<TData>;
5
- loading?: boolean;
6
- }
7
- /**
8
- * Renders the editing UI for a registered column filter by config type.
9
- * Shared by the filters menu (accordion sections) and inline toolbar filters
10
- * so both placements stay behaviorally identical.
11
- */
12
- export declare function FilterControl<TData>({ filter, loading, }: Readonly<FilterControlProps<TData>>): React.ReactElement | null;
13
- export {};
14
- //# sourceMappingURL=FilterControl.d.ts.map
@@ -1 +0,0 @@
1
- {"version":3,"file":"FilterControl.d.ts","sourceRoot":"","sources":["../../../../../../src/components/ui/data-table/toolbar/filters/FilterControl.tsx"],"names":[],"mappings":"AAAA,OAAO,KAAK,KAAK,KAAK,MAAM,OAAO,CAAC;AACpC,OAAO,KAAK,EAAE,gBAAgB,EAAE,MAAM,SAAS,CAAC;AAMhD,UAAU,kBAAkB,CAAC,KAAK;IAChC,MAAM,EAAE,gBAAgB,CAAC,KAAK,CAAC,CAAC;IAChC,OAAO,CAAC,EAAE,OAAO,CAAC;CACnB;AAED;;;;GAIG;AACH,wBAAgB,aAAa,CAAC,KAAK,EAAE,EACnC,MAAM,EACN,OAAe,GAChB,EAAE,QAAQ,CAAC,kBAAkB,CAAC,KAAK,CAAC,CAAC,GAAG,KAAK,CAAC,YAAY,GAAG,IAAI,CAuBjE"}
@@ -1,13 +0,0 @@
1
- import type { RegisteredFilter } from './types';
2
- interface InlineFilterMenuProps<TData> {
3
- filter: RegisteredFilter<TData>;
4
- loading?: boolean;
5
- }
6
- /**
7
- * Inline toolbar rendering for non-date-range filters (`placement: 'inline'`):
8
- * a labeled trigger in the toolbar's left cluster (sized to match the inline
9
- * date-range picker) opening the same filter control the filters menu uses.
10
- */
11
- export declare function InlineFilterMenu<TData>({ filter, loading, }: Readonly<InlineFilterMenuProps<TData>>): import("react/jsx-runtime").JSX.Element;
12
- export {};
13
- //# sourceMappingURL=InlineFilterMenu.d.ts.map
@@ -1 +0,0 @@
1
- {"version":3,"file":"InlineFilterMenu.d.ts","sourceRoot":"","sources":["../../../../../../src/components/ui/data-table/toolbar/filters/InlineFilterMenu.tsx"],"names":[],"mappings":"AAQA,OAAO,KAAK,EAAE,gBAAgB,EAAE,MAAM,SAAS,CAAC;AAGhD,UAAU,qBAAqB,CAAC,KAAK;IACnC,MAAM,EAAE,gBAAgB,CAAC,KAAK,CAAC,CAAC;IAChC,OAAO,CAAC,EAAE,OAAO,CAAC;CACnB;AAED;;;;GAIG;AACH,wBAAgB,gBAAgB,CAAC,KAAK,EAAE,EACtC,MAAM,EACN,OAAe,GAChB,EAAE,QAAQ,CAAC,qBAAqB,CAAC,KAAK,CAAC,CAAC,2CA8BxC"}
@@ -1,8 +0,0 @@
1
- /**
2
- * Maps draft range + single-date mode to react-day-picker range `selected` for {@link Calendar} mode="range".
3
- */
4
- export declare function getRangeCalendarSelected(draftStart: Date | null, draftEnd: Date | null, allowSingleDate: boolean): {
5
- from: Date | undefined;
6
- to: Date | undefined;
7
- } | undefined;
8
- //# sourceMappingURL=get-range-calendar-selected.d.ts.map
@@ -1 +0,0 @@
1
- {"version":3,"file":"get-range-calendar-selected.d.ts","sourceRoot":"","sources":["../../../../src/components/ui/date-range-picker/get-range-calendar-selected.ts"],"names":[],"mappings":"AAAA;;GAEG;AACH,wBAAgB,wBAAwB,CACtC,UAAU,EAAE,IAAI,GAAG,IAAI,EACvB,QAAQ,EAAE,IAAI,GAAG,IAAI,EACrB,eAAe,EAAE,OAAO,GAEtB;IACE,IAAI,EAAE,IAAI,GAAG,SAAS,CAAC;IACvB,EAAE,EAAE,IAAI,GAAG,SAAS,CAAC;CACtB,GACD,SAAS,CAQZ"}
@@ -1,38 +0,0 @@
1
- import * as React from 'react';
2
- import { type PresetId, type DateRangePreset } from '../presets';
3
- import type { DateRangePickerProps } from '../types';
4
- export type UseDateRangePickerStateParams = Pick<DateRangePickerProps, 'value' | 'onValueChange' | 'allowSingleDate' | 'placeholder' | 'variant' | 'companyStartTime' | 'useCustomHours' | 'onUseCustomHoursChange' | 'customStartTime' | 'customEndTime' | 'onCustomTimeChange' | 'presetIds'>;
5
- export declare function useDateRangePickerState({ value, onValueChange, allowSingleDate, placeholder, variant, companyStartTime, useCustomHours, onUseCustomHoursChange, customStartTime, customEndTime, onCustomTimeChange, presetIds, }: UseDateRangePickerStateParams): {
6
- allowSingleDate: boolean;
7
- valueStart: Date | null;
8
- valueEnd: Date | null;
9
- open: boolean;
10
- setOpen: React.Dispatch<React.SetStateAction<boolean>>;
11
- visibleStartMonth: Date;
12
- visibleEndMonth: Date;
13
- draftStart: Date | null;
14
- draftEnd: Date | null;
15
- activePresetId: PresetId;
16
- effectivePresets: readonly DateRangePreset[];
17
- displayLabel: string;
18
- draftDisplayLabel: string;
19
- canApply: boolean;
20
- handleApply: () => void;
21
- handleClear: () => void;
22
- handlePresetClick: (presetId: PresetId) => void;
23
- handleCalendarSelect: (range: {
24
- from?: Date;
25
- to?: Date;
26
- } | undefined) => void;
27
- handleStartMonthChange: (m: Date) => void;
28
- handleEndMonthChange: (m: Date) => void;
29
- handleSimpleMonthChange: (m: Date) => void;
30
- startTime: string;
31
- endTime: string;
32
- handleStartTimeChange: (v: string) => void;
33
- handleEndTimeChange: (v: string) => void;
34
- companyStartTime: string;
35
- useCustomHours: boolean;
36
- onUseCustomHoursChange: ((checked: boolean) => void) | undefined;
37
- };
38
- //# sourceMappingURL=use-date-range-picker-state.d.ts.map
@@ -1 +0,0 @@
1
- {"version":3,"file":"use-date-range-picker-state.d.ts","sourceRoot":"","sources":["../../../../../src/components/ui/date-range-picker/hooks/use-date-range-picker-state.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,KAAK,MAAM,OAAO,CAAC;AAE/B,OAAO,EAKL,KAAK,QAAQ,EACb,KAAK,eAAe,EACrB,MAAM,YAAY,CAAC;AACpB,OAAO,KAAK,EAAE,oBAAoB,EAAE,MAAM,UAAU,CAAC;AAWrD,MAAM,MAAM,6BAA6B,GAAG,IAAI,CAC9C,oBAAoB,EAClB,OAAO,GACP,eAAe,GACf,iBAAiB,GACjB,aAAa,GACb,SAAS,GACT,kBAAkB,GAClB,gBAAgB,GAChB,wBAAwB,GACxB,iBAAiB,GACjB,eAAe,GACf,oBAAoB,GACpB,WAAW,CACd,CAAC;AAEF,wBAAgB,uBAAuB,CAAC,EACtC,KAAK,EACL,aAAa,EACb,eAAuB,EACvB,WAAiC,EACjC,OAAkB,EAClB,gBAA4B,EAC5B,cAAsB,EACtB,sBAAsB,EACtB,eAAe,EACf,aAAa,EACb,kBAAkB,EAClB,SAAS,GACV,EAAE,6BAA6B;;;;;;;;;;;;;;;;;kCA6HjB,QAAQ;kCAyBX;QAAE,IAAI,CAAC,EAAE,IAAI,CAAC;QAAC,EAAE,CAAC,EAAE,IAAI,CAAA;KAAE,GAAG,SAAS;gCASK,IAAI;8BAMN,IAAI;iCAMD,IAAI;;;+BA9JpD,MAAM;6BAON,MAAM;;;;EAyLb"}
@@ -1,9 +0,0 @@
1
- import type { DateRangePickerProps } from './types';
2
- export type { DateRangePickerProps } from './types';
3
- export { DATE_RANGE_PRESETS, findMatchingPreset, PRESET_IDS, type PresetId, type DateRangePreset, } from './presets';
4
- export { resolvePresets } from './presets';
5
- export declare function DateRangePicker({ value, onValueChange, allowSingleDate, placeholder, className, variant, companyStartTime, useCustomHours, onUseCustomHoursChange, customStartTime, customEndTime, onCustomTimeChange, presetIds, presetLabels, }: DateRangePickerProps): import("react/jsx-runtime").JSX.Element;
6
- export declare namespace DateRangePicker {
7
- var displayName: string;
8
- }
9
- //# sourceMappingURL=index.d.ts.map
@@ -1 +0,0 @@
1
- {"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../../../../src/components/ui/date-range-picker/index.tsx"],"names":[],"mappings":"AACA,OAAO,KAAK,EAAE,oBAAoB,EAAE,MAAM,SAAS,CAAC;AAIpD,YAAY,EAAE,oBAAoB,EAAE,MAAM,SAAS,CAAC;AACpD,OAAO,EACL,kBAAkB,EAClB,kBAAkB,EAClB,UAAU,EACV,KAAK,QAAQ,EACb,KAAK,eAAe,GACrB,MAAM,WAAW,CAAC;AACnB,OAAO,EAAE,cAAc,EAAE,MAAM,WAAW,CAAC;AAE3C,wBAAgB,eAAe,CAAC,EAC9B,KAAK,EACL,aAAa,EACb,eAAuB,EACvB,WAAiC,EACjC,SAAS,EACT,OAAkB,EAClB,gBAA4B,EAC5B,cAAsB,EACtB,sBAAsB,EACtB,eAAe,EACf,aAAa,EACb,kBAAkB,EAClB,SAAS,EACT,YAAY,GACb,EAAE,oBAAoB,2CA2BtB;yBA1Ce,eAAe"}
@@ -1,7 +0,0 @@
1
- export interface CompanyDaySettingsRowProps {
2
- readonly companyStartTime: string;
3
- readonly useCustomHours: boolean;
4
- readonly onUseCustomHoursChange?: (checked: boolean) => void;
5
- }
6
- export declare function CompanyDaySettingsRow({ companyStartTime, useCustomHours, onUseCustomHoursChange, }: CompanyDaySettingsRowProps): import("react/jsx-runtime").JSX.Element;
7
- //# sourceMappingURL=company-day-settings-row.d.ts.map
@@ -1 +0,0 @@
1
- {"version":3,"file":"company-day-settings-row.d.ts","sourceRoot":"","sources":["../../../../../src/components/ui/date-range-picker/parts/company-day-settings-row.tsx"],"names":[],"mappings":"AAWA,MAAM,WAAW,0BAA0B;IACzC,QAAQ,CAAC,gBAAgB,EAAE,MAAM,CAAC;IAClC,QAAQ,CAAC,cAAc,EAAE,OAAO,CAAC;IACjC,QAAQ,CAAC,sBAAsB,CAAC,EAAE,CAAC,OAAO,EAAE,OAAO,KAAK,IAAI,CAAC;CAC9D;AAED,wBAAgB,qBAAqB,CAAC,EACpC,gBAAgB,EAChB,cAAc,EACd,sBAAsB,GACvB,EAAE,0BAA0B,2CA4C5B"}
@@ -1,8 +0,0 @@
1
- export interface CustomHoursSelectsProps {
2
- readonly startTime: string;
3
- readonly endTime: string;
4
- readonly onStartTimeChange: (value: string) => void;
5
- readonly onEndTimeChange: (value: string) => void;
6
- }
7
- export declare function CustomHoursSelects({ startTime, endTime, onStartTimeChange, onEndTimeChange, }: CustomHoursSelectsProps): import("react/jsx-runtime").JSX.Element;
8
- //# sourceMappingURL=custom-hours-selects.d.ts.map
@@ -1 +0,0 @@
1
- {"version":3,"file":"custom-hours-selects.d.ts","sourceRoot":"","sources":["../../../../../src/components/ui/date-range-picker/parts/custom-hours-selects.tsx"],"names":[],"mappings":"AAUA,MAAM,WAAW,uBAAuB;IACtC,QAAQ,CAAC,SAAS,EAAE,MAAM,CAAC;IAC3B,QAAQ,CAAC,OAAO,EAAE,MAAM,CAAC;IACzB,QAAQ,CAAC,iBAAiB,EAAE,CAAC,KAAK,EAAE,MAAM,KAAK,IAAI,CAAC;IACpD,QAAQ,CAAC,eAAe,EAAE,CAAC,KAAK,EAAE,MAAM,KAAK,IAAI,CAAC;CACnD;AAED,wBAAgB,kBAAkB,CAAC,EACjC,SAAS,EACT,OAAO,EACP,iBAAiB,EACjB,eAAe,GAChB,EAAE,uBAAuB,2CAgDzB"}
@@ -1,10 +0,0 @@
1
- export interface DateRangePickerCancelApplyButtonsProps {
2
- readonly onCancel: () => void;
3
- readonly onApply: () => void;
4
- readonly canApply: boolean;
5
- }
6
- /**
7
- * Cancel + Apply — used beside {@link DateRangePickerClearButton} in full variant, or alone in simple (with Clear on the other side).
8
- */
9
- export declare function DateRangePickerCancelApplyButtons({ onCancel, onApply, canApply, }: DateRangePickerCancelApplyButtonsProps): import("react/jsx-runtime").JSX.Element;
10
- //# sourceMappingURL=date-range-picker-cancel-apply-buttons.d.ts.map
@@ -1 +0,0 @@
1
- {"version":3,"file":"date-range-picker-cancel-apply-buttons.d.ts","sourceRoot":"","sources":["../../../../../src/components/ui/date-range-picker/parts/date-range-picker-cancel-apply-buttons.tsx"],"names":[],"mappings":"AAEA,MAAM,WAAW,sCAAsC;IACrD,QAAQ,CAAC,QAAQ,EAAE,MAAM,IAAI,CAAC;IAC9B,QAAQ,CAAC,OAAO,EAAE,MAAM,IAAI,CAAC;IAC7B,QAAQ,CAAC,QAAQ,EAAE,OAAO,CAAC;CAC5B;AAED;;GAEG;AACH,wBAAgB,iCAAiC,CAAC,EAChD,QAAQ,EACR,OAAO,EACP,QAAQ,GACT,EAAE,sCAAsC,2CAWxC"}
@@ -1,5 +0,0 @@
1
- export interface DateRangePickerClearButtonProps {
2
- readonly onClick: () => void;
3
- }
4
- export declare function DateRangePickerClearButton({ onClick, }: DateRangePickerClearButtonProps): import("react/jsx-runtime").JSX.Element;
5
- //# sourceMappingURL=date-range-picker-clear-button.d.ts.map
@@ -1 +0,0 @@
1
- {"version":3,"file":"date-range-picker-clear-button.d.ts","sourceRoot":"","sources":["../../../../../src/components/ui/date-range-picker/parts/date-range-picker-clear-button.tsx"],"names":[],"mappings":"AAEA,MAAM,WAAW,+BAA+B;IAC9C,QAAQ,CAAC,OAAO,EAAE,MAAM,IAAI,CAAC;CAC9B;AAED,wBAAgB,0BAA0B,CAAC,EACzC,OAAO,GACR,EAAE,+BAA+B,2CAYjC"}
@@ -1,24 +0,0 @@
1
- import * as React from 'react';
2
- import { Button } from '@/components/ui/button';
3
- export type DateRangePickerTriggerProps = {
4
- readonly displayLabel: string;
5
- readonly hasValue: boolean;
6
- } & Omit<React.ComponentPropsWithoutRef<typeof Button>, 'variant' | 'type' | 'children'>;
7
- /**
8
- * Shared outline trigger for all DateRangePicker variants.
9
- * Forwards ref and **all other props** to {@link Button} so {@link PopoverTrigger} `asChild`
10
- * can merge click/pointer handlers and ARIA (Radix). A wrapper that only forwarded `ref` breaks
11
- * the popover: the open interaction never reaches the button.
12
- * `data-slot` is set **after** `{...rest}` so shadcn `PopoverTrigger`’s merged `data-slot="popover-trigger"`
13
- * does not override `date-range-picker-trigger` (tests & Carbide).
14
- */
15
- export declare const DateRangePickerTrigger: React.ForwardRefExoticComponent<{
16
- readonly displayLabel: string;
17
- readonly hasValue: boolean;
18
- } & Omit<Omit<Omit<React.ClassAttributes<HTMLButtonElement> & React.ButtonHTMLAttributes<HTMLButtonElement> & import("class-variance-authority").VariantProps<(props?: ({
19
- variant?: "default" | "destructive" | "outline" | "secondary" | "ghost" | "link" | null | undefined;
20
- size?: "default" | "sm" | "lg" | "icon" | "icon-sm" | "icon-lg" | null | undefined;
21
- } & import("class-variance-authority/types").ClassProp) | undefined) => string> & {
22
- asChild?: boolean;
23
- }, "ref"> & React.RefAttributes<HTMLButtonElement>, "ref">, "variant" | "type" | "children"> & React.RefAttributes<HTMLButtonElement>>;
24
- //# sourceMappingURL=date-range-picker-trigger.d.ts.map
@@ -1 +0,0 @@
1
- {"version":3,"file":"date-range-picker-trigger.d.ts","sourceRoot":"","sources":["../../../../../src/components/ui/date-range-picker/parts/date-range-picker-trigger.tsx"],"names":[],"mappings":"AAAA,OAAO,KAAK,KAAK,MAAM,OAAO,CAAC;AAE/B,OAAO,EAAE,MAAM,EAAE,MAAM,wBAAwB,CAAC;AAGhD,MAAM,MAAM,2BAA2B,GAAG;IACxC,QAAQ,CAAC,YAAY,EAAE,MAAM,CAAC;IAC9B,QAAQ,CAAC,QAAQ,EAAE,OAAO,CAAC;CAC5B,GAAG,IAAI,CACN,KAAK,CAAC,wBAAwB,CAAC,OAAO,MAAM,CAAC,EAC7C,SAAS,GAAG,MAAM,GAAG,UAAU,CAChC,CAAC;AAEF;;;;;;;GAOG;AACH,eAAO,MAAM,sBAAsB;2BAfV,MAAM;uBACV,OAAO;;;;;;sIAsC1B,CAAC"}