@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.
- package/CHANGELOG.md +40 -31
- package/README.md +0 -27
- package/agent-docs/agent-documentation-reference.md +13 -106
- package/agent-docs/ai-agent-guide.md +13 -15
- package/agent-docs/ai-agent-init-guide.md +1 -1
- package/agent-docs/chakra-migration-readme.md +7 -6
- package/agent-docs/chakra-migration-troubleshooting.md +8 -8
- package/agent-docs/component-mapping-reference.md +46 -12
- package/agent-docs/{cursor-skill-mm-carbide.md → cursor-skill-components.md} +18 -14
- package/agent-docs/lovable.md +0 -1
- package/dist/README.md +0 -27
- package/dist/components/ui/accordion.d.ts +2 -9
- package/dist/components/ui/accordion.d.ts.map +1 -1
- package/dist/components/ui/alert-dialog.d.ts +2 -11
- package/dist/components/ui/alert-dialog.d.ts.map +1 -1
- package/dist/components/ui/alert.d.ts +3 -4
- package/dist/components/ui/alert.d.ts.map +1 -1
- package/dist/components/ui/avatar.d.ts +1 -5
- package/dist/components/ui/avatar.d.ts.map +1 -1
- package/dist/components/ui/breadcrumb.d.ts +1 -9
- package/dist/components/ui/breadcrumb.d.ts.map +1 -1
- package/dist/components/ui/button.d.ts +1 -7
- package/dist/components/ui/button.d.ts.map +1 -1
- package/dist/components/ui/card.d.ts +3 -25
- package/dist/components/ui/card.d.ts.map +1 -1
- package/dist/components/ui/collapsible.d.ts +1 -22
- package/dist/components/ui/collapsible.d.ts.map +1 -1
- package/dist/components/ui/command.d.ts +0 -3
- package/dist/components/ui/command.d.ts.map +1 -1
- package/dist/components/ui/data-table/pagination.d.ts.map +1 -1
- package/dist/components/ui/data-table/toolbar/DataTableToolbar.d.ts.map +1 -1
- package/dist/components/ui/data-table/toolbar/filters/FilterMenu.d.ts.map +1 -1
- package/dist/components/ui/data-table/toolbar/filters/index.d.ts +0 -2
- package/dist/components/ui/data-table/toolbar/filters/index.d.ts.map +1 -1
- package/dist/components/ui/date-picker.d.ts +1 -8
- package/dist/components/ui/date-picker.d.ts.map +1 -1
- package/dist/components/ui/date-range-picker.d.ts +8 -2
- package/dist/components/ui/date-range-picker.d.ts.map +1 -1
- package/dist/components/ui/dialog.d.ts +2 -12
- package/dist/components/ui/dialog.d.ts.map +1 -1
- package/dist/components/ui/drawer.d.ts +2 -16
- package/dist/components/ui/drawer.d.ts.map +1 -1
- package/dist/components/ui/form.d.ts +1 -19
- package/dist/components/ui/form.d.ts.map +1 -1
- package/dist/components/ui/pagination.d.ts +0 -21
- package/dist/components/ui/pagination.d.ts.map +1 -1
- package/dist/components/ui/popover.d.ts +2 -11
- package/dist/components/ui/popover.d.ts.map +1 -1
- package/dist/components/ui/select.d.ts +2 -10
- package/dist/components/ui/select.d.ts.map +1 -1
- package/dist/components/ui/sheet-banner.d.ts +1 -1
- package/dist/components/ui/sheet-banner.d.ts.map +1 -1
- package/dist/components/ui/sonner.d.ts +1 -4
- package/dist/components/ui/sonner.d.ts.map +1 -1
- package/dist/components/ui/table.d.ts +2 -8
- package/dist/components/ui/table.d.ts.map +1 -1
- package/dist/components/ui/tabs.d.ts +26 -5
- package/dist/components/ui/tabs.d.ts.map +1 -1
- package/dist/components/ui/toggle-group.d.ts +0 -6
- package/dist/components/ui/toggle-group.d.ts.map +1 -1
- package/dist/components/ui/tooltip.d.ts +1 -6
- package/dist/components/ui/tooltip.d.ts.map +1 -1
- package/dist/cursor-skill/components/SKILL.md +231 -0
- package/dist/cursor-skill/components/component-structure.md +33 -0
- package/dist/cursor-skill/components/reference.md +39 -0
- package/dist/cursor-skill/{mm-carbide → components}/widget-rules.md +16 -50
- package/dist/docs/GETTING_STARTED.md +0 -26
- package/dist/index.d.ts +3 -20
- package/dist/index.d.ts.map +1 -1
- package/dist/lib/mm-react-components.css +1 -1
- package/dist/mm-react-components.es.js +816 -971
- package/dist/mm-react-components.es.js.map +1 -1
- package/dist/mm-react-components.umd.js +1 -1
- package/dist/mm-react-components.umd.js.map +1 -1
- package/dist/preview/AccordionPreview.d.ts.map +1 -1
- package/dist/preview/BreadcrumbPreview.d.ts.map +1 -1
- package/dist/preview/ButtonPreview.d.ts.map +1 -1
- package/dist/preview/CardPreview.d.ts.map +1 -1
- package/dist/preview/CollapsiblePreview.d.ts.map +1 -1
- package/dist/preview/DataTableLimitationsPreview.d.ts.map +1 -1
- package/dist/preview/DateRangePickerPreview.d.ts.map +1 -1
- package/dist/preview/SearchInputPreview.d.ts +2 -0
- package/dist/preview/SearchInputPreview.d.ts.map +1 -0
- package/dist/preview/SheetBannerPreview.d.ts.map +1 -1
- package/dist/preview/SimplePaginationPreview.d.ts +2 -0
- package/dist/preview/SimplePaginationPreview.d.ts.map +1 -0
- package/dist/preview/SpinnerCarbidePreview.d.ts +2 -0
- package/dist/preview/SpinnerCarbidePreview.d.ts.map +1 -0
- package/dist/scripts/init.cjs +3 -3
- package/dist/scripts/install-skill.cjs +425 -47
- package/dist/themes/carbide.css +21 -234
- package/package.json +6 -5
- package/agent-docs/tickets-pattern.md +0 -78
- package/dist/components/ui/data-table/toolbar/filters/FilterControl.d.ts +0 -14
- package/dist/components/ui/data-table/toolbar/filters/FilterControl.d.ts.map +0 -1
- package/dist/components/ui/data-table/toolbar/filters/InlineFilterMenu.d.ts +0 -13
- package/dist/components/ui/data-table/toolbar/filters/InlineFilterMenu.d.ts.map +0 -1
- package/dist/components/ui/date-range-picker/get-range-calendar-selected.d.ts +0 -8
- package/dist/components/ui/date-range-picker/get-range-calendar-selected.d.ts.map +0 -1
- package/dist/components/ui/date-range-picker/hooks/use-date-range-picker-state.d.ts +0 -38
- package/dist/components/ui/date-range-picker/hooks/use-date-range-picker-state.d.ts.map +0 -1
- package/dist/components/ui/date-range-picker/index.d.ts +0 -9
- package/dist/components/ui/date-range-picker/index.d.ts.map +0 -1
- package/dist/components/ui/date-range-picker/parts/company-day-settings-row.d.ts +0 -7
- package/dist/components/ui/date-range-picker/parts/company-day-settings-row.d.ts.map +0 -1
- package/dist/components/ui/date-range-picker/parts/custom-hours-selects.d.ts +0 -8
- package/dist/components/ui/date-range-picker/parts/custom-hours-selects.d.ts.map +0 -1
- package/dist/components/ui/date-range-picker/parts/date-range-picker-cancel-apply-buttons.d.ts +0 -10
- package/dist/components/ui/date-range-picker/parts/date-range-picker-cancel-apply-buttons.d.ts.map +0 -1
- package/dist/components/ui/date-range-picker/parts/date-range-picker-clear-button.d.ts +0 -5
- package/dist/components/ui/date-range-picker/parts/date-range-picker-clear-button.d.ts.map +0 -1
- package/dist/components/ui/date-range-picker/parts/date-range-picker-trigger.d.ts +0 -24
- package/dist/components/ui/date-range-picker/parts/date-range-picker-trigger.d.ts.map +0 -1
- package/dist/components/ui/date-range-picker/parts/dual-month-range-calendars.d.ts +0 -15
- package/dist/components/ui/date-range-picker/parts/dual-month-range-calendars.d.ts.map +0 -1
- package/dist/components/ui/date-range-picker/parts/full-variant-header.d.ts +0 -2
- package/dist/components/ui/date-range-picker/parts/full-variant-header.d.ts.map +0 -1
- package/dist/components/ui/date-range-picker/parts/preset-sidebar.d.ts +0 -9
- package/dist/components/ui/date-range-picker/parts/preset-sidebar.d.ts.map +0 -1
- package/dist/components/ui/date-range-picker/parts/range-calendar.d.ts +0 -16
- package/dist/components/ui/date-range-picker/parts/range-calendar.d.ts.map +0 -1
- package/dist/components/ui/date-range-picker/presets.d.ts +0 -34
- package/dist/components/ui/date-range-picker/presets.d.ts.map +0 -1
- package/dist/components/ui/date-range-picker/types.d.ts +0 -29
- package/dist/components/ui/date-range-picker/types.d.ts.map +0 -1
- package/dist/components/ui/date-range-picker/utils.d.ts +0 -24
- package/dist/components/ui/date-range-picker/utils.d.ts.map +0 -1
- package/dist/components/ui/date-range-picker/variants/full.d.ts +0 -11
- package/dist/components/ui/date-range-picker/variants/full.d.ts.map +0 -1
- package/dist/components/ui/date-range-picker/variants/simple.d.ts +0 -9
- package/dist/components/ui/date-range-picker/variants/simple.d.ts.map +0 -1
- package/dist/components/ui/kanban/KanbanBoard.d.ts +0 -8
- package/dist/components/ui/kanban/KanbanBoard.d.ts.map +0 -1
- package/dist/components/ui/kanban/KanbanCard.d.ts +0 -8
- package/dist/components/ui/kanban/KanbanCard.d.ts.map +0 -1
- package/dist/components/ui/kanban/KanbanCardOverlay.d.ts +0 -8
- package/dist/components/ui/kanban/KanbanCardOverlay.d.ts.map +0 -1
- package/dist/components/ui/kanban/KanbanColumn.d.ts +0 -8
- package/dist/components/ui/kanban/KanbanColumn.d.ts.map +0 -1
- package/dist/components/ui/kanban/KanbanContext.d.ts +0 -28
- package/dist/components/ui/kanban/KanbanContext.d.ts.map +0 -1
- package/dist/components/ui/kanban/dragEndUtils.d.ts +0 -26
- package/dist/components/ui/kanban/dragEndUtils.d.ts.map +0 -1
- package/dist/components/ui/kanban/index.d.ts +0 -9
- package/dist/components/ui/kanban/index.d.ts.map +0 -1
- package/dist/components/ui/kanban/types.d.ts +0 -58
- package/dist/components/ui/kanban/types.d.ts.map +0 -1
- package/dist/components/ui/status/index.d.ts +0 -7
- package/dist/components/ui/status/index.d.ts.map +0 -1
- package/dist/components/ui/status/status-badge.d.ts +0 -17
- package/dist/components/ui/status/status-badge.d.ts.map +0 -1
- package/dist/components/ui/status/status-intent.d.ts +0 -21
- package/dist/components/ui/status/status-intent.d.ts.map +0 -1
- package/dist/components/ui/status/status-progress.d.ts +0 -20
- package/dist/components/ui/status/status-progress.d.ts.map +0 -1
- package/dist/components/ui/tabs/index.d.ts +0 -6
- package/dist/components/ui/tabs/index.d.ts.map +0 -1
- package/dist/components/ui/tabs/scroll-tabs-row.d.ts +0 -6
- package/dist/components/ui/tabs/scroll-tabs-row.d.ts.map +0 -1
- package/dist/components/ui/tabs/tabs-constants.d.ts +0 -11
- package/dist/components/ui/tabs/tabs-constants.d.ts.map +0 -1
- package/dist/components/ui/tabs/tabs-content.d.ts +0 -5
- package/dist/components/ui/tabs/tabs-content.d.ts.map +0 -1
- package/dist/components/ui/tabs/tabs-context.d.ts +0 -9
- package/dist/components/ui/tabs/tabs-context.d.ts.map +0 -1
- package/dist/components/ui/tabs/tabs-list-underline.d.ts +0 -7
- package/dist/components/ui/tabs/tabs-list-underline.d.ts.map +0 -1
- package/dist/components/ui/tabs/tabs-list.d.ts +0 -8
- package/dist/components/ui/tabs/tabs-list.d.ts.map +0 -1
- package/dist/components/ui/tabs/tabs-trigger.d.ts +0 -7
- package/dist/components/ui/tabs/tabs-trigger.d.ts.map +0 -1
- package/dist/components/ui/tabs/tabs-variants.d.ts +0 -7
- package/dist/components/ui/tabs/tabs-variants.d.ts.map +0 -1
- package/dist/components/ui/tabs/tabs.d.ts +0 -15
- package/dist/components/ui/tabs/tabs.d.ts.map +0 -1
- package/dist/components/ui/tabs/use-tabs-underline-scroll.d.ts +0 -15
- package/dist/components/ui/tabs/use-tabs-underline-scroll.d.ts.map +0 -1
- package/dist/components/ui/tickets/TicketActivitySection.d.ts +0 -20
- package/dist/components/ui/tickets/TicketActivitySection.d.ts.map +0 -1
- package/dist/components/ui/tickets/TicketDates.d.ts +0 -20
- package/dist/components/ui/tickets/TicketDates.d.ts.map +0 -1
- package/dist/components/ui/tickets/TicketDetailLayout.d.ts +0 -32
- package/dist/components/ui/tickets/TicketDetailLayout.d.ts.map +0 -1
- package/dist/components/ui/tickets/TicketDetails.d.ts +0 -34
- package/dist/components/ui/tickets/TicketDetails.d.ts.map +0 -1
- package/dist/components/ui/tickets/TicketDetailsSidebar.d.ts +0 -21
- package/dist/components/ui/tickets/TicketDetailsSidebar.d.ts.map +0 -1
- package/dist/components/ui/tickets/TicketFieldControl.d.ts +0 -32
- package/dist/components/ui/tickets/TicketFieldControl.d.ts.map +0 -1
- package/dist/components/ui/tickets/TicketForm.d.ts +0 -22
- package/dist/components/ui/tickets/TicketForm.d.ts.map +0 -1
- package/dist/components/ui/tickets/TicketLabels.d.ts +0 -57
- package/dist/components/ui/tickets/TicketLabels.d.ts.map +0 -1
- package/dist/components/ui/tickets/TicketTypes.d.ts +0 -67
- package/dist/components/ui/tickets/TicketTypes.d.ts.map +0 -1
- package/dist/components/ui/tickets/TicketUserSelect.d.ts +0 -17
- package/dist/components/ui/tickets/TicketUserSelect.d.ts.map +0 -1
- package/dist/components/ui/tickets/UserDisplay.d.ts +0 -21
- package/dist/components/ui/tickets/UserDisplay.d.ts.map +0 -1
- package/dist/components/ui/tickets/UserFieldValue.d.ts +0 -24
- package/dist/components/ui/tickets/UserFieldValue.d.ts.map +0 -1
- package/dist/components/ui/tickets/index.d.ts +0 -12
- package/dist/components/ui/tickets/index.d.ts.map +0 -1
- package/dist/cursor-skill/mm-carbide/SKILL.md +0 -84
- package/dist/cursor-skill/mm-carbide/reference.md +0 -71
- package/dist/lib/normalize-host-color-mode.d.ts +0 -6
- package/dist/lib/normalize-host-color-mode.d.ts.map +0 -1
- package/dist/lib/theme-root.d.ts +0 -18
- package/dist/lib/theme-root.d.ts.map +0 -1
- package/dist/lib/use-host-theme.d.ts +0 -15
- package/dist/lib/use-host-theme.d.ts.map +0 -1
- package/dist/lib/with-display-name.d.ts +0 -2
- package/dist/lib/with-display-name.d.ts.map +0 -1
- package/dist/preview/KanbanPreview.d.ts +0 -2
- package/dist/preview/KanbanPreview.d.ts.map +0 -1
- package/dist/preview/StatusPreview.d.ts +0 -2
- package/dist/preview/StatusPreview.d.ts.map +0 -1
- package/dist/preview/TicketsPreview.d.ts +0 -2
- package/dist/preview/TicketsPreview.d.ts.map +0 -1
package/dist/themes/carbide.css
CHANGED
|
@@ -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
|
|
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:
|
|
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"}
|
package/dist/components/ui/date-range-picker/parts/date-range-picker-cancel-apply-buttons.d.ts
DELETED
|
@@ -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
|
package/dist/components/ui/date-range-picker/parts/date-range-picker-cancel-apply-buttons.d.ts.map
DELETED
|
@@ -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"}
|