@tapizlabs/ui 0.1.6 → 0.2.1
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
- package/dist/index.d.ts +949 -8
- package/dist/index.js +1947 -89
- package/dist/index.js.map +1 -1
- package/dist/theme.css +261 -615
- package/package.json +5 -5
- package/FRAMEWORK_BOUNDARY.md +0 -47
package/dist/index.js.map
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"sources":["../src/components/icons/BaseIcons.tsx","../src/components/icons/NavigationIcons.tsx","../src/components/icons/ActionIcons.tsx","../src/components/icons/AuthIcons.tsx","../src/components/icons/FeedbackIcons.tsx","../src/components/icons/SettingsIcons.tsx","../src/components/icons/LogoIcons.tsx","../src/components/icons/FormsIcons.tsx","../src/components/icons/StatusIcons.tsx","../src/components/icons/LayoutIcons.tsx","../src/components/forms/Button.tsx","../src/components/feedback/Spinner.tsx","../src/components/forms/Input.tsx","../src/components/forms/Select.tsx","../src/components/forms/Textarea.tsx","../src/components/forms/FieldLabel.tsx","../src/components/forms/FieldHint.tsx","../src/components/forms/Checkbox.tsx","../src/components/forms/RadioButton.tsx","../src/components/feedback/PageSpinner.tsx","../src/components/feedback/Toast.tsx","../src/components/feedback/ToastProvider.tsx","../src/components/feedback/FormError.tsx","../src/components/feedback/ErrorBoundary.tsx","../src/components/modals/BaseModal.tsx","../src/components/modals/ConfirmDialog.tsx","../src/components/shared/Tooltip.tsx","../src/components/shared/Card.tsx","../src/components/shared/Skeleton.tsx","../src/components/shared/SkeletonBlocks.tsx","../src/components/shared/Badge.tsx","../src/components/shared/EmptyState.tsx","../src/components/shared/InfoBanner.tsx","../src/components/shared/PageHeader.tsx","../src/components/shared/SearchInput.tsx","../src/components/shared/Pagination.tsx","../src/components/shared/SectionTitle.tsx","../src/components/shared/StatusBadge.tsx","../src/components/shared/ActionMenu.tsx","../src/components/table/DataTable.tsx","../src/components/table/DataTableRow.tsx"],"sourcesContent":["import type React from \"react\";\n\nexport interface IconProps {\n size?: number;\n className?: string;\n style?: React.CSSProperties;\n}\n\nexport const base = (_d: unknown, size: number, style?: React.CSSProperties) => ({\n width: size,\n height: size,\n viewBox: \"0 0 24 24\",\n fill: \"none\",\n stroke: \"currentColor\",\n strokeWidth: 1.75,\n strokeLinecap: \"round\" as const,\n strokeLinejoin: \"round\" as const,\n style,\n});\n","import { IconProps, base } from \"./BaseIcons\";\n\nexport const Clipboard = ({ size = 18, className, style }: IconProps) => (\n <svg {...base(null, size, style)} className={className}>\n <rect x=\"8\" y=\"2\" width=\"8\" height=\"4\" rx=\"1\" />\n <path d=\"M16 4h2a2 2 0 0 1 2 2v14a2 2 0 0 1-2 2H6a2 2 0 0 1-2-2V6a2 2 0 0 1 2-2h2\" />\n <path d=\"M12 11h4M12 16h4M8 11h.01M8 16h.01\" />\n </svg>\n);\n\nexport const Home = ({ size = 18, className, style }: IconProps) => (\n <svg {...base(null, size, style)} className={className}>\n <path d=\"M3 9l9-7 9 7v11a2 2 0 0 1-2 2H5a2 2 0 0 1-2-2z\" />\n <polyline points=\"9 22 9 12 15 12 15 22\" />\n </svg>\n);\n\nexport const Scan = ({ size = 18, className, style }: IconProps) => (\n <svg {...base(null, size, style)} className={className}>\n <path d=\"M3 7V5a2 2 0 0 1 2-2h2M17 3h2a2 2 0 0 1 2 2v2M21 17v2a2 2 0 0 1-2 2h-2M7 21H5a2 2 0 0 1-2-2v-2\" />\n <line x1=\"7\" y1=\"12\" x2=\"17\" y2=\"12\" />\n </svg>\n);\n\nexport const Users = ({ size = 18, className, style }: IconProps) => (\n <svg {...base(null, size, style)} className={className}>\n <path d=\"M17 21v-2a4 4 0 0 0-4-4H5a4 4 0 0 0-4 4v2\" />\n <circle cx=\"9\" cy=\"7\" r=\"4\" />\n <path d=\"M23 21v-2a4 4 0 0 0-3-3.87M16 3.13a4 4 0 0 1 0 7.75\" />\n </svg>\n);\n\nexport const Book = ({ size = 18, className, style }: IconProps) => (\n <svg {...base(null, size, style)} className={className}>\n <path d=\"M4 19.5A2.5 2.5 0 0 1 6.5 17H20\" />\n <path d=\"M6.5 2H20v20H6.5A2.5 2.5 0 0 1 4 19.5v-15A2.5 2.5 0 0 1 6.5 2z\" />\n </svg>\n);\n\nexport const Calendar = ({ size = 18, className, style }: IconProps) => (\n <svg {...base(null, size, style)} className={className}>\n <rect x=\"3\" y=\"4\" width=\"18\" height=\"18\" rx=\"2\" />\n <path d=\"M16 2v4M8 2v4M3 10h18\" />\n </svg>\n);\n\nexport const CheckSquare = ({ size = 18, className, style }: IconProps) => (\n <svg {...base(null, size, style)} className={className}>\n <polyline points=\"9 11 12 14 22 4\" />\n <path d=\"M21 12v7a2 2 0 0 1-2 2H5a2 2 0 0 1-2-2V5a2 2 0 0 1 2-2h11\" />\n </svg>\n);\n\nexport const BarChart = ({ size = 18, className, style }: IconProps) => (\n <svg {...base(null, size, style)} className={className}>\n <line x1=\"18\" y1=\"20\" x2=\"18\" y2=\"10\" />\n <line x1=\"12\" y1=\"20\" x2=\"12\" y2=\"4\" />\n <line x1=\"6\" y1=\"20\" x2=\"6\" y2=\"14\" />\n <line x1=\"2\" y1=\"20\" x2=\"22\" y2=\"20\" />\n </svg>\n);\n\nexport const Table = ({ size = 18, className, style }: IconProps) => (\n <svg {...base(null, size, style)} className={className}>\n <rect x=\"3\" y=\"3\" width=\"18\" height=\"18\" rx=\"2\" />\n <path d=\"M3 9h18M9 21V9\" />\n </svg>\n);\n\nexport const Report = ({ size = 18, className, style }: IconProps) => (\n <svg {...base(null, size, style)} className={className}>\n <path d=\"M14 2H6a2 2 0 0 0-2 2v16a2 2 0 0 0 2 2h12a2 2 0 0 0 2-2V8z\" />\n <polyline points=\"14 2 14 8 20 8\" />\n <line x1=\"16\" y1=\"13\" x2=\"8\" y2=\"13\" />\n <line x1=\"16\" y1=\"17\" x2=\"8\" y2=\"17\" />\n <polyline points=\"10 9 9 9 8 9\" />\n </svg>\n);\n\nexport const QrCode = ({ size = 18, className, style }: IconProps) => (\n <svg {...base(null, size, style)} className={className}>\n <rect x=\"3\" y=\"3\" width=\"7\" height=\"7\" />\n <rect x=\"14\" y=\"3\" width=\"7\" height=\"7\" />\n <rect x=\"3\" y=\"14\" width=\"7\" height=\"7\" />\n <path d=\"M14 14h3v3h-3zM17 17h3v3h-3zM14 17h3\" />\n </svg>\n);\n\nexport const Layers = ({ size = 18, className, style }: IconProps) => (\n <svg {...base(null, size, style)} className={className}>\n <polygon points=\"12 2 2 7 12 12 22 7 12 2\" />\n <polyline points=\"2 12 12 17 22 12\" />\n <polyline points=\"2 17 12 22 22 17\" />\n </svg>\n);\n\nexport const OfficeHours = ({ size = 18, className, style }: IconProps) => (\n <svg {...base(null, size, style)} className={className}>\n <path d=\"M8 3h8\" />\n <path d=\"M9 2v2M15 2v2\" />\n <rect x=\"4\" y=\"5\" width=\"16\" height=\"15\" rx=\"2\" />\n <path d=\"M4 10h16\" />\n <path d=\"M12 13v4\" />\n <path d=\"M12 13l2.5-1.5\" />\n </svg>\n);\n\nexport const FileUpload = ({ size = 18, className, style }: IconProps) => (\n <svg {...base(null, size, style)} className={className}>\n <path d=\"M14 2H6a2 2 0 0 0-2 2v16a2 2 0 0 0 2 2h12a2 2 0 0 0 2-2V8z\" />\n <polyline points=\"14 2 14 8 20 8\" />\n <polyline points=\"12 18 12 12\" />\n <polyline points=\"9 15 12 12 15 15\" />\n </svg>\n);\n\nexport const University = ({ size = 18, className, style }: IconProps) => (\n <svg {...base(null, size, style)} className={className}>\n <path d=\"M12 3l9 3H3l9-3z\" />\n <line x1=\"3\" y1=\"6\" x2=\"21\" y2=\"6\" />\n <line x1=\"5\" y1=\"6\" x2=\"5\" y2=\"18\" />\n <line x1=\"10\" y1=\"6\" x2=\"10\" y2=\"18\" />\n <line x1=\"14\" y1=\"6\" x2=\"14\" y2=\"18\" />\n <line x1=\"19\" y1=\"6\" x2=\"19\" y2=\"18\" />\n <line x1=\"2\" y1=\"18\" x2=\"22\" y2=\"18\" />\n <line x1=\"2\" y1=\"21\" x2=\"22\" y2=\"21\" />\n </svg>\n);\n\nexport const Faculty = ({ size = 18, className, style }: IconProps) => (\n <svg {...base(null, size, style)} className={className} strokeWidth={1.5}>\n {/* central tower */}\n <rect x=\"7\" y=\"2\" width=\"10\" height=\"19\" />\n {/* left wing */}\n <rect x=\"2\" y=\"8\" width=\"5\" height=\"13\" />\n {/* right wing */}\n <rect x=\"17\" y=\"8\" width=\"5\" height=\"13\" />\n {/* tower windows row 1 */}\n <rect x=\"9\" y=\"4\" width=\"2.5\" height=\"2.5\" />\n <rect x=\"12.5\" y=\"4\" width=\"2.5\" height=\"2.5\" />\n {/* tower windows row 2 */}\n <rect x=\"9\" y=\"8\" width=\"2.5\" height=\"2.5\" />\n <rect x=\"12.5\" y=\"8\" width=\"2.5\" height=\"2.5\" />\n {/* entrance */}\n <rect x=\"10\" y=\"15\" width=\"4\" height=\"6\" />\n {/* base line */}\n <line x1=\"1\" y1=\"21\" x2=\"23\" y2=\"21\" />\n </svg>\n);\n\nexport const GraduationCap = ({ size = 18, className, style }: IconProps) => (\n <svg {...base(null, size, style)} className={className}>\n <path d=\"M22 10v6M2 10l10-5 10 5-10 5z\" />\n <path d=\"M6 12v5c0 1.657 2.686 3 6 3s6-1.343 6-3v-5\" />\n </svg>\n);\n\nexport const Globe = ({ size = 18, className, style }: IconProps) => (\n <svg {...base(null, size, style)} className={className}>\n <circle cx=\"12\" cy=\"12\" r=\"10\" />\n <path d=\"M2 12h20M12 2a15.3 15.3 0 0 1 4 10 15.3 15.3 0 0 1-4 10 15.3 15.3 0 0 1-4-10 15.3 15.3 0 0 1 4-10z\" />\n </svg>\n);\n\nexport const CreditCard = ({ size = 14, className, style }: IconProps) => (\n <svg {...base(null, size, style)} className={className} strokeWidth={1.8}>\n <rect x=\"2\" y=\"5\" width=\"20\" height=\"14\" rx=\"2\" />\n <path d=\"M2 10h20\" />\n </svg>\n);\n\nexport const HelpCircle = ({ size = 14, className, style }: IconProps) => (\n <svg {...base(null, size, style)} className={className} strokeWidth={1.8}>\n <circle cx=\"12\" cy=\"12\" r=\"10\" />\n <path d=\"M9.09 9a3 3 0 0 1 5.83 1c0 2-3 3-3 3\" />\n <circle cx=\"12\" cy=\"17\" r=\".5\" fill=\"currentColor\" stroke=\"none\" />\n </svg>\n);\n\nexport const NavQrAttendance = ({ size = 15, className, style }: IconProps) => (\n <svg {...base(null, size, style)} className={className} strokeWidth={1.8}>\n <rect x=\"3\" y=\"3\" width=\"7\" height=\"7\" rx=\"1.5\" /><rect x=\"5.5\" y=\"5.5\" width=\"2\" height=\"2\" rx=\".4\" fill=\"currentColor\" stroke=\"none\" />\n <rect x=\"14\" y=\"3\" width=\"7\" height=\"7\" rx=\"1.5\" /><rect x=\"16.5\" y=\"5.5\" width=\"2\" height=\"2\" rx=\".4\" fill=\"currentColor\" stroke=\"none\" />\n <rect x=\"3\" y=\"14\" width=\"7\" height=\"7\" rx=\"1.5\" /><rect x=\"5.5\" y=\"16.5\" width=\"2\" height=\"2\" rx=\".4\" fill=\"currentColor\" stroke=\"none\" />\n <polyline points=\"14,16 16,18 20,13\" />\n </svg>\n);\n\nexport const NavScoresheet = ({ size = 15, className, style }: IconProps) => (\n <svg {...base(null, size, style)} className={className} strokeWidth={1.3}>\n <rect x=\"3\" y=\"3\" width=\"18\" height=\"18\" rx=\"2\" />\n <path d=\"M3 9h18M3 14h18M9 9v9M15 9v9\" />\n </svg>\n);\n\nexport const NavAnalytics = ({ size = 15, className, style }: IconProps) => (\n <svg {...base(null, size, style)} className={className} strokeWidth={1.8}>\n <path d=\"M3 3v18h18\" /><path d=\"M7 16l4-5 4 3 5-6\" />\n </svg>\n);\n\nexport const NavSecurity = ({ size = 15, className, style }: IconProps) => (\n <svg {...base(null, size, style)} className={className} strokeWidth={1.8}>\n <path d=\"M12 2L4 6v6c0 5.25 3.5 9.74 8 11 4.5-1.26 8-5.75 8-11V6L12 2Z\" />\n <path d=\"M9 12l2 2 4-4\" />\n </svg>\n);\n","import { IconProps, base } from \"./BaseIcons\";\n\nexport const Edit = ({ size = 14, className, style }: IconProps) => (\n <svg {...base(null, size, style)} className={className}>\n <path d=\"M11 4H4a2 2 0 0 0-2 2v14a2 2 0 0 0 2 2h14a2 2 0 0 0 2-2v-7\" />\n <path d=\"M18.5 2.5a2.121 2.121 0 0 1 3 3L12 15l-4 1 1-4 9.5-9.5z\" />\n </svg>\n);\n\nexport const Trash = ({ size = 14, className, style }: IconProps) => (\n <svg {...base(null, size, style)} className={className}>\n <polyline points=\"3 6 5 6 21 6\" />\n <path d=\"M19 6l-1 14H6L5 6M10 11v6M14 11v6M9 6V4h6v2\" />\n </svg>\n);\n\nexport const Plus = ({ size = 16, className, style }: IconProps) => (\n <svg {...base(null, size, style)} className={className}>\n <line x1=\"12\" y1=\"5\" x2=\"12\" y2=\"19\" />\n <line x1=\"5\" y1=\"12\" x2=\"19\" y2=\"12\" />\n </svg>\n);\n\nexport const Download = ({ size = 16, className, style }: IconProps) => (\n <svg {...base(null, size, style)} className={className}>\n <path d=\"M21 15v4a2 2 0 0 1-2 2H5a2 2 0 0 1-2-2v-4\" />\n <polyline points=\"7 10 12 15 17 10\" />\n <line x1=\"12\" y1=\"15\" x2=\"12\" y2=\"3\" />\n </svg>\n);\n\nexport const Refresh = ({ size = 15, className, spinning, style }: IconProps & { spinning?: boolean }) => (\n <svg {...base(null, size, style)} className={`${spinning ? \"animate-spin\" : \"\"} ${className ?? \"\"}`}>\n <path d=\"M3 12a9 9 0 1 0 9-9 9.75 9.75 0 0 0-6.74 2.74L3 8\" />\n <path d=\"M3 3v5h5\" />\n </svg>\n);\n\nexport const UserPlus = ({ size = 14, className, style }: IconProps) => (\n <svg {...base(null, size, style)} className={className}>\n <path d=\"M16 21v-2a4 4 0 0 0-4-4H6a4 4 0 0 0-4 4v2\" />\n <circle cx=\"9\" cy=\"7\" r=\"4\" />\n <line x1=\"19\" y1=\"8\" x2=\"19\" y2=\"14\" />\n <line x1=\"22\" y1=\"11\" x2=\"16\" y2=\"11\" />\n </svg>\n);\n\nexport const UserMinus = ({ size = 14, className, style }: IconProps) => (\n <svg {...base(null, size, style)} className={className}>\n <path d=\"M16 21v-2a4 4 0 0 0-4-4H6a4 4 0 0 0-4 4v2\" />\n <circle cx=\"9\" cy=\"7\" r=\"4\" />\n <line x1=\"22\" y1=\"11\" x2=\"16\" y2=\"11\" />\n </svg>\n);\n\nexport const UserCog = ({ size = 14, className, style }: IconProps) => (\n <svg {...base(null, size, style)} className={className}>\n <path d=\"M16 21v-2a4 4 0 0 0-4-4H6a4 4 0 0 0-4 4v2\" />\n <circle cx=\"9\" cy=\"7\" r=\"4\" />\n <circle cx=\"19\" cy=\"19\" r=\"2\" />\n <path d=\"M19 15v2M19 21v2M15.27 16.27l1.42 1.42M22.31 21.31l-1.42-1.42M15 19h2M21 19h2M15.27 21.73l1.42-1.42M22.31 16.69l-1.42 1.42\" />\n </svg>\n);\n\nexport const Check = ({ size = 16, className, style }: IconProps) => (\n <svg {...base(null, size, style)} strokeWidth={2} className={className}>\n <polyline points=\"20 6 9 17 4 12\" />\n </svg>\n);\n\nexport const X = ({ size = 14, className, style }: IconProps) => (\n <svg {...base(null, size, style)} strokeWidth={2.5} className={className}>\n <line x1=\"18\" y1=\"6\" x2=\"6\" y2=\"18\" />\n <line x1=\"6\" y1=\"6\" x2=\"18\" y2=\"18\" />\n </svg>\n);\n\n\nexport const Menu = ({ size = 18, className, style }: IconProps) => (\n <svg {...base(null, size, style)} strokeWidth={2} className={className}>\n <line x1=\"3\" y1=\"6\" x2=\"21\" y2=\"6\" /><line x1=\"3\" y1=\"12\" x2=\"21\" y2=\"12\" /><line x1=\"3\" y1=\"18\" x2=\"21\" y2=\"18\" />\n </svg>\n);\n\nexport const Grid = ({ size = 14, className, style }: IconProps) => (\n <svg {...base(null, size, style)} strokeWidth={2} className={className}>\n <rect x=\"3\" y=\"3\" width=\"7\" height=\"7\" />\n <rect x=\"14\" y=\"3\" width=\"7\" height=\"7\" />\n <rect x=\"3\" y=\"14\" width=\"7\" height=\"7\" />\n <rect x=\"14\" y=\"14\" width=\"7\" height=\"7\" />\n </svg>\n);\n\nexport const GitCompare = ({ size = 14, className, style }: IconProps) => (\n <svg {...base(null, size, style)} strokeWidth={2} className={className}>\n <path d=\"M18 21l4-4-4-4\" />\n <path d=\"M6 21l-4-4 4-4\" />\n <path d=\"M14 3l4 4-4 4\" />\n <path d=\"M2 21V3a2 2 0 0 1 2-2h6\" />\n <path d=\"M22 21V7a2 2 0 0 0-2-2h-6\" />\n </svg>\n);\nexport const History = ({ size = 14, className, style }: IconProps) => (\n <svg {...base(null, size, style)} className={className}>\n <path d=\"M3 12a9 9 0 1 0 9-9 9.75 9.75 0 0 0-6.74 2.74L3 8\" />\n <path d=\"M3 3v5h5\" />\n <path d=\"M12 7v5l4 2\" />\n </svg>\n);\n\nexport const RotateCcw = ({ size = 14, className, style }: IconProps) => (\n <svg {...base(null, size, style)} className={className}>\n <path d=\"M3 12a9 9 0 1 0 9-9 9.75 9.75 0 0 0-6.74 2.74L3 8\" />\n <path d=\"M3 3v5h5\" />\n </svg>\n);\n\nexport const Pdf = ({ size = 14, className, style }: IconProps) => (\n <svg\n width={size}\n height={size}\n viewBox=\"0 0 1920 1920\"\n fill=\"currentColor\"\n style={style}\n className={className}\n >\n <g fillRule=\"evenodd\">\n <path d=\"M1251.654 0c44.499 0 88.207 18.07 119.718 49.581l329.223 329.224c31.963 31.962 49.581 74.54 49.581 119.717V1920H169V0Zm-66.183 112.941H281.94V1807.06h1355.294V564.706H1185.47V112.94Zm112.94 23.379v315.445h315.445L1298.412 136.32Z\"/>\n <path d=\"M900.497 677.67c26.767 0 50.372 12.65 67.991 37.835 41.901 59.068 38.965 121.976 23.492 206.682-5.308 29.14.113 58.617 16.263 83.125 22.814 34.786 55.68 82.673 87.981 123.219 23.718 29.93 60.198 45.854 97.13 40.885 23.718-3.276 52.292-5.986 81.656-5.986 131.012 0 121.186 46.757 133.045 89.675 6.55 25.976 3.275 48.678-10.165 65.506-16.715 22.701-51.162 34.447-101.534 34.447-55.793 0-74.202-9.487-122.767-24.96-27.445-8.81-55.906-10.617-83.69-3.275-55.453 14.456-146.936 36.48-223.284 46.983-40.772 5.647-77.816 26.654-102.438 60.875-55.454 76.8-106.842 148.518-188.273 148.518-21.007 0-40.32-7.567-56.244-22.701-23.492-23.492-33.544-49.581-28.574-79.85 13.778-92.95 128.075-144.79 196.066-182.625 16.037-8.923 28.687-22.589 36.592-39.53l107.86-233.223c7.68-16.377 10.051-34.56 7.228-52.518-12.537-79.059-31.06-211.99 18.748-272.075 10.955-13.44 26.09-21.007 42.917-21.007Zm20.556 339.953c-43.257 126.607-119.718 264.282-129.996 280.32 92.273-43.37 275.916-65.28 275.916-65.28-92.386-88.998-145.92-215.04-145.92-215.04Z\"/>\n </g>\n </svg>\n);\n\nexport const Printer = ({ size = 14, className, style }: IconProps) => (\n <svg {...base(null, size, style)} className={className}>\n <path d=\"M6 9V3h12v6\" />\n <path d=\"M6 21h12v-6H6v6z\" />\n <path d=\"M18 9H6a2 2 0 0 0-2 2v6a2 2 0 0 0 2 2h12a2 2 0 0 0 2-2v-6a2 2 0 0 0-2-2z\" />\n <circle cx=\"17\" cy=\"13\" r=\"1\" />\n <path d=\"M8 13h3\" />\n </svg>\n);\n\nexport const ExternalLink = ({ size = 14, className, style }: IconProps) => (\n <svg {...base(null, size, style)} className={className}>\n <path d=\"M18 13v6a2 2 0 0 1-2 2H5a2 2 0 0 1-2-2V8a2 2 0 0 1 2-2h6\" />\n <polyline points=\"15 3 21 3 21 9\" />\n <line x1=\"10\" y1=\"14\" x2=\"21\" y2=\"3\" />\n </svg>\n);\n\nexport const Image = ({ size = 14, className, style }: IconProps) => (\n <svg {...base(null, size, style)} className={className}>\n <rect x=\"3\" y=\"3\" width=\"18\" height=\"18\" rx=\"2\" ry=\"2\" />\n <circle cx=\"8.5\" cy=\"8.5\" r=\"1.5\" />\n <polyline points=\"21 15 16 10 5 21\" />\n </svg>\n);\n\nexport const Star = ({ size = 14, className, style }: IconProps) => (\n <svg\n width={size}\n height={size}\n viewBox=\"0 0 24 24\"\n fill=\"currentColor\"\n style={style}\n className={className}\n >\n <path d=\"M12 2l3.09 6.26L22 9.27l-5 4.87 1.18 6.88L12 17.77l-6.18 3.25L7 14.14 2 9.27l6.91-1.01L12 2z\" />\n </svg>\n);\n\nexport const AppleIcon = ({ size = 20, className, style }: IconProps) => (\n <svg\n width={size}\n height={size}\n viewBox=\"0 0 814 1000\"\n fill=\"currentColor\"\n style={style}\n className={className}\n >\n <path d=\"M788.1 340.9c-5.8 4.5-108.2 62.2-108.2 190.5 0 148.4 130.3 200.9 134.2 202.2-.6 3.2-20.7 71.9-68.7 141.9-42.8 61.6-87.5 123.1-155.5 123.1s-85.5-39.5-164-39.5c-76 0-103.7 40.8-165.9 40.8s-105-38.8-155.8-103.2C115.1 757.2 61.9 645.7 61.9 540.4c0-168.3 109.8-257.3 217.3-257.3 59.7 0 109.7 39.9 147.6 39.9 36 0 92.8-42.3 158.8-42.3 25.7 0 108.2 2.6 168.3 78.2zm-104.5-166.2c31.4-37.9 54.3-91.1 54.3-144.3 0-7.1-.6-14.3-1.9-20.1-51.5 1.9-112.4 34.3-149.6 77.2-28.8 32.1-55.8 85.9-55.8 140.3 0 7.8 1.3 15.6 1.9 18.1 3.2.6 8.4 1.3 13.6 1.3 46.5 0 102.8-31.4 137.5-72.5z\" />\n </svg>\n);\n\nexport const GooglePlayIcon = ({ size = 20, className, style }: IconProps) => (\n <svg\n width={size}\n height={size}\n viewBox=\"0 0 512 512\"\n fill=\"currentColor\"\n style={style}\n className={className}\n >\n <path d=\"M325.3 234.3L104.6 13l280.8 161.2-60.1 60.1zM47 0C34 6.8 25.3 19.2 25.3 35.3v441.3c0 16.1 8.7 28.5 21.7 35.3l2.4 1.4 247.2-247v-5.8L47 0zm425.6 225.6l-58.9-34.1-65.7 64.5 65.7 64.5 60.1-34.1c17.1-9.8 17.1-25.9.8-60.8zM104.6 499l280.8-161.2-60.1-60.1L104.6 499z\" />\n </svg>\n);\n","import { IconProps, base } from \"./BaseIcons\";\n\nexport const Mail = ({ size = 16, className, style }: IconProps) => (\n <svg {...base(null, size, style)} className={className}>\n <rect x=\"2\" y=\"4\" width=\"20\" height=\"16\" rx=\"2\" />\n <path d=\"m22 7-8.97 5.7a1.94 1.94 0 0 1-2.06 0L2 7\" />\n </svg>\n);\n\nexport const LockIcon = ({ size = 16, className, style }: IconProps) => (\n <svg {...base(null, size, style)} className={className}>\n <rect x=\"3\" y=\"11\" width=\"18\" height=\"11\" rx=\"2\" />\n <path d=\"M7 11V7a5 5 0 0 1 10 0v4\" />\n </svg>\n);\n\nexport const TwoFAIcon = ({ size = 16, className, style }: IconProps) => (\n <svg\n {...base(null, size, style)}\n className={className}\n viewBox=\"0 0 24 24\"\n fill=\"none\"\n stroke=\"currentColor\"\n strokeWidth=\"2\"\n strokeLinecap=\"round\"\n strokeLinejoin=\"round\"\n >\n {/* Smartphone */}\n <rect x=\"5\" y=\"2\" width=\"14\" height=\"20\" rx=\"2\" ry=\"2\" />\n <line x1=\"12\" y1=\"18\" x2=\"12.01\" y2=\"18\" />\n {/* Key overlay */}\n <circle cx=\"10\" cy=\"10\" r=\"1.5\" />\n <line x1=\"11\" y1=\"10\" x2=\"16\" y2=\"10\" />\n <line x1=\"13\" y1=\"7.5\" x2=\"13\" y2=\"6\" />\n <line x1=\"15\" y1=\"8.5\" x2=\"15\" y2=\"7.5\" />\n </svg>\n);\n\nexport const FingerprintIcon = ({ size = 20, className, style }: IconProps) => (\n <svg\n {...base(null, size, style)}\n className={className}\n xmlns=\"http://www.w3.org/2000/svg\"\n viewBox=\"0 0 24 24\"\n fill=\"none\"\n stroke=\"currentColor\"\n strokeWidth=\"2.5\"\n strokeLinecap=\"round\"\n strokeLinejoin=\"round\"\n >\n <path d=\"M12 10a2 2 0 0 0-2 2c0 1.02-.1 2.51-.26 4\" />\n <path d=\"M14 13.12c0 2.38 0 6.38-1 8.88\" />\n <path d=\"M17.29 21.02c.12-.6.43-2.3.5-3.02\" />\n <path d=\"M2 12a10 10 0 0 1 18-6\" />\n <path d=\"M2 16h.01\" />\n <path d=\"M21.8 16c.2-2 .131-5.354 0-6\" />\n <path d=\"M5 19.5C5.5 18 6 15 6 12a6 6 0 0 1 .34-2\" />\n <path d=\"M8.65 22c.21-.66.45-1.32.57-2\" />\n <path d=\"M9 6.8a6 6 0 0 1 9 5.2v2\" />\n </svg>\n);\n\nexport const Eye = ({ size = 16, className, style }: IconProps) => (\n <svg {...base(null, size, style)} className={className}>\n <path d=\"M2 12s3-7 10-7 10 7 10 7-3 7-10 7-10-7-10-7z\" />\n <circle cx=\"12\" cy=\"12\" r=\"3\" />\n </svg>\n);\n\nexport const EyeOff = ({ size = 16, className, style }: IconProps) => (\n <svg {...base(null, size, style)} className={className}>\n <path d=\"M17.94 17.94A10.07 10.07 0 0 1 12 20c-7 0-10-8-10-8a18.45 18.45 0 0 1 5.06-5.94\" />\n <path d=\"M9.9 4.24A9.12 9.12 0 0 1 12 4c7 0 10 8 10 8a18.5 18.5 0 0 1-2.16 3.19\" />\n <line x1=\"1\" y1=\"1\" x2=\"23\" y2=\"23\" />\n </svg>\n);\n\nexport const User = ({ size = 16, className, style }: IconProps) => (\n <svg {...base(null, size, style)} className={className}>\n <path d=\"M20 21v-2a4 4 0 0 0-4-4H8a4 4 0 0 0-4 4v2\" />\n <circle cx=\"12\" cy=\"7\" r=\"4\" />\n </svg>\n);\n\nexport const UserCheck = ({ size = 14, className, style }: IconProps) => (\n <svg {...base(null, size, style)} className={className}>\n <path d=\"M16 21v-2a4 4 0 0 0-4-4H6a4 4 0 0 0-4 4v2\" />\n <circle cx=\"9\" cy=\"7\" r=\"4\" />\n <polyline points=\"16 11 18 13 22 9\" />\n </svg>\n);\n\nexport const Hash = ({ size = 16, className, style }: IconProps) => (\n <svg {...base(null, size, style)} className={className}>\n <line x1=\"4\" y1=\"9\" x2=\"20\" y2=\"9\" />\n <line x1=\"4\" y1=\"15\" x2=\"20\" y2=\"15\" />\n <line x1=\"10\" y1=\"3\" x2=\"8\" y2=\"21\" />\n <line x1=\"16\" y1=\"3\" x2=\"14\" y2=\"21\" />\n </svg>\n);\n\nexport const LogOut = ({ size = 20, className, style }: IconProps) => (\n <svg\n {...base(null, size, style)}\n className={className}\n viewBox=\"0 0 24 24\"\n fill=\"none\"\n stroke=\"currentColor\"\n strokeWidth=\"1.75\"\n strokeLinecap=\"round\"\n strokeLinejoin=\"round\"\n >\n <line x1=\"15\" y1=\"12\" x2=\"5\" y2=\"12\" />\n <polyline points=\"9 8 5 12 9 16\" />\n <path d=\"M19 4 h-4 v16 h4 Z\" />\n </svg>\n);\n","import { IconProps, base } from \"./BaseIcons\";\n\nexport const Alert = ({ size = 15, className, style }: IconProps) => (\n <svg {...base(null, size, style)} strokeWidth={2} className={className}>\n <path d=\"M10.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 <line x1=\"12\" y1=\"9\" x2=\"12\" y2=\"13\" />\n <line x1=\"12\" y1=\"17\" x2=\"12.01\" y2=\"17\" />\n </svg>\n);\n\nexport const Info = ({ size = 15, className, style }: IconProps) => (\n <svg {...base(null, size, style)} className={className}>\n <circle cx=\"12\" cy=\"12\" r=\"10\" />\n <line x1=\"12\" y1=\"16\" x2=\"12\" y2=\"12\" />\n <line x1=\"12\" y1=\"8\" x2=\"12.01\" y2=\"8\" />\n </svg>\n);\n\nexport const CheckCircle = ({ size = 18, className, style }: IconProps) => (\n <svg {...base(null, size, style)} strokeWidth={2} className={className}>\n <path d=\"M22 11.08V12a10 10 0 1 1-5.93-9.14\" />\n <polyline points=\"22 4 12 14.01 9 11.01\" />\n </svg>\n);\n\nexport const Ban = ({ size = 15, className, style }: IconProps) => (\n <svg {...base(null, size, style)} className={className}>\n <circle cx=\"12\" cy=\"12\" r=\"10\" />\n <line x1=\"4.93\" y1=\"4.93\" x2=\"19.07\" y2=\"19.07\" />\n </svg>\n);\n\nexport const ArrowRight = ({ size = 16, className, style }: IconProps) => (\n <svg {...base(null, size, style)} strokeWidth={2} className={className}>\n <path d=\"M5 12h14M12 5l7 7-7 7\" />\n </svg>\n);\n\nexport const ArrowLeft = ({ size = 16, className, style }: IconProps) => (\n <svg {...base(null, size, style)} strokeWidth={2} className={className}>\n <path d=\"M19 12H5M12 19l-7-7 7-7\" />\n </svg>\n);\n\nexport const ChevronLeft = ({ size = 16, className, style }: IconProps) => (\n <svg {...base(null, size, style)} strokeWidth={2} className={className}>\n <polyline points=\"15 18 9 12 15 6\" />\n </svg>\n);\n\nexport const ChevronRight = ({ size = 16, className, style }: IconProps) => (\n <svg {...base(null, size, style)} strokeWidth={2} className={className}>\n <polyline points=\"9 18 15 12 9 6\" />\n </svg>\n);\n\nexport const ChevronDown = ({ size = 15, className, style }: IconProps) => (\n <svg {...base(null, size, style)} strokeWidth={2} className={className}>\n <path d=\"m6 9 6 6 6-6\" />\n </svg>\n);\n\nexport const ChevronUp = ({ size = 15, className, style }: IconProps) => (\n <svg {...base(null, size, style)} className={className}>\n <polyline points=\"18 15 12 9 6 15\" />\n </svg>\n);\n\nexport const Search = ({ size = 15, className, style }: IconProps) => (\n <svg {...base(null, size, style)} strokeWidth={2} className={className}>\n <circle cx=\"11\" cy=\"11\" r=\"8\" />\n <path d=\"M21 21l-4.35-4.35\" />\n </svg>\n);\n\nexport const Bell = ({ size = 18, className, style }: IconProps) => (\n <svg {...base(null, size, style)} className={className}>\n <path d=\"M18 8A6 6 0 0 0 6 8c0 7-3 9-3 9h18s-3-2-3-9\" />\n <path d=\"M13.73 21a2 2 0 0 1-3.46 0\" />\n </svg>\n);\n\nexport const Shield = ({ size = 16, className, style }: IconProps) => (\n <svg {...base(null, size, style)} className={className}>\n <path d=\"M12 22s8-4 8-10V5l-8-3-8 3v7c0 6 8 10 8 10z\" />\n </svg>\n);\n\nexport const Copy = ({ size = 16, className, style }: IconProps) => (\n <svg {...base(null, size, style)} className={className}>\n <rect x=\"9\" y=\"9\" width=\"13\" height=\"13\" rx=\"2\" />\n <path d=\"M5 15H4a2 2 0 0 1-2-2V4a2 2 0 0 1 2-2h9a2 2 0 0 1 2 2v1\" />\n </svg>\n);\n\nexport const Repeat = ({ size = 14, className, style }: IconProps) => (\n <svg {...base(null, size, style)} strokeWidth={2} className={className}>\n <polyline points=\"17 1 21 5 17 9\" />\n <path d=\"M3 11V9a4 4 0 0 1 4-4h14\" />\n <polyline points=\"7 23 3 19 7 15\" />\n <path d=\"M21 13v2a4 4 0 0 1-4 4H3\" />\n </svg>\n);\n\nexport const FileText = ({ size = 14, className, style }: IconProps) => (\n <svg {...base(null, size, style)} className={className}>\n <path d=\"M14 2H6a2 2 0 0 0-2 2v16a2 2 0 0 0 2 2h12a2 2 0 0 0 2-2V8z\" />\n <polyline points=\"14 2 14 8 20 8\" />\n <line x1=\"16\" y1=\"13\" x2=\"8\" y2=\"13\" />\n <line x1=\"16\" y1=\"17\" x2=\"8\" y2=\"17\" />\n <polyline points=\"10 9 9 9 8 9\" />\n </svg>\n);\n\nexport const Trophy = ({ size = 14, className, style }: IconProps) => (\n <svg {...base(null, size, style)} className={className}>\n <path d=\"M6 9H4.5a2.5 2.5 0 0 1 0-5H6\" />\n <path d=\"M18 9h1.5a2.5 2.5 0 0 0 0-5H18\" />\n <path d=\"M4 22h16\" />\n <path d=\"M10 14.66V17c0 .55-.47.98-.97 1.21C7.85 18.75 7 20.24 7 22\" />\n <path d=\"M14 14.66V17c0 .55.47.98.97 1.21C16.15 18.75 17 20.24 17 22\" />\n <path d=\"M18 2H6v7a6 6 0 0 0 12 0V2Z\" />\n </svg>\n);\n\nexport const Monitor = ({ size = 16, className, style }: IconProps) => (\n <svg {...base(null, size, style)} className={className}>\n <rect x=\"2\" y=\"3\" width=\"20\" height=\"14\" rx=\"2\" ry=\"2\" />\n <line x1=\"8\" y1=\"21\" x2=\"16\" y2=\"21\" />\n <line x1=\"12\" y1=\"17\" x2=\"12\" y2=\"21\" />\n </svg>\n);\n\nexport const Smartphone = ({ size = 16, className, style }: IconProps) => (\n <svg {...base(null, size, style)} className={className}>\n <rect x=\"5\" y=\"2\" width=\"14\" height=\"20\" rx=\"2\" ry=\"2\" />\n <line x1=\"12\" y1=\"18\" x2=\"12.01\" y2=\"18\" />\n </svg>\n);\n\nexport const Tablet = ({ size = 16, className, style }: IconProps) => (\n <svg {...base(null, size, style)} className={className}>\n <rect x=\"4\" y=\"2\" width=\"16\" height=\"20\" rx=\"2\" ry=\"2\" />\n <line x1=\"12\" y1=\"18\" x2=\"12.01\" y2=\"18\" />\n </svg>\n);\n\n// Aktivnost – linija otkucaja (pulse)\nexport const ActivityMenu = ({ size = 18, className, style }: IconProps) => (\n <svg {...base(null, size, style)} className={className}>\n <rect x=\"3\" y=\"8\" width=\"3\" height=\"8\" rx=\"1\" />\n <rect x=\"9\" y=\"4\" width=\"3\" height=\"16\" rx=\"1\" />\n <rect x=\"15\" y=\"6\" width=\"3\" height=\"12\" rx=\"1\" />\n </svg>\n);\n// Poređenje – dva stuba sa strelicama za upoređivanje\nexport const Compare = ({ size = 18, className, style }: IconProps) => (\n <svg {...base(null, size, style)} className={className}>\n <rect x=\"3\" y=\"3\" width=\"12\" height=\"12\" rx=\"1.5\" fill=\"none\" />\n <rect x=\"9\" y=\"9\" width=\"12\" height=\"12\" rx=\"1.5\" fill=\"none\" />\n <line x1=\"3\" y1=\"21\" x2=\"21\" y2=\"3\" stroke=\"currentColor\" strokeWidth=\"1.2\" strokeDasharray=\"3 2\" />\n </svg>\n);\n\n// Presečni status – Venn dijagram (dva presječena kruga)\nexport const Intersect = ({ size = 18, className, style }: IconProps) => (\n <svg {...base(null, size, style)} className={className} strokeWidth={1.75}>\n <circle cx=\"9\" cy=\"12\" r=\"6\" />\n <circle cx=\"15\" cy=\"12\" r=\"6\" />\n </svg>\n);\n\nexport const Megaphone = ({ size = 18, className, style }: IconProps) => (\n <svg {...base(null, size, style)} className={className} strokeWidth={1.75}>\n <path d=\"M3 11l19-9-9 19-2-8-8-2z\" />\n </svg>\n);\n","import { IconProps, base } from \"./BaseIcons\";\n\nexport const Sun = ({ size = 15, className, style }: IconProps) => (\n <svg {...base(null, size, style)} className={className} strokeWidth={2}>\n <circle cx=\"12\" cy=\"12\" r=\"5\" /><line x1=\"12\" y1=\"1\" x2=\"12\" y2=\"3\" /><line x1=\"12\" y1=\"21\" x2=\"12\" y2=\"23\" />\n <line x1=\"4.22\" y1=\"4.22\" x2=\"5.64\" y2=\"5.64\" /><line x1=\"18.36\" y1=\"18.36\" x2=\"19.78\" y2=\"19.78\" />\n <line x1=\"1\" y1=\"12\" x2=\"3\" y2=\"12\" /><line x1=\"21\" y1=\"12\" x2=\"23\" y2=\"12\" />\n <line x1=\"4.22\" y1=\"19.78\" x2=\"5.64\" y2=\"18.36\" /><line x1=\"18.36\" y1=\"5.64\" x2=\"19.78\" y2=\"4.22\" />\n </svg>\n);\n\nexport const Moon = ({ size = 15, className, style }: IconProps) => (\n <svg {...base(null, size, style)} className={className} strokeWidth={2}>\n <path d=\"M21 12.79A9 9 0 1 1 11.21 3 7 7 0 0 0 21 12.79z\" />\n </svg>\n);\n\nexport const Gear = ({ size = 16, className, style }: IconProps) => (\n <svg {...base(null, size, style)} className={className}>\n <circle cx=\"12\" cy=\"12\" r=\"3\" />\n <path d=\"M19.4 15a1.65 1.65 0 0 0 .33 1.82l.06.06a2 2 0 0 1-2.83 2.83l-.06-.06a1.65 1.65 0 0 0-1.82-.33 1.65 1.65 0 0 0-1 1.51V21a2 2 0 0 1-4 0v-.09A1.65 1.65 0 0 0 9 19.4a1.65 1.65 0 0 0-1.82.33l-.06.06a2 2 0 0 1-2.83-2.83l.06-.06A1.65 1.65 0 0 0 4.68 15a1.65 1.65 0 0 0-1.51-1H3a2 2 0 0 1 0-4h.09A1.65 1.65 0 0 0 4.6 9a1.65 1.65 0 0 0-.33-1.82l-.06-.06a2 2 0 0 1 2.83-2.83l.06.06A1.65 1.65 0 0 0 9 4.68a1.65 1.65 0 0 0 1-1.51V3a2 2 0 0 1 4 0v.09a1.65 1.65 0 0 0 1 1.51 1.65 1.65 0 0 0 1.82-.33l.06-.06a2 2 0 0 1 2.83 2.83l-.06.06A1.65 1.65 0 0 0 19.4 9a1.65 1.65 0 0 0 1.51 1H21a2 2 0 0 1 0 4h-.09a1.65 1.65 0 0 0-1.51 1z\" />\n </svg>\n);\n\nexport const Clock = ({ size = 13, className, style }: IconProps) => (\n <svg {...base(null, size, style)} className={className}>\n <circle cx=\"12\" cy=\"12\" r=\"10\" />\n <polyline points=\"12 6 12 12 16 14\" />\n </svg>\n);\n","interface LogoMarkProps {\n size?: number;\n className?: string;\n bgClassName?: string;\n bgFill?: string;\n bgOpacity?: number;\n}\n\n// Brutalist square logo – ugaone zagrade + slovo 't' sa eksponentom 'LMS'\nexport const LogoMark = ({\n size = 28,\n className,\n}: LogoMarkProps) => (\n <svg\n width={size}\n height={size}\n className={`${className} w-[${size}px] h-[${size}px]`}\n viewBox=\"0 0 32 32\"\n fill=\"none\"\n >\n <rect width=\"32\" height=\"32\" rx=\"8\" fill=\"none\" />\n <path d=\"M5 9 L5 5 L9 5\" stroke=\"currentColor\" strokeWidth=\"2\" strokeLinecap=\"square\" />\n <path d=\"M23 5 L27 5 L27 9\" stroke=\"currentColor\" strokeWidth=\"2\" strokeLinecap=\"square\" />\n <path d=\"M5 23 L5 27 L9 27\" stroke=\"currentColor\" strokeWidth=\"2\" strokeLinecap=\"square\" />\n <path d=\"M23 27 L27 27 L27 23\" stroke=\"currentColor\" strokeWidth=\"2\" strokeLinecap=\"square\" className=\"opacity-50\" />\n\n <g fill=\"currentColor\">\n <rect x=\"15\" y=\"10\" width=\"2\" height=\"14\" />\n <rect x=\"10\" y=\"10\" width=\"12\" height=\"2\" />\n </g>\n </svg>\n);\n","import { IconProps, base } from \"./BaseIcons\";\n\nexport const FormIcon = ({ size = 18, className, style }: IconProps) => (\n <svg {...base(null, size, style)} className={className}>\n <rect x=\"3\" y=\"3\" width=\"18\" height=\"18\" rx=\"2\" />\n <path d=\"M8 7h8M8 11h8M8 15h5\" />\n </svg>\n);\n\nexport const CalendarWeek = ({ size = 14, className, style }: IconProps) => (\n <svg {...base(null, size, style)} className={className}>\n <rect x=\"3\" y=\"4\" width=\"18\" height=\"18\" rx=\"2\" />\n <path d=\"M16 2v4M8 2v4M3 10h18\" />\n <path d=\"M8 14h.01M12 14h.01M16 14h.01M8 18h.01M12 18h.01M16 18h.01\" />\n </svg>\n);\n\nexport const CalendarMonth = ({ size = 14, className, style }: IconProps) => (\n <svg {...base(null, size, style)} className={className}>\n <rect x=\"3\" y=\"4\" width=\"18\" height=\"18\" rx=\"2\" />\n <path d=\"M16 2v4M8 2v4M3 10h18\" />\n <rect x=\"7\" y=\"14\" width=\"4\" height=\"4\" rx=\"0.5\" />\n <rect x=\"13\" y=\"14\" width=\"4\" height=\"4\" rx=\"0.5\" />\n <rect x=\"7\" y=\"18\" width=\"4\" height=\"2\" rx=\"0.5\" />\n <rect x=\"13\" y=\"18\" width=\"4\" height=\"2\" rx=\"0.5\" />\n </svg>\n);\n\nexport const NumberIcon = ({ size = 14, className, style }: IconProps) => (\n <svg {...base(null, size, style)} className={className}>\n <text x=\"4\" y=\"18\" fontSize=\"18\" fontWeight=\"bold\" fill=\"currentColor\" stroke=\"none\">12</text>\n </svg>\n);\n\nexport const TextIcon = ({ size = 14, className, style }: IconProps) => (\n <svg {...base(null, size, style)} className={className}>\n <text x=\"6\" y=\"18\" fontSize=\"20\" fontWeight=\"bold\" fill=\"currentColor\" stroke=\"none\">T</text>\n </svg>\n);\n\nexport const FormulaIcon = ({ size = 14, className, style }: IconProps) => (\n <svg {...base(null, size, style)} className={className}>\n <text x=\"3\" y=\"16\" fontSize=\"20\" fontWeight=\"bold\" fill=\"currentColor\" stroke=\"none\">ƒ</text>\n <text x=\"12\" y=\"16\" fontSize=\"16\" fill=\"currentColor\" stroke=\"none\">x</text>\n </svg>\n);\n","import { IconProps, base } from \"./BaseIcons\";\n\nexport const RefreshCw = ({ size = 15, className, spinning, style }: IconProps & { spinning?: boolean }) => (\n <svg {...base(null, size, style)} className={`${spinning ? \"animate-spin\" : \"\"} ${className ?? \"\"}`}>\n <path d=\"M23 4v6h-6\" />\n <path d=\"M1 20v-6h6\" />\n <path d=\"M3.51 9a9 9 0 0 1 14.85-3.36L23 10\" />\n <path d=\"M20.49 15a9 9 0 0 1-14.85 3.36L1 14\" />\n </svg>\n);\n\nexport const Database = ({ size = 16, className, style }: IconProps) => (\n <svg {...base(null, size, style)} className={className}>\n <ellipse cx=\"12\" cy=\"5\" rx=\"9\" ry=\"3\" />\n <path d=\"M21 12c0 1.66-4 3-9 3s-9-1.34-9-3\" />\n <path d=\"M3 5v14c0 1.66 4 3 9 3s9-1.34 9-3V5\" />\n </svg>\n);\n\nexport const Server = ({ size = 16, className, style }: IconProps) => (\n <svg {...base(null, size, style)} className={className}>\n <rect x=\"2\" y=\"2\" width=\"20\" height=\"8\" rx=\"2\" ry=\"2\" />\n <rect x=\"2\" y=\"14\" width=\"20\" height=\"8\" rx=\"2\" ry=\"2\" />\n <line x1=\"6\" y1=\"6\" x2=\"6\" y2=\"6.01\" />\n <line x1=\"6\" y1=\"18\" x2=\"6\" y2=\"18.01\" />\n </svg>\n);\n\nexport const Activity = ({ size = 16, className, style }: IconProps) => (\n <svg {...base(null, size, style)} className={className}>\n <polyline points=\"22 12 18 12 15 21 9 3 6 12 2 12\" />\n </svg>\n);\n\nexport const Cpu = ({ size = 16, className, style }: IconProps) => (\n <svg {...base(null, size, style)} className={className}>\n <rect x=\"4\" y=\"4\" width=\"16\" height=\"16\" rx=\"2\" ry=\"2\" />\n <rect x=\"9\" y=\"9\" width=\"6\" height=\"6\" />\n <line x1=\"9\" y1=\"1\" x2=\"9\" y2=\"4\" />\n <line x1=\"15\" y1=\"1\" x2=\"15\" y2=\"4\" />\n <line x1=\"9\" y1=\"20\" x2=\"9\" y2=\"23\" />\n <line x1=\"15\" y1=\"20\" x2=\"15\" y2=\"23\" />\n <line x1=\"1\" y1=\"9\" x2=\"4\" y2=\"9\" />\n <line x1=\"1\" y1=\"15\" x2=\"4\" y2=\"15\" />\n <line x1=\"20\" y1=\"9\" x2=\"23\" y2=\"9\" />\n <line x1=\"20\" y1=\"15\" x2=\"23\" y2=\"15\" />\n </svg>\n);\n\nexport const Zap = ({ size = 16, className, style }: IconProps) => (\n <svg {...base(null, size, style)} className={className}>\n <polygon points=\"13 2 3 14 12 14 11 22 21 10 12 10 13 2\" />\n </svg>\n);\n\nexport const HardDrive = ({ size = 16, className, style }: IconProps) => (\n <svg {...base(null, size, style)} className={className}>\n <line x1=\"22\" y1=\"12\" x2=\"2\" y2=\"12\" />\n <path d=\"M5.45 5.11L2 12v6a2 2 0 0 0 2 2h16a2 2 0 0 0 2-2v-6l-3.45-6.89A2 2 0 0 0 16.76 4H7.24a2 2 0 0 0-1.79 1.11z\" />\n <line x1=\"6\" y1=\"16\" x2=\"6.01\" y2=\"16\" />\n <line x1=\"10\" y1=\"16\" x2=\"10.01\" y2=\"16\" />\n </svg>\n);\n","import { X, Grid, UserMinus, UserCog, History, ExternalLink } from \"./ActionIcons\";\nimport { LockIcon, LogOut, User, UserCheck, EyeOff } from \"./AuthIcons\";\nimport { BarChart, Book, Calendar, CheckSquare, Clipboard, Faculty, Home, Layers, OfficeHours, QrCode, Report, Scan, Table, University, Users } from \"./NavigationIcons\";\nimport { ActivityMenu, Compare, Info, Intersect, Megaphone, Repeat, FileText } from \"./FeedbackIcons\";\nimport { Gear } from \"./SettingsIcons\";\nimport { CalendarWeek, FormIcon } from \"./FormsIcons\";\nimport { Zap } from \"./StatusIcons\";\n\nexport const SectionIcons = {\n studenti: <Users size={13} />,\n nastava: <Book size={13} />,\n evidencija: <CheckSquare size={13} />,\n analitika: <BarChart size={13} />,\n forme: <FormIcon size={13} />,\n nastavaS: <CalendarWeek size={13} />,\n evidencijaS:<CheckSquare size={13} />,\n};\n\nexport const Icons = {\n clipboard: <Faculty size={18} />,\n postClipboard: <Clipboard size={18} />,\n university: <University size={18} />,\n users: <Users size={18} />,\n book: <Book size={18} />,\n layers: <Layers size={18} />,\n officeHours: <OfficeHours size={18} />,\n calendar: <Calendar size={18} />,\n calendarAlt: <CalendarWeek size={18} />,\n checkSquare: <CheckSquare size={18} />,\n barChart: <BarChart size={18} />,\n qrCode: <QrCode size={18} />,\n home: <Home size={18} />,\n scan: <Scan size={18} />,\n lock: <LockIcon size={16} />,\n logOut: <LogOut size={16} />,\n logOutAlt: <LogOut size={16} />,\n user: <User size={16} />,\n cancel: <X size={16} />,\n report: <Report size={18} />,\n table: <Table size={18} />,\n gear: <Gear size={16} />,\n formIcon: <FormIcon size={18} />,\n grades: <BarChart size={18} />,\n activity: <ActivityMenu size={18} />,\n zap: <Zap size={18} />,\n compare: <Compare size={18} />,\n intersect: <Intersect size={18} />,\n repeat: <Repeat size={18} />,\n info: <Info size={16} />,\n todos: <CheckSquare size={18} />,\n eyeOff: <EyeOff size={18} />,\n userMinus: <UserMinus size={18} />,\n fileText: <FileText size={18} />,\n megaphone: <Megaphone size={18} />,\n grid: <Grid size={18} />,\n userCheck: <UserCheck size={18} />,\n fm: <UserCog size={18} />,\n history: <History size={18} />,\n externalLink: <ExternalLink size={18} />\n};\n","import { createElement, isValidElement } from \"react\";\nimport type { ComponentType, MouseEvent, ReactNode } from \"react\";\nimport { Spinner } from \"../feedback/Spinner\";\n\ntype Variant =\n | \"primary\"\n | \"secondary\"\n | \"danger\"\n | \"ghost\"\n | \"success\"\n | \"warning\"\n | \"info\"\n | \"muted-primary\"\n | \"outline-primary\"\n | \"outline-secondary\"\n | \"outline-danger\"\n | \"outline-success\"\n | \"link\";\n\ntype Size = \"xs\" | \"sm\" | \"md\" | \"lg\" | \"xl\";\n\nexport interface ButtonProps {\n children?: ReactNode;\n onClick?: (e: MouseEvent<HTMLButtonElement>) => void;\n disabled?: boolean;\n loading?: boolean;\n variant?: Variant;\n size?: Size;\n icon?: ButtonIcon;\n iconRight?: ButtonIcon;\n className?: string;\n type?: \"button\" | \"submit\" | \"reset\";\n title?: string;\n fullWidth?: boolean;\n}\n\ntype ButtonIcon = ReactNode | ComponentType<{\n size?: number | string;\n strokeWidth?: number;\n className?: string;\n}>;\n\nconst TOKEN_BASE = \"inline-flex items-center justify-center gap-2 cursor-pointer disabled:opacity-40 disabled:cursor-not-allowed transition-all duration-150\";\n\nconst variantClasses: Record<Variant, string> = {\n primary: \"btn-primary\",\n secondary: \"btn-secondary\",\n danger: \"btn-danger\",\n\n ghost: `${TOKEN_BASE} font-medium border border-transparent\n text-[var(--color-txt-3)] hover:border-[var(--color-primary-300)] hover:text-[var(--color-primary-300)]`,\n\n success: `${TOKEN_BASE} border border-[var(--color-good)] text-[var(--color-good)]\n bg-transparent hover:bg-[rgba(77,214,163,0.08)]`,\n\n warning: `${TOKEN_BASE} border border-[var(--color-warn)] text-[var(--color-warn)]\n bg-transparent hover:bg-[rgba(255,122,77,0.08)]`,\n\n info: `${TOKEN_BASE} border border-[var(--color-primary-300)] text-[var(--color-primary-300)]\n bg-transparent hover:bg-[rgba(94,231,255,0.08)]`,\n\n \"muted-primary\": `${TOKEN_BASE} border border-[var(--color-primary-300)] text-[var(--color-primary-300)]\n bg-[rgba(94,231,255,0.06)] hover:bg-[rgba(94,231,255,0.12)]`,\n\n \"outline-primary\": `${TOKEN_BASE} border border-[var(--color-primary-300)] text-[var(--color-primary-300)]\n hover:bg-[rgba(94,231,255,0.08)]`,\n\n \"outline-secondary\": `${TOKEN_BASE} border border-[var(--color-border-hi)] text-[var(--color-txt-2)]\n hover:border-[var(--color-txt-2)] hover:text-[var(--color-txt-1)]`,\n\n \"outline-danger\": `${TOKEN_BASE} border border-[var(--color-warn)] text-[var(--color-warn)]\n hover:bg-[rgba(255,122,77,0.08)]`,\n\n \"outline-success\": `${TOKEN_BASE} border border-[var(--color-good)] text-[var(--color-good)]\n hover:bg-[rgba(77,214,163,0.08)]`,\n\n link: \"text-[var(--color-primary-300)] hover:text-[var(--color-primary-400)] disabled:opacity-40 disabled:cursor-not-allowed inline-flex items-center gap-1\",\n};\n\nconst sizeClasses: Record<Size, string> = {\n xs: \"px-2 py-1 text-xs gap-1\",\n sm: \"px-3 py-1.5 text-xs gap-1.5\",\n md: \"px-4 py-2 text-sm gap-2\",\n lg: \"px-5 py-2.5 text-sm gap-2\",\n xl: \"px-6 py-3 text-base gap-2.5\",\n};\n\nexport function Button({\n children,\n onClick,\n disabled,\n loading,\n variant = \"primary\",\n size = \"md\",\n icon,\n iconRight,\n className = \"\",\n type = \"button\",\n title,\n fullWidth,\n}: ButtonProps) {\n const isDisabled = disabled || loading;\n const isLink = variant === \"link\";\n const shouldApplySize = !isLink;\n const renderedIcon = renderIcon(icon);\n const renderedIconRight = renderIcon(iconRight);\n\n return (\n <button\n type={type}\n onClick={onClick}\n disabled={isDisabled}\n title={title}\n className={[\n variantClasses[variant],\n shouldApplySize ? sizeClasses[size] : \"\",\n fullWidth ? \"w-full\" : \"\",\n className,\n ].filter(Boolean).join(\" \")}\n >\n {loading\n ? <Spinner color={variant === \"primary\" ? \"text-black\" : \"text-[var(--color-txt-2)]\"} />\n : renderedIcon ? <span>{renderedIcon}</span> : null}\n {children}\n {!loading && renderedIconRight}\n </button>\n );\n}\n\nfunction renderIcon(icon?: ButtonIcon) {\n if (!icon) return null;\n if (isValidElement(icon)) return icon;\n if (typeof icon === \"function\") {\n return createElement(icon, { size: 14, strokeWidth: 1.75 });\n }\n return icon;\n}\n","export interface SpinnerProps {\n size?: string;\n color?: string;\n}\n\nexport const Spinner = ({ size = \"w-3 h-3\", color = \"text-primary-700\" }: SpinnerProps) => (\n <svg\n className={`inline-block ${size} animate-spin ${color}`}\n viewBox=\"0 0 24 24\"\n fill=\"none\"\n xmlns=\"http://www.w3.org/2000/svg\"\n >\n <circle\n cx=\"12\"\n cy=\"12\"\n r=\"10\"\n stroke=\"currentColor\"\n strokeWidth=\"3\"\n strokeLinecap=\"round\"\n strokeDasharray=\"31.4 31.4\"\n strokeDashoffset=\"15.7\"\n />\n </svg>\n);\n","import type { InputHTMLAttributes } from \"react\";\n\nexport interface InputProps extends InputHTMLAttributes<HTMLInputElement> {\n invalid?: boolean;\n}\n\nexport function Input({ className = \"\", invalid = false, ...props }: InputProps) {\n return (\n <input\n {...props}\n className={[\n \"input-field\",\n invalid ? \"border-warn focus:border-warn\" : \"\",\n className,\n ].filter(Boolean).join(\" \")}\n />\n );\n}\n","import type { SelectHTMLAttributes } from \"react\";\n\nexport interface SelectProps extends SelectHTMLAttributes<HTMLSelectElement> {\n invalid?: boolean;\n}\n\nexport function Select({ className = \"\", invalid = false, ...props }: SelectProps) {\n return (\n <select\n {...props}\n className={[\n \"input-field\",\n invalid ? \"border-warn focus:border-warn\" : \"\",\n className,\n ].filter(Boolean).join(\" \")}\n />\n );\n}\n","import type { TextareaHTMLAttributes } from \"react\";\n\nexport interface TextareaProps extends TextareaHTMLAttributes<HTMLTextAreaElement> {\n invalid?: boolean;\n}\n\nexport function Textarea({ className = \"\", invalid = false, ...props }: TextareaProps) {\n return (\n <textarea\n {...props}\n className={[\n \"input-field\",\n invalid ? \"border-warn focus:border-warn\" : \"\",\n className,\n ].filter(Boolean).join(\" \")}\n />\n );\n}\n","import type { LabelHTMLAttributes, ReactNode } from \"react\";\n\nexport interface FieldLabelProps extends LabelHTMLAttributes<HTMLLabelElement> {\n children: ReactNode;\n}\n\nexport function FieldLabel({ children, className = \"\", ...props }: FieldLabelProps) {\n return (\n <label {...props} className={`kicker mb-1 block ${className}`.trim()}>\n {children}\n </label>\n );\n}\n","import type { HTMLAttributes, ReactNode } from \"react\";\n\nexport interface FieldHintProps extends HTMLAttributes<HTMLParagraphElement> {\n children: ReactNode;\n}\n\nexport function FieldHint({ children, className = \"\", ...props }: FieldHintProps) {\n return (\n <p {...props} className={`font-mono text-[10px] text-txt-4 ${className}`.trim()}>\n {children}\n </p>\n );\n}\n","import { type InputHTMLAttributes, useId, useState } from \"react\";\n\nexport interface CheckboxProps extends Omit<InputHTMLAttributes<HTMLInputElement>, \"type\" | \"size\"> {\n label?: string;\n size?: \"sm\" | \"md\" | \"lg\";\n}\n\nconst sizeMap = {\n sm: { box: \"w-3.5 h-3.5\", icon: 10, text: \"text-xs\", gap: \"gap-1.5\" },\n md: { box: \"w-4 h-4\", icon: 11, text: \"text-sm\", gap: \"gap-2\" },\n lg: { box: \"w-5 h-5\", icon: 13, text: \"text-base\", gap: \"gap-2.5\" },\n} as const;\n\nexport function Checkbox({\n label,\n size = \"md\",\n className = \"\",\n id: providedId,\n checked,\n defaultChecked,\n onChange,\n ...props\n}: CheckboxProps) {\n const generatedId = useId();\n const id = providedId ?? generatedId;\n const s = sizeMap[size];\n\n const isControlled = checked !== undefined;\n const [internalChecked, setInternalChecked] = useState(defaultChecked ?? false);\n const isChecked = isControlled ? checked : internalChecked;\n const [focused, setFocused] = useState(false);\n\n return (\n <label\n htmlFor={id}\n className={`inline-flex items-center ${s.gap} cursor-pointer select-none group ${props.disabled ? \"opacity-50 cursor-not-allowed pointer-events-none\" : \"\"} ${className}`}\n >\n <span className=\"relative shrink-0\">\n <input\n {...props}\n id={id}\n type=\"checkbox\"\n checked={isControlled ? checked : internalChecked}\n onChange={(e) => {\n if (!isControlled) setInternalChecked(e.target.checked);\n onChange?.(e);\n }}\n onFocus={() => setFocused(true)}\n onBlur={() => setFocused(false)}\n className=\"sr-only\"\n />\n <span\n className={`\n flex items-center justify-center ${s.box}\n border transition-all duration-150\n ${isChecked\n ? \"bg-primary-300 border-primary-300\"\n : \"bg-ink-400 border-border-hi group-hover:border-primary-400\"\n }\n ${focused ? \"ring-1 ring-primary-300\" : \"\"}\n `}\n >\n {isChecked && (\n <svg\n width={s.icon}\n height={s.icon}\n viewBox=\"0 0 12 12\"\n fill=\"none\"\n stroke=\"#000\"\n strokeWidth=\"2.2\"\n strokeLinecap=\"square\"\n >\n <polyline points=\"1.5,6 4.5,9.5 10.5,2.5\" />\n </svg>\n )}\n </span>\n </span>\n\n {label && (\n <span className={`${s.text} text-txt-2 group-hover:text-txt-1 transition-colors duration-150`}>\n {label}\n </span>\n )}\n </label>\n );\n}\n","import { type InputHTMLAttributes, useId, useState } from \"react\";\n\nexport interface RadioButtonProps extends Omit<InputHTMLAttributes<HTMLInputElement>, \"type\" | \"size\"> {\n label?: string;\n size?: \"sm\" | \"md\" | \"lg\";\n}\n\nconst sizeMap = {\n sm: { outer: \"w-3.5 h-3.5\", inner: \"w-1.5 h-1.5\", text: \"text-xs\", gap: \"gap-1.5\" },\n md: { outer: \"w-4 h-4\", inner: \"w-2 h-2\", text: \"text-sm\", gap: \"gap-2\" },\n lg: { outer: \"w-5 h-5\", inner: \"w-2.5 h-2.5\", text: \"text-base\", gap: \"gap-2.5\" },\n} as const;\n\nexport function RadioButton({\n label,\n size = \"md\",\n className = \"\",\n id: providedId,\n checked,\n defaultChecked,\n onChange,\n ...props\n}: RadioButtonProps) {\n const generatedId = useId();\n const id = providedId ?? generatedId;\n const s = sizeMap[size];\n\n const isControlled = checked !== undefined;\n const [internalChecked, setInternalChecked] = useState(defaultChecked ?? false);\n const isChecked = isControlled ? checked : internalChecked;\n const [focused, setFocused] = useState(false);\n\n return (\n <label\n htmlFor={id}\n className={`inline-flex items-center ${s.gap} cursor-pointer select-none group ${props.disabled ? \"opacity-50 cursor-not-allowed pointer-events-none\" : \"\"} ${className}`}\n >\n <span className=\"relative shrink-0\">\n <input\n {...props}\n id={id}\n type=\"radio\"\n checked={isControlled ? checked : internalChecked}\n onChange={(e) => {\n if (!isControlled) setInternalChecked(e.target.checked);\n onChange?.(e);\n }}\n onFocus={() => setFocused(true)}\n onBlur={() => setFocused(false)}\n className=\"sr-only\"\n />\n {/* outer ring — square to match app aesthetic, full for radio feel */}\n <span\n className={`\n flex items-center justify-center ${s.outer}\n rounded-full border transition-all duration-150\n ${isChecked\n ? \"bg-ink-400 border-primary-300 shadow-[0_0_0_1px_var(--color-primary-300)]\"\n : \"bg-ink-400 border-border-hi group-hover:border-primary-400\"\n }\n ${focused ? \"ring-1 ring-primary-300\" : \"\"}\n `}\n >\n {isChecked && (\n <span className={`${s.inner} rounded-full bg-primary-300`} />\n )}\n </span>\n </span>\n\n {label && (\n <span className={`${s.text} text-txt-2 group-hover:text-txt-1 transition-colors duration-150`}>\n {label}\n </span>\n )}\n </label>\n );\n}\n","import { Spinner } from \"./Spinner\";\n\nexport function PageSpinner() {\n return (\n <div className=\"flex h-48 flex-col items-center justify-center gap-3\">\n <Spinner size=\"w-8 h-8\" />\n <span className=\"kicker\">loading</span>\n </div>\n );\n}\n","import { useEffect, useRef, useState } from \"react\";\nimport { createPortal } from \"react-dom\";\nimport { Check, X } from \"../icons/index\";\n\nexport interface ToastProps {\n message: string;\n ok: boolean;\n durationMs?: number;\n}\n\nexport function Toast({ message, ok, durationMs = 5000 }: ToastProps) {\n const [progress, setProgress] = useState(100);\n const [visible, setVisible] = useState(false);\n const startRef = useRef<number | null>(null);\n const rafRef = useRef<number | null>(null);\n\n useEffect(() => {\n const id = requestAnimationFrame(() => setVisible(true));\n return () => cancelAnimationFrame(id);\n }, []);\n\n useEffect(() => {\n const tick = (now: number) => {\n if (!startRef.current) startRef.current = now;\n const elapsed = now - startRef.current;\n setProgress(Math.max(0, 100 - (elapsed / durationMs) * 100));\n if (elapsed < durationMs) rafRef.current = requestAnimationFrame(tick);\n };\n rafRef.current = requestAnimationFrame(tick);\n return () => {\n if (rafRef.current) cancelAnimationFrame(rafRef.current);\n };\n }, [durationMs]);\n\n const transform = visible\n ? \"opacity-100 translate-y-0\"\n : \"opacity-0 translate-y-2 sm:translate-x-4 sm:translate-y-0\";\n\n const borderColor = ok ? \"var(--color-good)\" : \"var(--color-warn)\";\n const accentColor = ok ? \"var(--color-good)\" : \"var(--color-warn)\";\n\n return createPortal(\n <div className=\"pointer-events-none fixed bottom-20 left-4 right-4 z-9999 flex justify-center min-[600px]:bottom-auto min-[600px]:left-auto min-[600px]:right-5 min-[600px]:top-5 min-[600px]:justify-end\">\n <div\n className={`${transform} pointer-events-auto relative flex w-full max-w-sm items-center gap-2.5 overflow-hidden px-4 py-3 text-sm font-medium transition-all duration-300 sm:w-auto sm:max-w-xs`}\n style={{\n background: \"var(--color-ink-300)\",\n border: `1px solid ${borderColor}`,\n borderLeft: `3px solid ${borderColor}`,\n color: \"var(--color-txt-1)\",\n }}\n >\n <span className=\"flex h-5 w-5 shrink-0 items-center justify-center\" style={{ color: accentColor }}>\n {ok ? <Check size={12} /> : <X size={12} />}\n </span>\n <span className=\"flex-1 text-[12px] leading-snug sm:text-[13px]\" style={{ fontFamily: \"var(--font-mono)\" }}>\n {message}\n </span>\n <div\n className=\"absolute bottom-0 left-0 h-0.5 transition-none\"\n style={{ width: `${progress}%`, background: accentColor }}\n />\n </div>\n </div>,\n document.body,\n );\n}\n","import { createContext, useContext, useMemo, useState, type ReactNode } from \"react\";\nimport { Toast } from \"./Toast\";\n\nexport interface ToastState {\n message: string;\n ok: boolean;\n durationMs?: number;\n}\n\ninterface ToastContextValue {\n hideToast: () => void;\n showToast: (message: string, ok: boolean, durationMs?: number) => void;\n}\n\nconst ToastContext = createContext<ToastContextValue | null>(null);\n\nexport interface ToastProviderProps {\n children?: ReactNode;\n}\n\nexport function ToastProvider({ children }: ToastProviderProps) {\n const [toast, setToast] = useState<ToastState | null>(null);\n\n const value = useMemo<ToastContextValue>(() => ({\n hideToast: () => setToast(null),\n showToast: (message, ok, durationMs = 5000) => {\n setToast({ message, ok, durationMs });\n window.setTimeout(() => setToast(current => (\n current?.message === message && current?.ok === ok ? null : current\n )), durationMs);\n },\n }), []);\n\n return (\n <ToastContext.Provider value={value}>\n {children}\n {toast ? <Toast message={toast.message} ok={toast.ok} durationMs={toast.durationMs} /> : null}\n </ToastContext.Provider>\n );\n}\n\nexport function useToast() {\n const context = useContext(ToastContext);\n if (!context) {\n throw new Error(\"useToast must be used within ToastProvider\");\n }\n return context;\n}\n","import { Alert } from \"../icons/index\";\n\nexport interface FormErrorProps {\n message: string | null | undefined;\n className?: string;\n}\n\nexport function FormError({ message, className = \"\" }: FormErrorProps) {\n if (!message) return null;\n return (\n <div\n className={`flex items-start gap-2 px-3 py-2.5 text-sm ${className}`}\n style={{\n background: \"color-mix(in srgb, var(--color-warn) 8%, transparent)\",\n border: \"1px solid color-mix(in srgb, var(--color-warn) 25%, transparent)\",\n borderLeft: \"3px solid var(--color-warn)\",\n color: \"var(--color-warn)\",\n animation: \"var(--animate-scale-in)\",\n }}\n >\n <Alert size={14} className=\"shrink-0 mt-0.5\" />\n <span style={{ fontFamily: \"var(--font-mono)\", fontSize: 12 }}>{message}</span>\n </div>\n );\n}\n","import { Component, type ErrorInfo, type ReactNode } from \"react\";\n\ninterface ErrorBoundaryProps {\n children: ReactNode;\n fallback?: ReactNode;\n}\n\ninterface ErrorBoundaryState {\n hasError: boolean;\n}\n\ninterface DefaultErrorFallbackProps {\n title?: string;\n description?: string;\n label?: string;\n reloadLabel?: string;\n}\n\nexport class ErrorBoundary extends Component<ErrorBoundaryProps, ErrorBoundaryState> {\n state: ErrorBoundaryState = { hasError: false };\n\n static getDerivedStateFromError(): ErrorBoundaryState {\n return { hasError: true };\n }\n\n componentDidCatch(error: Error, info: ErrorInfo) {\n console.error(\"Unhandled UI error\", error, info);\n }\n\n render() {\n if (this.state.hasError) {\n return this.props.fallback ?? <DefaultErrorFallback />;\n }\n\n return this.props.children;\n }\n}\n\nexport function DefaultErrorFallback({\n title = \"Something went wrong\",\n description = \"An unexpected error occurred. Reload the page and try again.\",\n label = \"Tapiz UI · Runtime Error\",\n reloadLabel = \"Reload page\",\n}: DefaultErrorFallbackProps) {\n return (\n <div\n className=\"fixed inset-0 flex flex-col items-center justify-center overflow-hidden px-6\"\n style={{ background: \"var(--color-ink-100)\" }}\n >\n <GridBg />\n <Spotlight color=\"rgba(255,100,100,0.06)\" />\n\n <div\n className=\"relative z-10 flex w-full max-w-sm flex-col items-center gap-6 text-center\"\n style={{ animation: \"var(--animate-fade-in-up)\" }}\n >\n <div>\n <div\n className=\"font-mono font-bold leading-none\"\n style={{ fontSize: \"clamp(72px,16vw,120px)\", color: \"var(--color-border-hi)\", letterSpacing: \"-0.04em\" }}\n >\n 500\n </div>\n <div\n className=\"mt-1 h-0.5 w-full\"\n style={{ background: \"linear-gradient(90deg,transparent,rgba(255,80,80,0.7),transparent)\", opacity: 0.5 }}\n />\n </div>\n\n <div className=\"flex flex-col gap-1.5\">\n <p className=\"text-base font-semibold\" style={{ color: \"var(--color-txt-1)\" }}>{title}</p>\n <p className=\"font-mono text-[11px] leading-relaxed\" style={{ color: \"var(--color-txt-3)\" }}>{description}</p>\n </div>\n\n <div\n className=\"font-mono text-[9px] uppercase px-2 py-1\"\n style={{\n letterSpacing: \".2em\",\n color: \"rgba(255,80,80,0.9)\",\n border: \"1px solid rgba(255,80,80,0.25)\",\n background: \"rgba(255,80,80,0.05)\",\n }}\n >\n {label}\n </div>\n\n <div className=\"w-full\">\n <button\n type=\"button\"\n onClick={() => window.location.reload()}\n style={{\n width: \"100%\",\n padding: \"10px\",\n fontSize: \"12px\",\n background: \"var(--color-primary-300)\",\n color: \"var(--color-ink-100)\",\n border: \"none\",\n cursor: \"pointer\",\n fontFamily: \"var(--font-mono)\",\n letterSpacing: \"0.05em\",\n }}\n >\n {reloadLabel} →\n </button>\n </div>\n </div>\n </div>\n );\n}\n\nexport function GridBg() {\n return (\n <div className=\"pointer-events-none absolute inset-0 opacity-50 bg-[linear-gradient(var(--color-border)_1px,transparent_1px),linear-gradient(90deg,var(--color-border)_1px,transparent_1px)] bg-size-[32px_32px]\" />\n );\n}\n\nexport function Spotlight({ color }: { color: string }) {\n return (\n <div\n className=\"pointer-events-none absolute left-1/2 top-1/5 h-60 w-120 -translate-x-1/2\"\n style={{ background: `radial-gradient(ellipse at center, ${color} 0%, transparent 70%)` }}\n />\n );\n}\n","import { ReactNode, useId } from \"react\";\nimport { createPortal } from \"react-dom\";\nimport { X } from \"../icons/index\";\n\nexport interface BaseModalProps {\n isOpen: boolean;\n onClose: () => void;\n title: string;\n subtitle?: string;\n children: ReactNode;\n xShown?: boolean;\n icon?: ReactNode;\n size?: \"sm\" | \"md\" | \"lg\" | \"xl\";\n closeLabel?: string;\n}\n\nconst sizeClass: Record<NonNullable<BaseModalProps[\"size\"]>, string> = {\n sm: \"max-w-sm\",\n md: \"max-w-md\",\n lg: \"max-w-lg\",\n xl: \"max-w-2xl\",\n};\n\nexport function BaseModal({\n isOpen,\n onClose,\n title,\n subtitle,\n children,\n icon,\n xShown = false,\n size = \"md\",\n closeLabel = \"Close dialog\",\n}: BaseModalProps) {\n const titleId = useId();\n if (!isOpen) return null;\n\n return createPortal(\n <div\n role=\"dialog\"\n aria-modal=\"true\"\n aria-labelledby={titleId}\n className=\"fixed inset-0 z-50 flex items-center justify-center p-4\"\n style={{ background: \"rgba(5,6,8,0.75)\", backdropFilter: \"blur(2px)\" }}\n onClick={(e) => e.target === e.currentTarget && onClose()}\n >\n <div\n className={`w-full ${sizeClass[size]} p-6 space-y-4`}\n style={{\n background: \"var(--color-ink-200)\",\n border: \"1px solid var(--color-border-hi)\",\n borderTop: \"2px solid var(--color-primary-300)\",\n animation: \"var(--animate-scale-in)\",\n }}\n >\n <div className=\"flex items-start justify-between\">\n <div className=\"flex items-center gap-3\">\n {icon && (\n <div\n className=\"flex items-center justify-center w-10 h-10 shrink-0\"\n style={{ background: \"var(--color-ink-300)\", border: \"1px solid var(--color-border-hi)\", color: \"var(--color-primary-300)\" }}\n >\n {icon}\n </div>\n )}\n <div>\n <h3 id={titleId} style={{ fontFamily: \"var(--font-display)\", fontSize: 15, fontWeight: 600, color: \"var(--color-txt-1)\" }}>{title}</h3>\n {subtitle && (\n <p style={{ fontFamily: \"var(--font-mono)\", fontSize: 10, color: \"var(--color-primary-300)\", marginTop: 2, letterSpacing: \"0.1em\" }}>\n {subtitle}\n </p>\n )}\n </div>\n </div>\n {xShown && (\n <button\n onClick={onClose}\n className=\"w-7 h-7 flex items-center justify-center\"\n style={{ color: \"var(--color-txt-3)\", border: \"1px solid transparent\" }}\n onMouseEnter={e => { (e.currentTarget as HTMLElement).style.color = \"var(--color-txt-1)\"; (e.currentTarget as HTMLElement).style.borderColor = \"var(--color-border-hi)\"; }}\n onMouseLeave={e => { (e.currentTarget as HTMLElement).style.color = \"var(--color-txt-3)\"; (e.currentTarget as HTMLElement).style.borderColor = \"transparent\"; }}\n aria-label={closeLabel}\n title={closeLabel}\n >\n <X size={14} />\n </button>\n )}\n </div>\n {children}\n </div>\n </div>,\n document.body,\n );\n}\n","import { ReactNode } from \"react\";\nimport { createPortal } from \"react-dom\";\nimport { Button } from \"../forms/Button\";\nimport { X, Check, Trash } from \"../icons/index\";\n\nexport interface ConfirmDialogProps {\n title: string;\n description?: ReactNode;\n message?: ReactNode;\n confirmLabel?: string;\n cancelLabel?: string;\n loading?: boolean;\n onConfirm: () => void;\n onCancel: () => void;\n icon?: ReactNode;\n danger?: boolean;\n open?: boolean;\n}\n\nexport function ConfirmDialog({\n title,\n description,\n message,\n confirmLabel,\n cancelLabel,\n loading = false,\n onConfirm,\n onCancel,\n icon,\n danger = false,\n open = true,\n}: ConfirmDialogProps) {\n const resolvedConfirm = confirmLabel ?? \"Confirm\";\n const resolvedCancel = cancelLabel ?? \"Cancel\";\n const resolvedDescription = description ?? message;\n if (!open) return null;\n return createPortal(\n <div\n className=\"fixed inset-0 z-300 flex items-center justify-center px-4\"\n style={{ background: \"rgba(5,6,8,0.4)\", backdropFilter: \"blur(8px)\" }}\n onClick={onCancel}\n >\n <div\n className=\"relative w-full max-w-sm\"\n style={{\n background: \"var(--color-ink-200)\",\n border: \"1px solid var(--color-border-hi)\",\n borderTop: danger ? \"2px solid var(--color-danger, #f87171)\" : \"2px solid var(--color-primary-300)\",\n animation: \"var(--animate-scale-in)\",\n }}\n onClick={e => e.stopPropagation()}\n >\n <div className=\"p-6 flex flex-col gap-4\">\n {/* Icon + title row */}\n <div className=\"flex items-center gap-3\">\n {icon && (\n <div\n className=\"flex items-center justify-center w-9 h-9 shrink-0\"\n style={{\n background: danger ? \"rgba(248,113,113,0.1)\" : \"rgba(94,231,255,0.08)\",\n border: danger ? \"1px solid rgba(248,113,113,0.25)\" : \"1px solid rgba(94,231,255,0.15)\",\n color: danger ? \"var(--color-danger, #f87171)\" : \"var(--color-primary-300)\",\n }}\n >\n {icon}\n </div>\n )}\n <p className=\"text-sm font-semibold\" style={{ color: \"var(--color-txt-1)\" }}>\n {title}\n </p>\n </div>\n\n {/* Description */}\n <p className=\"text-sm\" style={{ color: \"var(--color-txt-3)\" }}>\n {resolvedDescription}\n </p>\n\n {/* Actions */}\n <div className=\"flex items-center justify-end gap-2\">\n <Button variant=\"ghost\" size=\"sm\" icon={<X size={13} />} onClick={onCancel} disabled={loading}>\n {resolvedCancel}\n </Button>\n <Button\n variant={danger ? \"danger\" : \"primary\"}\n size=\"sm\"\n icon={danger ? <Trash size={13} /> : <Check size={13} />}\n onClick={onConfirm}\n loading={loading}\n >\n {resolvedConfirm}\n </Button>\n </div>\n </div>\n </div>\n </div>,\n document.body,\n );\n}\n","import type { ReactNode } from \"react\";\n\nexport interface TooltipProps {\n text: string;\n children: ReactNode;\n position?: \"top\" | \"bottom\";\n align?: \"center\" | \"right\";\n width?: string;\n wFull?: boolean;\n}\n\nexport function Tooltip({ text, children, position = \"top\", align = \"center\", width = \"max-w-[200px]\", wFull }: TooltipProps) {\n const alignClass = align === \"right\" ? \"right-0\" : \"left-1/2 -translate-x-1/2\";\n return (\n <span className={`group relative inline-flex items-center${wFull ? \" w-full\" : \"\"}`}>\n {children}\n <span\n className={`pointer-events-none absolute ${alignClass} ${width} w-max px-2.5 py-1.5\n text-center text-[11px] leading-snug\n opacity-0 group-hover:opacity-100 transition-opacity duration-150\n ${position === \"top\" ? \"bottom-full mb-2\" : \"top-full mt-2\"}`}\n style={{\n zIndex: 60,\n background: \"var(--color-ink-300)\",\n border: \"1px solid var(--color-border-hi)\",\n color: \"var(--color-txt-2)\",\n fontFamily: \"var(--font-mono)\",\n letterSpacing: \"0.04em\",\n }}\n >\n {text}\n <span\n className={`absolute left-1/2 -translate-x-1/2 w-0 h-0 border-x-4 border-x-transparent\n ${position === \"top\" ? \"top-full border-t-4\" : \"bottom-full border-b-4\"}`}\n style={position === \"top\"\n ? { borderTopColor: \"var(--color-border-hi)\" }\n : { borderBottomColor: \"var(--color-border-hi)\" }}\n />\n </span>\n </span>\n );\n}\n","import type { CSSProperties, ReactNode } from \"react\";\n\nexport interface CardProps {\n children: ReactNode;\n className?: string;\n hover?: boolean;\n style?: CSSProperties;\n}\n\nexport interface CardSectionProps {\n children: ReactNode;\n className?: string;\n}\n\nexport function Card({ children, className = \"\", hover = false, style }: CardProps) {\n return (\n <div className={`card ${hover ? \"card-hover transition-all\" : \"\"} ${className}`} style={style}>\n {children}\n </div>\n );\n}\n\nexport function CardHeader({ children, className = \"\" }: CardSectionProps) {\n return <div className={`border-b border-border px-5 py-3 ${className}`}>{children}</div>;\n}\n\nexport function CardBody({ children, className = \"\" }: CardSectionProps) {\n return <div className={`p-5 ${className}`}>{children}</div>;\n}\n","export interface SkeletonProps {\n className?: string;\n}\n\nexport function Skeleton({ className = \"\" }: SkeletonProps) {\n return <div aria-hidden=\"true\" className={`skeleton ${className}`} />;\n}\n","import { Skeleton } from \"./Skeleton\";\n\nexport function SkeletonCard({ className = \"\" }: { className?: string }) {\n return (\n <div className={`card ${className}`.trim()}>\n <Skeleton className=\"mb-3 h-4 w-2/5\" />\n <Skeleton className=\"mb-2 h-3 w-3/4\" />\n <Skeleton className=\"h-3 w-1/2\" />\n </div>\n );\n}\n\nexport function SkeletonKpiCard({ delay = 0 }: { delay?: number }) {\n return (\n <div\n className=\"card animate-pulse\"\n style={{\n animationDelay: `${delay}ms`,\n minHeight: 142,\n display: \"flex\",\n flexDirection: \"column\",\n gap: 8,\n padding: \"16px 18px\",\n borderLeft: \"3px solid var(--color-border-hi)\",\n }}\n >\n <Skeleton className=\"mb-1 h-2 w-24\" />\n <Skeleton className=\"h-8 w-16\" />\n <Skeleton className=\"mt-1 h-2 w-20\" />\n </div>\n );\n}\n\nexport function SkeletonBanner() {\n return (\n <div\n className=\"animate-pulse overflow-hidden p-5\"\n style={{\n background: \"var(--color-ink-300)\",\n border: \"1px solid var(--color-border)\",\n borderTop: \"2px solid var(--color-border-hi)\",\n }}\n >\n <Skeleton className=\"mb-2 h-3 w-24\" />\n <Skeleton className=\"mb-3 h-6 w-48\" />\n <div className=\"flex gap-4\">\n <Skeleton className=\"h-4 w-28\" />\n <Skeleton className=\"h-4 w-24\" />\n <Skeleton className=\"h-4 w-20\" />\n </div>\n </div>\n );\n}\n\nfunction SkeletonTableRow({ cols = 4 }: { cols?: number }) {\n const widths = [\"w-24\", \"w-40\", \"w-32\", \"w-20\", \"w-16\"];\n return (\n <tr className=\"border-b border-border\">\n {Array.from({ length: cols }).map((_, i) => (\n <td key={i} className=\"px-4 py-3\">\n <Skeleton className={`h-4 ${widths[i % widths.length]}`} />\n </td>\n ))}\n </tr>\n );\n}\n\nexport function SkeletonTable({ rows = 6, cols = 4 }: { rows?: number; cols?: number }) {\n return (\n <div className=\"card overflow-hidden p-0\">\n <div className=\"overflow-x-auto\">\n <table className=\"w-full text-sm\">\n <thead>\n <tr className=\"border-b border-border bg-ink-300\">\n {Array.from({ length: cols }).map((_, i) => (\n <th key={i} className=\"px-4 py-3\">\n <Skeleton className=\"h-3 w-16\" />\n </th>\n ))}\n </tr>\n </thead>\n <tbody>\n {Array.from({ length: rows }).map((_, i) => (\n <SkeletonTableRow key={i} cols={cols} />\n ))}\n </tbody>\n </table>\n </div>\n </div>\n );\n}\n\nexport function SkeletonPageHeader() {\n return (\n <div className=\"flex animate-pulse items-center justify-between\">\n <div>\n <Skeleton className=\"mb-2 h-7 w-40\" />\n <Skeleton className=\"h-4 w-24\" />\n </div>\n <Skeleton className=\"h-9 w-32\" />\n </div>\n );\n}\n","import type { ReactNode } from \"react\";\n\ntype Variant = \"default\" | \"success\" | \"warning\" | \"danger\" | \"muted\";\n\nconst variantClasses: Record<Variant, string> = {\n default: \"border-primary-300 text-primary-300\",\n success: \"border-good text-good\",\n warning: \"border-signal-400 text-signal-400\",\n danger: \"border-warn text-warn\",\n muted: \"border-txt-3 text-txt-3\",\n};\n\ninterface BadgeProps {\n children: ReactNode;\n variant?: Variant;\n className?: string;\n}\n\nexport function Badge({ children, variant = \"default\", className = \"\" }: BadgeProps) {\n return (\n <span\n className={`inline-flex items-center border px-2 py-0.5 font-mono text-[9px] font-bold uppercase tracking-widest ${variantClasses[variant]} ${className}`}\n >\n {children}\n </span>\n );\n}\n","import type { ReactNode } from \"react\";\nimport { Info } from \"../icons/index\";\n\nexport interface EmptyStateProps {\n title?: string;\n description?: string;\n message?: string;\n icon?: ReactNode;\n}\n\nexport function EmptyState({ title, description, message, icon }: EmptyStateProps) {\n const resolvedTitle = title ?? message ?? \"No data\";\n\n return (\n <div className=\"border border-border bg-ink-200 px-4 py-10 text-center\">\n <div className=\"mb-2 flex justify-center text-txt-4\">\n {icon ?? <Info size={22} />}\n </div>\n <p className=\"font-mono text-[11px] tracking-widest text-txt-4\">{resolvedTitle}</p>\n {description ? (\n <p className=\"mt-1 font-mono text-[10px] text-txt-4 opacity-70\">{description}</p>\n ) : null}\n </div>\n );\n}\n\nexport function ErrorState({\n title = \"Failed to load\",\n error,\n}: {\n title?: string;\n error: Error | null;\n}) {\n return (\n <div className=\"border border-warn bg-ink-200 px-4 py-10 text-center\">\n <div className=\"mb-2 flex justify-center text-warn\">\n <Info size={22} />\n </div>\n <p className=\"font-mono text-[11px] tracking-widest text-warn\">{title}</p>\n {error ? <p className=\"mt-1 font-mono text-[10px] text-txt-3\">{error.message}</p> : null}\n </div>\n );\n}\n","import { Info, LockIcon } from \"../icons/index\";\n\ninterface StructuredInfoBannerProps {\n title: string;\n description: string;\n text?: never;\n variant?: never;\n className?: string;\n}\n\ninterface InlineInfoBannerProps {\n text: string;\n variant?: \"info\" | \"warn\" | \"lock\";\n className?: string;\n title?: never;\n description?: never;\n}\n\nexport type InfoBannerProps = StructuredInfoBannerProps | InlineInfoBannerProps;\n\nexport function InfoBanner(props: InfoBannerProps) {\n if (\"text\" in props) {\n const { text, variant = \"info\", className = \"\" } = props;\n const styles =\n variant === \"warn\"\n ? \"bg-warn/8 border-warn/25 text-warn\"\n : variant === \"lock\"\n ? \"bg-warn/8 border-warn/30 text-warn\"\n : \"bg-primary-500/10 border-primary-100 text-primary-500\";\n\n const icon = variant === \"lock\"\n ? <LockIcon size={14} className=\"mt-1 shrink-0\" />\n : <Info size={14} className=\"mt-1 shrink-0\" />;\n\n return (\n <div className={`app-info-banner flex items-start gap-2 border px-3 py-2.5 text-[13px] ${styles} ${className}`}>\n {icon}\n <p style={{ fontFamily: \"var(--font-mono)\" }}>{text}</p>\n </div>\n );\n }\n\n const { title, description, className = \"\" } = props;\n\n return (\n <div\n className={`app-info-banner px-4 py-3 ${className}`}\n style={{\n background: \"rgba(94,231,255,0.04)\",\n border: \"1px solid rgba(94,231,255,0.12)\",\n borderLeft: \"3px solid var(--color-primary-300)\",\n }}\n >\n <p\n className=\"mb-0.5 font-mono text-[10px] font-semibold uppercase tracking-widest\"\n style={{ color: \"var(--color-primary-300)\" }}\n >\n {title}\n </p>\n <p className=\"font-mono text-[11px] leading-relaxed\" style={{ color: \"var(--color-txt-2)\" }}>\n {description}\n </p>\n </div>\n );\n}\n","import type { ReactNode } from \"react\";\n\nexport interface PageHeaderProps {\n title: string;\n subtitle?: string;\n action?: ReactNode;\n icon?: ReactNode;\n banner?: ReactNode;\n className?: string;\n}\n\nexport function PageHeader({ title, subtitle, action, icon, banner, className = \"\" }: PageHeaderProps) {\n return (\n <div\n className={`page-header mb-5 flex flex-col gap-3 border-b border-border pb-4 animate-fade-in-up ${className}`.trim()}\n >\n <div className=\"flex flex-col gap-3 sm:flex-row sm:items-start sm:justify-between\">\n <div>\n {subtitle ? <div className=\"kicker mb-1.5\">{subtitle}</div> : null}\n <div className=\"flex items-center gap-2.5\">\n {icon ? <span className=\"text-primary-300\">{icon}</span> : null}\n <h2 className=\"font-(--font-display) text-[22px] tracking-[-0.03em] text-txt-1\">\n {title}\n </h2>\n </div>\n </div>\n {action ? <div>{action}</div> : null}\n </div>\n {banner ? banner : null}\n </div>\n );\n}\n","import type { CSSProperties, InputHTMLAttributes } from \"react\";\nimport { Search, X } from \"../icons/index\";\nimport { Input } from \"../forms/Input\";\n\nexport interface SearchInputProps extends Omit<InputHTMLAttributes<HTMLInputElement>, \"value\" | \"onChange\"> {\n value: string;\n onChange: (value: string) => void;\n wrapperClassName?: string;\n wrapperStyle?: CSSProperties;\n inputClassName?: string;\n iconClassName?: string;\n clearable?: boolean;\n clearTitle?: string;\n}\n\nexport function SearchInput({\n value,\n onChange,\n placeholder = \"Search\",\n wrapperClassName = \"\",\n wrapperStyle,\n inputClassName = \"\",\n iconClassName = \"text-txt-4\",\n clearable = true,\n clearTitle = \"Clear search\",\n ...props\n}: SearchInputProps) {\n return (\n <div className={`relative ${wrapperClassName}`.trim()} style={wrapperStyle}>\n <span className={`pointer-events-none absolute left-3 top-1/2 -translate-y-1/2 ${iconClassName}`.trim()}>\n <Search size={15} />\n </span>\n <Input\n {...props}\n type=\"text\"\n value={value}\n onChange={e => onChange(e.target.value)}\n placeholder={placeholder}\n className={`pl-9 ${inputClassName}`.trim()}\n />\n {clearable && value ? (\n <button\n type=\"button\"\n onClick={() => onChange(\"\")}\n className=\"absolute right-2 top-1/2 -translate-y-1/2 rounded-lg p-1 text-txt-4 transition-colors hover:bg-ink-300 hover:text-txt-2\"\n title={clearTitle}\n >\n <X size={14} />\n </button>\n ) : null}\n </div>\n );\n}\n","import { ChevronLeft, ChevronRight } from \"../icons/index\";\n\nexport interface PaginationLabels {\n showing?: (args: { from: number; to: number; total: number }) => string;\n page?: (args: { page: number; totalPages: number }) => string;\n prev?: string;\n next?: string;\n prevTitle?: string;\n nextTitle?: string;\n}\n\nexport interface PaginationProps {\n page: number;\n totalPages: number;\n onChange: (page: number) => void;\n totalItems?: number;\n pageSize?: number;\n labels?: PaginationLabels;\n}\n\nfunction getPageNumbers(page: number, totalPages: number): (number | \"…\")[] {\n if (totalPages <= 7) return Array.from({ length: totalPages }, (_, i) => i + 1);\n const pages: (number | \"…\")[] = [1];\n if (page > 3) pages.push(\"…\");\n for (let i = Math.max(2, page - 1); i <= Math.min(totalPages - 1, page + 1); i += 1) pages.push(i);\n if (page < totalPages - 2) pages.push(\"…\");\n pages.push(totalPages);\n return pages;\n}\n\nconst defaultLabels: Required<PaginationLabels> = {\n showing: ({ from, to, total }) => `Showing ${from}-${to} of ${total}`,\n page: ({ page, totalPages }) => `Page ${page} of ${totalPages}`,\n prev: \"Prev\",\n next: \"Next\",\n prevTitle: \"Previous page\",\n nextTitle: \"Next page\",\n};\n\nexport function Pagination({ page, totalPages, onChange, totalItems, pageSize, labels }: PaginationProps) {\n if (totalPages <= 1) return null;\n\n const copy = { ...defaultLabels, ...labels };\n const pageNumbers = getPageNumbers(page, totalPages);\n const from = pageSize ? (page - 1) * pageSize + 1 : null;\n const to = pageSize && totalItems ? Math.min(page * pageSize, totalItems) : null;\n\n return (\n <div className=\"flex flex-col items-center justify-between gap-3 border-t border-border pt-3 sm:flex-row\">\n {totalItems != null && from != null && to != null ? (\n <span className=\"order-2 font-mono text-[12px] text-txt-4 sm:order-1\">\n {copy.showing({ from, to, total: totalItems })}\n </span>\n ) : (\n <span className=\"order-2 font-mono text-[11px] text-txt-4 sm:order-1\">\n {copy.page({ page, totalPages })}\n </span>\n )}\n\n <div className=\"order-1 flex items-center gap-1 sm:order-2\">\n <button\n type=\"button\"\n onClick={() => onChange(Math.max(1, page - 1))}\n disabled={page === 1}\n title={copy.prevTitle}\n className=\"flex items-center gap-1 border border-border px-2.5 py-1.5 font-mono text-[11px] text-txt-3 transition-colors hover:border-border-hi hover:text-txt-1 disabled:cursor-not-allowed disabled:opacity-30\"\n >\n <ChevronLeft size={12} />\n <span className=\"hidden sm:inline\">{copy.prev}</span>\n </button>\n\n <div className=\"flex items-center gap-1\">\n {pageNumbers.map((entry, index) =>\n entry === \"…\" ? (\n <span key={`ellipsis-${index}`} className=\"w-7 text-center font-mono text-[11px] text-txt-4\">\n …\n </span>\n ) : (\n <button\n key={entry}\n type=\"button\"\n onClick={() => onChange(entry)}\n className={`h-7 w-7 border font-mono text-[11px] transition-colors ${\n page === entry\n ? \"border-primary-300 bg-primary-300/10 text-primary-300\"\n : \"border-border text-txt-3 hover:border-border-hi hover:text-txt-1\"\n }`}\n >\n {entry}\n </button>\n ),\n )}\n </div>\n\n <button\n type=\"button\"\n onClick={() => onChange(Math.min(totalPages, page + 1))}\n disabled={page >= totalPages}\n title={copy.nextTitle}\n className=\"flex items-center gap-1 border border-border px-2.5 py-1.5 font-mono text-[10px] text-txt-3 transition-colors hover:border-border-hi hover:text-txt-1 disabled:cursor-not-allowed disabled:opacity-30\"\n >\n <span className=\"hidden sm:inline\">{copy.next}</span>\n <ChevronRight size={12} />\n </button>\n </div>\n </div>\n );\n}\n","import type { ReactNode } from \"react\";\n\nexport interface SectionTitleProps {\n children: ReactNode;\n className?: string;\n}\n\nexport function SectionTitle({ children, className = \"\" }: SectionTitleProps) {\n return <h3 className={`mb-1 text-sm font-semibold text-txt-1 ${className}`.trim()}>{children}</h3>;\n}\n","import type { ReactNode } from \"react\";\n\nexport type StatusBadgeVariant =\n | \"default\"\n | \"active\"\n | \"inactive\"\n | \"warning\"\n | \"success\"\n | \"danger\"\n | \"pending\";\n\nexport interface StatusBadgeProps {\n label: ReactNode;\n variant?: StatusBadgeVariant;\n className?: string;\n}\n\nconst BASE =\n \"inline-flex items-center border px-2 py-0.5 font-mono text-[9px] font-medium uppercase tracking-[0.15em]\";\n\nconst variantStyles: Record<StatusBadgeVariant, string> = {\n default: \"border-border-hi text-txt-2\",\n active: \"border-primary-300 text-primary-300\",\n success: \"border-good text-good\",\n inactive: \"border-txt-4 text-txt-4\",\n warning: \"border-warn text-warn\",\n danger: \"border-warn text-warn\",\n pending: \"border-txt-3 text-txt-3\",\n};\n\nexport function StatusBadge({ label, variant = \"default\", className = \"\" }: StatusBadgeProps) {\n return <span className={`${BASE} ${variantStyles[variant]} ${className}`.trim()}>{label}</span>;\n}\n","import type { CSSProperties, ReactNode } from \"react\";\nimport { useEffect, useLayoutEffect, useRef, useState } from \"react\";\nimport { createPortal } from \"react-dom\";\nimport { Button } from \"../forms/Button\";\nimport { Spinner } from \"../feedback/Spinner\";\nimport { ChevronDown } from \"../icons/index\";\n\nexport interface ActionMenuItem {\n key: string;\n label: string;\n onSelect: () => void;\n icon?: ReactNode;\n danger?: boolean;\n disabled?: boolean;\n loading?: boolean;\n}\n\nexport interface ActionMenuProps {\n label: string;\n items: ActionMenuItem[];\n icon?: ReactNode;\n buttonSize?: \"xs\" | \"sm\" | \"md\" | \"lg\" | \"xl\";\n buttonVariant?: \"primary\" | \"secondary\" | \"danger\" | \"ghost\" | \"success\" | \"warning\" | \"info\" | \"muted-primary\" | \"outline-primary\" | \"outline-secondary\" | \"outline-danger\" | \"outline-success\" | \"link\";\n buttonClassName?: string;\n menuClassName?: string;\n menuStyle?: CSSProperties;\n fullWidth?: boolean;\n closeLabel?: string;\n}\n\nconst defaultMenuStyle: CSSProperties = {\n background: \"var(--color-ink-200)\",\n border: \"1px solid var(--color-border-hi)\",\n borderTop: \"2px solid var(--color-primary-300)\",\n boxShadow: \"0 16px 48px -8px rgba(0,0,0,0.45)\",\n maxHeight: \"min(320px, calc(100vh - 180px))\",\n};\n\nconst itemBaseClass =\n \"flex w-full items-center gap-2.5 border-l-2 border-transparent px-4 py-2.5 text-left text-sm transition-colors duration-100 hover:border-[var(--color-primary-300)] disabled:cursor-not-allowed disabled:opacity-40\";\n\ninterface MenuPosition {\n top?: number;\n bottom?: number;\n left: number;\n width: number;\n maxHeight?: number;\n}\n\nexport function ActionMenu({\n label,\n items,\n icon,\n buttonSize = \"sm\",\n buttonVariant = \"secondary\",\n buttonClassName = \"\",\n menuClassName,\n menuStyle,\n fullWidth = false,\n closeLabel,\n}: ActionMenuProps) {\n const [open, setOpen] = useState(false);\n const [pos, setPos] = useState<MenuPosition | null>(null);\n const btnRef = useRef<HTMLDivElement>(null);\n const menuRef = useRef<HTMLDivElement>(null);\n\n useLayoutEffect(() => {\n if (!open || !btnRef.current) return;\n\n const updatePosition = () => {\n const buttonElement = btnRef.current;\n if (!buttonElement) return;\n const rect = buttonElement.getBoundingClientRect();\n const viewportPadding = 8;\n const menuOffset = 4;\n const menuW = Math.min(320, window.innerWidth - viewportPadding * 2);\n const left = Math.max(\n viewportPadding,\n Math.min(rect.right - menuW, window.innerWidth - menuW - viewportPadding),\n );\n const estimatedMenuHeight = Math.min(320, items.length * 44 + 16);\n const spaceAbove = Math.max(0, rect.top - viewportPadding - menuOffset);\n const spaceBelow = Math.max(0, window.innerHeight - rect.bottom - viewportPadding - menuOffset);\n const preferBelow = spaceBelow >= estimatedMenuHeight || spaceBelow >= spaceAbove;\n\n if (preferBelow) {\n setPos({\n top: Math.min(rect.bottom + menuOffset, window.innerHeight - viewportPadding),\n left,\n width: menuW,\n maxHeight: Math.max(120, spaceBelow),\n });\n return;\n }\n\n setPos({\n bottom: Math.max(window.innerHeight - rect.top + menuOffset, viewportPadding),\n left,\n width: menuW,\n maxHeight: Math.max(120, spaceAbove),\n });\n };\n\n updatePosition();\n window.addEventListener(\"resize\", updatePosition);\n document.addEventListener(\"scroll\", updatePosition, true);\n return () => {\n window.removeEventListener(\"resize\", updatePosition);\n document.removeEventListener(\"scroll\", updatePosition, true);\n };\n }, [items.length, open]);\n\n useEffect(() => {\n if (!open) return;\n function handle(e: MouseEvent | KeyboardEvent) {\n if (e instanceof KeyboardEvent) { if (e.key === \"Escape\") setOpen(false); return; }\n const target = e.target as Node;\n if (btnRef.current?.contains(target) || menuRef.current?.contains(target)) return;\n setOpen(false);\n }\n document.addEventListener(\"mousedown\", handle);\n document.addEventListener(\"keydown\", handle);\n return () => { document.removeEventListener(\"mousedown\", handle); document.removeEventListener(\"keydown\", handle); };\n }, [open]);\n\n const menuNode = open && pos ? (\n <>\n <div className=\"fixed inset-0 z-9998\" onClick={() => setOpen(false)} />\n <div\n ref={menuRef}\n className={menuClassName ?? \"overflow-auto\"}\n style={{\n position: \"fixed\",\n top: pos.top !== undefined ? pos.top : undefined,\n bottom: pos.bottom !== undefined ? pos.bottom : undefined,\n left: pos.left,\n width: pos.width,\n maxWidth: \"calc(100vw - 16px)\",\n zIndex: 9999,\n ...defaultMenuStyle,\n maxHeight: pos.maxHeight ?? defaultMenuStyle.maxHeight,\n ...menuStyle,\n }}\n >\n {items.map((item, index) => (\n <div key={item.key}>\n {index > 0 && item.danger ? <div style={{ borderTop: \"1px solid var(--color-border)\" }} /> : null}\n <button\n type=\"button\"\n className={itemBaseClass}\n style={{ color: item.danger ? \"var(--color-warn)\" : \"var(--color-txt-2)\" }}\n disabled={item.disabled || item.loading}\n onClick={() => {\n setOpen(false);\n item.onSelect();\n }}\n >\n {item.loading ? (\n <Spinner color=\"text-[var(--color-txt-3)]\" />\n ) : (\n <span className={item.danger ? \"shrink-0 text-warn\" : \"shrink-0 text-primary-300\"}>{item.icon}</span>\n )}\n <span>{item.label}</span>\n </button>\n </div>\n ))}\n </div>\n </>\n ) : null;\n\n return (\n <div ref={btnRef} className={fullWidth ? \"relative w-full\" : \"relative inline-block max-w-full\"}>\n <Button\n size={buttonSize}\n variant={buttonVariant}\n icon={icon}\n iconRight={<ChevronDown size={11} />}\n onClick={() => setOpen(value => !value)}\n className={buttonClassName}\n fullWidth={fullWidth}\n >\n {label}\n </Button>\n {typeof document !== \"undefined\" ? createPortal(menuNode, document.body) : null}\n </div>\n );\n}\n","import { useMemo, useState, type ReactNode } from \"react\";\nimport { ChevronDown, ChevronUp } from \"../icons/index\";\nimport { DataTableRow } from \"./DataTableRow\";\nimport type { Column, ColumnAlign, ServerSort, SortDirection, SortState } from \"./types\";\n\nconst ALIGN_CLASS: Record<ColumnAlign, string> = {\n left: \"text-left\",\n center: \"text-center\",\n right: \"text-right\",\n};\n\nexport interface DataTableProps<T> {\n data: T[];\n columns: Column<T>[];\n /** Stable unique key per row. */\n rowKey: (row: T) => string;\n isLoading?: boolean;\n /** Rendered (inside a full-width row) when there is no data. */\n emptyState?: ReactNode;\n onRowClick?: (row: T) => void;\n /** Number of skeleton rows shown while loading. Defaults to 8. */\n loadingRows?: number;\n /**\n * When provided, renders an extra right-aligned column at the end of every\n * row. The function receives the row and must return a `ReactNode` (e.g.\n * action buttons). When omitted, no extra column is added.\n */\n rowActions?: (row: T) => ReactNode;\n /**\n * When provided, disables internal client-side sort and delegates sorting to\n * the caller. Clicking a sortable column header calls `onSort(column.id)`.\n * `aria-sort` reflects `field` and `dir`.\n */\n serverSort?: ServerSort;\n /**\n * When provided, renders the node below the `<table>` inside the outer\n * border wrapper. No styling is added — callers own all padding/layout.\n */\n footer?: ReactNode;\n /**\n * When provided:\n * - The `<table>` is hidden on small screens (`hidden md:table`).\n * - A `<div className=\"md:hidden\">` is rendered before the table, mapping\n * each row to a card via this function (keyed by `rowKey(row)`).\n */\n mobileCard?: (row: T) => ReactNode;\n}\n\nfunction compareValues(\n a: ReturnType<NonNullable<Column<unknown>[\"sortAccessor\"]>>,\n b: ReturnType<NonNullable<Column<unknown>[\"sortAccessor\"]>>,\n): number {\n if (a == null && b == null) return 0;\n if (a == null) return -1;\n if (b == null) return 1;\n if (a instanceof Date && b instanceof Date) return a.getTime() - b.getTime();\n if (typeof a === \"number\" && typeof b === \"number\") return a - b;\n if (typeof a === \"boolean\" && typeof b === \"boolean\") return Number(a) - Number(b);\n return String(a).localeCompare(String(b));\n}\n\nfunction ariaSort(active: boolean, direction: SortDirection): \"ascending\" | \"descending\" | \"none\" {\n if (!active) return \"none\";\n return direction === \"asc\" ? \"ascending\" : \"descending\";\n}\n\n/**\n * Generic, accessible, client-sortable table.\n *\n * - Pass already-translated `ReactNode`s for headers and `emptyState`; the\n * component never hardcodes user-facing strings (full i18n compatibility).\n * - Sorting toggles asc/desc on sortable columns and is purely client-side\n * unless `serverSort` is provided.\n * - Rows are memoized and the sorted view is memoized via `useMemo`.\n * - Optional `rowActions`, `serverSort`, `footer`, and `mobileCard` props are\n * all additive — existing usages continue to work with zero changes.\n */\nexport function DataTable<T>({\n data,\n columns,\n rowKey,\n isLoading = false,\n emptyState,\n onRowClick,\n loadingRows = 8,\n rowActions,\n serverSort,\n footer,\n mobileCard,\n}: DataTableProps<T>) {\n const [sort, setSort] = useState<SortState | null>(null);\n\n // When serverSort is active, skip client-side sort entirely.\n const sortedData = useMemo(() => {\n if (serverSort) return data;\n if (!sort) return data;\n const column = columns.find((c) => c.id === sort.columnId);\n if (!column?.sortAccessor) return data;\n const accessor = column.sortAccessor;\n const factor = sort.direction === \"asc\" ? 1 : -1;\n return [...data].sort((a, b) => compareValues(accessor(a), accessor(b)) * factor);\n }, [data, columns, sort, serverSort]);\n\n const toggleSort = (columnId: string) => {\n if (serverSort) {\n serverSort.onSort(columnId);\n return;\n }\n setSort((prev) => {\n if (prev?.columnId !== columnId) return { columnId, direction: \"asc\" };\n return { columnId, direction: prev.direction === \"asc\" ? \"desc\" : \"asc\" };\n });\n };\n\n const hasActions = rowActions !== undefined;\n const colCount = columns.length + (hasActions ? 1 : 0);\n const tableClass = mobileCard !== undefined ? \"hidden md:table w-full text-sm table-collapse\" : \"w-full text-sm table-collapse\";\n\n return (\n <div className=\"border border-border overflow-x-auto\">\n {/* Mobile card slot — only present when mobileCard is provided */}\n {mobileCard !== undefined && (\n <div className=\"md:hidden\">\n {isLoading\n ? Array.from({ length: loadingRows }).map((_, i) => (\n <div key={i} className=\"h-16 animate-pulse bg-ink-300\" />\n ))\n : sortedData.length === 0\n ? emptyState\n : sortedData.map((row) => (\n <div key={rowKey(row)}>{mobileCard(row)}</div>\n ))}\n </div>\n )}\n\n <table className={tableClass}>\n <thead>\n <tr className=\"border-b border-border bg-ink-300\">\n {columns.map((column) => {\n const baseClass = `px-3 py-2.5 ${ALIGN_CLASS[column.align ?? \"left\"]} font-mono text-[11px] tracking-[.08em] text-txt-4 font-semibold whitespace-nowrap`;\n\n if (!column.sortable || !column.sortAccessor) {\n return (\n <th key={column.id} scope=\"col\" className={baseClass}>\n {column.header}\n </th>\n );\n }\n\n // aria-sort: serverSort drives the active column; fall back to local sort state.\n const active = serverSort\n ? serverSort.field === column.id\n : sort?.columnId === column.id;\n const direction = serverSort\n ? serverSort.dir\n : (sort?.direction ?? \"asc\");\n\n return (\n <th\n key={column.id}\n scope=\"col\"\n aria-sort={ariaSort(active, direction)}\n className={baseClass}\n >\n <button\n type=\"button\"\n onClick={() => toggleSort(column.id)}\n className={`inline-flex items-center gap-1 select-none transition-colors hover:text-txt-1 ${\n active ? \"text-txt-1\" : \"\"\n }`}\n >\n {column.header}\n {active &&\n (direction === \"asc\" ? <ChevronUp size={12} /> : <ChevronDown size={12} />)}\n </button>\n </th>\n );\n })}\n {hasActions && (\n <th scope=\"col\" className=\"px-3 py-2.5 text-right font-mono text-[11px] tracking-[.08em] text-txt-4 font-semibold whitespace-nowrap\" />\n )}\n </tr>\n </thead>\n <tbody>\n {isLoading ? (\n Array.from({ length: loadingRows }).map((_, rowIndex) => (\n <tr key={rowIndex} className=\"border-b border-border\">\n {Array.from({ length: colCount }).map((__, colIndex) => (\n <td key={colIndex} className=\"px-3 py-2\">\n <div className=\"h-4 bg-ink-300 rounded animate-pulse w-24\" />\n </td>\n ))}\n </tr>\n ))\n ) : sortedData.length === 0 ? (\n <tr>\n <td colSpan={colCount} className=\"px-4 py-10 text-center text-txt-4 text-sm font-mono\">\n {emptyState}\n </td>\n </tr>\n ) : (\n sortedData.map((row) => (\n <DataTableRow\n key={rowKey(row)}\n row={row}\n columns={columns}\n onRowClick={onRowClick}\n rowActions={rowActions}\n />\n ))\n )}\n </tbody>\n </table>\n\n {footer !== undefined && footer}\n </div>\n );\n}\n","import { memo, type ReactNode } from \"react\";\nimport type { Column, ColumnAlign } from \"./types\";\n\nconst ALIGN_CLASS: Record<ColumnAlign, string> = {\n left: \"text-left\",\n center: \"text-center\",\n right: \"text-right\",\n};\n\ninterface DataTableRowProps<T> {\n row: T;\n columns: Column<T>[];\n onRowClick?: (row: T) => void;\n rowActions?: (row: T) => ReactNode;\n}\n\nfunction DataTableRowInner<T>({ row, columns, onRowClick, rowActions }: DataTableRowProps<T>) {\n const clickable = Boolean(onRowClick);\n return (\n <tr\n onClick={clickable ? () => onRowClick?.(row) : undefined}\n className={`border-b border-border transition-colors hover:bg-ink-300/30 ${\n clickable ? \"cursor-pointer\" : \"\"\n }`}\n >\n {columns.map((column) => (\n <td\n key={column.id}\n className={`px-3 py-2 text-xs text-txt-3 ${ALIGN_CLASS[column.align ?? \"left\"]} ${\n column.className ?? \"\"\n }`}\n >\n {column.cell(row)}\n </td>\n ))}\n {rowActions !== undefined && (\n <td className=\"px-3 py-2 text-right\">{rowActions(row)}</td>\n )}\n </tr>\n );\n}\n\n/**\n * Memoized row. Re-renders only when its `row`, `columns`, or `onRowClick`\n * reference changes — keeping large lists cheap to re-render.\n *\n * `memo` strips generics, so we re-assert the generic signature on the export.\n */\nexport const DataTableRow = memo(DataTableRowInner) as typeof DataTableRowInner;\n"],"mappings":"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","names":["jsx","jsxs","jsxs","jsx","jsx","jsxs","jsx","jsxs","jsx","jsxs","jsx","jsxs","jsx","jsxs","jsx","jsxs","jsx","jsx","jsx","jsxs","jsx","jsx","jsx","jsx","jsx","jsx","jsxs","useId","useState","jsx","jsxs","sizeMap","jsx","jsxs","useState","jsx","jsxs","useState","useState","jsx","jsxs","useState","jsx","jsxs","jsx","jsxs","useId","createPortal","jsx","jsxs","useId","createPortal","createPortal","jsx","jsxs","createPortal","jsx","jsxs","jsx","jsx","jsx","jsxs","jsx","variantClasses","jsx","jsxs","jsx","jsxs","className","jsx","jsxs","jsx","jsxs","jsx","jsxs","jsx","jsx","useEffect","useRef","useState","createPortal","jsx","jsxs","useState","useRef","useEffect","createPortal","useMemo","useState","jsx","jsxs","jsx","jsxs","ALIGN_CLASS","useState","useMemo"]}
|
|
1
|
+
{"version":3,"sources":["../src/components/icons/BaseIcons.tsx","../src/components/icons/NavigationIcons.tsx","../src/components/icons/ActionIcons.tsx","../src/components/icons/AuthIcons.tsx","../src/components/icons/FeedbackIcons.tsx","../src/components/icons/SettingsIcons.tsx","../src/components/icons/LogoIcons.tsx","../src/components/icons/FormsIcons.tsx","../src/components/icons/StatusIcons.tsx","../src/components/icons/LayoutIcons.tsx","../src/components/forms/Button.tsx","../src/components/feedback/Spinner.tsx","../src/components/forms/Input.tsx","../src/components/forms/Select.tsx","../src/components/forms/Textarea.tsx","../src/components/forms/FieldLabel.tsx","../src/components/forms/FieldHint.tsx","../src/components/forms/Checkbox.tsx","../src/components/forms/RadioButton.tsx","../src/components/feedback/PageSpinner.tsx","../src/components/feedback/Toast.tsx","../src/components/feedback/ToastProvider.tsx","../src/components/feedback/FormError.tsx","../src/components/feedback/ErrorBoundary.tsx","../src/components/modals/BaseModal.tsx","../src/components/modals/ConfirmDialog.tsx","../src/components/shared/Tooltip.tsx","../src/components/shared/Card.tsx","../src/components/shared/Skeleton.tsx","../src/components/shared/SkeletonBlocks.tsx","../src/components/shared/Badge.tsx","../src/components/shared/EmptyState.tsx","../src/components/shared/InfoBanner.tsx","../src/components/shared/PageHeader.tsx","../src/components/shared/MetricCard.tsx","../src/components/shared/StatGrid.tsx","../src/components/shared/SectionCard.tsx","../src/components/shared/SearchInput.tsx","../src/components/shared/Pagination.tsx","../src/components/shared/SectionTitle.tsx","../src/components/shared/StatusBadge.tsx","../src/components/shared/ActionMenu.tsx","../src/components/table/DataTable.tsx","../src/components/table/DataTableRow.tsx","../src/components/marketing/MarketingShell.tsx","../src/components/marketing/HeroFrame.tsx","../src/components/marketing/FeatureCard.tsx","../src/components/marketing/FeatureGrid.tsx","../src/components/marketing/CTASection.tsx","../src/components/marketing/MockupFrame.tsx","../src/components/marketing/ComparisonTable.tsx","../src/components/layout/AppShell.tsx","../src/components/layout/SplitPane.tsx","../src/components/layout/Stack.tsx","../src/components/layout/Cluster.tsx","../src/components/navigation/Breadcrumbs.tsx","../src/components/navigation/SidebarNav.tsx","../src/components/navigation/TopNav.tsx","../src/components/disclosure/Tabs.tsx","../src/components/disclosure/Accordion.tsx","../src/components/disclosure/Stepper.tsx","../src/components/overlays/Drawer.tsx","../src/components/overlays/Popover.tsx","../src/components/overlays/CommandMenu.tsx","../src/components/forms/FormField.tsx","../src/components/forms/Switch.tsx","../src/components/forms/ToggleGroup.tsx","../src/components/forms/InputGroup.tsx","../src/components/feedback/Alert.tsx","../src/components/feedback/Progress.tsx","../src/components/shared/Avatar.tsx","../src/components/shared/Kbd.tsx","../src/components/shared/Timeline.tsx","../src/components/shared/KeyValueList.tsx","../src/components/shared/CodeBlock.tsx","../src/components/marketing/LogoCloud.tsx","../src/components/marketing/TestimonialCard.tsx","../src/components/marketing/PricingCard.tsx","../src/components/marketing/StatsBand.tsx","../src/presets/framework.ts","../src/components/layout/Container.tsx","../src/components/layout/Surface.tsx","../src/components/layout/Divider.tsx","../src/components/layout/ResponsiveGrid.tsx","../src/components/data-display/Sparkline.tsx","../src/components/data-display/BarList.tsx","../src/components/data-display/DonutMetric.tsx","../src/components/data-display/FilterChip.tsx","../src/components/data-display/DataToolbar.tsx","../src/components/framework/ResourceCard.tsx","../src/components/framework/IntegrationCard.tsx","../src/components/framework/HealthIndicator.tsx","../src/components/framework/AuditLog.tsx","../src/components/framework/KanbanBoard.tsx","../src/components/framework/AccessMatrix.tsx","../src/components/framework/CalendarGrid.tsx","../src/components/forms/Slider.tsx","../src/components/forms/FileDropzone.tsx","../src/components/forms/PasswordInput.tsx","../src/components/forms/TextareaCounter.tsx","../src/components/feedback/Callout.tsx","../src/components/feedback/LoadingOverlay.tsx","../src/components/feedback/NotificationList.tsx","../src/components/layout/MasonryGrid.tsx","../src/components/layout/PageRail.tsx","../src/components/layout/StickyBar.tsx","../src/components/forms/Combobox.tsx","../src/components/forms/DateRangePicker.tsx","../src/components/forms/ColorSwatchPicker.tsx","../src/components/forms/RatingInput.tsx","../src/components/data-display/ScoreRing.tsx","../src/components/data-display/HeatmapGrid.tsx","../src/components/data-display/FunnelChart.tsx","../src/components/data-display/ComparisonMeter.tsx","../src/components/framework/ActivityFeed.tsx","../src/components/framework/InboxList.tsx","../src/components/framework/ApprovalQueue.tsx","../src/components/framework/SLAStatus.tsx","../src/components/framework/FeatureFlagTable.tsx","../src/components/framework/PlanUsage.tsx","../src/components/marketing/AnnouncementBar.tsx","../src/components/marketing/FAQSection.tsx","../src/components/marketing/RoadmapList.tsx","../src/components/feedback/InlineStatus.tsx","../src/showcase/TapizDocsPage.tsx"],"sourcesContent":["import type React from \"react\";\n\nexport interface IconProps {\n size?: number;\n className?: string;\n style?: React.CSSProperties;\n}\n\nexport const base = (_d: unknown, size: number, style?: React.CSSProperties) => ({\n width: size,\n height: size,\n viewBox: \"0 0 24 24\",\n fill: \"none\",\n stroke: \"currentColor\",\n strokeWidth: 1.75,\n strokeLinecap: \"round\" as const,\n strokeLinejoin: \"round\" as const,\n style,\n});\n","import { IconProps, base } from \"./BaseIcons\";\n\nexport const Clipboard = ({ size = 18, className, style }: IconProps) => (\n <svg {...base(null, size, style)} className={className}>\n <rect x=\"8\" y=\"2\" width=\"8\" height=\"4\" rx=\"1\" />\n <path d=\"M16 4h2a2 2 0 0 1 2 2v14a2 2 0 0 1-2 2H6a2 2 0 0 1-2-2V6a2 2 0 0 1 2-2h2\" />\n <path d=\"M12 11h4M12 16h4M8 11h.01M8 16h.01\" />\n </svg>\n);\n\nexport const Home = ({ size = 18, className, style }: IconProps) => (\n <svg {...base(null, size, style)} className={className}>\n <path d=\"M3 9l9-7 9 7v11a2 2 0 0 1-2 2H5a2 2 0 0 1-2-2z\" />\n <polyline points=\"9 22 9 12 15 12 15 22\" />\n </svg>\n);\n\nexport const Scan = ({ size = 18, className, style }: IconProps) => (\n <svg {...base(null, size, style)} className={className}>\n <path d=\"M3 7V5a2 2 0 0 1 2-2h2M17 3h2a2 2 0 0 1 2 2v2M21 17v2a2 2 0 0 1-2 2h-2M7 21H5a2 2 0 0 1-2-2v-2\" />\n <line x1=\"7\" y1=\"12\" x2=\"17\" y2=\"12\" />\n </svg>\n);\n\nexport const Users = ({ size = 18, className, style }: IconProps) => (\n <svg {...base(null, size, style)} className={className}>\n <path d=\"M17 21v-2a4 4 0 0 0-4-4H5a4 4 0 0 0-4 4v2\" />\n <circle cx=\"9\" cy=\"7\" r=\"4\" />\n <path d=\"M23 21v-2a4 4 0 0 0-3-3.87M16 3.13a4 4 0 0 1 0 7.75\" />\n </svg>\n);\n\nexport const Book = ({ size = 18, className, style }: IconProps) => (\n <svg {...base(null, size, style)} className={className}>\n <path d=\"M4 19.5A2.5 2.5 0 0 1 6.5 17H20\" />\n <path d=\"M6.5 2H20v20H6.5A2.5 2.5 0 0 1 4 19.5v-15A2.5 2.5 0 0 1 6.5 2z\" />\n </svg>\n);\n\nexport const Calendar = ({ size = 18, className, style }: IconProps) => (\n <svg {...base(null, size, style)} className={className}>\n <rect x=\"3\" y=\"4\" width=\"18\" height=\"18\" rx=\"2\" />\n <path d=\"M16 2v4M8 2v4M3 10h18\" />\n </svg>\n);\n\nexport const CheckSquare = ({ size = 18, className, style }: IconProps) => (\n <svg {...base(null, size, style)} className={className}>\n <polyline points=\"9 11 12 14 22 4\" />\n <path d=\"M21 12v7a2 2 0 0 1-2 2H5a2 2 0 0 1-2-2V5a2 2 0 0 1 2-2h11\" />\n </svg>\n);\n\nexport const BarChart = ({ size = 18, className, style }: IconProps) => (\n <svg {...base(null, size, style)} className={className}>\n <line x1=\"18\" y1=\"20\" x2=\"18\" y2=\"10\" />\n <line x1=\"12\" y1=\"20\" x2=\"12\" y2=\"4\" />\n <line x1=\"6\" y1=\"20\" x2=\"6\" y2=\"14\" />\n <line x1=\"2\" y1=\"20\" x2=\"22\" y2=\"20\" />\n </svg>\n);\n\nexport const Table = ({ size = 18, className, style }: IconProps) => (\n <svg {...base(null, size, style)} className={className}>\n <rect x=\"3\" y=\"3\" width=\"18\" height=\"18\" rx=\"2\" />\n <path d=\"M3 9h18M9 21V9\" />\n </svg>\n);\n\nexport const Report = ({ size = 18, className, style }: IconProps) => (\n <svg {...base(null, size, style)} className={className}>\n <path d=\"M14 2H6a2 2 0 0 0-2 2v16a2 2 0 0 0 2 2h12a2 2 0 0 0 2-2V8z\" />\n <polyline points=\"14 2 14 8 20 8\" />\n <line x1=\"16\" y1=\"13\" x2=\"8\" y2=\"13\" />\n <line x1=\"16\" y1=\"17\" x2=\"8\" y2=\"17\" />\n <polyline points=\"10 9 9 9 8 9\" />\n </svg>\n);\n\nexport const QrCode = ({ size = 18, className, style }: IconProps) => (\n <svg {...base(null, size, style)} className={className}>\n <rect x=\"3\" y=\"3\" width=\"7\" height=\"7\" />\n <rect x=\"14\" y=\"3\" width=\"7\" height=\"7\" />\n <rect x=\"3\" y=\"14\" width=\"7\" height=\"7\" />\n <path d=\"M14 14h3v3h-3zM17 17h3v3h-3zM14 17h3\" />\n </svg>\n);\n\nexport const Layers = ({ size = 18, className, style }: IconProps) => (\n <svg {...base(null, size, style)} className={className}>\n <polygon points=\"12 2 2 7 12 12 22 7 12 2\" />\n <polyline points=\"2 12 12 17 22 12\" />\n <polyline points=\"2 17 12 22 22 17\" />\n </svg>\n);\n\nexport const OfficeHours = ({ size = 18, className, style }: IconProps) => (\n <svg {...base(null, size, style)} className={className}>\n <path d=\"M8 3h8\" />\n <path d=\"M9 2v2M15 2v2\" />\n <rect x=\"4\" y=\"5\" width=\"16\" height=\"15\" rx=\"2\" />\n <path d=\"M4 10h16\" />\n <path d=\"M12 13v4\" />\n <path d=\"M12 13l2.5-1.5\" />\n </svg>\n);\n\nexport const FileUpload = ({ size = 18, className, style }: IconProps) => (\n <svg {...base(null, size, style)} className={className}>\n <path d=\"M14 2H6a2 2 0 0 0-2 2v16a2 2 0 0 0 2 2h12a2 2 0 0 0 2-2V8z\" />\n <polyline points=\"14 2 14 8 20 8\" />\n <polyline points=\"12 18 12 12\" />\n <polyline points=\"9 15 12 12 15 15\" />\n </svg>\n);\n\nexport const University = ({ size = 18, className, style }: IconProps) => (\n <svg {...base(null, size, style)} className={className}>\n <path d=\"M12 3l9 3H3l9-3z\" />\n <line x1=\"3\" y1=\"6\" x2=\"21\" y2=\"6\" />\n <line x1=\"5\" y1=\"6\" x2=\"5\" y2=\"18\" />\n <line x1=\"10\" y1=\"6\" x2=\"10\" y2=\"18\" />\n <line x1=\"14\" y1=\"6\" x2=\"14\" y2=\"18\" />\n <line x1=\"19\" y1=\"6\" x2=\"19\" y2=\"18\" />\n <line x1=\"2\" y1=\"18\" x2=\"22\" y2=\"18\" />\n <line x1=\"2\" y1=\"21\" x2=\"22\" y2=\"21\" />\n </svg>\n);\n\nexport const Faculty = ({ size = 18, className, style }: IconProps) => (\n <svg {...base(null, size, style)} className={className} strokeWidth={1.5}>\n {/* central tower */}\n <rect x=\"7\" y=\"2\" width=\"10\" height=\"19\" />\n {/* left wing */}\n <rect x=\"2\" y=\"8\" width=\"5\" height=\"13\" />\n {/* right wing */}\n <rect x=\"17\" y=\"8\" width=\"5\" height=\"13\" />\n {/* tower windows row 1 */}\n <rect x=\"9\" y=\"4\" width=\"2.5\" height=\"2.5\" />\n <rect x=\"12.5\" y=\"4\" width=\"2.5\" height=\"2.5\" />\n {/* tower windows row 2 */}\n <rect x=\"9\" y=\"8\" width=\"2.5\" height=\"2.5\" />\n <rect x=\"12.5\" y=\"8\" width=\"2.5\" height=\"2.5\" />\n {/* entrance */}\n <rect x=\"10\" y=\"15\" width=\"4\" height=\"6\" />\n {/* base line */}\n <line x1=\"1\" y1=\"21\" x2=\"23\" y2=\"21\" />\n </svg>\n);\n\nexport const GraduationCap = ({ size = 18, className, style }: IconProps) => (\n <svg {...base(null, size, style)} className={className}>\n <path d=\"M22 10v6M2 10l10-5 10 5-10 5z\" />\n <path d=\"M6 12v5c0 1.657 2.686 3 6 3s6-1.343 6-3v-5\" />\n </svg>\n);\n\nexport const Globe = ({ size = 18, className, style }: IconProps) => (\n <svg {...base(null, size, style)} className={className}>\n <circle cx=\"12\" cy=\"12\" r=\"10\" />\n <path d=\"M2 12h20M12 2a15.3 15.3 0 0 1 4 10 15.3 15.3 0 0 1-4 10 15.3 15.3 0 0 1-4-10 15.3 15.3 0 0 1 4-10z\" />\n </svg>\n);\n\nexport const CreditCard = ({ size = 14, className, style }: IconProps) => (\n <svg {...base(null, size, style)} className={className} strokeWidth={1.8}>\n <rect x=\"2\" y=\"5\" width=\"20\" height=\"14\" rx=\"2\" />\n <path d=\"M2 10h20\" />\n </svg>\n);\n\nexport const HelpCircle = ({ size = 14, className, style }: IconProps) => (\n <svg {...base(null, size, style)} className={className} strokeWidth={1.8}>\n <circle cx=\"12\" cy=\"12\" r=\"10\" />\n <path d=\"M9.09 9a3 3 0 0 1 5.83 1c0 2-3 3-3 3\" />\n <circle cx=\"12\" cy=\"17\" r=\".5\" fill=\"currentColor\" stroke=\"none\" />\n </svg>\n);\n\nexport const NavQrAttendance = ({ size = 15, className, style }: IconProps) => (\n <svg {...base(null, size, style)} className={className} strokeWidth={1.8}>\n <rect x=\"3\" y=\"3\" width=\"7\" height=\"7\" rx=\"1.5\" /><rect x=\"5.5\" y=\"5.5\" width=\"2\" height=\"2\" rx=\".4\" fill=\"currentColor\" stroke=\"none\" />\n <rect x=\"14\" y=\"3\" width=\"7\" height=\"7\" rx=\"1.5\" /><rect x=\"16.5\" y=\"5.5\" width=\"2\" height=\"2\" rx=\".4\" fill=\"currentColor\" stroke=\"none\" />\n <rect x=\"3\" y=\"14\" width=\"7\" height=\"7\" rx=\"1.5\" /><rect x=\"5.5\" y=\"16.5\" width=\"2\" height=\"2\" rx=\".4\" fill=\"currentColor\" stroke=\"none\" />\n <polyline points=\"14,16 16,18 20,13\" />\n </svg>\n);\n\nexport const NavScoresheet = ({ size = 15, className, style }: IconProps) => (\n <svg {...base(null, size, style)} className={className} strokeWidth={1.3}>\n <rect x=\"3\" y=\"3\" width=\"18\" height=\"18\" rx=\"2\" />\n <path d=\"M3 9h18M3 14h18M9 9v9M15 9v9\" />\n </svg>\n);\n\nexport const NavAnalytics = ({ size = 15, className, style }: IconProps) => (\n <svg {...base(null, size, style)} className={className} strokeWidth={1.8}>\n <path d=\"M3 3v18h18\" /><path d=\"M7 16l4-5 4 3 5-6\" />\n </svg>\n);\n\nexport const NavSecurity = ({ size = 15, className, style }: IconProps) => (\n <svg {...base(null, size, style)} className={className} strokeWidth={1.8}>\n <path d=\"M12 2L4 6v6c0 5.25 3.5 9.74 8 11 4.5-1.26 8-5.75 8-11V6L12 2Z\" />\n <path d=\"M9 12l2 2 4-4\" />\n </svg>\n);\n","import { IconProps, base } from \"./BaseIcons\";\n\nexport const Edit = ({ size = 14, className, style }: IconProps) => (\n <svg {...base(null, size, style)} className={className}>\n <path d=\"M11 4H4a2 2 0 0 0-2 2v14a2 2 0 0 0 2 2h14a2 2 0 0 0 2-2v-7\" />\n <path d=\"M18.5 2.5a2.121 2.121 0 0 1 3 3L12 15l-4 1 1-4 9.5-9.5z\" />\n </svg>\n);\n\nexport const Trash = ({ size = 14, className, style }: IconProps) => (\n <svg {...base(null, size, style)} className={className}>\n <polyline points=\"3 6 5 6 21 6\" />\n <path d=\"M19 6l-1 14H6L5 6M10 11v6M14 11v6M9 6V4h6v2\" />\n </svg>\n);\n\nexport const Plus = ({ size = 16, className, style }: IconProps) => (\n <svg {...base(null, size, style)} className={className}>\n <line x1=\"12\" y1=\"5\" x2=\"12\" y2=\"19\" />\n <line x1=\"5\" y1=\"12\" x2=\"19\" y2=\"12\" />\n </svg>\n);\n\nexport const Download = ({ size = 16, className, style }: IconProps) => (\n <svg {...base(null, size, style)} className={className}>\n <path d=\"M21 15v4a2 2 0 0 1-2 2H5a2 2 0 0 1-2-2v-4\" />\n <polyline points=\"7 10 12 15 17 10\" />\n <line x1=\"12\" y1=\"15\" x2=\"12\" y2=\"3\" />\n </svg>\n);\n\nexport const Refresh = ({ size = 15, className, spinning, style }: IconProps & { spinning?: boolean }) => (\n <svg {...base(null, size, style)} className={`${spinning ? \"animate-spin\" : \"\"} ${className ?? \"\"}`}>\n <path d=\"M3 12a9 9 0 1 0 9-9 9.75 9.75 0 0 0-6.74 2.74L3 8\" />\n <path d=\"M3 3v5h5\" />\n </svg>\n);\n\nexport const UserPlus = ({ size = 14, className, style }: IconProps) => (\n <svg {...base(null, size, style)} className={className}>\n <path d=\"M16 21v-2a4 4 0 0 0-4-4H6a4 4 0 0 0-4 4v2\" />\n <circle cx=\"9\" cy=\"7\" r=\"4\" />\n <line x1=\"19\" y1=\"8\" x2=\"19\" y2=\"14\" />\n <line x1=\"22\" y1=\"11\" x2=\"16\" y2=\"11\" />\n </svg>\n);\n\nexport const UserMinus = ({ size = 14, className, style }: IconProps) => (\n <svg {...base(null, size, style)} className={className}>\n <path d=\"M16 21v-2a4 4 0 0 0-4-4H6a4 4 0 0 0-4 4v2\" />\n <circle cx=\"9\" cy=\"7\" r=\"4\" />\n <line x1=\"22\" y1=\"11\" x2=\"16\" y2=\"11\" />\n </svg>\n);\n\nexport const UserCog = ({ size = 14, className, style }: IconProps) => (\n <svg {...base(null, size, style)} className={className}>\n <path d=\"M16 21v-2a4 4 0 0 0-4-4H6a4 4 0 0 0-4 4v2\" />\n <circle cx=\"9\" cy=\"7\" r=\"4\" />\n <circle cx=\"19\" cy=\"19\" r=\"2\" />\n <path d=\"M19 15v2M19 21v2M15.27 16.27l1.42 1.42M22.31 21.31l-1.42-1.42M15 19h2M21 19h2M15.27 21.73l1.42-1.42M22.31 16.69l-1.42 1.42\" />\n </svg>\n);\n\nexport const Check = ({ size = 16, className, style }: IconProps) => (\n <svg {...base(null, size, style)} strokeWidth={2} className={className}>\n <polyline points=\"20 6 9 17 4 12\" />\n </svg>\n);\n\nexport const X = ({ size = 14, className, style }: IconProps) => (\n <svg {...base(null, size, style)} strokeWidth={2.5} className={className}>\n <line x1=\"18\" y1=\"6\" x2=\"6\" y2=\"18\" />\n <line x1=\"6\" y1=\"6\" x2=\"18\" y2=\"18\" />\n </svg>\n);\n\n\nexport const Menu = ({ size = 18, className, style }: IconProps) => (\n <svg {...base(null, size, style)} strokeWidth={2} className={className}>\n <line x1=\"3\" y1=\"6\" x2=\"21\" y2=\"6\" /><line x1=\"3\" y1=\"12\" x2=\"21\" y2=\"12\" /><line x1=\"3\" y1=\"18\" x2=\"21\" y2=\"18\" />\n </svg>\n);\n\nexport const Grid = ({ size = 14, className, style }: IconProps) => (\n <svg {...base(null, size, style)} strokeWidth={2} className={className}>\n <rect x=\"3\" y=\"3\" width=\"7\" height=\"7\" />\n <rect x=\"14\" y=\"3\" width=\"7\" height=\"7\" />\n <rect x=\"3\" y=\"14\" width=\"7\" height=\"7\" />\n <rect x=\"14\" y=\"14\" width=\"7\" height=\"7\" />\n </svg>\n);\n\nexport const GitCompare = ({ size = 14, className, style }: IconProps) => (\n <svg {...base(null, size, style)} strokeWidth={2} className={className}>\n <path d=\"M18 21l4-4-4-4\" />\n <path d=\"M6 21l-4-4 4-4\" />\n <path d=\"M14 3l4 4-4 4\" />\n <path d=\"M2 21V3a2 2 0 0 1 2-2h6\" />\n <path d=\"M22 21V7a2 2 0 0 0-2-2h-6\" />\n </svg>\n);\nexport const History = ({ size = 14, className, style }: IconProps) => (\n <svg {...base(null, size, style)} className={className}>\n <path d=\"M3 12a9 9 0 1 0 9-9 9.75 9.75 0 0 0-6.74 2.74L3 8\" />\n <path d=\"M3 3v5h5\" />\n <path d=\"M12 7v5l4 2\" />\n </svg>\n);\n\nexport const RotateCcw = ({ size = 14, className, style }: IconProps) => (\n <svg {...base(null, size, style)} className={className}>\n <path d=\"M3 12a9 9 0 1 0 9-9 9.75 9.75 0 0 0-6.74 2.74L3 8\" />\n <path d=\"M3 3v5h5\" />\n </svg>\n);\n\nexport const Pdf = ({ size = 14, className, style }: IconProps) => (\n <svg\n width={size}\n height={size}\n viewBox=\"0 0 1920 1920\"\n fill=\"currentColor\"\n style={style}\n className={className}\n >\n <g fillRule=\"evenodd\">\n <path d=\"M1251.654 0c44.499 0 88.207 18.07 119.718 49.581l329.223 329.224c31.963 31.962 49.581 74.54 49.581 119.717V1920H169V0Zm-66.183 112.941H281.94V1807.06h1355.294V564.706H1185.47V112.94Zm112.94 23.379v315.445h315.445L1298.412 136.32Z\"/>\n <path d=\"M900.497 677.67c26.767 0 50.372 12.65 67.991 37.835 41.901 59.068 38.965 121.976 23.492 206.682-5.308 29.14.113 58.617 16.263 83.125 22.814 34.786 55.68 82.673 87.981 123.219 23.718 29.93 60.198 45.854 97.13 40.885 23.718-3.276 52.292-5.986 81.656-5.986 131.012 0 121.186 46.757 133.045 89.675 6.55 25.976 3.275 48.678-10.165 65.506-16.715 22.701-51.162 34.447-101.534 34.447-55.793 0-74.202-9.487-122.767-24.96-27.445-8.81-55.906-10.617-83.69-3.275-55.453 14.456-146.936 36.48-223.284 46.983-40.772 5.647-77.816 26.654-102.438 60.875-55.454 76.8-106.842 148.518-188.273 148.518-21.007 0-40.32-7.567-56.244-22.701-23.492-23.492-33.544-49.581-28.574-79.85 13.778-92.95 128.075-144.79 196.066-182.625 16.037-8.923 28.687-22.589 36.592-39.53l107.86-233.223c7.68-16.377 10.051-34.56 7.228-52.518-12.537-79.059-31.06-211.99 18.748-272.075 10.955-13.44 26.09-21.007 42.917-21.007Zm20.556 339.953c-43.257 126.607-119.718 264.282-129.996 280.32 92.273-43.37 275.916-65.28 275.916-65.28-92.386-88.998-145.92-215.04-145.92-215.04Z\"/>\n </g>\n </svg>\n);\n\nexport const Printer = ({ size = 14, className, style }: IconProps) => (\n <svg {...base(null, size, style)} className={className}>\n <path d=\"M6 9V3h12v6\" />\n <path d=\"M6 21h12v-6H6v6z\" />\n <path d=\"M18 9H6a2 2 0 0 0-2 2v6a2 2 0 0 0 2 2h12a2 2 0 0 0 2-2v-6a2 2 0 0 0-2-2z\" />\n <circle cx=\"17\" cy=\"13\" r=\"1\" />\n <path d=\"M8 13h3\" />\n </svg>\n);\n\nexport const ExternalLink = ({ size = 14, className, style }: IconProps) => (\n <svg {...base(null, size, style)} className={className}>\n <path d=\"M18 13v6a2 2 0 0 1-2 2H5a2 2 0 0 1-2-2V8a2 2 0 0 1 2-2h6\" />\n <polyline points=\"15 3 21 3 21 9\" />\n <line x1=\"10\" y1=\"14\" x2=\"21\" y2=\"3\" />\n </svg>\n);\n\nexport const Image = ({ size = 14, className, style }: IconProps) => (\n <svg {...base(null, size, style)} className={className}>\n <rect x=\"3\" y=\"3\" width=\"18\" height=\"18\" rx=\"2\" ry=\"2\" />\n <circle cx=\"8.5\" cy=\"8.5\" r=\"1.5\" />\n <polyline points=\"21 15 16 10 5 21\" />\n </svg>\n);\n\nexport const Star = ({ size = 14, className, style }: IconProps) => (\n <svg\n width={size}\n height={size}\n viewBox=\"0 0 24 24\"\n fill=\"currentColor\"\n style={style}\n className={className}\n >\n <path d=\"M12 2l3.09 6.26L22 9.27l-5 4.87 1.18 6.88L12 17.77l-6.18 3.25L7 14.14 2 9.27l6.91-1.01L12 2z\" />\n </svg>\n);\n\nexport const AppleIcon = ({ size = 20, className, style }: IconProps) => (\n <svg\n width={size}\n height={size}\n viewBox=\"0 0 814 1000\"\n fill=\"currentColor\"\n style={style}\n className={className}\n >\n <path d=\"M788.1 340.9c-5.8 4.5-108.2 62.2-108.2 190.5 0 148.4 130.3 200.9 134.2 202.2-.6 3.2-20.7 71.9-68.7 141.9-42.8 61.6-87.5 123.1-155.5 123.1s-85.5-39.5-164-39.5c-76 0-103.7 40.8-165.9 40.8s-105-38.8-155.8-103.2C115.1 757.2 61.9 645.7 61.9 540.4c0-168.3 109.8-257.3 217.3-257.3 59.7 0 109.7 39.9 147.6 39.9 36 0 92.8-42.3 158.8-42.3 25.7 0 108.2 2.6 168.3 78.2zm-104.5-166.2c31.4-37.9 54.3-91.1 54.3-144.3 0-7.1-.6-14.3-1.9-20.1-51.5 1.9-112.4 34.3-149.6 77.2-28.8 32.1-55.8 85.9-55.8 140.3 0 7.8 1.3 15.6 1.9 18.1 3.2.6 8.4 1.3 13.6 1.3 46.5 0 102.8-31.4 137.5-72.5z\" />\n </svg>\n);\n\nexport const GooglePlayIcon = ({ size = 20, className, style }: IconProps) => (\n <svg\n width={size}\n height={size}\n viewBox=\"0 0 512 512\"\n fill=\"currentColor\"\n style={style}\n className={className}\n >\n <path d=\"M325.3 234.3L104.6 13l280.8 161.2-60.1 60.1zM47 0C34 6.8 25.3 19.2 25.3 35.3v441.3c0 16.1 8.7 28.5 21.7 35.3l2.4 1.4 247.2-247v-5.8L47 0zm425.6 225.6l-58.9-34.1-65.7 64.5 65.7 64.5 60.1-34.1c17.1-9.8 17.1-25.9.8-60.8zM104.6 499l280.8-161.2-60.1-60.1L104.6 499z\" />\n </svg>\n);\n","import { IconProps, base } from \"./BaseIcons\";\n\nexport const Mail = ({ size = 16, className, style }: IconProps) => (\n <svg {...base(null, size, style)} className={className}>\n <rect x=\"2\" y=\"4\" width=\"20\" height=\"16\" rx=\"2\" />\n <path d=\"m22 7-8.97 5.7a1.94 1.94 0 0 1-2.06 0L2 7\" />\n </svg>\n);\n\nexport const LockIcon = ({ size = 16, className, style }: IconProps) => (\n <svg {...base(null, size, style)} className={className}>\n <rect x=\"3\" y=\"11\" width=\"18\" height=\"11\" rx=\"2\" />\n <path d=\"M7 11V7a5 5 0 0 1 10 0v4\" />\n </svg>\n);\n\nexport const TwoFAIcon = ({ size = 16, className, style }: IconProps) => (\n <svg\n {...base(null, size, style)}\n className={className}\n viewBox=\"0 0 24 24\"\n fill=\"none\"\n stroke=\"currentColor\"\n strokeWidth=\"2\"\n strokeLinecap=\"round\"\n strokeLinejoin=\"round\"\n >\n {/* Smartphone */}\n <rect x=\"5\" y=\"2\" width=\"14\" height=\"20\" rx=\"2\" ry=\"2\" />\n <line x1=\"12\" y1=\"18\" x2=\"12.01\" y2=\"18\" />\n {/* Key overlay */}\n <circle cx=\"10\" cy=\"10\" r=\"1.5\" />\n <line x1=\"11\" y1=\"10\" x2=\"16\" y2=\"10\" />\n <line x1=\"13\" y1=\"7.5\" x2=\"13\" y2=\"6\" />\n <line x1=\"15\" y1=\"8.5\" x2=\"15\" y2=\"7.5\" />\n </svg>\n);\n\nexport const FingerprintIcon = ({ size = 20, className, style }: IconProps) => (\n <svg\n {...base(null, size, style)}\n className={className}\n xmlns=\"http://www.w3.org/2000/svg\"\n viewBox=\"0 0 24 24\"\n fill=\"none\"\n stroke=\"currentColor\"\n strokeWidth=\"2.5\"\n strokeLinecap=\"round\"\n strokeLinejoin=\"round\"\n >\n <path d=\"M12 10a2 2 0 0 0-2 2c0 1.02-.1 2.51-.26 4\" />\n <path d=\"M14 13.12c0 2.38 0 6.38-1 8.88\" />\n <path d=\"M17.29 21.02c.12-.6.43-2.3.5-3.02\" />\n <path d=\"M2 12a10 10 0 0 1 18-6\" />\n <path d=\"M2 16h.01\" />\n <path d=\"M21.8 16c.2-2 .131-5.354 0-6\" />\n <path d=\"M5 19.5C5.5 18 6 15 6 12a6 6 0 0 1 .34-2\" />\n <path d=\"M8.65 22c.21-.66.45-1.32.57-2\" />\n <path d=\"M9 6.8a6 6 0 0 1 9 5.2v2\" />\n </svg>\n);\n\nexport const Eye = ({ size = 16, className, style }: IconProps) => (\n <svg {...base(null, size, style)} className={className}>\n <path d=\"M2 12s3-7 10-7 10 7 10 7-3 7-10 7-10-7-10-7z\" />\n <circle cx=\"12\" cy=\"12\" r=\"3\" />\n </svg>\n);\n\nexport const EyeOff = ({ size = 16, className, style }: IconProps) => (\n <svg {...base(null, size, style)} className={className}>\n <path d=\"M17.94 17.94A10.07 10.07 0 0 1 12 20c-7 0-10-8-10-8a18.45 18.45 0 0 1 5.06-5.94\" />\n <path d=\"M9.9 4.24A9.12 9.12 0 0 1 12 4c7 0 10 8 10 8a18.5 18.5 0 0 1-2.16 3.19\" />\n <line x1=\"1\" y1=\"1\" x2=\"23\" y2=\"23\" />\n </svg>\n);\n\nexport const User = ({ size = 16, className, style }: IconProps) => (\n <svg {...base(null, size, style)} className={className}>\n <path d=\"M20 21v-2a4 4 0 0 0-4-4H8a4 4 0 0 0-4 4v2\" />\n <circle cx=\"12\" cy=\"7\" r=\"4\" />\n </svg>\n);\n\nexport const UserCheck = ({ size = 14, className, style }: IconProps) => (\n <svg {...base(null, size, style)} className={className}>\n <path d=\"M16 21v-2a4 4 0 0 0-4-4H6a4 4 0 0 0-4 4v2\" />\n <circle cx=\"9\" cy=\"7\" r=\"4\" />\n <polyline points=\"16 11 18 13 22 9\" />\n </svg>\n);\n\nexport const Hash = ({ size = 16, className, style }: IconProps) => (\n <svg {...base(null, size, style)} className={className}>\n <line x1=\"4\" y1=\"9\" x2=\"20\" y2=\"9\" />\n <line x1=\"4\" y1=\"15\" x2=\"20\" y2=\"15\" />\n <line x1=\"10\" y1=\"3\" x2=\"8\" y2=\"21\" />\n <line x1=\"16\" y1=\"3\" x2=\"14\" y2=\"21\" />\n </svg>\n);\n\nexport const LogOut = ({ size = 20, className, style }: IconProps) => (\n <svg\n {...base(null, size, style)}\n className={className}\n viewBox=\"0 0 24 24\"\n fill=\"none\"\n stroke=\"currentColor\"\n strokeWidth=\"1.75\"\n strokeLinecap=\"round\"\n strokeLinejoin=\"round\"\n >\n <line x1=\"15\" y1=\"12\" x2=\"5\" y2=\"12\" />\n <polyline points=\"9 8 5 12 9 16\" />\n <path d=\"M19 4 h-4 v16 h4 Z\" />\n </svg>\n);\n","import { IconProps, base } from \"./BaseIcons\";\n\nexport const Alert = ({ size = 15, className, style }: IconProps) => (\n <svg {...base(null, size, style)} strokeWidth={2} className={className}>\n <path d=\"M10.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 <line x1=\"12\" y1=\"9\" x2=\"12\" y2=\"13\" />\n <line x1=\"12\" y1=\"17\" x2=\"12.01\" y2=\"17\" />\n </svg>\n);\n\nexport const Info = ({ size = 15, className, style }: IconProps) => (\n <svg {...base(null, size, style)} className={className}>\n <circle cx=\"12\" cy=\"12\" r=\"10\" />\n <line x1=\"12\" y1=\"16\" x2=\"12\" y2=\"12\" />\n <line x1=\"12\" y1=\"8\" x2=\"12.01\" y2=\"8\" />\n </svg>\n);\n\nexport const CheckCircle = ({ size = 18, className, style }: IconProps) => (\n <svg {...base(null, size, style)} strokeWidth={2} className={className}>\n <path d=\"M22 11.08V12a10 10 0 1 1-5.93-9.14\" />\n <polyline points=\"22 4 12 14.01 9 11.01\" />\n </svg>\n);\n\nexport const Ban = ({ size = 15, className, style }: IconProps) => (\n <svg {...base(null, size, style)} className={className}>\n <circle cx=\"12\" cy=\"12\" r=\"10\" />\n <line x1=\"4.93\" y1=\"4.93\" x2=\"19.07\" y2=\"19.07\" />\n </svg>\n);\n\nexport const ArrowRight = ({ size = 16, className, style }: IconProps) => (\n <svg {...base(null, size, style)} strokeWidth={2} className={className}>\n <path d=\"M5 12h14M12 5l7 7-7 7\" />\n </svg>\n);\n\nexport const ArrowLeft = ({ size = 16, className, style }: IconProps) => (\n <svg {...base(null, size, style)} strokeWidth={2} className={className}>\n <path d=\"M19 12H5M12 19l-7-7 7-7\" />\n </svg>\n);\n\nexport const ChevronLeft = ({ size = 16, className, style }: IconProps) => (\n <svg {...base(null, size, style)} strokeWidth={2} className={className}>\n <polyline points=\"15 18 9 12 15 6\" />\n </svg>\n);\n\nexport const ChevronRight = ({ size = 16, className, style }: IconProps) => (\n <svg {...base(null, size, style)} strokeWidth={2} className={className}>\n <polyline points=\"9 18 15 12 9 6\" />\n </svg>\n);\n\nexport const ChevronDown = ({ size = 15, className, style }: IconProps) => (\n <svg {...base(null, size, style)} strokeWidth={2} className={className}>\n <path d=\"m6 9 6 6 6-6\" />\n </svg>\n);\n\nexport const ChevronUp = ({ size = 15, className, style }: IconProps) => (\n <svg {...base(null, size, style)} className={className}>\n <polyline points=\"18 15 12 9 6 15\" />\n </svg>\n);\n\nexport const Search = ({ size = 15, className, style }: IconProps) => (\n <svg {...base(null, size, style)} strokeWidth={2} className={className}>\n <circle cx=\"11\" cy=\"11\" r=\"8\" />\n <path d=\"M21 21l-4.35-4.35\" />\n </svg>\n);\n\nexport const Bell = ({ size = 18, className, style }: IconProps) => (\n <svg {...base(null, size, style)} className={className}>\n <path d=\"M18 8A6 6 0 0 0 6 8c0 7-3 9-3 9h18s-3-2-3-9\" />\n <path d=\"M13.73 21a2 2 0 0 1-3.46 0\" />\n </svg>\n);\n\nexport const Shield = ({ size = 16, className, style }: IconProps) => (\n <svg {...base(null, size, style)} className={className}>\n <path d=\"M12 22s8-4 8-10V5l-8-3-8 3v7c0 6 8 10 8 10z\" />\n </svg>\n);\n\nexport const Copy = ({ size = 16, className, style }: IconProps) => (\n <svg {...base(null, size, style)} className={className}>\n <rect x=\"9\" y=\"9\" width=\"13\" height=\"13\" rx=\"2\" />\n <path d=\"M5 15H4a2 2 0 0 1-2-2V4a2 2 0 0 1 2-2h9a2 2 0 0 1 2 2v1\" />\n </svg>\n);\n\nexport const Repeat = ({ size = 14, className, style }: IconProps) => (\n <svg {...base(null, size, style)} strokeWidth={2} className={className}>\n <polyline points=\"17 1 21 5 17 9\" />\n <path d=\"M3 11V9a4 4 0 0 1 4-4h14\" />\n <polyline points=\"7 23 3 19 7 15\" />\n <path d=\"M21 13v2a4 4 0 0 1-4 4H3\" />\n </svg>\n);\n\nexport const FileText = ({ size = 14, className, style }: IconProps) => (\n <svg {...base(null, size, style)} className={className}>\n <path d=\"M14 2H6a2 2 0 0 0-2 2v16a2 2 0 0 0 2 2h12a2 2 0 0 0 2-2V8z\" />\n <polyline points=\"14 2 14 8 20 8\" />\n <line x1=\"16\" y1=\"13\" x2=\"8\" y2=\"13\" />\n <line x1=\"16\" y1=\"17\" x2=\"8\" y2=\"17\" />\n <polyline points=\"10 9 9 9 8 9\" />\n </svg>\n);\n\nexport const Trophy = ({ size = 14, className, style }: IconProps) => (\n <svg {...base(null, size, style)} className={className}>\n <path d=\"M6 9H4.5a2.5 2.5 0 0 1 0-5H6\" />\n <path d=\"M18 9h1.5a2.5 2.5 0 0 0 0-5H18\" />\n <path d=\"M4 22h16\" />\n <path d=\"M10 14.66V17c0 .55-.47.98-.97 1.21C7.85 18.75 7 20.24 7 22\" />\n <path d=\"M14 14.66V17c0 .55.47.98.97 1.21C16.15 18.75 17 20.24 17 22\" />\n <path d=\"M18 2H6v7a6 6 0 0 0 12 0V2Z\" />\n </svg>\n);\n\nexport const Monitor = ({ size = 16, className, style }: IconProps) => (\n <svg {...base(null, size, style)} className={className}>\n <rect x=\"2\" y=\"3\" width=\"20\" height=\"14\" rx=\"2\" ry=\"2\" />\n <line x1=\"8\" y1=\"21\" x2=\"16\" y2=\"21\" />\n <line x1=\"12\" y1=\"17\" x2=\"12\" y2=\"21\" />\n </svg>\n);\n\nexport const Smartphone = ({ size = 16, className, style }: IconProps) => (\n <svg {...base(null, size, style)} className={className}>\n <rect x=\"5\" y=\"2\" width=\"14\" height=\"20\" rx=\"2\" ry=\"2\" />\n <line x1=\"12\" y1=\"18\" x2=\"12.01\" y2=\"18\" />\n </svg>\n);\n\nexport const Tablet = ({ size = 16, className, style }: IconProps) => (\n <svg {...base(null, size, style)} className={className}>\n <rect x=\"4\" y=\"2\" width=\"16\" height=\"20\" rx=\"2\" ry=\"2\" />\n <line x1=\"12\" y1=\"18\" x2=\"12.01\" y2=\"18\" />\n </svg>\n);\n\n// Aktivnost – linija otkucaja (pulse)\nexport const ActivityMenu = ({ size = 18, className, style }: IconProps) => (\n <svg {...base(null, size, style)} className={className}>\n <rect x=\"3\" y=\"8\" width=\"3\" height=\"8\" rx=\"1\" />\n <rect x=\"9\" y=\"4\" width=\"3\" height=\"16\" rx=\"1\" />\n <rect x=\"15\" y=\"6\" width=\"3\" height=\"12\" rx=\"1\" />\n </svg>\n);\n// Poređenje – dva stuba sa strelicama za upoređivanje\nexport const Compare = ({ size = 18, className, style }: IconProps) => (\n <svg {...base(null, size, style)} className={className}>\n <rect x=\"3\" y=\"3\" width=\"12\" height=\"12\" rx=\"1.5\" fill=\"none\" />\n <rect x=\"9\" y=\"9\" width=\"12\" height=\"12\" rx=\"1.5\" fill=\"none\" />\n <line x1=\"3\" y1=\"21\" x2=\"21\" y2=\"3\" stroke=\"currentColor\" strokeWidth=\"1.2\" strokeDasharray=\"3 2\" />\n </svg>\n);\n\n// Presečni status – Venn dijagram (dva presječena kruga)\nexport const Intersect = ({ size = 18, className, style }: IconProps) => (\n <svg {...base(null, size, style)} className={className} strokeWidth={1.75}>\n <circle cx=\"9\" cy=\"12\" r=\"6\" />\n <circle cx=\"15\" cy=\"12\" r=\"6\" />\n </svg>\n);\n\nexport const Megaphone = ({ size = 18, className, style }: IconProps) => (\n <svg {...base(null, size, style)} className={className} strokeWidth={1.75}>\n <path d=\"M3 11l19-9-9 19-2-8-8-2z\" />\n </svg>\n);\n","import { IconProps, base } from \"./BaseIcons\";\n\nexport const Sun = ({ size = 15, className, style }: IconProps) => (\n <svg {...base(null, size, style)} className={className} strokeWidth={2}>\n <circle cx=\"12\" cy=\"12\" r=\"5\" /><line x1=\"12\" y1=\"1\" x2=\"12\" y2=\"3\" /><line x1=\"12\" y1=\"21\" x2=\"12\" y2=\"23\" />\n <line x1=\"4.22\" y1=\"4.22\" x2=\"5.64\" y2=\"5.64\" /><line x1=\"18.36\" y1=\"18.36\" x2=\"19.78\" y2=\"19.78\" />\n <line x1=\"1\" y1=\"12\" x2=\"3\" y2=\"12\" /><line x1=\"21\" y1=\"12\" x2=\"23\" y2=\"12\" />\n <line x1=\"4.22\" y1=\"19.78\" x2=\"5.64\" y2=\"18.36\" /><line x1=\"18.36\" y1=\"5.64\" x2=\"19.78\" y2=\"4.22\" />\n </svg>\n);\n\nexport const Moon = ({ size = 15, className, style }: IconProps) => (\n <svg {...base(null, size, style)} className={className} strokeWidth={2}>\n <path d=\"M21 12.79A9 9 0 1 1 11.21 3 7 7 0 0 0 21 12.79z\" />\n </svg>\n);\n\nexport const Gear = ({ size = 16, className, style }: IconProps) => (\n <svg {...base(null, size, style)} className={className}>\n <circle cx=\"12\" cy=\"12\" r=\"3\" />\n <path d=\"M19.4 15a1.65 1.65 0 0 0 .33 1.82l.06.06a2 2 0 0 1-2.83 2.83l-.06-.06a1.65 1.65 0 0 0-1.82-.33 1.65 1.65 0 0 0-1 1.51V21a2 2 0 0 1-4 0v-.09A1.65 1.65 0 0 0 9 19.4a1.65 1.65 0 0 0-1.82.33l-.06.06a2 2 0 0 1-2.83-2.83l.06-.06A1.65 1.65 0 0 0 4.68 15a1.65 1.65 0 0 0-1.51-1H3a2 2 0 0 1 0-4h.09A1.65 1.65 0 0 0 4.6 9a1.65 1.65 0 0 0-.33-1.82l-.06-.06a2 2 0 0 1 2.83-2.83l.06.06A1.65 1.65 0 0 0 9 4.68a1.65 1.65 0 0 0 1-1.51V3a2 2 0 0 1 4 0v.09a1.65 1.65 0 0 0 1 1.51 1.65 1.65 0 0 0 1.82-.33l.06-.06a2 2 0 0 1 2.83 2.83l-.06.06A1.65 1.65 0 0 0 19.4 9a1.65 1.65 0 0 0 1.51 1H21a2 2 0 0 1 0 4h-.09a1.65 1.65 0 0 0-1.51 1z\" />\n </svg>\n);\n\nexport const Clock = ({ size = 13, className, style }: IconProps) => (\n <svg {...base(null, size, style)} className={className}>\n <circle cx=\"12\" cy=\"12\" r=\"10\" />\n <polyline points=\"12 6 12 12 16 14\" />\n </svg>\n);\n","interface LogoMarkProps {\n size?: number;\n className?: string;\n bgClassName?: string;\n bgFill?: string;\n bgOpacity?: number;\n}\n\n// Brutalist square logo – ugaone zagrade + slovo 't' sa eksponentom 'LMS'\nexport const LogoMark = ({\n size = 28,\n className,\n}: LogoMarkProps) => (\n <svg\n width={size}\n height={size}\n className={`${className} w-[${size}px] h-[${size}px]`}\n viewBox=\"0 0 32 32\"\n fill=\"none\"\n >\n <rect width=\"32\" height=\"32\" rx=\"8\" fill=\"none\" />\n <path d=\"M5 9 L5 5 L9 5\" stroke=\"currentColor\" strokeWidth=\"2\" strokeLinecap=\"square\" />\n <path d=\"M23 5 L27 5 L27 9\" stroke=\"currentColor\" strokeWidth=\"2\" strokeLinecap=\"square\" />\n <path d=\"M5 23 L5 27 L9 27\" stroke=\"currentColor\" strokeWidth=\"2\" strokeLinecap=\"square\" />\n <path d=\"M23 27 L27 27 L27 23\" stroke=\"currentColor\" strokeWidth=\"2\" strokeLinecap=\"square\" className=\"opacity-50\" />\n\n <g fill=\"currentColor\">\n <rect x=\"15\" y=\"10\" width=\"2\" height=\"14\" />\n <rect x=\"10\" y=\"10\" width=\"12\" height=\"2\" />\n </g>\n </svg>\n);\n","import { IconProps, base } from \"./BaseIcons\";\n\nexport const FormIcon = ({ size = 18, className, style }: IconProps) => (\n <svg {...base(null, size, style)} className={className}>\n <rect x=\"3\" y=\"3\" width=\"18\" height=\"18\" rx=\"2\" />\n <path d=\"M8 7h8M8 11h8M8 15h5\" />\n </svg>\n);\n\nexport const CalendarWeek = ({ size = 14, className, style }: IconProps) => (\n <svg {...base(null, size, style)} className={className}>\n <rect x=\"3\" y=\"4\" width=\"18\" height=\"18\" rx=\"2\" />\n <path d=\"M16 2v4M8 2v4M3 10h18\" />\n <path d=\"M8 14h.01M12 14h.01M16 14h.01M8 18h.01M12 18h.01M16 18h.01\" />\n </svg>\n);\n\nexport const CalendarMonth = ({ size = 14, className, style }: IconProps) => (\n <svg {...base(null, size, style)} className={className}>\n <rect x=\"3\" y=\"4\" width=\"18\" height=\"18\" rx=\"2\" />\n <path d=\"M16 2v4M8 2v4M3 10h18\" />\n <rect x=\"7\" y=\"14\" width=\"4\" height=\"4\" rx=\"0.5\" />\n <rect x=\"13\" y=\"14\" width=\"4\" height=\"4\" rx=\"0.5\" />\n <rect x=\"7\" y=\"18\" width=\"4\" height=\"2\" rx=\"0.5\" />\n <rect x=\"13\" y=\"18\" width=\"4\" height=\"2\" rx=\"0.5\" />\n </svg>\n);\n\nexport const NumberIcon = ({ size = 14, className, style }: IconProps) => (\n <svg {...base(null, size, style)} className={className}>\n <text x=\"4\" y=\"18\" fontSize=\"18\" fontWeight=\"bold\" fill=\"currentColor\" stroke=\"none\">12</text>\n </svg>\n);\n\nexport const TextIcon = ({ size = 14, className, style }: IconProps) => (\n <svg {...base(null, size, style)} className={className}>\n <text x=\"6\" y=\"18\" fontSize=\"20\" fontWeight=\"bold\" fill=\"currentColor\" stroke=\"none\">T</text>\n </svg>\n);\n\nexport const FormulaIcon = ({ size = 14, className, style }: IconProps) => (\n <svg {...base(null, size, style)} className={className}>\n <text x=\"3\" y=\"16\" fontSize=\"20\" fontWeight=\"bold\" fill=\"currentColor\" stroke=\"none\">ƒ</text>\n <text x=\"12\" y=\"16\" fontSize=\"16\" fill=\"currentColor\" stroke=\"none\">x</text>\n </svg>\n);\n","import { IconProps, base } from \"./BaseIcons\";\n\nexport const RefreshCw = ({ size = 15, className, spinning, style }: IconProps & { spinning?: boolean }) => (\n <svg {...base(null, size, style)} className={`${spinning ? \"animate-spin\" : \"\"} ${className ?? \"\"}`}>\n <path d=\"M23 4v6h-6\" />\n <path d=\"M1 20v-6h6\" />\n <path d=\"M3.51 9a9 9 0 0 1 14.85-3.36L23 10\" />\n <path d=\"M20.49 15a9 9 0 0 1-14.85 3.36L1 14\" />\n </svg>\n);\n\nexport const Database = ({ size = 16, className, style }: IconProps) => (\n <svg {...base(null, size, style)} className={className}>\n <ellipse cx=\"12\" cy=\"5\" rx=\"9\" ry=\"3\" />\n <path d=\"M21 12c0 1.66-4 3-9 3s-9-1.34-9-3\" />\n <path d=\"M3 5v14c0 1.66 4 3 9 3s9-1.34 9-3V5\" />\n </svg>\n);\n\nexport const Server = ({ size = 16, className, style }: IconProps) => (\n <svg {...base(null, size, style)} className={className}>\n <rect x=\"2\" y=\"2\" width=\"20\" height=\"8\" rx=\"2\" ry=\"2\" />\n <rect x=\"2\" y=\"14\" width=\"20\" height=\"8\" rx=\"2\" ry=\"2\" />\n <line x1=\"6\" y1=\"6\" x2=\"6\" y2=\"6.01\" />\n <line x1=\"6\" y1=\"18\" x2=\"6\" y2=\"18.01\" />\n </svg>\n);\n\nexport const Activity = ({ size = 16, className, style }: IconProps) => (\n <svg {...base(null, size, style)} className={className}>\n <polyline points=\"22 12 18 12 15 21 9 3 6 12 2 12\" />\n </svg>\n);\n\nexport const Cpu = ({ size = 16, className, style }: IconProps) => (\n <svg {...base(null, size, style)} className={className}>\n <rect x=\"4\" y=\"4\" width=\"16\" height=\"16\" rx=\"2\" ry=\"2\" />\n <rect x=\"9\" y=\"9\" width=\"6\" height=\"6\" />\n <line x1=\"9\" y1=\"1\" x2=\"9\" y2=\"4\" />\n <line x1=\"15\" y1=\"1\" x2=\"15\" y2=\"4\" />\n <line x1=\"9\" y1=\"20\" x2=\"9\" y2=\"23\" />\n <line x1=\"15\" y1=\"20\" x2=\"15\" y2=\"23\" />\n <line x1=\"1\" y1=\"9\" x2=\"4\" y2=\"9\" />\n <line x1=\"1\" y1=\"15\" x2=\"4\" y2=\"15\" />\n <line x1=\"20\" y1=\"9\" x2=\"23\" y2=\"9\" />\n <line x1=\"20\" y1=\"15\" x2=\"23\" y2=\"15\" />\n </svg>\n);\n\nexport const Zap = ({ size = 16, className, style }: IconProps) => (\n <svg {...base(null, size, style)} className={className}>\n <polygon points=\"13 2 3 14 12 14 11 22 21 10 12 10 13 2\" />\n </svg>\n);\n\nexport const HardDrive = ({ size = 16, className, style }: IconProps) => (\n <svg {...base(null, size, style)} className={className}>\n <line x1=\"22\" y1=\"12\" x2=\"2\" y2=\"12\" />\n <path d=\"M5.45 5.11L2 12v6a2 2 0 0 0 2 2h16a2 2 0 0 0 2-2v-6l-3.45-6.89A2 2 0 0 0 16.76 4H7.24a2 2 0 0 0-1.79 1.11z\" />\n <line x1=\"6\" y1=\"16\" x2=\"6.01\" y2=\"16\" />\n <line x1=\"10\" y1=\"16\" x2=\"10.01\" y2=\"16\" />\n </svg>\n);\n","import { X, Grid, UserMinus, UserCog, History, ExternalLink } from \"./ActionIcons\";\nimport { LockIcon, LogOut, User, UserCheck, EyeOff } from \"./AuthIcons\";\nimport { BarChart, Book, Calendar, CheckSquare, Clipboard, Faculty, Home, Layers, OfficeHours, QrCode, Report, Scan, Table, University, Users } from \"./NavigationIcons\";\nimport { ActivityMenu, Compare, Info, Intersect, Megaphone, Repeat, FileText } from \"./FeedbackIcons\";\nimport { Gear } from \"./SettingsIcons\";\nimport { CalendarWeek, FormIcon } from \"./FormsIcons\";\nimport { Zap } from \"./StatusIcons\";\n\nexport const SectionIcons = {\n studenti: <Users size={13} />,\n nastava: <Book size={13} />,\n evidencija: <CheckSquare size={13} />,\n analitika: <BarChart size={13} />,\n forme: <FormIcon size={13} />,\n nastavaS: <CalendarWeek size={13} />,\n evidencijaS:<CheckSquare size={13} />,\n};\n\nexport const Icons = {\n clipboard: <Faculty size={18} />,\n postClipboard: <Clipboard size={18} />,\n university: <University size={18} />,\n users: <Users size={18} />,\n book: <Book size={18} />,\n layers: <Layers size={18} />,\n officeHours: <OfficeHours size={18} />,\n calendar: <Calendar size={18} />,\n calendarAlt: <CalendarWeek size={18} />,\n checkSquare: <CheckSquare size={18} />,\n barChart: <BarChart size={18} />,\n qrCode: <QrCode size={18} />,\n home: <Home size={18} />,\n scan: <Scan size={18} />,\n lock: <LockIcon size={16} />,\n logOut: <LogOut size={16} />,\n logOutAlt: <LogOut size={16} />,\n user: <User size={16} />,\n cancel: <X size={16} />,\n report: <Report size={18} />,\n table: <Table size={18} />,\n gear: <Gear size={16} />,\n formIcon: <FormIcon size={18} />,\n grades: <BarChart size={18} />,\n activity: <ActivityMenu size={18} />,\n zap: <Zap size={18} />,\n compare: <Compare size={18} />,\n intersect: <Intersect size={18} />,\n repeat: <Repeat size={18} />,\n info: <Info size={16} />,\n todos: <CheckSquare size={18} />,\n eyeOff: <EyeOff size={18} />,\n userMinus: <UserMinus size={18} />,\n fileText: <FileText size={18} />,\n megaphone: <Megaphone size={18} />,\n grid: <Grid size={18} />,\n userCheck: <UserCheck size={18} />,\n fm: <UserCog size={18} />,\n history: <History size={18} />,\n externalLink: <ExternalLink size={18} />\n};\n","import { createElement, isValidElement } from \"react\";\nimport type { ComponentType, MouseEvent, ReactNode } from \"react\";\nimport { Spinner } from \"../feedback/Spinner\";\n\ntype Variant =\n | \"primary\"\n | \"secondary\"\n | \"danger\"\n | \"ghost\"\n | \"success\"\n | \"warning\"\n | \"info\"\n | \"muted-primary\"\n | \"outline-primary\"\n | \"outline-secondary\"\n | \"outline-danger\"\n | \"outline-success\"\n | \"brutal\"\n | \"link\";\n\ntype Size = \"xs\" | \"sm\" | \"md\" | \"lg\" | \"xl\";\n\nexport interface ButtonProps {\n children?: ReactNode;\n onClick?: (e: MouseEvent<HTMLButtonElement>) => void;\n disabled?: boolean;\n loading?: boolean;\n variant?: Variant;\n size?: Size;\n icon?: ButtonIcon;\n iconRight?: ButtonIcon;\n className?: string;\n type?: \"button\" | \"submit\" | \"reset\";\n title?: string;\n fullWidth?: boolean;\n}\n\ntype ButtonIcon = ReactNode | ComponentType<{\n size?: number | string;\n strokeWidth?: number;\n className?: string;\n}>;\n\nconst TOKEN_BASE = \"inline-flex items-center justify-center gap-2 cursor-pointer disabled:opacity-40 disabled:cursor-not-allowed transition-all duration-150\";\n\nconst variantClasses: Record<Variant, string> = {\n primary: \"btn-primary\",\n secondary: \"btn-secondary\",\n danger: \"btn-danger\",\n\n ghost: `${TOKEN_BASE} font-medium border border-transparent\n text-[var(--color-txt-3)] hover:border-[var(--color-primary-300)] hover:text-[var(--color-primary-300)]`,\n\n success: `${TOKEN_BASE} border border-[var(--color-good)] text-[var(--color-good)]\n bg-transparent hover:bg-[rgba(77,214,163,0.08)]`,\n\n warning: `${TOKEN_BASE} border border-[var(--color-warn)] text-[var(--color-warn)]\n bg-transparent hover:bg-[rgba(255,122,77,0.08)]`,\n\n info: `${TOKEN_BASE} border border-[var(--color-primary-300)] text-[var(--color-primary-300)]\n bg-transparent hover:bg-[rgba(94,231,255,0.08)]`,\n\n \"muted-primary\": `${TOKEN_BASE} border border-[var(--color-primary-300)] text-[var(--color-primary-300)]\n bg-[rgba(94,231,255,0.06)] hover:bg-[rgba(94,231,255,0.12)]`,\n\n \"outline-primary\": `${TOKEN_BASE} border border-[var(--color-primary-300)] text-[var(--color-primary-300)]\n hover:bg-[rgba(94,231,255,0.08)]`,\n\n \"outline-secondary\": `${TOKEN_BASE} border border-[var(--color-border-hi)] text-[var(--color-txt-2)]\n hover:border-[var(--color-txt-2)] hover:text-[var(--color-txt-1)]`,\n\n \"outline-danger\": `${TOKEN_BASE} border border-[var(--color-warn)] text-[var(--color-warn)]\n hover:bg-[rgba(255,122,77,0.08)]`,\n\n \"outline-success\": `${TOKEN_BASE} border border-[var(--color-good)] text-[var(--color-good)]\n hover:bg-[rgba(77,214,163,0.08)]`,\n\n brutal: `${TOKEN_BASE} border-2 border-[var(--tapiz-border-strong)] bg-[var(--tapiz-bg-surface)] text-[var(--tapiz-text-primary)]\n shadow-[var(--tapiz-shadow-brutal)] font-bold hover:-translate-x-0.5 hover:-translate-y-0.5 hover:shadow-[var(--tapiz-shadow-brutal-lg)]`,\n\n link: \"text-[var(--color-primary-300)] hover:text-[var(--color-primary-400)] disabled:opacity-40 disabled:cursor-not-allowed inline-flex items-center gap-1\",\n};\n\nconst sizeClasses: Record<Size, string> = {\n xs: \"px-2 py-1 text-xs gap-1\",\n sm: \"px-3 py-1.5 text-xs gap-1.5\",\n md: \"px-4 py-2 text-sm gap-2\",\n lg: \"px-5 py-2.5 text-sm gap-2\",\n xl: \"px-6 py-3 text-base gap-2.5\",\n};\n\nexport function Button({\n children,\n onClick,\n disabled,\n loading,\n variant = \"primary\",\n size = \"md\",\n icon,\n iconRight,\n className = \"\",\n type = \"button\",\n title,\n fullWidth,\n}: ButtonProps) {\n const isDisabled = disabled || loading;\n const isLink = variant === \"link\";\n const shouldApplySize = !isLink;\n const renderedIcon = renderIcon(icon);\n const renderedIconRight = renderIcon(iconRight);\n\n return (\n <button\n type={type}\n onClick={onClick}\n disabled={isDisabled}\n title={title}\n className={[\n variantClasses[variant],\n shouldApplySize ? sizeClasses[size] : \"\",\n fullWidth ? \"w-full\" : \"\",\n className,\n ].filter(Boolean).join(\" \")}\n >\n {loading\n ? <Spinner color={variant === \"primary\" ? \"text-black\" : \"text-[var(--color-txt-2)]\"} />\n : renderedIcon ? <span>{renderedIcon}</span> : null}\n {children}\n {!loading && renderedIconRight}\n </button>\n );\n}\n\nfunction renderIcon(icon?: ButtonIcon) {\n if (!icon) return null;\n if (isValidElement(icon)) return icon;\n if (typeof icon === \"function\") {\n return createElement(icon, { size: 14, strokeWidth: 1.75 });\n }\n return icon;\n}\n","export interface SpinnerProps {\n size?: string;\n color?: string;\n}\n\nexport const Spinner = ({ size = \"w-3 h-3\", color = \"text-primary-700\" }: SpinnerProps) => (\n <svg\n className={`inline-block ${size} animate-spin ${color}`}\n viewBox=\"0 0 24 24\"\n fill=\"none\"\n xmlns=\"http://www.w3.org/2000/svg\"\n >\n <circle\n cx=\"12\"\n cy=\"12\"\n r=\"10\"\n stroke=\"currentColor\"\n strokeWidth=\"3\"\n strokeLinecap=\"round\"\n strokeDasharray=\"31.4 31.4\"\n strokeDashoffset=\"15.7\"\n />\n </svg>\n);\n","import type { InputHTMLAttributes } from \"react\";\n\nexport interface InputProps extends InputHTMLAttributes<HTMLInputElement> {\n invalid?: boolean;\n}\n\nexport function Input({ className = \"\", invalid = false, ...props }: InputProps) {\n return (\n <input\n {...props}\n className={[\n \"input-field\",\n invalid ? \"border-warn focus:border-warn\" : \"\",\n className,\n ].filter(Boolean).join(\" \")}\n />\n );\n}\n","import type { SelectHTMLAttributes } from \"react\";\n\nexport interface SelectProps extends SelectHTMLAttributes<HTMLSelectElement> {\n invalid?: boolean;\n}\n\nexport function Select({ className = \"\", invalid = false, ...props }: SelectProps) {\n return (\n <select\n {...props}\n className={[\n \"input-field\",\n invalid ? \"border-warn focus:border-warn\" : \"\",\n className,\n ].filter(Boolean).join(\" \")}\n />\n );\n}\n","import type { TextareaHTMLAttributes } from \"react\";\n\nexport interface TextareaProps extends TextareaHTMLAttributes<HTMLTextAreaElement> {\n invalid?: boolean;\n}\n\nexport function Textarea({ className = \"\", invalid = false, ...props }: TextareaProps) {\n return (\n <textarea\n {...props}\n className={[\n \"input-field\",\n invalid ? \"border-warn focus:border-warn\" : \"\",\n className,\n ].filter(Boolean).join(\" \")}\n />\n );\n}\n","import type { LabelHTMLAttributes, ReactNode } from \"react\";\n\nexport interface FieldLabelProps extends LabelHTMLAttributes<HTMLLabelElement> {\n children: ReactNode;\n}\n\nexport function FieldLabel({ children, className = \"\", ...props }: FieldLabelProps) {\n return (\n <label {...props} className={`kicker mb-1 block ${className}`.trim()}>\n {children}\n </label>\n );\n}\n","import type { HTMLAttributes, ReactNode } from \"react\";\n\nexport interface FieldHintProps extends HTMLAttributes<HTMLParagraphElement> {\n children: ReactNode;\n}\n\nexport function FieldHint({ children, className = \"\", ...props }: FieldHintProps) {\n return (\n <p {...props} className={`font-mono text-[10px] text-txt-4 ${className}`.trim()}>\n {children}\n </p>\n );\n}\n","import { type InputHTMLAttributes, useId, useState } from \"react\";\n\nexport interface CheckboxProps extends Omit<InputHTMLAttributes<HTMLInputElement>, \"type\" | \"size\"> {\n label?: string;\n size?: \"sm\" | \"md\" | \"lg\";\n}\n\nconst sizeMap = {\n sm: { box: \"w-3.5 h-3.5\", icon: 10, text: \"text-xs\", gap: \"gap-1.5\" },\n md: { box: \"w-4 h-4\", icon: 11, text: \"text-sm\", gap: \"gap-2\" },\n lg: { box: \"w-5 h-5\", icon: 13, text: \"text-base\", gap: \"gap-2.5\" },\n} as const;\n\nexport function Checkbox({\n label,\n size = \"md\",\n className = \"\",\n id: providedId,\n checked,\n defaultChecked,\n onChange,\n ...props\n}: CheckboxProps) {\n const generatedId = useId();\n const id = providedId ?? generatedId;\n const s = sizeMap[size];\n\n const isControlled = checked !== undefined;\n const [internalChecked, setInternalChecked] = useState(defaultChecked ?? false);\n const isChecked = isControlled ? checked : internalChecked;\n const [focused, setFocused] = useState(false);\n\n return (\n <label\n htmlFor={id}\n className={`inline-flex items-center ${s.gap} cursor-pointer select-none group ${props.disabled ? \"opacity-50 cursor-not-allowed pointer-events-none\" : \"\"} ${className}`}\n >\n <span className=\"relative shrink-0\">\n <input\n {...props}\n id={id}\n type=\"checkbox\"\n checked={isControlled ? checked : internalChecked}\n onChange={(e) => {\n if (!isControlled) setInternalChecked(e.target.checked);\n onChange?.(e);\n }}\n onFocus={() => setFocused(true)}\n onBlur={() => setFocused(false)}\n className=\"sr-only\"\n />\n <span\n className={`\n flex items-center justify-center ${s.box}\n border transition-all duration-150\n ${isChecked\n ? \"bg-primary-300 border-primary-300\"\n : \"bg-ink-400 border-border-hi group-hover:border-primary-400\"\n }\n ${focused ? \"ring-1 ring-primary-300\" : \"\"}\n `}\n >\n {isChecked && (\n <svg\n width={s.icon}\n height={s.icon}\n viewBox=\"0 0 12 12\"\n fill=\"none\"\n stroke=\"#000\"\n strokeWidth=\"2.2\"\n strokeLinecap=\"square\"\n >\n <polyline points=\"1.5,6 4.5,9.5 10.5,2.5\" />\n </svg>\n )}\n </span>\n </span>\n\n {label && (\n <span className={`${s.text} text-txt-2 group-hover:text-txt-1 transition-colors duration-150`}>\n {label}\n </span>\n )}\n </label>\n );\n}\n","import { type InputHTMLAttributes, useId, useState } from \"react\";\n\nexport interface RadioButtonProps extends Omit<InputHTMLAttributes<HTMLInputElement>, \"type\" | \"size\"> {\n label?: string;\n size?: \"sm\" | \"md\" | \"lg\";\n}\n\nconst sizeMap = {\n sm: { outer: \"w-3.5 h-3.5\", inner: \"w-1.5 h-1.5\", text: \"text-xs\", gap: \"gap-1.5\" },\n md: { outer: \"w-4 h-4\", inner: \"w-2 h-2\", text: \"text-sm\", gap: \"gap-2\" },\n lg: { outer: \"w-5 h-5\", inner: \"w-2.5 h-2.5\", text: \"text-base\", gap: \"gap-2.5\" },\n} as const;\n\nexport function RadioButton({\n label,\n size = \"md\",\n className = \"\",\n id: providedId,\n checked,\n defaultChecked,\n onChange,\n ...props\n}: RadioButtonProps) {\n const generatedId = useId();\n const id = providedId ?? generatedId;\n const s = sizeMap[size];\n\n const isControlled = checked !== undefined;\n const [internalChecked, setInternalChecked] = useState(defaultChecked ?? false);\n const isChecked = isControlled ? checked : internalChecked;\n const [focused, setFocused] = useState(false);\n\n return (\n <label\n htmlFor={id}\n className={`inline-flex items-center ${s.gap} cursor-pointer select-none group ${props.disabled ? \"opacity-50 cursor-not-allowed pointer-events-none\" : \"\"} ${className}`}\n >\n <span className=\"relative shrink-0\">\n <input\n {...props}\n id={id}\n type=\"radio\"\n checked={isControlled ? checked : internalChecked}\n onChange={(e) => {\n if (!isControlled) setInternalChecked(e.target.checked);\n onChange?.(e);\n }}\n onFocus={() => setFocused(true)}\n onBlur={() => setFocused(false)}\n className=\"sr-only\"\n />\n {/* outer ring — square to match app aesthetic, full for radio feel */}\n <span\n className={`\n flex items-center justify-center ${s.outer}\n rounded-full border transition-all duration-150\n ${isChecked\n ? \"bg-ink-400 border-primary-300 shadow-[0_0_0_1px_var(--color-primary-300)]\"\n : \"bg-ink-400 border-border-hi group-hover:border-primary-400\"\n }\n ${focused ? \"ring-1 ring-primary-300\" : \"\"}\n `}\n >\n {isChecked && (\n <span className={`${s.inner} rounded-full bg-primary-300`} />\n )}\n </span>\n </span>\n\n {label && (\n <span className={`${s.text} text-txt-2 group-hover:text-txt-1 transition-colors duration-150`}>\n {label}\n </span>\n )}\n </label>\n );\n}\n","import { Spinner } from \"./Spinner\";\n\nexport function PageSpinner() {\n return (\n <div className=\"flex h-48 flex-col items-center justify-center gap-3\">\n <Spinner size=\"w-8 h-8\" />\n <span className=\"kicker\">loading</span>\n </div>\n );\n}\n","import { useEffect, useRef, useState } from \"react\";\nimport { createPortal } from \"react-dom\";\nimport { Check, X } from \"../icons/index\";\n\nexport interface ToastProps {\n message: string;\n ok: boolean;\n durationMs?: number;\n}\n\nexport function Toast({ message, ok, durationMs = 5000 }: ToastProps) {\n const [progress, setProgress] = useState(100);\n const [visible, setVisible] = useState(false);\n const startRef = useRef<number | null>(null);\n const rafRef = useRef<number | null>(null);\n\n useEffect(() => {\n const id = requestAnimationFrame(() => setVisible(true));\n return () => cancelAnimationFrame(id);\n }, []);\n\n useEffect(() => {\n const tick = (now: number) => {\n if (!startRef.current) startRef.current = now;\n const elapsed = now - startRef.current;\n setProgress(Math.max(0, 100 - (elapsed / durationMs) * 100));\n if (elapsed < durationMs) rafRef.current = requestAnimationFrame(tick);\n };\n rafRef.current = requestAnimationFrame(tick);\n return () => {\n if (rafRef.current) cancelAnimationFrame(rafRef.current);\n };\n }, [durationMs]);\n\n const transform = visible\n ? \"opacity-100 translate-y-0\"\n : \"opacity-0 translate-y-2 sm:translate-x-4 sm:translate-y-0\";\n\n const borderColor = ok ? \"var(--color-good)\" : \"var(--color-warn)\";\n const accentColor = ok ? \"var(--color-good)\" : \"var(--color-warn)\";\n\n return createPortal(\n <div className=\"pointer-events-none fixed bottom-20 left-4 right-4 z-9999 flex justify-center min-[600px]:bottom-auto min-[600px]:left-auto min-[600px]:right-5 min-[600px]:top-5 min-[600px]:justify-end\">\n <div\n className={`${transform} pointer-events-auto relative flex w-full max-w-sm items-center gap-2.5 overflow-hidden px-4 py-3 text-sm font-medium transition-all duration-300 sm:w-auto sm:max-w-xs`}\n style={{\n background: \"var(--color-ink-300)\",\n border: `1px solid ${borderColor}`,\n borderLeft: `3px solid ${borderColor}`,\n color: \"var(--color-txt-1)\",\n }}\n >\n <span className=\"flex h-5 w-5 shrink-0 items-center justify-center\" style={{ color: accentColor }}>\n {ok ? <Check size={12} /> : <X size={12} />}\n </span>\n <span className=\"flex-1 text-[12px] leading-snug sm:text-[13px]\" style={{ fontFamily: \"var(--font-mono)\" }}>\n {message}\n </span>\n <div\n className=\"absolute bottom-0 left-0 h-0.5 transition-none\"\n style={{ width: `${progress}%`, background: accentColor }}\n />\n </div>\n </div>,\n document.body,\n );\n}\n","import { createContext, useContext, useMemo, useState, type ReactNode } from \"react\";\nimport { Toast } from \"./Toast\";\n\nexport interface ToastState {\n message: string;\n ok: boolean;\n durationMs?: number;\n}\n\ninterface ToastContextValue {\n hideToast: () => void;\n showToast: (message: string, ok: boolean, durationMs?: number) => void;\n}\n\nconst ToastContext = createContext<ToastContextValue | null>(null);\n\nexport interface ToastProviderProps {\n children?: ReactNode;\n}\n\nexport function ToastProvider({ children }: ToastProviderProps) {\n const [toast, setToast] = useState<ToastState | null>(null);\n\n const value = useMemo<ToastContextValue>(() => ({\n hideToast: () => setToast(null),\n showToast: (message, ok, durationMs = 5000) => {\n setToast({ message, ok, durationMs });\n window.setTimeout(() => setToast(current => (\n current?.message === message && current?.ok === ok ? null : current\n )), durationMs);\n },\n }), []);\n\n return (\n <ToastContext.Provider value={value}>\n {children}\n {toast ? <Toast message={toast.message} ok={toast.ok} durationMs={toast.durationMs} /> : null}\n </ToastContext.Provider>\n );\n}\n\nexport function useToast() {\n const context = useContext(ToastContext);\n if (!context) {\n throw new Error(\"useToast must be used within ToastProvider\");\n }\n return context;\n}\n","import { Alert } from \"../icons/index\";\n\nexport interface FormErrorProps {\n message: string | null | undefined;\n className?: string;\n}\n\nexport function FormError({ message, className = \"\" }: FormErrorProps) {\n if (!message) return null;\n return (\n <div\n className={`flex items-start gap-2 px-3 py-2.5 text-sm ${className}`}\n style={{\n background: \"color-mix(in srgb, var(--color-warn) 8%, transparent)\",\n border: \"1px solid color-mix(in srgb, var(--color-warn) 25%, transparent)\",\n borderLeft: \"3px solid var(--color-warn)\",\n color: \"var(--color-warn)\",\n animation: \"var(--animate-scale-in)\",\n }}\n >\n <Alert size={14} className=\"shrink-0 mt-0.5\" />\n <span style={{ fontFamily: \"var(--font-mono)\", fontSize: 12 }}>{message}</span>\n </div>\n );\n}\n","import { Component, type ErrorInfo, type ReactNode } from \"react\";\n\ninterface ErrorBoundaryProps {\n children: ReactNode;\n fallback?: ReactNode;\n}\n\ninterface ErrorBoundaryState {\n hasError: boolean;\n}\n\ninterface DefaultErrorFallbackProps {\n title?: string;\n description?: string;\n label?: string;\n reloadLabel?: string;\n}\n\nexport class ErrorBoundary extends Component<ErrorBoundaryProps, ErrorBoundaryState> {\n state: ErrorBoundaryState = { hasError: false };\n\n static getDerivedStateFromError(): ErrorBoundaryState {\n return { hasError: true };\n }\n\n componentDidCatch(error: Error, info: ErrorInfo) {\n console.error(\"Unhandled UI error\", error, info);\n }\n\n render() {\n if (this.state.hasError) {\n return this.props.fallback ?? <DefaultErrorFallback />;\n }\n\n return this.props.children;\n }\n}\n\nexport function DefaultErrorFallback({\n title = \"Something went wrong\",\n description = \"An unexpected error occurred. Reload the page and try again.\",\n label = \"Tapiz UI · Runtime Error\",\n reloadLabel = \"Reload page\",\n}: DefaultErrorFallbackProps) {\n return (\n <div\n className=\"fixed inset-0 flex flex-col items-center justify-center overflow-hidden px-6\"\n style={{ background: \"var(--color-ink-100)\" }}\n >\n <GridBg />\n <Spotlight color=\"rgba(255,100,100,0.06)\" />\n\n <div\n className=\"relative z-10 flex w-full max-w-sm flex-col items-center gap-6 text-center\"\n style={{ animation: \"var(--animate-fade-in-up)\" }}\n >\n <div>\n <div\n className=\"font-mono font-bold leading-none\"\n style={{ fontSize: \"clamp(72px,16vw,120px)\", color: \"var(--color-border-hi)\", letterSpacing: \"-0.04em\" }}\n >\n 500\n </div>\n <div\n className=\"mt-1 h-0.5 w-full\"\n style={{ background: \"linear-gradient(90deg,transparent,rgba(255,80,80,0.7),transparent)\", opacity: 0.5 }}\n />\n </div>\n\n <div className=\"flex flex-col gap-1.5\">\n <p className=\"text-base font-semibold\" style={{ color: \"var(--color-txt-1)\" }}>{title}</p>\n <p className=\"font-mono text-[11px] leading-relaxed\" style={{ color: \"var(--color-txt-3)\" }}>{description}</p>\n </div>\n\n <div\n className=\"font-mono text-[9px] uppercase px-2 py-1\"\n style={{\n letterSpacing: \".2em\",\n color: \"rgba(255,80,80,0.9)\",\n border: \"1px solid rgba(255,80,80,0.25)\",\n background: \"rgba(255,80,80,0.05)\",\n }}\n >\n {label}\n </div>\n\n <div className=\"w-full\">\n <button\n type=\"button\"\n onClick={() => window.location.reload()}\n style={{\n width: \"100%\",\n padding: \"10px\",\n fontSize: \"12px\",\n background: \"var(--color-primary-300)\",\n color: \"var(--color-ink-100)\",\n border: \"none\",\n cursor: \"pointer\",\n fontFamily: \"var(--font-mono)\",\n letterSpacing: \"0.05em\",\n }}\n >\n {reloadLabel} →\n </button>\n </div>\n </div>\n </div>\n );\n}\n\nexport function GridBg() {\n return (\n <div className=\"pointer-events-none absolute inset-0 opacity-50 bg-[linear-gradient(var(--color-border)_1px,transparent_1px),linear-gradient(90deg,var(--color-border)_1px,transparent_1px)] bg-size-[32px_32px]\" />\n );\n}\n\nexport function Spotlight({ color }: { color: string }) {\n return (\n <div\n className=\"pointer-events-none absolute left-1/2 top-1/5 h-60 w-120 -translate-x-1/2\"\n style={{ background: `radial-gradient(ellipse at center, ${color} 0%, transparent 70%)` }}\n />\n );\n}\n","import { ReactNode, useId } from \"react\";\nimport { createPortal } from \"react-dom\";\nimport { X } from \"../icons/index\";\n\nexport interface BaseModalProps {\n isOpen: boolean;\n onClose: () => void;\n title: string;\n subtitle?: string;\n children: ReactNode;\n xShown?: boolean;\n icon?: ReactNode;\n size?: \"sm\" | \"md\" | \"lg\" | \"xl\";\n closeLabel?: string;\n}\n\nconst sizeClass: Record<NonNullable<BaseModalProps[\"size\"]>, string> = {\n sm: \"max-w-sm\",\n md: \"max-w-md\",\n lg: \"max-w-lg\",\n xl: \"max-w-2xl\",\n};\n\nexport function BaseModal({\n isOpen,\n onClose,\n title,\n subtitle,\n children,\n icon,\n xShown = false,\n size = \"md\",\n closeLabel = \"Close dialog\",\n}: BaseModalProps) {\n const titleId = useId();\n if (!isOpen) return null;\n\n return createPortal(\n <div\n role=\"dialog\"\n aria-modal=\"true\"\n aria-labelledby={titleId}\n className=\"fixed inset-0 z-50 flex items-center justify-center p-4\"\n style={{ background: \"rgba(5,6,8,0.75)\", backdropFilter: \"blur(2px)\" }}\n onClick={(e) => e.target === e.currentTarget && onClose()}\n >\n <div\n className={`w-full ${sizeClass[size]} p-6 space-y-4`}\n style={{\n background: \"var(--color-ink-200)\",\n border: \"1px solid var(--color-border-hi)\",\n borderTop: \"2px solid var(--color-primary-300)\",\n animation: \"var(--animate-scale-in)\",\n }}\n >\n <div className=\"flex items-start justify-between\">\n <div className=\"flex items-center gap-3\">\n {icon && (\n <div\n className=\"flex items-center justify-center w-10 h-10 shrink-0\"\n style={{ background: \"var(--color-ink-300)\", border: \"1px solid var(--color-border-hi)\", color: \"var(--color-primary-300)\" }}\n >\n {icon}\n </div>\n )}\n <div>\n <h3 id={titleId} style={{ fontFamily: \"var(--font-display)\", fontSize: 15, fontWeight: 600, color: \"var(--color-txt-1)\" }}>{title}</h3>\n {subtitle && (\n <p style={{ fontFamily: \"var(--font-mono)\", fontSize: 10, color: \"var(--color-primary-300)\", marginTop: 2, letterSpacing: \"0.1em\" }}>\n {subtitle}\n </p>\n )}\n </div>\n </div>\n {xShown && (\n <button\n onClick={onClose}\n className=\"w-7 h-7 flex items-center justify-center\"\n style={{ color: \"var(--color-txt-3)\", border: \"1px solid transparent\" }}\n onMouseEnter={e => { (e.currentTarget as HTMLElement).style.color = \"var(--color-txt-1)\"; (e.currentTarget as HTMLElement).style.borderColor = \"var(--color-border-hi)\"; }}\n onMouseLeave={e => { (e.currentTarget as HTMLElement).style.color = \"var(--color-txt-3)\"; (e.currentTarget as HTMLElement).style.borderColor = \"transparent\"; }}\n aria-label={closeLabel}\n title={closeLabel}\n >\n <X size={14} />\n </button>\n )}\n </div>\n {children}\n </div>\n </div>,\n document.body,\n );\n}\n","import { ReactNode } from \"react\";\nimport { createPortal } from \"react-dom\";\nimport { Button } from \"../forms/Button\";\nimport { X, Check, Trash } from \"../icons/index\";\n\nexport interface ConfirmDialogProps {\n title: string;\n description?: ReactNode;\n message?: ReactNode;\n confirmLabel?: string;\n cancelLabel?: string;\n loading?: boolean;\n onConfirm: () => void;\n onCancel: () => void;\n icon?: ReactNode;\n danger?: boolean;\n open?: boolean;\n}\n\nexport function ConfirmDialog({\n title,\n description,\n message,\n confirmLabel,\n cancelLabel,\n loading = false,\n onConfirm,\n onCancel,\n icon,\n danger = false,\n open = true,\n}: ConfirmDialogProps) {\n const resolvedConfirm = confirmLabel ?? \"Confirm\";\n const resolvedCancel = cancelLabel ?? \"Cancel\";\n const resolvedDescription = description ?? message;\n if (!open) return null;\n return createPortal(\n <div\n className=\"fixed inset-0 z-300 flex items-center justify-center px-4\"\n style={{ background: \"rgba(5,6,8,0.4)\", backdropFilter: \"blur(8px)\" }}\n onClick={onCancel}\n >\n <div\n className=\"relative w-full max-w-sm\"\n style={{\n background: \"var(--color-ink-200)\",\n border: \"1px solid var(--color-border-hi)\",\n borderTop: danger ? \"2px solid var(--color-danger, #f87171)\" : \"2px solid var(--color-primary-300)\",\n animation: \"var(--animate-scale-in)\",\n }}\n onClick={e => e.stopPropagation()}\n >\n <div className=\"p-6 flex flex-col gap-4\">\n {/* Icon + title row */}\n <div className=\"flex items-center gap-3\">\n {icon && (\n <div\n className=\"flex items-center justify-center w-9 h-9 shrink-0\"\n style={{\n background: danger ? \"rgba(248,113,113,0.1)\" : \"rgba(94,231,255,0.08)\",\n border: danger ? \"1px solid rgba(248,113,113,0.25)\" : \"1px solid rgba(94,231,255,0.15)\",\n color: danger ? \"var(--color-danger, #f87171)\" : \"var(--color-primary-300)\",\n }}\n >\n {icon}\n </div>\n )}\n <p className=\"text-sm font-semibold\" style={{ color: \"var(--color-txt-1)\" }}>\n {title}\n </p>\n </div>\n\n {/* Description */}\n <p className=\"text-sm\" style={{ color: \"var(--color-txt-3)\" }}>\n {resolvedDescription}\n </p>\n\n {/* Actions */}\n <div className=\"flex items-center justify-end gap-2\">\n <Button variant=\"ghost\" size=\"sm\" icon={<X size={13} />} onClick={onCancel} disabled={loading}>\n {resolvedCancel}\n </Button>\n <Button\n variant={danger ? \"danger\" : \"primary\"}\n size=\"sm\"\n icon={danger ? <Trash size={13} /> : <Check size={13} />}\n onClick={onConfirm}\n loading={loading}\n >\n {resolvedConfirm}\n </Button>\n </div>\n </div>\n </div>\n </div>,\n document.body,\n );\n}\n","import type { ReactNode } from \"react\";\n\nexport interface TooltipProps {\n text: string;\n children: ReactNode;\n position?: \"top\" | \"bottom\";\n align?: \"center\" | \"right\";\n width?: string;\n wFull?: boolean;\n}\n\nexport function Tooltip({ text, children, position = \"top\", align = \"center\", width = \"max-w-[200px]\", wFull }: TooltipProps) {\n const alignClass = align === \"right\" ? \"right-0\" : \"left-1/2 -translate-x-1/2\";\n return (\n <span className={`group relative inline-flex items-center${wFull ? \" w-full\" : \"\"}`}>\n {children}\n <span\n className={`pointer-events-none absolute ${alignClass} ${width} w-max px-2.5 py-1.5\n text-center text-[11px] leading-snug\n opacity-0 group-hover:opacity-100 transition-opacity duration-150\n ${position === \"top\" ? \"bottom-full mb-2\" : \"top-full mt-2\"}`}\n style={{\n zIndex: 60,\n background: \"var(--color-ink-300)\",\n border: \"1px solid var(--color-border-hi)\",\n color: \"var(--color-txt-2)\",\n fontFamily: \"var(--font-mono)\",\n letterSpacing: \"0.04em\",\n }}\n >\n {text}\n <span\n className={`absolute left-1/2 -translate-x-1/2 w-0 h-0 border-x-4 border-x-transparent\n ${position === \"top\" ? \"top-full border-t-4\" : \"bottom-full border-b-4\"}`}\n style={position === \"top\"\n ? { borderTopColor: \"var(--color-border-hi)\" }\n : { borderBottomColor: \"var(--color-border-hi)\" }}\n />\n </span>\n </span>\n );\n}\n","import type { CSSProperties, ReactNode } from \"react\";\n\nexport type CardVariant = \"surface\" | \"raised\" | \"outlined\" | \"brutal\" | \"glass\";\nexport type CardPadding = \"none\" | \"sm\" | \"md\" | \"lg\";\n\nexport interface CardProps {\n children: ReactNode;\n className?: string;\n hover?: boolean;\n style?: CSSProperties;\n variant?: CardVariant;\n padding?: CardPadding;\n}\n\nexport interface CardSectionProps {\n children: ReactNode;\n className?: string;\n}\n\nconst variantClasses: Record<CardVariant, string> = {\n surface: \"border border-[var(--tapiz-border-subtle)] bg-[var(--tapiz-bg-surface)] shadow-[var(--tapiz-shadow-sm)]\",\n raised: \"border border-[var(--tapiz-border-subtle)] bg-[var(--tapiz-bg-surface-raised)] shadow-[var(--tapiz-shadow-md)]\",\n outlined: \"border border-[var(--tapiz-border-strong)] bg-transparent\",\n brutal: \"border-2 border-[var(--tapiz-border-strong)] bg-[var(--tapiz-bg-surface)] shadow-[var(--tapiz-shadow-brutal)]\",\n glass: \"border border-[var(--tapiz-border-subtle)] bg-[color-mix(in_srgb,var(--tapiz-bg-surface)_78%,transparent)] shadow-[var(--tapiz-shadow-md)] backdrop-blur-xl\",\n};\n\nconst paddingClasses: Record<CardPadding, string> = {\n none: \"p-0\",\n sm: \"p-3\",\n md: \"p-5\",\n lg: \"p-6\",\n};\n\nexport function Card({\n children,\n className = \"\",\n hover = false,\n style,\n variant = \"surface\",\n padding = \"md\",\n}: CardProps) {\n return (\n <div\n className={[\n variantClasses[variant],\n paddingClasses[padding],\n hover ? \"card-hover\" : \"\",\n className,\n ].filter(Boolean).join(\" \")}\n style={style}\n >\n {children}\n </div>\n );\n}\n\nexport function CardHeader({ children, className = \"\" }: CardSectionProps) {\n return <div className={`border-b border-[var(--tapiz-border-subtle)] px-5 py-3 ${className}`}>{children}</div>;\n}\n\nexport function CardBody({ children, className = \"\" }: CardSectionProps) {\n return <div className={`p-5 ${className}`}>{children}</div>;\n}\n","export interface SkeletonProps {\n className?: string;\n}\n\nexport function Skeleton({ className = \"\" }: SkeletonProps) {\n return <div aria-hidden=\"true\" className={`skeleton ${className}`} />;\n}\n","import { Skeleton } from \"./Skeleton\";\n\nexport function SkeletonCard({ className = \"\" }: { className?: string }) {\n return (\n <div className={`card ${className}`.trim()}>\n <Skeleton className=\"mb-3 h-4 w-2/5\" />\n <Skeleton className=\"mb-2 h-3 w-3/4\" />\n <Skeleton className=\"h-3 w-1/2\" />\n </div>\n );\n}\n\nexport function SkeletonKpiCard({ delay = 0 }: { delay?: number }) {\n return (\n <div\n className=\"card animate-pulse\"\n style={{\n animationDelay: `${delay}ms`,\n minHeight: 142,\n display: \"flex\",\n flexDirection: \"column\",\n gap: 8,\n padding: \"16px 18px\",\n borderLeft: \"3px solid var(--color-border-hi)\",\n }}\n >\n <Skeleton className=\"mb-1 h-2 w-24\" />\n <Skeleton className=\"h-8 w-16\" />\n <Skeleton className=\"mt-1 h-2 w-20\" />\n </div>\n );\n}\n\nexport function SkeletonBanner() {\n return (\n <div\n className=\"animate-pulse overflow-hidden p-5\"\n style={{\n background: \"var(--color-ink-300)\",\n border: \"1px solid var(--color-border)\",\n borderTop: \"2px solid var(--color-border-hi)\",\n }}\n >\n <Skeleton className=\"mb-2 h-3 w-24\" />\n <Skeleton className=\"mb-3 h-6 w-48\" />\n <div className=\"flex gap-4\">\n <Skeleton className=\"h-4 w-28\" />\n <Skeleton className=\"h-4 w-24\" />\n <Skeleton className=\"h-4 w-20\" />\n </div>\n </div>\n );\n}\n\nfunction SkeletonTableRow({ cols = 4 }: { cols?: number }) {\n const widths = [\"w-24\", \"w-40\", \"w-32\", \"w-20\", \"w-16\"];\n return (\n <tr className=\"border-b border-border\">\n {Array.from({ length: cols }).map((_, i) => (\n <td key={i} className=\"px-4 py-3\">\n <Skeleton className={`h-4 ${widths[i % widths.length]}`} />\n </td>\n ))}\n </tr>\n );\n}\n\nexport function SkeletonTable({ rows = 6, cols = 4 }: { rows?: number; cols?: number }) {\n return (\n <div className=\"card overflow-hidden p-0\">\n <div className=\"overflow-x-auto\">\n <table className=\"w-full text-sm\">\n <thead>\n <tr className=\"border-b border-border bg-ink-300\">\n {Array.from({ length: cols }).map((_, i) => (\n <th key={i} className=\"px-4 py-3\">\n <Skeleton className=\"h-3 w-16\" />\n </th>\n ))}\n </tr>\n </thead>\n <tbody>\n {Array.from({ length: rows }).map((_, i) => (\n <SkeletonTableRow key={i} cols={cols} />\n ))}\n </tbody>\n </table>\n </div>\n </div>\n );\n}\n\nexport function SkeletonPageHeader() {\n return (\n <div className=\"flex animate-pulse items-center justify-between\">\n <div>\n <Skeleton className=\"mb-2 h-7 w-40\" />\n <Skeleton className=\"h-4 w-24\" />\n </div>\n <Skeleton className=\"h-9 w-32\" />\n </div>\n );\n}\n","import type { ReactNode } from \"react\";\n\ntype Variant = \"default\" | \"success\" | \"warning\" | \"danger\" | \"info\" | \"muted\";\n\nconst variantClasses: Record<Variant, string> = {\n default: \"border-[var(--tapiz-accent)] text-[var(--tapiz-accent)] bg-[var(--tapiz-accent-soft)]\",\n success: \"border-[var(--tapiz-success)] text-[var(--tapiz-success)] bg-[var(--tapiz-success-soft)]\",\n warning: \"border-[var(--tapiz-warning)] text-[var(--tapiz-warning)] bg-[var(--tapiz-warning-soft)]\",\n danger: \"border-[var(--tapiz-danger)] text-[var(--tapiz-danger)] bg-[var(--tapiz-danger-soft)]\",\n info: \"border-[var(--tapiz-info)] text-[var(--tapiz-info)] bg-[var(--tapiz-info-soft)]\",\n muted: \"border-txt-3 text-txt-3\",\n};\n\ninterface BadgeProps {\n children: ReactNode;\n variant?: Variant;\n className?: string;\n}\n\nexport function Badge({ children, variant = \"default\", className = \"\" }: BadgeProps) {\n return (\n <span\n className={`inline-flex items-center border px-2 py-0.5 font-mono text-[9px] font-bold uppercase tracking-widest ${variantClasses[variant]} ${className}`}\n >\n {children}\n </span>\n );\n}\n","import type { ReactNode } from \"react\";\nimport { Info } from \"../icons/index\";\n\nexport interface EmptyStateProps {\n title?: string;\n description?: string;\n message?: string;\n icon?: ReactNode;\n}\n\nexport function EmptyState({ title, description, message, icon }: EmptyStateProps) {\n const resolvedTitle = title ?? message ?? \"No data\";\n\n return (\n <div className=\"border border-border bg-ink-200 px-4 py-10 text-center\">\n <div className=\"mb-2 flex justify-center text-txt-4\">\n {icon ?? <Info size={22} />}\n </div>\n <p className=\"font-mono text-[11px] tracking-widest text-txt-4\">{resolvedTitle}</p>\n {description ? (\n <p className=\"mt-1 font-mono text-[10px] text-txt-4 opacity-70\">{description}</p>\n ) : null}\n </div>\n );\n}\n\nexport function ErrorState({\n title = \"Failed to load\",\n error,\n}: {\n title?: string;\n error: Error | null;\n}) {\n return (\n <div className=\"border border-warn bg-ink-200 px-4 py-10 text-center\">\n <div className=\"mb-2 flex justify-center text-warn\">\n <Info size={22} />\n </div>\n <p className=\"font-mono text-[11px] tracking-widest text-warn\">{title}</p>\n {error ? <p className=\"mt-1 font-mono text-[10px] text-txt-3\">{error.message}</p> : null}\n </div>\n );\n}\n","import { Info, LockIcon } from \"../icons/index\";\n\ninterface StructuredInfoBannerProps {\n title: string;\n description: string;\n text?: never;\n variant?: never;\n className?: string;\n}\n\ninterface InlineInfoBannerProps {\n text: string;\n variant?: \"info\" | \"warn\" | \"lock\";\n className?: string;\n title?: never;\n description?: never;\n}\n\nexport type InfoBannerProps = StructuredInfoBannerProps | InlineInfoBannerProps;\n\nexport function InfoBanner(props: InfoBannerProps) {\n if (\"text\" in props) {\n const { text, variant = \"info\", className = \"\" } = props;\n const styles =\n variant === \"warn\"\n ? \"bg-warn/8 border-warn/25 text-warn\"\n : variant === \"lock\"\n ? \"bg-warn/8 border-warn/30 text-warn\"\n : \"bg-primary-500/10 border-primary-100 text-primary-500\";\n\n const icon = variant === \"lock\"\n ? <LockIcon size={14} className=\"mt-1 shrink-0\" />\n : <Info size={14} className=\"mt-1 shrink-0\" />;\n\n return (\n <div className={`app-info-banner flex items-start gap-2 border px-3 py-2.5 text-[13px] ${styles} ${className}`}>\n {icon}\n <p style={{ fontFamily: \"var(--font-mono)\" }}>{text}</p>\n </div>\n );\n }\n\n const { title, description, className = \"\" } = props;\n\n return (\n <div\n className={`app-info-banner px-4 py-3 ${className}`}\n style={{\n background: \"rgba(94,231,255,0.04)\",\n border: \"1px solid rgba(94,231,255,0.12)\",\n borderLeft: \"3px solid var(--color-primary-300)\",\n }}\n >\n <p\n className=\"mb-0.5 font-mono text-[10px] font-semibold uppercase tracking-widest\"\n style={{ color: \"var(--color-primary-300)\" }}\n >\n {title}\n </p>\n <p className=\"font-mono text-[11px] leading-relaxed\" style={{ color: \"var(--color-txt-2)\" }}>\n {description}\n </p>\n </div>\n );\n}\n","import type { ReactNode } from \"react\";\n\nexport interface PageHeaderProps {\n title: string;\n subtitle?: string;\n description?: ReactNode;\n action?: ReactNode;\n actions?: ReactNode;\n icon?: ReactNode;\n banner?: ReactNode;\n breadcrumbs?: ReactNode;\n meta?: ReactNode;\n className?: string;\n variant?: \"default\" | \"enterprise\" | \"brutal\";\n}\n\nexport function PageHeader({\n title,\n subtitle,\n description,\n action,\n actions,\n icon,\n banner,\n breadcrumbs,\n meta,\n className = \"\",\n variant = \"default\",\n}: PageHeaderProps) {\n const resolvedActions = actions ?? action;\n const variantClass = variant === \"brutal\"\n ? \"border-2 border-[var(--tapiz-border-strong)] bg-[var(--tapiz-bg-surface)] p-5 shadow-[var(--tapiz-shadow-brutal)]\"\n : variant === \"enterprise\"\n ? \"border border-[var(--tapiz-border-subtle)] bg-[var(--tapiz-bg-surface)] p-5 shadow-[var(--tapiz-shadow-sm)]\"\n : \"border-b border-[var(--tapiz-border-subtle)] pb-4\";\n\n return (\n <div className={`page-header mb-5 flex flex-col gap-3 animate-fade-in-up ${variantClass} ${className}`.trim()}>\n {breadcrumbs ? <div className=\"font-mono text-[10px] uppercase tracking-[0.16em] text-[var(--tapiz-text-muted)]\">{breadcrumbs}</div> : null}\n <div className=\"flex flex-col gap-3 sm:flex-row sm:items-start sm:justify-between\">\n <div className=\"min-w-0\">\n {subtitle ? <div className=\"kicker mb-1.5\">{subtitle}</div> : null}\n <div className=\"flex items-center gap-2.5\">\n {icon ? <span className=\"text-[var(--tapiz-accent)]\">{icon}</span> : null}\n <h2 className=\"font-(--font-display) text-[22px] tracking-[-0.03em] text-[var(--tapiz-text-primary)] md:text-[26px]\">\n {title}\n </h2>\n </div>\n {description ? <div className=\"mt-2 max-w-3xl text-sm leading-6 text-[var(--tapiz-text-muted)]\">{description}</div> : null}\n {meta ? <div className=\"mt-3 font-mono text-[11px] text-[var(--tapiz-text-disabled)]\">{meta}</div> : null}\n </div>\n {resolvedActions ? <div className=\"flex shrink-0 flex-wrap gap-2\">{resolvedActions}</div> : null}\n </div>\n {banner ? banner : null}\n </div>\n );\n}\n","import type { ReactNode } from \"react\";\nimport { Card } from \"./Card\";\n\nexport type MetricTrendTone = \"positive\" | \"negative\" | \"neutral\" | \"warning\";\n\nexport interface MetricCardProps {\n label: ReactNode;\n value: ReactNode;\n description?: ReactNode;\n icon?: ReactNode;\n trend?: ReactNode;\n trendTone?: MetricTrendTone;\n className?: string;\n variant?: \"surface\" | \"raised\" | \"brutal\";\n}\n\nconst trendClasses: Record<MetricTrendTone, string> = {\n positive: \"border-[var(--tapiz-success)] text-[var(--tapiz-success)] bg-[var(--tapiz-success-soft)]\",\n negative: \"border-[var(--tapiz-danger)] text-[var(--tapiz-danger)] bg-[var(--tapiz-danger-soft)]\",\n warning: \"border-[var(--tapiz-warning)] text-[var(--tapiz-warning)] bg-[var(--tapiz-warning-soft)]\",\n neutral: \"border-[var(--tapiz-border-strong)] text-[var(--tapiz-text-muted)] bg-[var(--tapiz-bg-surface-muted)]\",\n};\n\nexport function MetricCard({\n label,\n value,\n description,\n icon,\n trend,\n trendTone = \"neutral\",\n className = \"\",\n variant = \"surface\",\n}: MetricCardProps) {\n return (\n <Card variant={variant} padding=\"md\" hover className={`relative overflow-hidden ${className}`}>\n <div className=\"flex items-start justify-between gap-4\">\n <div className=\"min-w-0\">\n <p className=\"font-mono text-[10px] font-bold uppercase tracking-[0.18em] text-[var(--tapiz-text-muted)]\">\n {label}\n </p>\n <div className=\"mt-2 font-display text-3xl font-semibold tracking-[-0.05em] text-[var(--tapiz-text-primary)]\">\n {value}\n </div>\n </div>\n {icon ? (\n <div className=\"grid h-10 w-10 shrink-0 place-items-center border border-[var(--tapiz-border-strong)] bg-[var(--color-icon-bg)] text-[var(--tapiz-accent)]\">\n {icon}\n </div>\n ) : null}\n </div>\n {(description || trend) ? (\n <div className=\"mt-4 flex flex-wrap items-center gap-2\">\n {trend ? (\n <span className={`inline-flex border px-2 py-0.5 font-mono text-[10px] font-bold uppercase tracking-widest ${trendClasses[trendTone]}`}>\n {trend}\n </span>\n ) : null}\n {description ? <p className=\"text-xs text-[var(--tapiz-text-muted)]\">{description}</p> : null}\n </div>\n ) : null}\n </Card>\n );\n}\n","import type { ReactNode } from \"react\";\n\nexport interface StatGridProps {\n children: ReactNode;\n className?: string;\n minColumnWidth?: string;\n}\n\nexport function StatGrid({ children, className = \"\", minColumnWidth = \"14rem\" }: StatGridProps) {\n return (\n <div\n className={`grid gap-4 ${className}`}\n style={{ gridTemplateColumns: `repeat(auto-fit, minmax(${minColumnWidth}, 1fr))` }}\n >\n {children}\n </div>\n );\n}\n","import type { ReactNode } from \"react\";\nimport { Card } from \"./Card\";\n\nexport interface SectionCardProps {\n title?: ReactNode;\n eyebrow?: ReactNode;\n description?: ReactNode;\n action?: ReactNode;\n children: ReactNode;\n className?: string;\n}\n\nexport function SectionCard({ title, eyebrow, description, action, children, className = \"\" }: SectionCardProps) {\n return (\n <Card variant=\"surface\" padding=\"none\" className={className}>\n {(title || eyebrow || description || action) ? (\n <div className=\"flex flex-col gap-3 border-b border-[var(--tapiz-border-subtle)] px-5 py-4 sm:flex-row sm:items-start sm:justify-between\">\n <div className=\"min-w-0\">\n {eyebrow ? <div className=\"kicker mb-1\">{eyebrow}</div> : null}\n {title ? <h3 className=\"text-lg font-semibold text-[var(--tapiz-text-primary)]\">{title}</h3> : null}\n {description ? <p className=\"mt-1 text-sm text-[var(--tapiz-text-muted)]\">{description}</p> : null}\n </div>\n {action ? <div className=\"shrink-0\">{action}</div> : null}\n </div>\n ) : null}\n <div className=\"p-5\">{children}</div>\n </Card>\n );\n}\n","import type { CSSProperties, InputHTMLAttributes } from \"react\";\nimport { Search, X } from \"../icons/index\";\nimport { Input } from \"../forms/Input\";\n\nexport interface SearchInputProps extends Omit<InputHTMLAttributes<HTMLInputElement>, \"value\" | \"onChange\"> {\n value: string;\n onChange: (value: string) => void;\n wrapperClassName?: string;\n wrapperStyle?: CSSProperties;\n inputClassName?: string;\n iconClassName?: string;\n clearable?: boolean;\n clearTitle?: string;\n}\n\nexport function SearchInput({\n value,\n onChange,\n placeholder = \"Search\",\n wrapperClassName = \"\",\n wrapperStyle,\n inputClassName = \"\",\n iconClassName = \"text-txt-4\",\n clearable = true,\n clearTitle = \"Clear search\",\n ...props\n}: SearchInputProps) {\n return (\n <div className={`relative ${wrapperClassName}`.trim()} style={wrapperStyle}>\n <span className={`pointer-events-none absolute left-3 top-1/2 -translate-y-1/2 ${iconClassName}`.trim()}>\n <Search size={15} />\n </span>\n <Input\n {...props}\n type=\"text\"\n value={value}\n onChange={e => onChange(e.target.value)}\n placeholder={placeholder}\n className={`pl-9 ${inputClassName}`.trim()}\n />\n {clearable && value ? (\n <button\n type=\"button\"\n onClick={() => onChange(\"\")}\n className=\"absolute right-2 top-1/2 -translate-y-1/2 rounded-lg p-1 text-txt-4 transition-colors hover:bg-ink-300 hover:text-txt-2\"\n title={clearTitle}\n >\n <X size={14} />\n </button>\n ) : null}\n </div>\n );\n}\n","import { ChevronLeft, ChevronRight } from \"../icons/index\";\n\nexport interface PaginationLabels {\n showing?: (args: { from: number; to: number; total: number }) => string;\n page?: (args: { page: number; totalPages: number }) => string;\n prev?: string;\n next?: string;\n prevTitle?: string;\n nextTitle?: string;\n}\n\nexport interface PaginationProps {\n page: number;\n totalPages: number;\n onChange: (page: number) => void;\n totalItems?: number;\n pageSize?: number;\n labels?: PaginationLabels;\n}\n\nfunction getPageNumbers(page: number, totalPages: number): (number | \"…\")[] {\n if (totalPages <= 7) return Array.from({ length: totalPages }, (_, i) => i + 1);\n const pages: (number | \"…\")[] = [1];\n if (page > 3) pages.push(\"…\");\n for (let i = Math.max(2, page - 1); i <= Math.min(totalPages - 1, page + 1); i += 1) pages.push(i);\n if (page < totalPages - 2) pages.push(\"…\");\n pages.push(totalPages);\n return pages;\n}\n\nconst defaultLabels: Required<PaginationLabels> = {\n showing: ({ from, to, total }) => `Showing ${from}-${to} of ${total}`,\n page: ({ page, totalPages }) => `Page ${page} of ${totalPages}`,\n prev: \"Prev\",\n next: \"Next\",\n prevTitle: \"Previous page\",\n nextTitle: \"Next page\",\n};\n\nexport function Pagination({ page, totalPages, onChange, totalItems, pageSize, labels }: PaginationProps) {\n if (totalPages <= 1) return null;\n\n const copy = { ...defaultLabels, ...labels };\n const pageNumbers = getPageNumbers(page, totalPages);\n const from = pageSize ? (page - 1) * pageSize + 1 : null;\n const to = pageSize && totalItems ? Math.min(page * pageSize, totalItems) : null;\n\n return (\n <div className=\"flex flex-col items-center justify-between gap-3 border-t border-border pt-3 sm:flex-row\">\n {totalItems != null && from != null && to != null ? (\n <span className=\"order-2 font-mono text-[12px] text-txt-4 sm:order-1\">\n {copy.showing({ from, to, total: totalItems })}\n </span>\n ) : (\n <span className=\"order-2 font-mono text-[11px] text-txt-4 sm:order-1\">\n {copy.page({ page, totalPages })}\n </span>\n )}\n\n <div className=\"order-1 flex items-center gap-1 sm:order-2\">\n <button\n type=\"button\"\n onClick={() => onChange(Math.max(1, page - 1))}\n disabled={page === 1}\n title={copy.prevTitle}\n className=\"flex items-center gap-1 border border-border px-2.5 py-1.5 font-mono text-[11px] text-txt-3 transition-colors hover:border-border-hi hover:text-txt-1 disabled:cursor-not-allowed disabled:opacity-30\"\n >\n <ChevronLeft size={12} />\n <span className=\"hidden sm:inline\">{copy.prev}</span>\n </button>\n\n <div className=\"flex items-center gap-1\">\n {pageNumbers.map((entry, index) =>\n entry === \"…\" ? (\n <span key={`ellipsis-${index}`} className=\"w-7 text-center font-mono text-[11px] text-txt-4\">\n …\n </span>\n ) : (\n <button\n key={entry}\n type=\"button\"\n onClick={() => onChange(entry)}\n className={`h-7 w-7 border font-mono text-[11px] transition-colors ${\n page === entry\n ? \"border-primary-300 bg-primary-300/10 text-primary-300\"\n : \"border-border text-txt-3 hover:border-border-hi hover:text-txt-1\"\n }`}\n >\n {entry}\n </button>\n ),\n )}\n </div>\n\n <button\n type=\"button\"\n onClick={() => onChange(Math.min(totalPages, page + 1))}\n disabled={page >= totalPages}\n title={copy.nextTitle}\n className=\"flex items-center gap-1 border border-border px-2.5 py-1.5 font-mono text-[10px] text-txt-3 transition-colors hover:border-border-hi hover:text-txt-1 disabled:cursor-not-allowed disabled:opacity-30\"\n >\n <span className=\"hidden sm:inline\">{copy.next}</span>\n <ChevronRight size={12} />\n </button>\n </div>\n </div>\n );\n}\n","import type { ReactNode } from \"react\";\n\nexport interface SectionTitleProps {\n children: ReactNode;\n className?: string;\n}\n\nexport function SectionTitle({ children, className = \"\" }: SectionTitleProps) {\n return <h3 className={`mb-1 text-sm font-semibold text-txt-1 ${className}`.trim()}>{children}</h3>;\n}\n","import type { ReactNode } from \"react\";\n\nexport type StatusBadgeVariant =\n | \"default\"\n | \"active\"\n | \"inactive\"\n | \"warning\"\n | \"success\"\n | \"danger\"\n | \"info\"\n | \"pending\";\n\nexport interface StatusBadgeProps {\n label: ReactNode;\n variant?: StatusBadgeVariant;\n className?: string;\n}\n\nconst BASE =\n \"inline-flex items-center border px-2 py-0.5 font-mono text-[9px] font-bold uppercase tracking-[0.15em]\";\n\nconst variantStyles: Record<StatusBadgeVariant, string> = {\n default: \"border-[var(--tapiz-border-strong)] text-[var(--tapiz-text-secondary)] bg-[var(--tapiz-bg-surface-muted)]\",\n active: \"border-[var(--tapiz-accent)] text-[var(--tapiz-accent)] bg-[var(--tapiz-accent-soft)]\",\n success: \"border-[var(--tapiz-success)] text-[var(--tapiz-success)] bg-[var(--tapiz-success-soft)]\",\n inactive: \"border-[var(--tapiz-text-disabled)] text-[var(--tapiz-text-disabled)] bg-transparent\",\n warning: \"border-[var(--tapiz-warning)] text-[var(--tapiz-warning)] bg-[var(--tapiz-warning-soft)]\",\n danger: \"border-[var(--tapiz-danger)] text-[var(--tapiz-danger)] bg-[var(--tapiz-danger-soft)]\",\n info: \"border-[var(--tapiz-info)] text-[var(--tapiz-info)] bg-[var(--tapiz-info-soft)]\",\n pending: \"border-[var(--tapiz-text-muted)] text-[var(--tapiz-text-muted)] bg-transparent\",\n};\n\nexport function StatusBadge({ label, variant = \"default\", className = \"\" }: StatusBadgeProps) {\n return <span className={`${BASE} ${variantStyles[variant]} ${className}`.trim()}>{label}</span>;\n}\n","import type { CSSProperties, ReactNode } from \"react\";\nimport { useEffect, useLayoutEffect, useRef, useState } from \"react\";\nimport { createPortal } from \"react-dom\";\nimport { Button } from \"../forms/Button\";\nimport { Spinner } from \"../feedback/Spinner\";\nimport { ChevronDown } from \"../icons/index\";\n\nexport interface ActionMenuItem {\n key: string;\n label: string;\n onSelect: () => void;\n icon?: ReactNode;\n danger?: boolean;\n disabled?: boolean;\n loading?: boolean;\n}\n\nexport interface ActionMenuProps {\n label: string;\n items: ActionMenuItem[];\n icon?: ReactNode;\n buttonSize?: \"xs\" | \"sm\" | \"md\" | \"lg\" | \"xl\";\n buttonVariant?: \"primary\" | \"secondary\" | \"danger\" | \"ghost\" | \"success\" | \"warning\" | \"info\" | \"muted-primary\" | \"outline-primary\" | \"outline-secondary\" | \"outline-danger\" | \"outline-success\" | \"link\";\n buttonClassName?: string;\n menuClassName?: string;\n menuStyle?: CSSProperties;\n fullWidth?: boolean;\n closeLabel?: string;\n}\n\nconst defaultMenuStyle: CSSProperties = {\n background: \"var(--color-ink-200)\",\n border: \"1px solid var(--color-border-hi)\",\n borderTop: \"2px solid var(--color-primary-300)\",\n boxShadow: \"0 16px 48px -8px rgba(0,0,0,0.45)\",\n maxHeight: \"min(320px, calc(100vh - 180px))\",\n};\n\nconst itemBaseClass =\n \"flex w-full items-center gap-2.5 border-l-2 border-transparent px-4 py-2.5 text-left text-sm transition-colors duration-100 hover:border-[var(--color-primary-300)] disabled:cursor-not-allowed disabled:opacity-40\";\n\ninterface MenuPosition {\n top?: number;\n bottom?: number;\n left: number;\n width: number;\n maxHeight?: number;\n}\n\nexport function ActionMenu({\n label,\n items,\n icon,\n buttonSize = \"sm\",\n buttonVariant = \"secondary\",\n buttonClassName = \"\",\n menuClassName,\n menuStyle,\n fullWidth = false,\n closeLabel,\n}: ActionMenuProps) {\n const [open, setOpen] = useState(false);\n const [pos, setPos] = useState<MenuPosition | null>(null);\n const btnRef = useRef<HTMLDivElement>(null);\n const menuRef = useRef<HTMLDivElement>(null);\n\n useLayoutEffect(() => {\n if (!open || !btnRef.current) return;\n\n const updatePosition = () => {\n const buttonElement = btnRef.current;\n if (!buttonElement) return;\n const rect = buttonElement.getBoundingClientRect();\n const viewportPadding = 8;\n const menuOffset = 4;\n const menuW = Math.min(320, window.innerWidth - viewportPadding * 2);\n const left = Math.max(\n viewportPadding,\n Math.min(rect.right - menuW, window.innerWidth - menuW - viewportPadding),\n );\n const estimatedMenuHeight = Math.min(320, items.length * 44 + 16);\n const spaceAbove = Math.max(0, rect.top - viewportPadding - menuOffset);\n const spaceBelow = Math.max(0, window.innerHeight - rect.bottom - viewportPadding - menuOffset);\n const preferBelow = spaceBelow >= estimatedMenuHeight || spaceBelow >= spaceAbove;\n\n if (preferBelow) {\n setPos({\n top: Math.min(rect.bottom + menuOffset, window.innerHeight - viewportPadding),\n left,\n width: menuW,\n maxHeight: Math.max(120, spaceBelow),\n });\n return;\n }\n\n setPos({\n bottom: Math.max(window.innerHeight - rect.top + menuOffset, viewportPadding),\n left,\n width: menuW,\n maxHeight: Math.max(120, spaceAbove),\n });\n };\n\n updatePosition();\n window.addEventListener(\"resize\", updatePosition);\n document.addEventListener(\"scroll\", updatePosition, true);\n return () => {\n window.removeEventListener(\"resize\", updatePosition);\n document.removeEventListener(\"scroll\", updatePosition, true);\n };\n }, [items.length, open]);\n\n useEffect(() => {\n if (!open) return;\n function handle(e: MouseEvent | KeyboardEvent) {\n if (e instanceof KeyboardEvent) { if (e.key === \"Escape\") setOpen(false); return; }\n const target = e.target as Node;\n if (btnRef.current?.contains(target) || menuRef.current?.contains(target)) return;\n setOpen(false);\n }\n document.addEventListener(\"mousedown\", handle);\n document.addEventListener(\"keydown\", handle);\n return () => { document.removeEventListener(\"mousedown\", handle); document.removeEventListener(\"keydown\", handle); };\n }, [open]);\n\n const menuNode = open && pos ? (\n <>\n <div className=\"fixed inset-0 z-9998\" onClick={() => setOpen(false)} />\n <div\n ref={menuRef}\n className={menuClassName ?? \"overflow-auto\"}\n style={{\n position: \"fixed\",\n top: pos.top !== undefined ? pos.top : undefined,\n bottom: pos.bottom !== undefined ? pos.bottom : undefined,\n left: pos.left,\n width: pos.width,\n maxWidth: \"calc(100vw - 16px)\",\n zIndex: 9999,\n ...defaultMenuStyle,\n maxHeight: pos.maxHeight ?? defaultMenuStyle.maxHeight,\n ...menuStyle,\n }}\n >\n {items.map((item, index) => (\n <div key={item.key}>\n {index > 0 && item.danger ? <div style={{ borderTop: \"1px solid var(--color-border)\" }} /> : null}\n <button\n type=\"button\"\n className={itemBaseClass}\n style={{ color: item.danger ? \"var(--color-warn)\" : \"var(--color-txt-2)\" }}\n disabled={item.disabled || item.loading}\n onClick={() => {\n setOpen(false);\n item.onSelect();\n }}\n >\n {item.loading ? (\n <Spinner color=\"text-[var(--color-txt-3)]\" />\n ) : (\n <span className={item.danger ? \"shrink-0 text-warn\" : \"shrink-0 text-primary-300\"}>{item.icon}</span>\n )}\n <span>{item.label}</span>\n </button>\n </div>\n ))}\n </div>\n </>\n ) : null;\n\n return (\n <div ref={btnRef} className={fullWidth ? \"relative w-full\" : \"relative inline-block max-w-full\"}>\n <Button\n size={buttonSize}\n variant={buttonVariant}\n icon={icon}\n iconRight={<ChevronDown size={11} />}\n onClick={() => setOpen(value => !value)}\n className={buttonClassName}\n fullWidth={fullWidth}\n >\n {label}\n </Button>\n {typeof document !== \"undefined\" ? createPortal(menuNode, document.body) : null}\n </div>\n );\n}\n","import { useMemo, useState, type ReactNode } from \"react\";\nimport { ChevronDown, ChevronUp } from \"../icons/index\";\nimport { DataTableRow } from \"./DataTableRow\";\nimport type { Column, ColumnAlign, ServerSort, SortDirection, SortState } from \"./types\";\n\nconst ALIGN_CLASS: Record<ColumnAlign, string> = {\n left: \"text-left\",\n center: \"text-center\",\n right: \"text-right\",\n};\n\nexport type DataTableDensity = \"compact\" | \"comfortable\" | \"spacious\";\nexport type DataTableVariant = \"default\" | \"enterprise\" | \"brutal\";\n\nexport interface DataTableProps<T> {\n data: T[];\n columns: Column<T>[];\n /** Stable unique key per row. */\n rowKey: (row: T) => string;\n isLoading?: boolean;\n /** Rendered (inside a full-width row) when there is no data. */\n emptyState?: ReactNode;\n onRowClick?: (row: T) => void;\n /** Number of skeleton rows shown while loading. Defaults to 8. */\n loadingRows?: number;\n /**\n * When provided, renders an extra right-aligned column at the end of every\n * row. The function receives the row and must return a `ReactNode` (e.g.\n * action buttons). When omitted, no extra column is added.\n */\n rowActions?: (row: T) => ReactNode;\n /**\n * When provided, disables internal client-side sort and delegates sorting to\n * the caller. Clicking a sortable column header calls `onSort(column.id)`.\n * `aria-sort` reflects `field` and `dir`.\n */\n serverSort?: ServerSort;\n /**\n * When provided, renders the node below the `<table>` inside the outer\n * border wrapper. No styling is added — callers own all padding/layout.\n */\n footer?: ReactNode;\n /**\n * When provided:\n * - The `<table>` is hidden on small screens (`hidden md:table`).\n * - A `<div className=\"md:hidden\">` is rendered before the table, mapping\n * each row to a card via this function (keyed by `rowKey(row)`).\n */\n mobileCard?: (row: T) => ReactNode;\n /** Visual density of header and cells. Defaults to comfortable. */\n density?: DataTableDensity;\n /** Enterprise adds stronger surface treatment; brutal adds 2px border + hard shadow. */\n variant?: DataTableVariant;\n /** Makes the table header sticky inside the scroll container. */\n stickyHeader?: boolean;\n /** Applies token-based zebra striping. Defaults to true. */\n striped?: boolean;\n className?: string;\n}\n\nfunction compareValues(\n a: ReturnType<NonNullable<Column<unknown>[\"sortAccessor\"]>>,\n b: ReturnType<NonNullable<Column<unknown>[\"sortAccessor\"]>>,\n): number {\n if (a == null && b == null) return 0;\n if (a == null) return -1;\n if (b == null) return 1;\n if (a instanceof Date && b instanceof Date) return a.getTime() - b.getTime();\n if (typeof a === \"number\" && typeof b === \"number\") return a - b;\n if (typeof a === \"boolean\" && typeof b === \"boolean\") return Number(a) - Number(b);\n return String(a).localeCompare(String(b));\n}\n\nfunction ariaSort(active: boolean, direction: SortDirection): \"ascending\" | \"descending\" | \"none\" {\n if (!active) return \"none\";\n return direction === \"asc\" ? \"ascending\" : \"descending\";\n}\n\n/**\n * Generic, accessible, client-sortable table.\n *\n * - Pass already-translated `ReactNode`s for headers and `emptyState`; the\n * component never hardcodes user-facing strings (full i18n compatibility).\n * - Sorting toggles asc/desc on sortable columns and is purely client-side\n * unless `serverSort` is provided.\n * - Rows are memoized and the sorted view is memoized via `useMemo`.\n * - Optional `rowActions`, `serverSort`, `footer`, and `mobileCard` props are\n * all additive — existing usages continue to work with zero changes.\n */\nexport function DataTable<T>({\n data,\n columns,\n rowKey,\n isLoading = false,\n emptyState,\n onRowClick,\n loadingRows = 8,\n rowActions,\n serverSort,\n footer,\n mobileCard,\n density = \"comfortable\",\n variant = \"default\",\n stickyHeader = false,\n striped = true,\n className = \"\",\n}: DataTableProps<T>) {\n const [sort, setSort] = useState<SortState | null>(null);\n\n // When serverSort is active, skip client-side sort entirely.\n const sortedData = useMemo(() => {\n if (serverSort) return data;\n if (!sort) return data;\n const column = columns.find((c) => c.id === sort.columnId);\n if (!column?.sortAccessor) return data;\n const accessor = column.sortAccessor;\n const factor = sort.direction === \"asc\" ? 1 : -1;\n return [...data].sort((a, b) => compareValues(accessor(a), accessor(b)) * factor);\n }, [data, columns, sort, serverSort]);\n\n const toggleSort = (columnId: string) => {\n if (serverSort) {\n serverSort.onSort(columnId);\n return;\n }\n setSort((prev) => {\n if (prev?.columnId !== columnId) return { columnId, direction: \"asc\" };\n return { columnId, direction: prev.direction === \"asc\" ? \"desc\" : \"asc\" };\n });\n };\n\n const hasActions = rowActions !== undefined;\n const colCount = columns.length + (hasActions ? 1 : 0);\n const tableClass = mobileCard !== undefined ? \"hidden md:table w-full text-sm table-collapse\" : \"w-full text-sm table-collapse\";\n const densityHeaderClass = density === \"compact\" ? \"px-3 py-2\" : density === \"spacious\" ? \"px-4 py-4\" : \"px-3 py-2.5\";\n const densityCellClass = density === \"compact\" ? \"px-3 py-2\" : density === \"spacious\" ? \"px-4 py-4\" : \"px-3 py-2.5\";\n const wrapperClass = [\n \"overflow-x-auto\",\n variant === \"brutal\" ? \"border-2 border-[var(--tapiz-border-strong)] shadow-[var(--tapiz-shadow-brutal)]\" : \"border border-[var(--tapiz-border-subtle)]\",\n variant === \"enterprise\" ? \"bg-[var(--tapiz-bg-surface)] shadow-[var(--tapiz-shadow-md)]\" : \"\",\n className,\n ].filter(Boolean).join(\" \");\n\n return (\n <div className={wrapperClass}>\n {/* Mobile card slot — only present when mobileCard is provided */}\n {mobileCard !== undefined && (\n <div className=\"md:hidden\">\n {isLoading\n ? Array.from({ length: loadingRows }).map((_, i) => (\n <div key={i} className=\"h-16 animate-pulse bg-ink-300\" />\n ))\n : sortedData.length === 0\n ? emptyState\n : sortedData.map((row) => (\n <div key={rowKey(row)}>{mobileCard(row)}</div>\n ))}\n </div>\n )}\n\n <table className={tableClass}>\n <thead>\n <tr className=\"border-b border-border bg-ink-300\">\n {columns.map((column) => {\n const baseClass = `${densityHeaderClass} ${stickyHeader ? \"sticky top-0 z-10\" : \"\"} ${ALIGN_CLASS[column.align ?? \"left\"]} font-mono text-[11px] tracking-[.08em] text-txt-4 font-semibold whitespace-nowrap`;\n\n if (!column.sortable || !column.sortAccessor) {\n return (\n <th key={column.id} scope=\"col\" className={baseClass}>\n {column.header}\n </th>\n );\n }\n\n // aria-sort: serverSort drives the active column; fall back to local sort state.\n const active = serverSort\n ? serverSort.field === column.id\n : sort?.columnId === column.id;\n const direction = serverSort\n ? serverSort.dir\n : (sort?.direction ?? \"asc\");\n\n return (\n <th\n key={column.id}\n scope=\"col\"\n aria-sort={ariaSort(active, direction)}\n className={baseClass}\n >\n <button\n type=\"button\"\n onClick={() => toggleSort(column.id)}\n className={`inline-flex items-center gap-1 select-none transition-colors hover:text-txt-1 ${\n active ? \"text-txt-1\" : \"\"\n }`}\n >\n {column.header}\n {active &&\n (direction === \"asc\" ? <ChevronUp size={12} /> : <ChevronDown size={12} />)}\n </button>\n </th>\n );\n })}\n {hasActions && (\n <th scope=\"col\" className=\"px-3 py-2.5 text-right font-mono text-[11px] tracking-[.08em] text-txt-4 font-semibold whitespace-nowrap\" />\n )}\n </tr>\n </thead>\n <tbody>\n {isLoading ? (\n Array.from({ length: loadingRows }).map((_, rowIndex) => (\n <tr key={rowIndex} className=\"border-b border-[var(--tapiz-border-subtle)]\">\n {Array.from({ length: colCount }).map((__, colIndex) => (\n <td key={colIndex} className={densityCellClass}>\n <div className=\"h-4 w-24 animate-pulse bg-[var(--tapiz-bg-surface-muted)]\" />\n </td>\n ))}\n </tr>\n ))\n ) : sortedData.length === 0 ? (\n <tr>\n <td colSpan={colCount} className=\"px-4 py-10 text-center text-txt-4 text-sm font-mono\">\n {emptyState}\n </td>\n </tr>\n ) : (\n sortedData.map((row) => (\n <DataTableRow\n key={rowKey(row)}\n row={row}\n columns={columns}\n onRowClick={onRowClick}\n rowActions={rowActions}\n densityCellClass={densityCellClass}\n striped={striped}\n />\n ))\n )}\n </tbody>\n </table>\n\n {footer !== undefined && footer}\n </div>\n );\n}\n","import { memo, type ReactNode } from \"react\";\nimport type { Column, ColumnAlign } from \"./types\";\n\nconst ALIGN_CLASS: Record<ColumnAlign, string> = {\n left: \"text-left\",\n center: \"text-center\",\n right: \"text-right\",\n};\n\ninterface DataTableRowProps<T> {\n row: T;\n columns: Column<T>[];\n onRowClick?: (row: T) => void;\n rowActions?: (row: T) => ReactNode;\n densityCellClass?: string;\n striped?: boolean;\n}\n\nfunction DataTableRowInner<T>({ row, columns, onRowClick, rowActions, densityCellClass = \"px-3 py-2.5\", striped = true }: DataTableRowProps<T>) {\n const clickable = Boolean(onRowClick);\n return (\n <tr\n onClick={clickable ? () => onRowClick?.(row) : undefined}\n className={`border-b border-[var(--tapiz-border-subtle)] transition-colors hover:bg-[var(--tapiz-bg-surface-muted)] ${striped ? \"even:bg-[color-mix(in_srgb,var(--tapiz-bg-surface-muted)_35%,var(--tapiz-bg-surface))]\" : \"\"} ${\n clickable ? \"cursor-pointer\" : \"\"\n }`}\n >\n {columns.map((column) => (\n <td\n key={column.id}\n className={`${densityCellClass} text-xs text-[var(--tapiz-text-secondary)] ${ALIGN_CLASS[column.align ?? \"left\"]} ${\n column.className ?? \"\"\n }`}\n >\n {column.cell(row)}\n </td>\n ))}\n {rowActions !== undefined && (\n <td className={`${densityCellClass} text-right`}>{rowActions(row)}</td>\n )}\n </tr>\n );\n}\n\n/**\n * Memoized row. Re-renders only when its `row`, `columns`, or `onRowClick`\n * reference changes — keeping large lists cheap to re-render.\n *\n * `memo` strips generics, so we re-assert the generic signature on the export.\n */\nexport const DataTableRow = memo(DataTableRowInner) as typeof DataTableRowInner;\n","import type { ReactNode } from \"react\";\n\nexport interface MarketingShellProps {\n children: ReactNode;\n className?: string;\n grid?: boolean;\n noise?: boolean;\n}\n\nexport function MarketingShell({ children, className = \"\", grid = true, noise = true }: MarketingShellProps) {\n return (\n <main\n className={[\n \"min-h-screen overflow-hidden bg-[var(--tapiz-bg-page)] text-[var(--tapiz-text-primary)]\",\n grid ? \"tapiz-grid-bg\" : \"\",\n noise ? \"tapiz-noise-bg\" : \"\",\n className,\n ].filter(Boolean).join(\" \")}\n >\n {children}\n </main>\n );\n}\n","import type { ReactNode } from \"react\";\n\nexport interface HeroFrameProps {\n eyebrow?: ReactNode;\n title: ReactNode;\n description?: ReactNode;\n actions?: ReactNode;\n visual?: ReactNode;\n meta?: ReactNode;\n className?: string;\n}\n\nexport function HeroFrame({ eyebrow, title, description, actions, visual, meta, className = \"\" }: HeroFrameProps) {\n return (\n <section className={`mx-auto grid max-w-7xl gap-10 px-[var(--tapiz-space-page-x)] py-[var(--tapiz-space-section-y)] lg:grid-cols-[1fr_0.9fr] lg:items-center ${className}`}>\n <div className=\"animate-fade-in-up\">\n {eyebrow ? <div className=\"kicker mb-4\">{eyebrow}</div> : null}\n <h1 className=\"max-w-4xl text-5xl font-semibold leading-[0.95] tracking-[-0.07em] text-[var(--tapiz-text-primary)] md:text-7xl\">\n {title}\n </h1>\n {description ? <p className=\"mt-6 max-w-2xl text-base leading-7 text-[var(--tapiz-text-secondary)] md:text-lg\">{description}</p> : null}\n {actions ? <div className=\"mt-8 flex flex-wrap gap-3\">{actions}</div> : null}\n {meta ? <div className=\"mt-8 border-l-2 border-[var(--tapiz-accent)] pl-4 font-mono text-xs text-[var(--tapiz-text-muted)]\">{meta}</div> : null}\n </div>\n {visual ? (\n <div className=\"animate-scale-in border-2 border-[var(--tapiz-border-strong)] bg-[var(--tapiz-bg-surface)] p-3 shadow-[var(--tapiz-shadow-brutal-lg)]\">\n {visual}\n </div>\n ) : null}\n </section>\n );\n}\n","import type { ReactNode } from \"react\";\nimport { Card } from \"../shared/Card\";\n\nexport interface FeatureCardProps {\n title: ReactNode;\n description?: ReactNode;\n icon?: ReactNode;\n eyebrow?: ReactNode;\n children?: ReactNode;\n className?: string;\n variant?: \"surface\" | \"brutal\" | \"raised\";\n}\n\nexport function FeatureCard({ title, description, icon, eyebrow, children, className = \"\", variant = \"surface\" }: FeatureCardProps) {\n return (\n <Card variant={variant} hover className={`group ${className}`}>\n <div className=\"flex items-start gap-4\">\n {icon ? <div className=\"grid h-11 w-11 shrink-0 place-items-center border border-[var(--tapiz-border-strong)] bg-[var(--color-icon-bg)] text-[var(--tapiz-accent)] group-hover:translate-x-[-1px] group-hover:translate-y-[-1px]\">{icon}</div> : null}\n <div className=\"min-w-0\">\n {eyebrow ? <div className=\"kicker mb-1\">{eyebrow}</div> : null}\n <h3 className=\"text-lg font-semibold text-[var(--tapiz-text-primary)]\">{title}</h3>\n {description ? <p className=\"mt-2 text-sm leading-6 text-[var(--tapiz-text-muted)]\">{description}</p> : null}\n </div>\n </div>\n {children ? <div className=\"mt-5\">{children}</div> : null}\n </Card>\n );\n}\n","import type { ReactNode } from \"react\";\n\nexport interface FeatureGridProps {\n children: ReactNode;\n className?: string;\n}\n\nexport function FeatureGrid({ children, className = \"\" }: FeatureGridProps) {\n return <div className={`grid gap-4 md:grid-cols-2 xl:grid-cols-3 ${className}`}>{children}</div>;\n}\n","import type { ReactNode } from \"react\";\n\nexport interface CTASectionProps {\n eyebrow?: ReactNode;\n title: ReactNode;\n description?: ReactNode;\n actions?: ReactNode;\n className?: string;\n}\n\nexport function CTASection({ eyebrow, title, description, actions, className = \"\" }: CTASectionProps) {\n return (\n <section className={`mx-auto max-w-7xl px-[var(--tapiz-space-page-x)] py-[var(--tapiz-space-section-y)] ${className}`}>\n <div className=\"border-2 border-[var(--tapiz-border-strong)] bg-[var(--tapiz-bg-surface)] p-8 shadow-[var(--tapiz-shadow-brutal-lg)] md:p-12\">\n {eyebrow ? <div className=\"kicker mb-3\">{eyebrow}</div> : null}\n <div className=\"grid gap-6 lg:grid-cols-[1fr_auto] lg:items-end\">\n <div>\n <h2 className=\"max-w-3xl text-3xl font-semibold tracking-[-0.05em] md:text-5xl\">{title}</h2>\n {description ? <p className=\"mt-4 max-w-2xl text-base leading-7 text-[var(--tapiz-text-secondary)]\">{description}</p> : null}\n </div>\n {actions ? <div className=\"flex flex-wrap gap-3\">{actions}</div> : null}\n </div>\n </div>\n </section>\n );\n}\n","import type { ReactNode } from \"react\";\n\nexport interface MockupFrameProps {\n children: ReactNode;\n title?: ReactNode;\n toolbar?: ReactNode;\n className?: string;\n}\n\nexport function MockupFrame({ children, title, toolbar, className = \"\" }: MockupFrameProps) {\n return (\n <div className={`overflow-hidden border-2 border-[var(--tapiz-border-strong)] bg-[var(--tapiz-bg-surface)] shadow-[var(--tapiz-shadow-brutal)] ${className}`}>\n <div className=\"flex items-center justify-between border-b border-[var(--tapiz-border-strong)] bg-[var(--tapiz-bg-surface-muted)] px-3 py-2\">\n <div className=\"flex items-center gap-1.5\">\n <span className=\"h-2.5 w-2.5 border border-[var(--tapiz-border-strong)] bg-[var(--tapiz-danger)]\" />\n <span className=\"h-2.5 w-2.5 border border-[var(--tapiz-border-strong)] bg-[var(--tapiz-warning)]\" />\n <span className=\"h-2.5 w-2.5 border border-[var(--tapiz-border-strong)] bg-[var(--tapiz-success)]\" />\n </div>\n {title ? <div className=\"font-mono text-[10px] uppercase tracking-widest text-[var(--tapiz-text-muted)]\">{title}</div> : null}\n <div>{toolbar}</div>\n </div>\n <div className=\"p-4\">{children}</div>\n </div>\n );\n}\n","import type { ReactNode } from \"react\";\n\nexport interface ComparisonTableRow {\n feature: ReactNode;\n included: ReactNode;\n alternative?: ReactNode;\n}\n\nexport interface ComparisonTableProps {\n rows: ComparisonTableRow[];\n featureHeader?: ReactNode;\n includedHeader?: ReactNode;\n alternativeHeader?: ReactNode;\n className?: string;\n}\n\nexport function ComparisonTable({ rows, featureHeader = \"Feature\", includedHeader = \"Tapiz\", alternativeHeader = \"Other\", className = \"\" }: ComparisonTableProps) {\n return (\n <div className={`overflow-x-auto border border-[var(--tapiz-border-strong)] ${className}`}>\n <table className=\"w-full text-sm\">\n <thead>\n <tr>\n <th className=\"px-4 py-3 text-left\">{featureHeader}</th>\n <th className=\"px-4 py-3 text-left\">{includedHeader}</th>\n <th className=\"px-4 py-3 text-left\">{alternativeHeader}</th>\n </tr>\n </thead>\n <tbody>\n {rows.map((row, index) => (\n <tr key={index} className=\"border-t border-[var(--tapiz-border-subtle)]\">\n <td className=\"px-4 py-3 font-medium text-[var(--tapiz-text-primary)]\">{row.feature}</td>\n <td className=\"px-4 py-3 text-[var(--tapiz-text-secondary)]\">{row.included}</td>\n <td className=\"px-4 py-3 text-[var(--tapiz-text-muted)]\">{row.alternative}</td>\n </tr>\n ))}\n </tbody>\n </table>\n </div>\n );\n}\n","import type { ReactNode } from \"react\";\n\nexport interface AppShellProps {\n sidebar?: ReactNode;\n topbar?: ReactNode;\n children: ReactNode;\n aside?: ReactNode;\n className?: string;\n contentClassName?: string;\n variant?: \"default\" | \"grid\" | \"noise\";\n}\n\nconst variantClasses = {\n default: \"bg-[var(--tapiz-bg-page)]\",\n grid: \"bg-[var(--tapiz-bg-page)] tapiz-grid-bg\",\n noise: \"bg-[var(--tapiz-bg-page)] tapiz-noise-bg\",\n};\n\nexport function AppShell({ sidebar, topbar, children, aside, className = \"\", contentClassName = \"\", variant = \"default\" }: AppShellProps) {\n return (\n <div className={`min-h-screen text-[var(--tapiz-text-primary)] ${variantClasses[variant]} ${className}`}>\n {topbar}\n <div className=\"mx-auto flex w-full max-w-[1600px]\">\n {sidebar ? <aside className=\"hidden min-h-[calc(100vh-1px)] w-72 shrink-0 border-r border-[var(--tapiz-border-subtle)] bg-[var(--tapiz-bg-surface)] lg:block\">{sidebar}</aside> : null}\n <main className={`min-w-0 flex-1 px-[var(--tapiz-space-page-x)] py-6 ${contentClassName}`}>{children}</main>\n {aside ? <aside className=\"hidden w-80 shrink-0 border-l border-[var(--tapiz-border-subtle)] bg-[var(--tapiz-bg-surface)] xl:block\">{aside}</aside> : null}\n </div>\n </div>\n );\n}\n","import type { ReactNode } from \"react\";\n\nexport interface SplitPaneProps {\n primary: ReactNode;\n secondary: ReactNode;\n ratio?: \"50/50\" | \"60/40\" | \"70/30\";\n reverseOnMobile?: boolean;\n className?: string;\n}\n\nconst ratios = {\n \"50/50\": \"lg:grid-cols-2\",\n \"60/40\": \"lg:grid-cols-[minmax(0,3fr)_minmax(320px,2fr)]\",\n \"70/30\": \"lg:grid-cols-[minmax(0,7fr)_minmax(280px,3fr)]\",\n};\n\nexport function SplitPane({ primary, secondary, ratio = \"60/40\", reverseOnMobile = false, className = \"\" }: SplitPaneProps) {\n return (\n <div className={`grid gap-5 ${ratios[ratio]} ${className}`}>\n <div className={reverseOnMobile ? \"order-2 lg:order-1\" : \"\"}>{primary}</div>\n <div className={reverseOnMobile ? \"order-1 lg:order-2\" : \"\"}>{secondary}</div>\n </div>\n );\n}\n","import type { ReactNode } from \"react\";\n\nexport interface StackProps {\n children: ReactNode;\n gap?: \"xs\" | \"sm\" | \"md\" | \"lg\" | \"xl\";\n direction?: \"vertical\" | \"horizontal\";\n align?: \"start\" | \"center\" | \"end\" | \"stretch\";\n justify?: \"start\" | \"center\" | \"between\" | \"end\";\n wrap?: boolean;\n className?: string;\n}\n\nconst gapClasses = { xs: \"gap-1\", sm: \"gap-2\", md: \"gap-4\", lg: \"gap-6\", xl: \"gap-8\" };\nconst alignClasses = { start: \"items-start\", center: \"items-center\", end: \"items-end\", stretch: \"items-stretch\" };\nconst justifyClasses = { start: \"justify-start\", center: \"justify-center\", between: \"justify-between\", end: \"justify-end\" };\n\nexport function Stack({ children, gap = \"md\", direction = \"vertical\", align = \"stretch\", justify = \"start\", wrap = false, className = \"\" }: StackProps) {\n return (\n <div className={`flex ${direction === \"vertical\" ? \"flex-col\" : \"flex-row\"} ${gapClasses[gap]} ${alignClasses[align]} ${justifyClasses[justify]} ${wrap ? \"flex-wrap\" : \"\"} ${className}`}>\n {children}\n </div>\n );\n}\n","import type { ReactNode } from \"react\";\n\nexport interface ClusterProps {\n children: ReactNode;\n gap?: \"xs\" | \"sm\" | \"md\" | \"lg\";\n align?: \"start\" | \"center\" | \"end\";\n justify?: \"start\" | \"center\" | \"between\" | \"end\";\n className?: string;\n}\n\nconst gapClasses = { xs: \"gap-1\", sm: \"gap-2\", md: \"gap-3\", lg: \"gap-5\" };\nconst alignClasses = { start: \"items-start\", center: \"items-center\", end: \"items-end\" };\nconst justifyClasses = { start: \"justify-start\", center: \"justify-center\", between: \"justify-between\", end: \"justify-end\" };\n\nexport function Cluster({ children, gap = \"sm\", align = \"center\", justify = \"start\", className = \"\" }: ClusterProps) {\n return <div className={`flex flex-wrap ${gapClasses[gap]} ${alignClasses[align]} ${justifyClasses[justify]} ${className}`}>{children}</div>;\n}\n","import type { ReactNode } from \"react\";\n\nexport interface BreadcrumbItem {\n label: ReactNode;\n href?: string;\n current?: boolean;\n}\n\nexport interface BreadcrumbsProps {\n items: BreadcrumbItem[];\n separator?: ReactNode;\n className?: string;\n}\n\nexport function Breadcrumbs({ items, separator = \"/\", className = \"\" }: BreadcrumbsProps) {\n return (\n <nav aria-label=\"Breadcrumb\" className={`font-mono text-[10px] uppercase tracking-[0.18em] text-[var(--tapiz-text-muted)] ${className}`}>\n <ol className=\"flex flex-wrap items-center gap-2\">\n {items.map((item, index) => (\n <li key={index} className=\"flex items-center gap-2\">\n {index > 0 ? <span aria-hidden=\"true\" className=\"text-[var(--tapiz-text-disabled)]\">{separator}</span> : null}\n {item.href && !item.current ? (\n <a className=\"hover:text-[var(--tapiz-accent)]\" href={item.href}>{item.label}</a>\n ) : (\n <span aria-current={item.current ? \"page\" : undefined} className={item.current ? \"text-[var(--tapiz-text-primary)]\" : \"\"}>{item.label}</span>\n )}\n </li>\n ))}\n </ol>\n </nav>\n );\n}\n","import type { ReactNode } from \"react\";\n\nexport interface SidebarNavItem {\n label: ReactNode;\n href?: string;\n icon?: ReactNode;\n badge?: ReactNode;\n active?: boolean;\n disabled?: boolean;\n onClick?: () => void;\n}\n\nexport interface SidebarNavGroup {\n label?: ReactNode;\n items: SidebarNavItem[];\n}\n\nexport interface SidebarNavProps {\n groups: SidebarNavGroup[];\n header?: ReactNode;\n footer?: ReactNode;\n className?: string;\n}\n\nexport function SidebarNav({ groups, header, footer, className = \"\" }: SidebarNavProps) {\n return (\n <div className={`flex h-full min-h-screen flex-col bg-[var(--tapiz-bg-surface)] ${className}`}>\n {header ? <div className=\"border-b border-[var(--tapiz-border-subtle)] p-4\">{header}</div> : null}\n <nav className=\"flex-1 space-y-6 p-3\">\n {groups.map((group, groupIndex) => (\n <div key={groupIndex}>\n {group.label ? <div className=\"mb-2 px-2 font-mono text-[10px] font-bold uppercase tracking-[0.18em] text-[var(--tapiz-text-muted)]\">{group.label}</div> : null}\n <div className=\"space-y-1\">\n {group.items.map((item, itemIndex) => <SidebarNavLink key={itemIndex} item={item} />)}\n </div>\n </div>\n ))}\n </nav>\n {footer ? <div className=\"border-t border-[var(--tapiz-border-subtle)] p-4\">{footer}</div> : null}\n </div>\n );\n}\n\nfunction SidebarNavLink({ item }: { item: SidebarNavItem }) {\n const className = [\n \"flex w-full items-center gap-3 border px-3 py-2 text-left text-sm font-medium\",\n item.active\n ? \"border-[var(--tapiz-border-strong)] bg-[var(--tapiz-accent-soft)] text-[var(--tapiz-text-primary)] shadow-[inset_3px_0_0_var(--tapiz-accent)]\"\n : \"border-transparent text-[var(--tapiz-text-secondary)] hover:border-[var(--tapiz-border-subtle)] hover:bg-[var(--tapiz-bg-surface-muted)] hover:text-[var(--tapiz-text-primary)]\",\n item.disabled ? \"pointer-events-none opacity-40\" : \"\",\n ].filter(Boolean).join(\" \");\n\n const content = (\n <>\n {item.icon ? <span className=\"grid size-5 place-items-center text-[var(--tapiz-text-muted)]\">{item.icon}</span> : null}\n <span className=\"min-w-0 flex-1 truncate\">{item.label}</span>\n {item.badge ? <span>{item.badge}</span> : null}\n </>\n );\n\n return item.href ? <a className={className} href={item.href}>{content}</a> : <button type=\"button\" className={className} onClick={item.onClick} disabled={item.disabled}>{content}</button>;\n}\n","import type { ReactNode } from \"react\";\n\nexport interface TopNavLink {\n label: ReactNode;\n href?: string;\n active?: boolean;\n onClick?: () => void;\n}\n\nexport interface TopNavProps {\n brand?: ReactNode;\n links?: TopNavLink[];\n actions?: ReactNode;\n className?: string;\n sticky?: boolean;\n}\n\nexport function TopNav({ brand, links = [], actions, className = \"\", sticky = true }: TopNavProps) {\n return (\n <header className={`${sticky ? \"sticky top-0 z-40\" : \"\"} border-b border-[var(--tapiz-border-subtle)] bg-[color-mix(in_srgb,var(--tapiz-bg-surface)_88%,transparent)] backdrop-blur-xl ${className}`}>\n <div className=\"mx-auto flex h-16 max-w-[1600px] items-center gap-6 px-[var(--tapiz-space-page-x)]\">\n {brand ? <div className=\"shrink-0\">{brand}</div> : null}\n <nav className=\"hidden items-center gap-1 md:flex\">\n {links.map((link, index) => {\n const cls = `border px-3 py-1.5 text-sm font-medium ${link.active ? \"border-[var(--tapiz-border-strong)] bg-[var(--tapiz-bg-surface-muted)] text-[var(--tapiz-text-primary)]\" : \"border-transparent text-[var(--tapiz-text-secondary)] hover:border-[var(--tapiz-border-subtle)] hover:text-[var(--tapiz-text-primary)]\"}`;\n return link.href ? <a key={index} href={link.href} className={cls}>{link.label}</a> : <button key={index} type=\"button\" onClick={link.onClick} className={cls}>{link.label}</button>;\n })}\n </nav>\n {actions ? <div className=\"ml-auto flex items-center gap-2\">{actions}</div> : null}\n </div>\n </header>\n );\n}\n","import type { ReactNode } from \"react\";\n\nexport interface TabItem {\n id: string;\n label: ReactNode;\n content: ReactNode;\n badge?: ReactNode;\n disabled?: boolean;\n}\n\nexport interface TabsProps {\n items: TabItem[];\n activeId: string;\n onChange?: (id: string) => void;\n className?: string;\n variant?: \"line\" | \"boxed\" | \"brutal\";\n}\n\nconst variants = {\n line: \"border-b border-[var(--tapiz-border-subtle)]\",\n boxed: \"border border-[var(--tapiz-border-subtle)] bg-[var(--tapiz-bg-surface-muted)] p-1\",\n brutal: \"border-2 border-[var(--tapiz-border-strong)] bg-[var(--tapiz-bg-surface)] p-1 shadow-[var(--tapiz-shadow-brutal)]\",\n};\n\nexport function Tabs({ items, activeId, onChange, className = \"\", variant = \"line\" }: TabsProps) {\n const active = items.find((item) => item.id === activeId) ?? items[0];\n return (\n <div className={className}>\n <div role=\"tablist\" className={`flex flex-wrap gap-1 ${variants[variant]}`}>\n {items.map((item) => {\n const selected = item.id === active?.id;\n return (\n <button\n key={item.id}\n type=\"button\"\n role=\"tab\"\n aria-selected={selected}\n disabled={item.disabled}\n onClick={() => onChange?.(item.id)}\n className={`inline-flex items-center gap-2 px-3 py-2 text-sm font-semibold disabled:cursor-not-allowed disabled:opacity-40 ${selected ? \"bg-[var(--tapiz-bg-surface)] text-[var(--tapiz-text-primary)] shadow-[inset_0_-2px_0_var(--tapiz-accent)]\" : \"text-[var(--tapiz-text-muted)] hover:bg-[var(--tapiz-bg-surface)] hover:text-[var(--tapiz-text-primary)]\"}`}\n >\n {item.label}\n {item.badge}\n </button>\n );\n })}\n </div>\n <div role=\"tabpanel\" className=\"pt-4\">{active?.content}</div>\n </div>\n );\n}\n","import type { ReactNode } from \"react\";\n\nexport interface AccordionItem {\n id: string;\n title: ReactNode;\n content: ReactNode;\n meta?: ReactNode;\n disabled?: boolean;\n}\n\nexport interface AccordionProps {\n items: AccordionItem[];\n openIds?: string[];\n onToggle?: (id: string) => void;\n className?: string;\n allowMultiple?: boolean;\n}\n\nexport function Accordion({ items, openIds = [], onToggle, className = \"\" }: AccordionProps) {\n return (\n <div className={`divide-y divide-[var(--tapiz-border-subtle)] border border-[var(--tapiz-border-subtle)] bg-[var(--tapiz-bg-surface)] ${className}`}>\n {items.map((item) => {\n const open = openIds.includes(item.id);\n return (\n <section key={item.id}>\n <button\n type=\"button\"\n disabled={item.disabled}\n aria-expanded={open}\n onClick={() => onToggle?.(item.id)}\n className=\"flex w-full items-center justify-between gap-4 px-4 py-3 text-left disabled:opacity-40\"\n >\n <span className=\"font-semibold text-[var(--tapiz-text-primary)]\">{item.title}</span>\n <span className=\"flex items-center gap-3 text-[var(--tapiz-text-muted)]\">\n {item.meta}\n <span aria-hidden=\"true\" className=\"font-mono text-lg\">{open ? \"−\" : \"+\"}</span>\n </span>\n </button>\n {open ? <div className=\"border-t border-[var(--tapiz-border-subtle)] px-4 py-4 text-sm text-[var(--tapiz-text-secondary)]\">{item.content}</div> : null}\n </section>\n );\n })}\n </div>\n );\n}\n","import type { ReactNode } from \"react\";\n\nexport interface StepItem {\n id: string;\n label: ReactNode;\n description?: ReactNode;\n status?: \"complete\" | \"current\" | \"upcoming\" | \"error\";\n}\n\nexport interface StepperProps {\n steps: StepItem[];\n orientation?: \"horizontal\" | \"vertical\";\n className?: string;\n}\n\nconst tone = {\n complete: \"border-[var(--tapiz-success)] bg-[var(--tapiz-success-soft)] text-[var(--tapiz-success)]\",\n current: \"border-[var(--tapiz-accent)] bg-[var(--tapiz-accent-soft)] text-[var(--tapiz-accent)]\",\n upcoming: \"border-[var(--tapiz-border-subtle)] bg-[var(--tapiz-bg-surface)] text-[var(--tapiz-text-muted)]\",\n error: \"border-[var(--tapiz-danger)] bg-[var(--tapiz-danger-soft)] text-[var(--tapiz-danger)]\",\n};\n\nexport function Stepper({ steps, orientation = \"horizontal\", className = \"\" }: StepperProps) {\n return (\n <ol className={`grid gap-3 ${orientation === \"horizontal\" ? \"md:grid-cols-[repeat(auto-fit,minmax(0,1fr))]\" : \"\"} ${className}`}>\n {steps.map((step, index) => {\n const status = step.status ?? \"upcoming\";\n return (\n <li key={step.id} className=\"flex gap-3\">\n <span className={`grid size-8 shrink-0 place-items-center border font-mono text-xs font-bold ${tone[status]}`}>{status === \"complete\" ? \"✓\" : index + 1}</span>\n <span className=\"min-w-0\">\n <span className=\"block text-sm font-semibold text-[var(--tapiz-text-primary)]\">{step.label}</span>\n {step.description ? <span className=\"mt-1 block text-xs text-[var(--tapiz-text-muted)]\">{step.description}</span> : null}\n </span>\n </li>\n );\n })}\n </ol>\n );\n}\n","import type { ReactNode } from \"react\";\n\nexport interface DrawerProps {\n open: boolean;\n onClose?: () => void;\n title?: ReactNode;\n description?: ReactNode;\n children: ReactNode;\n footer?: ReactNode;\n side?: \"left\" | \"right\";\n className?: string;\n}\n\nexport function Drawer({ open, onClose, title, description, children, footer, side = \"right\", className = \"\" }: DrawerProps) {\n if (!open) return null;\n return (\n <div className=\"fixed inset-0 z-50\">\n <button type=\"button\" aria-label=\"Close drawer\" className=\"absolute inset-0 bg-[var(--tapiz-bg-overlay)]\" onClick={onClose} />\n <section className={`absolute top-0 h-full w-full max-w-md border-[var(--tapiz-border-strong)] bg-[var(--tapiz-bg-surface)] shadow-[var(--tapiz-shadow-lg)] ${side === \"right\" ? \"right-0 border-l\" : \"left-0 border-r\"} ${className}`}>\n <header className=\"flex items-start justify-between gap-4 border-b border-[var(--tapiz-border-subtle)] p-5\">\n <div>\n {title ? <h2 className=\"text-lg font-semibold text-[var(--tapiz-text-primary)]\">{title}</h2> : null}\n {description ? <p className=\"mt-1 text-sm text-[var(--tapiz-text-muted)]\">{description}</p> : null}\n </div>\n <button type=\"button\" onClick={onClose} className=\"border border-[var(--tapiz-border-subtle)] px-2 py-1 font-mono text-sm text-[var(--tapiz-text-muted)] hover:text-[var(--tapiz-text-primary)]\">×</button>\n </header>\n <div className=\"max-h-[calc(100vh-9rem)] overflow-auto p-5\">{children}</div>\n {footer ? <footer className=\"border-t border-[var(--tapiz-border-subtle)] p-4\">{footer}</footer> : null}\n </section>\n </div>\n );\n}\n","import type { ReactNode } from \"react\";\n\nexport interface PopoverProps {\n trigger: ReactNode;\n children: ReactNode;\n open?: boolean;\n align?: \"start\" | \"end\";\n className?: string;\n}\n\nexport function Popover({ trigger, children, open = false, align = \"start\", className = \"\" }: PopoverProps) {\n return (\n <div className={`relative inline-block ${className}`}>\n {trigger}\n {open ? (\n <div className={`absolute top-full z-40 mt-2 min-w-64 border border-[var(--tapiz-border-strong)] bg-[var(--tapiz-bg-surface)] p-2 shadow-[var(--tapiz-shadow-md)] ${align === \"end\" ? \"right-0\" : \"left-0\"}`}>\n {children}\n </div>\n ) : null}\n </div>\n );\n}\n","import type { ReactNode } from \"react\";\nimport { SearchInput } from \"../shared/SearchInput\";\n\nexport interface CommandItem {\n id: string;\n label: ReactNode;\n description?: ReactNode;\n icon?: ReactNode;\n shortcut?: ReactNode;\n disabled?: boolean;\n onSelect?: () => void;\n}\n\nexport interface CommandGroup {\n label?: ReactNode;\n items: CommandItem[];\n}\n\nexport interface CommandMenuProps {\n open: boolean;\n onClose?: () => void;\n query?: string;\n onQueryChange?: (value: string) => void;\n groups: CommandGroup[];\n placeholder?: string;\n empty?: ReactNode;\n}\n\nexport function CommandMenu({ open, onClose, query = \"\", onQueryChange, groups, placeholder = \"Search commands…\", empty = \"No commands found.\" }: CommandMenuProps) {\n if (!open) return null;\n const hasItems = groups.some((group) => group.items.length > 0);\n return (\n <div className=\"fixed inset-0 z-50 grid place-items-start bg-[var(--tapiz-bg-overlay)] px-4 pt-[12vh]\" onClick={onClose}>\n <div className=\"mx-auto w-full max-w-2xl border-2 border-[var(--tapiz-border-strong)] bg-[var(--tapiz-bg-surface)] shadow-[var(--tapiz-shadow-brutal-lg)]\" onClick={(e) => e.stopPropagation()}>\n <div className=\"border-b border-[var(--tapiz-border-subtle)] p-3\">\n <SearchInput value={query} onChange={(value) => onQueryChange?.(value)} placeholder={placeholder} autoFocus />\n </div>\n <div className=\"max-h-[50vh] overflow-auto p-2\">\n {!hasItems ? <div className=\"p-6 text-center text-sm text-[var(--tapiz-text-muted)]\">{empty}</div> : null}\n {groups.map((group, groupIndex) => (\n <div key={groupIndex} className=\"py-2\">\n {group.label ? <div className=\"px-2 pb-2 font-mono text-[10px] font-bold uppercase tracking-[0.18em] text-[var(--tapiz-text-muted)]\">{group.label}</div> : null}\n {group.items.map((item) => (\n <button key={item.id} type=\"button\" disabled={item.disabled} onClick={item.onSelect} className=\"flex w-full items-center gap-3 border border-transparent px-3 py-2 text-left hover:border-[var(--tapiz-border-subtle)] hover:bg-[var(--tapiz-bg-surface-muted)] disabled:opacity-40\">\n {item.icon ? <span className=\"grid size-8 place-items-center border border-[var(--tapiz-border-subtle)] text-[var(--tapiz-text-muted)]\">{item.icon}</span> : null}\n <span className=\"min-w-0 flex-1\">\n <span className=\"block text-sm font-semibold text-[var(--tapiz-text-primary)]\">{item.label}</span>\n {item.description ? <span className=\"block text-xs text-[var(--tapiz-text-muted)]\">{item.description}</span> : null}\n </span>\n {item.shortcut ? <span className=\"font-mono text-[10px] text-[var(--tapiz-text-muted)]\">{item.shortcut}</span> : null}\n </button>\n ))}\n </div>\n ))}\n </div>\n </div>\n </div>\n );\n}\n","import type { ReactNode } from \"react\";\nimport { FieldHint } from \"./FieldHint\";\nimport { FieldLabel } from \"./FieldLabel\";\nimport { FormError } from \"../feedback/FormError\";\n\nexport interface FormFieldProps {\n label?: ReactNode;\n hint?: ReactNode;\n error?: ReactNode;\n required?: boolean;\n htmlFor?: string;\n children: ReactNode;\n className?: string;\n}\n\nexport function FormField({ label, hint, error, required, htmlFor, children, className = \"\" }: FormFieldProps) {\n return (\n <div className={`space-y-1.5 ${className}`}>\n {label ? <FieldLabel htmlFor={htmlFor}>{label}{required ? \" *\" : \"\"}</FieldLabel> : null}\n {children}\n {error ? <FormError message={String(error)} /> : hint ? <FieldHint>{hint}</FieldHint> : null}\n </div>\n );\n}\n","import type { ReactNode } from \"react\";\n\nexport interface SwitchProps {\n checked?: boolean;\n onChange?: (checked: boolean) => void;\n disabled?: boolean;\n label?: ReactNode;\n description?: ReactNode;\n className?: string;\n}\n\nexport function Switch({ checked = false, onChange, disabled, label, description, className = \"\" }: SwitchProps) {\n return (\n <label className={`flex cursor-pointer items-start gap-3 ${disabled ? \"cursor-not-allowed opacity-50\" : \"\"} ${className}`}>\n <button\n type=\"button\"\n role=\"switch\"\n aria-checked={checked}\n disabled={disabled}\n onClick={() => onChange?.(!checked)}\n className={`relative mt-0.5 h-6 w-11 border border-[var(--tapiz-border-strong)] ${checked ? \"bg-[var(--tapiz-accent)]\" : \"bg-[var(--tapiz-bg-surface-muted)]\"}`}\n >\n <span className={`absolute top-0.5 size-4 border border-[var(--tapiz-border-strong)] bg-[var(--tapiz-bg-surface)] transition-transform ${checked ? \"left-5\" : \"left-0.5\"}`} />\n </button>\n {(label || description) ? (\n <span>\n {label ? <span className=\"block text-sm font-semibold text-[var(--tapiz-text-primary)]\">{label}</span> : null}\n {description ? <span className=\"block text-xs text-[var(--tapiz-text-muted)]\">{description}</span> : null}\n </span>\n ) : null}\n </label>\n );\n}\n","import type { ReactNode } from \"react\";\n\nexport interface ToggleOption {\n value: string;\n label: ReactNode;\n disabled?: boolean;\n}\n\nexport interface ToggleGroupProps {\n options: ToggleOption[];\n value?: string;\n onChange?: (value: string) => void;\n className?: string;\n fullWidth?: boolean;\n}\n\nexport function ToggleGroup({ options, value, onChange, className = \"\", fullWidth = false }: ToggleGroupProps) {\n return (\n <div className={`inline-flex border border-[var(--tapiz-border-strong)] bg-[var(--tapiz-bg-surface-muted)] p-1 ${fullWidth ? \"w-full\" : \"\"} ${className}`}>\n {options.map((option) => {\n const selected = option.value === value;\n return (\n <button\n key={option.value}\n type=\"button\"\n disabled={option.disabled}\n onClick={() => onChange?.(option.value)}\n className={`px-3 py-1.5 text-sm font-semibold disabled:opacity-40 ${fullWidth ? \"flex-1\" : \"\"} ${selected ? \"bg-[var(--tapiz-bg-surface)] text-[var(--tapiz-text-primary)] shadow-[inset_0_-2px_0_var(--tapiz-accent)]\" : \"text-[var(--tapiz-text-muted)] hover:text-[var(--tapiz-text-primary)]\"}`}\n >\n {option.label}\n </button>\n );\n })}\n </div>\n );\n}\n","import type { ReactNode } from \"react\";\n\nexport interface InputGroupProps {\n prefix?: ReactNode;\n suffix?: ReactNode;\n children: ReactNode;\n className?: string;\n}\n\nexport function InputGroup({ prefix, suffix, children, className = \"\" }: InputGroupProps) {\n return (\n <div className={`flex items-stretch border border-[var(--tapiz-border-strong)] bg-[var(--tapiz-bg-surface)] focus-within:border-[var(--tapiz-border-focus)] focus-within:shadow-[inset_3px_0_0_var(--tapiz-signal)] ${className}`}>\n {prefix ? <div className=\"flex items-center border-r border-[var(--tapiz-border-subtle)] px-3 text-sm text-[var(--tapiz-text-muted)]\">{prefix}</div> : null}\n <div className=\"min-w-0 flex-1 [&_input]:border-0 [&_input]:shadow-none [&_input]:focus:shadow-none\">{children}</div>\n {suffix ? <div className=\"flex items-center border-l border-[var(--tapiz-border-subtle)] px-3 text-sm text-[var(--tapiz-text-muted)]\">{suffix}</div> : null}\n </div>\n );\n}\n","import type { ReactNode } from \"react\";\n\nexport type AlertTone = \"info\" | \"success\" | \"warning\" | \"danger\" | \"neutral\";\n\nexport interface AlertProps {\n tone?: AlertTone;\n title?: ReactNode;\n children?: ReactNode;\n icon?: ReactNode;\n actions?: ReactNode;\n className?: string;\n}\n\nconst toneClasses: Record<AlertTone, string> = {\n info: \"border-[var(--tapiz-info)] bg-[var(--tapiz-info-soft)] text-[var(--tapiz-info)]\",\n success: \"border-[var(--tapiz-success)] bg-[var(--tapiz-success-soft)] text-[var(--tapiz-success)]\",\n warning: \"border-[var(--tapiz-warning)] bg-[var(--tapiz-warning-soft)] text-[var(--tapiz-warning)]\",\n danger: \"border-[var(--tapiz-danger)] bg-[var(--tapiz-danger-soft)] text-[var(--tapiz-danger)]\",\n neutral: \"border-[var(--tapiz-border-subtle)] bg-[var(--tapiz-bg-surface)] text-[var(--tapiz-text-secondary)]\",\n};\n\nexport function Alert({ tone = \"info\", title, children, icon, actions, className = \"\" }: AlertProps) {\n return (\n <div className={`flex gap-3 border p-4 ${toneClasses[tone]} ${className}`}>\n {icon ? <div className=\"mt-0.5 shrink-0\">{icon}</div> : null}\n <div className=\"min-w-0 flex-1\">\n {title ? <div className=\"font-semibold text-[var(--tapiz-text-primary)]\">{title}</div> : null}\n {children ? <div className=\"mt-1 text-sm text-[var(--tapiz-text-secondary)]\">{children}</div> : null}\n </div>\n {actions ? <div className=\"shrink-0\">{actions}</div> : null}\n </div>\n );\n}\n","export interface ProgressProps {\n value: number;\n max?: number;\n label?: string;\n showValue?: boolean;\n tone?: \"accent\" | \"success\" | \"warning\" | \"danger\";\n className?: string;\n}\n\nconst tones = {\n accent: \"bg-[var(--tapiz-accent)]\",\n success: \"bg-[var(--tapiz-success)]\",\n warning: \"bg-[var(--tapiz-warning)]\",\n danger: \"bg-[var(--tapiz-danger)]\",\n};\n\nexport function Progress({ value, max = 100, label, showValue = false, tone = \"accent\", className = \"\" }: ProgressProps) {\n const percentage = Math.max(0, Math.min(100, (value / max) * 100));\n return (\n <div className={className}>\n {(label || showValue) ? (\n <div className=\"mb-1 flex items-center justify-between gap-3 text-xs text-[var(--tapiz-text-muted)]\">\n {label ? <span>{label}</span> : <span />}\n {showValue ? <span className=\"font-mono\">{Math.round(percentage)}%</span> : null}\n </div>\n ) : null}\n <div className=\"h-2 border border-[var(--tapiz-border-strong)] bg-[var(--tapiz-bg-surface-muted)]\">\n <div className={`h-full ${tones[tone]}`} style={{ width: `${percentage}%` }} />\n </div>\n </div>\n );\n}\n","export interface AvatarProps {\n src?: string;\n name?: string;\n size?: \"xs\" | \"sm\" | \"md\" | \"lg\";\n className?: string;\n}\n\nconst sizes = { xs: \"size-6 text-[10px]\", sm: \"size-8 text-xs\", md: \"size-10 text-sm\", lg: \"size-14 text-base\" };\n\nexport function Avatar({ src, name = \"?\", size = \"md\", className = \"\" }: AvatarProps) {\n const initials = name.split(\" \").filter(Boolean).slice(0, 2).map((part) => part[0]?.toUpperCase()).join(\"\") || \"?\";\n return src ? (\n <img src={src} alt={name} className={`border border-[var(--tapiz-border-strong)] object-cover ${sizes[size]} ${className}`} />\n ) : (\n <span className={`inline-grid place-items-center border border-[var(--tapiz-border-strong)] bg-[var(--tapiz-accent-soft)] font-mono font-bold text-[var(--tapiz-accent)] ${sizes[size]} ${className}`}>{initials}</span>\n );\n}\n","import type { ReactNode } from \"react\";\n\nexport interface KbdProps {\n children: ReactNode;\n className?: string;\n}\n\nexport function Kbd({ children, className = \"\" }: KbdProps) {\n return <kbd className={`inline-flex min-w-5 items-center justify-center border border-[var(--tapiz-border-strong)] bg-[var(--tapiz-bg-surface-muted)] px-1.5 py-0.5 font-mono text-[10px] font-bold text-[var(--tapiz-text-secondary)] shadow-[1px_1px_0_var(--tapiz-border-strong)] ${className}`}>{children}</kbd>;\n}\n","import type { ReactNode } from \"react\";\n\nexport interface TimelineItem {\n id: string;\n title: ReactNode;\n description?: ReactNode;\n time?: ReactNode;\n icon?: ReactNode;\n tone?: \"neutral\" | \"info\" | \"success\" | \"warning\" | \"danger\";\n}\n\nexport interface TimelineProps {\n items: TimelineItem[];\n className?: string;\n}\n\nconst tones = {\n neutral: \"border-[var(--tapiz-border-strong)] bg-[var(--tapiz-bg-surface)] text-[var(--tapiz-text-muted)]\",\n info: \"border-[var(--tapiz-info)] bg-[var(--tapiz-info-soft)] text-[var(--tapiz-info)]\",\n success: \"border-[var(--tapiz-success)] bg-[var(--tapiz-success-soft)] text-[var(--tapiz-success)]\",\n warning: \"border-[var(--tapiz-warning)] bg-[var(--tapiz-warning-soft)] text-[var(--tapiz-warning)]\",\n danger: \"border-[var(--tapiz-danger)] bg-[var(--tapiz-danger-soft)] text-[var(--tapiz-danger)]\",\n};\n\nexport function Timeline({ items, className = \"\" }: TimelineProps) {\n return (\n <ol className={`relative space-y-4 before:absolute before:left-4 before:top-2 before:h-[calc(100%-1rem)] before:w-px before:bg-[var(--tapiz-border-subtle)] ${className}`}>\n {items.map((item) => (\n <li key={item.id} className=\"relative flex gap-3\">\n <span className={`z-10 grid size-8 shrink-0 place-items-center border text-xs ${tones[item.tone ?? \"neutral\"]}`}>{item.icon ?? \"•\"}</span>\n <span className=\"min-w-0 flex-1 pb-2\">\n <span className=\"flex flex-wrap items-baseline justify-between gap-2\">\n <span className=\"font-semibold text-[var(--tapiz-text-primary)]\">{item.title}</span>\n {item.time ? <span className=\"font-mono text-[10px] uppercase tracking-[0.14em] text-[var(--tapiz-text-muted)]\">{item.time}</span> : null}\n </span>\n {item.description ? <span className=\"mt-1 block text-sm text-[var(--tapiz-text-secondary)]\">{item.description}</span> : null}\n </span>\n </li>\n ))}\n </ol>\n );\n}\n","import type { ReactNode } from \"react\";\n\nexport interface KeyValueItem {\n keyLabel: ReactNode;\n value: ReactNode;\n description?: ReactNode;\n}\n\nexport interface KeyValueListProps {\n items: KeyValueItem[];\n className?: string;\n density?: \"compact\" | \"normal\";\n}\n\nexport function KeyValueList({ items, className = \"\", density = \"normal\" }: KeyValueListProps) {\n return (\n <dl className={`divide-y divide-[var(--tapiz-border-subtle)] border border-[var(--tapiz-border-subtle)] bg-[var(--tapiz-bg-surface)] ${className}`}>\n {items.map((item, index) => (\n <div key={index} className={`grid gap-2 ${density === \"compact\" ? \"p-3 md:grid-cols-[160px_1fr]\" : \"p-4 md:grid-cols-[220px_1fr]\"}`}>\n <dt className=\"font-mono text-[10px] font-bold uppercase tracking-[0.18em] text-[var(--tapiz-text-muted)]\">{item.keyLabel}</dt>\n <dd>\n <div className=\"text-sm font-semibold text-[var(--tapiz-text-primary)]\">{item.value}</div>\n {item.description ? <div className=\"mt-1 text-xs text-[var(--tapiz-text-muted)]\">{item.description}</div> : null}\n </dd>\n </div>\n ))}\n </dl>\n );\n}\n","import type { ReactNode } from \"react\";\n\nexport interface CodeBlockProps {\n children: ReactNode;\n language?: string;\n title?: ReactNode;\n actions?: ReactNode;\n className?: string;\n}\n\nexport function CodeBlock({ children, language, title, actions, className = \"\" }: CodeBlockProps) {\n return (\n <figure className={`overflow-hidden border border-[var(--tapiz-border-strong)] bg-[var(--tapiz-bg-surface)] ${className}`}>\n {(title || language || actions) ? (\n <figcaption className=\"flex items-center justify-between gap-3 border-b border-[var(--tapiz-border-subtle)] bg-[var(--tapiz-bg-surface-muted)] px-3 py-2\">\n <span className=\"font-mono text-[10px] font-bold uppercase tracking-[0.18em] text-[var(--tapiz-text-muted)]\">{title ?? language}</span>\n {actions}\n </figcaption>\n ) : null}\n <pre className=\"overflow-auto p-4 text-sm leading-6 text-[var(--tapiz-text-secondary)]\"><code>{children}</code></pre>\n </figure>\n );\n}\n","import type { ReactNode } from \"react\";\n\nexport interface LogoCloudItem {\n name: string;\n logo?: ReactNode;\n}\n\nexport interface LogoCloudProps {\n title?: ReactNode;\n items: LogoCloudItem[];\n className?: string;\n}\n\nexport function LogoCloud({ title, items, className = \"\" }: LogoCloudProps) {\n return (\n <section className={`border-y border-[var(--tapiz-border-subtle)] bg-[var(--tapiz-bg-surface)] py-8 ${className}`}>\n <div className=\"mx-auto max-w-7xl px-[var(--tapiz-space-page-x)]\">\n {title ? <p className=\"mb-6 text-center font-mono text-[10px] font-bold uppercase tracking-[0.18em] text-[var(--tapiz-text-muted)]\">{title}</p> : null}\n <div className=\"grid grid-cols-2 gap-3 md:grid-cols-4 lg:grid-cols-6\">\n {items.map((item) => (\n <div key={item.name} className=\"grid min-h-20 place-items-center border border-[var(--tapiz-border-subtle)] bg-[var(--tapiz-bg-surface-muted)] px-4 text-center text-sm font-semibold text-[var(--tapiz-text-secondary)]\">\n {item.logo ?? item.name}\n </div>\n ))}\n </div>\n </div>\n </section>\n );\n}\n","import type { ReactNode } from \"react\";\nimport { Avatar } from \"../shared/Avatar\";\n\nexport interface TestimonialCardProps {\n quote: ReactNode;\n author: string;\n role?: ReactNode;\n avatarSrc?: string;\n className?: string;\n variant?: \"surface\" | \"brutal\";\n}\n\nexport function TestimonialCard({ quote, author, role, avatarSrc, className = \"\", variant = \"surface\" }: TestimonialCardProps) {\n return (\n <figure className={`border bg-[var(--tapiz-bg-surface)] p-5 ${variant === \"brutal\" ? \"border-2 border-[var(--tapiz-border-strong)] shadow-[var(--tapiz-shadow-brutal)]\" : \"border-[var(--tapiz-border-subtle)] shadow-[var(--tapiz-shadow-sm)]\"} ${className}`}>\n <blockquote className=\"text-base leading-7 text-[var(--tapiz-text-secondary)]\">“{quote}”</blockquote>\n <figcaption className=\"mt-5 flex items-center gap-3\">\n <Avatar name={author} src={avatarSrc} size=\"sm\" />\n <span>\n <span className=\"block text-sm font-semibold text-[var(--tapiz-text-primary)]\">{author}</span>\n {role ? <span className=\"block text-xs text-[var(--tapiz-text-muted)]\">{role}</span> : null}\n </span>\n </figcaption>\n </figure>\n );\n}\n","import type { ReactNode } from \"react\";\nimport { Button } from \"../forms/Button\";\n\nexport interface PricingCardProps {\n name: ReactNode;\n price: ReactNode;\n description?: ReactNode;\n features?: ReactNode[];\n cta?: ReactNode;\n highlighted?: boolean;\n className?: string;\n}\n\nexport function PricingCard({ name, price, description, features = [], cta, highlighted = false, className = \"\" }: PricingCardProps) {\n return (\n <section className={`flex h-full flex-col border bg-[var(--tapiz-bg-surface)] p-6 ${highlighted ? \"border-2 border-[var(--tapiz-border-strong)] shadow-[var(--tapiz-shadow-brutal-lg)]\" : \"border-[var(--tapiz-border-subtle)] shadow-[var(--tapiz-shadow-sm)]\"} ${className}`}>\n <div className=\"flex-1\">\n <h3 className=\"text-lg font-semibold text-[var(--tapiz-text-primary)]\">{name}</h3>\n {description ? <p className=\"mt-2 text-sm text-[var(--tapiz-text-muted)]\">{description}</p> : null}\n <div className=\"mt-6 text-4xl font-semibold tracking-tight text-[var(--tapiz-text-primary)]\">{price}</div>\n <ul className=\"mt-6 space-y-3 text-sm text-[var(--tapiz-text-secondary)]\">\n {features.map((feature, index) => <li key={index} className=\"flex gap-2\"><span className=\"text-[var(--tapiz-success)]\">✓</span><span>{feature}</span></li>)}\n </ul>\n </div>\n <div className=\"mt-6\">{cta ?? <Button variant={highlighted ? \"primary\" : \"secondary\"} fullWidth>Get started</Button>}</div>\n </section>\n );\n}\n","import type { ReactNode } from \"react\";\n\nexport interface StatsBandItem {\n value: ReactNode;\n label: ReactNode;\n description?: ReactNode;\n}\n\nexport interface StatsBandProps {\n items: StatsBandItem[];\n className?: string;\n}\n\nexport function StatsBand({ items, className = \"\" }: StatsBandProps) {\n return (\n <section className={`border-y border-[var(--tapiz-border-strong)] bg-[var(--tapiz-bg-surface-inverse)] text-[var(--tapiz-text-inverse)] ${className}`}>\n <div className=\"mx-auto grid max-w-7xl divide-y divide-[color-mix(in_srgb,var(--tapiz-text-inverse)_24%,transparent)] px-[var(--tapiz-space-page-x)] md:grid-cols-3 md:divide-x md:divide-y-0\">\n {items.map((item, index) => (\n <div key={index} className=\"p-6 md:p-8\">\n <div className=\"text-3xl font-semibold tracking-tight\">{item.value}</div>\n <div className=\"mt-2 font-mono text-[10px] font-bold uppercase tracking-[0.18em] opacity-70\">{item.label}</div>\n {item.description ? <div className=\"mt-3 text-sm opacity-70\">{item.description}</div> : null}\n </div>\n ))}\n </div>\n </section>\n );\n}\n","export type TapizFrameworkPreset = \"enterprise\" | \"brutal\" | \"dashboard\" | \"marketing\" | \"compact\";\n\nexport interface TapizPresetDefinition {\n shell: string;\n card: string;\n button: \"primary\" | \"secondary\" | \"brutal\";\n density: \"compact\" | \"comfortable\" | \"spacious\";\n}\n\nexport const tapizFrameworkPresets: Record<TapizFrameworkPreset, TapizPresetDefinition> = {\n enterprise: {\n shell: \"tapiz-enterprise-shell\",\n card: \"tapiz-enterprise-card\",\n button: \"primary\",\n density: \"comfortable\",\n },\n brutal: {\n shell: \"tapiz-enterprise-shell tapiz-grid-bg\",\n card: \"tapiz-brutal-card\",\n button: \"brutal\",\n density: \"comfortable\",\n },\n dashboard: {\n shell: \"tapiz-enterprise-shell\",\n card: \"stat-card\",\n button: \"secondary\",\n density: \"compact\",\n },\n marketing: {\n shell: \"tapiz-enterprise-shell tapiz-noise-bg\",\n card: \"tapiz-enterprise-card\",\n button: \"primary\",\n density: \"spacious\",\n },\n compact: {\n shell: \"tapiz-enterprise-shell\",\n card: \"card\",\n button: \"secondary\",\n density: \"compact\",\n },\n};\n","import type { CSSProperties, ReactNode } from \"react\";\n\nexport type ContainerSize = \"sm\" | \"md\" | \"lg\" | \"xl\" | \"full\";\n\nexport interface ContainerProps {\n children: ReactNode;\n size?: ContainerSize;\n padded?: boolean;\n className?: string;\n style?: CSSProperties;\n}\n\nconst sizeClasses: Record<ContainerSize, string> = {\n sm: \"max-w-3xl\",\n md: \"max-w-5xl\",\n lg: \"max-w-7xl\",\n xl: \"max-w-[90rem]\",\n full: \"max-w-none\",\n};\n\nexport function Container({ children, size = \"lg\", padded = true, className = \"\", style }: ContainerProps) {\n return (\n <div\n className={[\"mx-auto w-full\", sizeClasses[size], padded ? \"px-[var(--tapiz-space-page-x)]\" : \"\", className]\n .filter(Boolean)\n .join(\" \")}\n style={style}\n >\n {children}\n </div>\n );\n}\n","import type { CSSProperties, ReactNode } from \"react\";\n\nexport type SurfaceVariant = \"canvas\" | \"surface\" | \"raised\" | \"muted\" | \"brutal\" | \"inverse\";\nexport type SurfacePadding = \"none\" | \"sm\" | \"md\" | \"lg\" | \"xl\";\n\nexport interface SurfaceProps {\n children: ReactNode;\n variant?: SurfaceVariant;\n padding?: SurfacePadding;\n bordered?: boolean;\n className?: string;\n style?: CSSProperties;\n}\n\nconst variantClasses: Record<SurfaceVariant, string> = {\n canvas: \"bg-[var(--tapiz-bg-page)] text-[var(--tapiz-text-primary)]\",\n surface: \"bg-[var(--tapiz-bg-surface)] text-[var(--tapiz-text-primary)]\",\n raised: \"bg-[var(--tapiz-bg-surface-raised)] text-[var(--tapiz-text-primary)] shadow-[var(--tapiz-shadow-md)]\",\n muted: \"bg-[var(--tapiz-bg-surface-muted)] text-[var(--tapiz-text-primary)]\",\n brutal: \"bg-[var(--tapiz-bg-surface)] text-[var(--tapiz-text-primary)] border-2 border-[var(--tapiz-border-strong)] shadow-[var(--tapiz-shadow-brutal)]\",\n inverse: \"bg-[var(--tapiz-bg-surface-inverse)] text-[var(--tapiz-text-inverse)]\",\n};\n\nconst paddingClasses: Record<SurfacePadding, string> = {\n none: \"p-0\",\n sm: \"p-3\",\n md: \"p-5\",\n lg: \"p-6\",\n xl: \"p-8\",\n};\n\nexport function Surface({ children, variant = \"surface\", padding = \"md\", bordered = true, className = \"\", style }: SurfaceProps) {\n return (\n <section\n className={[variantClasses[variant], paddingClasses[padding], bordered && variant !== \"brutal\" ? \"border border-[var(--tapiz-border-subtle)]\" : \"\", className]\n .filter(Boolean)\n .join(\" \")}\n style={style}\n >\n {children}\n </section>\n );\n}\n","export interface DividerProps {\n orientation?: \"horizontal\" | \"vertical\";\n label?: string;\n className?: string;\n}\n\nexport function Divider({ orientation = \"horizontal\", label, className = \"\" }: DividerProps) {\n if (orientation === \"vertical\") {\n return <div className={`mx-2 min-h-6 w-px bg-[var(--tapiz-border-subtle)] ${className}`} aria-hidden=\"true\" />;\n }\n\n if (label) {\n return (\n <div className={`flex items-center gap-3 ${className}`}>\n <div className=\"h-px flex-1 bg-[var(--tapiz-border-subtle)]\" />\n <span className=\"font-mono text-[10px] uppercase tracking-[0.18em] text-[var(--tapiz-text-muted)]\">{label}</span>\n <div className=\"h-px flex-1 bg-[var(--tapiz-border-subtle)]\" />\n </div>\n );\n }\n\n return <hr className={`border-[var(--tapiz-border-subtle)] ${className}`} />;\n}\n","import type { CSSProperties, ReactNode } from \"react\";\n\nexport interface ResponsiveGridProps {\n children: ReactNode;\n min?: string;\n gap?: \"sm\" | \"md\" | \"lg\" | \"xl\";\n className?: string;\n style?: CSSProperties;\n}\n\nconst gapClasses = {\n sm: \"gap-3\",\n md: \"gap-4\",\n lg: \"gap-6\",\n xl: \"gap-8\",\n};\n\nexport function ResponsiveGrid({ children, min = \"18rem\", gap = \"md\", className = \"\", style }: ResponsiveGridProps) {\n return (\n <div\n className={`grid ${gapClasses[gap]} ${className}`}\n style={{ gridTemplateColumns: `repeat(auto-fit, minmax(${min}, 1fr))`, ...style }}\n >\n {children}\n </div>\n );\n}\n","import type { CSSProperties } from \"react\";\n\nexport interface SparklineProps {\n values: number[];\n width?: number;\n height?: number;\n label?: string;\n className?: string;\n style?: CSSProperties;\n}\n\nexport function Sparkline({ values, width = 160, height = 48, label = \"Trend\", className = \"\", style }: SparklineProps) {\n const safeValues = values.length ? values : [0];\n const min = Math.min(...safeValues);\n const max = Math.max(...safeValues);\n const range = max - min || 1;\n const step = safeValues.length > 1 ? width / (safeValues.length - 1) : width;\n const points = safeValues\n .map((value, index) => {\n const x = index * step;\n const y = height - ((value - min) / range) * (height - 6) - 3;\n return `${x},${y}`;\n })\n .join(\" \");\n\n return (\n <svg className={className} style={style} width={width} height={height} viewBox={`0 0 ${width} ${height}`} role=\"img\" aria-label={label}>\n <polyline points={points} fill=\"none\" stroke=\"var(--tapiz-accent)\" strokeWidth=\"2\" strokeLinecap=\"square\" strokeLinejoin=\"miter\" />\n <line x1=\"0\" x2={width} y1={height - 1} y2={height - 1} stroke=\"var(--tapiz-border-subtle)\" strokeWidth=\"1\" />\n </svg>\n );\n}\n","import type { ReactNode } from \"react\";\n\nexport interface BarListItem {\n label: ReactNode;\n value: number;\n detail?: ReactNode;\n}\n\nexport interface BarListProps {\n items: BarListItem[];\n max?: number;\n valueFormatter?: (value: number) => ReactNode;\n className?: string;\n}\n\nexport function BarList({ items, max, valueFormatter = (value) => value, className = \"\" }: BarListProps) {\n const computedMax = max ?? Math.max(1, ...items.map((item) => item.value));\n\n return (\n <div className={`space-y-3 ${className}`}>\n {items.map((item, index) => {\n const percent = Math.max(0, Math.min(100, (item.value / computedMax) * 100));\n return (\n <div key={index}>\n <div className=\"mb-1 flex items-center justify-between gap-3 text-sm\">\n <span className=\"font-medium text-[var(--tapiz-text-secondary)]\">{item.label}</span>\n <span className=\"font-mono text-xs text-[var(--tapiz-text-muted)]\">{valueFormatter(item.value)}</span>\n </div>\n <div className=\"h-2 border border-[var(--tapiz-border-subtle)] bg-[var(--tapiz-bg-surface-muted)]\">\n <div className=\"h-full bg-[var(--tapiz-accent)]\" style={{ width: `${percent}%` }} />\n </div>\n {item.detail ? <div className=\"mt-1 text-xs text-[var(--tapiz-text-muted)]\">{item.detail}</div> : null}\n </div>\n );\n })}\n </div>\n );\n}\n","import type { ReactNode } from \"react\";\n\nexport interface DonutMetricProps {\n value: number;\n max?: number;\n label?: ReactNode;\n caption?: ReactNode;\n size?: number;\n className?: string;\n}\n\nexport function DonutMetric({ value, max = 100, label, caption, size = 112, className = \"\" }: DonutMetricProps) {\n const radius = 42;\n const circumference = 2 * Math.PI * radius;\n const ratio = Math.max(0, Math.min(1, value / max));\n const offset = circumference * (1 - ratio);\n\n return (\n <div className={`inline-flex items-center gap-4 ${className}`}>\n <svg width={size} height={size} viewBox=\"0 0 112 112\" role=\"img\" aria-label={`${Math.round(ratio * 100)}%`}>\n <circle cx=\"56\" cy=\"56\" r={radius} fill=\"none\" stroke=\"var(--tapiz-border-subtle)\" strokeWidth=\"10\" />\n <circle\n cx=\"56\"\n cy=\"56\"\n r={radius}\n fill=\"none\"\n stroke=\"var(--tapiz-accent)\"\n strokeWidth=\"10\"\n strokeDasharray={circumference}\n strokeDashoffset={offset}\n strokeLinecap=\"square\"\n transform=\"rotate(-90 56 56)\"\n />\n <text x=\"56\" y=\"61\" textAnchor=\"middle\" className=\"fill-[var(--tapiz-text-primary)] font-mono text-lg font-bold\">\n {Math.round(ratio * 100)}%\n </text>\n </svg>\n {(label || caption) ? (\n <div>\n {label ? <div className=\"text-sm font-semibold text-[var(--tapiz-text-primary)]\">{label}</div> : null}\n {caption ? <div className=\"mt-1 text-xs leading-5 text-[var(--tapiz-text-muted)]\">{caption}</div> : null}\n </div>\n ) : null}\n </div>\n );\n}\n","import type { ReactNode } from \"react\";\n\nexport interface FilterChipProps {\n children: ReactNode;\n active?: boolean;\n onRemove?: () => void;\n className?: string;\n}\n\nexport function FilterChip({ children, active = false, onRemove, className = \"\" }: FilterChipProps) {\n return (\n <span\n className={[\n \"inline-flex items-center gap-2 border px-2.5 py-1 font-mono text-[11px] uppercase tracking-[0.12em]\",\n active\n ? \"border-[var(--tapiz-border-strong)] bg-[var(--tapiz-accent-soft)] text-[var(--tapiz-text-primary)]\"\n : \"border-[var(--tapiz-border-subtle)] bg-[var(--tapiz-bg-surface)] text-[var(--tapiz-text-muted)]\",\n className,\n ].join(\" \")}\n >\n {children}\n {onRemove ? (\n <button type=\"button\" onClick={onRemove} className=\"text-[var(--tapiz-text-muted)] hover:text-[var(--tapiz-danger)]\" aria-label=\"Remove filter\">\n ×\n </button>\n ) : null}\n </span>\n );\n}\n","import type { ReactNode } from \"react\";\n\nexport interface DataToolbarProps {\n title?: ReactNode;\n description?: ReactNode;\n search?: ReactNode;\n filters?: ReactNode;\n actions?: ReactNode;\n className?: string;\n}\n\nexport function DataToolbar({ title, description, search, filters, actions, className = \"\" }: DataToolbarProps) {\n return (\n <div className={`border border-[var(--tapiz-border-subtle)] bg-[var(--tapiz-bg-surface)] p-4 ${className}`}>\n <div className=\"flex flex-col gap-4 lg:flex-row lg:items-start lg:justify-between\">\n <div>\n {title ? <h3 className=\"text-base font-semibold text-[var(--tapiz-text-primary)]\">{title}</h3> : null}\n {description ? <p className=\"mt-1 text-sm text-[var(--tapiz-text-muted)]\">{description}</p> : null}\n </div>\n {actions ? <div className=\"flex flex-wrap gap-2\">{actions}</div> : null}\n </div>\n {(search || filters) ? (\n <div className=\"mt-4 flex flex-col gap-3 lg:flex-row lg:items-center lg:justify-between\">\n {search ? <div className=\"min-w-0 flex-1\">{search}</div> : null}\n {filters ? <div className=\"flex flex-wrap gap-2\">{filters}</div> : null}\n </div>\n ) : null}\n </div>\n );\n}\n","import type { ReactNode } from \"react\";\nimport { Badge } from \"../shared/Badge\";\n\nexport interface ResourceCardProps {\n title: ReactNode;\n description?: ReactNode;\n eyebrow?: ReactNode;\n icon?: ReactNode;\n meta?: ReactNode;\n status?: ReactNode;\n actions?: ReactNode;\n href?: string;\n className?: string;\n}\n\nexport function ResourceCard({ title, description, eyebrow, icon, meta, status, actions, href, className = \"\" }: ResourceCardProps) {\n const content = (\n <>\n <div className=\"flex items-start justify-between gap-4\">\n <div className=\"flex min-w-0 items-start gap-3\">\n {icon ? <div className=\"border border-[var(--tapiz-border-subtle)] bg-[var(--tapiz-bg-surface-muted)] p-2 text-[var(--tapiz-accent)]\">{icon}</div> : null}\n <div className=\"min-w-0\">\n {eyebrow ? <div className=\"kicker mb-2\">{eyebrow}</div> : null}\n <h3 className=\"truncate text-base font-semibold text-[var(--tapiz-text-primary)]\">{title}</h3>\n {description ? <p className=\"mt-2 line-clamp-2 text-sm leading-6 text-[var(--tapiz-text-muted)]\">{description}</p> : null}\n </div>\n </div>\n {status ? <Badge>{status}</Badge> : null}\n </div>\n {(meta || actions) ? (\n <div className=\"mt-5 flex flex-wrap items-center justify-between gap-3 border-t border-[var(--tapiz-border-subtle)] pt-4\">\n {meta ? <div className=\"font-mono text-xs text-[var(--tapiz-text-muted)]\">{meta}</div> : <span />}\n {actions ? <div className=\"flex flex-wrap gap-2\">{actions}</div> : null}\n </div>\n ) : null}\n </>\n );\n\n const classes = `block border border-[var(--tapiz-border-subtle)] bg-[var(--tapiz-bg-surface)] p-5 shadow-[var(--tapiz-shadow-sm)] hover:border-[var(--tapiz-border-strong)] hover:shadow-[var(--tapiz-shadow-md)] ${className}`;\n\n return href ? <a href={href} className={classes}>{content}</a> : <article className={classes}>{content}</article>;\n}\n","import type { ReactNode } from \"react\";\nimport { StatusBadge } from \"../shared/StatusBadge\";\n\nexport type IntegrationStatus = \"connected\" | \"disconnected\" | \"syncing\" | \"error\";\n\nexport interface IntegrationCardProps {\n name: ReactNode;\n description?: ReactNode;\n logo?: ReactNode;\n status?: IntegrationStatus;\n lastSync?: ReactNode;\n actions?: ReactNode;\n className?: string;\n}\n\nconst statusLabel: Record<IntegrationStatus, string> = {\n connected: \"Connected\",\n disconnected: \"Disconnected\",\n syncing: \"Syncing\",\n error: \"Error\",\n};\n\nconst statusVariant: Record<IntegrationStatus, \"success\" | \"default\" | \"info\" | \"danger\"> = {\n connected: \"success\",\n disconnected: \"default\",\n syncing: \"info\",\n error: \"danger\",\n};\n\nexport function IntegrationCard({ name, description, logo, status = \"disconnected\", lastSync, actions, className = \"\" }: IntegrationCardProps) {\n return (\n <article className={`border border-[var(--tapiz-border-subtle)] bg-[var(--tapiz-bg-surface)] p-5 ${className}`}>\n <div className=\"flex items-start justify-between gap-4\">\n <div className=\"flex items-start gap-3\">\n <div className=\"flex size-11 items-center justify-center border border-[var(--tapiz-border-strong)] bg-[var(--tapiz-bg-surface-muted)] text-[var(--tapiz-accent)]\">\n {logo ?? <span className=\"font-mono text-xs\">API</span>}\n </div>\n <div>\n <h3 className=\"text-sm font-semibold text-[var(--tapiz-text-primary)]\">{name}</h3>\n {description ? <p className=\"mt-1 text-sm leading-5 text-[var(--tapiz-text-muted)]\">{description}</p> : null}\n </div>\n </div>\n <StatusBadge variant={statusVariant[status]} label={statusLabel[status]} />\n </div>\n <div className=\"mt-5 flex flex-wrap items-center justify-between gap-3 border-t border-[var(--tapiz-border-subtle)] pt-4\">\n <div className=\"font-mono text-xs text-[var(--tapiz-text-muted)]\">{lastSync ?? \"No sync yet\"}</div>\n {actions ? <div className=\"flex gap-2\">{actions}</div> : null}\n </div>\n </article>\n );\n}\n","import type { ReactNode } from \"react\";\n\nexport type HealthTone = \"operational\" | \"degraded\" | \"outage\" | \"unknown\";\n\nexport interface HealthIndicatorProps {\n tone?: HealthTone;\n label?: ReactNode;\n detail?: ReactNode;\n className?: string;\n}\n\nconst toneClasses: Record<HealthTone, string> = {\n operational: \"bg-[var(--tapiz-success)]\",\n degraded: \"bg-[var(--tapiz-warning)]\",\n outage: \"bg-[var(--tapiz-danger)]\",\n unknown: \"bg-[var(--tapiz-text-disabled)]\",\n};\n\nconst defaultLabel: Record<HealthTone, string> = {\n operational: \"Operational\",\n degraded: \"Degraded\",\n outage: \"Outage\",\n unknown: \"Unknown\",\n};\n\nexport function HealthIndicator({ tone = \"unknown\", label, detail, className = \"\" }: HealthIndicatorProps) {\n return (\n <div className={`inline-flex items-center gap-3 border border-[var(--tapiz-border-subtle)] bg-[var(--tapiz-bg-surface)] px-3 py-2 ${className}`}>\n <span className={`size-2.5 ${toneClasses[tone]}`} aria-hidden=\"true\" />\n <span className=\"text-sm font-medium text-[var(--tapiz-text-primary)]\">{label ?? defaultLabel[tone]}</span>\n {detail ? <span className=\"font-mono text-xs text-[var(--tapiz-text-muted)]\">{detail}</span> : null}\n </div>\n );\n}\n","import type { ReactNode } from \"react\";\nimport { Avatar } from \"../shared/Avatar\";\n\nexport interface AuditLogItem {\n actor: string;\n action: ReactNode;\n timestamp: ReactNode;\n detail?: ReactNode;\n initials?: string;\n}\n\nexport interface AuditLogProps {\n items: AuditLogItem[];\n className?: string;\n}\n\nexport function AuditLog({ items, className = \"\" }: AuditLogProps) {\n return (\n <div className={`divide-y divide-[var(--tapiz-border-subtle)] border border-[var(--tapiz-border-subtle)] bg-[var(--tapiz-bg-surface)] ${className}`}>\n {items.map((item, index) => (\n <div key={index} className=\"flex gap-3 p-4\">\n <Avatar name={item.initials ?? item.actor} size=\"sm\" />\n <div className=\"min-w-0 flex-1\">\n <div className=\"flex flex-wrap items-center justify-between gap-2\">\n <p className=\"text-sm text-[var(--tapiz-text-secondary)]\"><strong className=\"text-[var(--tapiz-text-primary)]\">{item.actor}</strong> {item.action}</p>\n <span className=\"font-mono text-[11px] text-[var(--tapiz-text-muted)]\">{item.timestamp}</span>\n </div>\n {item.detail ? <div className=\"mt-1 text-xs leading-5 text-[var(--tapiz-text-muted)]\">{item.detail}</div> : null}\n </div>\n </div>\n ))}\n </div>\n );\n}\n","import type { ReactNode } from \"react\";\n\nexport interface KanbanCardItem {\n id: string;\n title: ReactNode;\n description?: ReactNode;\n meta?: ReactNode;\n tone?: \"default\" | \"accent\" | \"success\" | \"warning\" | \"danger\";\n}\n\nexport interface KanbanColumn {\n id: string;\n title: ReactNode;\n description?: ReactNode;\n items: KanbanCardItem[];\n}\n\nexport interface KanbanBoardProps {\n columns: KanbanColumn[];\n className?: string;\n}\n\nconst toneClasses: Record<NonNullable<KanbanCardItem[\"tone\"]>, string> = {\n default: \"border-[var(--tapiz-border-subtle)]\",\n accent: \"border-[var(--tapiz-accent)]\",\n success: \"border-[var(--tapiz-success)]\",\n warning: \"border-[var(--tapiz-warning)]\",\n danger: \"border-[var(--tapiz-danger)]\",\n};\n\nexport function KanbanBoard({ columns, className = \"\" }: KanbanBoardProps) {\n return (\n <div className={`grid gap-4 overflow-x-auto md:grid-flow-col md:auto-cols-[minmax(18rem,1fr)] ${className}`}>\n {columns.map((column) => (\n <section key={column.id} className=\"border border-[var(--tapiz-border-subtle)] bg-[var(--tapiz-bg-surface-muted)] p-3\">\n <div className=\"mb-3 flex items-start justify-between gap-3\">\n <div>\n <h3 className=\"text-sm font-semibold text-[var(--tapiz-text-primary)]\">{column.title}</h3>\n {column.description ? <p className=\"mt-1 text-xs text-[var(--tapiz-text-muted)]\">{column.description}</p> : null}\n </div>\n <span className=\"font-mono text-xs text-[var(--tapiz-text-muted)]\">{column.items.length}</span>\n </div>\n <div className=\"space-y-3\">\n {column.items.map((item) => (\n <article key={item.id} className={`border-l-2 bg-[var(--tapiz-bg-surface)] p-3 shadow-[var(--tapiz-shadow-sm)] ${toneClasses[item.tone ?? \"default\"]}`}>\n <h4 className=\"text-sm font-medium text-[var(--tapiz-text-primary)]\">{item.title}</h4>\n {item.description ? <p className=\"mt-1 text-xs leading-5 text-[var(--tapiz-text-muted)]\">{item.description}</p> : null}\n {item.meta ? <div className=\"mt-3 font-mono text-[11px] text-[var(--tapiz-text-muted)]\">{item.meta}</div> : null}\n </article>\n ))}\n </div>\n </section>\n ))}\n </div>\n );\n}\n","import type { ReactNode } from \"react\";\n\nexport interface AccessMatrixRole {\n key: string;\n label: ReactNode;\n}\n\nexport interface AccessMatrixPermission {\n key: string;\n label: ReactNode;\n description?: ReactNode;\n roles: Record<string, boolean>;\n}\n\nexport interface AccessMatrixProps {\n roles: AccessMatrixRole[];\n permissions: AccessMatrixPermission[];\n className?: string;\n}\n\nexport function AccessMatrix({ roles, permissions, className = \"\" }: AccessMatrixProps) {\n return (\n <div className={`overflow-x-auto border border-[var(--tapiz-border-subtle)] bg-[var(--tapiz-bg-surface)] ${className}`}>\n <table className=\"min-w-full text-sm\">\n <thead>\n <tr>\n <th className=\"px-4 py-3 text-left\">Permission</th>\n {roles.map((role) => <th key={role.key} className=\"px-4 py-3 text-center\">{role.label}</th>)}\n </tr>\n </thead>\n <tbody>\n {permissions.map((permission) => (\n <tr key={permission.key}>\n <td className=\"px-4 py-3\">\n <div className=\"font-medium text-[var(--tapiz-text-primary)]\">{permission.label}</div>\n {permission.description ? <div className=\"mt-1 text-xs text-[var(--tapiz-text-muted)]\">{permission.description}</div> : null}\n </td>\n {roles.map((role) => (\n <td key={role.key} className=\"px-4 py-3 text-center\">\n <span className={permission.roles[role.key] ? \"text-[var(--tapiz-success)]\" : \"text-[var(--tapiz-text-disabled)]\"}>\n {permission.roles[role.key] ? \"✓\" : \"—\"}\n </span>\n </td>\n ))}\n </tr>\n ))}\n </tbody>\n </table>\n </div>\n );\n}\n","import type { ReactNode } from \"react\";\n\nexport interface CalendarGridDay {\n date: ReactNode;\n label?: ReactNode;\n muted?: boolean;\n selected?: boolean;\n events?: ReactNode[];\n}\n\nexport interface CalendarGridProps {\n days: CalendarGridDay[];\n weekdays?: ReactNode[];\n className?: string;\n}\n\nconst defaultWeekdays = [\"Mon\", \"Tue\", \"Wed\", \"Thu\", \"Fri\", \"Sat\", \"Sun\"];\n\nexport function CalendarGrid({ days, weekdays = defaultWeekdays, className = \"\" }: CalendarGridProps) {\n return (\n <div className={`border border-[var(--tapiz-border-subtle)] bg-[var(--tapiz-bg-surface)] ${className}`}>\n <div className=\"grid grid-cols-7 border-b border-[var(--tapiz-border-subtle)] bg-[var(--tapiz-bg-surface-muted)]\">\n {weekdays.map((day, index) => <div key={index} className=\"px-3 py-2 font-mono text-[10px] uppercase tracking-[0.16em] text-[var(--tapiz-text-muted)]\">{day}</div>)}\n </div>\n <div className=\"grid grid-cols-7\">\n {days.map((day, index) => (\n <div key={index} className={`min-h-28 border-b border-r border-[var(--tapiz-border-subtle)] p-2 ${day.muted ? \"opacity-45\" : \"\"} ${day.selected ? \"bg-[var(--tapiz-accent-soft)]\" : \"\"}`}>\n <div className=\"flex items-center justify-between gap-2\">\n <span className=\"font-mono text-xs text-[var(--tapiz-text-primary)]\">{day.date}</span>\n {day.label ? <span className=\"text-[10px] text-[var(--tapiz-text-muted)]\">{day.label}</span> : null}\n </div>\n {day.events?.length ? (\n <div className=\"mt-2 space-y-1\">\n {day.events.map((event, eventIndex) => <div key={eventIndex} className=\"truncate border-l-2 border-[var(--tapiz-accent)] bg-[var(--tapiz-bg-surface-muted)] px-2 py-1 text-[11px] text-[var(--tapiz-text-secondary)]\">{event}</div>)}\n </div>\n ) : null}\n </div>\n ))}\n </div>\n </div>\n );\n}\n","import type { InputHTMLAttributes } from \"react\";\n\nexport interface SliderProps extends Omit<InputHTMLAttributes<HTMLInputElement>, \"type\"> {\n label?: string;\n valueLabel?: string;\n}\n\nexport function Slider({ label, valueLabel, className = \"\", ...props }: SliderProps) {\n return (\n <label className={`block ${className}`}>\n {(label || valueLabel) ? (\n <span className=\"mb-2 flex items-center justify-between gap-3 text-sm\">\n {label ? <span className=\"font-medium text-[var(--tapiz-text-secondary)]\">{label}</span> : <span />}\n {valueLabel ? <span className=\"font-mono text-xs text-[var(--tapiz-text-muted)]\">{valueLabel}</span> : null}\n </span>\n ) : null}\n <input\n {...props}\n type=\"range\"\n className=\"h-2 w-full cursor-pointer appearance-none border border-[var(--tapiz-border-strong)] bg-[var(--tapiz-bg-surface-muted)] accent-[var(--tapiz-accent)]\"\n />\n </label>\n );\n}\n","import type { InputHTMLAttributes, ReactNode } from \"react\";\n\nexport interface FileDropzoneProps extends Omit<InputHTMLAttributes<HTMLInputElement>, \"type\" | \"title\"> {\n title?: ReactNode;\n description?: ReactNode;\n actionLabel?: ReactNode;\n className?: string;\n}\n\nexport function FileDropzone({ title = \"Drop files here\", description, actionLabel = \"Browse\", className = \"\", ...props }: FileDropzoneProps) {\n return (\n <label className={`block cursor-pointer border-2 border-dashed border-[var(--tapiz-border-strong)] bg-[var(--tapiz-bg-surface)] p-6 text-center hover:bg-[var(--tapiz-bg-surface-muted)] ${className}`}>\n <input {...props} type=\"file\" className=\"sr-only\" />\n <span className=\"block text-sm font-semibold text-[var(--tapiz-text-primary)]\">{title}</span>\n {description ? <span className=\"mt-2 block text-sm text-[var(--tapiz-text-muted)]\">{description}</span> : null}\n <span className=\"mt-4 inline-flex border border-[var(--tapiz-border-strong)] px-3 py-1.5 font-mono text-xs uppercase tracking-[0.12em] text-[var(--tapiz-accent)]\">{actionLabel}</span>\n </label>\n );\n}\n","import type { InputHTMLAttributes, ReactNode } from \"react\";\n\nexport interface PasswordInputProps extends Omit<InputHTMLAttributes<HTMLInputElement>, \"type\"> {\n revealLabel?: ReactNode;\n}\n\nexport function PasswordInput({ revealLabel = \"Show\", className = \"\", ...props }: PasswordInputProps) {\n return (\n <div className={`flex border border-[var(--tapiz-border-strong)] bg-[var(--tapiz-bg-surface)] focus-within:border-[var(--tapiz-border-focus)] focus-within:shadow-[inset_3px_0_0_0_var(--tapiz-signal)] ${className}`}>\n <input\n {...props}\n type=\"password\"\n className=\"min-w-0 flex-1 border-0 bg-transparent px-3 py-2 text-sm text-[var(--tapiz-text-primary)] outline-none\"\n />\n <button type=\"button\" className=\"border-l border-[var(--tapiz-border-subtle)] px-3 font-mono text-xs text-[var(--tapiz-text-muted)]\" tabIndex={-1}>\n {revealLabel}\n </button>\n </div>\n );\n}\n","import type { TextareaHTMLAttributes } from \"react\";\n\nexport interface TextareaCounterProps extends TextareaHTMLAttributes<HTMLTextAreaElement> {\n maxLength: number;\n value?: string;\n}\n\nexport function TextareaCounter({ maxLength, value = \"\", className = \"\", ...props }: TextareaCounterProps) {\n const count = value.length;\n return (\n <div className={className}>\n <textarea {...props} value={value} maxLength={maxLength} className=\"input-field min-h-28\" />\n <div className=\"mt-1 text-right font-mono text-[11px] text-[var(--tapiz-text-muted)]\">{count}/{maxLength}</div>\n </div>\n );\n}\n","import type { ReactNode } from \"react\";\n\nexport type CalloutTone = \"info\" | \"success\" | \"warning\" | \"danger\" | \"neutral\";\n\nexport interface CalloutProps {\n title?: ReactNode;\n children?: ReactNode;\n tone?: CalloutTone;\n icon?: ReactNode;\n actions?: ReactNode;\n className?: string;\n}\n\nconst toneClasses: Record<CalloutTone, string> = {\n info: \"border-[var(--tapiz-info)] bg-[var(--tapiz-info-soft)]\",\n success: \"border-[var(--tapiz-success)] bg-[var(--tapiz-success-soft)]\",\n warning: \"border-[var(--tapiz-warning)] bg-[var(--tapiz-warning-soft)]\",\n danger: \"border-[var(--tapiz-danger)] bg-[var(--tapiz-danger-soft)]\",\n neutral: \"border-[var(--tapiz-border-strong)] bg-[var(--tapiz-bg-surface-muted)]\",\n};\n\nexport function Callout({ title, children, tone = \"info\", icon, actions, className = \"\" }: CalloutProps) {\n return (\n <aside className={`border-l-4 p-4 ${toneClasses[tone]} ${className}`}>\n <div className=\"flex gap-3\">\n {icon ? <div className=\"text-[var(--tapiz-text-primary)]\">{icon}</div> : null}\n <div className=\"min-w-0 flex-1\">\n {title ? <h3 className=\"text-sm font-semibold text-[var(--tapiz-text-primary)]\">{title}</h3> : null}\n {children ? <div className=\"mt-1 text-sm leading-6 text-[var(--tapiz-text-secondary)]\">{children}</div> : null}\n {actions ? <div className=\"mt-3 flex flex-wrap gap-2\">{actions}</div> : null}\n </div>\n </div>\n </aside>\n );\n}\n","import type { ReactNode } from \"react\";\nimport { Spinner } from \"./Spinner\";\n\nexport interface LoadingOverlayProps {\n visible?: boolean;\n label?: ReactNode;\n children: ReactNode;\n className?: string;\n}\n\nexport function LoadingOverlay({ visible = false, label = \"Loading\", children, className = \"\" }: LoadingOverlayProps) {\n return (\n <div className={`relative ${className}`}>\n {children}\n {visible ? (\n <div className=\"absolute inset-0 grid place-items-center border border-[var(--tapiz-border-subtle)] bg-[var(--tapiz-bg-overlay)] backdrop-blur-sm\">\n <div className=\"flex items-center gap-3 border border-[var(--tapiz-border-strong)] bg-[var(--tapiz-bg-surface)] px-4 py-3 text-sm text-[var(--tapiz-text-primary)] shadow-[var(--tapiz-shadow-brutal)]\">\n <Spinner />\n <span>{label}</span>\n </div>\n </div>\n ) : null}\n </div>\n );\n}\n","import type { ReactNode } from \"react\";\n\nexport interface NotificationItem {\n id: string;\n title: ReactNode;\n description?: ReactNode;\n time?: ReactNode;\n unread?: boolean;\n action?: ReactNode;\n}\n\nexport interface NotificationListProps {\n items: NotificationItem[];\n className?: string;\n}\n\nexport function NotificationList({ items, className = \"\" }: NotificationListProps) {\n return (\n <div className={`divide-y divide-[var(--tapiz-border-subtle)] border border-[var(--tapiz-border-subtle)] bg-[var(--tapiz-bg-surface)] ${className}`}>\n {items.map((item) => (\n <article key={item.id} className=\"flex gap-3 p-4\">\n <span className={`mt-1 size-2.5 ${item.unread ? \"bg-[var(--tapiz-accent)]\" : \"bg-[var(--tapiz-border-subtle)]\"}`} aria-hidden=\"true\" />\n <div className=\"min-w-0 flex-1\">\n <div className=\"flex items-start justify-between gap-3\">\n <h3 className=\"text-sm font-medium text-[var(--tapiz-text-primary)]\">{item.title}</h3>\n {item.time ? <span className=\"font-mono text-[11px] text-[var(--tapiz-text-muted)]\">{item.time}</span> : null}\n </div>\n {item.description ? <p className=\"mt-1 text-sm leading-5 text-[var(--tapiz-text-muted)]\">{item.description}</p> : null}\n {item.action ? <div className=\"mt-3\">{item.action}</div> : null}\n </div>\n </article>\n ))}\n </div>\n );\n}\n","import type { CSSProperties, ReactNode } from \"react\";\n\nexport interface MasonryGridProps {\n children: ReactNode;\n columns?: 2 | 3 | 4;\n gap?: \"sm\" | \"md\" | \"lg\";\n className?: string;\n style?: CSSProperties;\n}\n\nconst columnClasses = { 2: \"md:columns-2\", 3: \"md:columns-2 xl:columns-3\", 4: \"md:columns-2 lg:columns-3 xl:columns-4\" } as const;\nconst gapClasses = { sm: \"gap-3\", md: \"gap-5\", lg: \"gap-8\" } as const;\n\nexport function MasonryGrid({ children, columns = 3, gap = \"md\", className = \"\", style }: MasonryGridProps) {\n return <div className={[columnClasses[columns], gapClasses[gap], className].filter(Boolean).join(\" \")} style={style}>{children}</div>;\n}\n","import type { CSSProperties, ReactNode } from \"react\";\n\nexport interface PageRailItem {\n label: ReactNode;\n href?: string;\n active?: boolean;\n meta?: ReactNode;\n}\n\nexport interface PageRailProps {\n title?: ReactNode;\n items: PageRailItem[];\n actions?: ReactNode;\n className?: string;\n style?: CSSProperties;\n}\n\nexport function PageRail({ title, items, actions, className = \"\", style }: PageRailProps) {\n return (\n <aside className={[\"sticky top-20 rounded-none border border-[var(--tapiz-border-subtle)] bg-[var(--tapiz-bg-surface)] p-3 shadow-[var(--tapiz-shadow-sm)]\", className].filter(Boolean).join(\" \")} style={style}>\n {title ? <div className=\"kicker mb-3 px-2\">{title}</div> : null}\n <nav className=\"flex flex-col gap-1\">\n {items.map((item, index) => {\n const content = <><span className=\"truncate\">{item.label}</span>{item.meta ? <span className=\"font-mono text-[10px] text-[var(--tapiz-text-muted)]\">{item.meta}</span> : null}</>;\n const classes = [\"flex items-center justify-between gap-3 border px-3 py-2 text-sm transition\", item.active ? \"border-[var(--tapiz-border-strong)] bg-[var(--tapiz-accent-soft)] text-[var(--tapiz-text-primary)]\" : \"border-transparent text-[var(--tapiz-text-muted)] hover:border-[var(--tapiz-border-subtle)] hover:text-[var(--tapiz-text-primary)]\"].join(\" \");\n return item.href ? <a key={index} href={item.href} className={classes}>{content}</a> : <div key={index} className={classes}>{content}</div>;\n })}\n </nav>\n {actions ? <div className=\"mt-3 border-t border-[var(--tapiz-border-subtle)] pt-3\">{actions}</div> : null}\n </aside>\n );\n}\n","import type { CSSProperties, ReactNode } from \"react\";\n\nexport interface StickyBarProps {\n children: ReactNode;\n position?: \"top\" | \"bottom\";\n className?: string;\n style?: CSSProperties;\n}\n\nexport function StickyBar({ children, position = \"top\", className = \"\", style }: StickyBarProps) {\n return (\n <div\n className={[\"z-30 border-[var(--tapiz-border-subtle)] bg-[color-mix(in_srgb,var(--tapiz-bg-canvas)_88%,transparent)] px-4 py-3 backdrop-blur-xl\", position === \"top\" ? \"sticky top-0 border-b\" : \"sticky bottom-0 border-t\", className].filter(Boolean).join(\" \")}\n style={style}\n >\n {children}\n </div>\n );\n}\n","import type { ReactNode, SelectHTMLAttributes } from \"react\";\n\nexport interface ComboboxOption {\n value: string;\n label: ReactNode;\n description?: ReactNode;\n}\n\nexport interface ComboboxProps extends Omit<SelectHTMLAttributes<HTMLSelectElement>, \"children\"> {\n options: ComboboxOption[];\n placeholder?: string;\n invalid?: boolean;\n}\n\nexport function Combobox({ options, placeholder = \"Select option\", invalid = false, className = \"\", ...props }: ComboboxProps) {\n return (\n <select {...props} className={[\"input-field appearance-none bg-[var(--tapiz-bg-surface)]\", invalid ? \"border-warn focus:border-warn\" : \"\", className].filter(Boolean).join(\" \")}>\n <option value=\"\">{placeholder}</option>\n {options.map((option) => <option key={option.value} value={option.value}>{String(option.label)}</option>)}\n </select>\n );\n}\n","import type { InputHTMLAttributes } from \"react\";\n\nexport interface DateRangePickerProps {\n startLabel?: string;\n endLabel?: string;\n startProps?: InputHTMLAttributes<HTMLInputElement>;\n endProps?: InputHTMLAttributes<HTMLInputElement>;\n className?: string;\n}\n\nexport function DateRangePicker({ startLabel = \"From\", endLabel = \"To\", startProps, endProps, className = \"\" }: DateRangePickerProps) {\n return (\n <div className={[\"grid gap-3 md:grid-cols-2\", className].filter(Boolean).join(\" \")}>\n <label className=\"flex flex-col gap-1.5 text-sm text-[var(--tapiz-text-muted)]\"><span>{startLabel}</span><input type=\"date\" {...startProps} className={[\"input-field\", startProps?.className || \"\"].join(\" \")} /></label>\n <label className=\"flex flex-col gap-1.5 text-sm text-[var(--tapiz-text-muted)]\"><span>{endLabel}</span><input type=\"date\" {...endProps} className={[\"input-field\", endProps?.className || \"\"].join(\" \")} /></label>\n </div>\n );\n}\n","import type { CSSProperties, ReactNode } from \"react\";\n\nexport interface ColorSwatchOption {\n value: string;\n label: ReactNode;\n color: string;\n}\n\nexport interface ColorSwatchPickerProps {\n options: ColorSwatchOption[];\n value?: string;\n onChange?: (value: string) => void;\n className?: string;\n}\n\nexport function ColorSwatchPicker({ options, value, onChange, className = \"\" }: ColorSwatchPickerProps) {\n return (\n <div className={[\"flex flex-wrap gap-2\", className].filter(Boolean).join(\" \")}>\n {options.map((option) => {\n const selected = option.value === value;\n return (\n <button key={option.value} type=\"button\" aria-pressed={selected} onClick={() => onChange?.(option.value)} className={[\"flex items-center gap-2 border px-3 py-2 text-sm transition\", selected ? \"border-[var(--tapiz-border-strong)] bg-[var(--tapiz-accent-soft)]\" : \"border-[var(--tapiz-border-subtle)] hover:border-[var(--tapiz-border-strong)]\"].join(\" \")}>\n <span className=\"h-4 w-4 border border-[var(--tapiz-border-strong)]\" style={{ background: option.color } as CSSProperties} />\n <span>{option.label}</span>\n </button>\n );\n })}\n </div>\n );\n}\n","import type { ReactNode } from \"react\";\n\nexport interface RatingInputProps {\n value?: number;\n max?: number;\n icon?: ReactNode;\n onChange?: (value: number) => void;\n label?: string;\n className?: string;\n}\n\nexport function RatingInput({ value = 0, max = 5, icon = \"★\", onChange, label = \"Rating\", className = \"\" }: RatingInputProps) {\n return (\n <div className={[\"inline-flex items-center gap-1\", className].filter(Boolean).join(\" \")} role=\"radiogroup\" aria-label={label}>\n {Array.from({ length: max }, (_, index) => {\n const score = index + 1;\n const active = score <= value;\n return <button key={score} type=\"button\" role=\"radio\" aria-checked={active} onClick={() => onChange?.(score)} className={[\"grid h-9 w-9 place-items-center border text-base transition\", active ? \"border-[var(--tapiz-border-strong)] bg-[var(--tapiz-accent-soft)] text-[var(--tapiz-accent)]\" : \"border-[var(--tapiz-border-subtle)] text-[var(--tapiz-text-muted)] hover:border-[var(--tapiz-border-strong)]\"].join(\" \")}>{icon}</button>;\n })}\n </div>\n );\n}\n","import type { ReactNode } from \"react\";\n\nexport interface ScoreRingProps {\n value: number;\n max?: number;\n label?: ReactNode;\n size?: number;\n className?: string;\n}\n\nexport function ScoreRing({ value, max = 100, label, size = 112, className = \"\" }: ScoreRingProps) {\n const normalized = Math.max(0, Math.min(1, value / max));\n const radius = 42;\n const circumference = 2 * Math.PI * radius;\n const dash = circumference * normalized;\n return (\n <div className={[\"inline-grid place-items-center\", className].filter(Boolean).join(\" \")} style={{ width: size, height: size }}>\n <svg viewBox=\"0 0 100 100\" className=\"h-full w-full -rotate-90\">\n <circle cx=\"50\" cy=\"50\" r={radius} fill=\"none\" stroke=\"var(--tapiz-border-subtle)\" strokeWidth=\"10\" />\n <circle cx=\"50\" cy=\"50\" r={radius} fill=\"none\" stroke=\"var(--tapiz-accent)\" strokeWidth=\"10\" strokeLinecap=\"square\" strokeDasharray={`${dash} ${circumference - dash}`} />\n </svg>\n <div className=\"absolute text-center\"><div className=\"font-display text-2xl font-semibold text-[var(--tapiz-text-primary)]\">{Math.round(normalized * 100)}%</div>{label ? <div className=\"font-mono text-[10px] uppercase tracking-[0.16em] text-[var(--tapiz-text-muted)]\">{label}</div> : null}</div>\n </div>\n );\n}\n","import type { ReactNode } from \"react\";\n\nexport interface HeatmapCell {\n value: number;\n label?: ReactNode;\n title?: string;\n}\n\nexport interface HeatmapGridProps {\n cells: HeatmapCell[];\n columns?: number;\n max?: number;\n className?: string;\n}\n\nexport function HeatmapGrid({ cells, columns = 7, max, className = \"\" }: HeatmapGridProps) {\n const peak = max ?? Math.max(1, ...cells.map((cell) => cell.value));\n return (\n <div className={[\"grid gap-1\", className].filter(Boolean).join(\" \")} style={{ gridTemplateColumns: `repeat(${columns}, minmax(0, 1fr))` }}>\n {cells.map((cell, index) => {\n const opacity = 0.15 + Math.min(1, cell.value / peak) * 0.75;\n return <div key={index} title={cell.title} className=\"aspect-square border border-[var(--tapiz-border-subtle)]\" style={{ background: `color-mix(in srgb, var(--tapiz-accent) ${Math.round(opacity * 100)}%, transparent)` }}>{cell.label ? <span className=\"sr-only\">{cell.label}</span> : null}</div>;\n })}\n </div>\n );\n}\n","import type { ReactNode } from \"react\";\n\nexport interface FunnelStep {\n label: ReactNode;\n value: number;\n meta?: ReactNode;\n}\n\nexport interface FunnelChartProps {\n steps: FunnelStep[];\n className?: string;\n}\n\nexport function FunnelChart({ steps, className = \"\" }: FunnelChartProps) {\n const max = Math.max(1, ...steps.map((step) => step.value));\n return (\n <div className={[\"space-y-3\", className].filter(Boolean).join(\" \")}>\n {steps.map((step, index) => {\n const width = Math.max(8, (step.value / max) * 100);\n return (\n <div key={index}>\n <div className=\"mb-1 flex items-center justify-between gap-3 text-sm\"><span className=\"font-medium text-[var(--tapiz-text-primary)]\">{step.label}</span><span className=\"font-mono text-xs text-[var(--tapiz-text-muted)]\">{step.value}{step.meta ? ` · ${String(step.meta)}` : \"\"}</span></div>\n <div className=\"h-9 border border-[var(--tapiz-border-subtle)] bg-[var(--tapiz-bg-surface-muted)]\"><div className=\"h-full border-r border-[var(--tapiz-border-strong)] bg-[var(--tapiz-accent-soft)]\" style={{ width: `${width}%` }} /></div>\n </div>\n );\n })}\n </div>\n );\n}\n","import type { ReactNode } from \"react\";\n\nexport interface ComparisonMeterProps {\n leftLabel: ReactNode;\n rightLabel: ReactNode;\n value: number;\n className?: string;\n}\n\nexport function ComparisonMeter({ leftLabel, rightLabel, value, className = \"\" }: ComparisonMeterProps) {\n const clamped = Math.max(0, Math.min(100, value));\n return (\n <div className={className}>\n <div className=\"mb-2 flex justify-between gap-3 text-sm text-[var(--tapiz-text-muted)]\"><span>{leftLabel}</span><span>{rightLabel}</span></div>\n <div className=\"relative h-3 border border-[var(--tapiz-border-strong)] bg-[var(--tapiz-bg-surface-muted)]\"><div className=\"h-full bg-[var(--tapiz-accent)]\" style={{ width: `${clamped}%` }} /><div className=\"absolute top-[-6px] h-6 w-px bg-[var(--tapiz-border-strong)]\" style={{ left: `${clamped}%` }} /></div>\n </div>\n );\n}\n","import type { ReactNode } from \"react\";\nimport { Avatar } from \"../shared/Avatar\";\n\nexport interface ActivityFeedItem {\n actor: string;\n action: ReactNode;\n time?: ReactNode;\n avatarUrl?: string;\n meta?: ReactNode;\n}\n\nexport interface ActivityFeedProps {\n items: ActivityFeedItem[];\n className?: string;\n}\n\nexport function ActivityFeed({ items, className = \"\" }: ActivityFeedProps) {\n return (\n <div className={[\"divide-y divide-[var(--tapiz-border-subtle)] border border-[var(--tapiz-border-subtle)] bg-[var(--tapiz-bg-surface)]\", className].filter(Boolean).join(\" \")}>\n {items.map((item, index) => <div key={index} className=\"flex gap-3 p-4\"><Avatar name={item.actor} src={item.avatarUrl} size=\"sm\" /><div className=\"min-w-0 flex-1\"><p className=\"text-sm text-[var(--tapiz-text-primary)]\"><strong>{item.actor}</strong> {item.action}</p>{item.meta ? <div className=\"mt-1 text-sm text-[var(--tapiz-text-muted)]\">{item.meta}</div> : null}</div>{item.time ? <div className=\"font-mono text-[10px] uppercase tracking-[0.14em] text-[var(--tapiz-text-muted)]\">{item.time}</div> : null}</div>)}\n </div>\n );\n}\n","import type { ReactNode } from \"react\";\nimport { Badge } from \"../shared/Badge\";\n\nexport interface InboxItem {\n title: ReactNode;\n sender?: ReactNode;\n snippet?: ReactNode;\n time?: ReactNode;\n unread?: boolean;\n tag?: ReactNode;\n}\n\nexport interface InboxListProps {\n items: InboxItem[];\n className?: string;\n}\n\nexport function InboxList({ items, className = \"\" }: InboxListProps) {\n return (\n <div className={[\"divide-y divide-[var(--tapiz-border-subtle)] border border-[var(--tapiz-border-subtle)] bg-[var(--tapiz-bg-surface)]\", className].filter(Boolean).join(\" \")}>\n {items.map((item, index) => <article key={index} className={[\"p-4 transition hover:bg-[var(--tapiz-bg-surface-muted)]\", item.unread ? \"border-l-4 border-l-[var(--tapiz-accent)]\" : \"\"].join(\" \")}><div className=\"flex items-start justify-between gap-3\"><div className=\"min-w-0\"><h3 className=\"truncate text-sm font-semibold text-[var(--tapiz-text-primary)]\">{item.title}</h3>{item.sender ? <p className=\"mt-1 text-xs text-[var(--tapiz-text-muted)]\">{item.sender}</p> : null}</div><div className=\"flex shrink-0 items-center gap-2\">{item.tag ? <Badge>{item.tag}</Badge> : null}{item.time ? <span className=\"font-mono text-[10px] text-[var(--tapiz-text-muted)]\">{item.time}</span> : null}</div></div>{item.snippet ? <p className=\"mt-2 line-clamp-2 text-sm text-[var(--tapiz-text-muted)]\">{item.snippet}</p> : null}</article>)}\n </div>\n );\n}\n","import type { ReactNode } from \"react\";\nimport { Button } from \"../forms/Button\";\nimport { Badge } from \"../shared/Badge\";\n\nexport interface ApprovalItem {\n title: ReactNode;\n requester?: ReactNode;\n description?: ReactNode;\n priority?: \"low\" | \"medium\" | \"high\";\n}\n\nexport interface ApprovalQueueProps {\n items: ApprovalItem[];\n onApprove?: (index: number) => void;\n onReject?: (index: number) => void;\n className?: string;\n}\n\nexport function ApprovalQueue({ items, onApprove, onReject, className = \"\" }: ApprovalQueueProps) {\n return (\n <div className={[\"space-y-3\", className].filter(Boolean).join(\" \")}>\n {items.map((item, index) => <article key={index} className=\"border border-[var(--tapiz-border-subtle)] bg-[var(--tapiz-bg-surface)] p-4\"><div className=\"flex flex-col gap-4 md:flex-row md:items-start md:justify-between\"><div><div className=\"flex flex-wrap items-center gap-2\"><h3 className=\"font-semibold text-[var(--tapiz-text-primary)]\">{item.title}</h3>{item.priority ? <Badge variant={item.priority === \"high\" ? \"danger\" : item.priority === \"medium\" ? \"warning\" : \"default\"}>{item.priority}</Badge> : null}</div>{item.requester ? <p className=\"mt-1 text-xs text-[var(--tapiz-text-muted)]\">Requested by {item.requester}</p> : null}{item.description ? <p className=\"mt-2 text-sm text-[var(--tapiz-text-muted)]\">{item.description}</p> : null}</div><div className=\"flex gap-2\"><Button size=\"sm\" variant=\"secondary\" onClick={() => onReject?.(index)}>Reject</Button><Button size=\"sm\" onClick={() => onApprove?.(index)}>Approve</Button></div></div></article>)}\n </div>\n );\n}\n","import type { ReactNode } from \"react\";\n\nexport interface SLAStatusProps {\n label: ReactNode;\n value: number;\n target?: number;\n className?: string;\n}\n\nexport function SLAStatus({ label, value, target = 95, className = \"\" }: SLAStatusProps) {\n const ok = value >= target;\n return (\n <div className={[\"border border-[var(--tapiz-border-subtle)] bg-[var(--tapiz-bg-surface)] p-4\", className].filter(Boolean).join(\" \")}>\n <div className=\"flex items-center justify-between gap-3\"><span className=\"text-sm font-medium text-[var(--tapiz-text-primary)]\">{label}</span><span className={[\"font-mono text-xs\", ok ? \"text-[var(--tapiz-success)]\" : \"text-[var(--tapiz-warning)]\"].join(\" \")}>{ok ? \"Within SLA\" : \"At risk\"}</span></div>\n <div className=\"mt-3 h-2 border border-[var(--tapiz-border-subtle)] bg-[var(--tapiz-bg-surface-muted)]\"><div className=\"h-full bg-[var(--tapiz-accent)]\" style={{ width: `${Math.max(0, Math.min(100, value))}%` }} /></div>\n <div className=\"mt-2 flex justify-between font-mono text-[10px] uppercase tracking-[0.14em] text-[var(--tapiz-text-muted)]\"><span>{value}%</span><span>Target {target}%</span></div>\n </div>\n );\n}\n","import type { ReactNode } from \"react\";\nimport { Switch } from \"../forms/Switch\";\nimport { Badge } from \"../shared/Badge\";\n\nexport interface FeatureFlag {\n key: string;\n name: ReactNode;\n description?: ReactNode;\n enabled?: boolean;\n rollout?: ReactNode;\n}\n\nexport interface FeatureFlagTableProps {\n flags: FeatureFlag[];\n onToggle?: (key: string, enabled: boolean) => void;\n className?: string;\n}\n\nexport function FeatureFlagTable({ flags, onToggle, className = \"\" }: FeatureFlagTableProps) {\n return (\n <div className={[\"overflow-hidden border border-[var(--tapiz-border-subtle)]\", className].filter(Boolean).join(\" \")}>\n {flags.map((flag) => <div key={flag.key} className=\"grid gap-3 border-b border-[var(--tapiz-border-subtle)] bg-[var(--tapiz-bg-surface)] p-4 last:border-b-0 md:grid-cols-[1fr_auto_auto] md:items-center\"><div><div className=\"flex flex-wrap items-center gap-2\"><h3 className=\"text-sm font-semibold text-[var(--tapiz-text-primary)]\">{flag.name}</h3><Badge>{flag.key}</Badge></div>{flag.description ? <p className=\"mt-1 text-sm text-[var(--tapiz-text-muted)]\">{flag.description}</p> : null}</div><div className=\"text-sm text-[var(--tapiz-text-muted)]\">{flag.rollout}</div><Switch checked={flag.enabled} onChange={(checked) => onToggle?.(flag.key, checked)} /></div>)}\n </div>\n );\n}\n","import type { ReactNode } from \"react\";\n\nexport interface PlanUsageItem {\n label: ReactNode;\n used: number;\n limit: number;\n}\n\nexport interface PlanUsageProps {\n title?: ReactNode;\n items: PlanUsageItem[];\n className?: string;\n}\n\nexport function PlanUsage({ title = \"Plan usage\", items, className = \"\" }: PlanUsageProps) {\n return (\n <section className={[\"border border-[var(--tapiz-border-subtle)] bg-[var(--tapiz-bg-surface)] p-5\", className].filter(Boolean).join(\" \")}>\n <h3 className=\"text-sm font-semibold text-[var(--tapiz-text-primary)]\">{title}</h3>\n <div className=\"mt-4 space-y-4\">\n {items.map((item, index) => { const pct = item.limit ? Math.min(100, (item.used / item.limit) * 100) : 0; return <div key={index}><div className=\"mb-1 flex justify-between text-sm\"><span className=\"text-[var(--tapiz-text-primary)]\">{item.label}</span><span className=\"font-mono text-xs text-[var(--tapiz-text-muted)]\">{item.used}/{item.limit}</span></div><div className=\"h-2 border border-[var(--tapiz-border-subtle)] bg-[var(--tapiz-bg-surface-muted)]\"><div className=\"h-full bg-[var(--tapiz-accent)]\" style={{ width: `${pct}%` }} /></div></div>; })}\n </div>\n </section>\n );\n}\n","import type { ReactNode } from \"react\";\n\nexport interface AnnouncementBarProps {\n children: ReactNode;\n action?: ReactNode;\n className?: string;\n}\n\nexport function AnnouncementBar({ children, action, className = \"\" }: AnnouncementBarProps) {\n return <div className={[\"border-b border-[var(--tapiz-border-strong)] bg-[var(--tapiz-accent-soft)] px-4 py-3 text-sm text-[var(--tapiz-text-primary)]\", className].filter(Boolean).join(\" \")}><div className=\"mx-auto flex max-w-7xl flex-wrap items-center justify-center gap-3 text-center\"> <span>{children}</span>{action ? <span>{action}</span> : null}</div></div>;\n}\n","import type { ReactNode } from \"react\";\nimport { Accordion } from \"../disclosure/Accordion\";\n\nexport interface FAQItem {\n question: ReactNode;\n answer: ReactNode;\n}\n\nexport interface FAQSectionProps {\n title?: ReactNode;\n description?: ReactNode;\n items: FAQItem[];\n className?: string;\n}\n\nexport function FAQSection({ title = \"Frequently asked questions\", description, items, className = \"\" }: FAQSectionProps) {\n return <section className={className}><div className=\"mb-6 max-w-2xl\"><div className=\"kicker\">FAQ</div><h2 className=\"mt-2 text-3xl font-semibold tracking-[-0.05em] text-[var(--tapiz-text-primary)]\">{title}</h2>{description ? <p className=\"mt-2 text-sm leading-6 text-[var(--tapiz-text-muted)]\">{description}</p> : null}</div><Accordion items={items.map((item, index) => ({ id: `faq-${index}`, title: item.question, content: item.answer }))} /></section>;\n}\n","import type { ReactNode } from \"react\";\nimport { Badge } from \"../shared/Badge\";\n\nexport interface RoadmapItem {\n title: ReactNode;\n description?: ReactNode;\n status?: ReactNode;\n quarter?: ReactNode;\n}\n\nexport interface RoadmapListProps {\n items: RoadmapItem[];\n className?: string;\n}\n\nexport function RoadmapList({ items, className = \"\" }: RoadmapListProps) {\n return <div className={[\"grid gap-3 md:grid-cols-3\", className].filter(Boolean).join(\" \")}>{items.map((item, index) => <article key={index} className=\"border border-[var(--tapiz-border-subtle)] bg-[var(--tapiz-bg-surface)] p-5\"><div className=\"flex items-center justify-between gap-3\"><span className=\"kicker\">{item.quarter ?? `0${index + 1}`}</span>{item.status ? <Badge>{item.status}</Badge> : null}</div><h3 className=\"mt-4 font-semibold text-[var(--tapiz-text-primary)]\">{item.title}</h3>{item.description ? <p className=\"mt-2 text-sm leading-6 text-[var(--tapiz-text-muted)]\">{item.description}</p> : null}</article>)}</div>;\n}\n","import type { ReactNode } from \"react\";\n\nexport type InlineStatusTone = \"neutral\" | \"success\" | \"warning\" | \"danger\" | \"info\";\n\nexport interface InlineStatusProps {\n tone?: InlineStatusTone;\n children: ReactNode;\n pulse?: boolean;\n className?: string;\n}\n\nconst toneClasses: Record<InlineStatusTone, string> = {\n neutral: \"bg-[var(--tapiz-text-muted)]\",\n success: \"bg-[var(--tapiz-success)]\",\n warning: \"bg-[var(--tapiz-warning)]\",\n danger: \"bg-[var(--tapiz-danger)]\",\n info: \"bg-[var(--tapiz-info)]\",\n};\n\nexport function InlineStatus({ tone = \"neutral\", children, pulse = false, className = \"\" }: InlineStatusProps) {\n return <span className={[\"inline-flex items-center gap-2 text-sm text-[var(--tapiz-text-muted)]\", className].filter(Boolean).join(\" \")}><span className={[\"h-2 w-2 rounded-full\", toneClasses[tone], pulse ? \"animate-pulse\" : \"\"].filter(Boolean).join(\" \")} />{children}</span>;\n}\n","import type { ReactNode } from \"react\";\nimport { Button } from \"../components/forms/Button\";\nimport { Input } from \"../components/forms/Input\";\nimport { Select } from \"../components/forms/Select\";\nimport { Textarea } from \"../components/forms/Textarea\";\nimport { FormField } from \"../components/forms/FormField\";\nimport { Switch } from \"../components/forms/Switch\";\nimport { ToggleGroup } from \"../components/forms/ToggleGroup\";\nimport { InputGroup } from \"../components/forms/InputGroup\";\nimport { Slider } from \"../components/forms/Slider\";\nimport { FileDropzone } from \"../components/forms/FileDropzone\";\nimport { PasswordInput } from \"../components/forms/PasswordInput\";\nimport { TextareaCounter } from \"../components/forms/TextareaCounter\";\nimport { Card } from \"../components/shared/Card\";\nimport { Badge } from \"../components/shared/Badge\";\nimport { StatusBadge } from \"../components/shared/StatusBadge\";\nimport { MetricCard } from \"../components/shared/MetricCard\";\nimport { StatGrid } from \"../components/shared/StatGrid\";\nimport { SectionCard } from \"../components/shared/SectionCard\";\nimport { EmptyState } from \"../components/shared/EmptyState\";\nimport { Skeleton } from \"../components/shared/Skeleton\";\nimport { Avatar } from \"../components/shared/Avatar\";\nimport { Kbd } from \"../components/shared/Kbd\";\nimport { Timeline } from \"../components/shared/Timeline\";\nimport { KeyValueList } from \"../components/shared/KeyValueList\";\nimport { CodeBlock } from \"../components/shared/CodeBlock\";\nimport { PageHeader } from \"../components/shared/PageHeader\";\nimport { SearchInput } from \"../components/shared/SearchInput\";\nimport { Pagination } from \"../components/shared/Pagination\";\nimport { DataTable } from \"../components/table/DataTable\";\nimport { Container } from \"../components/layout/Container\";\nimport { Surface } from \"../components/layout/Surface\";\nimport { Divider } from \"../components/layout/Divider\";\nimport { ResponsiveGrid } from \"../components/layout/ResponsiveGrid\";\nimport { AppShell } from \"../components/layout/AppShell\";\nimport { Stack } from \"../components/layout/Stack\";\nimport { Cluster } from \"../components/layout/Cluster\";\nimport { SplitPane } from \"../components/layout/SplitPane\";\nimport { TopNav } from \"../components/navigation/TopNav\";\nimport { SidebarNav } from \"../components/navigation/SidebarNav\";\nimport { Breadcrumbs } from \"../components/navigation/Breadcrumbs\";\nimport { Tabs } from \"../components/disclosure/Tabs\";\nimport { Accordion } from \"../components/disclosure/Accordion\";\nimport { Stepper } from \"../components/disclosure/Stepper\";\nimport { Drawer } from \"../components/overlays/Drawer\";\nimport { Popover } from \"../components/overlays/Popover\";\nimport { CommandMenu } from \"../components/overlays/CommandMenu\";\nimport { Alert } from \"../components/feedback/Alert\";\nimport { Progress } from \"../components/feedback/Progress\";\nimport { Callout } from \"../components/feedback/Callout\";\nimport { LoadingOverlay } from \"../components/feedback/LoadingOverlay\";\nimport { NotificationList } from \"../components/feedback/NotificationList\";\nimport { BarList } from \"../components/data-display/BarList\";\nimport { Sparkline } from \"../components/data-display/Sparkline\";\nimport { DonutMetric } from \"../components/data-display/DonutMetric\";\nimport { DataToolbar } from \"../components/data-display/DataToolbar\";\nimport { FilterChip } from \"../components/data-display/FilterChip\";\nimport { ResourceCard } from \"../components/framework/ResourceCard\";\nimport { IntegrationCard } from \"../components/framework/IntegrationCard\";\nimport { HealthIndicator } from \"../components/framework/HealthIndicator\";\nimport { AuditLog } from \"../components/framework/AuditLog\";\nimport { KanbanBoard } from \"../components/framework/KanbanBoard\";\nimport { AccessMatrix } from \"../components/framework/AccessMatrix\";\nimport { CalendarGrid } from \"../components/framework/CalendarGrid\";\nimport { HeroFrame } from \"../components/marketing/HeroFrame\";\nimport { FeatureCard } from \"../components/marketing/FeatureCard\";\nimport { FeatureGrid } from \"../components/marketing/FeatureGrid\";\nimport { CTASection } from \"../components/marketing/CTASection\";\nimport { MockupFrame } from \"../components/marketing/MockupFrame\";\nimport { LogoCloud } from \"../components/marketing/LogoCloud\";\nimport { TestimonialCard } from \"../components/marketing/TestimonialCard\";\nimport { PricingCard } from \"../components/marketing/PricingCard\";\nimport { StatsBand } from \"../components/marketing/StatsBand\";\nimport { ComparisonTable } from \"../components/marketing/ComparisonTable\";\nimport { MasonryGrid } from \"../components/layout/MasonryGrid\";\nimport { PageRail } from \"../components/layout/PageRail\";\nimport { StickyBar } from \"../components/layout/StickyBar\";\nimport { Combobox } from \"../components/forms/Combobox\";\nimport { DateRangePicker } from \"../components/forms/DateRangePicker\";\nimport { ColorSwatchPicker } from \"../components/forms/ColorSwatchPicker\";\nimport { RatingInput } from \"../components/forms/RatingInput\";\nimport { ScoreRing } from \"../components/data-display/ScoreRing\";\nimport { HeatmapGrid } from \"../components/data-display/HeatmapGrid\";\nimport { FunnelChart } from \"../components/data-display/FunnelChart\";\nimport { ComparisonMeter } from \"../components/data-display/ComparisonMeter\";\nimport { ActivityFeed } from \"../components/framework/ActivityFeed\";\nimport { InboxList } from \"../components/framework/InboxList\";\nimport { ApprovalQueue } from \"../components/framework/ApprovalQueue\";\nimport { SLAStatus } from \"../components/framework/SLAStatus\";\nimport { FeatureFlagTable } from \"../components/framework/FeatureFlagTable\";\nimport { PlanUsage } from \"../components/framework/PlanUsage\";\nimport { AnnouncementBar } from \"../components/marketing/AnnouncementBar\";\nimport { FAQSection } from \"../components/marketing/FAQSection\";\nimport { RoadmapList } from \"../components/marketing/RoadmapList\";\nimport { InlineStatus } from \"../components/feedback/InlineStatus\";\n\nexport interface TapizDocsPageProps {\n title?: string;\n subtitle?: string;\n}\n\nconst demoRows = [\n { id: \"1\", student: \"Mila Petrović\", status: \"Active\", score: 94 },\n { id: \"2\", student: \"Vuk Jovanović\", status: \"Pending\", score: 82 },\n { id: \"3\", student: \"Sara Ilić\", status: \"Blocked\", score: 68 },\n];\n\nconst calendarDays = Array.from({ length: 35 }, (_, index) => ({\n date: index + 1,\n selected: index === 10,\n muted: index > 30,\n events: index === 10 ? [\"Exam review\", \"Parent sync\"] : index === 15 ? [\"Quiz\"] : undefined,\n}));\n\nfunction DemoSection({ id, title, description, children }: { id: string; title: string; description: string; children: ReactNode }) {\n return (\n <section id={id} className=\"scroll-mt-20 border-t border-[var(--tapiz-border-subtle)] py-12\">\n <div className=\"mb-6 flex flex-col gap-2 md:flex-row md:items-end md:justify-between\">\n <div>\n <div className=\"kicker\">{id}</div>\n <h2 className=\"mt-2 text-3xl font-semibold tracking-[-0.05em] text-[var(--tapiz-text-primary)]\">{title}</h2>\n <p className=\"mt-2 max-w-2xl text-sm leading-6 text-[var(--tapiz-text-muted)]\">{description}</p>\n </div>\n <a href=\"#top\" className=\"font-mono text-xs uppercase tracking-[0.16em] text-[var(--tapiz-accent)]\">Back to top</a>\n </div>\n {children}\n </section>\n );\n}\n\nexport function TapizDocsPage({ title = \"Tapiz UI Framework\", subtitle = \"A brutal-enterprise React component system with tokens, primitives, patterns, and ready-made application blocks.\" }: TapizDocsPageProps) {\n return (\n <main id=\"top\" className=\"tapiz-enterprise-shell min-h-screen tapiz-noise-bg\">\n <TopNav\n brand={<span className=\"font-display text-lg font-semibold tracking-[-0.04em]\">Tapiz UI</span>}\n links={[\n { label: \"Foundations\", href: \"#foundations\" },\n { label: \"Forms\", href: \"#forms\" },\n { label: \"Data\", href: \"#data\" },\n { label: \"Framework\", href: \"#framework\" },\n { label: \"Advanced\", href: \"#advanced\" },\n { label: \"Marketing\", href: \"#marketing\" },\n ]}\n actions={<Button size=\"sm\" variant=\"brutal\">Install</Button>}\n />\n\n <HeroFrame\n eyebrow=\"Design system / React framework\"\n title={title}\n description={subtitle}\n actions={<><Button variant=\"primary\">Start building</Button><Button variant=\"secondary\">View tokens</Button></>}\n meta=\"Light/dark safe · token driven · no app-specific dependencies\"\n visual={\n <MockupFrame title=\"Component registry\">\n <StatGrid >\n <MetricCard label=\"Components\" value=\"80+\" trend=\"expanded\" trendTone=\"positive\" />\n <MetricCard label=\"Themes\" value=\"2\" trend=\"light/dark\" />\n <MetricCard label=\"Patterns\" value=\"12\" trend=\"framework\" trendTone=\"warning\" />\n </StatGrid>\n <div className=\"mt-4\"><Sparkline values={[18, 24, 21, 32, 44, 39, 58]} width={420} height={56} /></div>\n </MockupFrame>\n }\n />\n\n <Container size=\"xl\" className=\"pb-16\">\n <Surface variant=\"brutal\" padding=\"md\" className=\"mb-8\">\n <Cluster justify=\"between\" align=\"center\">\n <Breadcrumbs items={[{ label: \"Docs\", href: \"#top\" }, { label: \"Components\" }]} />\n <Cluster gap=\"sm\"><Kbd>⌘</Kbd><Kbd>K</Kbd><span className=\"text-sm text-[var(--tapiz-text-muted)]\">Command-first framework UX</span></Cluster>\n </Cluster>\n </Surface>\n\n <DemoSection id=\"foundations\" title=\"Foundations\" description=\"Core surfaces, cards, badges, layout helpers, empty states, skeletons and typography primitives.\">\n <ResponsiveGrid min=\"16rem\">\n <Card variant=\"surface\"><div className=\"kicker\">surface</div><p className=\"mt-2 text-sm text-[var(--tapiz-text-muted)]\">Default card treatment.</p></Card>\n <Card variant=\"raised\"><div className=\"kicker\">raised</div><p className=\"mt-2 text-sm text-[var(--tapiz-text-muted)]\">Elevated enterprise panel.</p></Card>\n <Card variant=\"brutal\"><div className=\"kicker\">brutal</div><p className=\"mt-2 text-sm text-[var(--tapiz-text-muted)]\">Hard border + hard shadow.</p></Card>\n <Card variant=\"glass\"><div className=\"kicker\">glass</div><p className=\"mt-2 text-sm text-[var(--tapiz-text-muted)]\">Backdrop style surface.</p></Card>\n </ResponsiveGrid>\n <Divider label=\"status tokens\" className=\"my-8\" />\n <Cluster>\n <Badge>Default</Badge><Badge variant=\"success\">Success</Badge><Badge variant=\"warning\">Warning</Badge><Badge variant=\"danger\">Danger</Badge><Badge variant=\"info\">Info</Badge>\n <StatusBadge label=\"Active\" variant=\"active\" /><StatusBadge label=\"Pending\" variant=\"pending\" /><StatusBadge label=\"Inactive\" variant=\"inactive\" />\n </Cluster>\n <ResponsiveGrid min=\"20rem\" className=\"mt-8\">\n <EmptyState title=\"No records\" description=\"Use empty states instead of blank panels.\" />\n <SectionCard title=\"Skeleton loading\" description=\"Use while data is loading.\"><Stack><Skeleton className=\"h-4 w-3/4\" /><Skeleton className=\"h-4 w-1/2\" /><Skeleton className=\"h-20 w-full\" /></Stack></SectionCard>\n <KeyValueList density=\"compact\" items={[{ keyLabel: \"Package\", value: \"@tapizlabs/ui\" }, { keyLabel: \"Mode\", value: \"Framework\" }, { keyLabel: \"Theme\", value: \"Token-first\" }]} />\n </ResponsiveGrid>\n </DemoSection>\n\n <DemoSection id=\"forms\" title=\"Forms\" description=\"Controlled-ready field primitives for enterprise CRUD, settings, onboarding and import flows.\">\n <ResponsiveGrid min=\"20rem\">\n <SectionCard title=\"Fields\">\n <Stack>\n <FormField label=\"Workspace name\" hint=\"Shown in the app shell\"><Input placeholder=\"Tapiz Academy\" /></FormField>\n <FormField label=\"Role\"><Select><option>Teacher</option><option>Admin</option></Select></FormField>\n <FormField label=\"Notes\"><Textarea placeholder=\"Internal note\" /></FormField>\n </Stack>\n </SectionCard>\n <SectionCard title=\"Advanced inputs\">\n <Stack>\n <InputGroup prefix=\"https://\" suffix=\".tapiz.app\"><Input placeholder=\"school\" /></InputGroup>\n <PasswordInput placeholder=\"Password\" />\n <Slider label=\"Automation level\" valueLabel=\"72%\" defaultValue={72} />\n <ToggleGroup value=\"monthly\" options={[{ label: \"Monthly\", value: \"monthly\" }, { label: \"Yearly\", value: \"yearly\" }]} />\n <Switch label=\"Enable notifications\" checked />\n <Combobox placeholder=\"Choose workspace\" options={[{ value: \"academy\", label: \"Academy\" }, { value: \"enterprise\", label: \"Enterprise\" }]} />\n <DateRangePicker />\n <ColorSwatchPicker value=\"accent\" options={[{ value: \"accent\", label: \"Accent\", color: \"var(--tapiz-accent)\" }, { value: \"success\", label: \"Success\", color: \"var(--tapiz-success)\" }, { value: \"warning\", label: \"Warning\", color: \"var(--tapiz-warning)\" }]} />\n <RatingInput value={4} />\n </Stack>\n </SectionCard>\n <SectionCard title=\"Upload and text area\">\n <Stack>\n <FileDropzone title=\"Import CSV\" description=\"Drag attendance data or click to browse.\" />\n <TextareaCounter maxLength={120} value=\"Reusable character-count textarea for messages and descriptions.\" readOnly />\n </Stack>\n </SectionCard>\n </ResponsiveGrid>\n </DemoSection>\n\n <DemoSection id=\"data\" title=\"Data display\" description=\"Tables, charts, progress, metrics, filters and visual summaries for dense products.\">\n <DataToolbar\n title=\"Students\"\n description=\"Search, filter and operate on tabular data.\"\n search={<SearchInput placeholder=\"Search students\" value=\"\" onChange={() => undefined} />}\n filters={<><FilterChip active>Active</FilterChip><FilterChip>Grade 8</FilterChip><FilterChip>High score</FilterChip></>}\n actions={<Button size=\"sm\">Export</Button>}\n className=\"mb-4\"\n />\n <DataTable\n variant=\"enterprise\"\n data={demoRows}\n rowKey={(row) => row.id}\n columns={[\n { id: \"student\", header: \"Student\", cell: (row) => row.student, sortAccessor: (row) => row.student },\n { id: \"status\", header: \"Status\", cell: (row) => <StatusBadge label={row.status} variant={row.status === \"Active\" ? \"success\" : row.status === \"Pending\" ? \"pending\" : \"danger\"} /> },\n { id: \"score\", header: \"Score\", cell: (row) => `${row.score}%`, align: \"right\", sortAccessor: (row) => row.score },\n ]}\n />\n <ResponsiveGrid min=\"19rem\" className=\"mt-8\">\n <MetricCard label=\"Attendance\" value=\"96.4%\" trend=\"+4.2%\" trendTone=\"positive\" description=\"vs last month\" />\n <SectionCard title=\"Bar list\"><BarList items={[{ label: \"Quiz\", value: 42 }, { label: \"Attendance\", value: 68 }, { label: \"Assignments\", value: 54 }]} /></SectionCard>\n <SectionCard title=\"Donut\"><DonutMetric value={82} label=\"Completion\" caption=\"Average across active classes\" /></SectionCard>\n <SectionCard title=\"Progress\"><Progress value={64} label=\"Migration\" /></SectionCard>\n <SectionCard title=\"Score ring\"><ScoreRing value={88} label=\"quality\" /></SectionCard>\n <SectionCard title=\"Heatmap\"><HeatmapGrid cells={Array.from({ length: 35 }, (_, index) => ({ value: (index * 7) % 18, title: `Day ${index + 1}` }))} /></SectionCard>\n <SectionCard title=\"Funnel\"><FunnelChart steps={[{ label: \"Visited\", value: 1200 }, { label: \"Started\", value: 820 }, { label: \"Completed\", value: 540 }]} /></SectionCard>\n <SectionCard title=\"Comparison\"><ComparisonMeter leftLabel=\"Manual\" rightLabel=\"Automated\" value={72} /></SectionCard>\n </ResponsiveGrid>\n </DemoSection>\n\n <DemoSection id=\"navigation\" title=\"Navigation and disclosure\" description=\"Application shell, nav bars, tabs, accordion, stepper and overlays.\">\n <ResponsiveGrid min=\"23rem\">\n <SectionCard title=\"App shell preview\">\n <AppShell\n sidebar={<SidebarNav groups={[{ label: \"Workspace\", items: [{ label: \"Dashboard\", active: true }, { label: \"Students\" }, { label: \"Reports\" }] }]} />}\n topbar={<TopNav brand=\"Tapiz\" links={[{ label: \"Docs\", href: \"#top\" }]} />}\n >\n <div className=\"p-4 text-sm text-[var(--tapiz-text-muted)]\">Shell content slot</div>\n </AppShell>\n </SectionCard>\n <SectionCard title=\"Tabs and accordion\">\n <Tabs activeId=\"usage\" variant=\"boxed\" items={[{ id: \"usage\", label: \"Usage\", content: \"Use tabs for related panels.\" }, { id: \"api\", label: \"API\", content: \"Prop-driven and typed.\" }]} />\n <Accordion className=\"mt-4\" openIds={[\"one\"]} items={[{ id: \"one\", title: \"Token-first\", content: \"No raw hex colors in application code.\" }, { id: \"two\", title: \"Accessible\", content: \"Keyboard-friendly primitives.\" }]} />\n </SectionCard>\n <SectionCard title=\"Stepper / overlay states\">\n <Stepper steps={[{ id: \"create\", label: \"Create\", status: \"complete\" }, { id: \"configure\", label: \"Configure\", status: \"current\" }, { id: \"launch\", label: \"Launch\", status: \"upcoming\" }]} />\n <Cluster className=\"mt-4\"><Popover trigger={<Button size=\"sm\">Popover</Button>}>Contextual content</Popover><Drawer open={false} title=\"Drawer\">Drawer content</Drawer></Cluster>\n <CommandMenu open={false} groups={[{ label: \"Actions\", items: [{ id: \"open-dashboard\", label: \"Open dashboard\" }, { id: \"create-class\", label: \"Create class\" }] }]} />\n </SectionCard>\n </ResponsiveGrid>\n </DemoSection>\n\n <DemoSection id=\"feedback\" title=\"Feedback\" description=\"Alerts, callouts, notifications, health states and loading overlays.\">\n <ResponsiveGrid min=\"22rem\">\n <Alert tone=\"info\" title=\"Info alert\">Use for important inline messages.</Alert>\n <Callout tone=\"warning\" title=\"Migration warning\">Review token usage before publishing.</Callout>\n <SectionCard title=\"Notifications\"><NotificationList items={[{ id: \"1\", title: \"New import completed\", description: \"1,204 rows processed.\", time: \"2m\", unread: true }, { id: \"2\", title: \"Report ready\", time: \"1h\" }]} /></SectionCard>\n <SectionCard title=\"Health\"><Stack><HealthIndicator tone=\"operational\" detail=\"99.99%\" /><HealthIndicator tone=\"degraded\" detail=\"API latency\" /><HealthIndicator tone=\"outage\" detail=\"1 service\" /><InlineStatus tone=\"success\" pulse>Realtime sync active</InlineStatus></Stack></SectionCard>\n <LoadingOverlay visible label=\"Syncing\"><div className=\"h-28 border border-[var(--tapiz-border-subtle)] bg-[var(--tapiz-bg-surface-muted)]\" /></LoadingOverlay>\n </ResponsiveGrid>\n </DemoSection>\n\n <DemoSection id=\"framework\" title=\"Framework patterns\" description=\"Higher-level enterprise blocks for admin panels, permissions, integrations, calendars and workflows.\">\n <ResponsiveGrid min=\"23rem\">\n <ResourceCard title=\"Classroom OS\" eyebrow=\"resource\" description=\"Reusable resource card for project, course, class or team entities.\" status=\"Live\" meta=\"Updated today\" />\n <IntegrationCard name=\"Google Classroom\" description=\"Sync rosters and assignments.\" status=\"connected\" lastSync=\"Synced 12m ago\" />\n <AuditLog items={[{ actor: \"Danijel\", action: \"updated permissions\", timestamp: \"09:42\" }, { actor: \"System\", action: \"synced attendance\", timestamp: \"09:30\" }]} />\n </ResponsiveGrid>\n <SplitPane className=\"mt-8\" primary={<KanbanBoard columns={[{ id: \"todo\", title: \"Todo\", items: [{ id: \"a\", title: \"Design docs page\", tone: \"accent\" }] }, { id: \"doing\", title: \"Doing\", items: [{ id: \"b\", title: \"Build components\", tone: \"warning\" }] }, { id: \"done\", title: \"Done\", items: [{ id: \"c\", title: \"Tokens\", tone: \"success\" }] }]} />} secondary={<AccessMatrix roles={[{ key: \"admin\", label: \"Admin\" }, { key: \"teacher\", label: \"Teacher\" }]} permissions={[{ key: \"users\", label: \"Manage users\", roles: { admin: true, teacher: false } }, { key: \"classes\", label: \"Manage classes\", roles: { admin: true, teacher: true } }]} />} />\n <CalendarGrid className=\"mt-8\" days={calendarDays} />\n </DemoSection>\n\n\n <DemoSection id=\"advanced\" title=\"Advanced framework blocks\" description=\"More product-grade patterns for operations, approvals, feature management, usage, rails and sticky controls.\">\n <StickyBar className=\"mb-6\"><Cluster justify=\"between\"><InlineStatus tone=\"info\">Previewing max component set</InlineStatus><Button size=\"sm\" variant=\"secondary\">Copy layout</Button></Cluster></StickyBar>\n <SplitPane\n primary={<Stack>\n <ApprovalQueue items={[{ title: \"Publish new grading rubric\", requester: \"Mila\", priority: \"high\", description: \"Requires admin approval before rollout.\" }, { title: \"Invite external mentor\", requester: \"Vuk\", priority: \"medium\" }]} />\n <FeatureFlagTable flags={[{ key: \"ai.quiz\", name: \"AI quiz generator\", description: \"Enable assisted quiz creation.\", enabled: true, rollout: \"80%\" }, { key: \"reports.v2\", name: \"Reports v2\", description: \"New analytics dashboard.\", enabled: false, rollout: \"Beta\" }]} />\n </Stack>}\n secondary={<PageRail title=\"Docs rail\" items={[{ label: \"Forms\", href: \"#forms\", active: true, meta: \"12\" }, { label: \"Data\", href: \"#data\", meta: \"9\" }, { label: \"Framework\", href: \"#framework\", meta: \"18\" }]} />}\n />\n <ResponsiveGrid min=\"22rem\" className=\"mt-8\">\n <PlanUsage items={[{ label: \"Seats\", used: 128, limit: 200 }, { label: \"Storage\", used: 64, limit: 100 }, { label: \"Automations\", used: 18, limit: 25 }]} />\n <SectionCard title=\"SLA\"><Stack><SLAStatus label=\"API uptime\" value={99} /><SLAStatus label=\"Queue latency\" value={91} target={95} /></Stack></SectionCard>\n <SectionCard title=\"Inbox\"><InboxList items={[{ title: \"Import completed\", sender: \"System\", snippet: \"Attendance import finished with 0 errors.\", time: \"2m\", unread: true, tag: \"Ops\" }, { title: \"Teacher request\", sender: \"Ana\", snippet: \"Needs access to Grade 8 workspace.\", time: \"1h\" }]} /></SectionCard>\n <SectionCard title=\"Activity\"><ActivityFeed items={[{ actor: \"Danijel\", action: \"enabled Reports v2\", time: \"now\" }, { actor: \"System\", action: \"rotated API keys\", time: \"1h\" }]} /></SectionCard>\n </ResponsiveGrid>\n <MasonryGrid columns={3} className=\"mt-8\">\n {[\"Token contract\", \"Component variants\", \"Agent docs\", \"A11y states\", \"Dark mode\", \"Framework patterns\"].map((item) => <Card key={item} variant=\"brutal\" className=\"mb-5 break-inside-avoid\"><div className=\"kicker\">module</div><h3 className=\"mt-2 font-semibold\">{item}</h3></Card>)}\n </MasonryGrid>\n </DemoSection>\n\n <DemoSection id=\"marketing\" title=\"Marketing blocks\" description=\"Landing-page building blocks for SaaS, education and enterprise presentation pages.\">\n <AnnouncementBar action={<Button size=\"sm\" variant=\"brutal\">Read changelog</Button>}>New Tapiz UI max component pack is available.</AnnouncementBar>\n <FeatureGrid >\n <FeatureCard title=\"Token architecture\" description=\"Centralized semantic tokens for consistent light/dark UI.\" />\n <FeatureCard title=\"Framework blocks\" description=\"Move faster with app shell, tables, forms and overlays.\" />\n <FeatureCard title=\"Brutal enterprise\" description=\"Strong borders, sharp rhythm and professional hierarchy.\" />\n </FeatureGrid>\n <StatsBand className=\"mt-8\" items={[{ value: \"80+\", label: \"Components\" }, { value: \"2\", label: \"Themes\" }, { value: \"0\", label: \"App deps\" }]} />\n <LogoCloud className=\"mt-8\" title=\"Works for product surfaces\" items={[{ name: \"Dashboard\" }, { name: \"Admin\" }, { name: \"Landing\" }, { name: \"Docs\" }, { name: \"Forms\" }, { name: \"Data\" }]} />\n <ResponsiveGrid min=\"20rem\" className=\"mt-8\">\n <TestimonialCard quote=\"Tapiz UI gives the product an instant enterprise backbone.\" author=\"Design Lead\" role=\"Tapiz Labs\" />\n <PricingCard name=\"Framework\" price=\"€0\" highlighted features={[\"Token system\", \"Components\", \"Docs page\"]} />\n <ComparisonTable includedHeader=\"Tapiz\" alternativeHeader=\"Ad-hoc UI\" rows={[{ feature: \"Light/dark\", included: \"Yes\", alternative: \"Manual\" }, { feature: \"Agent docs\", included: \"Included\", alternative: \"No\" }]} />\n </ResponsiveGrid>\n <RoadmapList className=\"mt-8\" items={[{ quarter: \"Q1\", title: \"Core framework\", status: \"Done\", description: \"Shell, nav, forms and table primitives.\" }, { quarter: \"Q2\", title: \"Analytics blocks\", status: \"Now\", description: \"Charts, status and operational views.\" }, { quarter: \"Q3\", title: \"AI workflows\", status: \"Next\", description: \"Agent-ready docs and generated screens.\" }]} />\n <FAQSection className=\"mt-8\" description=\"Common framework usage questions.\" items={[{ question: \"Can this be used outside Tapiz?\", answer: \"Yes. Components are generic and token-driven.\" }, { question: \"Does it require app router?\", answer: \"No. The package avoids app-specific dependencies.\" }]} />\n <CTASection className=\"mt-8\" eyebrow=\"Ready\" title=\"Build with Tapiz UI\" description=\"Copy this page into your docs app or export TapizDocsPage from the package.\" actions={<Button variant=\"primary\">Use framework</Button>} />\n </DemoSection>\n\n <DemoSection id=\"code\" title=\"Usage snippets\" description=\"Copyable examples for agents and developers.\">\n <CodeBlock language=\"tsx\">{`import { TapizDocsPage } from \"@tapizlabs/ui\";\\nimport \"@tapizlabs/ui/theme.css\";\\n\\nexport default function Docs() {\\n return <TapizDocsPage />;\\n}`}</CodeBlock>\n </DemoSection>\n </Container>\n </main>\n );\n}\n"],"mappings":"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","names":["jsx","jsxs","jsxs","jsx","jsx","jsxs","jsx","jsxs","jsx","jsxs","jsx","jsxs","jsx","jsxs","jsx","jsxs","jsx","jsx","jsx","jsxs","jsx","jsx","jsx","jsx","jsx","jsx","jsxs","useId","useState","jsx","jsxs","sizeMap","jsx","jsxs","useState","jsx","jsxs","useState","useState","jsx","jsxs","useState","jsx","jsxs","jsx","jsxs","useId","createPortal","jsx","jsxs","useId","createPortal","createPortal","jsx","jsxs","createPortal","jsx","jsxs","jsx","variantClasses","jsx","jsx","jsxs","jsx","variantClasses","jsx","jsxs","jsx","jsxs","className","jsx","jsxs","jsx","jsxs","jsx","jsx","jsxs","jsx","jsxs","jsx","jsxs","jsx","jsx","useEffect","useRef","useState","createPortal","jsx","jsxs","useState","useRef","useEffect","createPortal","useMemo","useState","jsx","jsxs","jsx","jsxs","ALIGN_CLASS","useState","useMemo","jsx","jsx","jsxs","jsx","jsxs","jsx","jsx","jsxs","jsx","jsxs","jsx","jsxs","jsx","jsxs","variantClasses","jsx","jsxs","jsx","jsx","gapClasses","alignClasses","justifyClasses","jsx","jsxs","Fragment","jsx","jsxs","jsx","jsxs","jsx","jsxs","jsx","jsxs","jsx","jsxs","jsx","jsxs","jsx","jsxs","jsx","jsxs","jsx","jsxs","jsx","jsxs","jsx","jsx","jsxs","jsx","jsxs","Alert","tone","jsx","jsxs","tone","jsx","jsx","jsx","jsxs","tones","jsx","jsxs","jsx","jsxs","jsx","jsxs","jsx","jsxs","jsx","jsxs","jsx","jsxs","jsx","sizeClasses","jsx","variantClasses","paddingClasses","jsx","jsxs","jsx","gapClasses","jsx","jsxs","jsx","jsxs","jsx","jsxs","jsx","jsxs","jsx","jsxs","Fragment","jsx","jsxs","jsx","jsxs","jsx","jsxs","toneClasses","tone","jsx","jsxs","jsx","jsxs","toneClasses","jsx","jsxs","jsx","jsxs","jsx","jsxs","jsx","jsxs","jsx","jsxs","jsx","jsxs","jsx","jsxs","toneClasses","tone","jsx","jsxs","jsx","jsxs","jsx","gapClasses","Fragment","jsx","jsxs","jsx","jsx","jsxs","jsx","jsxs","jsx","jsxs","jsx","jsx","jsxs","jsx","jsx","jsxs","jsx","jsxs","jsx","jsxs","jsx","jsxs","jsx","jsxs","jsx","jsxs","jsx","jsxs","jsx","jsxs","jsx","jsxs","jsx","jsxs","jsx","jsxs","jsx","jsxs","toneClasses","tone","Fragment","jsx","jsxs","Alert"]}
|