@aracreate/arm-ui 3.7.0 → 3.8.0
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
- package/README.md +17 -4
- package/dist/chunk-HJKF66OV.js +2 -0
- package/dist/chunk-HJKF66OV.js.map +1 -0
- package/dist/chunk-OWU3I5NQ.mjs +2 -0
- package/dist/{chunk-LGJWNA6J.mjs.map → chunk-OWU3I5NQ.mjs.map} +1 -1
- package/dist/index.d.mts +3 -1
- package/dist/index.d.ts +3 -1
- package/dist/index.js +1 -1
- package/dist/index.js.map +1 -1
- package/dist/index.mjs +1 -1
- package/dist/index.mjs.map +1 -1
- package/dist/preset.js +1 -1
- package/dist/preset.mjs +1 -1
- package/dist/style.css +5 -1
- package/package.json +2 -3
- package/dist/chunk-LGJWNA6J.mjs +0 -2
- package/dist/chunk-TD6NGM5I.js +0 -2
- package/dist/chunk-TD6NGM5I.js.map +0 -1
package/dist/index.js.map
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"sources":["/Users/kishor/Work/01-araCreate/arm/library/arm-ui-library/dist/index.js","../src/components/Skeleton.tsx","../src/components/AccentHeader.tsx","../src/components/ConfirmDialog.tsx","../src/components/layout-tokens.ts","../src/components/CardFooter.tsx"],"names":["Skeleton","width","height","radius","circle","mb","className","style","jsx","AccentHeader","title","trailing","titleNode","Text","jsxs","Flex","AccentCard","children","bodyPadding","Box","layout","CardFooter","justify","noTopMargin","pad"],"mappings":"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","file":"/Users/kishor/Work/01-araCreate/arm/library/arm-ui-library/dist/index.js","sourcesContent":[null,"import type { CSSProperties } from \"react\";\n\n/**\n * Skeleton — loading placeholder. Generalizes the local `Skel` helper and the\n * inline `<div className=\"skeleton\" .../>` blocks used in the users, user-detail,\n * and home surfaces. Pulse animation + base color come from `.skeleton` in\n * globals.css.\n */\nexport interface SkeletonProps {\n width?: number | string;\n height?: number | string;\n /** Border radius. Ignored when `circle` is set. Defaults to var(--radius-2). */\n radius?: number | string;\n /** Render as a circle (avatars). */\n circle?: boolean;\n /** Bottom margin. */\n mb?: number | string;\n className?: string;\n style?: CSSProperties;\n}\n\nexport function Skeleton({\n width = \"100%\",\n height = \"var(--space-4)\" /* 16px == space-4 */,\n radius = \"var(--radius-2)\",\n circle = false,\n mb,\n className,\n style,\n}: SkeletonProps) {\n return (\n <div\n className={[\"skeleton\", className].filter(Boolean).join(\" \")}\n aria-hidden=\"true\"\n style={{\n width,\n height,\n borderRadius: circle ? \"50%\" : radius,\n marginBottom: mb,\n ...style,\n }}\n />\n );\n}\n\nexport default Skeleton;\n","import type { CSSProperties, ReactNode } from \"react\";\nimport { Box, Flex, Text } from \"@radix-ui/themes\";\n\n/**\n * AccentHeader — the amber two-tone title bar Figma uses on cards, dialogs,\n * and page banners (Target/Source Calendar, Preview, Upcoming Event, Confirm\n * Logout, Terms hero). Build-once pattern per the design ledger: a solid\n * `--accent-9` bar with a dark bold title, optionally with trailing controls\n * (e.g. the Month/Week/Day toggle lives inside the bar on the Preview card).\n *\n * Figma refs: ui-ux/figma/crops/month-card.png, confirm-dialog.png.\n */\nexport interface AccentHeaderProps {\n title: ReactNode;\n /** Right-aligned slot inside the bar (view toggles, actions). */\n trailing?: ReactNode;\n style?: CSSProperties;\n}\n\nexport function AccentHeader({ title, trailing, style }: AccentHeaderProps) {\n // Plain strings get the bar's standard Text treatment; element titles (e.g.\n // an AlertDialog.Title heading) render as-is so we never nest a heading\n // inside a span (invalid HTML).\n const titleNode =\n typeof title === \"string\" || typeof title === \"number\" ? (\n <Text size=\"3\" weight=\"medium\" style={{ color: \"var(--accent-contrast)\" }}>\n {title}\n </Text>\n ) : (\n title\n );\n return (\n <Flex\n align=\"center\"\n justify=\"between\"\n gap=\"3\"\n px=\"4\"\n style={{\n background: \"var(--accent-9)\",\n minHeight: \"var(--space-7)\",\n ...style,\n }}\n >\n {titleNode}\n {trailing}\n </Flex>\n );\n}\n\n/**\n * AccentCard — white panel with an AccentHeader bar and rounded corners\n * (measured r≈14 @1728 → var(--radius-5)) plus the soft card shadow seen on\n * every Figma card. The header is clipped by the card's radius.\n */\nexport interface AccentCardProps extends AccentHeaderProps {\n children: ReactNode;\n /** Radix padding scale for the body. Defaults to \"4\"; use \"0\" for flush content. */\n bodyPadding?: \"0\" | \"1\" | \"2\" | \"3\" | \"4\" | \"5\" | \"6\";\n}\n\nexport function AccentCard({\n title,\n trailing,\n children,\n bodyPadding = \"4\",\n style,\n}: AccentCardProps) {\n return (\n <Box\n style={{\n background: \"var(--color-panel-solid)\",\n borderRadius: \"var(--radius-5)\",\n overflow: \"hidden\",\n boxShadow: \"var(--shadow-card)\",\n ...style,\n }}\n >\n <AccentHeader title={title} trailing={trailing} />\n <Box p={bodyPadding}>{children}</Box>\n </Box>\n );\n}\n\nexport default AccentHeader;\n","import type { ReactNode } from \"react\";\nimport { AlertDialog, Button } from \"@radix-ui/themes\";\nimport { layout } from \"./layout-tokens\";\nimport { CardFooter } from \"./CardFooter\";\n\n/**\n * ConfirmDialog — the confirm/cancel prompt used for destructive or\n * state-changing actions (Confirm Logout, Remove account, etc). Built on\n * Radix `AlertDialog` with a plain title/description and bottom-right\n * actions, matching the app's other dialogs (e.g. ImportCalendarsDialog):\n * neutral outline Cancel, amber-primary Confirm.\n */\nexport interface ConfirmDialogProps {\n /** Dialog title, rendered inside the AccentHeader bar. */\n title: ReactNode;\n /** Question / body copy. */\n description: ReactNode;\n /** Confirm button label. Defaults to \"Yes\". */\n confirmLabel?: ReactNode;\n /** Cancel button label. Defaults to \"Cancel\". */\n cancelLabel?: ReactNode;\n /** Called when the confirm action is activated (dialog still closes via AlertDialog.Action). */\n onConfirm?: () => void;\n /** Element that opens the dialog, rendered inside AlertDialog.Trigger. Omit for a fully controlled dialog. */\n trigger?: ReactNode;\n /** Controlled open state — omit for uncontrolled, trigger-driven usage. */\n open?: boolean;\n onOpenChange?: (open: boolean) => void;\n}\n\nexport function ConfirmDialog({\n title,\n description,\n confirmLabel = \"Yes\",\n cancelLabel = \"Cancel\",\n onConfirm,\n trigger,\n open,\n onOpenChange,\n}: ConfirmDialogProps) {\n return (\n <AlertDialog.Root open={open} onOpenChange={onOpenChange}>\n {trigger ? <AlertDialog.Trigger>{trigger}</AlertDialog.Trigger> : null}\n <AlertDialog.Content maxWidth={layout.dialogSm}>\n <AlertDialog.Title\n size=\"5\"\n mb=\"1\"\n style={{ fontFamily: \"var(--heading-font-family)\", fontWeight: \"var(--font-weight-medium)\" }}\n >\n {title}\n </AlertDialog.Title>\n <AlertDialog.Description size=\"2\" color=\"gray\" mb=\"5\">\n {description}\n </AlertDialog.Description>\n <CardFooter justify=\"between\" noTopMargin>\n <AlertDialog.Cancel>\n <Button size=\"2\" variant=\"outline\" color=\"gray\">\n {cancelLabel}\n </Button>\n </AlertDialog.Cancel>\n <AlertDialog.Action>\n <Button size=\"2\" className=\"btn-amber-primary\" onClick={onConfirm}>\n {confirmLabel}\n </Button>\n </AlertDialog.Action>\n </CardFooter>\n </AlertDialog.Content>\n </AlertDialog.Root>\n );\n}\n\nexport default ConfirmDialog;\n","/** Radix space-scale layout widths. Originally a subset of the app's\n * src/lib/layout-tokens.ts covering only what this package's own components\n * reference; now also exported so consumers stop hand-rolling their own\n * copies (arm-admin had none at all, and core-fe carries a 5-constant\n * fork). Values must match the app's copy — see README.md's \"Files\n * duplicated from the app\". */\nexport const layout = {\n contentMax: \"calc(15 * var(--space-9) + var(--space-5))\",\n accountCardW: \"calc(3 * var(--space-9) + var(--space-8))\",\n accountCardMinH: \"calc(2 * var(--space-9) - var(--space-2))\",\n monthTitleMinW: \"calc(3 * var(--space-9) - var(--space-1))\",\n bigCalendarH: \"calc(10 * var(--space-9))\",\n sidebarColBasis: \"calc(4 * var(--space-9) - var(--space-2))\",\n sidebarColMin: \"calc(3 * var(--space-9) + var(--space-6))\",\n syncColMin: \"calc(5 * var(--space-9))\",\n syncColWide: \"calc(7 * var(--space-9) + var(--space-6))\",\n dialogSm: \"calc(6 * var(--space-9) - var(--space-2))\",\n dialogBody: \"calc(5 * var(--space-9) + var(--space-7))\",\n authFormMax: \"calc(6 * var(--space-9) + var(--space-8))\",\n brandLogoMax: \"calc(6 * var(--space-9) + var(--space-8) - var(--space-1))\",\n connectedAccountCardH: \"calc(var(--space-9) - var(--space-1))\",\n dialogMd: \"calc(6 * var(--space-9) + var(--space-6))\",\n dialogLg: \"calc(7 * var(--space-9) - var(--space-1))\",\n emptyStateMax: \"calc(10 * var(--space-9))\",\n emptyStateCopyMax: \"calc(6 * var(--space-9))\",\n providerChooserMax: \"calc(6 * var(--space-9) + var(--space-6))\",\n /* Admin portal. The two audit columns are fixed so the header grid and\n * every row grid resolve to the same track sizes; settingsGridMin is the\n * floor that keeps a 5–6 column table legible before it starts scrolling\n * horizontally instead of crushing its columns. */\n auditColTime: \"calc(var(--space-9) + var(--space-2))\",\n auditColAction: \"calc(var(--space-9) + var(--space-5) + var(--space-1))\",\n searchFieldW: \"calc(3 * var(--space-9) + var(--space-5) + var(--space-1))\",\n settingsGridMin: \"calc(5 * var(--space-9) + var(--space-5))\",\n placeholderMd: \"calc(6 * var(--space-9) + var(--space-4))\",\n} as const;\n","import type { ReactNode } from \"react\";\nimport { Flex } from \"@radix-ui/themes\";\n\nexport interface CardFooterProps {\n children: ReactNode;\n justify?: \"end\" | \"between\";\n /** Omit the top margin when the content above already ends with its own\n * bottom margin/gap (e.g. Flex `mb`) — avoids doubled spacing. */\n noTopMargin?: boolean;\n /** Match the enclosing container's own padding so the negative-margin\n * breakout lines up flush with its edges. Defaults to Card size=\"3\"'s\n * var(--space-5); pass the container's actual padding otherwise (e.g.\n * a default-size Card's var(--space-3), StepCard's var(--space-4)). */\n pad?: string;\n /** Match the enclosing container's own corner radius so the footer's\n * bottom corners line up. Defaults to Card size=\"3\"+'s var(--radius-5);\n * default-size Card (1-2) uses var(--radius-4). */\n radius?: string;\n}\n\n/** Full-bleed gray action bar for the bottom of a Card — breaks out of the\n * Card's own padding so it reads as a distinct footer strip, same shape as\n * ImportCalendarsDialog's button row. Use for any Card/Dialog that ends in\n * one or more buttons instead of a plain Separator + Flex. */\nexport function CardFooter({\n children,\n justify = \"end\",\n noTopMargin,\n pad = \"var(--space-5)\",\n radius = \"var(--radius-5)\",\n}: CardFooterProps) {\n return (\n <Flex\n justify={justify}\n style={{\n margin: `${noTopMargin ? \"0\" : \"var(--space-5)\"} calc(-1 * ${pad}) calc(-1 * ${pad})`,\n padding: `var(--space-4) ${pad}`,\n alignItems: \"center\",\n background: \"var(--gray-2)\",\n borderTop: \"1px solid var(--gray-5)\",\n borderRadius: `0 0 ${radius} ${radius}`,\n }}\n >\n {children}\n </Flex>\n );\n}\n"]}
|
|
1
|
+
{"version":3,"sources":["/Users/kishor/Work/01-araCreate/arm/library/arm-ui-library/dist/index.js","../index.ts","../src/index.ts","../src/components/index.ts","../src/components/primitives.ts","../src/components/icons.ts","../src/components/Skeleton.tsx","../src/components/AccentHeader.tsx","../src/components/ConfirmDialog.tsx","../src/components/layout-tokens.ts","../src/components/CardFooter.tsx"],"names":["index_exports","__export","ACTIVITY_META","AUDIT_ACTION_META","AccentCard","AccentHeader","AccessibleIcon","AccountCalendarsDialog","AccountCard","ActivityRow","AddAccountMenu","AlertDialog","AppCard","AspectRatio","AuthCard","Avatar","Badge","BigCalendarView","Blockquote","Box","BrandPanel","Button","CalendarDayHeader","CalendarMergedView","CalendarPickList","CalendarToolbar","Callout","Card","CardFooter","Checkbox","CheckboxCards","CheckboxGroup","Code","ConfirmDialog","ConnectProviderList","ConnectProviderRows","ConnectedAccountCard","Container","ContextMenu","DashboardErrorCard","DataList","DataTableRow","Dialog","DropdownMenu","Em","EmptyCard","EventBlock","Flex","GoogleIcon","Grid","Heading","HoverCard","IconButton","IconTile","ImportCalendarsDialog","Inset","Kbd","METRIC_STATUS_COLOR","MetricCard","MicrosoftIcon","MiniMonthPicker","MonthGrid","OnboardingStepDots","OnboardingStepper","OtpInput","OtpVerifyStep","PROVIDER_LABEL","PROVIDER_META","Pagination","PausedBadge","Popover","Portal","Progress","ProviderIcon","Quote","ROLE_LABELS","ROLE_META","Radio","RadioCards","RadioGroup","SHELL_HEADER_H","STATUS_META","ScrollArea","SearchOverlay","Section","SegmentedControl","Select","Separator","Sidebar","Skeleton","Slider","Slot","Slottable","Spinner","Strong","Switch","SyncDetailsDialog","SyncPreviewRail","TabNav","Table","Tabs","Text","TextArea","TextField","Link","Toast","Tooltip","Topbar","UIProvider","VisuallyHidden","WizardStepper","auditActionMeta","cn","colors","conditionalClass","createCompoundVariants","createVariantGenerator","findCalendar","getAccessibilityStyles","getAnimationClass","getBaseStyles","getBgClass","getBorderClass","getColor","getFocusRingClass","getFocusableElements","getHoverBgClass","getHoverTextClass","getInteractiveStyles","getRadiusClass","getResponsiveClasses","getSizeStyles","getSpacingClass","getTextClass","getTypographyClass","getVariantStyles","handleArrowNavigation","headingSize","layout","mergeProps","theme","useClickOutside","useConnectAccount","useControllableState","useDisclosure","src_exports","components_exports","icons_exports","__reExport","react_icons_star","width","height","radius","circle","mb","className","style","jsx","title","trailing","titleNode","jsxs","children","bodyPadding","justify","noTopMargin","pad"],"mappings":"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","file":"/Users/kishor/Work/01-araCreate/arm/library/arm-ui-library/dist/index.js","sourcesContent":[null,"export * from \"./src\";\n","export * from \"./components\";\n\nexport type {\n Size,\n Variant,\n BaseProps,\n FormFieldProps,\n PolymorphicComponentProps,\n PolymorphicComponent,\n InteractionStates,\n ResponsiveValue,\n ComponentState,\n AccessibilityProps,\n} from \"./types/common\";\n\nexport { theme, getColor, colors } from \"./lib/theme\";\n\nexport {\n cn,\n getVariantStyles,\n getSizeStyles,\n getBaseStyles,\n getInteractiveStyles,\n getAccessibilityStyles,\n getResponsiveClasses,\n getSpacingClass,\n getRadiusClass,\n getTypographyClass,\n getBgClass,\n getTextClass,\n getBorderClass,\n getHoverBgClass,\n getHoverTextClass,\n getFocusRingClass,\n getAnimationClass,\n createCompoundVariants,\n createVariantGenerator,\n mergeProps,\n conditionalClass,\n getFocusableElements,\n handleArrowNavigation,\n} from \"./lib/utils\";\n\nexport { UIProvider } from \"./lib/ui-provider\";\n\nexport * from \"./lib/hooks\";\n","// Shared design-system components. Three kinds live here:\n// - The basics (./primitives) and the icon set (./icons): Radix Themes and\n// @radix-ui/react-icons re-exported as-is, so a frontend imports everything\n// from this package. Radix stays the implementation; a component becomes a\n// wrapper only when ARM needs something Radix does not give.\n// - Skeleton: the one retained legacy wrapper (loading placeholder).\n// - The Figma-derived patterns: genuine gaps with no direct Radix\n// equivalent, built once at measured token values.\nexport * from \"./primitives\";\nexport * from \"./icons\";\nexport { Skeleton, type SkeletonProps } from \"./Skeleton\";\nexport { AccentHeader, AccentCard, type AccentHeaderProps, type AccentCardProps } from \"./AccentHeader\";\nexport { ConfirmDialog, type ConfirmDialogProps } from \"./ConfirmDialog\";\nexport { PausedBadge, type PausedBadgeProps } from \"./PausedBadge\";\nexport { AccountCard, type AccountCardProps } from \"./AccountCard\";\nexport { MonthGrid, type MonthGridProps } from \"./MonthGrid\";\nexport { Toast, type ToastProps } from \"./Toast\";\nexport { IconTile, type IconTileProps } from \"./IconTile\";\nexport { CardFooter, type CardFooterProps } from \"./CardFooter\";\nexport { EventBlock, type EventBlockProps } from \"./EventBlock\";\nexport { DataTableRow, type DataTableRowProps } from \"./DataTableRow\";\nexport { MetricCard, type MetricCardProps } from \"./MetricCard\";\nexport { AppCard, type AppCardProps } from \"./AppCard\";\nexport { ActivityRow, type ActivityRowProps } from \"./ActivityRow\";\nexport { DashboardErrorCard, type DashboardErrorCardProps } from \"./DashboardErrorCard\";\nexport { Pagination, type PaginationProps } from \"./Pagination\";\n\n// Shared layout widths and status/role/audit colour maps. Both were previously\n// re-derived by every consumer — layout-tokens as four hand-synced forks (one\n// app had none at all), status-colors not at all — so they are exported rather\n// than staying package-internal.\nexport { layout } from \"./layout-tokens\";\nexport { headingSize, type HeadingLevel } from \"./heading-scale\";\nexport {\n ROLE_META,\n ROLE_LABELS,\n STATUS_META,\n METRIC_STATUS_COLOR,\n ACTIVITY_META,\n AUDIT_ACTION_META,\n auditActionMeta,\n type UserStatus,\n type MetricStatus,\n type ActivityType,\n type AuditAction,\n} from \"./status-colors\";\n\n// Auth screen pieces — moved from arm-ui/src/components/auth/. Prop-driven,\n// no dependency on any login/session state; the app still owns the actual\n// sign-in/sign-up flow logic (auth-context.tsx, api/auth.ts).\nexport { AuthCard } from \"./AuthCard\";\nexport { BrandPanel } from \"./BrandPanel\";\nexport { GoogleIcon } from \"./GoogleIcon\";\nexport { MicrosoftIcon } from \"./MicrosoftIcon\";\nexport { OtpInput } from \"./OtpInput\";\nexport { OtpVerifyStep, type OtpVerifyStepProps } from \"./OtpVerifyStep\";\nexport { ProviderIcon, PROVIDER_LABEL, type CalendarProvider } from \"./ProviderIcon\";\n\n// App shell pieces — moved from arm-ui/src/components/shell/. Data the app\n// alone owns (logged-in user, connected accounts, search content) is taken\n// as props rather than read from live app contexts, so this package has no\n// dependency back into the app's auth/integrations/search systems.\nexport { Sidebar, SHELL_HEADER_H, type SidebarProps, type SidebarUser, type SidebarDevRole, type NavItem, type Role } from \"./Sidebar\";\nexport { Topbar, type TopbarProps, type TopbarTitleRow, type TopbarAdminTitleRow } from \"./Topbar\";\nexport { SearchOverlay, type SearchOverlayProps, type SearchResult, type SearchResultType } from \"./SearchOverlay\";\n\n// Calendar module — moved from arm-ui/src/components/calendar/. Calendar\n// account/sync data is taken as props (accounts, blocks, sync state) rather\n// than read from the app's integrations/calendar contexts. The app's mock\n// data model (CalendarAccount, ResolvedBlock, etc.) is duplicated in\n// calendar-types.ts, not imported, so this package has no dependency back\n// into the app.\nexport {\n type CalendarAccount,\n type CalendarAccountCalendar,\n type AvailabilityBlock,\n type DatedAvailabilityBlock,\n type ResolvedBlock,\n type CalendarSync,\n type SyncStatus,\n findCalendar,\n} from \"./calendar-types\";\nexport { CalendarDayHeader, type CalendarDayHeaderProps } from \"./CalendarDayHeader\";\nexport { CalendarPickList } from \"./CalendarPickList\";\nexport { CalendarToolbar } from \"./CalendarToolbar\";\nexport { ConnectProviderList, PROVIDER_META } from \"./ConnectProviderList\";\nexport { ConnectedAccountCard } from \"./ConnectedAccountCard\";\nexport { EmptyCard, type EmptyCardProps } from \"./EmptyCard\";\nexport { ImportCalendarsDialog, type ImportCalendarsDialogProps } from \"./ImportCalendarsDialog\";\nexport { SyncPreviewRail } from \"./SyncPreviewRail\";\nexport { OnboardingStepper, OnboardingStepDots } from \"./OnboardingStepDots\";\nexport { MiniMonthPicker, type MiniMonthPickerProps } from \"./MiniMonthPicker\";\nexport { WizardStepper, type WizardStepMeta } from \"./WizardStepper\";\nexport { AccountCalendarsDialog, type AccountCalendarsDialogProps } from \"./AccountCalendarsDialog\";\nexport { BigCalendarView, type BigCalendarViewProps, type View } from \"./BigCalendarView\";\nexport { SyncDetailsDialog, type SyncDetailsDialogProps } from \"./SyncDetailsDialog\";\nexport { useConnectAccount, type UseConnectAccountOptions } from \"./useConnectAccount\";\nexport { AddAccountMenu, type AddAccountMenuProps } from \"./AddAccountMenu\";\nexport { ConnectProviderRows, type ConnectProviderRowsProps } from \"./ConnectProviderRows\";\nexport { CalendarMergedView, type CalendarMergedViewProps } from \"./CalendarMergedView\";\n","// The basic components, re-exported from Radix Themes so a frontend imports every\n// component from this package and nothing from `@radix-ui/themes`.\n//\n// These are the identical objects, not wrappers — behaviour is Radix's. A component\n// becomes a real wrapper here only when ARM needs something Radix does not give, and\n// that edit then touches this library alone. Compound families (`Dialog.Root`,\n// `DropdownMenu.Item`, `Select.Item`, …) come through whole.\n//\n// Not exported, on purpose (primitives.test.ts holds this list and fails on any\n// Radix export that is neither re-exported nor named there):\n// Theme, useThemeContext, ThemeContext UIProvider owns the theme; frontends never mount it\n// ThemePanel, Reset dev tool / internal\n// Skeleton this library keeps its own (./Skeleton)\n// ChevronDownIcon, Thick*Icon Radix's own icon copies; the icon set (./icons) has ChevronDownIcon\n//\n// `Link` is exported as `TextLink`: react-router's `Link` shares files with it.\n\nexport {\n // Layout\n Box,\n Flex,\n Grid,\n Container,\n Section,\n Inset,\n AspectRatio,\n ScrollArea,\n Separator,\n // Typography\n Text,\n Heading,\n Blockquote,\n Code,\n Em,\n Kbd,\n Link as TextLink,\n Quote,\n Strong,\n // Actions and form controls\n Button,\n IconButton,\n TextField,\n TextArea,\n Checkbox,\n CheckboxGroup,\n CheckboxCards,\n Radio,\n RadioGroup,\n RadioCards,\n Select,\n Slider,\n Switch,\n SegmentedControl,\n // Overlays\n Dialog,\n AlertDialog,\n DropdownMenu,\n ContextMenu,\n Popover,\n HoverCard,\n Tooltip,\n Portal,\n // Feedback and data display\n Avatar,\n Badge,\n Callout,\n Card,\n DataList,\n Progress,\n Spinner,\n Table,\n Tabs,\n TabNav,\n // Utilities\n AccessibleIcon,\n Slot,\n Slottable,\n VisuallyHidden,\n} from \"@radix-ui/themes\";\n\nexport type {\n AccessibleIconProps,\n AspectRatioProps,\n AvatarProps,\n BadgeProps,\n BlockquoteProps,\n BoxProps,\n ButtonProps,\n CardProps,\n CheckboxProps,\n CodeProps,\n ContainerProps,\n EmProps,\n FlexProps,\n GridProps,\n HeadingProps,\n IconButtonProps,\n InsetProps,\n KbdProps,\n LinkProps as TextLinkProps,\n PortalProps,\n ProgressProps,\n QuoteProps,\n RadioProps,\n ScrollAreaProps,\n SectionProps,\n SeparatorProps,\n SliderProps,\n SpinnerProps,\n StrongProps,\n SwitchProps,\n TextAreaProps,\n TextProps,\n TooltipProps,\n VisuallyHiddenProps,\n} from \"@radix-ui/themes\";\n","// The Radix icon set, re-exported so a frontend imports icons from this package too.\n// `@radix-ui/react-icons` is a direct dependency and stays external in the build;\n// it declares `sideEffects: false`, so icons a consumer does not use are tree-shaken.\n//\n// `export *` here (rather than a name list) because the set is 300+ icons. A name that\n// clashed with another export would be dropped silently by the module system, so\n// primitives.test.ts asserts every icon is reachable from the package root.\nexport * from \"@radix-ui/react-icons\";\n","import type { CSSProperties } from \"react\";\n\n/**\n * Skeleton — loading placeholder. Generalizes the local `Skel` helper and the\n * inline `<div className=\"skeleton\" .../>` blocks used in the users, user-detail,\n * and home surfaces. Pulse animation + base color come from `.skeleton` in\n * globals.css.\n */\nexport interface SkeletonProps {\n width?: number | string;\n height?: number | string;\n /** Border radius. Ignored when `circle` is set. Defaults to var(--radius-2). */\n radius?: number | string;\n /** Render as a circle (avatars). */\n circle?: boolean;\n /** Bottom margin. */\n mb?: number | string;\n className?: string;\n style?: CSSProperties;\n}\n\nexport function Skeleton({\n width = \"100%\",\n height = \"var(--space-4)\" /* 16px == space-4 */,\n radius = \"var(--radius-2)\",\n circle = false,\n mb,\n className,\n style,\n}: SkeletonProps) {\n return (\n <div\n className={[\"skeleton\", className].filter(Boolean).join(\" \")}\n aria-hidden=\"true\"\n style={{\n width,\n height,\n borderRadius: circle ? \"50%\" : radius,\n marginBottom: mb,\n ...style,\n }}\n />\n );\n}\n\nexport default Skeleton;\n","import type { CSSProperties, ReactNode } from \"react\";\nimport { Box, Flex, Text } from \"@radix-ui/themes\";\n\n/**\n * AccentHeader — the amber two-tone title bar Figma uses on cards, dialogs,\n * and page banners (Target/Source Calendar, Preview, Upcoming Event, Confirm\n * Logout, Terms hero). Build-once pattern per the design ledger: a solid\n * `--accent-9` bar with a dark bold title, optionally with trailing controls\n * (e.g. the Month/Week/Day toggle lives inside the bar on the Preview card).\n *\n * Figma refs: ui-ux/figma/crops/month-card.png, confirm-dialog.png.\n */\nexport interface AccentHeaderProps {\n title: ReactNode;\n /** Right-aligned slot inside the bar (view toggles, actions). */\n trailing?: ReactNode;\n style?: CSSProperties;\n}\n\nexport function AccentHeader({ title, trailing, style }: AccentHeaderProps) {\n // Plain strings get the bar's standard Text treatment; element titles (e.g.\n // an AlertDialog.Title heading) render as-is so we never nest a heading\n // inside a span (invalid HTML).\n const titleNode =\n typeof title === \"string\" || typeof title === \"number\" ? (\n <Text size=\"3\" weight=\"medium\" style={{ color: \"var(--accent-contrast)\" }}>\n {title}\n </Text>\n ) : (\n title\n );\n return (\n <Flex\n align=\"center\"\n justify=\"between\"\n gap=\"3\"\n px=\"4\"\n style={{\n background: \"var(--accent-9)\",\n minHeight: \"var(--space-7)\",\n ...style,\n }}\n >\n {titleNode}\n {trailing}\n </Flex>\n );\n}\n\n/**\n * AccentCard — white panel with an AccentHeader bar and rounded corners\n * (measured r≈14 @1728 → var(--radius-5)) plus the soft card shadow seen on\n * every Figma card. The header is clipped by the card's radius.\n */\nexport interface AccentCardProps extends AccentHeaderProps {\n children: ReactNode;\n /** Radix padding scale for the body. Defaults to \"4\"; use \"0\" for flush content. */\n bodyPadding?: \"0\" | \"1\" | \"2\" | \"3\" | \"4\" | \"5\" | \"6\";\n}\n\nexport function AccentCard({\n title,\n trailing,\n children,\n bodyPadding = \"4\",\n style,\n}: AccentCardProps) {\n return (\n <Box\n style={{\n background: \"var(--color-panel-solid)\",\n borderRadius: \"var(--radius-5)\",\n overflow: \"hidden\",\n boxShadow: \"var(--shadow-card)\",\n ...style,\n }}\n >\n <AccentHeader title={title} trailing={trailing} />\n <Box p={bodyPadding}>{children}</Box>\n </Box>\n );\n}\n\nexport default AccentHeader;\n","import type { ReactNode } from \"react\";\nimport { AlertDialog, Button } from \"@radix-ui/themes\";\nimport { layout } from \"./layout-tokens\";\nimport { CardFooter } from \"./CardFooter\";\n\n/**\n * ConfirmDialog — the confirm/cancel prompt used for destructive or\n * state-changing actions (Confirm Logout, Remove account, etc). Built on\n * Radix `AlertDialog` with a plain title/description and bottom-right\n * actions, matching the app's other dialogs (e.g. ImportCalendarsDialog):\n * neutral outline Cancel, amber-primary Confirm.\n */\nexport interface ConfirmDialogProps {\n /** Dialog title, rendered inside the AccentHeader bar. */\n title: ReactNode;\n /** Question / body copy. */\n description: ReactNode;\n /** Confirm button label. Defaults to \"Yes\". */\n confirmLabel?: ReactNode;\n /** Cancel button label. Defaults to \"Cancel\". */\n cancelLabel?: ReactNode;\n /** Called when the confirm action is activated (dialog still closes via AlertDialog.Action). */\n onConfirm?: () => void;\n /** Element that opens the dialog, rendered inside AlertDialog.Trigger. Omit for a fully controlled dialog. */\n trigger?: ReactNode;\n /** Controlled open state — omit for uncontrolled, trigger-driven usage. */\n open?: boolean;\n onOpenChange?: (open: boolean) => void;\n}\n\nexport function ConfirmDialog({\n title,\n description,\n confirmLabel = \"Yes\",\n cancelLabel = \"Cancel\",\n onConfirm,\n trigger,\n open,\n onOpenChange,\n}: ConfirmDialogProps) {\n return (\n <AlertDialog.Root open={open} onOpenChange={onOpenChange}>\n {trigger ? <AlertDialog.Trigger>{trigger}</AlertDialog.Trigger> : null}\n <AlertDialog.Content maxWidth={layout.dialogSm}>\n <AlertDialog.Title\n size=\"5\"\n mb=\"1\"\n style={{ fontFamily: \"var(--heading-font-family)\", fontWeight: \"var(--font-weight-medium)\" }}\n >\n {title}\n </AlertDialog.Title>\n <AlertDialog.Description size=\"2\" color=\"gray\" mb=\"5\">\n {description}\n </AlertDialog.Description>\n <CardFooter justify=\"between\" noTopMargin>\n <AlertDialog.Cancel>\n <Button size=\"2\" variant=\"outline\" color=\"gray\">\n {cancelLabel}\n </Button>\n </AlertDialog.Cancel>\n <AlertDialog.Action>\n <Button size=\"2\" className=\"btn-amber-primary\" onClick={onConfirm}>\n {confirmLabel}\n </Button>\n </AlertDialog.Action>\n </CardFooter>\n </AlertDialog.Content>\n </AlertDialog.Root>\n );\n}\n\nexport default ConfirmDialog;\n","/** Radix space-scale layout widths. Originally a subset of the app's\n * src/lib/layout-tokens.ts covering only what this package's own components\n * reference; now also exported so consumers stop hand-rolling their own\n * copies (arm-admin had none at all, and core-fe carries a 5-constant\n * fork). Values must match the app's copy — see README.md's \"Files\n * duplicated from the app\". */\nexport const layout = {\n contentMax: \"calc(15 * var(--space-9) + var(--space-5))\",\n accountCardW: \"calc(3 * var(--space-9) + var(--space-8))\",\n accountCardMinH: \"calc(2 * var(--space-9) - var(--space-2))\",\n monthTitleMinW: \"calc(3 * var(--space-9) - var(--space-1))\",\n bigCalendarH: \"calc(10 * var(--space-9))\",\n sidebarColBasis: \"calc(4 * var(--space-9) - var(--space-2))\",\n sidebarColMin: \"calc(3 * var(--space-9) + var(--space-6))\",\n syncColMin: \"calc(5 * var(--space-9))\",\n syncColWide: \"calc(7 * var(--space-9) + var(--space-6))\",\n dialogSm: \"calc(6 * var(--space-9) - var(--space-2))\",\n dialogBody: \"calc(5 * var(--space-9) + var(--space-7))\",\n authFormMax: \"calc(6 * var(--space-9) + var(--space-8))\",\n brandLogoMax: \"calc(6 * var(--space-9) + var(--space-8) - var(--space-1))\",\n connectedAccountCardH: \"calc(var(--space-9) - var(--space-1))\",\n dialogMd: \"calc(6 * var(--space-9) + var(--space-6))\",\n dialogLg: \"calc(7 * var(--space-9) - var(--space-1))\",\n emptyStateMax: \"calc(10 * var(--space-9))\",\n emptyStateCopyMax: \"calc(6 * var(--space-9))\",\n providerChooserMax: \"calc(6 * var(--space-9) + var(--space-6))\",\n /* Admin portal. The two audit columns are fixed so the header grid and\n * every row grid resolve to the same track sizes; settingsGridMin is the\n * floor that keeps a 5–6 column table legible before it starts scrolling\n * horizontally instead of crushing its columns. */\n auditColTime: \"calc(var(--space-9) + var(--space-2))\",\n auditColAction: \"calc(var(--space-9) + var(--space-5) + var(--space-1))\",\n searchFieldW: \"calc(3 * var(--space-9) + var(--space-5) + var(--space-1))\",\n settingsGridMin: \"calc(5 * var(--space-9) + var(--space-5))\",\n placeholderMd: \"calc(6 * var(--space-9) + var(--space-4))\",\n} as const;\n","import type { ReactNode } from \"react\";\nimport { Flex } from \"@radix-ui/themes\";\n\nexport interface CardFooterProps {\n children: ReactNode;\n justify?: \"end\" | \"between\";\n /** Omit the top margin when the content above already ends with its own\n * bottom margin/gap (e.g. Flex `mb`) — avoids doubled spacing. */\n noTopMargin?: boolean;\n /** Match the enclosing container's own padding so the negative-margin\n * breakout lines up flush with its edges. Defaults to Card size=\"3\"'s\n * var(--space-5); pass the container's actual padding otherwise (e.g.\n * a default-size Card's var(--space-3), StepCard's var(--space-4)). */\n pad?: string;\n /** Match the enclosing container's own corner radius so the footer's\n * bottom corners line up. Defaults to Card size=\"3\"+'s var(--radius-5);\n * default-size Card (1-2) uses var(--radius-4). */\n radius?: string;\n}\n\n/** Full-bleed gray action bar for the bottom of a Card — breaks out of the\n * Card's own padding so it reads as a distinct footer strip, same shape as\n * ImportCalendarsDialog's button row. Use for any Card/Dialog that ends in\n * one or more buttons instead of a plain Separator + Flex. */\nexport function CardFooter({\n children,\n justify = \"end\",\n noTopMargin,\n pad = \"var(--space-5)\",\n radius = \"var(--radius-5)\",\n}: CardFooterProps) {\n return (\n <Flex\n justify={justify}\n style={{\n margin: `${noTopMargin ? \"0\" : \"var(--space-5)\"} calc(-1 * ${pad}) calc(-1 * ${pad})`,\n padding: `var(--space-4) ${pad}`,\n alignItems: \"center\",\n background: \"var(--gray-2)\",\n borderTop: \"1px solid var(--gray-5)\",\n borderRadius: `0 0 ${radius} ${radius}`,\n }}\n >\n {children}\n </Flex>\n );\n}\n"]}
|