@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
|
@@ -1,7 +0,0 @@
|
|
|
1
|
-
export declare const tabsListVariants: (props?: ({
|
|
2
|
-
variant?: "default" | "underline" | null | undefined;
|
|
3
|
-
} & import("class-variance-authority/types").ClassProp) | undefined) => string;
|
|
4
|
-
export declare const tabsTriggerVariants: (props?: ({
|
|
5
|
-
variant?: "default" | "underline" | null | undefined;
|
|
6
|
-
} & import("class-variance-authority/types").ClassProp) | undefined) => string;
|
|
7
|
-
//# sourceMappingURL=tabs-variants.d.ts.map
|
|
@@ -1 +0,0 @@
|
|
|
1
|
-
{"version":3,"file":"tabs-variants.d.ts","sourceRoot":"","sources":["../../../../src/components/ui/tabs/tabs-variants.ts"],"names":[],"mappings":"AAEA,eAAO,MAAM,gBAAgB;;8EAU3B,CAAC;AAEH,eAAO,MAAM,mBAAmB;;8EAc/B,CAAC"}
|
|
@@ -1,15 +0,0 @@
|
|
|
1
|
-
import * as React from 'react';
|
|
2
|
-
import * as TabsPrimitive from '@radix-ui/react-tabs';
|
|
3
|
-
interface TabsProps extends React.ComponentProps<typeof TabsPrimitive.Root> {
|
|
4
|
-
/**
|
|
5
|
-
* Shared content to render for all tabs. Can be a ReactNode or a function
|
|
6
|
-
* that receives the current tab value. When provided, this content is rendered
|
|
7
|
-
* instead of individual TabsContent components, and child components can use
|
|
8
|
-
* `useTabsValue()` to access the currently selected tab value.
|
|
9
|
-
*/
|
|
10
|
-
sharedContent?: React.ReactNode | ((value: string | undefined) => React.ReactNode);
|
|
11
|
-
}
|
|
12
|
-
declare function Tabs({ className, sharedContent, value: controlledValue, defaultValue, onValueChange, children, ...props }: Readonly<TabsProps>): import("react/jsx-runtime").JSX.Element;
|
|
13
|
-
export { Tabs };
|
|
14
|
-
export type { TabsProps };
|
|
15
|
-
//# sourceMappingURL=tabs.d.ts.map
|
|
@@ -1 +0,0 @@
|
|
|
1
|
-
{"version":3,"file":"tabs.d.ts","sourceRoot":"","sources":["../../../../src/components/ui/tabs/tabs.tsx"],"names":[],"mappings":"AAAA,OAAO,KAAK,KAAK,MAAM,OAAO,CAAC;AAC/B,OAAO,KAAK,aAAa,MAAM,sBAAsB,CAAC;AAMtD,UAAU,SAAU,SAAQ,KAAK,CAAC,cAAc,CAAC,OAAO,aAAa,CAAC,IAAI,CAAC;IACzE;;;;;OAKG;IACH,aAAa,CAAC,EACV,KAAK,CAAC,SAAS,GACf,CAAC,CAAC,KAAK,EAAE,MAAM,GAAG,SAAS,KAAK,KAAK,CAAC,SAAS,CAAC,CAAC;CACtD;AAED,iBAAS,IAAI,CAAC,EACZ,SAAS,EACT,aAAa,EACb,KAAK,EAAE,eAAe,EACtB,YAAY,EACZ,aAAa,EACb,QAAQ,EACR,GAAG,KAAK,EACT,EAAE,QAAQ,CAAC,SAAS,CAAC,2CAoDrB;AAED,OAAO,EAAE,IAAI,EAAE,CAAC;AAChB,YAAY,EAAE,SAAS,EAAE,CAAC"}
|
|
@@ -1,15 +0,0 @@
|
|
|
1
|
-
import * as React from 'react';
|
|
2
|
-
export type TabsScrollChrome = {
|
|
3
|
-
hasOverflow: boolean;
|
|
4
|
-
canScrollLeft: boolean;
|
|
5
|
-
canScrollRight: boolean;
|
|
6
|
-
};
|
|
7
|
-
/**
|
|
8
|
-
* Scrollport ref, overflow/chevron state, and observers for the underline TabsList.
|
|
9
|
-
*/
|
|
10
|
-
export declare function useTabsUnderlineScroll(variant: 'underline' | 'default' | null | undefined): {
|
|
11
|
-
containerRef: React.RefObject<HTMLDivElement | null>;
|
|
12
|
-
scrollChrome: TabsScrollChrome;
|
|
13
|
-
onChevronClick: (direction: 'left' | 'right') => (e: React.MouseEvent<HTMLButtonElement>) => void;
|
|
14
|
-
};
|
|
15
|
-
//# sourceMappingURL=use-tabs-underline-scroll.d.ts.map
|
|
@@ -1 +0,0 @@
|
|
|
1
|
-
{"version":3,"file":"use-tabs-underline-scroll.d.ts","sourceRoot":"","sources":["../../../../src/components/ui/tabs/use-tabs-underline-scroll.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,KAAK,MAAM,OAAO,CAAC;AAK/B,MAAM,MAAM,gBAAgB,GAAG;IAC7B,WAAW,EAAE,OAAO,CAAC;IACrB,aAAa,EAAE,OAAO,CAAC;IACvB,cAAc,EAAE,OAAO,CAAC;CACzB,CAAC;AAQF;;GAEG;AACH,wBAAgB,sBAAsB,CACpC,OAAO,EAAE,WAAW,GAAG,SAAS,GAAG,IAAI,GAAG,SAAS,GAClD;IACD,YAAY,EAAE,KAAK,CAAC,SAAS,CAAC,cAAc,GAAG,IAAI,CAAC,CAAC;IACrD,YAAY,EAAE,gBAAgB,CAAC;IAC/B,cAAc,EAAE,CACd,SAAS,EAAE,MAAM,GAAG,OAAO,KACxB,CAAC,CAAC,EAAE,KAAK,CAAC,UAAU,CAAC,iBAAiB,CAAC,KAAK,IAAI,CAAC;CACvD,CAiGA"}
|
|
@@ -1,20 +0,0 @@
|
|
|
1
|
-
import React from 'react';
|
|
2
|
-
import type { TicketDetailsLabels } from './TicketLabels';
|
|
3
|
-
import type { Comment, TicketSystemEvent } from './TicketTypes';
|
|
4
|
-
import type { TicketUserSelectComponent } from './TicketUserSelect';
|
|
5
|
-
export interface TicketActivitySectionProps {
|
|
6
|
-
comments: Comment[];
|
|
7
|
-
systemEvents?: TicketSystemEvent[];
|
|
8
|
-
/** Resets the comment draft when the ticket id changes. */
|
|
9
|
-
ticketId: string | undefined;
|
|
10
|
-
getDisplayName: (uid: string) => string;
|
|
11
|
-
usersLoading: boolean;
|
|
12
|
-
userSelectComponent: TicketUserSelectComponent;
|
|
13
|
-
onPostComment: (payload: {
|
|
14
|
-
authorUserId: string;
|
|
15
|
-
body: string;
|
|
16
|
-
}) => void;
|
|
17
|
-
labels: Required<TicketDetailsLabels>;
|
|
18
|
-
}
|
|
19
|
-
export declare function TicketActivitySection({ comments, systemEvents, ticketId, getDisplayName, usersLoading, userSelectComponent: UserSelect, onPostComment, labels, }: Readonly<TicketActivitySectionProps>): React.ReactElement;
|
|
20
|
-
//# sourceMappingURL=TicketActivitySection.d.ts.map
|
|
@@ -1 +0,0 @@
|
|
|
1
|
-
{"version":3,"file":"TicketActivitySection.d.ts","sourceRoot":"","sources":["../../../../src/components/ui/tickets/TicketActivitySection.tsx"],"names":[],"mappings":"AAAA,OAAO,KAAoD,MAAM,OAAO,CAAC;AAMzE,OAAO,KAAK,EAAE,mBAAmB,EAAE,MAAM,gBAAgB,CAAC;AAC1D,OAAO,KAAK,EAAE,OAAO,EAAE,iBAAiB,EAAE,MAAM,eAAe,CAAC;AAChE,OAAO,KAAK,EAAE,yBAAyB,EAAE,MAAM,oBAAoB,CAAC;AA6DpE,MAAM,WAAW,0BAA0B;IACzC,QAAQ,EAAE,OAAO,EAAE,CAAC;IACpB,YAAY,CAAC,EAAE,iBAAiB,EAAE,CAAC;IACnC,2DAA2D;IAC3D,QAAQ,EAAE,MAAM,GAAG,SAAS,CAAC;IAC7B,cAAc,EAAE,CAAC,GAAG,EAAE,MAAM,KAAK,MAAM,CAAC;IACxC,YAAY,EAAE,OAAO,CAAC;IACtB,mBAAmB,EAAE,yBAAyB,CAAC;IAC/C,aAAa,EAAE,CAAC,OAAO,EAAE;QAAE,YAAY,EAAE,MAAM,CAAC;QAAC,IAAI,EAAE,MAAM,CAAA;KAAE,KAAK,IAAI,CAAC;IACzE,MAAM,EAAE,QAAQ,CAAC,mBAAmB,CAAC,CAAC;CACvC;AAED,wBAAgB,qBAAqB,CAAC,EACpC,QAAQ,EACR,YAAY,EACZ,QAAQ,EACR,cAAc,EACd,YAAY,EACZ,mBAAmB,EAAE,UAAU,EAC/B,aAAa,EACb,MAAM,GACP,EAAE,QAAQ,CAAC,0BAA0B,CAAC,GAAG,KAAK,CAAC,YAAY,CA2J3D"}
|
|
@@ -1,20 +0,0 @@
|
|
|
1
|
-
/**
|
|
2
|
-
* Parse `YYYY-MM-DD` as a local calendar date (avoids UTC shift from `Date` string parsing).
|
|
3
|
-
*/
|
|
4
|
-
export declare function parseTicketDateString(iso: string): Date | undefined;
|
|
5
|
-
/** Format a local `Date` as `YYYY-MM-DD` for ticket field storage. */
|
|
6
|
-
export declare function formatTicketDateString(d: Date): string;
|
|
7
|
-
/**
|
|
8
|
-
* Format an ISO date string for display (e.g. "Mar 1, 2024, 2:00 PM").
|
|
9
|
-
*/
|
|
10
|
-
export declare function formatCreationDate(createdAt: string): string;
|
|
11
|
-
/**
|
|
12
|
-
* Read-only display for `updatedDate` and similar: `YYYY-MM-DD` (local) or parseable ISO datetimes.
|
|
13
|
-
*/
|
|
14
|
-
export declare function formatTicketTimestampDisplay(raw: string): string;
|
|
15
|
-
/**
|
|
16
|
-
* Format relative time from createdAt to now (e.g. "2 days ago").
|
|
17
|
-
* Accepts optional now for tests.
|
|
18
|
-
*/
|
|
19
|
-
export declare function formatRelativeTime(createdAt: string, now?: Date): string;
|
|
20
|
-
//# sourceMappingURL=TicketDates.d.ts.map
|
|
@@ -1 +0,0 @@
|
|
|
1
|
-
{"version":3,"file":"TicketDates.d.ts","sourceRoot":"","sources":["../../../../src/components/ui/tickets/TicketDates.ts"],"names":[],"mappings":"AAAA;;GAEG;AACH,wBAAgB,qBAAqB,CAAC,GAAG,EAAE,MAAM,GAAG,IAAI,GAAG,SAAS,CAenE;AAED,sEAAsE;AACtE,wBAAgB,sBAAsB,CAAC,CAAC,EAAE,IAAI,GAAG,MAAM,CAKtD;AAED;;GAEG;AACH,wBAAgB,kBAAkB,CAAC,SAAS,EAAE,MAAM,GAAG,MAAM,CAK5D;AAED;;GAEG;AACH,wBAAgB,4BAA4B,CAAC,GAAG,EAAE,MAAM,GAAG,MAAM,CAYhE;AAED;;;GAGG;AACH,wBAAgB,kBAAkB,CAChC,SAAS,EAAE,MAAM,EACjB,GAAG,GAAE,IAAiB,GACrB,MAAM,CAaR"}
|
|
@@ -1,32 +0,0 @@
|
|
|
1
|
-
import type { TicketFieldDefinition } from './TicketTypes';
|
|
2
|
-
/** Converts a field key to a short display label (e.g. "submittedBy" → "Submitted By"). */
|
|
3
|
-
export declare function fieldKeyToHeader(key: string): string;
|
|
4
|
-
/** Merge form + ticket definitions (form wins on key), non-hidden, exclude comment, sorted by order. */
|
|
5
|
-
export declare function getMergedDetailFields(form: TicketFieldDefinition[], ticket: TicketFieldDefinition[]): TicketFieldDefinition[];
|
|
6
|
-
export interface PartitionDetailFieldsResult {
|
|
7
|
-
/** Status, priority, due — header metadata row. */
|
|
8
|
-
headerFields: TicketFieldDefinition[];
|
|
9
|
-
/** Description only (title is handled separately in the shell). */
|
|
10
|
-
mainColumnFields: TicketFieldDefinition[];
|
|
11
|
-
/** Owner, submitter, assignee, etc. */
|
|
12
|
-
sidebarPeopleFields: TicketFieldDefinition[];
|
|
13
|
-
/** Created, updated, age, etc. (excludes due — that lives in `headerFields`). */
|
|
14
|
-
sidebarDateFields: TicketFieldDefinition[];
|
|
15
|
-
/** Remaining fields for the right-rail “Custom fields” block. */
|
|
16
|
-
sidebarCustomFields: TicketFieldDefinition[];
|
|
17
|
-
/**
|
|
18
|
-
* Backward-compatible flat list: people, then dates, then custom (each group sorted by `order`).
|
|
19
|
-
* Does not include header fields or description/title.
|
|
20
|
-
*/
|
|
21
|
-
sidebarFields: TicketFieldDefinition[];
|
|
22
|
-
/** @deprecated Use `mainColumnFields` — description fields only. */
|
|
23
|
-
mainTopFields: TicketFieldDefinition[];
|
|
24
|
-
/** @deprecated Use `sidebarCustomFields` — same entries; previously rendered in the main column. */
|
|
25
|
-
otherMainFields: TicketFieldDefinition[];
|
|
26
|
-
}
|
|
27
|
-
/**
|
|
28
|
-
* Partitions merged detail field definitions for the narrative + metadata ticket layout.
|
|
29
|
-
* Title and comment types are omitted from all buckets (title shell + activity are separate).
|
|
30
|
-
*/
|
|
31
|
-
export declare function partitionDetailFields(fields: TicketFieldDefinition[]): PartitionDetailFieldsResult;
|
|
32
|
-
//# sourceMappingURL=TicketDetailLayout.d.ts.map
|
|
@@ -1 +0,0 @@
|
|
|
1
|
-
{"version":3,"file":"TicketDetailLayout.d.ts","sourceRoot":"","sources":["../../../../src/components/ui/tickets/TicketDetailLayout.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,EAAE,qBAAqB,EAAE,MAAM,eAAe,CAAC;AAiD3D,2FAA2F;AAC3F,wBAAgB,gBAAgB,CAAC,GAAG,EAAE,MAAM,GAAG,MAAM,CAKpD;AAED,wGAAwG;AACxG,wBAAgB,qBAAqB,CACnC,IAAI,EAAE,qBAAqB,EAAE,EAC7B,MAAM,EAAE,qBAAqB,EAAE,GAC9B,qBAAqB,EAAE,CASzB;AAED,MAAM,WAAW,2BAA2B;IAC1C,mDAAmD;IACnD,YAAY,EAAE,qBAAqB,EAAE,CAAC;IACtC,mEAAmE;IACnE,gBAAgB,EAAE,qBAAqB,EAAE,CAAC;IAC1C,uCAAuC;IACvC,mBAAmB,EAAE,qBAAqB,EAAE,CAAC;IAC7C,iFAAiF;IACjF,iBAAiB,EAAE,qBAAqB,EAAE,CAAC;IAC3C,iEAAiE;IACjE,mBAAmB,EAAE,qBAAqB,EAAE,CAAC;IAC7C;;;OAGG;IACH,aAAa,EAAE,qBAAqB,EAAE,CAAC;IACvC,oEAAoE;IACpE,aAAa,EAAE,qBAAqB,EAAE,CAAC;IACvC,oGAAoG;IACpG,eAAe,EAAE,qBAAqB,EAAE,CAAC;CAC1C;AAED;;;GAGG;AACH,wBAAgB,qBAAqB,CACnC,MAAM,EAAE,qBAAqB,EAAE,GAC9B,2BAA2B,CA0C7B"}
|
|
@@ -1,34 +0,0 @@
|
|
|
1
|
-
import React from 'react';
|
|
2
|
-
import { type TicketDetailsLabels } from './TicketLabels';
|
|
3
|
-
import type { Comment, Ticket, TicketFieldDefinition, TicketSystemEvent } from './TicketTypes';
|
|
4
|
-
import type { TicketUserSelectComponent } from './TicketUserSelect';
|
|
5
|
-
export interface TicketDetailsProps {
|
|
6
|
-
ticket?: Ticket | null;
|
|
7
|
-
ticketFieldDefinitions?: TicketFieldDefinition[];
|
|
8
|
-
formFieldDefinitions?: TicketFieldDefinition[];
|
|
9
|
-
allowEditing?: boolean;
|
|
10
|
-
getDisplayName: (uid: string) => string;
|
|
11
|
-
usersLoading?: boolean;
|
|
12
|
-
/**
|
|
13
|
-
* Called whenever a field value changes; host persists (e.g. updateTicket).
|
|
14
|
-
* Receives the full next values map for all editable detail fields. Derived
|
|
15
|
-
* read-only fields (`creationDate`, `ticketAge`) are display-only and never
|
|
16
|
-
* included in the payload.
|
|
17
|
-
*/
|
|
18
|
-
onValuesChange: (nextValues: Record<string, string>) => void;
|
|
19
|
-
userSelectComponent: TicketUserSelectComponent;
|
|
20
|
-
comments: Comment[];
|
|
21
|
-
/** Timeline entries shown under Activity → Updates. */
|
|
22
|
-
systemEvents?: TicketSystemEvent[];
|
|
23
|
-
onPostComment: (payload: {
|
|
24
|
-
authorUserId: string;
|
|
25
|
-
body: string;
|
|
26
|
-
}) => void;
|
|
27
|
-
/** When set, shows a back control in the header. */
|
|
28
|
-
onBack?: () => void;
|
|
29
|
-
/** When set, shows "Add field" in the custom-fields section. */
|
|
30
|
-
onAddCustomField?: () => void;
|
|
31
|
-
labels?: TicketDetailsLabels;
|
|
32
|
-
}
|
|
33
|
-
export declare function TicketDetails({ ticket, ticketFieldDefinitions, formFieldDefinitions, allowEditing, getDisplayName, usersLoading, onValuesChange, userSelectComponent, comments, systemEvents, onPostComment, onBack, onAddCustomField, labels: labelsProp, }: Readonly<TicketDetailsProps>): React.ReactElement;
|
|
34
|
-
//# sourceMappingURL=TicketDetails.d.ts.map
|
|
@@ -1 +0,0 @@
|
|
|
1
|
-
{"version":3,"file":"TicketDetails.d.ts","sourceRoot":"","sources":["../../../../src/components/ui/tickets/TicketDetails.tsx"],"names":[],"mappings":"AAAA,OAAO,KAAoD,MAAM,OAAO,CAAC;AAKzE,OAAO,EAEL,KAAK,mBAAmB,EACzB,MAAM,gBAAgB,CAAC;AAQxB,OAAO,KAAK,EACV,OAAO,EACP,MAAM,EACN,qBAAqB,EACrB,iBAAiB,EAClB,MAAM,eAAe,CAAC;AACvB,OAAO,KAAK,EAAE,yBAAyB,EAAE,MAAM,oBAAoB,CAAC;AAKpE,MAAM,WAAW,kBAAkB;IACjC,MAAM,CAAC,EAAE,MAAM,GAAG,IAAI,CAAC;IACvB,sBAAsB,CAAC,EAAE,qBAAqB,EAAE,CAAC;IACjD,oBAAoB,CAAC,EAAE,qBAAqB,EAAE,CAAC;IAC/C,YAAY,CAAC,EAAE,OAAO,CAAC;IACvB,cAAc,EAAE,CAAC,GAAG,EAAE,MAAM,KAAK,MAAM,CAAC;IACxC,YAAY,CAAC,EAAE,OAAO,CAAC;IACvB;;;;;OAKG;IACH,cAAc,EAAE,CAAC,UAAU,EAAE,MAAM,CAAC,MAAM,EAAE,MAAM,CAAC,KAAK,IAAI,CAAC;IAC7D,mBAAmB,EAAE,yBAAyB,CAAC;IAC/C,QAAQ,EAAE,OAAO,EAAE,CAAC;IACpB,uDAAuD;IACvD,YAAY,CAAC,EAAE,iBAAiB,EAAE,CAAC;IACnC,aAAa,EAAE,CAAC,OAAO,EAAE;QAAE,YAAY,EAAE,MAAM,CAAC;QAAC,IAAI,EAAE,MAAM,CAAA;KAAE,KAAK,IAAI,CAAC;IACzE,oDAAoD;IACpD,MAAM,CAAC,EAAE,MAAM,IAAI,CAAC;IACpB,gEAAgE;IAChE,gBAAgB,CAAC,EAAE,MAAM,IAAI,CAAC;IAC9B,MAAM,CAAC,EAAE,mBAAmB,CAAC;CAC9B;AAED,wBAAgB,aAAa,CAAC,EAC5B,MAAM,EACN,sBAA2B,EAC3B,oBAAyB,EACzB,YAAmB,EACnB,cAAc,EACd,YAAoB,EACpB,cAAc,EACd,mBAAmB,EACnB,QAAQ,EACR,YAAY,EACZ,aAAa,EACb,MAAM,EACN,gBAAgB,EAChB,MAAM,EAAE,UAAU,GACnB,EAAE,QAAQ,CAAC,kBAAkB,CAAC,GAAG,KAAK,CAAC,YAAY,CAgPnD"}
|
|
@@ -1,21 +0,0 @@
|
|
|
1
|
-
import React from 'react';
|
|
2
|
-
import type { TicketDetailsLabels } from './TicketLabels';
|
|
3
|
-
import type { TicketFieldDefinition } from './TicketTypes';
|
|
4
|
-
import type { TicketUserSelectComponent } from './TicketUserSelect';
|
|
5
|
-
export interface TicketDetailsSidebarProps {
|
|
6
|
-
sidebarPeopleFields: TicketFieldDefinition[];
|
|
7
|
-
sidebarDateFields: TicketFieldDefinition[];
|
|
8
|
-
sidebarCustomFields: TicketFieldDefinition[];
|
|
9
|
-
values: Record<string, string>;
|
|
10
|
-
allowEditing: boolean;
|
|
11
|
-
getDisplayName: (uid: string) => string;
|
|
12
|
-
usersLoading: boolean;
|
|
13
|
-
userSelectComponent: TicketUserSelectComponent;
|
|
14
|
-
onFieldChange: (key: string, value: string) => void;
|
|
15
|
-
onAddCustomField?: () => void;
|
|
16
|
-
labels: Required<TicketDetailsLabels>;
|
|
17
|
-
/** Resets the custom-fields expand state when the ticket changes. */
|
|
18
|
-
ticketId: string | undefined;
|
|
19
|
-
}
|
|
20
|
-
export declare function TicketDetailsSidebar({ sidebarPeopleFields, sidebarDateFields, sidebarCustomFields, values, allowEditing, getDisplayName, usersLoading, userSelectComponent, onFieldChange, onAddCustomField, labels, ticketId, }: Readonly<TicketDetailsSidebarProps>): React.ReactElement;
|
|
21
|
-
//# sourceMappingURL=TicketDetailsSidebar.d.ts.map
|
|
@@ -1 +0,0 @@
|
|
|
1
|
-
{"version":3,"file":"TicketDetailsSidebar.d.ts","sourceRoot":"","sources":["../../../../src/components/ui/tickets/TicketDetailsSidebar.tsx"],"names":[],"mappings":"AAAA,OAAO,KAAuC,MAAM,OAAO,CAAC;AAI5D,OAAO,KAAK,EAAE,mBAAmB,EAAE,MAAM,gBAAgB,CAAC;AAC1D,OAAO,KAAK,EAAE,qBAAqB,EAAE,MAAM,eAAe,CAAC;AAC3D,OAAO,KAAK,EAAE,yBAAyB,EAAE,MAAM,oBAAoB,CAAC;AA0CpE,MAAM,WAAW,yBAAyB;IACxC,mBAAmB,EAAE,qBAAqB,EAAE,CAAC;IAC7C,iBAAiB,EAAE,qBAAqB,EAAE,CAAC;IAC3C,mBAAmB,EAAE,qBAAqB,EAAE,CAAC;IAC7C,MAAM,EAAE,MAAM,CAAC,MAAM,EAAE,MAAM,CAAC,CAAC;IAC/B,YAAY,EAAE,OAAO,CAAC;IACtB,cAAc,EAAE,CAAC,GAAG,EAAE,MAAM,KAAK,MAAM,CAAC;IACxC,YAAY,EAAE,OAAO,CAAC;IACtB,mBAAmB,EAAE,yBAAyB,CAAC;IAC/C,aAAa,EAAE,CAAC,GAAG,EAAE,MAAM,EAAE,KAAK,EAAE,MAAM,KAAK,IAAI,CAAC;IACpD,gBAAgB,CAAC,EAAE,MAAM,IAAI,CAAC;IAC9B,MAAM,EAAE,QAAQ,CAAC,mBAAmB,CAAC,CAAC;IACtC,qEAAqE;IACrE,QAAQ,EAAE,MAAM,GAAG,SAAS,CAAC;CAC9B;AAED,wBAAgB,oBAAoB,CAAC,EACnC,mBAAmB,EACnB,iBAAiB,EACjB,mBAAmB,EACnB,MAAM,EACN,YAAY,EACZ,cAAc,EACd,YAAY,EACZ,mBAAmB,EACnB,aAAa,EACb,gBAAgB,EAChB,MAAM,EACN,QAAQ,GACT,EAAE,QAAQ,CAAC,yBAAyB,CAAC,GAAG,KAAK,CAAC,YAAY,CA2I1D"}
|
|
@@ -1,32 +0,0 @@
|
|
|
1
|
-
import React from 'react';
|
|
2
|
-
import type { TicketFieldDefinition } from './TicketTypes';
|
|
3
|
-
import { type TicketFieldControlLabels } from './TicketLabels';
|
|
4
|
-
import type { TicketUserSelectComponent } from './TicketUserSelect';
|
|
5
|
-
export interface TicketFieldControlProps {
|
|
6
|
-
field: TicketFieldDefinition;
|
|
7
|
-
value: string;
|
|
8
|
-
onChange?: (value: string) => void;
|
|
9
|
-
readOnly: boolean;
|
|
10
|
-
getDisplayName?: (uid: string) => string;
|
|
11
|
-
usersLoading?: boolean;
|
|
12
|
-
inlineEditWithPencil?: boolean;
|
|
13
|
-
displayClassName?: string;
|
|
14
|
-
id?: string;
|
|
15
|
-
/** Injected user picker for `user` and `owner` fields. */
|
|
16
|
-
userSelectComponent: TicketUserSelectComponent;
|
|
17
|
-
labels?: TicketFieldControlLabels;
|
|
18
|
-
/**
|
|
19
|
-
* `inline` — compact controls for the ticket detail header (status, priority, due).
|
|
20
|
-
* Pair with a visible `<Label htmlFor={id}>` from the parent.
|
|
21
|
-
*/
|
|
22
|
-
layout?: 'default' | 'inline';
|
|
23
|
-
}
|
|
24
|
-
/**
|
|
25
|
-
* Renders a single ticket field as read-only text or as an editable control.
|
|
26
|
-
* Comment-type fields are not rendered (handled by the comment section in the sheet).
|
|
27
|
-
*
|
|
28
|
-
* Wraps output in `data-slot="ticket-field-control"` for Carbide theming; inner primitives
|
|
29
|
-
* keep their own slots (e.g. `input`, `date-picker`).
|
|
30
|
-
*/
|
|
31
|
-
export declare function TicketFieldControl({ field, value, onChange, readOnly, getDisplayName, usersLoading, inlineEditWithPencil, displayClassName, id, userSelectComponent: UserSelect, labels: labelsProp, layout, }: Readonly<TicketFieldControlProps>): React.ReactElement | null;
|
|
32
|
-
//# sourceMappingURL=TicketFieldControl.d.ts.map
|
|
@@ -1 +0,0 @@
|
|
|
1
|
-
{"version":3,"file":"TicketFieldControl.d.ts","sourceRoot":"","sources":["../../../../src/components/ui/tickets/TicketFieldControl.tsx"],"names":[],"mappings":"AAAA,OAAO,KAAgC,MAAM,OAAO,CAAC;AAarD,OAAO,KAAK,EAAE,qBAAqB,EAAE,MAAM,eAAe,CAAC;AAO3D,OAAO,EAEL,KAAK,wBAAwB,EAC9B,MAAM,gBAAgB,CAAC;AACxB,OAAO,KAAK,EAAE,yBAAyB,EAAE,MAAM,oBAAoB,CAAC;AAEpE,MAAM,WAAW,uBAAuB;IACtC,KAAK,EAAE,qBAAqB,CAAC;IAC7B,KAAK,EAAE,MAAM,CAAC;IACd,QAAQ,CAAC,EAAE,CAAC,KAAK,EAAE,MAAM,KAAK,IAAI,CAAC;IACnC,QAAQ,EAAE,OAAO,CAAC;IAClB,cAAc,CAAC,EAAE,CAAC,GAAG,EAAE,MAAM,KAAK,MAAM,CAAC;IACzC,YAAY,CAAC,EAAE,OAAO,CAAC;IACvB,oBAAoB,CAAC,EAAE,OAAO,CAAC;IAC/B,gBAAgB,CAAC,EAAE,MAAM,CAAC;IAC1B,EAAE,CAAC,EAAE,MAAM,CAAC;IACZ,0DAA0D;IAC1D,mBAAmB,EAAE,yBAAyB,CAAC;IAC/C,MAAM,CAAC,EAAE,wBAAwB,CAAC;IAClC;;;OAGG;IACH,MAAM,CAAC,EAAE,SAAS,GAAG,QAAQ,CAAC;CAC/B;AAkQD;;;;;;GAMG;AACH,wBAAgB,kBAAkB,CAAC,EACjC,KAAK,EACL,KAAK,EACL,QAAQ,EACR,QAAQ,EACR,cAAc,EACd,YAAoB,EACpB,oBAA4B,EAC5B,gBAAgB,EAChB,EAAE,EACF,mBAAmB,EAAE,UAAU,EAC/B,MAAM,EAAE,UAAU,EAClB,MAAkB,GACnB,EAAE,QAAQ,CAAC,uBAAuB,CAAC,GAAG,KAAK,CAAC,YAAY,GAAG,IAAI,CAgI/D"}
|
|
@@ -1,22 +0,0 @@
|
|
|
1
|
-
import React from 'react';
|
|
2
|
-
import { type TicketFormLabels } from './TicketLabels';
|
|
3
|
-
import type { TicketFieldDefinition } from './TicketTypes';
|
|
4
|
-
import type { TicketUserSelectComponent } from './TicketUserSelect';
|
|
5
|
-
export interface TicketFormProps {
|
|
6
|
-
fieldDefinitions: TicketFieldDefinition[];
|
|
7
|
-
initialValues?: Record<string, string>;
|
|
8
|
-
ticketId?: string;
|
|
9
|
-
onSubmit: (values: Record<string, string>) => void;
|
|
10
|
-
hidePageTitle?: boolean;
|
|
11
|
-
onCancel?: () => void;
|
|
12
|
-
/** Required when `currentUser` fields exist on create. */
|
|
13
|
-
getCurrentUser?: () => Promise<{
|
|
14
|
-
id: string;
|
|
15
|
-
displayName: string;
|
|
16
|
-
} | null>;
|
|
17
|
-
getDisplayName: (uid: string) => string;
|
|
18
|
-
userSelectComponent: TicketUserSelectComponent;
|
|
19
|
-
labels?: TicketFormLabels;
|
|
20
|
-
}
|
|
21
|
-
export declare function TicketForm({ fieldDefinitions, initialValues, ticketId, onSubmit, hidePageTitle, onCancel, getCurrentUser, getDisplayName, userSelectComponent: UserSelect, labels: labelsProp, }: Readonly<TicketFormProps>): React.ReactElement;
|
|
22
|
-
//# sourceMappingURL=TicketForm.d.ts.map
|
|
@@ -1 +0,0 @@
|
|
|
1
|
-
{"version":3,"file":"TicketForm.d.ts","sourceRoot":"","sources":["../../../../src/components/ui/tickets/TicketForm.tsx"],"names":[],"mappings":"AAAA,OAAO,KAAoD,MAAM,OAAO,CAAC;AAoBzE,OAAO,EAAyB,KAAK,gBAAgB,EAAE,MAAM,gBAAgB,CAAC;AAC9E,OAAO,KAAK,EAAE,qBAAqB,EAAE,MAAM,eAAe,CAAC;AAC3D,OAAO,KAAK,EAAE,yBAAyB,EAAE,MAAM,oBAAoB,CAAC;AAMpE,MAAM,WAAW,eAAe;IAC9B,gBAAgB,EAAE,qBAAqB,EAAE,CAAC;IAC1C,aAAa,CAAC,EAAE,MAAM,CAAC,MAAM,EAAE,MAAM,CAAC,CAAC;IACvC,QAAQ,CAAC,EAAE,MAAM,CAAC;IAClB,QAAQ,EAAE,CAAC,MAAM,EAAE,MAAM,CAAC,MAAM,EAAE,MAAM,CAAC,KAAK,IAAI,CAAC;IACnD,aAAa,CAAC,EAAE,OAAO,CAAC;IACxB,QAAQ,CAAC,EAAE,MAAM,IAAI,CAAC;IACtB,0DAA0D;IAC1D,cAAc,CAAC,EAAE,MAAM,OAAO,CAAC;QAAE,EAAE,EAAE,MAAM,CAAC;QAAC,WAAW,EAAE,MAAM,CAAA;KAAE,GAAG,IAAI,CAAC,CAAC;IAC3E,cAAc,EAAE,CAAC,GAAG,EAAE,MAAM,KAAK,MAAM,CAAC;IACxC,mBAAmB,EAAE,yBAAyB,CAAC;IAC/C,MAAM,CAAC,EAAE,gBAAgB,CAAC;CAC3B;AAYD,wBAAgB,UAAU,CAAC,EACzB,gBAAgB,EAChB,aAAa,EACb,QAAQ,EACR,QAAQ,EACR,aAAqB,EACrB,QAAQ,EACR,cAAc,EACd,cAAc,EACd,mBAAmB,EAAE,UAAU,EAC/B,MAAM,EAAE,UAAU,GACnB,EAAE,QAAQ,CAAC,eAAe,CAAC,GAAG,KAAK,CAAC,YAAY,CAwThD"}
|
|
@@ -1,57 +0,0 @@
|
|
|
1
|
-
/** Optional copy for {@link TicketForm}. */
|
|
2
|
-
export interface TicketFormLabels {
|
|
3
|
-
pageTitleNew?: string;
|
|
4
|
-
pageTitleEdit?: string;
|
|
5
|
-
cardSubtitle?: string;
|
|
6
|
-
submit?: string;
|
|
7
|
-
cancel?: string;
|
|
8
|
-
selectPlaceholder?: string;
|
|
9
|
-
enterTitlePlaceholder?: string;
|
|
10
|
-
enterDescriptionPlaceholder?: string;
|
|
11
|
-
commentPlaceholder?: string;
|
|
12
|
-
currentUserLoading?: string;
|
|
13
|
-
currentUserUnavailable?: string;
|
|
14
|
-
requiredError?: string;
|
|
15
|
-
}
|
|
16
|
-
export declare const defaultTicketFormLabels: Required<TicketFormLabels>;
|
|
17
|
-
/** Optional copy for {@link TicketFieldControl} inline edit affordances. */
|
|
18
|
-
export interface TicketFieldControlLabels {
|
|
19
|
-
editTitleAria?: string;
|
|
20
|
-
editDescriptionAria?: string;
|
|
21
|
-
addTitlePlaceholder?: string;
|
|
22
|
-
addDescriptionPlaceholder?: string;
|
|
23
|
-
selectPlaceholder?: string;
|
|
24
|
-
}
|
|
25
|
-
export declare const defaultTicketFieldControlLabels: Required<TicketFieldControlLabels>;
|
|
26
|
-
/** Optional copy for {@link TicketDetails}. */
|
|
27
|
-
export interface TicketDetailsLabels {
|
|
28
|
-
mainDetailsSectionHeading?: string;
|
|
29
|
-
sidebarDetailsHeading?: string;
|
|
30
|
-
sidebarPeopleSectionHeading?: string;
|
|
31
|
-
sidebarDatesSectionHeading?: string;
|
|
32
|
-
sidebarCustomFieldsSectionHeading?: string;
|
|
33
|
-
activityHeading?: string;
|
|
34
|
-
activityTabAll?: string;
|
|
35
|
-
activityTabComments?: string;
|
|
36
|
-
activityTabUpdates?: string;
|
|
37
|
-
noCommentsYet?: string;
|
|
38
|
-
noUpdatesYet?: string;
|
|
39
|
-
noActivityYet?: string;
|
|
40
|
-
commentPlaceholder?: string;
|
|
41
|
-
commentBodyLabel?: string;
|
|
42
|
-
postCommentButton?: string;
|
|
43
|
-
commentAsSrOnly?: string;
|
|
44
|
-
selectUserPlaceholder?: string;
|
|
45
|
-
fallbackTitle?: string;
|
|
46
|
-
backButton?: string;
|
|
47
|
-
backButtonAria?: string;
|
|
48
|
-
ticketIdPrefix?: string;
|
|
49
|
-
showMoreFields?: string;
|
|
50
|
-
showLessFields?: string;
|
|
51
|
-
addCustomField?: string;
|
|
52
|
-
}
|
|
53
|
-
export declare const defaultTicketDetailsLabels: Required<TicketDetailsLabels>;
|
|
54
|
-
export declare function mergeTicketFormLabels(overrides?: TicketFormLabels): Required<TicketFormLabels>;
|
|
55
|
-
export declare function mergeTicketFieldControlLabels(overrides?: TicketFieldControlLabels): Required<TicketFieldControlLabels>;
|
|
56
|
-
export declare function mergeTicketDetailsLabels(overrides?: TicketDetailsLabels): Required<TicketDetailsLabels>;
|
|
57
|
-
//# sourceMappingURL=TicketLabels.d.ts.map
|
|
@@ -1 +0,0 @@
|
|
|
1
|
-
{"version":3,"file":"TicketLabels.d.ts","sourceRoot":"","sources":["../../../../src/components/ui/tickets/TicketLabels.ts"],"names":[],"mappings":"AAAA,4CAA4C;AAC5C,MAAM,WAAW,gBAAgB;IAC/B,YAAY,CAAC,EAAE,MAAM,CAAC;IACtB,aAAa,CAAC,EAAE,MAAM,CAAC;IACvB,YAAY,CAAC,EAAE,MAAM,CAAC;IACtB,MAAM,CAAC,EAAE,MAAM,CAAC;IAChB,MAAM,CAAC,EAAE,MAAM,CAAC;IAChB,iBAAiB,CAAC,EAAE,MAAM,CAAC;IAC3B,qBAAqB,CAAC,EAAE,MAAM,CAAC;IAC/B,2BAA2B,CAAC,EAAE,MAAM,CAAC;IACrC,kBAAkB,CAAC,EAAE,MAAM,CAAC;IAC5B,kBAAkB,CAAC,EAAE,MAAM,CAAC;IAC5B,sBAAsB,CAAC,EAAE,MAAM,CAAC;IAChC,aAAa,CAAC,EAAE,MAAM,CAAC;CACxB;AAED,eAAO,MAAM,uBAAuB,EAAE,QAAQ,CAAC,gBAAgB,CAc9D,CAAC;AAEF,4EAA4E;AAC5E,MAAM,WAAW,wBAAwB;IACvC,aAAa,CAAC,EAAE,MAAM,CAAC;IACvB,mBAAmB,CAAC,EAAE,MAAM,CAAC;IAC7B,mBAAmB,CAAC,EAAE,MAAM,CAAC;IAC7B,yBAAyB,CAAC,EAAE,MAAM,CAAC;IACnC,iBAAiB,CAAC,EAAE,MAAM,CAAC;CAC5B;AAED,eAAO,MAAM,+BAA+B,EAAE,QAAQ,CAAC,wBAAwB,CAO5E,CAAC;AAEJ,+CAA+C;AAC/C,MAAM,WAAW,mBAAmB;IAClC,yBAAyB,CAAC,EAAE,MAAM,CAAC;IACnC,qBAAqB,CAAC,EAAE,MAAM,CAAC;IAC/B,2BAA2B,CAAC,EAAE,MAAM,CAAC;IACrC,0BAA0B,CAAC,EAAE,MAAM,CAAC;IACpC,iCAAiC,CAAC,EAAE,MAAM,CAAC;IAC3C,eAAe,CAAC,EAAE,MAAM,CAAC;IACzB,cAAc,CAAC,EAAE,MAAM,CAAC;IACxB,mBAAmB,CAAC,EAAE,MAAM,CAAC;IAC7B,kBAAkB,CAAC,EAAE,MAAM,CAAC;IAC5B,aAAa,CAAC,EAAE,MAAM,CAAC;IACvB,YAAY,CAAC,EAAE,MAAM,CAAC;IACtB,aAAa,CAAC,EAAE,MAAM,CAAC;IACvB,kBAAkB,CAAC,EAAE,MAAM,CAAC;IAC5B,gBAAgB,CAAC,EAAE,MAAM,CAAC;IAC1B,iBAAiB,CAAC,EAAE,MAAM,CAAC;IAC3B,eAAe,CAAC,EAAE,MAAM,CAAC;IACzB,qBAAqB,CAAC,EAAE,MAAM,CAAC;IAC/B,aAAa,CAAC,EAAE,MAAM,CAAC;IACvB,UAAU,CAAC,EAAE,MAAM,CAAC;IACpB,cAAc,CAAC,EAAE,MAAM,CAAC;IACxB,cAAc,CAAC,EAAE,MAAM,CAAC;IACxB,cAAc,CAAC,EAAE,MAAM,CAAC;IACxB,cAAc,CAAC,EAAE,MAAM,CAAC;IACxB,cAAc,CAAC,EAAE,MAAM,CAAC;CACzB;AAED,eAAO,MAAM,0BAA0B,EAAE,QAAQ,CAAC,mBAAmB,CAyBpE,CAAC;AAEF,wBAAgB,qBAAqB,CACnC,SAAS,CAAC,EAAE,gBAAgB,GAC3B,QAAQ,CAAC,gBAAgB,CAAC,CAE5B;AAED,wBAAgB,6BAA6B,CAC3C,SAAS,CAAC,EAAE,wBAAwB,GACnC,QAAQ,CAAC,wBAAwB,CAAC,CAEpC;AAED,wBAAgB,wBAAwB,CACtC,SAAS,CAAC,EAAE,mBAAmB,GAC9B,QAAQ,CAAC,mBAAmB,CAAC,CAE/B"}
|
|
@@ -1,67 +0,0 @@
|
|
|
1
|
-
/**
|
|
2
|
-
* Configurable field types for generic tickets (Carbide pattern — host owns persistence and APIs).
|
|
3
|
-
*/
|
|
4
|
-
export type TicketFieldType = 'text' | 'textarea' | 'select' | 'date' | 'user' | 'currentUser' | 'comment' | 'title' | 'description' | 'creationDate'
|
|
5
|
-
/** Read-only last-modified (or similar) timestamp; not an input — host supplies ISO or date string on the ticket. */
|
|
6
|
-
| 'updatedDate' | 'ticketAge' | 'owner' | 'creator';
|
|
7
|
-
export interface TicketFieldOption {
|
|
8
|
-
value: string;
|
|
9
|
-
label: string;
|
|
10
|
-
}
|
|
11
|
-
export interface TicketFieldDefinition {
|
|
12
|
-
id: string;
|
|
13
|
-
key: string;
|
|
14
|
-
label: string;
|
|
15
|
-
type: TicketFieldType;
|
|
16
|
-
options?: TicketFieldOption[];
|
|
17
|
-
required: boolean;
|
|
18
|
-
order: number;
|
|
19
|
-
/**
|
|
20
|
-
* When true, hide this field from the table view (form and ticket fields).
|
|
21
|
-
* Does not affect KanBan board column; a field can drive the board and still be visible in the table.
|
|
22
|
-
*/
|
|
23
|
-
hidden?: boolean;
|
|
24
|
-
/** Optional color key per option value for table row indicator (e.g. { "Done": "green" }). */
|
|
25
|
-
valueColors?: Record<string, string>;
|
|
26
|
-
}
|
|
27
|
-
export interface TicketConfig {
|
|
28
|
-
/** Fields shown only on the create/edit form; never in the table. */
|
|
29
|
-
formFieldDefinitions: TicketFieldDefinition[];
|
|
30
|
-
/** Fields shown on the ticket/table/board; hidden = hide from table view only. */
|
|
31
|
-
ticketFieldDefinitions: TicketFieldDefinition[];
|
|
32
|
-
/** Key of the select ticket field whose options define KanBan board column headers. */
|
|
33
|
-
kanbanColumnFieldKey?: string;
|
|
34
|
-
/** When false, editing existing tickets is disabled (create, view, delete still allowed). Default true. */
|
|
35
|
-
allowEditing?: boolean;
|
|
36
|
-
}
|
|
37
|
-
/** A ticket type: one kind of ticket with its own name, config, and tickets. */
|
|
38
|
-
export interface TicketType {
|
|
39
|
-
id: string;
|
|
40
|
-
name: string;
|
|
41
|
-
config: TicketConfig;
|
|
42
|
-
createdAt?: string;
|
|
43
|
-
/** API template id for this type; when set, save/update targets this template. */
|
|
44
|
-
templateId?: number;
|
|
45
|
-
}
|
|
46
|
-
/**
|
|
47
|
-
* Ticket: fixed id + createdAt plus dynamic field values keyed by field key.
|
|
48
|
-
*/
|
|
49
|
-
export interface Ticket {
|
|
50
|
-
id: string;
|
|
51
|
-
createdAt: string;
|
|
52
|
-
[fieldKey: string]: string | undefined;
|
|
53
|
-
}
|
|
54
|
-
/** Comment on a ticket; stored separately from ticket payload. */
|
|
55
|
-
export interface Comment {
|
|
56
|
-
id: string;
|
|
57
|
-
authorUserId: string;
|
|
58
|
-
body: string;
|
|
59
|
-
createdAt: string;
|
|
60
|
-
}
|
|
61
|
-
/** System-generated timeline entry (status changes, assignments, etc.). */
|
|
62
|
-
export interface TicketSystemEvent {
|
|
63
|
-
id: string;
|
|
64
|
-
createdAt: string;
|
|
65
|
-
message: string;
|
|
66
|
-
}
|
|
67
|
-
//# sourceMappingURL=TicketTypes.d.ts.map
|
|
@@ -1 +0,0 @@
|
|
|
1
|
-
{"version":3,"file":"TicketTypes.d.ts","sourceRoot":"","sources":["../../../../src/components/ui/tickets/TicketTypes.ts"],"names":[],"mappings":"AAAA;;GAEG;AACH,MAAM,MAAM,eAAe,GACvB,MAAM,GACN,UAAU,GACV,QAAQ,GACR,MAAM,GACN,MAAM,GACN,aAAa,GACb,SAAS,GACT,OAAO,GACP,aAAa,GACb,cAAc;AAChB,qHAAqH;GACnH,aAAa,GACb,WAAW,GACX,OAAO,GACP,SAAS,CAAC;AAEd,MAAM,WAAW,iBAAiB;IAChC,KAAK,EAAE,MAAM,CAAC;IACd,KAAK,EAAE,MAAM,CAAC;CACf;AAED,MAAM,WAAW,qBAAqB;IACpC,EAAE,EAAE,MAAM,CAAC;IACX,GAAG,EAAE,MAAM,CAAC;IACZ,KAAK,EAAE,MAAM,CAAC;IACd,IAAI,EAAE,eAAe,CAAC;IACtB,OAAO,CAAC,EAAE,iBAAiB,EAAE,CAAC;IAC9B,QAAQ,EAAE,OAAO,CAAC;IAClB,KAAK,EAAE,MAAM,CAAC;IACd;;;OAGG;IACH,MAAM,CAAC,EAAE,OAAO,CAAC;IACjB,8FAA8F;IAC9F,WAAW,CAAC,EAAE,MAAM,CAAC,MAAM,EAAE,MAAM,CAAC,CAAC;CACtC;AAED,MAAM,WAAW,YAAY;IAC3B,qEAAqE;IACrE,oBAAoB,EAAE,qBAAqB,EAAE,CAAC;IAC9C,kFAAkF;IAClF,sBAAsB,EAAE,qBAAqB,EAAE,CAAC;IAChD,uFAAuF;IACvF,oBAAoB,CAAC,EAAE,MAAM,CAAC;IAC9B,2GAA2G;IAC3G,YAAY,CAAC,EAAE,OAAO,CAAC;CACxB;AAED,gFAAgF;AAChF,MAAM,WAAW,UAAU;IACzB,EAAE,EAAE,MAAM,CAAC;IACX,IAAI,EAAE,MAAM,CAAC;IACb,MAAM,EAAE,YAAY,CAAC;IACrB,SAAS,CAAC,EAAE,MAAM,CAAC;IACnB,kFAAkF;IAClF,UAAU,CAAC,EAAE,MAAM,CAAC;CACrB;AAED;;GAEG;AACH,MAAM,WAAW,MAAM;IACrB,EAAE,EAAE,MAAM,CAAC;IACX,SAAS,EAAE,MAAM,CAAC;IAClB,CAAC,QAAQ,EAAE,MAAM,GAAG,MAAM,GAAG,SAAS,CAAC;CACxC;AAED,kEAAkE;AAClE,MAAM,WAAW,OAAO;IACtB,EAAE,EAAE,MAAM,CAAC;IACX,YAAY,EAAE,MAAM,CAAC;IACrB,IAAI,EAAE,MAAM,CAAC;IACb,SAAS,EAAE,MAAM,CAAC;CACnB;AAED,2EAA2E;AAC3E,MAAM,WAAW,iBAAiB;IAChC,EAAE,EAAE,MAAM,CAAC;IACX,SAAS,EAAE,MAAM,CAAC;IAClB,OAAO,EAAE,MAAM,CAAC;CACjB"}
|
|
@@ -1,17 +0,0 @@
|
|
|
1
|
-
import type { ComponentType } from 'react';
|
|
2
|
-
/** Props contract for a user picker injected into ticket field UI (host implements with its API). */
|
|
3
|
-
export interface TicketUserSelectProps {
|
|
4
|
-
value: string | null;
|
|
5
|
-
onChange: (value: string | null) => void;
|
|
6
|
-
placeholder?: string;
|
|
7
|
-
disabled?: boolean;
|
|
8
|
-
id?: string;
|
|
9
|
-
/** Use simple Select inside modals so the dropdown is not clipped. */
|
|
10
|
-
insideModal?: boolean;
|
|
11
|
-
/**
|
|
12
|
-
* When true, value is stored as { uid, displayName } JSON for ticket user fields.
|
|
13
|
-
*/
|
|
14
|
-
userFieldMode?: boolean;
|
|
15
|
-
}
|
|
16
|
-
export type TicketUserSelectComponent = ComponentType<TicketUserSelectProps>;
|
|
17
|
-
//# sourceMappingURL=TicketUserSelect.d.ts.map
|
|
@@ -1 +0,0 @@
|
|
|
1
|
-
{"version":3,"file":"TicketUserSelect.d.ts","sourceRoot":"","sources":["../../../../src/components/ui/tickets/TicketUserSelect.tsx"],"names":[],"mappings":"AAAA,OAAO,KAAK,EAAE,aAAa,EAAE,MAAM,OAAO,CAAC;AAE3C,qGAAqG;AACrG,MAAM,WAAW,qBAAqB;IACpC,KAAK,EAAE,MAAM,GAAG,IAAI,CAAC;IACrB,QAAQ,EAAE,CAAC,KAAK,EAAE,MAAM,GAAG,IAAI,KAAK,IAAI,CAAC;IACzC,WAAW,CAAC,EAAE,MAAM,CAAC;IACrB,QAAQ,CAAC,EAAE,OAAO,CAAC;IACnB,EAAE,CAAC,EAAE,MAAM,CAAC;IACZ,sEAAsE;IACtE,WAAW,CAAC,EAAE,OAAO,CAAC;IACtB;;OAEG;IACH,aAAa,CAAC,EAAE,OAAO,CAAC;CACzB;AAED,MAAM,MAAM,yBAAyB,GAAG,aAAa,CAAC,qBAAqB,CAAC,CAAC"}
|
|
@@ -1,21 +0,0 @@
|
|
|
1
|
-
import React from 'react';
|
|
2
|
-
export interface TicketUserDisplayUser {
|
|
3
|
-
id: string;
|
|
4
|
-
displayName: string;
|
|
5
|
-
}
|
|
6
|
-
export interface UserDisplayProps {
|
|
7
|
-
/** User id to display (e.g. comment author). */
|
|
8
|
-
userId: string | undefined;
|
|
9
|
-
/** Resolve id to display name. If not provided, uses users list. */
|
|
10
|
-
getDisplayName?: (id: string) => string;
|
|
11
|
-
/** When provided without getDisplayName, display name is looked up from this list. */
|
|
12
|
-
users?: TicketUserDisplayUser[];
|
|
13
|
-
/** When true, show a loading placeholder instead of name. */
|
|
14
|
-
loading?: boolean;
|
|
15
|
-
}
|
|
16
|
-
/**
|
|
17
|
-
* Renders a user's display name by id. Use with getDisplayName from your users API
|
|
18
|
-
* or pass a users array.
|
|
19
|
-
*/
|
|
20
|
-
export declare function UserDisplay({ userId, getDisplayName, users, loading, }: Readonly<UserDisplayProps>): React.ReactElement;
|
|
21
|
-
//# sourceMappingURL=UserDisplay.d.ts.map
|
|
@@ -1 +0,0 @@
|
|
|
1
|
-
{"version":3,"file":"UserDisplay.d.ts","sourceRoot":"","sources":["../../../../src/components/ui/tickets/UserDisplay.tsx"],"names":[],"mappings":"AAAA,OAAO,KAAK,MAAM,OAAO,CAAC;AAE1B,MAAM,WAAW,qBAAqB;IACpC,EAAE,EAAE,MAAM,CAAC;IACX,WAAW,EAAE,MAAM,CAAC;CACrB;AAED,MAAM,WAAW,gBAAgB;IAC/B,gDAAgD;IAChD,MAAM,EAAE,MAAM,GAAG,SAAS,CAAC;IAC3B,oEAAoE;IACpE,cAAc,CAAC,EAAE,CAAC,EAAE,EAAE,MAAM,KAAK,MAAM,CAAC;IACxC,sFAAsF;IACtF,KAAK,CAAC,EAAE,qBAAqB,EAAE,CAAC;IAChC,6DAA6D;IAC7D,OAAO,CAAC,EAAE,OAAO,CAAC;CACnB;AAED;;;GAGG;AACH,wBAAgB,WAAW,CAAC,EAC1B,MAAM,EACN,cAAc,EACd,KAAU,EACV,OAAe,GAChB,EAAE,QAAQ,CAAC,gBAAgB,CAAC,GAAG,KAAK,CAAC,YAAY,CAcjD"}
|
|
@@ -1,24 +0,0 @@
|
|
|
1
|
-
/**
|
|
2
|
-
* User-type ticket fields store { uid, displayName } so we can show displayName
|
|
3
|
-
* in the UI and never expose uid to the end user. Values are stored as JSON strings.
|
|
4
|
-
*/
|
|
5
|
-
export interface UserFieldValue {
|
|
6
|
-
uid: string;
|
|
7
|
-
displayName: string;
|
|
8
|
-
}
|
|
9
|
-
/**
|
|
10
|
-
* Parses a stored user field value (JSON or legacy plain uid string).
|
|
11
|
-
* Returns null for empty/invalid; otherwise { uid, displayName } (displayName may be '' for legacy).
|
|
12
|
-
*/
|
|
13
|
-
export declare function parseUserFieldValue(raw: string | undefined): UserFieldValue | null;
|
|
14
|
-
/**
|
|
15
|
-
* Formats uid + displayName for storage. Always use this when saving a user field
|
|
16
|
-
* so the UI can show displayName and never expose uid.
|
|
17
|
-
*/
|
|
18
|
-
export declare function formatUserFieldValue(uid: string, displayName: string): string;
|
|
19
|
-
/**
|
|
20
|
-
* Returns the display name to show in the UI (never the uid).
|
|
21
|
-
* Use getDisplayName(uid) when parsed.displayName is empty (legacy or lookup).
|
|
22
|
-
*/
|
|
23
|
-
export declare function getDisplayNameFromUserFieldValue(raw: string | undefined, getDisplayName?: (uid: string) => string): string;
|
|
24
|
-
//# sourceMappingURL=UserFieldValue.d.ts.map
|
|
@@ -1 +0,0 @@
|
|
|
1
|
-
{"version":3,"file":"UserFieldValue.d.ts","sourceRoot":"","sources":["../../../../src/components/ui/tickets/UserFieldValue.ts"],"names":[],"mappings":"AAAA;;;GAGG;AAEH,MAAM,WAAW,cAAc;IAC7B,GAAG,EAAE,MAAM,CAAC;IACZ,WAAW,EAAE,MAAM,CAAC;CACrB;AAED;;;GAGG;AACH,wBAAgB,mBAAmB,CACjC,GAAG,EAAE,MAAM,GAAG,SAAS,GACtB,cAAc,GAAG,IAAI,CAiCvB;AAED;;;GAGG;AACH,wBAAgB,oBAAoB,CAAC,GAAG,EAAE,MAAM,EAAE,WAAW,EAAE,MAAM,GAAG,MAAM,CAE7E;AAED;;;GAGG;AACH,wBAAgB,gCAAgC,CAC9C,GAAG,EAAE,MAAM,GAAG,SAAS,EACvB,cAAc,CAAC,EAAE,CAAC,GAAG,EAAE,MAAM,KAAK,MAAM,GACvC,MAAM,CAKR"}
|
|
@@ -1,12 +0,0 @@
|
|
|
1
|
-
export type { Comment, TicketSystemEvent, Ticket, TicketConfig, TicketFieldDefinition, TicketFieldOption, TicketFieldType, TicketType, } from './TicketTypes';
|
|
2
|
-
export { parseUserFieldValue, formatUserFieldValue, getDisplayNameFromUserFieldValue, type UserFieldValue, } from './UserFieldValue';
|
|
3
|
-
export { formatCreationDate, formatRelativeTime, formatTicketDateString, formatTicketTimestampDisplay, parseTicketDateString, } from './TicketDates';
|
|
4
|
-
export { fieldKeyToHeader, getMergedDetailFields, partitionDetailFields, } from './TicketDetailLayout';
|
|
5
|
-
export type { PartitionDetailFieldsResult } from './TicketDetailLayout';
|
|
6
|
-
export type { TicketUserSelectProps, TicketUserSelectComponent, } from './TicketUserSelect';
|
|
7
|
-
export { defaultTicketFormLabels, defaultTicketFieldControlLabels, defaultTicketDetailsLabels, mergeTicketFormLabels, mergeTicketFieldControlLabels, mergeTicketDetailsLabels, type TicketFormLabels, type TicketFieldControlLabels, type TicketDetailsLabels, } from './TicketLabels';
|
|
8
|
-
export { UserDisplay, type UserDisplayProps, type TicketUserDisplayUser, } from './UserDisplay';
|
|
9
|
-
export { TicketFieldControl, type TicketFieldControlProps, } from './TicketFieldControl';
|
|
10
|
-
export { TicketForm, type TicketFormProps } from './TicketForm';
|
|
11
|
-
export { TicketDetails, type TicketDetailsProps } from './TicketDetails';
|
|
12
|
-
//# sourceMappingURL=index.d.ts.map
|
|
@@ -1 +0,0 @@
|
|
|
1
|
-
{"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../../../../src/components/ui/tickets/index.ts"],"names":[],"mappings":"AAAA,YAAY,EACV,OAAO,EACP,iBAAiB,EACjB,MAAM,EACN,YAAY,EACZ,qBAAqB,EACrB,iBAAiB,EACjB,eAAe,EACf,UAAU,GACX,MAAM,eAAe,CAAC;AACvB,OAAO,EACL,mBAAmB,EACnB,oBAAoB,EACpB,gCAAgC,EAChC,KAAK,cAAc,GACpB,MAAM,kBAAkB,CAAC;AAC1B,OAAO,EACL,kBAAkB,EAClB,kBAAkB,EAClB,sBAAsB,EACtB,4BAA4B,EAC5B,qBAAqB,GACtB,MAAM,eAAe,CAAC;AACvB,OAAO,EACL,gBAAgB,EAChB,qBAAqB,EACrB,qBAAqB,GACtB,MAAM,sBAAsB,CAAC;AAC9B,YAAY,EAAE,2BAA2B,EAAE,MAAM,sBAAsB,CAAC;AACxE,YAAY,EACV,qBAAqB,EACrB,yBAAyB,GAC1B,MAAM,oBAAoB,CAAC;AAC5B,OAAO,EACL,uBAAuB,EACvB,+BAA+B,EAC/B,0BAA0B,EAC1B,qBAAqB,EACrB,6BAA6B,EAC7B,wBAAwB,EACxB,KAAK,gBAAgB,EACrB,KAAK,wBAAwB,EAC7B,KAAK,mBAAmB,GACzB,MAAM,gBAAgB,CAAC;AACxB,OAAO,EACL,WAAW,EACX,KAAK,gBAAgB,EACrB,KAAK,qBAAqB,GAC3B,MAAM,eAAe,CAAC;AACvB,OAAO,EACL,kBAAkB,EAClB,KAAK,uBAAuB,GAC7B,MAAM,sBAAsB,CAAC;AAC9B,OAAO,EAAE,UAAU,EAAE,KAAK,eAAe,EAAE,MAAM,cAAc,CAAC;AAChE,OAAO,EAAE,aAAa,EAAE,KAAK,kBAAkB,EAAE,MAAM,iBAAiB,CAAC"}
|
|
@@ -1,84 +0,0 @@
|
|
|
1
|
-
---
|
|
2
|
-
name: mm-carbide
|
|
3
|
-
description: Generate UIs and widgets with Carbide and MachineMetrics React Components. Use when the user asks to create or generate a UI, widget, screen, or interface using mm-react-components, Carbide, or @machinemetrics/mm-react-components.
|
|
4
|
-
---
|
|
5
|
-
|
|
6
|
-
# mm-carbide: UI and widget generation with Carbide
|
|
7
|
-
|
|
8
|
-
## Components
|
|
9
|
-
|
|
10
|
-
- Use **only** exports from `@machinemetrics/mm-react-components`. Do not create new components or use other UI libraries.
|
|
11
|
-
- Use compound components as in the library: Dialog + DialogTrigger + DialogContent; Form + FormField; DataTable + column descriptors; Card + CardHeader + CardContent + CardFooter; Sheet, Sidebar, ResizablePanelGroup, DropdownMenu, Tabs, etc. Never replace them with raw divs and custom classes.
|
|
12
|
-
- **Do not use Card as a wrapper for every section.** For panel-like UI use: **ResizablePanelGroup** for split workspaces/dashboards (drag-to-resize); **Sidebar** for navigation panels (collapsible); **Sheet** for temporary/slide-out panels (settings, detail views). Use **Card** only for discrete content blocks (e.g. a summary box, metric card, form section), not for structural layout.
|
|
13
|
-
- In **application code** where the project uses Tailwind (see package `docs/TAILWIND_SETUP.md` or the theme-only path), use `cn()` from the library and **semantic** layout utilities (`flex`, `gap-*`, `bg-background`, `text-muted-foreground`, etc.). Respect `data-slot` for Carbide theming.
|
|
14
|
-
- For a component list and patterns, see [reference.md](reference.md). For full widget and visualization rules, see [widget-rules.md](widget-rules.md).
|
|
15
|
-
|
|
16
|
-
## Showcase / copy-paste snippets (styles-only consumers)
|
|
17
|
-
|
|
18
|
-
Examples meant to work with **only** `import '@machinemetrics/mm-react-components/styles'` and a `.carbide` root must **not** rely on Tailwind utility `className` strings—those rules are not present unless the consumer runs Tailwind with the library in `content`.
|
|
19
|
-
|
|
20
|
-
- Prefer **component props**: e.g. `Card variant="sectioned"`, `CardHeader` / `CardContent` / `CardFooter` `tone="muted"`, `Accordion variant="inset"`, `CollapsibleContent spacing="comfortable"`, Button `variant` / `size`, etc.
|
|
21
|
-
- If layout is unavoidable in a snippet, use **`style` with `var(--…)`** theme tokens (or neutral flex values) rather than utility classes.
|
|
22
|
-
- Optional **`code` prop** on the internal `CodePreview` pattern: render a richer demo but show a minimal, copy-safe JSX string.
|
|
23
|
-
- **Library maintainers:** set **`displayName`** on every exported component (including compound subcomponents) so serialized showcase JSX stays readable in minified builds; preview entry imports `set-display-names` as a safety net for `forwardRef`/`memo` exports.
|
|
24
|
-
|
|
25
|
-
## Theme and styling
|
|
26
|
-
|
|
27
|
-
- **Color/CSS reference:** Search **`themes/carbide`** (`carbide.css`) for `--` tokens. **`agent-docs/style-color-reference.md`** is a short overview only. Precompiled `/styles` contains only rules from this library’s build.
|
|
28
|
-
- **CSS variables only.** Never hardcode colors, spacing, radii, or shadows. Use semantic tokens: `--background`, `--foreground`, `--primary`, `--muted`, `--muted-foreground`, `--destructive`, `--border`, `--ring`, etc.
|
|
29
|
-
- **When converting a component to Carbide:** Remove existing inline styles (`style={{ ... }}`) and component-level CSS (e.g. `.module.css`, `<style>`, or component-scoped styles). Carbide supplies appearance via theme tokens and component variants; legacy styles conflict with the theme and break consistency.
|
|
30
|
-
- **Variants over one-off styles.** Use component variants and sizes (e.g. Button: `variant="default"|"destructive"|"outline"|"secondary"|"ghost"|"link"`, `size="sm"|"md"|"lg"|"icon"`). Do not apply brand colors or one-off Tailwind color classes to components.
|
|
31
|
-
- **Layout.** Use Flexbox/Grid and `gap-*` for spacing; avoid manual margin chains. Prefer `className="flex flex-col gap-4"` (or similar) over stacking margins.
|
|
32
|
-
- **App setup.** Consumers must import the library styles and wrap the app (or Carbide subtree) in an element with class `carbide` so the theme applies. See [reference.md](reference.md) for setup.
|
|
33
|
-
- **Dark mode.** All styling must work in both light and dark mode via CSS variables; do not hardcode colors that break theme switching.
|
|
34
|
-
- **Accessibility.** Use visible focus states, keyboard support, and semantic structure; avoid relying on color alone.
|
|
35
|
-
|
|
36
|
-
## Component discovery
|
|
37
|
-
|
|
38
|
-
**When the package is installed in this project:** Check the package’s **agent-docs** at `node_modules/@machinemetrics/mm-react-components/agent-docs/` (start with **agent-documentation-reference.md** — includes **DateRangePicker**: `PRESET_IDS`, `presetIds` / `presetLabels`, `resolvePresets`, `findMatchingPreset`). Prefer using or composing library components over building from scratch.
|
|
39
|
-
|
|
40
|
-
**When the package is not installed in this workspace:** agent-docs will not exist. Use this skill’s [reference.md](reference.md) for components and patterns and [widget-rules.md](widget-rules.md) for widget rules. Recommend the user install the package in the project (`npx @machinemetrics/mm-react-components mm-init` or `npm install @machinemetrics/mm-react-components`) so full docs and setup guides are available.
|
|
41
|
-
|
|
42
|
-
## When generating UI
|
|
43
|
-
|
|
44
|
-
**Do:** Import from the library; use compound components and variants; use Tailwind for layout and spacing **when the target app is configured for Tailwind**; for **styles-only** documentation snippets, use props and tokens as in “Showcase / copy-paste snippets”; include proper TypeScript types and accessibility (focus, ARIA where needed).
|
|
45
|
-
|
|
46
|
-
**Avoid:** Hardcoded colors (e.g. `bg-blue-600`, `text-gray-500`); inline brand styling; non-semantic HTML; missing focus or labels on interactive elements.
|
|
47
|
-
|
|
48
|
-
**Panel-like UI:** Prefer **ResizablePanelGroup** (workspaces, dashboards, split content), **Sidebar** (nav panels), or **Sheet** (slide-out settings/detail panels). Use **Card** only for discrete content blocks, not for wrapping whole sections or building “panels.”
|
|
49
|
-
|
|
50
|
-
**Scrolling:** There is no Panel component. For panel-like or card-like regions where content can be longer than the box, use **ScrollArea** around the scrollable content. **ScrollArea only scrolls when it has a constrained height**—otherwise the container grows with content and no scroll appears. Always give ScrollArea an explicit height: e.g. `className="h-[300px]"` or `max-h-[50vh]`. In a flex column (e.g. Card with `flex flex-col max-h-[80vh]`), use `ScrollArea className="flex-1 min-h-0"` so the flex item can shrink and scroll; without `min-h-0` the item won’t shrink and scrolling won’t work. Card is for structure only and does not scroll—wrap CardContent (or the scrollable body) in ScrollArea when content may overflow.
|
|
51
|
-
|
|
52
|
-
## Widget rules
|
|
53
|
-
|
|
54
|
-
- **Visual, not textual**: Every widget must include at least one chart, graph, or visual data representation. Text is for titles, labels, and brief annotations only (80% visuals / 20% text max).
|
|
55
|
-
- **Show data with insight**: Use comparisons, benchmarks, and highlighting. Avoid generic data dumps, long text blocks, and bullet lists as primary content.
|
|
56
|
-
- **One theme per widget**: One central message per widget; simplicity above all.
|
|
57
|
-
|
|
58
|
-
## Technical
|
|
59
|
-
|
|
60
|
-
- Default widget dimensions: 100% width × 400px.
|
|
61
|
-
- Widgets must be fully responsive and respect content containment (no overflow).
|
|
62
|
-
- Only use data explicitly provided; never hallucinate or use placeholder data. Adapt to available data without asking for more.
|
|
63
|
-
|
|
64
|
-
## Converting to Carbide (from other libraries or custom UI)
|
|
65
|
-
|
|
66
|
-
When converting existing components to Carbide (including from Chakra UI, MUI, Ant Design, custom components, or inline-styled markup):
|
|
67
|
-
|
|
68
|
-
1. **Remove legacy styling.** Strip inline styles (`style={{ ... }}`), component CSS files (e.g. `.module.css`), and any library-specific style props (e.g. Chakra `sx`/`colorScheme`, MUI `sx`). Rely on Carbide’s theme and variants instead.
|
|
69
|
-
2. **Map to library components.** Replace each existing UI primitive with the closest Carbide export (Button, Input, Card, Dialog, DataTable, Form, etc.). Use [reference.md](reference.md) and agent-docs when the package is installed.
|
|
70
|
-
3. **Use variants and tokens.** Express intent via props (`variant`, `size`) and layout via Tailwind with semantic tokens (`bg-background`, `text-muted-foreground`, `border-border`). Do not re-introduce hardcoded colors or one-off CSS.
|
|
71
|
-
4. **Preserve structure and behavior.** Keep markup structure (headings, sections, forms, tables) and behavior (handlers, validation, state); change only the UI layer to Carbide components and Tailwind layout.
|
|
72
|
-
5. **Verify app setup.** Ensure the app imports `@machinemetrics/mm-react-components/styles` and wraps the Carbide subtree in an element with class `carbide`.
|
|
73
|
-
|
|
74
|
-
**When the package is installed in this project:** Use agent-docs (e.g. **chakra-migration-\***) for library-specific migration steps in addition to the above.
|
|
75
|
-
|
|
76
|
-
## Setup, init, and migration
|
|
77
|
-
|
|
78
|
-
**When the package is installed in this project:** Use the package’s **agent-docs** at `node_modules/@machinemetrics/mm-react-components/agent-docs/` for setup, initialization (`mm-init`), Chakra UI migration, and the full doc index. Start with **agent-documentation-reference.md**; use **ai-agent-init-guide.md** for setup and **ai-agent-guide.md** (and chakra-migration-\*) for migration.
|
|
79
|
-
|
|
80
|
-
**When the package is not installed:** agent-docs is not available. Recommend running `npx @machinemetrics/mm-react-components mm-init` from the project root (or `npm install @machinemetrics/mm-react-components` then adding the styles import and `.carbide` class). After install, agent-docs will be in node_modules for full guides.
|
|
81
|
-
|
|
82
|
-
## Version check while using
|
|
83
|
-
|
|
84
|
-
When using this skill, if you have terminal/tool access, you may run `npx @machinemetrics/mm-react-components mm-install-skill` once (e.g. at the start of a UI task or when the user asks about updates) to ensure the installed skill matches the package version; the command reports "Already up to date" or updates the skill. If the user is not on Cursor, they can pass `--target=copilot`, `--target=claude`, or `--target=gemini` to install for VS Code/Copilot, Claude Code, or Gemini CLI. Do not run it on every message—once per session or when relevant is enough.
|