@dybo-ai/design 1.2.0 → 2.0.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/CLAUDE.md +35 -28
- package/README.md +59 -31
- package/dist/index.cjs +1417 -67
- package/dist/index.cjs.map +1 -1
- package/dist/index.d.cts +396 -3
- package/dist/index.d.ts +396 -3
- package/dist/index.js +1382 -68
- package/dist/index.js.map +1 -1
- package/legacy-theme.css +1112 -0
- package/package.json +3 -1
- package/portal-tokens.css +8 -184
- package/theme.css +1649 -405
- package/tokens.cjs +219 -124
- package/tokens.json +223 -162
- package/tokens.mjs +199 -124
package/dist/index.js.map
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"sources":["../src/components/Button.tsx","../src/components/Card.tsx","../src/components/Input.tsx","../src/components/Badge.tsx","../src/components/IconRail.tsx","../src/components/NavTabs.tsx","../src/components/ScopeTabs.tsx","../src/components/PriorityBadge.tsx","../src/components/TicketStatusBadge.tsx","../src/components/AppShell.tsx","../src/components/Sidebar.tsx","../src/components/TopBar.tsx","../src/components/NavItem.tsx","../src/components/DataTable.tsx","../src/components/Tabs.tsx","../src/components/OverviewGrid.tsx","../src/components/Select.tsx","../src/components/Alert.tsx","../src/components/Modal.tsx","../src/components/LoginCard.tsx"],"names":["cx","jsx","jsxs"],"mappings":"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","file":"index.js","sourcesContent":["import { type ButtonHTMLAttributes } from \"react\";\n\nexport type ButtonVariant = \"primary\" | \"secondary\" | \"ghost\" | \"danger\";\nexport type ButtonSize = \"sm\" | \"md\" | \"lg\";\n\nexport interface IButtonProps extends ButtonHTMLAttributes<HTMLButtonElement> {\n variant?: ButtonVariant;\n size?: ButtonSize;\n loading?: boolean;\n}\n\nconst sizeClass: Record<ButtonSize, string> = {\n sm: \"dybo-btn--sm\",\n md: \"\",\n lg: \"dybo-btn--lg\",\n};\n\nconst cx = (...c: (string | undefined | false)[]) =>\n c.filter(Boolean).join(\" \");\n\nexport function Button({\n variant = \"primary\",\n size = \"md\",\n loading = false,\n disabled,\n className,\n children,\n ...props\n}: IButtonProps) {\n return (\n <button\n className={cx(\n \"dybo-btn\",\n `dybo-btn--${variant}`,\n sizeClass[size],\n className,\n )}\n disabled={disabled || loading}\n {...props}\n >\n {loading ? \"…\" : children}\n </button>\n );\n}\n","import { type HTMLAttributes } from \"react\";\n\nexport interface ICardProps extends HTMLAttributes<HTMLDivElement> {\n padding?: number | string;\n solid?: boolean;\n}\n\nconst cx = (...c: (string | undefined | false)[]) =>\n c.filter(Boolean).join(\" \");\n\nexport function Card({\n padding = 24,\n solid = false,\n className,\n style,\n ...props\n}: ICardProps) {\n return (\n <div\n className={cx(\"dybo-glass\", className)}\n style={{\n padding,\n background: solid ? \"var(--dybo-surface-card-solid)\" : undefined,\n ...style,\n }}\n {...props}\n />\n );\n}\n","import { type InputHTMLAttributes } from \"react\";\n\nexport interface IInputProps extends InputHTMLAttributes<HTMLInputElement> {\n label?: string;\n error?: string;\n}\n\nconst cx = (...c: (string | undefined | false)[]) =>\n c.filter(Boolean).join(\" \");\n\nexport function Input({ label, error, className, id, ...props }: IInputProps) {\n const inputId = id ?? label?.toLowerCase().replace(/\\s+/g, \"-\");\n return (\n <div style={{ display: \"flex\", flexDirection: \"column\", gap: 6 }}>\n {label && (\n <label\n htmlFor={inputId}\n style={{\n fontSize: \"var(--dybo-font-size-sm)\",\n fontWeight: \"var(--dybo-font-weight-medium)\",\n color: \"var(--dybo-color-text-muted)\",\n }}\n >\n {label}\n </label>\n )}\n <input\n id={inputId}\n className={cx(\n \"dybo-input\",\n error ? \"dybo-input--error\" : undefined,\n className,\n )}\n style={\n error\n ? {\n borderColor: \"var(--dybo-danger)\",\n boxShadow: \"0 0 0 3px rgba(162,26,23,0.12)\",\n }\n : undefined\n }\n {...props}\n />\n {error && (\n <span\n style={{\n fontSize: \"var(--dybo-font-size-xs)\",\n color: \"var(--dybo-danger)\",\n fontWeight: \"var(--dybo-font-weight-medium)\",\n }}\n >\n {error}\n </span>\n )}\n </div>\n );\n}\n","import { type HTMLAttributes } from \"react\";\n\nexport type BadgeStatus =\n | \"brand\"\n | \"resolved\"\n | \"high\"\n | \"medium\"\n | \"success\"\n | \"warning\"\n | \"danger\";\n\nexport interface IBadgeProps extends HTMLAttributes<HTMLSpanElement> {\n status?: BadgeStatus;\n}\n\nconst cx = (...c: (string | undefined | false)[]) =>\n c.filter(Boolean).join(\" \");\n\nexport function Badge({ status = \"brand\", className, ...props }: IBadgeProps) {\n return (\n <span\n className={cx(\"dybo-badge\", `dybo-badge--${status}`, className)}\n {...props}\n />\n );\n}\n","import { type HTMLAttributes, type ReactNode } from \"react\";\n\nexport interface IIconRailItemProps extends HTMLAttributes<HTMLAnchorElement> {\n href?: string;\n active?: boolean;\n title?: string;\n children: ReactNode;\n}\n\nexport interface IIconRailProps {\n brand: ReactNode;\n children?: ReactNode;\n className?: string;\n}\n\nconst cx = (...c: (string | undefined | false)[]) =>\n c.filter(Boolean).join(\" \");\n\nexport function IconRailItem({\n active = false,\n className,\n children,\n ...props\n}: IIconRailItemProps) {\n return (\n <a\n className={cx(\n \"dybo-icon-rail__item\",\n active ? \"dybo-icon-rail__item--active\" : undefined,\n className,\n )}\n {...props}\n >\n {children}\n </a>\n );\n}\n\nexport function IconRail({ brand, children, className }: IIconRailProps) {\n return (\n <aside className={cx(\"dybo-icon-rail\", className)}>\n <div className=\"dybo-icon-rail__brand\">{brand}</div>\n <div className=\"dybo-icon-rail__nav\">\n <div className=\"dybo-icon-rail__pill\">\n <nav className=\"dybo-icon-rail__items\">{children}</nav>\n </div>\n </div>\n </aside>\n );\n}\n","export interface INavTab {\n key: string;\n label: string;\n disabled?: boolean;\n}\n\nexport interface INavTabsProps {\n tabs: INavTab[];\n active: string;\n onChange: (key: string) => void;\n className?: string;\n}\n\nconst cx = (...c: (string | undefined | false)[]) =>\n c.filter(Boolean).join(\" \");\n\nexport function NavTabs({ tabs, active, onChange, className }: INavTabsProps) {\n return (\n <div className={cx(\"dybo-navtabs\", className)} role=\"tablist\">\n {tabs.map((tab) => (\n <button\n key={tab.key}\n type=\"button\"\n role=\"tab\"\n aria-selected={tab.key === active}\n disabled={tab.disabled}\n className={cx(\n \"dybo-navtab\",\n tab.key === active ? \"dybo-navtab--active\" : undefined,\n )}\n onClick={() => !tab.disabled && onChange(tab.key)}\n >\n {tab.label}\n </button>\n ))}\n </div>\n );\n}\n","export interface IScopeTab {\n key: string;\n label: string;\n count?: number;\n disabled?: boolean;\n}\n\nexport interface IScopeTabsProps {\n tabs: IScopeTab[];\n active: string;\n onChange: (key: string) => void;\n className?: string;\n}\n\nconst cx = (...c: (string | undefined | false)[]) =>\n c.filter(Boolean).join(\" \");\n\nexport function ScopeTabs({ tabs, active, onChange, className }: IScopeTabsProps) {\n return (\n <div className={cx(\"dybo-scope\", className)} role=\"tablist\">\n {tabs.map((tab) => (\n <button\n key={tab.key}\n type=\"button\"\n role=\"tab\"\n aria-selected={tab.key === active}\n disabled={tab.disabled}\n className={cx(\n \"dybo-scope-tab\",\n tab.key === active ? \"dybo-scope-tab--active\" : undefined,\n )}\n onClick={() => !tab.disabled && onChange(tab.key)}\n >\n {tab.label}\n {tab.count !== undefined && (\n <span className=\"dybo-scope-count\">{tab.count}</span>\n )}\n </button>\n ))}\n </div>\n );\n}\n","import { type HTMLAttributes } from \"react\";\n\nexport type PriorityLevel = \"urgent\" | \"high\" | \"medium\" | \"low\" | \"none\";\n\nexport interface IPriorityBadgeProps extends HTMLAttributes<HTMLSpanElement> {\n priority: PriorityLevel;\n}\n\nconst cx = (...c: (string | undefined | false)[]) =>\n c.filter(Boolean).join(\" \");\n\nexport function PriorityBadge({\n priority,\n className,\n children,\n ...props\n}: IPriorityBadgeProps) {\n return (\n <span\n className={cx(\"dybo-priority\", `dybo-priority--${priority}`, className)}\n {...props}\n >\n {children ?? priority}\n </span>\n );\n}\n","import { type HTMLAttributes } from \"react\";\n\nexport type TicketStatus = \"open\" | \"pending\" | \"snoozed\" | \"resolved\";\n\nexport interface ITicketStatusBadgeProps extends HTMLAttributes<HTMLSpanElement> {\n status: TicketStatus;\n}\n\nconst cx = (...c: (string | undefined | false)[]) =>\n c.filter(Boolean).join(\" \");\n\nconst defaultLabels: Record<TicketStatus, string> = {\n open: \"Open\",\n pending: \"Pending\",\n snoozed: \"Snoozed\",\n resolved: \"Resolved\",\n};\n\nexport function TicketStatusBadge({\n status,\n className,\n children,\n ...props\n}: ITicketStatusBadgeProps) {\n return (\n <span\n className={cx(\n \"dybo-ticket-status\",\n `dybo-ticket-status--${status}`,\n className,\n )}\n {...props}\n >\n {children ?? defaultLabels[status]}\n </span>\n );\n}\n","import { type ReactNode } from \"react\";\n\nexport interface IAppShellProps {\n sidebar: ReactNode;\n topBar?: ReactNode;\n children: ReactNode;\n className?: string;\n}\n\nconst cx = (...c: (string | undefined | false)[]) =>\n c.filter(Boolean).join(\" \");\n\nexport function AppShell({\n sidebar,\n topBar,\n children,\n className,\n}: IAppShellProps) {\n return (\n <div className={cx(\"dybo-app-shell\", className)}>\n {sidebar}\n <div className=\"dybo-main\">\n {topBar}\n <div className=\"dybo-content\">{children}</div>\n </div>\n </div>\n );\n}\n","import { type ReactNode } from \"react\";\n\nexport interface ISidebarUser {\n name: string;\n email?: string;\n}\n\nexport interface ISidebarProps {\n brand?: ReactNode;\n children?: ReactNode;\n footer?: ReactNode;\n user?: ISidebarUser;\n onLogout?: () => void;\n className?: string;\n}\n\nconst cx = (...c: (string | undefined | false)[]) =>\n c.filter(Boolean).join(\" \");\n\nexport function Sidebar({\n brand,\n children,\n footer,\n user,\n onLogout,\n className,\n}: ISidebarProps) {\n return (\n <aside className={cx(\"dybo-sidebar\", className)}>\n {brand && <div className=\"dybo-sidebar__brand\">{brand}</div>}\n <nav className=\"dybo-sidebar__nav\">{children}</nav>\n <div className=\"dybo-sidebar__footer\">\n {user && (\n <div\n style={{\n display: \"flex\",\n flexDirection: \"column\",\n lineHeight: 1.3,\n }}\n >\n <b style={{ color: \"#fff\", fontSize: \"13px\" }}>{user.name}</b>\n {user.email && (\n <span style={{ color: \"#7f8592\", fontSize: \"11px\" }}>\n {user.email}\n </span>\n )}\n </div>\n )}\n {footer}\n {onLogout && (\n <button\n type=\"button\"\n onClick={onLogout}\n style={{\n background: \"transparent\",\n border: \"1px solid rgba(255,255,255,0.18)\",\n color: \"var(--dybo-sidebar-text)\",\n padding: \"6px 10px\",\n fontSize: \"12px\",\n borderRadius: \"8px\",\n cursor: \"pointer\",\n fontFamily: \"inherit\",\n transition: \"background 0.15s, border-color 0.15s\",\n }}\n >\n Log out\n </button>\n )}\n </div>\n </aside>\n );\n}\n","import { type ReactNode } from \"react\";\n\nexport interface ITopBarProps {\n title: string;\n children?: ReactNode;\n className?: string;\n}\n\nconst cx = (...c: (string | undefined | false)[]) =>\n c.filter(Boolean).join(\" \");\n\nexport function TopBar({ title, children, className }: ITopBarProps) {\n return (\n <header className={cx(\"dybo-topbar\", className)}>\n <span className=\"dybo-topbar__title\">{title}</span>\n {children}\n </header>\n );\n}\n","import { type ReactNode } from \"react\";\n\nexport interface INavItemProps {\n label: string;\n href?: string;\n active?: boolean;\n icon?: ReactNode;\n onClick?: () => void;\n className?: string;\n}\n\nexport interface INavSectionProps {\n label: string;\n}\n\nconst cx = (...c: (string | undefined | false)[]) =>\n c.filter(Boolean).join(\" \");\n\nexport function NavItem({\n label,\n href,\n active = false,\n icon,\n onClick,\n className,\n}: INavItemProps) {\n const baseClass = cx(\n \"dybo-nav-item\",\n active ? \"dybo-nav-item--active\" : undefined,\n className,\n );\n\n const content = (\n <>\n {icon ? (\n <span style={{ flexShrink: 0, display: \"flex\" }}>{icon}</span>\n ) : (\n <span className=\"dybo-nav-item__dot\" />\n )}\n {label}\n </>\n );\n\n if (href) {\n return (\n <a href={href} className={baseClass} onClick={onClick}>\n {content}\n </a>\n );\n }\n\n return (\n <button type=\"button\" className={baseClass} onClick={onClick}>\n {content}\n </button>\n );\n}\n\nexport function NavSection({ label }: INavSectionProps) {\n return <div className=\"dybo-sidebar__section\">{label}</div>;\n}\n","import { type ReactNode } from \"react\";\n\nexport type ColumnAlign = \"left\" | \"right\" | \"center\";\n\nexport interface IColumn<TRow = Record<string, unknown>> {\n key: string;\n label: string;\n align?: ColumnAlign;\n format?: (value: unknown, row: TRow) => ReactNode;\n className?: string;\n}\n\nexport interface IDataTableProps<\n TRow extends Record<string, unknown> = Record<string, unknown>,\n> {\n columns: IColumn<TRow>[];\n rows: TRow[];\n rowKey?: keyof TRow | ((row: TRow, index: number) => string | number);\n onRowClick?: (row: TRow) => void;\n emptyMessage?: string;\n className?: string;\n}\n\nconst cx = (...c: (string | undefined | false)[]) =>\n c.filter(Boolean).join(\" \");\n\nexport function DataTable<TRow extends Record<string, unknown>>({\n columns,\n rows,\n rowKey,\n onRowClick,\n emptyMessage = \"Nenhum resultado.\",\n className,\n}: IDataTableProps<TRow>) {\n function getRowKey(row: TRow, index: number): string | number {\n if (!rowKey) return index;\n if (typeof rowKey === \"function\") return rowKey(row, index);\n return row[rowKey] as string | number;\n }\n\n return (\n <div className={cx(\"dybo-table-wrap\", className)}>\n <table className=\"dybo-table\">\n <thead>\n <tr>\n {columns.map((col) => (\n <th\n key={col.key}\n className={cx(\n col.align === \"left\" ? \"left\" : undefined,\n col.className,\n )}\n >\n {col.label}\n </th>\n ))}\n </tr>\n </thead>\n <tbody>\n {rows.length === 0 ? (\n <tr>\n <td\n colSpan={columns.length}\n style={{\n textAlign: \"center\",\n padding: \"32px\",\n color: \"var(--dybo-color-text-muted)\",\n }}\n >\n {emptyMessage}\n </td>\n </tr>\n ) : (\n rows.map((row, index) => (\n <tr\n key={getRowKey(row, index)}\n className={cx(\n onRowClick ? \"dybo-table__row--clickable\" : undefined,\n )}\n onClick={onRowClick ? () => onRowClick(row) : undefined}\n >\n {columns.map((col) => {\n const value = row[col.key];\n return (\n <td\n key={col.key}\n className={cx(\n col.align === \"left\" ? \"left\" : undefined,\n col.className,\n )}\n >\n {col.format\n ? col.format(value, row)\n : String(value ?? \"\")}\n </td>\n );\n })}\n </tr>\n ))\n )}\n </tbody>\n </table>\n </div>\n );\n}\n","export interface ITab {\n key: string;\n label: string;\n disabled?: boolean;\n}\n\nexport interface ITabsProps {\n tabs: ITab[];\n active: string;\n onChange: (key: string) => void;\n className?: string;\n}\n\nconst cx = (...c: (string | undefined | false)[]) =>\n c.filter(Boolean).join(\" \");\n\nexport function Tabs({ tabs, active, onChange, className }: ITabsProps) {\n return (\n <div className={cx(\"dybo-tabs\", className)} role=\"tablist\">\n {tabs.map((tab) => (\n <button\n key={tab.key}\n type=\"button\"\n role=\"tab\"\n aria-selected={tab.key === active}\n disabled={tab.disabled}\n className={cx(\n \"dybo-tab\",\n tab.key === active ? \"dybo-tab--active\" : undefined,\n )}\n onClick={() => !tab.disabled && onChange(tab.key)}\n >\n {tab.label}\n </button>\n ))}\n </div>\n );\n}\n","import { type ReactNode, type CSSProperties } from \"react\";\n\nexport interface IOverviewField {\n label: string;\n value: ReactNode;\n className?: string;\n}\n\nexport interface IOverviewGridProps {\n fields: IOverviewField[];\n className?: string;\n}\n\nexport interface IOverviewFieldProps extends IOverviewField {\n style?: CSSProperties;\n}\n\nconst cx = (...c: (string | undefined | false)[]) =>\n c.filter(Boolean).join(\" \");\n\nexport function OverviewField({\n label,\n value,\n className,\n style,\n}: IOverviewFieldProps) {\n return (\n <div className={cx(\"dybo-overview-field\", className)} style={style}>\n <span className=\"dybo-overview-field__label\">{label}</span>\n <span className=\"dybo-overview-field__value\">{value}</span>\n </div>\n );\n}\n\nexport function OverviewGrid({ fields, className }: IOverviewGridProps) {\n return (\n <div className={cx(\"dybo-overview-grid\", className)}>\n {fields.map((field, i) => (\n <OverviewField key={i} {...field} />\n ))}\n </div>\n );\n}\n","import { type SelectHTMLAttributes } from \"react\";\n\nexport interface ISelectOption {\n value: string;\n label: string;\n disabled?: boolean;\n}\n\nexport interface ISelectProps extends SelectHTMLAttributes<HTMLSelectElement> {\n label?: string;\n error?: string;\n options: ISelectOption[];\n placeholder?: string;\n}\n\nconst cx = (...c: (string | undefined | false)[]) =>\n c.filter(Boolean).join(\" \");\n\nexport function Select({\n label,\n error,\n options,\n placeholder,\n className,\n id,\n ...props\n}: ISelectProps) {\n const selectId = id ?? label?.toLowerCase().replace(/\\s+/g, \"-\");\n return (\n <div style={{ display: \"flex\", flexDirection: \"column\", gap: 6 }}>\n {label && (\n <label\n htmlFor={selectId}\n style={{\n fontSize: \"var(--dybo-font-size-sm)\",\n fontWeight: \"var(--dybo-font-weight-medium)\",\n color: \"var(--dybo-color-text-muted)\",\n }}\n >\n {label}\n </label>\n )}\n <select\n id={selectId}\n className={cx(\"dybo-select\", className)}\n style={\n error\n ? {\n borderColor: \"var(--dybo-danger)\",\n boxShadow: \"0 0 0 3px rgba(162,26,23,0.12)\",\n }\n : undefined\n }\n {...props}\n >\n {placeholder && (\n <option value=\"\" disabled>\n {placeholder}\n </option>\n )}\n {options.map((opt) => (\n <option key={opt.value} value={opt.value} disabled={opt.disabled}>\n {opt.label}\n </option>\n ))}\n </select>\n {error && (\n <span\n style={{\n fontSize: \"var(--dybo-font-size-xs)\",\n color: \"var(--dybo-danger)\",\n fontWeight: \"var(--dybo-font-weight-medium)\",\n }}\n >\n {error}\n </span>\n )}\n </div>\n );\n}\n","import { type ReactNode } from \"react\";\n\nexport type AlertVariant = \"success\" | \"warning\" | \"danger\" | \"info\";\n\nexport interface IAlertProps {\n variant?: AlertVariant;\n children: ReactNode;\n onClose?: () => void;\n className?: string;\n}\n\nconst icons: Record<AlertVariant, string> = {\n success: \"✓\",\n warning: \"⚠\",\n danger: \"✕\",\n info: \"ℹ\",\n};\n\nconst cx = (...c: (string | undefined | false)[]) =>\n c.filter(Boolean).join(\" \");\n\nexport function Alert({\n variant = \"info\",\n children,\n onClose,\n className,\n}: IAlertProps) {\n return (\n <div\n className={cx(\"dybo-alert\", `dybo-alert--${variant}`, className)}\n role=\"alert\"\n >\n <span style={{ flexShrink: 0, fontWeight: 700 }}>{icons[variant]}</span>\n <span style={{ flexGrow: 1 }}>{children}</span>\n {onClose && (\n <button\n type=\"button\"\n onClick={onClose}\n aria-label=\"Fechar\"\n style={{\n background: \"transparent\",\n border: \"none\",\n cursor: \"pointer\",\n color: \"inherit\",\n padding: \"0 4px\",\n flexShrink: 0,\n fontSize: \"16px\",\n lineHeight: 1,\n opacity: 0.7,\n }}\n >\n ×\n </button>\n )}\n </div>\n );\n}\n","import { type ReactNode, useEffect, useRef } from \"react\";\nimport { createPortal } from \"react-dom\";\n\nexport interface IModalProps {\n open: boolean;\n onClose: () => void;\n title?: string;\n children: ReactNode;\n footer?: ReactNode;\n maxWidth?: number | string;\n closeOnBackdrop?: boolean;\n}\n\nexport function Modal({\n open,\n onClose,\n title,\n children,\n footer,\n maxWidth = 520,\n closeOnBackdrop = true,\n}: IModalProps) {\n const dialogRef = useRef<HTMLDivElement>(null);\n\n useEffect(() => {\n if (!open) return;\n\n function onKeyDown(e: KeyboardEvent) {\n if (e.key === \"Escape\") onClose();\n }\n\n document.addEventListener(\"keydown\", onKeyDown);\n return () => document.removeEventListener(\"keydown\", onKeyDown);\n }, [open, onClose]);\n\n if (!open) return null;\n\n return createPortal(\n <div\n className=\"dybo-modal-backdrop\"\n onClick={closeOnBackdrop ? onClose : undefined}\n aria-modal=\"true\"\n role=\"dialog\"\n >\n <div\n ref={dialogRef}\n className=\"dybo-modal\"\n style={{ maxWidth }}\n onClick={(e) => e.stopPropagation()}\n >\n <div className=\"dybo-modal__header\">\n {title ? <h2 className=\"dybo-modal__title\">{title}</h2> : <span />}\n <button\n type=\"button\"\n className=\"dybo-modal__close\"\n onClick={onClose}\n aria-label=\"Fechar\"\n >\n <svg width=\"16\" height=\"16\" viewBox=\"0 0 16 16\" fill=\"none\">\n <path\n d=\"M2 2l12 12M14 2L2 14\"\n stroke=\"currentColor\"\n strokeWidth=\"2\"\n strokeLinecap=\"round\"\n />\n </svg>\n </button>\n </div>\n <div className=\"dybo-modal__body\">{children}</div>\n {footer && <div className=\"dybo-modal__footer\">{footer}</div>}\n </div>\n </div>,\n document.body,\n );\n}\n","import { type ReactNode } from \"react\";\n\nexport interface ILoginCardProps {\n logo?: ReactNode;\n subtitle?: string;\n children: ReactNode;\n className?: string;\n}\n\nconst cx = (...c: (string | undefined | false)[]) =>\n c.filter(Boolean).join(\" \");\n\nexport function LoginCard({\n logo,\n subtitle,\n children,\n className,\n}: ILoginCardProps) {\n return (\n <div className=\"dybo-login-wrap\">\n <div className={cx(\"dybo-login-card\", className)}>\n {logo && (\n <div\n style={{\n display: \"flex\",\n justifyContent: \"center\",\n marginBottom: 16,\n }}\n >\n {logo}\n </div>\n )}\n {subtitle && <p className=\"dybo-login-card__subtitle\">{subtitle}</p>}\n {children}\n </div>\n </div>\n );\n}\n"]}
|
|
1
|
+
{"version":3,"sources":["../src/components/Button.tsx","../src/components/Card.tsx","../src/components/Input.tsx","../src/components/Badge.tsx","../src/components/IconRail.tsx","../src/components/NavTabs.tsx","../src/components/ScopeTabs.tsx","../src/components/PriorityBadge.tsx","../src/components/TicketStatusBadge.tsx","../src/components/AppShell.tsx","../src/components/Sidebar.tsx","../src/components/TopBar.tsx","../src/components/NavItem.tsx","../src/components/DataTable.tsx","../src/components/Tabs.tsx","../src/components/OverviewGrid.tsx","../src/components/Select.tsx","../src/components/Alert.tsx","../src/components/Modal.tsx","../src/components/Drawer.tsx","../src/components/LoginCard.tsx","../src/components/OrgEntitySelector.tsx","../src/components/ThemeToggle.tsx","../src/components/Avatar.tsx","../src/components/NotificationsButton.tsx","../src/components/PlatformSwitcher.tsx","../src/components/UnderlineTabs.tsx","../src/components/FilterPills.tsx","../src/components/Pagination.tsx","../src/components/EmptyState.tsx","../src/components/KpiCard.tsx","../src/components/KpiGrid.tsx","../src/components/KpiStrip.tsx","../src/components/ViewToggle.tsx","../src/components/MetadataBadge.tsx","../src/components/Toast.tsx","../src/components/Banner.tsx","../src/components/Accordion.tsx","../src/components/ReadOnlyField.tsx","../src/components/SearchField.tsx","../src/components/DateRangeTrigger.tsx","../src/components/UploadDropzone.tsx","../src/components/StepNavigator.tsx","../src/components/DocumentTypeGrid.tsx","../src/components/FilePreviewCard.tsx","../src/components/FileReviewRow.tsx","../src/components/RejectionReasonPanel.tsx","../src/components/QueueStatusBadge.tsx","../src/components/TicketCard.tsx","../src/components/ChatThread.tsx","../src/components/InternalNoteCard.tsx","../src/components/ChannelBadge.tsx","../src/components/SignalBadge.tsx","../src/components/CategoryLabel.tsx","../src/components/LinkedAppIndicator.tsx"],"names":["cx","jsx","jsxs","useEffect","createPortal","Fragment","defaultLabels"],"mappings":"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","file":"index.js","sourcesContent":["import { type ButtonHTMLAttributes } from \"react\";\n\nexport type ButtonVariant = \"primary\" | \"secondary\" | \"ghost\" | \"danger\";\nexport type ButtonSize = \"sm\" | \"md\" | \"lg\";\n\nexport interface IButtonProps extends ButtonHTMLAttributes<HTMLButtonElement> {\n variant?: ButtonVariant;\n size?: ButtonSize;\n loading?: boolean;\n}\n\nconst sizeClass: Record<ButtonSize, string> = {\n sm: \"dybo-btn--sm\",\n md: \"\",\n lg: \"dybo-btn--lg\",\n};\n\nconst cx = (...c: (string | undefined | false)[]) =>\n c.filter(Boolean).join(\" \");\n\nexport function Button({\n variant = \"primary\",\n size = \"md\",\n loading = false,\n disabled,\n className,\n children,\n ...props\n}: IButtonProps) {\n return (\n <button\n className={cx(\n \"dybo-btn\",\n `dybo-btn--${variant}`,\n sizeClass[size],\n className,\n )}\n disabled={disabled || loading}\n {...props}\n >\n {loading ? \"…\" : children}\n </button>\n );\n}\n","import { type HTMLAttributes } from \"react\";\n\nexport interface ICardProps extends HTMLAttributes<HTMLDivElement> {\n padding?: number | string;\n solid?: boolean;\n}\n\nconst cx = (...c: (string | undefined | false)[]) =>\n c.filter(Boolean).join(\" \");\n\nexport function Card({\n padding = 24,\n solid = false,\n className,\n style,\n ...props\n}: ICardProps) {\n return (\n <div\n className={cx(\"dybo-glass\", className)}\n style={{\n padding,\n background: solid ? \"var(--card-bg-with-opacity)\" : undefined,\n ...style,\n }}\n {...props}\n />\n );\n}\n","import { type InputHTMLAttributes } from \"react\";\n\nexport interface IInputProps extends InputHTMLAttributes<HTMLInputElement> {\n label?: string;\n error?: string;\n}\n\nconst cx = (...c: (string | undefined | false)[]) =>\n c.filter(Boolean).join(\" \");\n\nexport function Input({ label, error, className, id, ...props }: IInputProps) {\n const inputId = id ?? label?.toLowerCase().replace(/\\s+/g, \"-\");\n return (\n <div style={{ display: \"flex\", flexDirection: \"column\", gap: 6 }}>\n {label && (\n <label\n htmlFor={inputId}\n style={{\n fontSize: \"var(--dybo-font-size-sm)\",\n fontWeight: \"var(--dybo-font-weight-medium)\",\n color: \"hsl(var(--muted-foreground))\",\n }}\n >\n {label}\n </label>\n )}\n <input\n id={inputId}\n className={cx(\n \"dybo-input\",\n error ? \"dybo-input--error\" : undefined,\n className,\n )}\n {...props}\n />\n {error && (\n <span\n style={{\n fontSize: \"var(--dybo-font-size-xs)\",\n color: \"hsl(var(--destructive))\",\n fontWeight: \"var(--dybo-font-weight-medium)\",\n }}\n >\n {error}\n </span>\n )}\n </div>\n );\n}\n","import { type HTMLAttributes } from \"react\";\n\nexport type BadgeStatus =\n | \"brand\"\n | \"resolved\"\n | \"high\"\n | \"medium\"\n | \"success\"\n | \"warning\"\n | \"danger\"\n | \"soon\";\n\nexport interface IBadgeProps extends HTMLAttributes<HTMLSpanElement> {\n status?: BadgeStatus;\n}\n\nconst cx = (...c: (string | undefined | false)[]) =>\n c.filter(Boolean).join(\" \");\n\nexport function Badge({ status = \"brand\", className, ...props }: IBadgeProps) {\n return (\n <span\n className={cx(\"dybo-badge\", `dybo-badge--${status}`, className)}\n {...props}\n />\n );\n}\n","import { type HTMLAttributes, type ReactNode } from \"react\";\n\nexport interface IIconRailItemProps extends HTMLAttributes<HTMLAnchorElement> {\n href?: string;\n active?: boolean;\n title?: string;\n children: ReactNode;\n}\n\nexport interface IIconRailProps {\n brand: ReactNode;\n children?: ReactNode;\n className?: string;\n}\n\nconst cx = (...c: (string | undefined | false)[]) =>\n c.filter(Boolean).join(\" \");\n\nexport function IconRailItem({\n active = false,\n className,\n children,\n ...props\n}: IIconRailItemProps) {\n return (\n <a\n className={cx(\n \"dybo-icon-rail__item\",\n active ? \"dybo-icon-rail__item--active\" : undefined,\n className,\n )}\n {...props}\n >\n {children}\n </a>\n );\n}\n\nexport function IconRail({ brand, children, className }: IIconRailProps) {\n return (\n <aside className={cx(\"dybo-icon-rail\", className)}>\n <div className=\"dybo-icon-rail__brand\">{brand}</div>\n <div className=\"dybo-icon-rail__nav\">\n <div className=\"dybo-icon-rail__pill\">\n <nav className=\"dybo-icon-rail__items\">{children}</nav>\n </div>\n </div>\n </aside>\n );\n}\n","export interface INavTab {\n key: string;\n label: string;\n disabled?: boolean;\n}\n\nexport interface INavTabsProps {\n tabs: INavTab[];\n active: string;\n onChange: (key: string) => void;\n className?: string;\n}\n\nconst cx = (...c: (string | undefined | false)[]) =>\n c.filter(Boolean).join(\" \");\n\nexport function NavTabs({ tabs, active, onChange, className }: INavTabsProps) {\n return (\n <div className={cx(\"dybo-navtabs\", className)} role=\"tablist\">\n {tabs.map((tab) => (\n <button\n key={tab.key}\n type=\"button\"\n role=\"tab\"\n aria-selected={tab.key === active}\n disabled={tab.disabled}\n className={cx(\n \"dybo-navtab\",\n tab.key === active ? \"dybo-navtab--active\" : undefined,\n )}\n onClick={() => !tab.disabled && onChange(tab.key)}\n >\n {tab.label}\n </button>\n ))}\n </div>\n );\n}\n","export interface IScopeTab {\n key: string;\n label: string;\n count?: number;\n disabled?: boolean;\n}\n\nexport interface IScopeTabsProps {\n tabs: IScopeTab[];\n active: string;\n onChange: (key: string) => void;\n className?: string;\n}\n\nconst cx = (...c: (string | undefined | false)[]) =>\n c.filter(Boolean).join(\" \");\n\nexport function ScopeTabs({ tabs, active, onChange, className }: IScopeTabsProps) {\n return (\n <div className={cx(\"dybo-scope\", className)} role=\"tablist\">\n {tabs.map((tab) => (\n <button\n key={tab.key}\n type=\"button\"\n role=\"tab\"\n aria-selected={tab.key === active}\n disabled={tab.disabled}\n className={cx(\n \"dybo-scope-tab\",\n tab.key === active ? \"dybo-scope-tab--active\" : undefined,\n )}\n onClick={() => !tab.disabled && onChange(tab.key)}\n >\n {tab.label}\n {tab.count !== undefined && (\n <span className=\"dybo-scope-count\">{tab.count}</span>\n )}\n </button>\n ))}\n </div>\n );\n}\n","import { type HTMLAttributes } from \"react\";\n\nexport type PriorityLevel = \"urgent\" | \"high\" | \"medium\" | \"low\" | \"none\";\n\nexport interface IPriorityBadgeProps extends HTMLAttributes<HTMLSpanElement> {\n priority: PriorityLevel;\n}\n\nconst cx = (...c: (string | undefined | false)[]) =>\n c.filter(Boolean).join(\" \");\n\nexport function PriorityBadge({\n priority,\n className,\n children,\n ...props\n}: IPriorityBadgeProps) {\n return (\n <span\n className={cx(\"dybo-priority\", `dybo-priority--${priority}`, className)}\n {...props}\n >\n {children ?? priority}\n </span>\n );\n}\n","import { type HTMLAttributes } from \"react\";\n\nexport type TicketStatus = \"open\" | \"pending\" | \"snoozed\" | \"resolved\";\n\nexport interface ITicketStatusBadgeProps extends HTMLAttributes<HTMLSpanElement> {\n status: TicketStatus;\n}\n\nconst cx = (...c: (string | undefined | false)[]) =>\n c.filter(Boolean).join(\" \");\n\nconst defaultLabels: Record<TicketStatus, string> = {\n open: \"Open\",\n pending: \"Pending\",\n snoozed: \"Snoozed\",\n resolved: \"Resolved\",\n};\n\nexport function TicketStatusBadge({\n status,\n className,\n children,\n ...props\n}: ITicketStatusBadgeProps) {\n return (\n <span\n className={cx(\n \"dybo-ticket-status\",\n `dybo-ticket-status--${status}`,\n className,\n )}\n {...props}\n >\n {children ?? defaultLabels[status]}\n </span>\n );\n}\n","import { type ReactNode } from \"react\";\n\nexport interface IAppShellProps {\n sidebar: ReactNode;\n topBar?: ReactNode;\n children: ReactNode;\n className?: string;\n}\n\nconst cx = (...c: (string | undefined | false)[]) =>\n c.filter(Boolean).join(\" \");\n\nexport function AppShell({\n sidebar,\n topBar,\n children,\n className,\n}: IAppShellProps) {\n return (\n <div className={cx(\"dybo-app-shell\", className)}>\n {sidebar}\n <div className=\"dybo-main\">\n {topBar}\n <div className=\"dybo-content\">{children}</div>\n </div>\n </div>\n );\n}\n","import { type ReactNode } from \"react\";\n\nexport interface ISidebarUser {\n name: string;\n email?: string;\n}\n\nexport interface ISidebarProps {\n brand?: ReactNode;\n children?: ReactNode;\n footer?: ReactNode;\n user?: ISidebarUser;\n onLogout?: () => void;\n className?: string;\n}\n\nconst cx = (...c: (string | undefined | false)[]) =>\n c.filter(Boolean).join(\" \");\n\nexport function Sidebar({\n brand,\n children,\n footer,\n user,\n onLogout,\n className,\n}: ISidebarProps) {\n return (\n <aside className={cx(\"dybo-sidebar\", className)}>\n {brand && <div className=\"dybo-sidebar__brand\">{brand}</div>}\n <nav className=\"dybo-sidebar__nav\">{children}</nav>\n <div className=\"dybo-sidebar__footer\">\n {user && (\n <div\n style={{\n display: \"flex\",\n flexDirection: \"column\",\n lineHeight: 1.3,\n }}\n >\n <b style={{ color: \"hsl(var(--brand-white))\", fontSize: \"13px\" }}>{user.name}</b>\n {user.email && (\n <span style={{ color: \"hsl(var(--brand-white) / 0.6)\", fontSize: \"11px\" }}>\n {user.email}\n </span>\n )}\n </div>\n )}\n {footer}\n {onLogout && (\n <button\n type=\"button\"\n onClick={onLogout}\n style={{\n background: \"transparent\",\n border: \"1px solid hsl(var(--brand-white) / 0.18)\",\n color: \"hsl(var(--brand-white) / 0.75)\",\n padding: \"6px 10px\",\n fontSize: \"12px\",\n borderRadius: \"8px\",\n cursor: \"pointer\",\n fontFamily: \"inherit\",\n transition: \"background 0.15s, border-color 0.15s\",\n }}\n >\n Log out\n </button>\n )}\n </div>\n </aside>\n );\n}\n","import { type ReactNode } from \"react\";\n\nexport interface ITopBarProps {\n title: string;\n children?: ReactNode;\n className?: string;\n}\n\nconst cx = (...c: (string | undefined | false)[]) =>\n c.filter(Boolean).join(\" \");\n\nexport function TopBar({ title, children, className }: ITopBarProps) {\n return (\n <header className={cx(\"dybo-topbar\", className)}>\n <span className=\"dybo-topbar__title\">{title}</span>\n {children}\n </header>\n );\n}\n","import { type ReactNode } from \"react\";\n\nexport interface INavItemProps {\n label: string;\n href?: string;\n active?: boolean;\n icon?: ReactNode;\n onClick?: () => void;\n className?: string;\n}\n\nexport interface INavSectionProps {\n label: string;\n}\n\nconst cx = (...c: (string | undefined | false)[]) =>\n c.filter(Boolean).join(\" \");\n\nexport function NavItem({\n label,\n href,\n active = false,\n icon,\n onClick,\n className,\n}: INavItemProps) {\n const baseClass = cx(\n \"dybo-nav-item\",\n active ? \"dybo-nav-item--active\" : undefined,\n className,\n );\n\n const content = (\n <>\n {icon ? (\n <span style={{ flexShrink: 0, display: \"flex\" }}>{icon}</span>\n ) : (\n <span className=\"dybo-nav-item__dot\" />\n )}\n {label}\n </>\n );\n\n if (href) {\n return (\n <a href={href} className={baseClass} onClick={onClick}>\n {content}\n </a>\n );\n }\n\n return (\n <button type=\"button\" className={baseClass} onClick={onClick}>\n {content}\n </button>\n );\n}\n\nexport function NavSection({ label }: INavSectionProps) {\n return <div className=\"dybo-sidebar__section\">{label}</div>;\n}\n","import { type ReactNode } from \"react\";\n\nexport type ColumnAlign = \"left\" | \"right\" | \"center\";\nexport type SortDirection = \"asc\" | \"desc\";\n\nexport interface IColumn<TRow = Record<string, unknown>> {\n key: string;\n label: string;\n align?: ColumnAlign;\n format?: (value: unknown, row: TRow) => ReactNode;\n className?: string;\n /** Renders the arrows-up-down affordance and calls `onSort` on click. */\n sortable?: boolean;\n}\n\nexport interface IDataTableProps<\n TRow extends Record<string, unknown> = Record<string, unknown>,\n> {\n columns: IColumn<TRow>[];\n rows: TRow[];\n rowKey?: keyof TRow | ((row: TRow, index: number) => string | number);\n onRowClick?: (row: TRow) => void;\n emptyMessage?: string;\n className?: string;\n /** Search/filter/CTA row rendered above the table, inside the same wrapper. */\n toolbar?: ReactNode;\n /** Controlled sort state — the table has no sort logic of its own. */\n sortColumn?: string;\n sortDirection?: SortDirection;\n onSort?: (key: string) => void;\n}\n\nconst cx = (...c: (string | undefined | false)[]) =>\n c.filter(Boolean).join(\" \");\n\nexport function DataTable<TRow extends Record<string, unknown>>({\n columns,\n rows,\n rowKey,\n onRowClick,\n emptyMessage = \"No results.\",\n className,\n toolbar,\n sortColumn,\n sortDirection,\n onSort,\n}: IDataTableProps<TRow>) {\n function getRowKey(row: TRow, index: number): string | number {\n if (!rowKey) return index;\n if (typeof rowKey === \"function\") return rowKey(row, index);\n return row[rowKey] as string | number;\n }\n\n return (\n <div className={cx(\"dybo-table-wrap\", className)}>\n {toolbar && <div className=\"dybo-table__toolbar\">{toolbar}</div>}\n <table className=\"dybo-table\">\n <thead>\n <tr>\n {columns.map((col) => (\n <th\n key={col.key}\n className={cx(\n col.align === \"left\" ? \"left\" : undefined,\n col.className,\n )}\n >\n {col.sortable ? (\n <button\n type=\"button\"\n className=\"dybo-table__sort-btn\"\n onClick={() => onSort?.(col.key)}\n >\n {col.label}\n <svg\n width=\"14\"\n height=\"14\"\n viewBox=\"0 0 24 24\"\n fill=\"none\"\n stroke=\"currentColor\"\n strokeWidth=\"2\"\n strokeLinecap=\"round\"\n strokeLinejoin=\"round\"\n style={{\n opacity: sortColumn === col.key ? 1 : 0.45,\n transform:\n sortColumn === col.key && sortDirection === \"desc\"\n ? \"rotate(180deg)\"\n : undefined,\n }}\n >\n <path d=\"M8 9l4 -4l4 4\" />\n <path d=\"M16 15l-4 4l-4 -4\" />\n </svg>\n </button>\n ) : (\n col.label\n )}\n </th>\n ))}\n </tr>\n </thead>\n <tbody>\n {rows.length === 0 ? (\n <tr>\n <td\n colSpan={columns.length}\n style={{\n textAlign: \"center\",\n padding: \"32px\",\n color: \"hsl(var(--muted-foreground))\",\n }}\n >\n {emptyMessage}\n </td>\n </tr>\n ) : (\n rows.map((row, index) => (\n <tr\n key={getRowKey(row, index)}\n className={cx(\n onRowClick ? \"dybo-table__row--clickable\" : undefined,\n )}\n onClick={onRowClick ? () => onRowClick(row) : undefined}\n >\n {columns.map((col) => {\n const value = row[col.key];\n return (\n <td\n key={col.key}\n className={cx(\n col.align === \"left\" ? \"left\" : undefined,\n col.className,\n )}\n >\n {col.format\n ? col.format(value, row)\n : String(value ?? \"\")}\n </td>\n );\n })}\n </tr>\n ))\n )}\n </tbody>\n </table>\n </div>\n );\n}\n","export interface ITab {\n key: string;\n label: string;\n disabled?: boolean;\n}\n\nexport interface ITabsProps {\n tabs: ITab[];\n active: string;\n onChange: (key: string) => void;\n className?: string;\n}\n\nconst cx = (...c: (string | undefined | false)[]) =>\n c.filter(Boolean).join(\" \");\n\nexport function Tabs({ tabs, active, onChange, className }: ITabsProps) {\n return (\n <div className={cx(\"dybo-tabs\", className)} role=\"tablist\">\n {tabs.map((tab) => (\n <button\n key={tab.key}\n type=\"button\"\n role=\"tab\"\n aria-selected={tab.key === active}\n disabled={tab.disabled}\n className={cx(\n \"dybo-tab\",\n tab.key === active ? \"dybo-tab--active\" : undefined,\n )}\n onClick={() => !tab.disabled && onChange(tab.key)}\n >\n {tab.label}\n </button>\n ))}\n </div>\n );\n}\n","import { type ReactNode, type CSSProperties } from \"react\";\n\nexport interface IOverviewField {\n label: string;\n value: ReactNode;\n className?: string;\n}\n\nexport interface IOverviewGridProps {\n fields: IOverviewField[];\n className?: string;\n}\n\nexport interface IOverviewFieldProps extends IOverviewField {\n style?: CSSProperties;\n}\n\nconst cx = (...c: (string | undefined | false)[]) =>\n c.filter(Boolean).join(\" \");\n\nexport function OverviewField({\n label,\n value,\n className,\n style,\n}: IOverviewFieldProps) {\n return (\n <div className={cx(\"dybo-overview-field\", className)} style={style}>\n <span className=\"dybo-overview-field__label\">{label}</span>\n <span className=\"dybo-overview-field__value\">{value}</span>\n </div>\n );\n}\n\nexport function OverviewGrid({ fields, className }: IOverviewGridProps) {\n return (\n <div className={cx(\"dybo-overview-grid\", className)}>\n {fields.map((field, i) => (\n <OverviewField key={i} {...field} />\n ))}\n </div>\n );\n}\n","import { type SelectHTMLAttributes } from \"react\";\n\nexport interface ISelectOption {\n value: string;\n label: string;\n disabled?: boolean;\n}\n\nexport interface ISelectProps extends SelectHTMLAttributes<HTMLSelectElement> {\n label?: string;\n error?: string;\n options: ISelectOption[];\n placeholder?: string;\n}\n\nconst cx = (...c: (string | undefined | false)[]) =>\n c.filter(Boolean).join(\" \");\n\nexport function Select({\n label,\n error,\n options,\n placeholder,\n className,\n id,\n ...props\n}: ISelectProps) {\n const selectId = id ?? label?.toLowerCase().replace(/\\s+/g, \"-\");\n return (\n <div style={{ display: \"flex\", flexDirection: \"column\", gap: 6 }}>\n {label && (\n <label\n htmlFor={selectId}\n style={{\n fontSize: \"var(--dybo-font-size-sm)\",\n fontWeight: \"var(--dybo-font-weight-medium)\",\n color: \"hsl(var(--muted-foreground))\",\n }}\n >\n {label}\n </label>\n )}\n <select\n id={selectId}\n className={cx(\"dybo-select\", error ? \"dybo-select--error\" : undefined, className)}\n {...props}\n >\n {placeholder && (\n <option value=\"\" disabled>\n {placeholder}\n </option>\n )}\n {options.map((opt) => (\n <option key={opt.value} value={opt.value} disabled={opt.disabled}>\n {opt.label}\n </option>\n ))}\n </select>\n {error && (\n <span\n style={{\n fontSize: \"var(--dybo-font-size-xs)\",\n color: \"hsl(var(--destructive))\",\n fontWeight: \"var(--dybo-font-weight-medium)\",\n }}\n >\n {error}\n </span>\n )}\n </div>\n );\n}\n","import { type ReactNode } from \"react\";\n\nexport type AlertVariant = \"success\" | \"warning\" | \"danger\" | \"info\";\n\nexport interface IAlertProps {\n variant?: AlertVariant;\n children: ReactNode;\n onClose?: () => void;\n className?: string;\n}\n\nconst icons: Record<AlertVariant, string> = {\n success: \"✓\",\n warning: \"⚠\",\n danger: \"✕\",\n info: \"ℹ\",\n};\n\nconst cx = (...c: (string | undefined | false)[]) =>\n c.filter(Boolean).join(\" \");\n\nexport function Alert({\n variant = \"info\",\n children,\n onClose,\n className,\n}: IAlertProps) {\n return (\n <div\n className={cx(\"dybo-alert\", `dybo-alert--${variant}`, className)}\n role=\"alert\"\n >\n <span style={{ flexShrink: 0, fontWeight: 700 }}>{icons[variant]}</span>\n <span style={{ flexGrow: 1 }}>{children}</span>\n {onClose && (\n <button\n type=\"button\"\n onClick={onClose}\n aria-label=\"Fechar\"\n style={{\n background: \"transparent\",\n border: \"none\",\n cursor: \"pointer\",\n color: \"inherit\",\n padding: \"0 4px\",\n flexShrink: 0,\n fontSize: \"16px\",\n lineHeight: 1,\n opacity: 0.7,\n }}\n >\n ×\n </button>\n )}\n </div>\n );\n}\n","import { type ReactNode, useEffect, useRef } from \"react\";\nimport { createPortal } from \"react-dom\";\n\nexport interface IModalProps {\n open: boolean;\n onClose: () => void;\n title?: string;\n children: ReactNode;\n footer?: ReactNode;\n maxWidth?: number | string;\n closeOnBackdrop?: boolean;\n}\n\nexport function Modal({\n open,\n onClose,\n title,\n children,\n footer,\n maxWidth = 520,\n closeOnBackdrop = true,\n}: IModalProps) {\n const dialogRef = useRef<HTMLDivElement>(null);\n\n useEffect(() => {\n if (!open) return;\n\n function onKeyDown(e: KeyboardEvent) {\n if (e.key === \"Escape\") onClose();\n }\n\n document.addEventListener(\"keydown\", onKeyDown);\n return () => document.removeEventListener(\"keydown\", onKeyDown);\n }, [open, onClose]);\n\n if (!open) return null;\n\n return createPortal(\n <div\n className=\"dybo-modal-backdrop\"\n onClick={closeOnBackdrop ? onClose : undefined}\n aria-modal=\"true\"\n role=\"dialog\"\n >\n <div\n ref={dialogRef}\n className=\"dybo-modal\"\n style={{ maxWidth }}\n onClick={(e) => e.stopPropagation()}\n >\n <div className=\"dybo-modal__header\">\n {title ? <h2 className=\"dybo-modal__title\">{title}</h2> : <span />}\n <button\n type=\"button\"\n className=\"dybo-modal__close\"\n onClick={onClose}\n aria-label=\"Fechar\"\n >\n <svg width=\"16\" height=\"16\" viewBox=\"0 0 16 16\" fill=\"none\">\n <path\n d=\"M2 2l12 12M14 2L2 14\"\n stroke=\"currentColor\"\n strokeWidth=\"2\"\n strokeLinecap=\"round\"\n />\n </svg>\n </button>\n </div>\n <div className=\"dybo-modal__body\">{children}</div>\n {footer && <div className=\"dybo-modal__footer\">{footer}</div>}\n </div>\n </div>,\n document.body,\n );\n}\n","import { type ReactNode, useEffect } from \"react\";\nimport { createPortal } from \"react-dom\";\n\nexport interface IDrawerProps {\n open: boolean;\n onClose: () => void;\n title?: string;\n children: ReactNode;\n footer?: ReactNode;\n side?: \"left\" | \"right\";\n width?: number | string;\n closeOnBackdrop?: boolean;\n hideHeader?: boolean;\n}\n\nexport function Drawer({\n open,\n onClose,\n title,\n children,\n footer,\n side = \"right\",\n width,\n closeOnBackdrop = true,\n hideHeader = false,\n}: IDrawerProps) {\n useEffect(() => {\n if (!open) return;\n\n function onKeyDown(e: KeyboardEvent) {\n if (e.key === \"Escape\") onClose();\n }\n\n document.addEventListener(\"keydown\", onKeyDown);\n return () => document.removeEventListener(\"keydown\", onKeyDown);\n }, [open, onClose]);\n\n if (!open) return null;\n\n const panelClass =\n side === \"left\" ? \"dybo-drawer-panel dybo-drawer-panel--left\" : \"dybo-drawer-panel dybo-drawer-panel--right\";\n\n return createPortal(\n <>\n <div\n className=\"dybo-drawer-backdrop\"\n onClick={closeOnBackdrop ? onClose : undefined}\n aria-hidden\n />\n <aside\n className={panelClass}\n style={width !== undefined ? { width, maxWidth: \"100%\" } : undefined}\n aria-modal=\"true\"\n role=\"dialog\"\n onClick={(e) => e.stopPropagation()}\n >\n {!hideHeader && (\n <div className=\"dybo-drawer-panel__header\">\n {title ? <h2 className=\"dybo-drawer-panel__title\">{title}</h2> : <span />}\n <button\n type=\"button\"\n className=\"dybo-drawer-panel__close\"\n onClick={onClose}\n aria-label=\"Close\"\n >\n <svg width=\"16\" height=\"16\" viewBox=\"0 0 16 16\" fill=\"none\">\n <path\n d=\"M2 2l12 12M14 2L2 14\"\n stroke=\"currentColor\"\n strokeWidth=\"2\"\n strokeLinecap=\"round\"\n />\n </svg>\n </button>\n </div>\n )}\n <div\n className={\n hideHeader ? \"dybo-drawer-panel__body dybo-drawer-panel__body--flush\" : \"dybo-drawer-panel__body\"\n }\n >\n {children}\n </div>\n {footer && <div className=\"dybo-drawer-panel__footer\">{footer}</div>}\n </aside>\n </>,\n document.body,\n );\n}\n","import { type ReactNode } from \"react\";\n\nexport interface ILoginCardProps {\n logo?: ReactNode;\n subtitle?: string;\n children: ReactNode;\n className?: string;\n}\n\nconst cx = (...c: (string | undefined | false)[]) =>\n c.filter(Boolean).join(\" \");\n\nexport function LoginCard({\n logo,\n subtitle,\n children,\n className,\n}: ILoginCardProps) {\n return (\n <div className=\"dybo-login-wrap\">\n <div className={cx(\"dybo-login-card\", className)}>\n {logo && (\n <div\n style={{\n display: \"flex\",\n justifyContent: \"center\",\n marginBottom: 16,\n }}\n >\n {logo}\n </div>\n )}\n {subtitle && <p className=\"dybo-login-card__subtitle\">{subtitle}</p>}\n {children}\n </div>\n </div>\n );\n}\n","import { type ButtonHTMLAttributes } from \"react\";\n\nexport interface IOrgEntitySelectorProps\n extends ButtonHTMLAttributes<HTMLButtonElement> {\n label: string;\n}\n\nconst cx = (...c: (string | undefined | false)[]) =>\n c.filter(Boolean).join(\" \");\n\nexport function OrgEntitySelector({\n label,\n className,\n ...props\n}: IOrgEntitySelectorProps) {\n return (\n <button\n type=\"button\"\n className={cx(\"dybo-org-selector\", className)}\n {...props}\n >\n <span className=\"dybo-org-selector__label\">{label}</span>\n <svg\n className=\"dybo-org-selector__chevron\"\n width=\"20\"\n height=\"20\"\n viewBox=\"0 0 24 24\"\n fill=\"none\"\n stroke=\"currentColor\"\n strokeWidth=\"2\"\n strokeLinecap=\"round\"\n strokeLinejoin=\"round\"\n >\n <path d=\"M6 9l6 6l6 -6\" />\n </svg>\n </button>\n );\n}\n","export type ThemeMode = \"light\" | \"dark\";\n\nexport interface IThemeToggleProps {\n theme: ThemeMode;\n onChange: (theme: ThemeMode) => void;\n className?: string;\n}\n\nconst cx = (...c: (string | undefined | false)[]) =>\n c.filter(Boolean).join(\" \");\n\nexport function ThemeToggle({ theme, onChange, className }: IThemeToggleProps) {\n return (\n <div className={cx(\"dybo-theme-toggle\", className)}>\n <button\n type=\"button\"\n aria-pressed={theme === \"dark\"}\n className={cx(\n \"dybo-theme-toggle__btn\",\n theme === \"dark\" ? \"dybo-theme-toggle__btn--active\" : undefined,\n )}\n onClick={() => onChange(\"dark\")}\n title=\"Dark\"\n >\n <svg\n width=\"18\"\n height=\"18\"\n viewBox=\"0 0 24 24\"\n fill=\"none\"\n stroke=\"currentColor\"\n strokeWidth=\"2\"\n strokeLinecap=\"round\"\n strokeLinejoin=\"round\"\n >\n <path d=\"M21 12.79A9 9 0 1 1 11.21 3 7 7 0 0 0 21 12.79z\" />\n </svg>\n </button>\n <button\n type=\"button\"\n aria-pressed={theme === \"light\"}\n className={cx(\n \"dybo-theme-toggle__btn\",\n theme === \"light\" ? \"dybo-theme-toggle__btn--active\" : undefined,\n )}\n onClick={() => onChange(\"light\")}\n title=\"Light\"\n >\n <svg\n width=\"18\"\n height=\"18\"\n viewBox=\"0 0 24 24\"\n fill=\"none\"\n stroke=\"currentColor\"\n strokeWidth=\"2\"\n strokeLinecap=\"round\"\n strokeLinejoin=\"round\"\n >\n <circle cx=\"12\" cy=\"12\" r=\"4\" />\n <path d=\"M12 2v2M12 20v2M4.9 4.9l1.4 1.4M17.7 17.7l1.4 1.4M2 12h2M20 12h2M4.9 19.1l1.4-1.4M17.7 6.3l1.4-1.4\" />\n </svg>\n </button>\n </div>\n );\n}\n","export type AvatarSize = \"sm\" | \"md\";\nexport type AvatarShape = \"circle\" | \"square\";\n\nexport interface IAvatarProps {\n initials: string;\n size?: AvatarSize;\n shape?: AvatarShape;\n onClick?: () => void;\n className?: string;\n}\n\nconst cx = (...c: (string | undefined | false)[]) =>\n c.filter(Boolean).join(\" \");\n\nexport function Avatar({\n initials,\n size = \"md\",\n shape = \"square\",\n onClick,\n className,\n}: IAvatarProps) {\n const classes = cx(\n \"dybo-avatar\",\n size === \"sm\" ? \"dybo-avatar--sm\" : \"dybo-avatar--md\",\n size === \"md\"\n ? shape === \"circle\"\n ? \"dybo-avatar--circle\"\n : \"dybo-avatar--square\"\n : undefined,\n className,\n );\n if (onClick) {\n return (\n <button type=\"button\" className={classes} onClick={onClick}>\n <span>{initials}</span>\n </button>\n );\n }\n return (\n <div className={classes}>\n <span>{initials}</span>\n </div>\n );\n}\n","import { type ButtonHTMLAttributes } from \"react\";\n\nexport interface INotificationsButtonProps\n extends ButtonHTMLAttributes<HTMLButtonElement> {\n unread?: boolean;\n}\n\nconst cx = (...c: (string | undefined | false)[]) =>\n c.filter(Boolean).join(\" \");\n\nexport function NotificationsButton({\n unread = false,\n className,\n ...props\n}: INotificationsButtonProps) {\n return (\n <button\n type=\"button\"\n className={cx(\"dybo-notifications-btn\", className)}\n title=\"Notifications\"\n {...props}\n >\n <svg\n width=\"20\"\n height=\"20\"\n viewBox=\"0 0 24 24\"\n fill=\"none\"\n stroke=\"currentColor\"\n strokeWidth=\"2\"\n strokeLinecap=\"round\"\n strokeLinejoin=\"round\"\n >\n <path d=\"M10 5a2 2 0 1 1 4 0a7 7 0 0 1 4 6v3a4 4 0 0 0 2 3h-16a4 4 0 0 0 2 -3v-3a7 7 0 0 1 4 -6\" />\n <path d=\"M9 17v1a3 3 0 0 0 6 0v-1\" />\n </svg>\n {unread && <span className=\"dybo-notifications-btn__dot\" />}\n </button>\n );\n}\n","import { type ReactNode } from \"react\";\n\nexport interface IPlatformSwitcherApp {\n icon: ReactNode;\n title: string;\n description: string;\n href: string;\n}\n\nexport interface IPlatformSwitcherProps {\n apps: IPlatformSwitcherApp[];\n open: boolean;\n onToggle: () => void;\n className?: string;\n}\n\nconst cx = (...c: (string | undefined | false)[]) =>\n c.filter(Boolean).join(\" \");\n\nexport function PlatformSwitcher({ apps, open, onToggle, className }: IPlatformSwitcherProps) {\n return (\n <div style={{ position: \"relative\" }}>\n <button\n type=\"button\"\n className=\"dybo-btn dybo-btn--ghost\"\n style={{ padding: 10 }}\n onClick={onToggle}\n aria-expanded={open}\n title=\"Switch app\"\n >\n <svg\n width=\"20\"\n height=\"20\"\n viewBox=\"0 0 24 24\"\n fill=\"none\"\n stroke=\"currentColor\"\n strokeWidth=\"2\"\n strokeLinecap=\"round\"\n strokeLinejoin=\"round\"\n >\n <rect x=\"4\" y=\"4\" width=\"6\" height=\"6\" rx=\"1\" />\n <rect x=\"14\" y=\"4\" width=\"6\" height=\"6\" rx=\"1\" />\n <rect x=\"4\" y=\"14\" width=\"6\" height=\"6\" rx=\"1\" />\n <rect x=\"14\" y=\"14\" width=\"6\" height=\"6\" rx=\"1\" />\n </svg>\n </button>\n {open && (\n <div className={cx(\"dybo-platform-switcher\", className)}>\n <div className=\"dybo-platform-switcher__grid\">\n {apps.map((app) => (\n <a key={app.title} href={app.href} className=\"dybo-platform-switcher__card\">\n <span className=\"dybo-platform-switcher__icon\">{app.icon}</span>\n <span style={{ display: \"flex\", flexDirection: \"column\", gap: 2 }}>\n <span className=\"dybo-platform-switcher__title\">{app.title}</span>\n <span className=\"dybo-platform-switcher__desc\">{app.description}</span>\n </span>\n </a>\n ))}\n </div>\n </div>\n )}\n </div>\n );\n}\n","export interface IUnderlineTab {\n key: string;\n label: string;\n disabled?: boolean;\n}\n\nexport interface IUnderlineTabsProps {\n tabs: IUnderlineTab[];\n active: string;\n onChange: (key: string) => void;\n className?: string;\n}\n\nconst cx = (...c: (string | undefined | false)[]) =>\n c.filter(Boolean).join(\" \");\n\n/** Secondary page-wide nav for when the page already has an H1 and doesn't need pill weight. */\nexport function UnderlineTabs({ tabs, active, onChange, className }: IUnderlineTabsProps) {\n return (\n <div className={cx(\"dybo-underline-tabs\", className)} role=\"tablist\">\n {tabs.map((tab) => (\n <button\n key={tab.key}\n type=\"button\"\n role=\"tab\"\n aria-selected={tab.key === active}\n disabled={tab.disabled}\n className=\"dybo-underline-tabs__tab\"\n onClick={() => !tab.disabled && onChange(tab.key)}\n >\n {tab.label}\n </button>\n ))}\n </div>\n );\n}\n","export interface IFilterPillOption {\n value: string;\n label: string;\n}\n\nexport interface IFilterPillsProps {\n options: IFilterPillOption[];\n active: string;\n onChange: (value: string) => void;\n className?: string;\n}\n\nconst cx = (...c: (string | undefined | false)[]) =>\n c.filter(Boolean).join(\" \");\n\n/** Nested sub-filter inside an already-active tab (e.g. underline tab -> pill sub-filter). */\nexport function FilterPills({ options, active, onChange, className }: IFilterPillsProps) {\n return (\n <div className={cx(\"dybo-filter-pills\", className)} role=\"tablist\">\n {options.map((opt) => (\n <button\n key={opt.value}\n type=\"button\"\n role=\"tab\"\n aria-selected={opt.value === active}\n className={cx(\n \"dybo-filter-pill\",\n opt.value === active ? \"dybo-filter-pill--active\" : undefined,\n )}\n onClick={() => onChange(opt.value)}\n >\n {opt.label}\n </button>\n ))}\n </div>\n );\n}\n","export interface IPaginationProps {\n page: number;\n pageCount: number;\n pageSize: number;\n total: number;\n pageSizeOptions?: number[];\n onPageChange: (page: number) => void;\n onPageSizeChange?: (size: number) => void;\n className?: string;\n}\n\nconst cx = (...c: (string | undefined | false)[]) =>\n c.filter(Boolean).join(\" \");\n\nexport function Pagination({\n page,\n pageCount,\n pageSize,\n total,\n pageSizeOptions = [5, 10, 25, 50, 100],\n onPageChange,\n onPageSizeChange,\n className,\n}: IPaginationProps) {\n const start = total === 0 ? 0 : (page - 1) * pageSize + 1;\n const end = Math.min(page * pageSize, total);\n\n return (\n <div className={cx(\"dybo-pagination\", className)}>\n <p className=\"dybo-pagination__summary\">\n {start}–{end} of {total}\n </p>\n <div className=\"dybo-pagination__controls\">\n {onPageSizeChange && (\n <label className=\"dybo-pagination__size\">\n <span>Rows per page</span>\n <select\n className=\"dybo-select\"\n value={pageSize}\n onChange={(e) => onPageSizeChange(Number(e.target.value))}\n >\n {pageSizeOptions.map((n) => (\n <option key={n} value={n}>\n {n}\n </option>\n ))}\n </select>\n </label>\n )}\n <nav className=\"dybo-pagination__nav\" aria-label=\"Pagination\">\n <button\n type=\"button\"\n className=\"dybo-pagination__btn\"\n disabled={page <= 1}\n onClick={() => onPageChange(page - 1)}\n aria-label=\"Previous page\"\n >\n <svg\n width=\"16\"\n height=\"16\"\n viewBox=\"0 0 24 24\"\n fill=\"none\"\n stroke=\"currentColor\"\n strokeWidth=\"2\"\n strokeLinecap=\"round\"\n strokeLinejoin=\"round\"\n >\n <path d=\"M15 6l-6 6l6 6\" />\n </svg>\n </button>\n <button\n type=\"button\"\n aria-current=\"page\"\n className=\"dybo-pagination__btn dybo-pagination__btn--active\"\n >\n {page}\n </button>\n <button\n type=\"button\"\n className=\"dybo-pagination__btn\"\n disabled={page >= pageCount}\n onClick={() => onPageChange(page + 1)}\n aria-label=\"Next page\"\n >\n <svg\n width=\"16\"\n height=\"16\"\n viewBox=\"0 0 24 24\"\n fill=\"none\"\n stroke=\"currentColor\"\n strokeWidth=\"2\"\n strokeLinecap=\"round\"\n strokeLinejoin=\"round\"\n >\n <path d=\"M9 6l6 6l-6 6\" />\n </svg>\n </button>\n </nav>\n </div>\n </div>\n );\n}\n","import { type ReactNode } from \"react\";\n\nexport type EmptyStateVariant = \"simple\" | \"rich\" | \"table-row\";\n\nexport interface IEmptyStateProps {\n variant?: EmptyStateVariant;\n icon?: ReactNode;\n title?: string;\n description?: string;\n className?: string;\n}\n\nconst cx = (...c: (string | undefined | false)[]) =>\n c.filter(Boolean).join(\" \");\n\nexport function EmptyState({\n variant = \"simple\",\n icon,\n title,\n description,\n className,\n}: IEmptyStateProps) {\n if (variant === \"table-row\") {\n return (\n <p className={cx(\"dybo-empty-row\", className)}>\n {title ?? \"No results.\"}\n </p>\n );\n }\n\n if (variant === \"rich\") {\n return (\n <div className={cx(\"dybo-empty--rich\", className)}>\n <div className=\"dybo-empty__inner\">\n {icon && <div className=\"dybo-empty__icon\">{icon}</div>}\n <p className=\"dybo-empty__title\">{title ?? \"No data to display\"}</p>\n {description && <p className=\"dybo-empty__desc\">{description}</p>}\n </div>\n </div>\n );\n }\n\n return (\n <div className={cx(\"dybo-empty\", className)}>\n <p className=\"dybo-empty__text\">{title ?? \"Available Soon\"}</p>\n </div>\n );\n}\n","import { type ReactNode } from \"react\";\n\nexport type KpiCardVariant = \"ghost\" | \"tile\";\n\nexport interface IKpiCardProps {\n label: string;\n value: ReactNode;\n icon?: ReactNode;\n variant?: KpiCardVariant;\n className?: string;\n}\n\nconst cx = (...c: (string | undefined | false)[]) =>\n c.filter(Boolean).join(\" \");\n\nexport function KpiCard({\n label,\n value,\n icon,\n variant = \"ghost\",\n className,\n}: IKpiCardProps) {\n if (variant === \"tile\") {\n return (\n <div className={cx(\"dybo-kpi-tile\", className)}>\n <div>\n <span className=\"dybo-kpi-tile__label\">{label}</span>\n <div className=\"dybo-kpi-tile__value\">{value}</div>\n </div>\n {icon && <span className=\"dybo-kpi-tile__icon\">{icon}</span>}\n </div>\n );\n }\n return (\n <div className={cx(\"dybo-kpi\", className)}>\n <div>\n <p className=\"dybo-kpi__label\">{label}</p>\n <p className=\"dybo-kpi__value\">{value}</p>\n </div>\n {icon && <span className=\"dybo-kpi__icon\">{icon}</span>}\n </div>\n );\n}\n","import { type ReactNode } from \"react\";\n\nexport interface IKpiGridCell {\n label: string;\n value: ReactNode;\n sublabel?: string;\n}\n\nexport interface IKpiGridProps {\n cells: IKpiGridCell[];\n className?: string;\n}\n\nconst cx = (...c: (string | undefined | false)[]) =>\n c.filter(Boolean).join(\" \");\n\nexport function KpiGrid({ cells, className }: IKpiGridProps) {\n return (\n <div\n className={cx(\"dybo-kpi-grid\", className)}\n style={{ gridTemplateColumns: `repeat(${cells.length || 1}, minmax(0, 1fr))` }}\n >\n {cells.map((cell, i) => (\n <div key={i} className=\"dybo-kpi-grid__cell\">\n <div className=\"dybo-kpi-grid__label\">{cell.label}</div>\n <div className=\"dybo-kpi-grid__value\">{cell.value}</div>\n {cell.sublabel && (\n <div className=\"dybo-kpi-grid__sublabel\">{cell.sublabel}</div>\n )}\n </div>\n ))}\n </div>\n );\n}\n","import { type ReactNode } from \"react\";\n\nexport interface IKpiStripItem {\n icon: ReactNode;\n label: string;\n value: ReactNode;\n delta?: string;\n}\n\nexport interface IKpiStripProps {\n items: IKpiStripItem[];\n className?: string;\n}\n\nconst cx = (...c: (string | undefined | false)[]) =>\n c.filter(Boolean).join(\" \");\n\nexport function KpiStrip({ items, className }: IKpiStripProps) {\n return (\n <div className={cx(\"dybo-kpi-strip\", className)}>\n {items.map((item, i) => (\n <div key={i} className=\"dybo-kpi-strip__item\">\n <span className=\"dybo-kpi-strip__icon\">{item.icon}</span>\n <div className=\"dybo-kpi-strip__row\">\n <div>\n <span className=\"dybo-kpi-strip__label\">{item.label}</span>\n {item.delta && (\n <span className=\"dybo-kpi-strip__delta\">{item.delta}</span>\n )}\n </div>\n <span className=\"dybo-kpi-strip__value\">{item.value}</span>\n </div>\n </div>\n ))}\n </div>\n );\n}\n","import { type ReactNode } from \"react\";\n\nexport interface IViewToggleOption {\n value: string;\n icon: ReactNode;\n label: string;\n}\n\nexport interface IViewToggleProps {\n value: string;\n options: IViewToggleOption[];\n onChange: (value: string) => void;\n className?: string;\n}\n\nconst cx = (...c: (string | undefined | false)[]) =>\n c.filter(Boolean).join(\" \");\n\nexport function ViewToggle({ value, options, onChange, className }: IViewToggleProps) {\n return (\n <div className={cx(\"dybo-view-toggle\", className)}>\n {options.map((opt) => (\n <button\n key={opt.value}\n type=\"button\"\n title={opt.label}\n aria-pressed={opt.value === value}\n className={cx(\n \"dybo-view-toggle__btn\",\n opt.value === value ? \"dybo-view-toggle__btn--active\" : undefined,\n )}\n onClick={() => onChange(opt.value)}\n >\n {opt.icon}\n </button>\n ))}\n </div>\n );\n}\n","export interface IMetadataBadgeProps {\n label: string;\n value: string;\n className?: string;\n}\n\nconst cx = (...c: (string | undefined | false)[]) =>\n c.filter(Boolean).join(\" \");\n\nexport function MetadataBadge({ label, value, className }: IMetadataBadgeProps) {\n return (\n <div className={cx(\"dybo-metadata-badge\", className)}>\n <p>\n {label}: <b>{value}</b>\n </p>\n </div>\n );\n}\n","import { type ReactNode } from \"react\";\n\nexport interface IToastProps {\n open: boolean;\n message: ReactNode;\n icon?: ReactNode;\n className?: string;\n}\n\nconst cx = (...c: (string | undefined | false)[]) =>\n c.filter(Boolean).join(\" \");\n\nexport function Toast({ open, message, icon, className }: IToastProps) {\n if (!open) return null;\n return (\n <div\n style={{\n position: \"fixed\",\n left: \"50%\",\n bottom: 24,\n transform: \"translateX(-50%)\",\n zIndex: 80,\n width: \"100%\",\n maxWidth: 480,\n padding: \"0 16px\",\n }}\n >\n <div className={cx(\"dybo-toast\", className)}>\n {icon && <span className=\"dybo-toast__icon\">{icon}</span>}\n <span className=\"dybo-toast__text\">{message}</span>\n </div>\n </div>\n );\n}\n","import { type ReactNode } from \"react\";\n\nexport type BannerVariant = \"warning\" | \"blocking-error\";\n\nexport interface IBannerProps {\n variant: BannerVariant;\n title: ReactNode;\n description?: ReactNode;\n items?: ReactNode[];\n className?: string;\n}\n\nconst cx = (...c: (string | undefined | false)[]) =>\n c.filter(Boolean).join(\" \");\n\nfunction WarningIcon() {\n return (\n <svg\n width=\"24\"\n height=\"24\"\n viewBox=\"0 0 24 24\"\n fill=\"none\"\n stroke=\"currentColor\"\n strokeWidth=\"2\"\n strokeLinecap=\"round\"\n strokeLinejoin=\"round\"\n >\n <path d=\"M12 9v4M12 17h.01M10.29 3.86L1.82 18a2 2 0 0 0 1.71 3h16.94a2 2 0 0 0 1.71-3L13.71 3.86a2 2 0 0 0-3.42 0z\" />\n </svg>\n );\n}\n\n/**\n * Persistent, page-level surface — distinct from `Alert` (transient, inline).\n * `warning` is amber and non-blocking; `blocking-error` is red and reserved for a\n * state that actually blocks the action (see the house rule: two feedback colors,\n * never mixed — the title/body text stays `foreground`, red lives only in the icon\n * and border, since `--destructive` in small text fails AA contrast).\n */\nexport function Banner({ variant, title, description, items, className }: IBannerProps) {\n const modifier = variant === \"warning\" ? \"dybo-banner--warning\" : \"dybo-banner--error\";\n return (\n <div\n className={cx(\"dybo-banner\", modifier, className)}\n role={variant === \"blocking-error\" ? \"alert\" : undefined}\n >\n <span className=\"dybo-banner__icon\">\n <WarningIcon />\n </span>\n <div className=\"dybo-banner__body\">\n <span className=\"dybo-banner__title\">{title}</span>\n {description && <span className=\"dybo-banner__desc\">{description}</span>}\n {items && items.length > 0 && (\n <ul className=\"dybo-banner__list\">\n {items.map((item, i) => (\n <li key={i}>{item}</li>\n ))}\n </ul>\n )}\n </div>\n </div>\n );\n}\n","import { type ReactNode } from \"react\";\n\nexport type AccordionVariant = \"plain\" | \"panel\";\n\nexport interface IAccordionProps {\n question: ReactNode;\n children: ReactNode;\n defaultOpen?: boolean;\n variant?: AccordionVariant;\n className?: string;\n}\n\nconst cx = (...c: (string | undefined | false)[]) =>\n c.filter(Boolean).join(\" \");\n\nexport function Accordion({\n question,\n children,\n defaultOpen = false,\n variant = \"plain\",\n className,\n}: IAccordionProps) {\n return (\n <details\n className={cx(\"dybo-accordion\", `dybo-accordion--${variant}`, className)}\n open={defaultOpen}\n >\n <summary>\n <span className=\"dybo-accordion__q\">{question}</span>\n <svg\n className=\"dybo-accordion__chevron\"\n width=\"20\"\n height=\"20\"\n viewBox=\"0 0 24 24\"\n fill=\"none\"\n stroke=\"currentColor\"\n strokeWidth=\"2\"\n strokeLinecap=\"round\"\n strokeLinejoin=\"round\"\n >\n <path d=\"M6 9l6 6l6-6\" />\n </svg>\n </summary>\n <div className=\"dybo-accordion__body\">{children}</div>\n </details>\n );\n}\n","export interface IReadOnlyFieldProps {\n label: string;\n value: string;\n className?: string;\n}\n\nconst cx = (...c: (string | undefined | false)[]) =>\n c.filter(Boolean).join(\" \");\n\nexport function ReadOnlyField({ label, value, className }: IReadOnlyFieldProps) {\n return (\n <div className={cx(\"dybo-readonly-field\", className)}>\n <p className=\"dybo-readonly-field__label\">{label}</p>\n <p className=\"dybo-readonly-field__value\">{value}</p>\n </div>\n );\n}\n","import { type InputHTMLAttributes } from \"react\";\n\nexport type SearchIconPosition = \"left\" | \"right\";\n\nexport interface ISearchFieldProps extends InputHTMLAttributes<HTMLInputElement> {\n iconPosition?: SearchIconPosition;\n}\n\nconst cx = (...c: (string | undefined | false)[]) =>\n c.filter(Boolean).join(\" \");\n\nexport function SearchField({\n iconPosition = \"left\",\n className,\n ...props\n}: ISearchFieldProps) {\n return (\n <div className={cx(\"dybo-search\", `dybo-search--icon-${iconPosition}`, className)}>\n <span className=\"dybo-search__icon\">\n <svg\n width=\"16\"\n height=\"16\"\n viewBox=\"0 0 24 24\"\n fill=\"none\"\n stroke=\"currentColor\"\n strokeWidth=\"2\"\n strokeLinecap=\"round\"\n strokeLinejoin=\"round\"\n >\n <circle cx=\"10\" cy=\"10\" r=\"7\" />\n <path d=\"M21 21l-6 -6\" />\n </svg>\n </span>\n <input type=\"search\" className=\"dybo-search__input\" {...props} />\n </div>\n );\n}\n","import { type ButtonHTMLAttributes } from \"react\";\n\nexport interface IDateRangeTriggerProps\n extends ButtonHTMLAttributes<HTMLButtonElement> {\n label: string;\n}\n\nconst cx = (...c: (string | undefined | false)[]) =>\n c.filter(Boolean).join(\" \");\n\nexport function DateRangeTrigger({\n label,\n className,\n ...props\n}: IDateRangeTriggerProps) {\n return (\n <button\n type=\"button\"\n className={cx(\"dybo-date-trigger\", className)}\n aria-haspopup=\"dialog\"\n {...props}\n >\n <svg\n width=\"18\"\n height=\"18\"\n viewBox=\"0 0 24 24\"\n fill=\"none\"\n stroke=\"currentColor\"\n strokeWidth=\"2\"\n strokeLinecap=\"round\"\n strokeLinejoin=\"round\"\n >\n <rect x=\"4\" y=\"5\" width=\"16\" height=\"16\" rx=\"2\" />\n <path d=\"M16 3v4M8 3v4M4 11h16\" />\n </svg>\n <span>{label}</span>\n </button>\n );\n}\n","import { type ButtonHTMLAttributes } from \"react\";\n\nexport interface IUploadDropzoneProps\n extends ButtonHTMLAttributes<HTMLButtonElement> {\n label?: string;\n error?: boolean;\n}\n\nconst cx = (...c: (string | undefined | false)[]) =>\n c.filter(Boolean).join(\" \");\n\nexport function UploadDropzone({\n label = \"Upload Files\",\n error = false,\n className,\n ...props\n}: IUploadDropzoneProps) {\n return (\n <button\n type=\"button\"\n className={cx(\n \"dybo-dropzone\",\n error ? \"dybo-dropzone--error\" : undefined,\n className,\n )}\n {...props}\n >\n <span className=\"dybo-dropzone__icon\">\n <svg\n width=\"20\"\n height=\"20\"\n viewBox=\"0 0 24 24\"\n fill=\"none\"\n stroke=\"currentColor\"\n strokeWidth=\"2\"\n strokeLinecap=\"round\"\n strokeLinejoin=\"round\"\n >\n <path d=\"M7 18a4.6 4.4 0 0 1 0 -9a5 4.5 0 0 1 11 2h1a3.5 3.5 0 0 1 0 7h-1\" />\n <path d=\"M9 15l3 -3l3 3M12 12l0 9\" />\n </svg>\n </span>\n <span className=\"dybo-dropzone__label\">{label}</span>\n </button>\n );\n}\n","import { type ReactNode } from \"react\";\n\nexport type StepStatus = \"empty\" | \"partial\" | \"extracting\" | \"filled\";\n\nexport interface IStep {\n key: string;\n label: string;\n sublabel?: string;\n icon?: ReactNode;\n status?: StepStatus;\n}\n\nexport interface IStepNavigatorProps {\n title: string;\n steps: IStep[];\n activeKey: string;\n onStepClick?: (key: string) => void;\n progressPercent: number;\n progressLabel?: string;\n onSaveExit?: () => void;\n onContinue?: () => void;\n continueLabel?: string;\n className?: string;\n}\n\nconst cx = (...c: (string | undefined | false)[]) =>\n c.filter(Boolean).join(\" \");\n\nfunction StatusIcon({ status }: { status: StepStatus }) {\n if (status === \"filled\") {\n return (\n <span className=\"dybo-step-nav__status dybo-step-nav__status--filled\">\n <svg\n width=\"14\"\n height=\"14\"\n viewBox=\"0 0 24 24\"\n fill=\"none\"\n stroke=\"currentColor\"\n strokeWidth=\"2\"\n strokeLinecap=\"round\"\n strokeLinejoin=\"round\"\n >\n <path d=\"M5 12l5 5l10 -10\" />\n </svg>\n </span>\n );\n }\n if (status === \"extracting\") {\n return (\n <span\n className=\"dybo-step-nav__status dybo-step-nav__status--extracting\"\n title=\"AI Extracting\"\n >\n <svg\n width=\"14\"\n height=\"14\"\n viewBox=\"0 0 24 24\"\n fill=\"none\"\n stroke=\"currentColor\"\n strokeWidth=\"2\"\n strokeLinecap=\"round\"\n strokeLinejoin=\"round\"\n >\n <path d=\"M12 3l1.9 4.6l4.6 1.9l-4.6 1.9l-1.9 4.6l-1.9 -4.6l-4.6 -1.9l4.6 -1.9z\" />\n </svg>\n </span>\n );\n }\n if (status === \"partial\") {\n return (\n <span\n className=\"dybo-step-nav__status dybo-step-nav__status--partial\"\n title=\"Partially Filled\"\n />\n );\n }\n return null;\n}\n\nexport function StepNavigator({\n title,\n steps,\n activeKey,\n onStepClick,\n progressPercent,\n progressLabel,\n onSaveExit,\n onContinue,\n continueLabel = \"Create\",\n className,\n}: IStepNavigatorProps) {\n const filledCount = steps.filter((s) => s.status === \"filled\").length;\n\n return (\n <div className={cx(\"dybo-step-nav\", className)}>\n <h3 className=\"dybo-step-nav__title\">{title}</h3>\n <nav className=\"dybo-step-nav__list\">\n {steps.map((step) => (\n <button\n key={step.key}\n type=\"button\"\n className={cx(\n \"dybo-step-nav__item\",\n step.key === activeKey ? \"dybo-step-nav__item--active\" : undefined,\n )}\n onClick={() => onStepClick?.(step.key)}\n >\n {step.icon && (\n <span className=\"dybo-step-nav__item-icon\">{step.icon}</span>\n )}\n <span className=\"dybo-step-nav__item-text\">\n <span className=\"dybo-step-nav__item-label\">{step.label}</span>\n {step.sublabel && (\n <span className=\"dybo-step-nav__item-sub\">{step.sublabel}</span>\n )}\n </span>\n {step.status && step.status !== \"empty\" && (\n <StatusIcon status={step.status} />\n )}\n </button>\n ))}\n </nav>\n <div className=\"dybo-step-nav__progress\">\n <div className=\"dybo-step-nav__progress-row\">\n <span style={{ opacity: 0.64, fontWeight: 500 }}>Overall Progress</span>\n <span style={{ fontWeight: 700 }}>{progressPercent}%</span>\n </div>\n <div className=\"dybo-step-nav__progress-track\">\n <div\n className=\"dybo-step-nav__progress-fill\"\n style={{ width: `${progressPercent}%` }}\n />\n </div>\n <p className=\"dybo-step-nav__progress-note\">\n {progressLabel ?? `${filledCount} of ${steps.length} sections filled`}\n </p>\n </div>\n {(onSaveExit || onContinue) && (\n <div className=\"dybo-step-nav__actions\">\n {onSaveExit && (\n <button\n type=\"button\"\n className=\"dybo-btn dybo-btn--secondary\"\n onClick={onSaveExit}\n >\n Save & Exit\n </button>\n )}\n {onContinue && (\n <button\n type=\"button\"\n className=\"dybo-btn dybo-btn--primary\"\n onClick={onContinue}\n >\n {continueLabel}\n </button>\n )}\n </div>\n )}\n </div>\n );\n}\n","import { type ReactNode } from \"react\";\n\nexport interface IDocumentTypeOption {\n key: string;\n label: string;\n icon: ReactNode;\n disabled?: boolean;\n}\n\nexport interface IDocumentTypeGridProps {\n options: IDocumentTypeOption[];\n value: string;\n onChange: (key: string) => void;\n className?: string;\n}\n\nconst cx = (...c: (string | undefined | false)[]) =>\n c.filter(Boolean).join(\" \");\n\nexport function DocumentTypeGrid({ options, value, onChange, className }: IDocumentTypeGridProps) {\n return (\n <div className={cx(\"dybo-doc-type-grid\", className)}>\n {options.map((opt) => (\n <button\n key={opt.key}\n type=\"button\"\n disabled={opt.disabled}\n className={cx(\n \"dybo-doc-type-card\",\n opt.disabled ? \"dybo-doc-type-card--disabled\" : undefined,\n )}\n onClick={() => onChange(opt.key)}\n aria-pressed={opt.key === value}\n >\n {opt.icon}\n <span className=\"dybo-doc-type-card__label\">{opt.label}</span>\n {opt.disabled && (\n <span\n style={{\n position: \"absolute\",\n top: 8,\n right: 8,\n padding: \"2px 6px\",\n borderRadius: 999,\n background: \"hsl(var(--warning-background))\",\n color: \"hsl(var(--warning))\",\n fontSize: 10,\n fontWeight: 500,\n }}\n >\n Available Soon\n </span>\n )}\n </button>\n ))}\n </div>\n );\n}\n","export interface IFilePreviewCardProps {\n fileName: string;\n uploadedBy: string;\n uploadedAt: string;\n imageSrc?: string;\n onPrev?: () => void;\n onNext?: () => void;\n hasPrev?: boolean;\n hasNext?: boolean;\n className?: string;\n}\n\nconst cx = (...c: (string | undefined | false)[]) =>\n c.filter(Boolean).join(\" \");\n\nexport function FilePreviewCard({\n fileName,\n uploadedBy,\n uploadedAt,\n imageSrc,\n onPrev,\n onNext,\n hasPrev = false,\n hasNext = false,\n className,\n}: IFilePreviewCardProps) {\n return (\n <div\n className={cx(className)}\n style={{ display: \"flex\", flexDirection: \"column\", gap: 8 }}\n >\n {(onPrev || onNext) && (\n <div className=\"dybo-file-preview-pager\" role=\"group\" aria-label=\"Recently added\">\n <button type=\"button\" disabled={!hasPrev} onClick={onPrev} aria-label=\"Previous file\">\n <svg\n width=\"16\"\n height=\"16\"\n viewBox=\"0 0 24 24\"\n fill=\"none\"\n stroke=\"currentColor\"\n strokeWidth=\"2\"\n strokeLinecap=\"round\"\n strokeLinejoin=\"round\"\n >\n <path d=\"M15 6l-6 6l6 6\" />\n </svg>\n </button>\n <div style={{ height: 16, width: 1, background: \"hsl(var(--border) / 0.7)\" }} />\n <button type=\"button\" disabled={!hasNext} onClick={onNext} aria-label=\"Next file\">\n <svg\n width=\"16\"\n height=\"16\"\n viewBox=\"0 0 24 24\"\n fill=\"none\"\n stroke=\"currentColor\"\n strokeWidth=\"2\"\n strokeLinecap=\"round\"\n strokeLinejoin=\"round\"\n >\n <path d=\"M9 6l6 6l-6 6\" />\n </svg>\n </button>\n </div>\n )}\n <div className=\"dybo-file-preview\">\n <p className=\"dybo-file-preview__name\" title={fileName}>\n {fileName}\n </p>\n <div className=\"dybo-file-preview__meta\">\n <p>Uploaded by: {uploadedBy}</p>\n <p>{uploadedAt}</p>\n </div>\n {imageSrc && (\n <div className=\"dybo-file-preview__image\">\n <img alt=\"\" src={imageSrc} />\n </div>\n )}\n </div>\n </div>\n );\n}\n","import { type ReactNode } from \"react\";\n\nexport interface IFileReviewRowProps {\n fileName: string;\n fileSize: string;\n fileType: string;\n classification: string;\n location: string;\n status: ReactNode;\n onView?: () => void;\n onChangeLocation?: () => void;\n onApprove?: () => void;\n onReject?: () => void;\n className?: string;\n}\n\nconst cx = (...c: (string | undefined | false)[]) =>\n c.filter(Boolean).join(\" \");\n\nexport function FileReviewRow({\n fileName,\n fileSize,\n fileType,\n classification,\n location,\n status,\n onView,\n onChangeLocation,\n onApprove,\n onReject,\n className,\n}: IFileReviewRowProps) {\n return (\n <div className={cx(\"dybo-file-review\", className)}>\n <div className=\"dybo-file-review__main\">\n <span className=\"dybo-file-review__icon\">\n <svg\n width=\"16\"\n height=\"16\"\n viewBox=\"0 0 24 24\"\n fill=\"none\"\n stroke=\"currentColor\"\n strokeWidth=\"2\"\n strokeLinecap=\"round\"\n strokeLinejoin=\"round\"\n >\n <path d=\"M14 3v4a1 1 0 0 0 1 1h4\" />\n <path d=\"M17 21H7a2 2 0 0 1-2-2V5a2 2 0 0 1 2-2h7l5 5v11a2 2 0 0 1-2 2\" />\n </svg>\n </span>\n <div style={{ flex: 1, minWidth: 150 }}>\n <div className=\"dybo-file-review__name-row\">\n <span className=\"dybo-file-review__name\">{fileName}</span>\n <span className=\"dybo-file-review__size\">\n {fileSize} · {fileType}\n </span>\n </div>\n <div className=\"dybo-file-review__sub\">\n Classified as {classification} · Location: {location}\n </div>\n </div>\n <div className=\"dybo-file-review__actions\">\n {status}\n {onView && (\n <button\n type=\"button\"\n title=\"View file\"\n className=\"dybo-file-review__ic\"\n onClick={onView}\n >\n <svg\n width=\"16\"\n height=\"16\"\n viewBox=\"0 0 24 24\"\n fill=\"none\"\n stroke=\"currentColor\"\n strokeWidth=\"2\"\n strokeLinecap=\"round\"\n strokeLinejoin=\"round\"\n >\n <path d=\"M10 12a2 2 0 1 0 4 0a2 2 0 1 0-4 0\" />\n <path d=\"M21 12c-2.4 4-5.4 6-9 6s-6.6-2-9-6c2.4-4 5.4-6 9-6s6.6 2 9 6\" />\n </svg>\n </button>\n )}\n {onChangeLocation && (\n <button\n type=\"button\"\n title=\"Change location\"\n className=\"dybo-file-review__ic\"\n onClick={onChangeLocation}\n >\n <svg\n width=\"16\"\n height=\"16\"\n viewBox=\"0 0 24 24\"\n fill=\"none\"\n stroke=\"currentColor\"\n strokeWidth=\"2\"\n strokeLinecap=\"round\"\n strokeLinejoin=\"round\"\n >\n <path d=\"M5 4h4l3 3h7a1 1 0 0 1 1 1v9a1 1 0 0 1-1 1h-14a1 1 0 0 1-1-1v-12a1 1 0 0 1 1-1\" />\n </svg>\n </button>\n )}\n {onApprove && (\n <button\n type=\"button\"\n title=\"Approve\"\n className=\"dybo-file-review__ic dybo-file-review__ic--approve\"\n onClick={onApprove}\n >\n <svg\n width=\"16\"\n height=\"16\"\n viewBox=\"0 0 24 24\"\n fill=\"none\"\n stroke=\"currentColor\"\n strokeWidth=\"2\"\n strokeLinecap=\"round\"\n strokeLinejoin=\"round\"\n >\n <path d=\"M5 12l5 5l10 -10\" />\n </svg>\n </button>\n )}\n {onReject && (\n <button\n type=\"button\"\n title=\"Reject\"\n className=\"dybo-file-review__ic dybo-file-review__ic--reject\"\n onClick={onReject}\n >\n <svg\n width=\"16\"\n height=\"16\"\n viewBox=\"0 0 24 24\"\n fill=\"none\"\n stroke=\"currentColor\"\n strokeWidth=\"2\"\n strokeLinecap=\"round\"\n strokeLinejoin=\"round\"\n >\n <circle cx=\"12\" cy=\"12\" r=\"9\" />\n <path d=\"M8.5 8.5l7 7\" />\n </svg>\n </button>\n )}\n </div>\n </div>\n </div>\n );\n}\n","export interface IRejectionReason {\n key: string;\n label: string;\n}\n\nexport interface IRejectionReasonPanelProps {\n reasons: IRejectionReason[];\n selectedReasons: string[];\n onToggleReason: (key: string) => void;\n note: string;\n onNoteChange: (note: string) => void;\n onCancel: () => void;\n onConfirm: () => void;\n className?: string;\n}\n\nconst cx = (...c: (string | undefined | false)[]) =>\n c.filter(Boolean).join(\" \");\n\nexport function RejectionReasonPanel({\n reasons,\n selectedReasons,\n onToggleReason,\n note,\n onNoteChange,\n onCancel,\n onConfirm,\n className,\n}: IRejectionReasonPanelProps) {\n return (\n <div className={cx(\"dybo-reject-panel\", className)}>\n <span className=\"dybo-reject-panel__label\">Why is this file being rejected?</span>\n <div className=\"dybo-reason-chips\">\n {reasons.map((reason) => (\n <button\n key={reason.key}\n type=\"button\"\n className={cx(\n \"dybo-reason-chip\",\n selectedReasons.includes(reason.key) ? \"dybo-reason-chip--on\" : undefined,\n )}\n onClick={() => onToggleReason(reason.key)}\n >\n {reason.label}\n </button>\n ))}\n </div>\n <textarea\n rows={2}\n placeholder=\"Add a note (optional)\"\n className=\"dybo-reject-panel__note\"\n value={note}\n onChange={(e) => onNoteChange(e.target.value)}\n />\n <div className=\"dybo-reject-panel__footer\">\n <span className=\"dybo-reject-panel__notice\">\n <svg\n width=\"14\"\n height=\"14\"\n viewBox=\"0 0 24 24\"\n fill=\"none\"\n stroke=\"currentColor\"\n strokeWidth=\"2\"\n strokeLinecap=\"round\"\n strokeLinejoin=\"round\"\n >\n <path d=\"M10 5a2 2 0 1 1 4 0a7 7 0 0 1 4 6v3a4 4 0 0 0 2 3h-16a4 4 0 0 0 2 -3v-3a7 7 0 0 1 4 -6\" />\n <path d=\"M9 17v1a3 3 0 0 0 6 0v-1\" />\n </svg>\n The recipient will be notified with this reason.\n </span>\n <div className=\"dybo-reject-panel__actions\">\n <button type=\"button\" className=\"dybo-reject-btn\" onClick={onCancel}>\n Cancel\n </button>\n <button\n type=\"button\"\n className=\"dybo-reject-btn dybo-reject-btn--solid\"\n onClick={onConfirm}\n >\n Reject & send\n </button>\n </div>\n </div>\n </div>\n );\n}\n","import { type HTMLAttributes } from \"react\";\n\nexport type QueueStatus = \"processing\" | \"pending\" | \"editing\" | \"failed\";\n\nexport interface IQueueStatusBadgeProps extends HTMLAttributes<HTMLSpanElement> {\n status: QueueStatus;\n}\n\nconst cx = (...c: (string | undefined | false)[]) =>\n c.filter(Boolean).join(\" \");\n\nconst defaultLabels: Record<QueueStatus, string> = {\n processing: \"Processing\",\n pending: \"Pending\",\n editing: \"Editing\",\n failed: \"Failed\",\n};\n\n/** Entity/document processing state — its own family, never mixed with priority or ticket status. */\nexport function QueueStatusBadge({\n status,\n className,\n children,\n ...props\n}: IQueueStatusBadgeProps) {\n return (\n <span\n className={cx(\"dybo-queue-status\", `dybo-queue-status--${status}`, className)}\n {...props}\n >\n {children ?? defaultLabels[status]}\n </span>\n );\n}\n","import { type ReactNode } from \"react\";\n\nexport interface ITicketCardField {\n label: string;\n value: string;\n}\n\nexport interface ITicketCardProps {\n id: string;\n signals?: ReactNode;\n priority?: ReactNode;\n status?: ReactNode;\n fields: ITicketCardField[];\n selected?: boolean;\n closed?: boolean;\n href?: string;\n onClick?: () => void;\n className?: string;\n}\n\nconst cx = (...c: (string | undefined | false)[]) =>\n c.filter(Boolean).join(\" \");\n\n/** Canonical badge order: #id [channel] … [unread] [SLA] [priority] [status] — pass\n * transient signals via `signals`, permanent state via `priority`/`status`. */\nexport function TicketCard({\n id,\n signals,\n priority,\n status,\n fields,\n selected = false,\n closed = false,\n href,\n onClick,\n className,\n}: ITicketCardProps) {\n const classes = cx(\n \"dybo-ticket-card\",\n selected ? \"dybo-ticket-card--selected\" : undefined,\n closed ? \"dybo-ticket-card--closed\" : undefined,\n className,\n );\n\n const content = (\n <>\n <div className=\"dybo-ticket-card__top\">\n <span className=\"dybo-ticket-card__id\">#{id}</span>\n <span style={{ marginLeft: \"auto\" }} />\n {signals}\n {priority}\n {status}\n </div>\n <div className=\"dybo-ticket-card__fields\">\n {fields.map((field) => (\n <div key={field.label} className=\"dybo-ticket-card__field\">\n <span className=\"dybo-ticket-card__field-label\">{field.label}</span>\n <span className=\"dybo-ticket-card__field-value\">{field.value}</span>\n </div>\n ))}\n </div>\n </>\n );\n\n if (href) {\n return (\n <a href={href} className={classes} onClick={onClick}>\n {content}\n </a>\n );\n }\n return (\n <button\n type=\"button\"\n className={classes}\n onClick={onClick}\n style={{ textAlign: \"left\", width: \"100%\" }}\n >\n {content}\n </button>\n );\n}\n","export interface IChatMessage {\n id: string | number;\n author: string;\n initials: string;\n timestamp: string;\n body: string;\n mine: boolean;\n}\n\nexport interface IChatThreadProps {\n messages: IChatMessage[];\n className?: string;\n}\n\nconst cx = (...c: (string | undefined | false)[]) =>\n c.filter(Boolean).join(\" \");\n\n/** Whoever is viewing the screen appears on the right (`--mine`); the other party\n * on the left — so in the client's own view the client is on the right, and in the\n * operator's view the operator is on the right. */\nexport function ChatMessage({ author, initials, timestamp, body, mine }: IChatMessage) {\n return (\n <div className={cx(\"dybo-chat-message\", mine ? \"dybo-chat-message--mine\" : undefined)}>\n <div className=\"dybo-chat-message__avatar\">{initials}</div>\n <div className=\"dybo-chat-message__body\">\n <div className=\"dybo-chat-message__meta\">\n {mine ? (\n <>\n <span className=\"dybo-chat-message__time\">{timestamp}</span>\n <span className=\"dybo-chat-message__author\">{author}</span>\n </>\n ) : (\n <>\n <span className=\"dybo-chat-message__author\">{author}</span>\n <span className=\"dybo-chat-message__time\">{timestamp}</span>\n </>\n )}\n </div>\n <div className=\"dybo-chat-message__bubble\">{body}</div>\n </div>\n </div>\n );\n}\n\nexport function ChatThread({ messages, className }: IChatThreadProps) {\n return (\n <div className={cx(className)} style={{ display: \"flex\", flexDirection: \"column\", gap: 16 }}>\n {messages.map((message) => (\n <ChatMessage key={message.id} {...message} />\n ))}\n </div>\n );\n}\n","import { type ReactNode } from \"react\";\n\nexport interface IInternalNoteCardProps {\n author: string;\n timestamp: string;\n children: ReactNode;\n className?: string;\n}\n\nconst cx = (...c: (string | undefined | false)[]) =>\n c.filter(Boolean).join(\" \");\n\n/** Visible operator-only, amber tint to differentiate from client-facing chat. */\nexport function InternalNoteCard({\n author,\n timestamp,\n children,\n className,\n}: IInternalNoteCardProps) {\n return (\n <div className={cx(\"dybo-internal-note\", className)}>\n <div className=\"dybo-internal-note__head\">\n <span className=\"dybo-internal-note__author\">{author}</span>\n <span className=\"dybo-internal-note__time\">{timestamp}</span>\n </div>\n <p className=\"dybo-internal-note__body\">{children}</p>\n </div>\n );\n}\n","import { type ReactNode } from \"react\";\n\nexport interface IChannelBadgeProps {\n icon: ReactNode;\n label: string;\n className?: string;\n}\n\nconst cx = (...c: (string | undefined | false)[]) =>\n c.filter(Boolean).join(\" \");\n\nexport function ChannelBadge({ icon, label, className }: IChannelBadgeProps) {\n return (\n <span className={cx(\"dybo-channel-badge\", className)}>\n {icon}\n {label}\n </span>\n );\n}\n","import { type ReactNode } from \"react\";\n\nexport type SignalVariant = \"message\" | \"sla\";\n\nexport interface ISignalBadgeProps {\n variant: SignalVariant;\n children: ReactNode;\n className?: string;\n}\n\nconst cx = (...c: (string | undefined | false)[]) =>\n c.filter(Boolean).join(\" \");\n\n/** Transient auxiliary signal (unread count, SLA countdown) — never mixed with\n * priority or ticket status on the same pill. */\nexport function SignalBadge({ variant, children, className }: ISignalBadgeProps) {\n return <span className={cx(`dybo-signal--${variant}`, className)}>{children}</span>;\n}\n","import { type CSSProperties } from \"react\";\n\nexport interface ICategoryLabelProps {\n label: string;\n /** Any CSS color — sets the leading dot via the `--lbl-c` custom property. */\n color?: string;\n className?: string;\n}\n\nconst cx = (...c: (string | undefined | false)[]) =>\n c.filter(Boolean).join(\" \");\n\nexport function CategoryLabel({ label, color, className }: ICategoryLabelProps) {\n const style = color ? ({ \"--lbl-c\": color } as CSSProperties) : undefined;\n return (\n <span className={cx(\"dybo-label\", className)} style={style}>\n {label}\n </span>\n );\n}\n","import { type ReactNode } from \"react\";\n\nexport interface ILinkedAppIndicatorProps {\n icon?: ReactNode;\n appName?: string;\n className?: string;\n}\n\nconst cx = (...c: (string | undefined | false)[]) =>\n c.filter(Boolean).join(\" \");\n\n/** Table-cell indicator for an item connected to an external integration. */\nexport function LinkedAppIndicator({ icon, appName, className }: ILinkedAppIndicatorProps) {\n if (!appName) {\n return <span className={cx(\"dybo-linked-app--empty\", className)}>–</span>;\n }\n return (\n <span className={cx(\"dybo-linked-app\", className)}>\n {icon}\n {appName}\n </span>\n );\n}\n"]}
|