@tetrascience-npm/tetrascience-react-ui 0.5.0 → 0.6.0-beta.79.1
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/README.md +84 -37
- package/dist/components/composed/PlateMapEditor/ManifestFilterPopover.cjs +2 -0
- package/dist/components/composed/PlateMapEditor/ManifestFilterPopover.cjs.map +1 -0
- package/dist/components/composed/PlateMapEditor/ManifestFilterPopover.js +140 -0
- package/dist/components/composed/PlateMapEditor/ManifestFilterPopover.js.map +1 -0
- package/dist/components/composed/PlateMapEditor/PlateMapActionsMenu.cjs +2 -0
- package/dist/components/composed/PlateMapEditor/PlateMapActionsMenu.cjs.map +1 -0
- package/dist/components/composed/PlateMapEditor/PlateMapActionsMenu.js +126 -0
- package/dist/components/composed/PlateMapEditor/PlateMapActionsMenu.js.map +1 -0
- package/dist/components/composed/PlateMapEditor/PlateMapEditor.cjs +2 -0
- package/dist/components/composed/PlateMapEditor/PlateMapEditor.cjs.map +1 -0
- package/dist/components/composed/PlateMapEditor/PlateMapEditor.js +341 -0
- package/dist/components/composed/PlateMapEditor/PlateMapEditor.js.map +1 -0
- package/dist/components/composed/PlateMapEditor/PlateMapForm.cjs +2 -0
- package/dist/components/composed/PlateMapEditor/PlateMapForm.cjs.map +1 -0
- package/dist/components/composed/PlateMapEditor/PlateMapForm.js +43 -0
- package/dist/components/composed/PlateMapEditor/PlateMapForm.js.map +1 -0
- package/dist/components/composed/PlateMapEditor/PlateMapGrid.cjs +2 -0
- package/dist/components/composed/PlateMapEditor/PlateMapGrid.cjs.map +1 -0
- package/dist/components/composed/PlateMapEditor/PlateMapGrid.js +154 -0
- package/dist/components/composed/PlateMapEditor/PlateMapGrid.js.map +1 -0
- package/dist/components/composed/PlateMapEditor/PlateMapManifest.cjs +2 -0
- package/dist/components/composed/PlateMapEditor/PlateMapManifest.cjs.map +1 -0
- package/dist/components/composed/PlateMapEditor/PlateMapManifest.js +44 -0
- package/dist/components/composed/PlateMapEditor/PlateMapManifest.js.map +1 -0
- package/dist/components/composed/PlateMapEditor/PlateMapPlateSelector.cjs +2 -0
- package/dist/components/composed/PlateMapEditor/PlateMapPlateSelector.cjs.map +1 -0
- package/dist/components/composed/PlateMapEditor/PlateMapPlateSelector.js +136 -0
- package/dist/components/composed/PlateMapEditor/PlateMapPlateSelector.js.map +1 -0
- package/dist/components/composed/PlateMapEditor/PlatePaintGrid.cjs +2 -0
- package/dist/components/composed/PlateMapEditor/PlatePaintGrid.cjs.map +1 -0
- package/dist/components/composed/PlateMapEditor/PlatePaintGrid.js +389 -0
- package/dist/components/composed/PlateMapEditor/PlatePaintGrid.js.map +1 -0
- package/dist/components/composed/PlateMapEditor/PlateZoomControl.cjs +2 -0
- package/dist/components/composed/PlateMapEditor/PlateZoomControl.cjs.map +1 -0
- package/dist/components/composed/PlateMapEditor/PlateZoomControl.js +54 -0
- package/dist/components/composed/PlateMapEditor/PlateZoomControl.js.map +1 -0
- package/dist/components/composed/PlateMapEditor/TemplateIOPanel.cjs +2 -0
- package/dist/components/composed/PlateMapEditor/TemplateIOPanel.cjs.map +1 -0
- package/dist/components/composed/PlateMapEditor/TemplateIOPanel.js +96 -0
- package/dist/components/composed/PlateMapEditor/TemplateIOPanel.js.map +1 -0
- package/dist/components/composed/PlateMapEditor/WellLegend.cjs +2 -0
- package/dist/components/composed/PlateMapEditor/WellLegend.cjs.map +1 -0
- package/dist/components/composed/PlateMapEditor/WellLegend.js +58 -0
- package/dist/components/composed/PlateMapEditor/WellLegend.js.map +1 -0
- package/dist/components/composed/PlateMapEditor/WellManifestTable.cjs +2 -0
- package/dist/components/composed/PlateMapEditor/WellManifestTable.cjs.map +1 -0
- package/dist/components/composed/PlateMapEditor/WellManifestTable.js +421 -0
- package/dist/components/composed/PlateMapEditor/WellManifestTable.js.map +1 -0
- package/dist/components/composed/PlateMapEditor/WellMetadataForm.cjs +2 -0
- package/dist/components/composed/PlateMapEditor/WellMetadataForm.cjs.map +1 -0
- package/dist/components/composed/PlateMapEditor/WellMetadataForm.js +177 -0
- package/dist/components/composed/PlateMapEditor/WellMetadataForm.js.map +1 -0
- package/dist/components/composed/PlateMapEditor/autoFill.cjs +2 -0
- package/dist/components/composed/PlateMapEditor/autoFill.cjs.map +1 -0
- package/dist/components/composed/PlateMapEditor/autoFill.js +41 -0
- package/dist/components/composed/PlateMapEditor/autoFill.js.map +1 -0
- package/dist/components/composed/PlateMapEditor/csvPlateTriage.cjs +4 -0
- package/dist/components/composed/PlateMapEditor/csvPlateTriage.cjs.map +1 -0
- package/dist/components/composed/PlateMapEditor/csvPlateTriage.js +103 -0
- package/dist/components/composed/PlateMapEditor/csvPlateTriage.js.map +1 -0
- package/dist/components/composed/PlateMapEditor/helpers.cjs +2 -0
- package/dist/components/composed/PlateMapEditor/helpers.cjs.map +1 -0
- package/dist/components/composed/PlateMapEditor/helpers.js +11 -0
- package/dist/components/composed/PlateMapEditor/helpers.js.map +1 -0
- package/dist/components/composed/PlateMapEditor/wellGrid.cjs +2 -0
- package/dist/components/composed/PlateMapEditor/wellGrid.cjs.map +1 -0
- package/dist/components/composed/PlateMapEditor/wellGrid.js +56 -0
- package/dist/components/composed/PlateMapEditor/wellGrid.js.map +1 -0
- package/dist/components/composed/ProcessFlow/ProcessFlow.cjs +2 -0
- package/dist/components/composed/ProcessFlow/ProcessFlow.cjs.map +1 -0
- package/dist/components/composed/ProcessFlow/ProcessFlow.js +543 -0
- package/dist/components/composed/ProcessFlow/ProcessFlow.js.map +1 -0
- package/dist/components/composed/ProcessFlow/ProcessFlow.utils.cjs +2 -0
- package/dist/components/composed/ProcessFlow/ProcessFlow.utils.cjs.map +1 -0
- package/dist/components/composed/ProcessFlow/ProcessFlow.utils.js +84 -0
- package/dist/components/composed/ProcessFlow/ProcessFlow.utils.js.map +1 -0
- package/dist/components/ui/accordion.cjs +1 -1
- package/dist/components/ui/accordion.cjs.map +1 -1
- package/dist/components/ui/accordion.js +1 -1
- package/dist/components/ui/accordion.js.map +1 -1
- package/dist/components/ui/badge.cjs +1 -1
- package/dist/components/ui/badge.cjs.map +1 -1
- package/dist/components/ui/badge.js +18 -18
- package/dist/components/ui/badge.js.map +1 -1
- package/dist/components/ui/button.cjs +1 -1
- package/dist/components/ui/button.cjs.map +1 -1
- package/dist/components/ui/button.js +16 -16
- package/dist/components/ui/button.js.map +1 -1
- package/dist/components/ui/calendar.cjs +1 -1
- package/dist/components/ui/calendar.cjs.map +1 -1
- package/dist/components/ui/calendar.js +5 -5
- package/dist/components/ui/calendar.js.map +1 -1
- package/dist/components/ui/card.cjs +1 -1
- package/dist/components/ui/card.cjs.map +1 -1
- package/dist/components/ui/card.js +1 -1
- package/dist/components/ui/card.js.map +1 -1
- package/dist/components/ui/checkbox.cjs +1 -1
- package/dist/components/ui/checkbox.cjs.map +1 -1
- package/dist/components/ui/checkbox.js +9 -9
- package/dist/components/ui/checkbox.js.map +1 -1
- package/dist/components/ui/combobox.cjs +1 -1
- package/dist/components/ui/combobox.cjs.map +1 -1
- package/dist/components/ui/combobox.js +5 -5
- package/dist/components/ui/combobox.js.map +1 -1
- package/dist/components/ui/data-table/data-table-group.cjs +2 -0
- package/dist/components/ui/data-table/data-table-group.cjs.map +1 -0
- package/dist/components/ui/data-table/data-table-group.js +118 -0
- package/dist/components/ui/data-table/data-table-group.js.map +1 -0
- package/dist/components/ui/data-table/data-table-pagination.cjs +1 -1
- package/dist/components/ui/data-table/data-table-pagination.cjs.map +1 -1
- package/dist/components/ui/data-table/data-table-pagination.js +22 -22
- package/dist/components/ui/data-table/data-table-pagination.js.map +1 -1
- package/dist/components/ui/data-table/data-table.cjs +1 -1
- package/dist/components/ui/data-table/data-table.cjs.map +1 -1
- package/dist/components/ui/data-table/data-table.js +567 -316
- package/dist/components/ui/data-table/data-table.js.map +1 -1
- package/dist/components/ui/dialog.cjs +1 -1
- package/dist/components/ui/dialog.cjs.map +1 -1
- package/dist/components/ui/dialog.js +13 -13
- package/dist/components/ui/dialog.js.map +1 -1
- package/dist/components/ui/input-group.cjs +1 -1
- package/dist/components/ui/input-group.cjs.map +1 -1
- package/dist/components/ui/input-group.js +29 -29
- package/dist/components/ui/input-group.js.map +1 -1
- package/dist/components/ui/input-otp.cjs +1 -1
- package/dist/components/ui/input-otp.cjs.map +1 -1
- package/dist/components/ui/input-otp.js +10 -10
- package/dist/components/ui/input-otp.js.map +1 -1
- package/dist/components/ui/input.cjs +1 -1
- package/dist/components/ui/input.cjs.map +1 -1
- package/dist/components/ui/input.js +7 -7
- package/dist/components/ui/input.js.map +1 -1
- package/dist/components/ui/item.cjs +1 -1
- package/dist/components/ui/item.cjs.map +1 -1
- package/dist/components/ui/item.js +17 -17
- package/dist/components/ui/item.js.map +1 -1
- package/dist/components/ui/navigation-menu.cjs +1 -1
- package/dist/components/ui/navigation-menu.cjs.map +1 -1
- package/dist/components/ui/navigation-menu.js +24 -24
- package/dist/components/ui/navigation-menu.js.map +1 -1
- package/dist/components/ui/popover.cjs +2 -0
- package/dist/components/ui/popover.cjs.map +1 -0
- package/dist/components/ui/popover.js +45 -0
- package/dist/components/ui/popover.js.map +1 -0
- package/dist/components/ui/radio-group.cjs +1 -1
- package/dist/components/ui/radio-group.cjs.map +1 -1
- package/dist/components/ui/radio-group.js +16 -16
- package/dist/components/ui/radio-group.js.map +1 -1
- package/dist/components/ui/scroll-area.cjs +1 -1
- package/dist/components/ui/scroll-area.cjs.map +1 -1
- package/dist/components/ui/scroll-area.js +6 -6
- package/dist/components/ui/scroll-area.js.map +1 -1
- package/dist/components/ui/select.cjs +1 -1
- package/dist/components/ui/select.cjs.map +1 -1
- package/dist/components/ui/select.js +48 -48
- package/dist/components/ui/select.js.map +1 -1
- package/dist/components/ui/slider.cjs +1 -1
- package/dist/components/ui/slider.cjs.map +1 -1
- package/dist/components/ui/slider.js +22 -22
- package/dist/components/ui/slider.js.map +1 -1
- package/dist/components/ui/switch.cjs +1 -1
- package/dist/components/ui/switch.cjs.map +1 -1
- package/dist/components/ui/switch.js +14 -14
- package/dist/components/ui/switch.js.map +1 -1
- package/dist/components/ui/table.cjs +1 -1
- package/dist/components/ui/table.cjs.map +1 -1
- package/dist/components/ui/table.js +2 -2
- package/dist/components/ui/table.js.map +1 -1
- package/dist/components/ui/tabs.cjs +1 -1
- package/dist/components/ui/tabs.cjs.map +1 -1
- package/dist/components/ui/tabs.js +9 -9
- package/dist/components/ui/tabs.js.map +1 -1
- package/dist/components/ui/textarea.cjs +1 -1
- package/dist/components/ui/textarea.cjs.map +1 -1
- package/dist/components/ui/textarea.js +6 -6
- package/dist/components/ui/textarea.js.map +1 -1
- package/dist/components/ui/toggle.cjs +1 -1
- package/dist/components/ui/toggle.cjs.map +1 -1
- package/dist/components/ui/toggle.js +13 -13
- package/dist/components/ui/toggle.js.map +1 -1
- package/dist/index.cjs +1 -1
- package/dist/index.css +1 -1
- package/dist/index.d.ts +830 -3
- package/dist/index.js +649 -593
- package/dist/index.js.map +1 -1
- package/dist/index.tailwind.css +1 -1
- package/dist/utils/colors.cjs +1 -1
- package/dist/utils/colors.cjs.map +1 -1
- package/dist/utils/colors.js +43 -21
- package/dist/utils/colors.js.map +1 -1
- package/package.json +1 -1
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"ProcessFlow.js","sources":["../../../../src/components/composed/ProcessFlow/ProcessFlow.tsx"],"sourcesContent":["import { CheckIcon, DotIcon, LockIcon, TriangleAlertIcon } from \"lucide-react\";\n\nimport {\n getConnectionPath,\n getDescriptionVisibility,\n getStepAccessibleLabel,\n hasCustomStepLayout,\n positionStep,\n resolveConnections,\n STATUS_LABELS,\n type PositionedStep,\n type ProcessFlowConnection,\n type ProcessFlowDescriptionVisibility,\n type ProcessFlowOrientation,\n type ProcessFlowSize,\n type ProcessFlowStep,\n type ProcessFlowStepStatus,\n} from \"./ProcessFlow.utils\";\n\nimport type { ComponentPropsWithoutRef, CSSProperties, MouseEvent } from \"react\";\n\nimport { cn } from \"@/lib/utils\";\n\nexport { PROCESS_FLOW_STEP_STATUSES } from \"./ProcessFlow.utils\";\nexport type {\n ProcessFlowConnection,\n ProcessFlowOrientation,\n ProcessFlowSize,\n ProcessFlowStep,\n ProcessFlowStepConfig,\n ProcessFlowStepPosition,\n ProcessFlowStepStatus,\n ProcessStep,\n ProcessStepStatus,\n} from \"./ProcessFlow.utils\";\n\ntype ProcessFlowLayout = \"linear\" | \"branching\";\ntype ProcessFlowStepContentLayout = \"stacked\" | \"inline\" | \"anchored\";\n\nexport interface ProcessFlowStepSelectDetails {\n /** Zero-based index of the selected step in the steps prop. */\n stepIndex: number;\n /** Current visual status of the selected step. */\n status: ProcessFlowStepStatus;\n nativeEvent: MouseEvent<HTMLButtonElement>;\n}\n\n/**\n * Presentational process flow.\n *\n * ProcessFlow is fully controlled by props. It visualizes parent-owned workflow state and emits user selection through\n * onStepSelect. It intentionally does not own status transitions or fire completion/error side effects.\n */\nexport interface ProcessFlowProps extends Omit<ComponentPropsWithoutRef<\"nav\">, \"onSelect\"> {\n /** Ordered list of steps to render. Each step controls its own visual status. */\n steps: ProcessFlowStep[];\n /** Optional explicit connections for branching/configurable flows. */\n connections?: ProcessFlowConnection[];\n /** Selected/viewed step id. This is separate from the active workflow status. */\n selectedStepId?: string;\n /** Called when a selectable step is clicked. Disabled and non-selectable steps do not call this. */\n onStepSelect?: (step: ProcessFlowStep, details: ProcessFlowStepSelectDetails) => void;\n orientation?: ProcessFlowOrientation;\n size?: ProcessFlowSize;\n /** Defaults to true. Set to false to hide step descriptions. */\n showDescriptions?: boolean;\n}\n\ninterface StepControlClassOptions {\n layout: ProcessFlowLayout;\n contentLayout: ProcessFlowStepContentLayout;\n onStepSelect?: ProcessFlowProps[\"onStepSelect\"];\n isDisabled: boolean;\n isSelected: boolean;\n size: ProcessFlowSize;\n status: ProcessFlowStepStatus;\n}\n\nconst LINEAR_STEP_STATUS_CLASSES: Record<ProcessFlowStepStatus, string> = {\n pending: \"text-muted-foreground\",\n active: \"text-foreground\",\n completed: \"text-foreground\",\n error: \"text-destructive\",\n disabled: \"text-muted-foreground\",\n};\n\nconst MARKER_STATUS_CLASSES: Record<ProcessFlowStepStatus, string> = {\n pending: \"border-border bg-background text-muted-foreground\",\n active: \"border-primary bg-primary text-primary-foreground\",\n completed: \"border-positive bg-positive text-background\",\n error: \"border-destructive bg-destructive text-background\",\n disabled: \"border-border bg-muted text-muted-foreground\",\n};\n\nconst CONNECTION_STATUS_CLASSES: Record<ProcessFlowStepStatus, string> = {\n pending: \"stroke-muted-foreground/35\",\n active: \"stroke-primary\",\n completed: \"stroke-positive\",\n error: \"stroke-destructive\",\n disabled: \"stroke-border\",\n};\n\nconst STEP_MIN_WIDTH: Record<ProcessFlowSize, string> = {\n default: \"11rem\",\n compact: \"8.5rem\",\n};\n\nconst RESPONSIVE_STEP_MIN_WIDTH: Record<ProcessFlowSize, string> = {\n default: \"8rem\",\n compact: \"7rem\",\n};\n\nconst SQUEEZED_STEP_MIN_WIDTH: Record<ProcessFlowSize, string> = {\n default: \"5.5rem\",\n compact: \"4.75rem\",\n};\n\nconst MINI_STEP_MIN_WIDTH: Record<ProcessFlowSize, string> = {\n default: \"2.75rem\",\n compact: \"2.5rem\",\n};\n\nconst ROW_MIN_HEIGHT: Record<ProcessFlowSize, string> = {\n default: \"7.5rem\",\n compact: \"5.75rem\",\n};\n\nconst RESPONSIVE_ROW_MIN_HEIGHT: Record<ProcessFlowSize, string> = {\n default: \"6.5rem\",\n compact: \"5rem\",\n};\n\nconst SQUEEZED_ROW_MIN_HEIGHT: Record<ProcessFlowSize, string> = {\n default: \"4.5rem\",\n compact: \"3.75rem\",\n};\n\nconst MINI_ROW_MIN_HEIGHT: Record<ProcessFlowSize, string> = {\n default: \"3.5rem\",\n compact: \"3rem\",\n};\n\nconst GRID_GAP: Record<ProcessFlowSize, string> = {\n default: \"1.25rem\",\n compact: \"0.75rem\",\n};\n\nconst RESPONSIVE_GRID_GAP: Record<ProcessFlowSize, string> = {\n default: \"0.875rem\",\n compact: \"0.625rem\",\n};\n\nconst SQUEEZED_GRID_GAP: Record<ProcessFlowSize, string> = {\n default: \"0.5rem\",\n compact: \"0.375rem\",\n};\n\nconst MINI_GRID_GAP: Record<ProcessFlowSize, string> = {\n default: \"0.375rem\",\n compact: \"0.25rem\",\n};\n\nconst LINEAR_MARKER_SIZE: Record<ProcessFlowSize, string> = {\n default: \"2.5rem\",\n compact: \"1.75rem\",\n};\n\nconst RESPONSIVE_LINEAR_MARKER_SIZE: Record<ProcessFlowSize, string> = {\n default: \"2rem\",\n compact: \"1.5rem\",\n};\n\nconst SQUEEZED_LINEAR_MARKER_SIZE: Record<ProcessFlowSize, string> = {\n default: \"1.5rem\",\n compact: \"1.25rem\",\n};\n\nconst MINI_LINEAR_MARKER_SIZE: Record<ProcessFlowSize, string> = {\n default: \"1.25rem\",\n compact: \"1.125rem\",\n};\n\nfunction getMarkerContent(status: ProcessFlowStepStatus, stepNumber: number) {\n if (status === \"completed\") {\n return <CheckIcon aria-hidden=\"true\" />;\n }\n\n if (status === \"error\") {\n return <TriangleAlertIcon aria-hidden=\"true\" />;\n }\n\n if (status === \"disabled\") {\n return <LockIcon aria-hidden=\"true\" />;\n }\n\n if (status === \"active\") {\n return <DotIcon aria-hidden=\"true\" />;\n }\n\n return stepNumber;\n}\n\nfunction getLinearSegmentStyle(index: number, count: number): CSSProperties {\n return {\n left: `calc(${((index + 0.5) / count) * 100}% + (var(--process-flow-marker-size) / 2))`,\n width: `calc(${(1 / count) * 100}% - var(--process-flow-marker-size))`,\n };\n}\n\nfunction getVerticalSegmentStyle(index: number, count: number): CSSProperties {\n return {\n height: `calc(${(1 / count) * 100}% - var(--process-flow-marker-size))`,\n top: `calc(${((index + 0.5) / count) * 100}% + (var(--process-flow-marker-size) / 2))`,\n };\n}\n\nfunction getHorizontalRailStyle(): CSSProperties {\n const inset = \"calc(((100% / var(--process-flow-count)) / 2) + (var(--process-flow-marker-size) / 2))\";\n\n return {\n left: inset,\n right: inset,\n };\n}\n\nfunction getVerticalRailStyle(): CSSProperties {\n const inset = \"calc(((100% / var(--process-flow-count)) / 2) + (var(--process-flow-marker-size) / 2))\";\n\n return {\n bottom: inset,\n top: inset,\n };\n}\n\nfunction getStepControlClassName({ contentLayout, onStepSelect, isDisabled, size, status }: StepControlClassOptions) {\n return cn(\n \"flex w-full min-w-0 border-0 bg-transparent p-0 text-sm outline-none transition-all focus-visible:border-ring focus-visible:shadow-focus\",\n contentLayout === \"inline\" && \"flex-row items-center gap-3 text-left\",\n contentLayout === \"stacked\" && \"flex-col items-center gap-2 text-center\",\n contentLayout === \"anchored\" && \"relative h-full flex-col items-center justify-center text-center\",\n size === \"compact\" && (contentLayout === \"inline\" ? \"gap-2\" : \"gap-1.5\"),\n onStepSelect &&\n !isDisabled &&\n cn(\"cursor-pointer hover:text-foreground\", contentLayout !== \"anchored\" && \"hover:-translate-y-px\"),\n onStepSelect && isDisabled && \"cursor-not-allowed\",\n LINEAR_STEP_STATUS_CLASSES[status],\n );\n}\n\nfunction getMarkerClassName({\n isSelected,\n size,\n status,\n}: Pick<StepControlClassOptions, \"isSelected\" | \"size\" | \"status\">) {\n return cn(\n \"flex size-[var(--process-flow-marker-size)] shrink-0 items-center justify-center rounded-full border text-xs font-semibold tabular-nums transition-colors [&_svg]:size-4\",\n size === \"compact\" && \"text-[0.7rem] [&_svg]:size-3\",\n \"shadow-[0_0_0_0.25rem_var(--background)]\",\n isSelected && \"ring-4 ring-primary/20\",\n MARKER_STATUS_CLASSES[status],\n );\n}\n\nfunction getLabelClassName({\n layout,\n isSelected,\n status,\n}: Pick<StepControlClassOptions, \"layout\" | \"isSelected\" | \"status\">) {\n return cn(\n \"block max-w-full truncate font-medium text-current\",\n layout === \"linear\" && isSelected && status === \"completed\" && \"text-positive\",\n layout === \"linear\" && isSelected && status !== \"completed\" && status !== \"error\" && \"text-primary\",\n );\n}\n\nfunction ProcessFlowStepControl({\n item,\n isSelected,\n onStepSelect,\n descriptionVisibility,\n size,\n layout,\n contentLayout,\n}: {\n item: PositionedStep;\n isSelected: boolean;\n onStepSelect?: ProcessFlowProps[\"onStepSelect\"];\n descriptionVisibility: ProcessFlowDescriptionVisibility;\n size: ProcessFlowSize;\n layout: ProcessFlowLayout;\n contentLayout: ProcessFlowStepContentLayout;\n}) {\n const { step, stepIndex, status } = item;\n const isDisabled = status === \"disabled\" || step.selectable === false;\n const accessibleLabel = getStepAccessibleLabel(step, status, stepIndex + 1);\n const textVisibility = descriptionVisibility === \"visible\" ? \"visible\" : \"auto\";\n const controlClassName = getStepControlClassName({\n layout,\n contentLayout,\n onStepSelect,\n isDisabled,\n isSelected,\n size,\n status,\n });\n const markerContent = (\n <span\n aria-hidden=\"true\"\n className={getMarkerClassName({\n isSelected,\n size,\n status,\n })}\n data-slot=\"process-flow-marker\"\n >\n {getMarkerContent(status, stepIndex + 1)}\n </span>\n );\n const textContent = (\n <span\n data-slot=\"process-flow-text\"\n data-text-visibility={textVisibility}\n className={cn(\n \"flex min-w-0 flex-col gap-0.5\",\n contentLayout === \"stacked\" && \"w-full items-center\",\n contentLayout === \"anchored\" &&\n \"pointer-events-none absolute left-1/2 top-[calc(50%+var(--process-flow-marker-size)/2+0.375rem)] w-max max-w-[calc(var(--process-flow-step-min-width)-0.5rem)] -translate-x-1/2 items-center px-1\",\n )}\n >\n <span className={getLabelClassName({ layout, isSelected, status })} data-slot=\"process-flow-label\">\n {step.label}\n </span>\n {descriptionVisibility !== \"hidden\" && step.description ? (\n <span\n className=\"line-clamp-2 text-xs leading-snug text-muted-foreground\"\n data-description-visibility={descriptionVisibility}\n data-slot=\"process-flow-description\"\n >\n {step.description}\n </span>\n ) : null}\n <span className=\"sr-only\">Status: {STATUS_LABELS[status]}</span>\n </span>\n );\n const content = (\n <>\n {markerContent}\n {textContent}\n </>\n );\n\n if (!onStepSelect) {\n return (\n <div\n aria-current={status === \"active\" ? \"step\" : undefined}\n aria-disabled={isDisabled || undefined}\n aria-invalid={status === \"error\" || undefined}\n aria-label={accessibleLabel}\n className={controlClassName}\n data-selected={isSelected || undefined}\n data-status={status}\n >\n {content}\n </div>\n );\n }\n\n return (\n <button\n type=\"button\"\n aria-current={status === \"active\" ? \"step\" : undefined}\n aria-invalid={status === \"error\" || undefined}\n aria-label={accessibleLabel}\n aria-pressed={isSelected}\n className={controlClassName}\n data-selected={isSelected || undefined}\n data-status={status}\n disabled={isDisabled}\n onClick={(nativeEvent) =>\n onStepSelect(step, {\n nativeEvent,\n status,\n stepIndex,\n })\n }\n >\n {content}\n </button>\n );\n}\n\nfunction HorizontalProcessFlow({\n steps,\n selectedStepId,\n onStepSelect,\n size,\n showDescriptions,\n}: Pick<ProcessFlowProps, \"steps\" | \"selectedStepId\" | \"onStepSelect\" | \"showDescriptions\"> & {\n size: ProcessFlowSize;\n}) {\n const positionedSteps = steps.map((step, index) => positionStep(step, index, \"horizontal\"));\n const resolvedConnections = resolveConnections(positionedSteps);\n const descriptionVisibility = getDescriptionVisibility(showDescriptions);\n const flowStyle = {\n \"--process-flow-count\": steps.length,\n \"--process-flow-step-min-width-base\": STEP_MIN_WIDTH[size],\n \"--process-flow-step-min-width-responsive\": RESPONSIVE_STEP_MIN_WIDTH[size],\n \"--process-flow-step-min-width-squeezed\": SQUEEZED_STEP_MIN_WIDTH[size],\n \"--process-flow-step-min-width-mini\": MINI_STEP_MIN_WIDTH[size],\n \"--process-flow-row-min-height-base\": ROW_MIN_HEIGHT[size],\n \"--process-flow-row-min-height-responsive\": RESPONSIVE_ROW_MIN_HEIGHT[size],\n \"--process-flow-row-min-height-squeezed\": SQUEEZED_ROW_MIN_HEIGHT[size],\n \"--process-flow-row-min-height-mini\": MINI_ROW_MIN_HEIGHT[size],\n \"--process-flow-marker-size-base\": LINEAR_MARKER_SIZE[size],\n \"--process-flow-marker-size-responsive\": RESPONSIVE_LINEAR_MARKER_SIZE[size],\n \"--process-flow-marker-size-squeezed\": SQUEEZED_LINEAR_MARKER_SIZE[size],\n \"--process-flow-marker-size-mini\": MINI_LINEAR_MARKER_SIZE[size],\n } as CSSProperties;\n\n return (\n <div className=\"overflow-hidden px-3 py-4\" data-slot=\"process-flow-viewport\" style={flowStyle}>\n <ol\n className=\"relative grid min-w-0 min-h-[var(--process-flow-row-min-height)] list-none p-0\"\n data-slot=\"process-flow-list\"\n style={{\n gridTemplateColumns: \"repeat(var(--process-flow-count), minmax(0, 1fr))\",\n }}\n >\n {steps.length > 1 ? (\n <li\n aria-hidden=\"true\"\n className=\"absolute top-[calc(var(--process-flow-marker-size)/2)] h-0.5 -translate-y-1/2 rounded-full bg-muted\"\n style={getHorizontalRailStyle()}\n />\n ) : null}\n {resolvedConnections.map((connection, index) => (\n <li\n key={connection.id}\n aria-hidden=\"true\"\n className={cn(\n \"absolute top-[calc(var(--process-flow-marker-size)/2)] h-0.5 -translate-y-1/2 rounded-full transition-colors\",\n connection.status === \"completed\" && \"bg-positive\",\n connection.status === \"active\" && \"bg-primary\",\n connection.status === \"error\" && \"bg-destructive\",\n connection.status === \"pending\" && \"bg-muted\",\n connection.status === \"disabled\" && \"bg-border\",\n )}\n style={getLinearSegmentStyle(index, steps.length)}\n />\n ))}\n {positionedSteps.map((item) => (\n <li\n key={item.step.id}\n className=\"relative z-[1] flex min-w-0 items-start justify-center\"\n data-slot=\"process-flow-item\"\n >\n <ProcessFlowStepControl\n item={item}\n contentLayout=\"stacked\"\n descriptionVisibility={descriptionVisibility}\n isSelected={selectedStepId === item.step.id}\n layout=\"linear\"\n onStepSelect={onStepSelect}\n size={size}\n />\n </li>\n ))}\n </ol>\n </div>\n );\n}\n\nfunction VerticalProcessFlow({\n steps,\n selectedStepId,\n onStepSelect,\n size,\n showDescriptions,\n}: Pick<ProcessFlowProps, \"steps\" | \"selectedStepId\" | \"onStepSelect\" | \"showDescriptions\"> & {\n size: ProcessFlowSize;\n}) {\n const positionedSteps = steps.map((step, index) => positionStep(step, index, \"vertical\"));\n const resolvedConnections = resolveConnections(positionedSteps);\n const descriptionVisibility = getDescriptionVisibility(showDescriptions);\n const flowStyle = {\n \"--process-flow-count\": steps.length,\n \"--process-flow-row-min-height-base\": ROW_MIN_HEIGHT[size],\n \"--process-flow-row-min-height-responsive\": RESPONSIVE_ROW_MIN_HEIGHT[size],\n \"--process-flow-row-min-height-squeezed\": SQUEEZED_ROW_MIN_HEIGHT[size],\n \"--process-flow-row-min-height-mini\": MINI_ROW_MIN_HEIGHT[size],\n \"--process-flow-marker-size-base\": LINEAR_MARKER_SIZE[size],\n \"--process-flow-marker-size-responsive\": RESPONSIVE_LINEAR_MARKER_SIZE[size],\n \"--process-flow-marker-size-squeezed\": SQUEEZED_LINEAR_MARKER_SIZE[size],\n \"--process-flow-marker-size-mini\": MINI_LINEAR_MARKER_SIZE[size],\n } as CSSProperties;\n\n return (\n <div className=\"overflow-x-auto px-3 py-3\" data-slot=\"process-flow-viewport\" style={flowStyle}>\n <ol\n className=\"relative grid min-h-[calc(var(--process-flow-count)*var(--process-flow-row-min-height))] min-w-72 list-none p-0\"\n data-slot=\"process-flow-list\"\n style={{\n gridTemplateRows: \"repeat(var(--process-flow-count), minmax(var(--process-flow-row-min-height), auto))\",\n }}\n >\n {steps.length > 1 ? (\n <li\n aria-hidden=\"true\"\n className=\"absolute left-[calc(var(--process-flow-marker-size)/2)] w-0.5 -translate-x-1/2 rounded-full bg-muted\"\n style={getVerticalRailStyle()}\n />\n ) : null}\n {resolvedConnections.map((connection, index) => (\n <li\n key={connection.id}\n aria-hidden=\"true\"\n className={cn(\n \"absolute left-[calc(var(--process-flow-marker-size)/2)] w-0.5 -translate-x-1/2 rounded-full transition-colors\",\n connection.status === \"completed\" && \"bg-positive\",\n connection.status === \"active\" && \"bg-primary\",\n connection.status === \"error\" && \"bg-destructive\",\n connection.status === \"pending\" && \"bg-muted\",\n connection.status === \"disabled\" && \"bg-border\",\n )}\n style={getVerticalSegmentStyle(index, steps.length)}\n />\n ))}\n {positionedSteps.map((item) => (\n <li key={item.step.id} className=\"relative z-[1] flex min-w-0 items-center\" data-slot=\"process-flow-item\">\n <ProcessFlowStepControl\n item={item}\n contentLayout=\"inline\"\n descriptionVisibility={descriptionVisibility}\n isSelected={selectedStepId === item.step.id}\n layout=\"linear\"\n onStepSelect={onStepSelect}\n size={size}\n />\n </li>\n ))}\n </ol>\n </div>\n );\n}\n\nexport function ProcessFlow({\n steps,\n connections,\n selectedStepId,\n onStepSelect,\n orientation = \"horizontal\",\n size = \"default\",\n showDescriptions,\n className,\n style,\n \"aria-label\": ariaLabel = \"Process flow\",\n ...props\n}: ProcessFlowProps) {\n if (steps.length === 0) {\n return null;\n }\n\n const layout: ProcessFlowLayout = connections || hasCustomStepLayout(steps) ? \"branching\" : \"linear\";\n\n if (layout === \"linear\" && orientation === \"horizontal\") {\n return (\n <nav\n aria-label={ariaLabel}\n className={cn(\"w-full min-w-0\", className)}\n data-orientation={orientation}\n data-slot=\"process-flow\"\n data-size={size}\n style={style}\n {...props}\n >\n <HorizontalProcessFlow\n steps={steps}\n selectedStepId={selectedStepId}\n onStepSelect={onStepSelect}\n showDescriptions={showDescriptions}\n size={size}\n />\n </nav>\n );\n }\n\n if (layout === \"linear\" && orientation === \"vertical\") {\n return (\n <nav\n aria-label={ariaLabel}\n className={cn(\"w-full min-w-0\", className)}\n data-orientation={orientation}\n data-slot=\"process-flow\"\n data-size={size}\n style={style}\n {...props}\n >\n <VerticalProcessFlow\n steps={steps}\n selectedStepId={selectedStepId}\n onStepSelect={onStepSelect}\n showDescriptions={showDescriptions}\n size={size}\n />\n </nav>\n );\n }\n\n const positionedSteps = steps.map((step, index) => positionStep(step, index, orientation));\n const rowCount = Math.max(...positionedSteps.map((step) => step.row + 1), 1);\n const columnCount = Math.max(...positionedSteps.map((step) => step.column + 1), 1);\n const resolvedConnections = resolveConnections(positionedSteps, connections);\n const descriptionVisibility = getDescriptionVisibility(showDescriptions);\n const flowStyle = {\n \"--process-flow-columns\": columnCount,\n \"--process-flow-rows\": rowCount,\n \"--process-flow-step-min-width-base\": STEP_MIN_WIDTH[size],\n \"--process-flow-step-min-width-responsive\": RESPONSIVE_STEP_MIN_WIDTH[size],\n \"--process-flow-step-min-width-squeezed\": SQUEEZED_STEP_MIN_WIDTH[size],\n \"--process-flow-step-min-width-mini\": MINI_STEP_MIN_WIDTH[size],\n \"--process-flow-row-min-height-base\": ROW_MIN_HEIGHT[size],\n \"--process-flow-row-min-height-responsive\": RESPONSIVE_ROW_MIN_HEIGHT[size],\n \"--process-flow-row-min-height-squeezed\": SQUEEZED_ROW_MIN_HEIGHT[size],\n \"--process-flow-row-min-height-mini\": MINI_ROW_MIN_HEIGHT[size],\n \"--process-flow-gap-base\": GRID_GAP[size],\n \"--process-flow-gap-responsive\": RESPONSIVE_GRID_GAP[size],\n \"--process-flow-gap-squeezed\": SQUEEZED_GRID_GAP[size],\n \"--process-flow-gap-mini\": MINI_GRID_GAP[size],\n \"--process-flow-marker-size-base\": LINEAR_MARKER_SIZE[size],\n \"--process-flow-marker-size-responsive\": RESPONSIVE_LINEAR_MARKER_SIZE[size],\n \"--process-flow-marker-size-squeezed\": SQUEEZED_LINEAR_MARKER_SIZE[size],\n \"--process-flow-marker-size-mini\": MINI_LINEAR_MARKER_SIZE[size],\n } as CSSProperties;\n\n return (\n <nav\n aria-label={ariaLabel}\n className={cn(\"w-full min-w-0\", className)}\n data-orientation={orientation}\n data-slot=\"process-flow\"\n data-size={size}\n style={style}\n {...props}\n >\n <div className=\"overflow-x-auto py-2\" data-slot=\"process-flow-viewport\" style={flowStyle}>\n <div\n className=\"relative min-w-[calc(var(--process-flow-columns)*var(--process-flow-step-min-width))] min-h-[calc(var(--process-flow-rows)*var(--process-flow-row-min-height))]\"\n data-slot=\"process-flow-canvas\"\n >\n <svg\n aria-hidden=\"true\"\n className=\"pointer-events-none absolute inset-0 z-0 size-full overflow-visible\"\n preserveAspectRatio=\"none\"\n viewBox=\"0 0 100 100\"\n >\n {resolvedConnections.map((connection) => (\n <path\n key={connection.id}\n className={cn(\n \"fill-none stroke-2 transition-colors\",\n CONNECTION_STATUS_CLASSES[connection.status],\n connection.status === \"disabled\" && \"opacity-60\",\n )}\n d={getConnectionPath(connection, rowCount, columnCount)}\n data-status={connection.status}\n strokeLinecap=\"round\"\n vectorEffect=\"non-scaling-stroke\"\n />\n ))}\n </svg>\n\n <ol\n className=\"relative z-[1] grid min-h-[inherit] list-none p-0\"\n data-slot=\"process-flow-list\"\n style={{\n gap: \"var(--process-flow-gap)\",\n gridTemplateColumns:\n \"repeat(var(--process-flow-columns), minmax(var(--process-flow-step-min-width), 1fr))\",\n gridTemplateRows: \"repeat(var(--process-flow-rows), minmax(var(--process-flow-row-min-height), auto))\",\n }}\n >\n {positionedSteps.map((item) => (\n <li\n key={item.step.id}\n className=\"flex min-w-0 items-center justify-center\"\n data-slot=\"process-flow-item\"\n style={{\n gridColumn: item.column + 1,\n gridRow: item.row + 1,\n }}\n >\n <ProcessFlowStepControl\n item={item}\n contentLayout=\"anchored\"\n descriptionVisibility={descriptionVisibility}\n isSelected={selectedStepId === item.step.id}\n layout=\"branching\"\n onStepSelect={onStepSelect}\n size={size}\n />\n </li>\n ))}\n </ol>\n </div>\n </div>\n </nav>\n );\n}\n"],"names":["LINEAR_STEP_STATUS_CLASSES","MARKER_STATUS_CLASSES","CONNECTION_STATUS_CLASSES","STEP_MIN_WIDTH","RESPONSIVE_STEP_MIN_WIDTH","SQUEEZED_STEP_MIN_WIDTH","MINI_STEP_MIN_WIDTH","ROW_MIN_HEIGHT","RESPONSIVE_ROW_MIN_HEIGHT","SQUEEZED_ROW_MIN_HEIGHT","MINI_ROW_MIN_HEIGHT","GRID_GAP","RESPONSIVE_GRID_GAP","SQUEEZED_GRID_GAP","MINI_GRID_GAP","LINEAR_MARKER_SIZE","RESPONSIVE_LINEAR_MARKER_SIZE","SQUEEZED_LINEAR_MARKER_SIZE","MINI_LINEAR_MARKER_SIZE","getMarkerContent","status","stepNumber","jsx","CheckIcon","TriangleAlertIcon","LockIcon","DotIcon","getLinearSegmentStyle","index","count","getVerticalSegmentStyle","getHorizontalRailStyle","inset","getVerticalRailStyle","getStepControlClassName","contentLayout","onStepSelect","isDisabled","size","cn","getMarkerClassName","isSelected","getLabelClassName","layout","ProcessFlowStepControl","item","descriptionVisibility","step","stepIndex","accessibleLabel","getStepAccessibleLabel","textVisibility","controlClassName","markerContent","textContent","jsxs","STATUS_LABELS","content","Fragment","nativeEvent","HorizontalProcessFlow","steps","selectedStepId","showDescriptions","positionedSteps","positionStep","resolvedConnections","resolveConnections","getDescriptionVisibility","flowStyle","connection","VerticalProcessFlow","ProcessFlow","connections","orientation","className","style","ariaLabel","props","hasCustomStepLayout","rowCount","columnCount","getConnectionPath"],"mappings":"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"}
|
|
@@ -0,0 +1,2 @@
|
|
|
1
|
+
"use strict";Object.defineProperty(exports,Symbol.toStringTag,{value:"Module"});const p=["pending","active","completed","error","disabled"],u={pending:"Pending",active:"Active",completed:"Completed",error:"Error",disabled:"Disabled"};function S(e){return e===!0?"visible":e===!1?"hidden":"visible"}function l(e,t){return Math.max(Math.floor(e??t),0)}function d(e){return e.disabled?"disabled":e.status??"pending"}function f(e,t,i){return e.ariaLabel?e.ariaLabel:`${typeof e.label=="string"?e.label:`Step ${i}`}, ${u[t]}`}function b(e,t,i){const r=i==="vertical"?t:0,n=i==="vertical"?0:t;return{step:e,stepIndex:t,status:d(e),row:l(e.position?.row,r),column:l(e.position?.column,n)}}function c(e,t){return e==="error"||t==="error"?"error":e==="disabled"||t==="disabled"?"disabled":e==="completed"&&(t==="completed"||t==="active")?"completed":e==="active"||t==="active"?"active":"pending"}function m(e){return e.slice(0,-1).map((t,i)=>({from:t.step.id,to:e[i+1].step.id}))}function g(e,t){const i=new Map(e.map(r=>[r.step.id,r]));return(t??m(e)).flatMap((r,n)=>{const o=i.get(r.from),a=i.get(r.to);return!o||!a?[]:[{...r,id:r.id??`${r.from}-${r.to}-${n}`,fromStep:o,toStep:a,status:r.status??c(o.status,a.status)}]})}function s(e,t,i){return{x:(e.column+.5)/i*100,y:(e.row+.5)/t*100}}function $(e,t,i){const r=s(e.fromStep,t,i),n=s(e.toStep,t,i);if(e.fromStep.row===e.toStep.row||e.fromStep.column===e.toStep.column)return`M ${r.x} ${r.y} L ${n.x} ${n.y}`;const o=(r.x+n.x)/2;return`M ${r.x} ${r.y} C ${o} ${r.y}, ${o} ${n.y}, ${n.x} ${n.y}`}function v(e){return e.some(t=>t.position)}exports.PROCESS_FLOW_STEP_STATUSES=p;exports.STATUS_LABELS=u;exports.deriveConnectionStatus=c;exports.getConnectionPath=$;exports.getDescriptionVisibility=S;exports.getPoint=s;exports.getStepAccessibleLabel=f;exports.getStepStatus=d;exports.hasCustomStepLayout=v;exports.normalizeGridIndex=l;exports.positionStep=b;exports.resolveConnections=g;
|
|
2
|
+
//# sourceMappingURL=ProcessFlow.utils.cjs.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"ProcessFlow.utils.cjs","sources":["../../../../src/components/composed/ProcessFlow/ProcessFlow.utils.ts"],"sourcesContent":["import type { ReactNode } from \"react\";\n\n/**\n * Runtime list of the visual states supported by ProcessFlow steps.\n * Use this for controls, schemas, and forms that need to present the same status values the component understands.\n */\nexport const PROCESS_FLOW_STEP_STATUSES = [\"pending\", \"active\", \"completed\", \"error\", \"disabled\"] as const;\n\n/**\n * Visual state for a ProcessFlow step.\n *\n * The parent application owns this state. ProcessFlow renders the provided status and does not run workflow side effects.\n */\nexport type ProcessFlowStepStatus = (typeof PROCESS_FLOW_STEP_STATUSES)[number];\nexport type ProcessStepStatus = ProcessFlowStepStatus;\n\n/** Direction for linear process flows. Branching flows are configured with step positions and connections. */\nexport type ProcessFlowOrientation = \"horizontal\" | \"vertical\";\n\n/** Visual density of the process flow. */\nexport type ProcessFlowSize = \"default\" | \"compact\";\n\nexport type ProcessFlowDescriptionVisibility = \"auto\" | \"hidden\" | \"visible\";\n\nexport interface ProcessFlowStepPosition {\n /** Zero-based row used when rendering a simple branching/configurable flow. */\n row?: number;\n /** Zero-based column used when rendering a simple branching/configurable flow. */\n column?: number;\n}\n\n/**\n * Configurable step rendered by ProcessFlow.\n *\n * Keep workflow-specific behavior in the parent. A step config should describe what to render, not what to do when a\n * workflow completes or errors.\n */\nexport interface ProcessFlowStep {\n /** Stable identifier used for selection and connections. */\n id: string;\n /** Visible step label. */\n label: ReactNode;\n /** Optional secondary text shown under or beside the label. */\n description?: ReactNode;\n /** Parent-controlled visual state. Defaults to \"pending\". */\n status?: ProcessFlowStepStatus;\n /** Accessible label for selectable steps. */\n ariaLabel?: string;\n /** Forces the step into the disabled visual/non-interactive state. */\n disabled?: boolean;\n /** Set to false when the step should render as non-navigable even when onStepSelect is provided. */\n selectable?: boolean;\n /** Optional grid position for simple branching/configurable layouts. */\n position?: ProcessFlowStepPosition;\n}\n\nexport type ProcessFlowStepConfig = ProcessFlowStep;\nexport type ProcessStep = ProcessFlowStep;\n\n/** Connection between two steps in a branching/configurable flow. Linear flows derive connections automatically. */\nexport interface ProcessFlowConnection {\n id?: string;\n from: string;\n to: string;\n status?: ProcessFlowStepStatus;\n ariaLabel?: string;\n}\n\nexport interface PositionedStep {\n step: ProcessFlowStep;\n stepIndex: number;\n status: ProcessFlowStepStatus;\n row: number;\n column: number;\n}\n\nexport interface ResolvedConnection extends ProcessFlowConnection {\n id: string;\n fromStep: PositionedStep;\n toStep: PositionedStep;\n status: ProcessFlowStepStatus;\n}\n\nexport interface Point {\n x: number;\n y: number;\n}\n\nexport const STATUS_LABELS: Record<ProcessFlowStepStatus, string> = {\n pending: \"Pending\",\n active: \"Active\",\n completed: \"Completed\",\n error: \"Error\",\n disabled: \"Disabled\",\n};\n\nexport function getDescriptionVisibility(showDescriptions?: boolean): ProcessFlowDescriptionVisibility {\n if (showDescriptions === true) {\n return \"visible\";\n }\n\n if (showDescriptions === false) {\n return \"hidden\";\n }\n\n return \"visible\";\n}\n\nexport function normalizeGridIndex(value: number | undefined, fallback: number) {\n return Math.max(Math.floor(value ?? fallback), 0);\n}\n\nexport function getStepStatus(step: ProcessFlowStep): ProcessFlowStepStatus {\n if (step.disabled) {\n return \"disabled\";\n }\n\n return step.status ?? \"pending\";\n}\n\nexport function getStepAccessibleLabel(step: ProcessFlowStep, status: ProcessFlowStepStatus, stepNumber: number) {\n if (step.ariaLabel) {\n return step.ariaLabel;\n }\n\n const label = typeof step.label === \"string\" ? step.label : `Step ${stepNumber}`;\n\n return `${label}, ${STATUS_LABELS[status]}`;\n}\n\nexport function positionStep(\n step: ProcessFlowStep,\n index: number,\n orientation: ProcessFlowOrientation,\n): PositionedStep {\n const rowFallback = orientation === \"vertical\" ? index : 0;\n const columnFallback = orientation === \"vertical\" ? 0 : index;\n\n return {\n step,\n stepIndex: index,\n status: getStepStatus(step),\n row: normalizeGridIndex(step.position?.row, rowFallback),\n column: normalizeGridIndex(step.position?.column, columnFallback),\n };\n}\n\nexport function deriveConnectionStatus(\n fromStatus: ProcessFlowStepStatus,\n toStatus: ProcessFlowStepStatus,\n): ProcessFlowStepStatus {\n if (fromStatus === \"error\" || toStatus === \"error\") {\n return \"error\";\n }\n\n if (fromStatus === \"disabled\" || toStatus === \"disabled\") {\n return \"disabled\";\n }\n\n if (fromStatus === \"completed\" && (toStatus === \"completed\" || toStatus === \"active\")) {\n return \"completed\";\n }\n\n if (fromStatus === \"active\" || toStatus === \"active\") {\n return \"active\";\n }\n\n return \"pending\";\n}\n\nfunction getLinearConnections(steps: PositionedStep[]): ProcessFlowConnection[] {\n return steps.slice(0, -1).map((step, index) => ({\n from: step.step.id,\n to: steps[index + 1].step.id,\n }));\n}\n\nexport function resolveConnections(steps: PositionedStep[], connections?: ProcessFlowConnection[]) {\n const stepMap = new Map(steps.map((step) => [step.step.id, step]));\n\n return (connections ?? getLinearConnections(steps)).flatMap((connection, index): ResolvedConnection[] => {\n const fromStep = stepMap.get(connection.from);\n const toStep = stepMap.get(connection.to);\n\n if (!fromStep || !toStep) {\n return [];\n }\n\n return [\n {\n ...connection,\n id: connection.id ?? `${connection.from}-${connection.to}-${index}`,\n fromStep,\n toStep,\n status: connection.status ?? deriveConnectionStatus(fromStep.status, toStep.status),\n },\n ];\n });\n}\n\nexport function getPoint(step: PositionedStep, rowCount: number, columnCount: number): Point {\n return {\n x: ((step.column + 0.5) / columnCount) * 100,\n y: ((step.row + 0.5) / rowCount) * 100,\n };\n}\n\nexport function getConnectionPath(connection: ResolvedConnection, rowCount: number, columnCount: number) {\n const start = getPoint(connection.fromStep, rowCount, columnCount);\n const end = getPoint(connection.toStep, rowCount, columnCount);\n\n if (connection.fromStep.row === connection.toStep.row || connection.fromStep.column === connection.toStep.column) {\n return `M ${start.x} ${start.y} L ${end.x} ${end.y}`;\n }\n\n const midX = (start.x + end.x) / 2;\n\n return `M ${start.x} ${start.y} C ${midX} ${start.y}, ${midX} ${end.y}, ${end.x} ${end.y}`;\n}\n\nexport function hasCustomStepLayout(steps: ProcessFlowStep[]) {\n return steps.some((step) => step.position);\n}\n"],"names":["PROCESS_FLOW_STEP_STATUSES","STATUS_LABELS","getDescriptionVisibility","showDescriptions","normalizeGridIndex","value","fallback","getStepStatus","step","getStepAccessibleLabel","status","stepNumber","positionStep","index","orientation","rowFallback","columnFallback","deriveConnectionStatus","fromStatus","toStatus","getLinearConnections","steps","resolveConnections","connections","stepMap","connection","fromStep","toStep","getPoint","rowCount","columnCount","getConnectionPath","start","end","midX","hasCustomStepLayout"],"mappings":"gFAMO,MAAMA,EAA6B,CAAC,UAAW,SAAU,YAAa,QAAS,UAAU,EAkFnFC,EAAuD,CAClE,QAAS,UACT,OAAQ,SACR,UAAW,YACX,MAAO,QACP,SAAU,UACZ,EAEO,SAASC,EAAyBC,EAA8D,CACrG,OAAIA,IAAqB,GAChB,UAGLA,IAAqB,GAChB,SAGF,SACT,CAEO,SAASC,EAAmBC,EAA2BC,EAAkB,CAC9E,OAAO,KAAK,IAAI,KAAK,MAAMD,GAASC,CAAQ,EAAG,CAAC,CAClD,CAEO,SAASC,EAAcC,EAA8C,CAC1E,OAAIA,EAAK,SACA,WAGFA,EAAK,QAAU,SACxB,CAEO,SAASC,EAAuBD,EAAuBE,EAA+BC,EAAoB,CAC/G,OAAIH,EAAK,UACAA,EAAK,UAKP,GAFO,OAAOA,EAAK,OAAU,SAAWA,EAAK,MAAQ,QAAQG,CAAU,EAE/D,KAAKV,EAAcS,CAAM,CAAC,EAC3C,CAEO,SAASE,EACdJ,EACAK,EACAC,EACgB,CAChB,MAAMC,EAAcD,IAAgB,WAAaD,EAAQ,EACnDG,EAAiBF,IAAgB,WAAa,EAAID,EAExD,MAAO,CACL,KAAAL,EACA,UAAWK,EACX,OAAQN,EAAcC,CAAI,EAC1B,IAAKJ,EAAmBI,EAAK,UAAU,IAAKO,CAAW,EACvD,OAAQX,EAAmBI,EAAK,UAAU,OAAQQ,CAAc,CAAA,CAEpE,CAEO,SAASC,EACdC,EACAC,EACuB,CACvB,OAAID,IAAe,SAAWC,IAAa,QAClC,QAGLD,IAAe,YAAcC,IAAa,WACrC,WAGLD,IAAe,cAAgBC,IAAa,aAAeA,IAAa,UACnE,YAGLD,IAAe,UAAYC,IAAa,SACnC,SAGF,SACT,CAEA,SAASC,EAAqBC,EAAkD,CAC9E,OAAOA,EAAM,MAAM,EAAG,EAAE,EAAE,IAAI,CAACb,EAAMK,KAAW,CAC9C,KAAML,EAAK,KAAK,GAChB,GAAIa,EAAMR,EAAQ,CAAC,EAAE,KAAK,EAAA,EAC1B,CACJ,CAEO,SAASS,EAAmBD,EAAyBE,EAAuC,CACjG,MAAMC,EAAU,IAAI,IAAIH,EAAM,IAAKb,GAAS,CAACA,EAAK,KAAK,GAAIA,CAAI,CAAC,CAAC,EAEjE,OAAQe,GAAeH,EAAqBC,CAAK,GAAG,QAAQ,CAACI,EAAYZ,IAAgC,CACvG,MAAMa,EAAWF,EAAQ,IAAIC,EAAW,IAAI,EACtCE,EAASH,EAAQ,IAAIC,EAAW,EAAE,EAExC,MAAI,CAACC,GAAY,CAACC,EACT,CAAA,EAGF,CACL,CACE,GAAGF,EACH,GAAIA,EAAW,IAAM,GAAGA,EAAW,IAAI,IAAIA,EAAW,EAAE,IAAIZ,CAAK,GACjE,SAAAa,EACA,OAAAC,EACA,OAAQF,EAAW,QAAUR,EAAuBS,EAAS,OAAQC,EAAO,MAAM,CAAA,CACpF,CAEJ,CAAC,CACH,CAEO,SAASC,EAASpB,EAAsBqB,EAAkBC,EAA4B,CAC3F,MAAO,CACL,GAAKtB,EAAK,OAAS,IAAOsB,EAAe,IACzC,GAAKtB,EAAK,IAAM,IAAOqB,EAAY,GAAA,CAEvC,CAEO,SAASE,EAAkBN,EAAgCI,EAAkBC,EAAqB,CACvG,MAAME,EAAQJ,EAASH,EAAW,SAAUI,EAAUC,CAAW,EAC3DG,EAAML,EAASH,EAAW,OAAQI,EAAUC,CAAW,EAE7D,GAAIL,EAAW,SAAS,MAAQA,EAAW,OAAO,KAAOA,EAAW,SAAS,SAAWA,EAAW,OAAO,OACxG,MAAO,KAAKO,EAAM,CAAC,IAAIA,EAAM,CAAC,MAAMC,EAAI,CAAC,IAAIA,EAAI,CAAC,GAGpD,MAAMC,GAAQF,EAAM,EAAIC,EAAI,GAAK,EAEjC,MAAO,KAAKD,EAAM,CAAC,IAAIA,EAAM,CAAC,MAAME,CAAI,IAAIF,EAAM,CAAC,KAAKE,CAAI,IAAID,EAAI,CAAC,KAAKA,EAAI,CAAC,IAAIA,EAAI,CAAC,EAC1F,CAEO,SAASE,EAAoBd,EAA0B,CAC5D,OAAOA,EAAM,KAAMb,GAASA,EAAK,QAAQ,CAC3C"}
|
|
@@ -0,0 +1,84 @@
|
|
|
1
|
+
const p = ["pending", "active", "completed", "error", "disabled"], d = {
|
|
2
|
+
pending: "Pending",
|
|
3
|
+
active: "Active",
|
|
4
|
+
completed: "Completed",
|
|
5
|
+
error: "Error",
|
|
6
|
+
disabled: "Disabled"
|
|
7
|
+
};
|
|
8
|
+
function m(e) {
|
|
9
|
+
return e === !0 ? "visible" : e === !1 ? "hidden" : "visible";
|
|
10
|
+
}
|
|
11
|
+
function l(e, t) {
|
|
12
|
+
return Math.max(Math.floor(e ?? t), 0);
|
|
13
|
+
}
|
|
14
|
+
function s(e) {
|
|
15
|
+
return e.disabled ? "disabled" : e.status ?? "pending";
|
|
16
|
+
}
|
|
17
|
+
function b(e, t, i) {
|
|
18
|
+
return e.ariaLabel ? e.ariaLabel : `${typeof e.label == "string" ? e.label : `Step ${i}`}, ${d[t]}`;
|
|
19
|
+
}
|
|
20
|
+
function $(e, t, i) {
|
|
21
|
+
const r = i === "vertical" ? t : 0, n = i === "vertical" ? 0 : t;
|
|
22
|
+
return {
|
|
23
|
+
step: e,
|
|
24
|
+
stepIndex: t,
|
|
25
|
+
status: s(e),
|
|
26
|
+
row: l(e.position?.row, r),
|
|
27
|
+
column: l(e.position?.column, n)
|
|
28
|
+
};
|
|
29
|
+
}
|
|
30
|
+
function f(e, t) {
|
|
31
|
+
return e === "error" || t === "error" ? "error" : e === "disabled" || t === "disabled" ? "disabled" : e === "completed" && (t === "completed" || t === "active") ? "completed" : e === "active" || t === "active" ? "active" : "pending";
|
|
32
|
+
}
|
|
33
|
+
function c(e) {
|
|
34
|
+
return e.slice(0, -1).map((t, i) => ({
|
|
35
|
+
from: t.step.id,
|
|
36
|
+
to: e[i + 1].step.id
|
|
37
|
+
}));
|
|
38
|
+
}
|
|
39
|
+
function S(e, t) {
|
|
40
|
+
const i = new Map(e.map((r) => [r.step.id, r]));
|
|
41
|
+
return (t ?? c(e)).flatMap((r, n) => {
|
|
42
|
+
const o = i.get(r.from), a = i.get(r.to);
|
|
43
|
+
return !o || !a ? [] : [
|
|
44
|
+
{
|
|
45
|
+
...r,
|
|
46
|
+
id: r.id ?? `${r.from}-${r.to}-${n}`,
|
|
47
|
+
fromStep: o,
|
|
48
|
+
toStep: a,
|
|
49
|
+
status: r.status ?? f(o.status, a.status)
|
|
50
|
+
}
|
|
51
|
+
];
|
|
52
|
+
});
|
|
53
|
+
}
|
|
54
|
+
function u(e, t, i) {
|
|
55
|
+
return {
|
|
56
|
+
x: (e.column + 0.5) / i * 100,
|
|
57
|
+
y: (e.row + 0.5) / t * 100
|
|
58
|
+
};
|
|
59
|
+
}
|
|
60
|
+
function g(e, t, i) {
|
|
61
|
+
const r = u(e.fromStep, t, i), n = u(e.toStep, t, i);
|
|
62
|
+
if (e.fromStep.row === e.toStep.row || e.fromStep.column === e.toStep.column)
|
|
63
|
+
return `M ${r.x} ${r.y} L ${n.x} ${n.y}`;
|
|
64
|
+
const o = (r.x + n.x) / 2;
|
|
65
|
+
return `M ${r.x} ${r.y} C ${o} ${r.y}, ${o} ${n.y}, ${n.x} ${n.y}`;
|
|
66
|
+
}
|
|
67
|
+
function v(e) {
|
|
68
|
+
return e.some((t) => t.position);
|
|
69
|
+
}
|
|
70
|
+
export {
|
|
71
|
+
p as PROCESS_FLOW_STEP_STATUSES,
|
|
72
|
+
d as STATUS_LABELS,
|
|
73
|
+
f as deriveConnectionStatus,
|
|
74
|
+
g as getConnectionPath,
|
|
75
|
+
m as getDescriptionVisibility,
|
|
76
|
+
u as getPoint,
|
|
77
|
+
b as getStepAccessibleLabel,
|
|
78
|
+
s as getStepStatus,
|
|
79
|
+
v as hasCustomStepLayout,
|
|
80
|
+
l as normalizeGridIndex,
|
|
81
|
+
$ as positionStep,
|
|
82
|
+
S as resolveConnections
|
|
83
|
+
};
|
|
84
|
+
//# sourceMappingURL=ProcessFlow.utils.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"ProcessFlow.utils.js","sources":["../../../../src/components/composed/ProcessFlow/ProcessFlow.utils.ts"],"sourcesContent":["import type { ReactNode } from \"react\";\n\n/**\n * Runtime list of the visual states supported by ProcessFlow steps.\n * Use this for controls, schemas, and forms that need to present the same status values the component understands.\n */\nexport const PROCESS_FLOW_STEP_STATUSES = [\"pending\", \"active\", \"completed\", \"error\", \"disabled\"] as const;\n\n/**\n * Visual state for a ProcessFlow step.\n *\n * The parent application owns this state. ProcessFlow renders the provided status and does not run workflow side effects.\n */\nexport type ProcessFlowStepStatus = (typeof PROCESS_FLOW_STEP_STATUSES)[number];\nexport type ProcessStepStatus = ProcessFlowStepStatus;\n\n/** Direction for linear process flows. Branching flows are configured with step positions and connections. */\nexport type ProcessFlowOrientation = \"horizontal\" | \"vertical\";\n\n/** Visual density of the process flow. */\nexport type ProcessFlowSize = \"default\" | \"compact\";\n\nexport type ProcessFlowDescriptionVisibility = \"auto\" | \"hidden\" | \"visible\";\n\nexport interface ProcessFlowStepPosition {\n /** Zero-based row used when rendering a simple branching/configurable flow. */\n row?: number;\n /** Zero-based column used when rendering a simple branching/configurable flow. */\n column?: number;\n}\n\n/**\n * Configurable step rendered by ProcessFlow.\n *\n * Keep workflow-specific behavior in the parent. A step config should describe what to render, not what to do when a\n * workflow completes or errors.\n */\nexport interface ProcessFlowStep {\n /** Stable identifier used for selection and connections. */\n id: string;\n /** Visible step label. */\n label: ReactNode;\n /** Optional secondary text shown under or beside the label. */\n description?: ReactNode;\n /** Parent-controlled visual state. Defaults to \"pending\". */\n status?: ProcessFlowStepStatus;\n /** Accessible label for selectable steps. */\n ariaLabel?: string;\n /** Forces the step into the disabled visual/non-interactive state. */\n disabled?: boolean;\n /** Set to false when the step should render as non-navigable even when onStepSelect is provided. */\n selectable?: boolean;\n /** Optional grid position for simple branching/configurable layouts. */\n position?: ProcessFlowStepPosition;\n}\n\nexport type ProcessFlowStepConfig = ProcessFlowStep;\nexport type ProcessStep = ProcessFlowStep;\n\n/** Connection between two steps in a branching/configurable flow. Linear flows derive connections automatically. */\nexport interface ProcessFlowConnection {\n id?: string;\n from: string;\n to: string;\n status?: ProcessFlowStepStatus;\n ariaLabel?: string;\n}\n\nexport interface PositionedStep {\n step: ProcessFlowStep;\n stepIndex: number;\n status: ProcessFlowStepStatus;\n row: number;\n column: number;\n}\n\nexport interface ResolvedConnection extends ProcessFlowConnection {\n id: string;\n fromStep: PositionedStep;\n toStep: PositionedStep;\n status: ProcessFlowStepStatus;\n}\n\nexport interface Point {\n x: number;\n y: number;\n}\n\nexport const STATUS_LABELS: Record<ProcessFlowStepStatus, string> = {\n pending: \"Pending\",\n active: \"Active\",\n completed: \"Completed\",\n error: \"Error\",\n disabled: \"Disabled\",\n};\n\nexport function getDescriptionVisibility(showDescriptions?: boolean): ProcessFlowDescriptionVisibility {\n if (showDescriptions === true) {\n return \"visible\";\n }\n\n if (showDescriptions === false) {\n return \"hidden\";\n }\n\n return \"visible\";\n}\n\nexport function normalizeGridIndex(value: number | undefined, fallback: number) {\n return Math.max(Math.floor(value ?? fallback), 0);\n}\n\nexport function getStepStatus(step: ProcessFlowStep): ProcessFlowStepStatus {\n if (step.disabled) {\n return \"disabled\";\n }\n\n return step.status ?? \"pending\";\n}\n\nexport function getStepAccessibleLabel(step: ProcessFlowStep, status: ProcessFlowStepStatus, stepNumber: number) {\n if (step.ariaLabel) {\n return step.ariaLabel;\n }\n\n const label = typeof step.label === \"string\" ? step.label : `Step ${stepNumber}`;\n\n return `${label}, ${STATUS_LABELS[status]}`;\n}\n\nexport function positionStep(\n step: ProcessFlowStep,\n index: number,\n orientation: ProcessFlowOrientation,\n): PositionedStep {\n const rowFallback = orientation === \"vertical\" ? index : 0;\n const columnFallback = orientation === \"vertical\" ? 0 : index;\n\n return {\n step,\n stepIndex: index,\n status: getStepStatus(step),\n row: normalizeGridIndex(step.position?.row, rowFallback),\n column: normalizeGridIndex(step.position?.column, columnFallback),\n };\n}\n\nexport function deriveConnectionStatus(\n fromStatus: ProcessFlowStepStatus,\n toStatus: ProcessFlowStepStatus,\n): ProcessFlowStepStatus {\n if (fromStatus === \"error\" || toStatus === \"error\") {\n return \"error\";\n }\n\n if (fromStatus === \"disabled\" || toStatus === \"disabled\") {\n return \"disabled\";\n }\n\n if (fromStatus === \"completed\" && (toStatus === \"completed\" || toStatus === \"active\")) {\n return \"completed\";\n }\n\n if (fromStatus === \"active\" || toStatus === \"active\") {\n return \"active\";\n }\n\n return \"pending\";\n}\n\nfunction getLinearConnections(steps: PositionedStep[]): ProcessFlowConnection[] {\n return steps.slice(0, -1).map((step, index) => ({\n from: step.step.id,\n to: steps[index + 1].step.id,\n }));\n}\n\nexport function resolveConnections(steps: PositionedStep[], connections?: ProcessFlowConnection[]) {\n const stepMap = new Map(steps.map((step) => [step.step.id, step]));\n\n return (connections ?? getLinearConnections(steps)).flatMap((connection, index): ResolvedConnection[] => {\n const fromStep = stepMap.get(connection.from);\n const toStep = stepMap.get(connection.to);\n\n if (!fromStep || !toStep) {\n return [];\n }\n\n return [\n {\n ...connection,\n id: connection.id ?? `${connection.from}-${connection.to}-${index}`,\n fromStep,\n toStep,\n status: connection.status ?? deriveConnectionStatus(fromStep.status, toStep.status),\n },\n ];\n });\n}\n\nexport function getPoint(step: PositionedStep, rowCount: number, columnCount: number): Point {\n return {\n x: ((step.column + 0.5) / columnCount) * 100,\n y: ((step.row + 0.5) / rowCount) * 100,\n };\n}\n\nexport function getConnectionPath(connection: ResolvedConnection, rowCount: number, columnCount: number) {\n const start = getPoint(connection.fromStep, rowCount, columnCount);\n const end = getPoint(connection.toStep, rowCount, columnCount);\n\n if (connection.fromStep.row === connection.toStep.row || connection.fromStep.column === connection.toStep.column) {\n return `M ${start.x} ${start.y} L ${end.x} ${end.y}`;\n }\n\n const midX = (start.x + end.x) / 2;\n\n return `M ${start.x} ${start.y} C ${midX} ${start.y}, ${midX} ${end.y}, ${end.x} ${end.y}`;\n}\n\nexport function hasCustomStepLayout(steps: ProcessFlowStep[]) {\n return steps.some((step) => step.position);\n}\n"],"names":["PROCESS_FLOW_STEP_STATUSES","STATUS_LABELS","getDescriptionVisibility","showDescriptions","normalizeGridIndex","value","fallback","getStepStatus","step","getStepAccessibleLabel","status","stepNumber","positionStep","index","orientation","rowFallback","columnFallback","deriveConnectionStatus","fromStatus","toStatus","getLinearConnections","steps","resolveConnections","connections","stepMap","connection","fromStep","toStep","getPoint","rowCount","columnCount","getConnectionPath","start","end","midX","hasCustomStepLayout"],"mappings":"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"}
|
|
@@ -1,2 +1,2 @@
|
|
|
1
|
-
"use strict";Object.defineProperty(exports,Symbol.toStringTag,{value:"Module"});const o=require("react/jsx-runtime"),c=require("lucide-react"),r=require("radix-ui"),
|
|
1
|
+
"use strict";Object.defineProperty(exports,Symbol.toStringTag,{value:"Module"});const o=require("react/jsx-runtime"),c=require("lucide-react"),r=require("radix-ui"),t=require("../../lib/utils.cjs");function a({className:e,...n}){return o.jsx(r.Accordion.Root,{"data-slot":"accordion",className:t.cn("flex w-full flex-col",e),...n})}function d({className:e,...n}){return o.jsx(r.Accordion.Item,{"data-slot":"accordion-item",className:t.cn("not-last:border-b",e),...n})}function s({className:e,children:n,...i}){return o.jsx(r.Accordion.Header,{className:"flex",children:o.jsxs(r.Accordion.Trigger,{"data-slot":"accordion-trigger",className:t.cn("group/accordion-trigger relative flex flex-1 items-start justify-between rounded-lg border border-transparent py-2.5 text-left text-sm font-medium transition-all outline-none hover:underline focus-visible:border-ring focus-visible:shadow-focus focus-visible:after:border-ring disabled:pointer-events-none disabled:opacity-50 **:data-[slot=accordion-trigger-icon]:ml-auto **:data-[slot=accordion-trigger-icon]:size-4 **:data-[slot=accordion-trigger-icon]:text-muted-foreground",e),...i,children:[n,o.jsx(c.ChevronDownIcon,{"data-slot":"accordion-trigger-icon",className:"pointer-events-none shrink-0 group-aria-expanded/accordion-trigger:hidden"}),o.jsx(c.ChevronUpIcon,{"data-slot":"accordion-trigger-icon",className:"pointer-events-none hidden shrink-0 group-aria-expanded/accordion-trigger:inline"})]})})}function l({className:e,children:n,...i}){return o.jsx(r.Accordion.Content,{"data-slot":"accordion-content",className:"overflow-hidden text-sm data-open:animate-accordion-down data-closed:animate-accordion-up",...i,children:o.jsx("div",{className:t.cn("h-(--radix-accordion-content-height) pt-0 pb-2.5 [&_a]:underline [&_a]:underline-offset-3 [&_a]:hover:text-foreground [&_p:not(:last-child)]:mb-4",e),children:n})})}exports.Accordion=a;exports.AccordionContent=l;exports.AccordionItem=d;exports.AccordionTrigger=s;
|
|
2
2
|
//# sourceMappingURL=accordion.cjs.map
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"accordion.cjs","sources":["../../../src/components/ui/accordion.tsx"],"sourcesContent":["import { ChevronDownIcon, ChevronUpIcon } from \"lucide-react\"\nimport { Accordion as AccordionPrimitive } from \"radix-ui\"\nimport * as React from \"react\"\n\nimport { cn } from \"@/lib/utils\"\n\n\nfunction Accordion({\n className,\n ...props\n}: React.ComponentProps<typeof AccordionPrimitive.Root>) {\n return (\n <AccordionPrimitive.Root\n data-slot=\"accordion\"\n className={cn(\"flex w-full flex-col\", className)}\n {...props}\n />\n )\n}\n\nfunction AccordionItem({\n className,\n ...props\n}: React.ComponentProps<typeof AccordionPrimitive.Item>) {\n return (\n <AccordionPrimitive.Item\n data-slot=\"accordion-item\"\n className={cn(\"not-last:border-b\", className)}\n {...props}\n />\n )\n}\n\nfunction AccordionTrigger({\n className,\n children,\n ...props\n}: React.ComponentProps<typeof AccordionPrimitive.Trigger>) {\n return (\n <AccordionPrimitive.Header className=\"flex\">\n <AccordionPrimitive.Trigger\n data-slot=\"accordion-trigger\"\n className={cn(\n \"group/accordion-trigger relative flex flex-1 items-start justify-between rounded-lg border border-transparent py-2.5 text-left text-sm font-medium transition-all outline-none hover:underline focus-visible:border-ring focus-visible:
|
|
1
|
+
{"version":3,"file":"accordion.cjs","sources":["../../../src/components/ui/accordion.tsx"],"sourcesContent":["import { ChevronDownIcon, ChevronUpIcon } from \"lucide-react\"\nimport { Accordion as AccordionPrimitive } from \"radix-ui\"\nimport * as React from \"react\"\n\nimport { cn } from \"@/lib/utils\"\n\n\nfunction Accordion({\n className,\n ...props\n}: React.ComponentProps<typeof AccordionPrimitive.Root>) {\n return (\n <AccordionPrimitive.Root\n data-slot=\"accordion\"\n className={cn(\"flex w-full flex-col\", className)}\n {...props}\n />\n )\n}\n\nfunction AccordionItem({\n className,\n ...props\n}: React.ComponentProps<typeof AccordionPrimitive.Item>) {\n return (\n <AccordionPrimitive.Item\n data-slot=\"accordion-item\"\n className={cn(\"not-last:border-b\", className)}\n {...props}\n />\n )\n}\n\nfunction AccordionTrigger({\n className,\n children,\n ...props\n}: React.ComponentProps<typeof AccordionPrimitive.Trigger>) {\n return (\n <AccordionPrimitive.Header className=\"flex\">\n <AccordionPrimitive.Trigger\n data-slot=\"accordion-trigger\"\n className={cn(\n \"group/accordion-trigger relative flex flex-1 items-start justify-between rounded-lg border border-transparent py-2.5 text-left text-sm font-medium transition-all outline-none hover:underline focus-visible:border-ring focus-visible:shadow-focus focus-visible:after:border-ring disabled:pointer-events-none disabled:opacity-50 **:data-[slot=accordion-trigger-icon]:ml-auto **:data-[slot=accordion-trigger-icon]:size-4 **:data-[slot=accordion-trigger-icon]:text-muted-foreground\",\n className\n )}\n {...props}\n >\n {children}\n <ChevronDownIcon data-slot=\"accordion-trigger-icon\" className=\"pointer-events-none shrink-0 group-aria-expanded/accordion-trigger:hidden\" />\n <ChevronUpIcon data-slot=\"accordion-trigger-icon\" className=\"pointer-events-none hidden shrink-0 group-aria-expanded/accordion-trigger:inline\" />\n </AccordionPrimitive.Trigger>\n </AccordionPrimitive.Header>\n )\n}\n\nfunction AccordionContent({\n className,\n children,\n ...props\n}: React.ComponentProps<typeof AccordionPrimitive.Content>) {\n return (\n <AccordionPrimitive.Content\n data-slot=\"accordion-content\"\n className=\"overflow-hidden text-sm data-open:animate-accordion-down data-closed:animate-accordion-up\"\n {...props}\n >\n <div\n className={cn(\n \"h-(--radix-accordion-content-height) pt-0 pb-2.5 [&_a]:underline [&_a]:underline-offset-3 [&_a]:hover:text-foreground [&_p:not(:last-child)]:mb-4\",\n className\n )}\n >\n {children}\n </div>\n </AccordionPrimitive.Content>\n )\n}\n\nexport { Accordion, AccordionItem, AccordionTrigger, AccordionContent }\n"],"names":["Accordion","className","props","jsx","AccordionPrimitive","cn","AccordionItem","AccordionTrigger","children","jsxs","ChevronDownIcon","ChevronUpIcon","AccordionContent"],"mappings":"sMAOA,SAASA,EAAU,CACjB,UAAAC,EACA,GAAGC,CACL,EAAyD,CACvD,OACEC,EAAAA,IAACC,EAAAA,UAAmB,KAAnB,CACC,YAAU,YACV,UAAWC,EAAAA,GAAG,uBAAwBJ,CAAS,EAC9C,GAAGC,CAAA,CAAA,CAGV,CAEA,SAASI,EAAc,CACrB,UAAAL,EACA,GAAGC,CACL,EAAyD,CACvD,OACEC,EAAAA,IAACC,EAAAA,UAAmB,KAAnB,CACC,YAAU,iBACV,UAAWC,EAAAA,GAAG,oBAAqBJ,CAAS,EAC3C,GAAGC,CAAA,CAAA,CAGV,CAEA,SAASK,EAAiB,CACxB,UAAAN,EACA,SAAAO,EACA,GAAGN,CACL,EAA4D,CAC1D,OACEC,EAAAA,IAACC,EAAAA,UAAmB,OAAnB,CAA0B,UAAU,OACnC,SAAAK,EAAAA,KAACL,EAAAA,UAAmB,QAAnB,CACC,YAAU,oBACV,UAAWC,EAAAA,GACT,8dACAJ,CAAA,EAED,GAAGC,EAEH,SAAA,CAAAM,EACDL,EAAAA,IAACO,EAAAA,gBAAA,CAAgB,YAAU,yBAAyB,UAAU,4EAA4E,EAC1IP,EAAAA,IAACQ,EAAAA,cAAA,CAAc,YAAU,yBAAyB,UAAU,kFAAA,CAAmF,CAAA,CAAA,CAAA,EAEnJ,CAEJ,CAEA,SAASC,EAAiB,CACxB,UAAAX,EACA,SAAAO,EACA,GAAGN,CACL,EAA4D,CAC1D,OACEC,EAAAA,IAACC,EAAAA,UAAmB,QAAnB,CACC,YAAU,oBACV,UAAU,4FACT,GAAGF,EAEJ,SAAAC,EAAAA,IAAC,MAAA,CACC,UAAWE,EAAAA,GACT,oJACAJ,CAAA,EAGD,SAAAO,CAAA,CAAA,CACH,CAAA,CAGN"}
|
|
@@ -38,7 +38,7 @@ function p({
|
|
|
38
38
|
{
|
|
39
39
|
"data-slot": "accordion-trigger",
|
|
40
40
|
className: t(
|
|
41
|
-
"group/accordion-trigger relative flex flex-1 items-start justify-between rounded-lg border border-transparent py-2.5 text-left text-sm font-medium transition-all outline-none hover:underline focus-visible:border-ring focus-visible:
|
|
41
|
+
"group/accordion-trigger relative flex flex-1 items-start justify-between rounded-lg border border-transparent py-2.5 text-left text-sm font-medium transition-all outline-none hover:underline focus-visible:border-ring focus-visible:shadow-focus focus-visible:after:border-ring disabled:pointer-events-none disabled:opacity-50 **:data-[slot=accordion-trigger-icon]:ml-auto **:data-[slot=accordion-trigger-icon]:size-4 **:data-[slot=accordion-trigger-icon]:text-muted-foreground",
|
|
42
42
|
o
|
|
43
43
|
),
|
|
44
44
|
...i,
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"accordion.js","sources":["../../../src/components/ui/accordion.tsx"],"sourcesContent":["import { ChevronDownIcon, ChevronUpIcon } from \"lucide-react\"\nimport { Accordion as AccordionPrimitive } from \"radix-ui\"\nimport * as React from \"react\"\n\nimport { cn } from \"@/lib/utils\"\n\n\nfunction Accordion({\n className,\n ...props\n}: React.ComponentProps<typeof AccordionPrimitive.Root>) {\n return (\n <AccordionPrimitive.Root\n data-slot=\"accordion\"\n className={cn(\"flex w-full flex-col\", className)}\n {...props}\n />\n )\n}\n\nfunction AccordionItem({\n className,\n ...props\n}: React.ComponentProps<typeof AccordionPrimitive.Item>) {\n return (\n <AccordionPrimitive.Item\n data-slot=\"accordion-item\"\n className={cn(\"not-last:border-b\", className)}\n {...props}\n />\n )\n}\n\nfunction AccordionTrigger({\n className,\n children,\n ...props\n}: React.ComponentProps<typeof AccordionPrimitive.Trigger>) {\n return (\n <AccordionPrimitive.Header className=\"flex\">\n <AccordionPrimitive.Trigger\n data-slot=\"accordion-trigger\"\n className={cn(\n \"group/accordion-trigger relative flex flex-1 items-start justify-between rounded-lg border border-transparent py-2.5 text-left text-sm font-medium transition-all outline-none hover:underline focus-visible:border-ring focus-visible:
|
|
1
|
+
{"version":3,"file":"accordion.js","sources":["../../../src/components/ui/accordion.tsx"],"sourcesContent":["import { ChevronDownIcon, ChevronUpIcon } from \"lucide-react\"\nimport { Accordion as AccordionPrimitive } from \"radix-ui\"\nimport * as React from \"react\"\n\nimport { cn } from \"@/lib/utils\"\n\n\nfunction Accordion({\n className,\n ...props\n}: React.ComponentProps<typeof AccordionPrimitive.Root>) {\n return (\n <AccordionPrimitive.Root\n data-slot=\"accordion\"\n className={cn(\"flex w-full flex-col\", className)}\n {...props}\n />\n )\n}\n\nfunction AccordionItem({\n className,\n ...props\n}: React.ComponentProps<typeof AccordionPrimitive.Item>) {\n return (\n <AccordionPrimitive.Item\n data-slot=\"accordion-item\"\n className={cn(\"not-last:border-b\", className)}\n {...props}\n />\n )\n}\n\nfunction AccordionTrigger({\n className,\n children,\n ...props\n}: React.ComponentProps<typeof AccordionPrimitive.Trigger>) {\n return (\n <AccordionPrimitive.Header className=\"flex\">\n <AccordionPrimitive.Trigger\n data-slot=\"accordion-trigger\"\n className={cn(\n \"group/accordion-trigger relative flex flex-1 items-start justify-between rounded-lg border border-transparent py-2.5 text-left text-sm font-medium transition-all outline-none hover:underline focus-visible:border-ring focus-visible:shadow-focus focus-visible:after:border-ring disabled:pointer-events-none disabled:opacity-50 **:data-[slot=accordion-trigger-icon]:ml-auto **:data-[slot=accordion-trigger-icon]:size-4 **:data-[slot=accordion-trigger-icon]:text-muted-foreground\",\n className\n )}\n {...props}\n >\n {children}\n <ChevronDownIcon data-slot=\"accordion-trigger-icon\" className=\"pointer-events-none shrink-0 group-aria-expanded/accordion-trigger:hidden\" />\n <ChevronUpIcon data-slot=\"accordion-trigger-icon\" className=\"pointer-events-none hidden shrink-0 group-aria-expanded/accordion-trigger:inline\" />\n </AccordionPrimitive.Trigger>\n </AccordionPrimitive.Header>\n )\n}\n\nfunction AccordionContent({\n className,\n children,\n ...props\n}: React.ComponentProps<typeof AccordionPrimitive.Content>) {\n return (\n <AccordionPrimitive.Content\n data-slot=\"accordion-content\"\n className=\"overflow-hidden text-sm data-open:animate-accordion-down data-closed:animate-accordion-up\"\n {...props}\n >\n <div\n className={cn(\n \"h-(--radix-accordion-content-height) pt-0 pb-2.5 [&_a]:underline [&_a]:underline-offset-3 [&_a]:hover:text-foreground [&_p:not(:last-child)]:mb-4\",\n className\n )}\n >\n {children}\n </div>\n </AccordionPrimitive.Content>\n )\n}\n\nexport { Accordion, AccordionItem, AccordionTrigger, AccordionContent }\n"],"names":["Accordion","className","props","jsx","AccordionPrimitive","cn","AccordionItem","AccordionTrigger","children","jsxs","ChevronDownIcon","ChevronUpIcon","AccordionContent"],"mappings":";;;;AAOA,SAASA,EAAU;AAAA,EACjB,WAAAC;AAAA,EACA,GAAGC;AACL,GAAyD;AACvD,SACE,gBAAAC;AAAA,IAACC,EAAmB;AAAA,IAAnB;AAAA,MACC,aAAU;AAAA,MACV,WAAWC,EAAG,wBAAwBJ,CAAS;AAAA,MAC9C,GAAGC;AAAA,IAAA;AAAA,EAAA;AAGV;AAEA,SAASI,EAAc;AAAA,EACrB,WAAAL;AAAA,EACA,GAAGC;AACL,GAAyD;AACvD,SACE,gBAAAC;AAAA,IAACC,EAAmB;AAAA,IAAnB;AAAA,MACC,aAAU;AAAA,MACV,WAAWC,EAAG,qBAAqBJ,CAAS;AAAA,MAC3C,GAAGC;AAAA,IAAA;AAAA,EAAA;AAGV;AAEA,SAASK,EAAiB;AAAA,EACxB,WAAAN;AAAA,EACA,UAAAO;AAAA,EACA,GAAGN;AACL,GAA4D;AAC1D,SACE,gBAAAC,EAACC,EAAmB,QAAnB,EAA0B,WAAU,QACnC,UAAA,gBAAAK;AAAA,IAACL,EAAmB;AAAA,IAAnB;AAAA,MACC,aAAU;AAAA,MACV,WAAWC;AAAA,QACT;AAAA,QACAJ;AAAA,MAAA;AAAA,MAED,GAAGC;AAAA,MAEH,UAAA;AAAA,QAAAM;AAAA,QACD,gBAAAL,EAACO,GAAA,EAAgB,aAAU,0BAAyB,WAAU,6EAA4E;AAAA,QAC1I,gBAAAP,EAACQ,GAAA,EAAc,aAAU,0BAAyB,WAAU,mFAAA,CAAmF;AAAA,MAAA;AAAA,IAAA;AAAA,EAAA,GAEnJ;AAEJ;AAEA,SAASC,EAAiB;AAAA,EACxB,WAAAX;AAAA,EACA,UAAAO;AAAA,EACA,GAAGN;AACL,GAA4D;AAC1D,SACE,gBAAAC;AAAA,IAACC,EAAmB;AAAA,IAAnB;AAAA,MACC,aAAU;AAAA,MACV,WAAU;AAAA,MACT,GAAGF;AAAA,MAEJ,UAAA,gBAAAC;AAAA,QAAC;AAAA,QAAA;AAAA,UACC,WAAWE;AAAA,YACT;AAAA,YACAJ;AAAA,UAAA;AAAA,UAGD,UAAAO;AAAA,QAAA;AAAA,MAAA;AAAA,IACH;AAAA,EAAA;AAGN;"}
|
|
@@ -1,2 +1,2 @@
|
|
|
1
|
-
"use strict";Object.defineProperty(exports,Symbol.toStringTag,{value:"Module"});const
|
|
1
|
+
"use strict";Object.defineProperty(exports,Symbol.toStringTag,{value:"Module"});const n=require("react/jsx-runtime"),s=require("class-variance-authority"),d=require("radix-ui"),u=require("../../lib/utils.cjs"),r=s.cva("group/badge inline-flex h-5 w-fit shrink-0 items-center justify-center gap-1 overflow-hidden rounded-4xl border border-transparent px-2 py-0.5 text-xs font-medium whitespace-nowrap transition-all focus-visible:border-ring focus-visible:shadow-focus has-data-[icon=inline-end]:pr-1.5 has-data-[icon=inline-start]:pl-1.5 aria-invalid:border-destructive aria-invalid:shadow-focus [&>svg]:pointer-events-none [&>svg]:size-3!",{variants:{variant:{default:"bg-primary text-primary-foreground [a]:hover:bg-primary/80",secondary:"bg-secondary text-secondary-foreground [a]:hover:bg-secondary/80",info:"bg-info/15 text-info focus-visible:border-info dark:bg-info/20 dark:text-info [a]:hover:bg-info/25",destructive:"bg-destructive/15 text-destructive focus-visible:border-destructive dark:bg-destructive/20 dark:text-destructive [a]:hover:bg-destructive/25",positive:"bg-positive/15 text-positive focus-visible:border-positive dark:bg-positive/20 dark:text-positive [a]:hover:bg-positive/25",warning:"bg-warning/15 text-warning focus-visible:border-warning dark:bg-warning/20 dark:text-warning [a]:hover:bg-warning/25",outline:"border-border text-foreground [a]:hover:bg-muted [a]:hover:text-muted-foreground",ghost:"hover:bg-muted hover:text-muted-foreground dark:hover:bg-muted/50",link:"text-primary underline-offset-4 hover:underline"}},defaultVariants:{variant:"default"}});function g({className:t,variant:e="default",asChild:i=!1,...a}){const o=i?d.Slot.Root:"span";return n.jsx(o,{"data-slot":"badge","data-variant":e,className:u.cn(r({variant:e}),t),...a})}exports.Badge=g;exports.badgeVariants=r;
|
|
2
2
|
//# sourceMappingURL=badge.cjs.map
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"badge.cjs","sources":["../../../src/components/ui/badge.tsx"],"sourcesContent":["import { cva, type VariantProps } from \"class-variance-authority\"\nimport { Slot } from \"radix-ui\"\nimport * as React from \"react\"\n\nimport { cn } from \"@/lib/utils\"\n\nconst badgeVariants = cva(\n \"group/badge inline-flex h-5 w-fit shrink-0 items-center justify-center gap-1 overflow-hidden rounded-4xl border border-transparent px-2 py-0.5 text-xs font-medium whitespace-nowrap transition-all focus-visible:border-ring focus-visible:
|
|
1
|
+
{"version":3,"file":"badge.cjs","sources":["../../../src/components/ui/badge.tsx"],"sourcesContent":["import { cva, type VariantProps } from \"class-variance-authority\"\nimport { Slot } from \"radix-ui\"\nimport * as React from \"react\"\n\nimport { cn } from \"@/lib/utils\"\n\nconst badgeVariants = cva(\n \"group/badge inline-flex h-5 w-fit shrink-0 items-center justify-center gap-1 overflow-hidden rounded-4xl border border-transparent px-2 py-0.5 text-xs font-medium whitespace-nowrap transition-all focus-visible:border-ring focus-visible:shadow-focus has-data-[icon=inline-end]:pr-1.5 has-data-[icon=inline-start]:pl-1.5 aria-invalid:border-destructive aria-invalid:shadow-focus [&>svg]:pointer-events-none [&>svg]:size-3!\",\n {\n variants: {\n variant: {\n default: \"bg-primary text-primary-foreground [a]:hover:bg-primary/80\",\n secondary:\n \"bg-secondary text-secondary-foreground [a]:hover:bg-secondary/80\",\n info:\n \"bg-info/15 text-info focus-visible:border-info dark:bg-info/20 dark:text-info [a]:hover:bg-info/25\",\n destructive:\n \"bg-destructive/15 text-destructive focus-visible:border-destructive dark:bg-destructive/20 dark:text-destructive [a]:hover:bg-destructive/25\",\n positive:\n \"bg-positive/15 text-positive focus-visible:border-positive dark:bg-positive/20 dark:text-positive [a]:hover:bg-positive/25\",\n warning:\n \"bg-warning/15 text-warning focus-visible:border-warning dark:bg-warning/20 dark:text-warning [a]:hover:bg-warning/25\",\n outline:\n \"border-border text-foreground [a]:hover:bg-muted [a]:hover:text-muted-foreground\",\n ghost:\n \"hover:bg-muted hover:text-muted-foreground dark:hover:bg-muted/50\",\n link: \"text-primary underline-offset-4 hover:underline\",\n },\n },\n defaultVariants: {\n variant: \"default\",\n },\n }\n)\n\nfunction Badge({\n className,\n variant = \"default\",\n asChild = false,\n ...props\n}: React.ComponentProps<\"span\"> &\n VariantProps<typeof badgeVariants> & { asChild?: boolean }) {\n const Comp = asChild ? Slot.Root : \"span\"\n\n return (\n <Comp\n data-slot=\"badge\"\n data-variant={variant}\n className={cn(badgeVariants({ variant }), className)}\n {...props}\n />\n )\n}\n\nexport { Badge, badgeVariants }\n"],"names":["badgeVariants","cva","Badge","className","variant","asChild","props","Comp","Slot","jsx","cn"],"mappings":"kNAMMA,EAAgBC,EAAAA,IACpB,uaACA,CACE,SAAU,CACR,QAAS,CACP,QAAS,6DACT,UACE,mEACF,KACE,qGACF,YACE,+IACF,SACE,6HACF,QACE,uHACF,QACE,mFACF,MACE,oEACF,KAAM,iDAAA,CACR,EAEF,gBAAiB,CACf,QAAS,SAAA,CACX,CAEJ,EAEA,SAASC,EAAM,CACb,UAAAC,EACA,QAAAC,EAAW,UACX,QAAAC,EAAU,GACV,GAAGC,CACL,EAC8D,CAC5D,MAAMC,EAAOF,EAAUG,EAAAA,KAAK,KAAO,OAEnC,OACEC,EAAAA,IAACF,EAAA,CACC,YAAU,QACV,eAAcH,EACd,UAAWM,EAAAA,GAAGV,EAAc,CAAE,QAAAI,CAAA,CAAS,EAAGD,CAAS,EAClD,GAAGG,CAAA,CAAA,CAGV"}
|
|
@@ -1,18 +1,18 @@
|
|
|
1
|
-
import { jsx as
|
|
2
|
-
import { cva as
|
|
3
|
-
import { Slot as
|
|
4
|
-
import { cn as
|
|
5
|
-
const
|
|
6
|
-
"group/badge inline-flex h-5 w-fit shrink-0 items-center justify-center gap-1 overflow-hidden rounded-4xl border border-transparent px-2 py-0.5 text-xs font-medium whitespace-nowrap transition-all focus-visible:border-ring focus-visible:
|
|
1
|
+
import { jsx as a } from "react/jsx-runtime";
|
|
2
|
+
import { cva as n } from "class-variance-authority";
|
|
3
|
+
import { Slot as d } from "radix-ui";
|
|
4
|
+
import { cn as s } from "../../lib/utils.js";
|
|
5
|
+
const v = n(
|
|
6
|
+
"group/badge inline-flex h-5 w-fit shrink-0 items-center justify-center gap-1 overflow-hidden rounded-4xl border border-transparent px-2 py-0.5 text-xs font-medium whitespace-nowrap transition-all focus-visible:border-ring focus-visible:shadow-focus has-data-[icon=inline-end]:pr-1.5 has-data-[icon=inline-start]:pl-1.5 aria-invalid:border-destructive aria-invalid:shadow-focus [&>svg]:pointer-events-none [&>svg]:size-3!",
|
|
7
7
|
{
|
|
8
8
|
variants: {
|
|
9
9
|
variant: {
|
|
10
10
|
default: "bg-primary text-primary-foreground [a]:hover:bg-primary/80",
|
|
11
11
|
secondary: "bg-secondary text-secondary-foreground [a]:hover:bg-secondary/80",
|
|
12
|
-
info: "bg-info/15 text-info focus-visible:
|
|
13
|
-
destructive: "bg-destructive/15 text-destructive focus-visible:
|
|
14
|
-
positive: "bg-positive/15 text-positive focus-visible:
|
|
15
|
-
warning: "bg-warning/15 text-warning focus-visible:
|
|
12
|
+
info: "bg-info/15 text-info focus-visible:border-info dark:bg-info/20 dark:text-info [a]:hover:bg-info/25",
|
|
13
|
+
destructive: "bg-destructive/15 text-destructive focus-visible:border-destructive dark:bg-destructive/20 dark:text-destructive [a]:hover:bg-destructive/25",
|
|
14
|
+
positive: "bg-positive/15 text-positive focus-visible:border-positive dark:bg-positive/20 dark:text-positive [a]:hover:bg-positive/25",
|
|
15
|
+
warning: "bg-warning/15 text-warning focus-visible:border-warning dark:bg-warning/20 dark:text-warning [a]:hover:bg-warning/25",
|
|
16
16
|
outline: "border-border text-foreground [a]:hover:bg-muted [a]:hover:text-muted-foreground",
|
|
17
17
|
ghost: "hover:bg-muted hover:text-muted-foreground dark:hover:bg-muted/50",
|
|
18
18
|
link: "text-primary underline-offset-4 hover:underline"
|
|
@@ -26,22 +26,22 @@ const g = a(
|
|
|
26
26
|
function c({
|
|
27
27
|
className: r,
|
|
28
28
|
variant: e = "default",
|
|
29
|
-
asChild:
|
|
30
|
-
...
|
|
29
|
+
asChild: t = !1,
|
|
30
|
+
...i
|
|
31
31
|
}) {
|
|
32
|
-
const
|
|
33
|
-
return /* @__PURE__ */
|
|
34
|
-
|
|
32
|
+
const o = t ? d.Root : "span";
|
|
33
|
+
return /* @__PURE__ */ a(
|
|
34
|
+
o,
|
|
35
35
|
{
|
|
36
36
|
"data-slot": "badge",
|
|
37
37
|
"data-variant": e,
|
|
38
|
-
className:
|
|
39
|
-
...
|
|
38
|
+
className: s(v({ variant: e }), r),
|
|
39
|
+
...i
|
|
40
40
|
}
|
|
41
41
|
);
|
|
42
42
|
}
|
|
43
43
|
export {
|
|
44
44
|
c as Badge,
|
|
45
|
-
|
|
45
|
+
v as badgeVariants
|
|
46
46
|
};
|
|
47
47
|
//# sourceMappingURL=badge.js.map
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"badge.js","sources":["../../../src/components/ui/badge.tsx"],"sourcesContent":["import { cva, type VariantProps } from \"class-variance-authority\"\nimport { Slot } from \"radix-ui\"\nimport * as React from \"react\"\n\nimport { cn } from \"@/lib/utils\"\n\nconst badgeVariants = cva(\n \"group/badge inline-flex h-5 w-fit shrink-0 items-center justify-center gap-1 overflow-hidden rounded-4xl border border-transparent px-2 py-0.5 text-xs font-medium whitespace-nowrap transition-all focus-visible:border-ring focus-visible:
|
|
1
|
+
{"version":3,"file":"badge.js","sources":["../../../src/components/ui/badge.tsx"],"sourcesContent":["import { cva, type VariantProps } from \"class-variance-authority\"\nimport { Slot } from \"radix-ui\"\nimport * as React from \"react\"\n\nimport { cn } from \"@/lib/utils\"\n\nconst badgeVariants = cva(\n \"group/badge inline-flex h-5 w-fit shrink-0 items-center justify-center gap-1 overflow-hidden rounded-4xl border border-transparent px-2 py-0.5 text-xs font-medium whitespace-nowrap transition-all focus-visible:border-ring focus-visible:shadow-focus has-data-[icon=inline-end]:pr-1.5 has-data-[icon=inline-start]:pl-1.5 aria-invalid:border-destructive aria-invalid:shadow-focus [&>svg]:pointer-events-none [&>svg]:size-3!\",\n {\n variants: {\n variant: {\n default: \"bg-primary text-primary-foreground [a]:hover:bg-primary/80\",\n secondary:\n \"bg-secondary text-secondary-foreground [a]:hover:bg-secondary/80\",\n info:\n \"bg-info/15 text-info focus-visible:border-info dark:bg-info/20 dark:text-info [a]:hover:bg-info/25\",\n destructive:\n \"bg-destructive/15 text-destructive focus-visible:border-destructive dark:bg-destructive/20 dark:text-destructive [a]:hover:bg-destructive/25\",\n positive:\n \"bg-positive/15 text-positive focus-visible:border-positive dark:bg-positive/20 dark:text-positive [a]:hover:bg-positive/25\",\n warning:\n \"bg-warning/15 text-warning focus-visible:border-warning dark:bg-warning/20 dark:text-warning [a]:hover:bg-warning/25\",\n outline:\n \"border-border text-foreground [a]:hover:bg-muted [a]:hover:text-muted-foreground\",\n ghost:\n \"hover:bg-muted hover:text-muted-foreground dark:hover:bg-muted/50\",\n link: \"text-primary underline-offset-4 hover:underline\",\n },\n },\n defaultVariants: {\n variant: \"default\",\n },\n }\n)\n\nfunction Badge({\n className,\n variant = \"default\",\n asChild = false,\n ...props\n}: React.ComponentProps<\"span\"> &\n VariantProps<typeof badgeVariants> & { asChild?: boolean }) {\n const Comp = asChild ? Slot.Root : \"span\"\n\n return (\n <Comp\n data-slot=\"badge\"\n data-variant={variant}\n className={cn(badgeVariants({ variant }), className)}\n {...props}\n />\n )\n}\n\nexport { Badge, badgeVariants }\n"],"names":["badgeVariants","cva","Badge","className","variant","asChild","props","Comp","Slot","jsx","cn"],"mappings":";;;;AAMA,MAAMA,IAAgBC;AAAA,EACpB;AAAA,EACA;AAAA,IACE,UAAU;AAAA,MACR,SAAS;AAAA,QACP,SAAS;AAAA,QACT,WACE;AAAA,QACF,MACE;AAAA,QACF,aACE;AAAA,QACF,UACE;AAAA,QACF,SACE;AAAA,QACF,SACE;AAAA,QACF,OACE;AAAA,QACF,MAAM;AAAA,MAAA;AAAA,IACR;AAAA,IAEF,iBAAiB;AAAA,MACf,SAAS;AAAA,IAAA;AAAA,EACX;AAEJ;AAEA,SAASC,EAAM;AAAA,EACb,WAAAC;AAAA,EACA,SAAAC,IAAW;AAAA,EACX,SAAAC,IAAU;AAAA,EACV,GAAGC;AACL,GAC8D;AAC5D,QAAMC,IAAOF,IAAUG,EAAK,OAAO;AAEnC,SACE,gBAAAC;AAAA,IAACF;AAAA,IAAA;AAAA,MACC,aAAU;AAAA,MACV,gBAAcH;AAAA,MACd,WAAWM,EAAGV,EAAc,EAAE,SAAAI,EAAA,CAAS,GAAGD,CAAS;AAAA,MAClD,GAAGG;AAAA,IAAA;AAAA,EAAA;AAGV;"}
|
|
@@ -1,2 +1,2 @@
|
|
|
1
|
-
"use strict";Object.defineProperty(exports,Symbol.toStringTag,{value:"Module"});const o=require("react/jsx-runtime"),s=require("class-variance-authority"),u=require("radix-ui"),l=require("../../lib/utils.cjs"),r=s.cva("group/button inline-flex shrink-0 items-center justify-center rounded-lg border border-transparent bg-clip-padding text-sm font-medium whitespace-nowrap transition-all outline-none select-none focus-visible:border-ring focus-visible:
|
|
1
|
+
"use strict";Object.defineProperty(exports,Symbol.toStringTag,{value:"Module"});const o=require("react/jsx-runtime"),s=require("class-variance-authority"),u=require("radix-ui"),l=require("../../lib/utils.cjs"),r=s.cva("group/button inline-flex shrink-0 items-center justify-center rounded-lg border border-transparent bg-clip-padding text-sm font-medium whitespace-nowrap transition-all outline-none select-none focus-visible:border-ring focus-visible:shadow-focus active:translate-y-px disabled:pointer-events-none disabled:opacity-50 aria-invalid:border-destructive aria-invalid:shadow-focus dark:aria-invalid:border-destructive/50 [&_svg]:pointer-events-none [&_svg]:shrink-0 [&_svg:not([class*='size-'])]:size-4",{variants:{variant:{default:"bg-primary text-primary-foreground [a]:hover:bg-primary/80",outline:"border-border bg-transparent hover:bg-muted hover:text-foreground aria-expanded:bg-muted aria-expanded:text-foreground dark:border-input dark:hover:bg-input/50",secondary:"bg-secondary text-secondary-foreground hover:bg-secondary/80 aria-expanded:bg-secondary aria-expanded:text-secondary-foreground",ghost:"hover:bg-muted hover:text-foreground aria-expanded:bg-muted aria-expanded:text-foreground dark:hover:bg-muted/50",destructive:"bg-destructive/10 text-destructive hover:bg-destructive/20 focus-visible:border-destructive/40 dark:bg-destructive/20 dark:hover:bg-destructive/30",link:"text-primary underline-offset-4 hover:underline"},size:{default:"h-8 gap-1.5 px-2.5 has-data-[icon=inline-end]:pr-2 has-data-[icon=inline-start]:pl-2",xs:"h-6 gap-1 rounded-[min(var(--radius-md),10px)] px-2 text-xs in-data-[slot=button-group]:rounded-lg has-data-[icon=inline-end]:pr-1.5 has-data-[icon=inline-start]:pl-1.5 [&_svg:not([class*='size-'])]:size-3",sm:"h-7 gap-1 rounded-[min(var(--radius-md),12px)] px-2.5 text-[0.8rem] in-data-[slot=button-group]:rounded-lg has-data-[icon=inline-end]:pr-1.5 has-data-[icon=inline-start]:pl-1.5 [&_svg:not([class*='size-'])]:size-3.5",lg:"h-9 gap-1.5 px-2.5 has-data-[icon=inline-end]:pr-3 has-data-[icon=inline-start]:pl-3",icon:"size-8","icon-xs":"size-6 rounded-[min(var(--radius-md),10px)] in-data-[slot=button-group]:rounded-lg [&_svg:not([class*='size-'])]:size-3","icon-sm":"size-7 rounded-[min(var(--radius-md),12px)] in-data-[slot=button-group]:rounded-lg","icon-lg":"size-9"}},defaultVariants:{variant:"default",size:"default"}});function c({className:a,variant:e="default",size:t="default",asChild:n=!1,...i}){const d=n?u.Slot.Root:"button";return o.jsx(d,{"data-slot":"button","data-variant":e,"data-size":t,className:l.cn(r({variant:e,size:t,className:a})),...i})}exports.Button=c;exports.buttonVariants=r;
|
|
2
2
|
//# sourceMappingURL=button.cjs.map
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"button.cjs","sources":["../../../src/components/ui/button.tsx"],"sourcesContent":["import { cva, type VariantProps } from \"class-variance-authority\"\nimport { Slot } from \"radix-ui\"\nimport * as React from \"react\"\n\nimport { cn } from \"@/lib/utils\"\n\nconst buttonVariants = cva(\n \"group/button inline-flex shrink-0 items-center justify-center rounded-lg border border-transparent bg-clip-padding text-sm font-medium whitespace-nowrap transition-all outline-none select-none focus-visible:border-ring focus-visible:
|
|
1
|
+
{"version":3,"file":"button.cjs","sources":["../../../src/components/ui/button.tsx"],"sourcesContent":["import { cva, type VariantProps } from \"class-variance-authority\"\nimport { Slot } from \"radix-ui\"\nimport * as React from \"react\"\n\nimport { cn } from \"@/lib/utils\"\n\nconst buttonVariants = cva(\n \"group/button inline-flex shrink-0 items-center justify-center rounded-lg border border-transparent bg-clip-padding text-sm font-medium whitespace-nowrap transition-all outline-none select-none focus-visible:border-ring focus-visible:shadow-focus active:translate-y-px disabled:pointer-events-none disabled:opacity-50 aria-invalid:border-destructive aria-invalid:shadow-focus dark:aria-invalid:border-destructive/50 [&_svg]:pointer-events-none [&_svg]:shrink-0 [&_svg:not([class*='size-'])]:size-4\",\n {\n variants: {\n variant: {\n default: \"bg-primary text-primary-foreground [a]:hover:bg-primary/80\",\n outline:\n \"border-border bg-transparent hover:bg-muted hover:text-foreground aria-expanded:bg-muted aria-expanded:text-foreground dark:border-input dark:hover:bg-input/50\",\n secondary:\n \"bg-secondary text-secondary-foreground hover:bg-secondary/80 aria-expanded:bg-secondary aria-expanded:text-secondary-foreground\",\n ghost:\n \"hover:bg-muted hover:text-foreground aria-expanded:bg-muted aria-expanded:text-foreground dark:hover:bg-muted/50\",\n destructive:\n \"bg-destructive/10 text-destructive hover:bg-destructive/20 focus-visible:border-destructive/40 dark:bg-destructive/20 dark:hover:bg-destructive/30\",\n link: \"text-primary underline-offset-4 hover:underline\",\n },\n size: {\n default:\n \"h-8 gap-1.5 px-2.5 has-data-[icon=inline-end]:pr-2 has-data-[icon=inline-start]:pl-2\",\n xs: \"h-6 gap-1 rounded-[min(var(--radius-md),10px)] px-2 text-xs in-data-[slot=button-group]:rounded-lg has-data-[icon=inline-end]:pr-1.5 has-data-[icon=inline-start]:pl-1.5 [&_svg:not([class*='size-'])]:size-3\",\n sm: \"h-7 gap-1 rounded-[min(var(--radius-md),12px)] px-2.5 text-[0.8rem] in-data-[slot=button-group]:rounded-lg has-data-[icon=inline-end]:pr-1.5 has-data-[icon=inline-start]:pl-1.5 [&_svg:not([class*='size-'])]:size-3.5\",\n lg: \"h-9 gap-1.5 px-2.5 has-data-[icon=inline-end]:pr-3 has-data-[icon=inline-start]:pl-3\",\n icon: \"size-8\",\n \"icon-xs\":\n \"size-6 rounded-[min(var(--radius-md),10px)] in-data-[slot=button-group]:rounded-lg [&_svg:not([class*='size-'])]:size-3\",\n \"icon-sm\":\n \"size-7 rounded-[min(var(--radius-md),12px)] in-data-[slot=button-group]:rounded-lg\",\n \"icon-lg\": \"size-9\",\n },\n },\n defaultVariants: {\n variant: \"default\",\n size: \"default\",\n },\n }\n)\n\nfunction Button({\n className,\n variant = \"default\",\n size = \"default\",\n asChild = false,\n ...props\n}: React.ComponentProps<\"button\"> &\n VariantProps<typeof buttonVariants> & {\n asChild?: boolean\n }) {\n const Comp = asChild ? Slot.Root : \"button\"\n\n return (\n <Comp\n data-slot=\"button\"\n data-variant={variant}\n data-size={size}\n className={cn(buttonVariants({ variant, size, className }))}\n {...props}\n />\n )\n}\n\nexport { Button, buttonVariants }\n"],"names":["buttonVariants","cva","Button","className","variant","size","asChild","props","Comp","Slot","jsx","cn"],"mappings":"kNAMMA,EAAiBC,EAAAA,IACrB,mfACA,CACE,SAAU,CACR,QAAS,CACP,QAAS,6DACT,QACE,kKACF,UACE,kIACF,MACE,mHACF,YACE,qJACF,KAAM,iDAAA,EAER,KAAM,CACJ,QACE,uFACF,GAAI,gNACJ,GAAI,0NACJ,GAAI,uFACJ,KAAM,SACN,UACE,0HACF,UACE,qFACF,UAAW,QAAA,CACb,EAEF,gBAAiB,CACf,QAAS,UACT,KAAM,SAAA,CACR,CAEJ,EAEA,SAASC,EAAO,CACd,UAAAC,EACA,QAAAC,EAAU,UACV,KAAAC,EAAO,UACP,QAAAC,EAAU,GACV,GAAGC,CACL,EAGK,CACH,MAAMC,EAAOF,EAAUG,EAAAA,KAAK,KAAO,SAEnC,OACEC,EAAAA,IAACF,EAAA,CACC,YAAU,SACV,eAAcJ,EACd,YAAWC,EACX,UAAWM,EAAAA,GAAGX,EAAe,CAAE,QAAAI,EAAS,KAAAC,EAAM,UAAAF,CAAA,CAAW,CAAC,EACzD,GAAGI,CAAA,CAAA,CAGV"}
|
|
@@ -1,17 +1,17 @@
|
|
|
1
|
-
import { jsx as
|
|
2
|
-
import { cva as
|
|
1
|
+
import { jsx as o } from "react/jsx-runtime";
|
|
2
|
+
import { cva as d } from "class-variance-authority";
|
|
3
3
|
import { Slot as s } from "radix-ui";
|
|
4
4
|
import { cn as u } from "../../lib/utils.js";
|
|
5
|
-
const l =
|
|
6
|
-
"group/button inline-flex shrink-0 items-center justify-center rounded-lg border border-transparent bg-clip-padding text-sm font-medium whitespace-nowrap transition-all outline-none select-none focus-visible:border-ring focus-visible:
|
|
5
|
+
const l = d(
|
|
6
|
+
"group/button inline-flex shrink-0 items-center justify-center rounded-lg border border-transparent bg-clip-padding text-sm font-medium whitespace-nowrap transition-all outline-none select-none focus-visible:border-ring focus-visible:shadow-focus active:translate-y-px disabled:pointer-events-none disabled:opacity-50 aria-invalid:border-destructive aria-invalid:shadow-focus dark:aria-invalid:border-destructive/50 [&_svg]:pointer-events-none [&_svg]:shrink-0 [&_svg:not([class*='size-'])]:size-4",
|
|
7
7
|
{
|
|
8
8
|
variants: {
|
|
9
9
|
variant: {
|
|
10
10
|
default: "bg-primary text-primary-foreground [a]:hover:bg-primary/80",
|
|
11
|
-
outline: "border-border bg-
|
|
11
|
+
outline: "border-border bg-transparent hover:bg-muted hover:text-foreground aria-expanded:bg-muted aria-expanded:text-foreground dark:border-input dark:hover:bg-input/50",
|
|
12
12
|
secondary: "bg-secondary text-secondary-foreground hover:bg-secondary/80 aria-expanded:bg-secondary aria-expanded:text-secondary-foreground",
|
|
13
13
|
ghost: "hover:bg-muted hover:text-foreground aria-expanded:bg-muted aria-expanded:text-foreground dark:hover:bg-muted/50",
|
|
14
|
-
destructive: "bg-destructive/10 text-destructive hover:bg-destructive/20 focus-visible:border-destructive/40
|
|
14
|
+
destructive: "bg-destructive/10 text-destructive hover:bg-destructive/20 focus-visible:border-destructive/40 dark:bg-destructive/20 dark:hover:bg-destructive/30",
|
|
15
15
|
link: "text-primary underline-offset-4 hover:underline"
|
|
16
16
|
},
|
|
17
17
|
size: {
|
|
@@ -32,21 +32,21 @@ const l = o(
|
|
|
32
32
|
}
|
|
33
33
|
);
|
|
34
34
|
function b({
|
|
35
|
-
className:
|
|
35
|
+
className: r,
|
|
36
36
|
variant: e = "default",
|
|
37
|
-
size:
|
|
38
|
-
asChild:
|
|
39
|
-
...
|
|
37
|
+
size: t = "default",
|
|
38
|
+
asChild: a = !1,
|
|
39
|
+
...n
|
|
40
40
|
}) {
|
|
41
|
-
const
|
|
42
|
-
return /* @__PURE__ */
|
|
43
|
-
|
|
41
|
+
const i = a ? s.Root : "button";
|
|
42
|
+
return /* @__PURE__ */ o(
|
|
43
|
+
i,
|
|
44
44
|
{
|
|
45
45
|
"data-slot": "button",
|
|
46
46
|
"data-variant": e,
|
|
47
|
-
"data-size":
|
|
48
|
-
className: u(l({ variant: e, size:
|
|
49
|
-
...
|
|
47
|
+
"data-size": t,
|
|
48
|
+
className: u(l({ variant: e, size: t, className: r })),
|
|
49
|
+
...n
|
|
50
50
|
}
|
|
51
51
|
);
|
|
52
52
|
}
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"button.js","sources":["../../../src/components/ui/button.tsx"],"sourcesContent":["import { cva, type VariantProps } from \"class-variance-authority\"\nimport { Slot } from \"radix-ui\"\nimport * as React from \"react\"\n\nimport { cn } from \"@/lib/utils\"\n\nconst buttonVariants = cva(\n \"group/button inline-flex shrink-0 items-center justify-center rounded-lg border border-transparent bg-clip-padding text-sm font-medium whitespace-nowrap transition-all outline-none select-none focus-visible:border-ring focus-visible:
|
|
1
|
+
{"version":3,"file":"button.js","sources":["../../../src/components/ui/button.tsx"],"sourcesContent":["import { cva, type VariantProps } from \"class-variance-authority\"\nimport { Slot } from \"radix-ui\"\nimport * as React from \"react\"\n\nimport { cn } from \"@/lib/utils\"\n\nconst buttonVariants = cva(\n \"group/button inline-flex shrink-0 items-center justify-center rounded-lg border border-transparent bg-clip-padding text-sm font-medium whitespace-nowrap transition-all outline-none select-none focus-visible:border-ring focus-visible:shadow-focus active:translate-y-px disabled:pointer-events-none disabled:opacity-50 aria-invalid:border-destructive aria-invalid:shadow-focus dark:aria-invalid:border-destructive/50 [&_svg]:pointer-events-none [&_svg]:shrink-0 [&_svg:not([class*='size-'])]:size-4\",\n {\n variants: {\n variant: {\n default: \"bg-primary text-primary-foreground [a]:hover:bg-primary/80\",\n outline:\n \"border-border bg-transparent hover:bg-muted hover:text-foreground aria-expanded:bg-muted aria-expanded:text-foreground dark:border-input dark:hover:bg-input/50\",\n secondary:\n \"bg-secondary text-secondary-foreground hover:bg-secondary/80 aria-expanded:bg-secondary aria-expanded:text-secondary-foreground\",\n ghost:\n \"hover:bg-muted hover:text-foreground aria-expanded:bg-muted aria-expanded:text-foreground dark:hover:bg-muted/50\",\n destructive:\n \"bg-destructive/10 text-destructive hover:bg-destructive/20 focus-visible:border-destructive/40 dark:bg-destructive/20 dark:hover:bg-destructive/30\",\n link: \"text-primary underline-offset-4 hover:underline\",\n },\n size: {\n default:\n \"h-8 gap-1.5 px-2.5 has-data-[icon=inline-end]:pr-2 has-data-[icon=inline-start]:pl-2\",\n xs: \"h-6 gap-1 rounded-[min(var(--radius-md),10px)] px-2 text-xs in-data-[slot=button-group]:rounded-lg has-data-[icon=inline-end]:pr-1.5 has-data-[icon=inline-start]:pl-1.5 [&_svg:not([class*='size-'])]:size-3\",\n sm: \"h-7 gap-1 rounded-[min(var(--radius-md),12px)] px-2.5 text-[0.8rem] in-data-[slot=button-group]:rounded-lg has-data-[icon=inline-end]:pr-1.5 has-data-[icon=inline-start]:pl-1.5 [&_svg:not([class*='size-'])]:size-3.5\",\n lg: \"h-9 gap-1.5 px-2.5 has-data-[icon=inline-end]:pr-3 has-data-[icon=inline-start]:pl-3\",\n icon: \"size-8\",\n \"icon-xs\":\n \"size-6 rounded-[min(var(--radius-md),10px)] in-data-[slot=button-group]:rounded-lg [&_svg:not([class*='size-'])]:size-3\",\n \"icon-sm\":\n \"size-7 rounded-[min(var(--radius-md),12px)] in-data-[slot=button-group]:rounded-lg\",\n \"icon-lg\": \"size-9\",\n },\n },\n defaultVariants: {\n variant: \"default\",\n size: \"default\",\n },\n }\n)\n\nfunction Button({\n className,\n variant = \"default\",\n size = \"default\",\n asChild = false,\n ...props\n}: React.ComponentProps<\"button\"> &\n VariantProps<typeof buttonVariants> & {\n asChild?: boolean\n }) {\n const Comp = asChild ? Slot.Root : \"button\"\n\n return (\n <Comp\n data-slot=\"button\"\n data-variant={variant}\n data-size={size}\n className={cn(buttonVariants({ variant, size, className }))}\n {...props}\n />\n )\n}\n\nexport { Button, buttonVariants }\n"],"names":["buttonVariants","cva","Button","className","variant","size","asChild","props","Comp","Slot","jsx","cn"],"mappings":";;;;AAMA,MAAMA,IAAiBC;AAAA,EACrB;AAAA,EACA;AAAA,IACE,UAAU;AAAA,MACR,SAAS;AAAA,QACP,SAAS;AAAA,QACT,SACE;AAAA,QACF,WACE;AAAA,QACF,OACE;AAAA,QACF,aACE;AAAA,QACF,MAAM;AAAA,MAAA;AAAA,MAER,MAAM;AAAA,QACJ,SACE;AAAA,QACF,IAAI;AAAA,QACJ,IAAI;AAAA,QACJ,IAAI;AAAA,QACJ,MAAM;AAAA,QACN,WACE;AAAA,QACF,WACE;AAAA,QACF,WAAW;AAAA,MAAA;AAAA,IACb;AAAA,IAEF,iBAAiB;AAAA,MACf,SAAS;AAAA,MACT,MAAM;AAAA,IAAA;AAAA,EACR;AAEJ;AAEA,SAASC,EAAO;AAAA,EACd,WAAAC;AAAA,EACA,SAAAC,IAAU;AAAA,EACV,MAAAC,IAAO;AAAA,EACP,SAAAC,IAAU;AAAA,EACV,GAAGC;AACL,GAGK;AACH,QAAMC,IAAOF,IAAUG,EAAK,OAAO;AAEnC,SACE,gBAAAC;AAAA,IAACF;AAAA,IAAA;AAAA,MACC,aAAU;AAAA,MACV,gBAAcJ;AAAA,MACd,aAAWC;AAAA,MACX,WAAWM,EAAGX,EAAe,EAAE,SAAAI,GAAS,MAAAC,GAAM,WAAAF,EAAA,CAAW,CAAC;AAAA,MACzD,GAAGI;AAAA,IAAA;AAAA,EAAA;AAGV;"}
|