@etus/ui 0.4.0-beta.3 → 0.4.0-beta.4
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/chunk-2HM5Z2YP.js +834 -0
- package/dist/chunk-2HM5Z2YP.js.map +1 -0
- package/dist/{chunk-LMTNDUIP.js → chunk-2Y7PQ6ZL.js} +4 -4
- package/dist/{chunk-LMTNDUIP.js.map → chunk-2Y7PQ6ZL.js.map} +1 -1
- package/dist/{chunk-SAKW2OKH.js → chunk-32IJQOUV.js} +15 -26
- package/dist/chunk-32IJQOUV.js.map +1 -0
- package/dist/{chunk-CXHA5D3I.js → chunk-33JGPMUW.js} +4 -4
- package/dist/{chunk-CXHA5D3I.js.map → chunk-33JGPMUW.js.map} +1 -1
- package/dist/{chunk-JLVL76SW.js → chunk-36XTKR3B.js} +4 -4
- package/dist/{chunk-JLVL76SW.js.map → chunk-36XTKR3B.js.map} +1 -1
- package/dist/{chunk-CUWQUGGB.js → chunk-4GQN76L7.js} +3 -3
- package/dist/{chunk-CUWQUGGB.js.map → chunk-4GQN76L7.js.map} +1 -1
- package/dist/{chunk-7BAL24EU.js → chunk-5XQIH6WM.js} +4 -4
- package/dist/{chunk-7BAL24EU.js.map → chunk-5XQIH6WM.js.map} +1 -1
- package/dist/chunk-5ZWFIDO2.js +3 -0
- package/dist/{chunk-NNOGFX66.js.map → chunk-5ZWFIDO2.js.map} +1 -1
- package/dist/{chunk-CCUCWL6M.js → chunk-AB3S55W5.js} +11 -6
- package/dist/chunk-AB3S55W5.js.map +1 -0
- package/dist/{chunk-43SINRHH.js → chunk-AUCDXPWH.js} +5 -5
- package/dist/{chunk-43SINRHH.js.map → chunk-AUCDXPWH.js.map} +1 -1
- package/dist/{chunk-4HRQX2IA.js → chunk-AWYOWR5N.js} +3 -3
- package/dist/{chunk-4HRQX2IA.js.map → chunk-AWYOWR5N.js.map} +1 -1
- package/dist/{chunk-YTGYSNFR.js → chunk-B4ETIQOO.js} +4 -4
- package/dist/{chunk-YTGYSNFR.js.map → chunk-B4ETIQOO.js.map} +1 -1
- package/dist/{chunk-D5DM6GZB.js → chunk-D6TH3EGA.js} +12 -12
- package/dist/chunk-D6TH3EGA.js.map +1 -0
- package/dist/{chunk-ZJVZ3LQS.js → chunk-DDM2I5C6.js} +3 -3
- package/dist/{chunk-ZJVZ3LQS.js.map → chunk-DDM2I5C6.js.map} +1 -1
- package/dist/{chunk-3JIXCWJO.js → chunk-DDR24GOP.js} +3 -3
- package/dist/{chunk-3JIXCWJO.js.map → chunk-DDR24GOP.js.map} +1 -1
- package/dist/{chunk-GBTVAO4V.js → chunk-EGYWK2XX.js} +3 -3
- package/dist/{chunk-GBTVAO4V.js.map → chunk-EGYWK2XX.js.map} +1 -1
- package/dist/{chunk-KNH7JW6E.js → chunk-IBVCSZCH.js} +3 -3
- package/dist/{chunk-KNH7JW6E.js.map → chunk-IBVCSZCH.js.map} +1 -1
- package/dist/{chunk-VJITPUUS.js → chunk-ICM45N2K.js} +4 -4
- package/dist/{chunk-VJITPUUS.js.map → chunk-ICM45N2K.js.map} +1 -1
- package/dist/{chunk-GLEKBJLR.js → chunk-ILAV2AZ4.js} +3 -3
- package/dist/{chunk-GLEKBJLR.js.map → chunk-ILAV2AZ4.js.map} +1 -1
- package/dist/{chunk-MDQFZEIC.js → chunk-J62TFQHR.js} +6 -6
- package/dist/chunk-J62TFQHR.js.map +1 -0
- package/dist/{chunk-AWWBBMMY.js → chunk-JKYB5QAP.js} +5 -5
- package/dist/{chunk-AWWBBMMY.js.map → chunk-JKYB5QAP.js.map} +1 -1
- package/dist/{chunk-UKC3Q6OA.js → chunk-JMZ4CO6R.js} +3 -3
- package/dist/{chunk-UKC3Q6OA.js.map → chunk-JMZ4CO6R.js.map} +1 -1
- package/dist/{chunk-POZNQWZE.js → chunk-KC6CHPT3.js} +4 -4
- package/dist/{chunk-POZNQWZE.js.map → chunk-KC6CHPT3.js.map} +1 -1
- package/dist/{chunk-4J6DHPYY.js → chunk-KPNNSUXM.js} +3 -3
- package/dist/{chunk-4J6DHPYY.js.map → chunk-KPNNSUXM.js.map} +1 -1
- package/dist/{chunk-RPV77BCQ.js → chunk-ONQCNOLU.js} +4 -9
- package/dist/chunk-ONQCNOLU.js.map +1 -0
- package/dist/{chunk-QSY52N3A.js → chunk-OWOVCGUZ.js} +3 -3
- package/dist/{chunk-QSY52N3A.js.map → chunk-OWOVCGUZ.js.map} +1 -1
- package/dist/{chunk-QWRHPNBY.js → chunk-QIETN4UU.js} +4 -4
- package/dist/{chunk-QWRHPNBY.js.map → chunk-QIETN4UU.js.map} +1 -1
- package/dist/{chunk-NWFRMVI2.js → chunk-QZWKXUZP.js} +3 -3
- package/dist/{chunk-NWFRMVI2.js.map → chunk-QZWKXUZP.js.map} +1 -1
- package/dist/{chunk-7QDWREVG.js → chunk-R4UOT76L.js} +3 -3
- package/dist/{chunk-7QDWREVG.js.map → chunk-R4UOT76L.js.map} +1 -1
- package/dist/{chunk-HIEOL77G.js → chunk-RVUO7SDG.js} +4 -4
- package/dist/{chunk-HIEOL77G.js.map → chunk-RVUO7SDG.js.map} +1 -1
- package/dist/{chunk-XPVKJIWY.js → chunk-SCGKQ5RE.js} +3 -3
- package/dist/{chunk-XPVKJIWY.js.map → chunk-SCGKQ5RE.js.map} +1 -1
- package/dist/{chunk-UCGT2IR4.js → chunk-SJSYKUCL.js} +3 -3
- package/dist/{chunk-UCGT2IR4.js.map → chunk-SJSYKUCL.js.map} +1 -1
- package/dist/{chunk-KOTCWE7V.js → chunk-TNROOKX3.js} +11 -4
- package/dist/chunk-TNROOKX3.js.map +1 -0
- package/dist/{chunk-PGTCXLGY.js → chunk-U6EOAIPK.js} +3 -3
- package/dist/chunk-U6EOAIPK.js.map +1 -0
- package/dist/{chunk-KXSJSLPJ.js → chunk-V7XHE25E.js} +4 -4
- package/dist/{chunk-KXSJSLPJ.js.map → chunk-V7XHE25E.js.map} +1 -1
- package/dist/{chunk-FUCQNVJL.js → chunk-XLTSCY22.js} +10 -7
- package/dist/chunk-XLTSCY22.js.map +1 -0
- package/dist/{chunk-K3J7YLL4.js → chunk-XOGMDABS.js} +5 -6
- package/dist/chunk-XOGMDABS.js.map +1 -0
- package/dist/{chunk-53RWD44Z.js → chunk-XRMKL43Y.js} +3 -3
- package/dist/{chunk-53RWD44Z.js.map → chunk-XRMKL43Y.js.map} +1 -1
- package/dist/{chunk-DZALMUQD.js → chunk-Y3BOERVB.js} +3 -3
- package/dist/{chunk-DZALMUQD.js.map → chunk-Y3BOERVB.js.map} +1 -1
- package/dist/{chunk-AV5YQ2Z4.js → chunk-Y7UFBSAD.js} +3 -3
- package/dist/{chunk-AV5YQ2Z4.js.map → chunk-Y7UFBSAD.js.map} +1 -1
- package/dist/{chunk-HNYBLROK.js → chunk-YP2ATSXP.js} +11 -28
- package/dist/chunk-YP2ATSXP.js.map +1 -0
- package/dist/{chunk-75QBUI2P.js → chunk-ZO2EKJZM.js} +16 -8
- package/dist/chunk-ZO2EKJZM.js.map +1 -0
- package/dist/{chunk-VOCA4KZB.js → chunk-ZS2WS5NJ.js} +4 -4
- package/dist/{chunk-VOCA4KZB.js.map → chunk-ZS2WS5NJ.js.map} +1 -1
- package/dist/components/advanced/Calendar/index.js +3 -3
- package/dist/components/advanced/EventCalendar/index.js +3 -3
- package/dist/components/advanced/FilterBuilder/index.js +3 -3
- package/dist/components/advanced/ReportBuilder/index.js +11 -0
- package/dist/components/advanced/ReportBuilder/index.js.map +1 -0
- package/dist/components/advanced/index.js +12 -8
- package/dist/components/data-display/Callout/index.js +1 -1
- package/dist/components/data-display/Carousel/index.js +3 -3
- package/dist/components/data-display/ChartCard/index.js +2 -2
- package/dist/components/data-display/DashboardFilterbar/index.js +5 -5
- package/dist/components/data-display/DataTable/FilterBuilder/index.js +3 -3
- package/dist/components/data-display/DataTable/index.js +5 -5
- package/dist/components/data-display/KPICard/index.js +3 -2
- package/dist/components/data-display/List/index.js +3 -3
- package/dist/components/data-display/SingleStat/index.js +1 -1
- package/dist/components/data-display/VirtualTable/index.js +2 -2
- package/dist/components/data-display/index.js +30 -30
- package/dist/components/feedback/AlertDialog/index.js +3 -3
- package/dist/components/feedback/ConfirmModal/index.js +4 -4
- package/dist/components/feedback/Notification/index.js +2 -2
- package/dist/components/feedback/index.js +8 -8
- package/dist/components/forms/DatePicker/index.js +4 -4
- package/dist/components/forms/DateRangePicker/index.js +4 -4
- package/dist/components/forms/Field/index.js +2 -2
- package/dist/components/forms/Form/index.js +2 -2
- package/dist/components/forms/InputGroup/index.js +4 -4
- package/dist/components/forms/InputOTPField/index.js +3 -3
- package/dist/components/forms/NativeSelect/index.js +1 -1
- package/dist/components/forms/TagsInput/index.js +2 -2
- package/dist/components/forms/Textarea/index.js +1 -1
- package/dist/components/forms/TextareaField/index.js +4 -4
- package/dist/components/forms/index.js +28 -28
- package/dist/components/index.js +97 -96
- package/dist/components/layout/index.js +2 -2
- package/dist/components/navigation/AccountSwitch/index.js +3 -3
- package/dist/components/navigation/MobileSidebar/index.js +2 -2
- package/dist/components/navigation/Pagination/index.js +3 -3
- package/dist/components/navigation/Sidebar/index.js +4 -4
- package/dist/components/navigation/index.js +11 -11
- package/dist/components/primitives/Avatar/index.js +1 -1
- package/dist/components/primitives/Badge/index.js +1 -1
- package/dist/components/primitives/Button/index.js +2 -2
- package/dist/components/primitives/ConfirmButton/index.js +4 -4
- package/dist/components/primitives/Label/index.js +1 -1
- package/dist/components/primitives/SplitButton/index.js +1 -1
- package/dist/components/primitives/index.js +13 -13
- package/dist/components/workflow/ApprovalFlow/index.js +4 -4
- package/dist/components/workflow/CommentSystem/index.js +5 -5
- package/dist/components/workflow/Dashboard/index.js +3 -3
- package/dist/components/workflow/DashboardBuilder/index.js +4 -4
- package/dist/components/workflow/KanbanBoard/index.js +4 -4
- package/dist/components/workflow/ReportGenerator/index.js +4 -4
- package/dist/components/workflow/Wizard/index.js +3 -3
- package/dist/components/workflow/index.js +14 -14
- package/dist/fonts/inter-OFL.txt +92 -0
- package/dist/fonts/inter-latin-400-normal.woff2 +0 -0
- package/dist/fonts/inter-latin-500-normal.woff2 +0 -0
- package/dist/fonts/inter-latin-600-normal.woff2 +0 -0
- package/dist/fonts/inter-latin-700-normal.woff2 +0 -0
- package/dist/fonts/jetbrains-mono-OFL.txt +93 -0
- package/dist/fonts/jetbrains-mono-latin-400-normal.woff2 +0 -0
- package/dist/fonts/jetbrains-mono-latin-500-normal.woff2 +0 -0
- package/dist/fonts/jetbrains-mono-latin-700-normal.woff2 +0 -0
- package/dist/index.d.ts +114 -27
- package/dist/index.js +97 -96
- package/dist/styles.css +284 -7
- package/package.json +2 -2
- package/dist/chunk-75QBUI2P.js.map +0 -1
- package/dist/chunk-CCUCWL6M.js.map +0 -1
- package/dist/chunk-D5DM6GZB.js.map +0 -1
- package/dist/chunk-FUCQNVJL.js.map +0 -1
- package/dist/chunk-HNYBLROK.js.map +0 -1
- package/dist/chunk-K3J7YLL4.js.map +0 -1
- package/dist/chunk-KOTCWE7V.js.map +0 -1
- package/dist/chunk-MDQFZEIC.js.map +0 -1
- package/dist/chunk-NNOGFX66.js +0 -3
- package/dist/chunk-PGTCXLGY.js.map +0 -1
- package/dist/chunk-RPV77BCQ.js.map +0 -1
- package/dist/chunk-SAKW2OKH.js.map +0 -1
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"sources":["../src/components/advanced/ReportBuilder/ReportBuilder.tsx"],"names":[],"mappings":"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","file":"chunk-2HM5Z2YP.js","sourcesContent":["\"use client\"\n\n// ReportBuilder — a faithful copy of Google Ad Manager's report builder bar:\n// a dimensions+metrics chip strip with an inline typeahead field, a sentence-\n// chip filter row (\"Source (src) is any of a, b\") with an inline \"Add filter\"\n// field, and the \"All dimensions and metrics\" View-all dialog (draft + Apply).\n//\n// Interaction contract (observed on the live GAM builder, 2026-06-09):\n// • Chips are inert — only their delete × reacts. The ONLY dropdown opener is\n// the inline text field; typing filters; checkboxes toggle without closing.\n// • \"Add filter\" is an inline field too: focusing lists the filter fields,\n// typing filters them, picking one opens that field's editor popup\n// (title + ✕, operator, value chips + type-to-search, blue Apply).\n// • \"View all\" opens a near-fullscreen dialog where selections are a DRAFT —\n// only Apply commits, Cancel discards.\n//\n// Visuals measured from the live GAM DOM: chips 24px + 1px #dadce0 border at\n// 12px radius, labels 13px/500 #5f6368, field glyphs 16px (#4285f4 dimension,\n// #34a853 \"123\" metric), popups 8px radius with Material's two-layer shadow,\n// internal dividers #e0e0e0, placeholders #757575, blue accents #1a73e8 /\n// #1967d2 / #e8f0fe.\n\nimport type {\n ReportBuilderField,\n ReportBuilderFieldKind,\n ReportBuilderFilter,\n ReportBuilderFilterField,\n ReportBuilderProps,\n} from \"./ReportBuilder.types\"\n\nimport { Filter, Search, Shapes, Table, X } from \"lucide-react\"\nimport * as React from \"react\"\n\nimport { cn } from \"../../../lib/utils\"\nimport { Dialog, DialogContent, DialogTitle } from \"../../feedback/Dialog\"\nimport { Popover, PopoverAnchor, PopoverContent } from \"../../feedback/Popover\"\nimport { Checkbox } from \"../../forms/Checkbox\"\nimport { NumberInput } from \"../../forms/NumberInput\"\nimport {\n Select,\n SelectContent,\n SelectItem,\n SelectTrigger,\n SelectValue,\n} from \"../../forms/Select\"\n\nconst NUMBER_OPS = [\n { v: \">=\", l: \"≥\" },\n { v: \"<=\", l: \"≤\" },\n { v: \">\", l: \">\" },\n { v: \"<\", l: \"<\" },\n { v: \"=\", l: \"=\" },\n { v: \"between\", l: \"between\" },\n] as const\n\n/** GAM's blue Material checkbox — 18px, 2px #757575 border, checked #1a73e8. */\nconst GAM_CHECKBOX =\n \"size-[18px] rounded-xs border-2 border-[color:var(--report-builder-fg-subtle)] data-[state=checked]:border-[color:var(--report-builder-accent)] data-[state=checked]:bg-[color:var(--report-builder-accent)] data-[state=checked]:text-[color:var(--report-builder-on-accent)]\"\n\n/** GAM popup container — 8px radius, no border, Material two-layer shadow. */\nconst GAM_POPUP =\n \"rounded-lg border-0 p-0 [--report-builder-popup-shadow:0_1px_2px_0_var(--report-builder-shadow),0_2px_6px_2px_var(--report-builder-shadow-subtle)] shadow-[var(--report-builder-popup-shadow)]\"\n\nconst numFmt = (n: null | number | undefined) =>\n n == null ? \"\" : n.toLocaleString(\"en-US\")\n\n/** \"a, b, c\" up to 3 values, then \"+N\". */\nfunction listFmt(vals: string[]): string {\n const head = vals.slice(0, 3).join(\", \")\n return vals.length > 3 ? `${head} +${String(vals.length - 3)}` : head\n}\n\n/** Editor prefill for a filter field, from an existing filter if any. */\nfunction editorStateFor(existing?: ReportBuilderFilter) {\n return {\n a: existing?.a != null ? String(existing.a) : \"\",\n b: existing?.b != null ? String(existing.b) : \"\",\n op:\n existing && existing.op !== \"anyOf\" && existing.op !== \"contains\"\n ? existing.op\n : \">=\",\n text: existing?.text ?? \"\",\n vals: existing?.values ?? [],\n }\n}\n\n/** GAM shows custom keys as \"Label (key)\"; natives (label == key) plain. */\nfunction fieldLabel(label: string, key: string): string {\n return label.toLowerCase() === key.toLowerCase() ? label : `${label} (${key})`\n}\n\n/** Material \"123\" metric glyph, rendered as bold text like GAM's icon. */\nfunction MetricGlyph() {\n return (\n <span className=\"flex h-4 w-[22px] items-center justify-center text-[12px] font-bold leading-none tracking-tighter text-[color:var(--report-builder-positive)]\">\n 123\n </span>\n )\n}\n\n/** Material \"category\" dimension glyph — 16px, #4285f4. Lucide Shapes ≈ category. */\nfunction DimGlyph() {\n return <Shapes className=\"shrink-0 text-[color:var(--report-builder-accent-bright)]\" size={16} />\n}\n\nfunction KindGlyph({ kind }: { kind: ReportBuilderFieldKind }) {\n return kind === \"metric\" ? <MetricGlyph /> : <DimGlyph />\n}\n\n/** material-chip, measured: 24px tall (+1px border), 12px radius, #dadce0\n * outline, white bg, 12px left pad, 13px/500 #5f6368 label, 32×24 delete\n * button. `active` = GAM's blue editing highlight. */\nfunction GamChip({\n icon,\n children,\n active,\n onClick,\n onRemove,\n}: {\n active?: boolean\n children: React.ReactNode\n icon?: React.ReactNode\n onClick?: () => void\n onRemove?: () => void\n}) {\n return (\n <span\n className={cn(\n \"inline-flex h-[26px] items-center rounded-xl border pl-3 text-[13px] font-medium\",\n active\n ? \"border-[color:var(--report-builder-accent-border)] bg-[color:var(--report-builder-accent-bg)] text-[color:var(--report-builder-accent-hover)]\"\n : \"border-[color:var(--report-builder-border)] bg-[color:var(--report-builder-surface)] text-[color:var(--report-builder-fg-muted)]\",\n !onRemove && \"pr-3\",\n onClick && \"cursor-pointer\",\n onClick && !active && \"hover:bg-[color:var(--report-builder-surface-subtle)]\"\n )}\n onClick={onClick}\n >\n {icon && <span className=\"mr-2 flex items-center\">{icon}</span>}\n <span className=\"whitespace-nowrap\">{children}</span>\n {onRemove && (\n <button\n className={cn(\n \"flex h-6 w-8 items-center justify-center\",\n active ? \"text-[color:var(--report-builder-accent-hover)]\" : \"text-[color:var(--report-builder-fg-muted)] hover:text-[color:var(--report-builder-fg-secondary)]\"\n )}\n aria-label=\"Remove\"\n type=\"button\"\n onClick={(e) => {\n e.stopPropagation()\n onRemove()\n }}\n >\n <X size={18} />\n </button>\n )}\n </span>\n )\n}\n\n// ---------------------------------------------------------------------------\n// \"All dimensions and metrics\" dialog (GAM's View-all modal)\n// ---------------------------------------------------------------------------\n\nfunction AllFieldsDialog({\n onOpenChange,\n fields,\n dimensions,\n metrics,\n onSelectionChange,\n}: {\n dimensions: string[]\n fields: ReportBuilderField[]\n metrics: string[]\n onOpenChange: (o: boolean) => void\n onSelectionChange: ReportBuilderProps[\"onSelectionChange\"]\n}) {\n // The dialog is mounted fresh on every open (see FieldsBar), so the draft\n // is simply seeded from props at mount time — no re-seeding effect needed.\n const [draftDims, setDraftDims] = React.useState<string[]>(dimensions)\n const [draftMets, setDraftMets] = React.useState<string[]>(metrics)\n const [display, setDisplay] = React.useState<\"all\" | \"dimensions\" | \"metrics\">(\"all\")\n const [category, setCategory] = React.useState<\"dimensions\" | \"metrics\" | \"popular\">(\n \"popular\"\n )\n const [search, setSearch] = React.useState(\"\")\n const [hovered, setHovered] = React.useState<null | string>(null)\n\n function toggleDraft(kind: ReportBuilderFieldKind, key: string) {\n const [cur, set] =\n kind === \"dimension\"\n ? ([draftDims, setDraftDims] as const)\n : ([draftMets, setDraftMets] as const)\n set(cur.includes(key) ? cur.filter((k) => k !== key) : [...cur, key])\n }\n\n function apply() {\n onSelectionChange(\"dimensions\", draftDims)\n onSelectionChange(\"metrics\", draftMets)\n onOpenChange(false)\n }\n\n const match = (l: string) => l.toLowerCase().includes(search.trim().toLowerCase())\n const items = fields.filter((f) => {\n if (!match(f.label)) return false\n if (display === \"dimensions\" && f.kind !== \"dimension\") return false\n if (display === \"metrics\" && f.kind !== \"metric\") return false\n if (category === \"dimensions\" && f.kind !== \"dimension\") return false\n if (category === \"metrics\" && f.kind !== \"metric\") return false\n return true\n })\n const selected = [\n ...draftDims.map((k) => fields.find((f) => f.kind === \"dimension\" && f.key === k)),\n ...draftMets.map((k) => fields.find((f) => f.kind === \"metric\" && f.key === k)),\n ].filter((f): f is ReportBuilderField => !!f)\n\n const CATS = [\n { k: \"popular\", l: \"Popular\" },\n { k: \"dimensions\", l: \"Dimensions\" },\n { k: \"metrics\", l: \"Metrics\" },\n ] as const\n const DISPLAYS = [\n { k: \"all\", l: \"All\" },\n { k: \"dimensions\", l: \"Dimensions\" },\n { k: \"metrics\", l: \"Metrics\" },\n ] as const\n\n return (\n <Dialog open onOpenChange={onOpenChange}>\n <DialogContent\n className=\"left-0 top-0 flex h-screen max-h-screen w-[min(1500px,96vw)] max-w-none translate-x-0 translate-y-0 flex-col gap-0 rounded-none border-0 bg-[color:var(--report-builder-surface)] p-0 text-[color:var(--report-builder-fg)]\"\n showCloseButton={false}\n >\n {/* header: ✕ + title + Display toggles */}\n <div className=\"flex shrink-0 items-center gap-4 px-4 py-3\">\n <button\n aria-label=\"Close\"\n className=\"rounded-full p-1.5 text-[color:var(--report-builder-fg-muted)] hover:bg-[color:var(--report-builder-surface-hover)]\"\n type=\"button\"\n onClick={() => {\n onOpenChange(false)\n }}\n >\n <X size={20} />\n </button>\n <DialogTitle className=\"text-xl font-normal text-[color:var(--report-builder-fg)]\">\n All dimensions and metrics\n </DialogTitle>\n <div className=\"flex-1\" />\n <span className=\"text-sm text-[color:var(--report-builder-fg-muted)]\">Display</span>\n <div className=\"flex gap-2\">\n {DISPLAYS.map((d) => (\n <button\n key={d.k}\n className={cn(\n \"h-8 rounded px-3 text-sm font-medium\",\n display === d.k\n ? \"bg-[color:var(--report-builder-accent-bg)] text-[color:var(--report-builder-accent-hover)]\"\n : \"border border-[color:var(--report-builder-border)] text-[color:var(--report-builder-fg-secondary)] hover:bg-[color:var(--report-builder-surface-subtle)]\"\n )}\n type=\"button\"\n onClick={() => {\n setDisplay(d.k)\n }}\n >\n {display === d.k ? \"✓ \" : \"\"}\n {d.l}\n </button>\n ))}\n </div>\n </div>\n {/* search */}\n <div className=\"flex shrink-0 items-center gap-3 border-y border-[color:var(--report-builder-border-strong)] px-4 py-2.5\">\n <Search className=\"text-[color:var(--report-builder-fg-muted)]\" size={18} />\n <input\n autoFocus\n className=\"w-full bg-transparent text-sm text-[color:var(--report-builder-fg)] outline-none placeholder:text-[color:var(--report-builder-fg-subtle)]\"\n placeholder=\"Search\"\n value={search}\n onChange={(e) => {\n setSearch(e.target.value)\n }}\n />\n </div>\n {/* body: categories | list | selected | description */}\n <div className=\"flex min-h-0 flex-1\">\n <div className=\"w-56 shrink-0 overflow-auto border-r border-[color:var(--report-builder-border-strong)] py-1\">\n {CATS.map((c) => (\n <button\n key={c.k}\n className={cn(\n \"flex h-9 w-full items-center px-4 text-left text-sm\",\n category === c.k\n ? \"bg-[color:var(--report-builder-surface-hover)] text-[color:var(--report-builder-fg)]\"\n : \"text-[color:var(--report-builder-fg-secondary)] hover:bg-[color:var(--report-builder-surface-subtle)]\"\n )}\n type=\"button\"\n onClick={() => {\n setCategory(c.k)\n }}\n >\n {c.l}\n </button>\n ))}\n </div>\n <div className=\"min-w-0 flex-[1.4] overflow-auto py-1\">\n {items.map((f) => {\n const sel =\n f.kind === \"dimension\"\n ? draftDims.includes(f.key)\n : draftMets.includes(f.key)\n return (\n <label\n key={`${f.kind}:${f.key}`}\n className=\"flex h-9 cursor-pointer items-center gap-3 px-4 text-[15px] text-[color:var(--report-builder-fg-strong)] hover:bg-[color:var(--report-builder-surface-muted)]\"\n onMouseEnter={() => {\n setHovered(`${f.kind}:${f.key}`)\n }}\n onMouseLeave={() => {\n setHovered(null)\n }}\n // Mirror hover on keyboard focus so the description pane is\n // reachable without a mouse (WCAG 2.1 AA). Focus bubbles from\n // the inner checkbox to this label.\n onFocus={() => {\n setHovered(`${f.kind}:${f.key}`)\n }}\n onBlur={() => {\n setHovered(null)\n }}\n >\n <Checkbox\n checked={sel}\n className={GAM_CHECKBOX}\n onCheckedChange={() => {\n toggleDraft(f.kind, f.key)\n }}\n />\n <span className=\"flex items-center gap-2\">\n <KindGlyph kind={f.kind} />\n {f.label}\n </span>\n </label>\n )\n })}\n {items.length === 0 && (\n <div className=\"px-4 py-3 text-sm text-[color:var(--report-builder-fg-subtle)]\">No matches</div>\n )}\n </div>\n <div className=\"w-96 shrink-0 overflow-auto border-l border-[color:var(--report-builder-border-strong)]\">\n <div className=\"flex items-center justify-between px-4 py-3\">\n <span className=\"text-sm font-medium text-[color:var(--report-builder-fg)]\">\n {selected.length} Selected\n </span>\n <button\n className=\"text-sm font-medium text-[color:var(--report-builder-accent-hover)] hover:underline\"\n type=\"button\"\n onClick={() => {\n setDraftDims([])\n setDraftMets([])\n }}\n >\n Clear all\n </button>\n </div>\n {selected.map((f) => (\n <div key={`${f.kind}:${f.key}`} className=\"px-4 py-1.5\">\n <div className=\"text-xs text-[color:var(--report-builder-fg-muted)]\">\n {f.kind === \"dimension\" ? \"Dimensions\" : \"Metrics\"}\n </div>\n <div className=\"flex items-center gap-2\">\n <KindGlyph kind={f.kind} />\n <span className=\"flex-1 text-sm text-[color:var(--report-builder-fg)]\">{f.label}</span>\n <button\n aria-label={`Remove ${f.label}`}\n className=\"rounded-full p-1 text-[color:var(--report-builder-fg-muted)] hover:bg-[color:var(--report-builder-surface-hover)]\"\n type=\"button\"\n onClick={() => {\n toggleDraft(f.kind, f.key)\n }}\n >\n <X size={16} />\n </button>\n </div>\n </div>\n ))}\n </div>\n <div className=\"w-80 shrink-0 overflow-auto border-l border-[color:var(--report-builder-border-strong)] p-4 text-sm text-[color:var(--report-builder-fg)]\">\n {hovered\n ? (fields.find((f) => `${f.kind}:${f.key}` === hovered)?.description ??\n fields.find((f) => `${f.kind}:${f.key}` === hovered)?.label)\n : \"Hover over a dimension or metric to see a description\"}\n </div>\n </div>\n {/* footer: Apply / Cancel */}\n <div className=\"flex shrink-0 items-center gap-4 border-t border-[color:var(--report-builder-border-strong)] px-4 py-3\">\n <button\n className=\"rounded bg-[color:var(--report-builder-accent)] px-6 py-2 text-sm font-medium text-[color:var(--report-builder-on-accent)] hover:bg-[color:var(--report-builder-accent-hover)] disabled:cursor-not-allowed disabled:opacity-50\"\n disabled={draftDims.length === 0 || draftMets.length === 0}\n type=\"button\"\n onClick={apply}\n >\n Apply\n </button>\n <button\n className=\"rounded px-2 py-2 text-sm font-medium text-[color:var(--report-builder-accent-hover)] hover:bg-[color:var(--report-builder-accent-bg-subtle)]\"\n type=\"button\"\n onClick={() => {\n onOpenChange(false)\n }}\n >\n Cancel\n </button>\n </div>\n </DialogContent>\n </Dialog>\n )\n}\n\n// ---------------------------------------------------------------------------\n// Dimensions + metrics chip strip\n// ---------------------------------------------------------------------------\n\nfunction FieldsBar({\n fields,\n dimensions,\n metrics,\n onSelectionChange,\n}: Pick<\n ReportBuilderProps,\n \"dimensions\" | \"fields\" | \"metrics\" | \"onSelectionChange\"\n>) {\n const [open, setOpen] = React.useState(false)\n const [viewAllOpen, setViewAllOpen] = React.useState(false)\n const [search, setSearch] = React.useState(\"\")\n const [hovered, setHovered] = React.useState<null | string>(null)\n const inputRef = React.useRef<HTMLInputElement>(null)\n\n const byKey = (kind: ReportBuilderFieldKind, key: string) =>\n fields.find((f) => f.kind === kind && f.key === key)\n\n function toggle(kind: ReportBuilderFieldKind, key: string) {\n const plural = kind === \"dimension\" ? \"dimensions\" : \"metrics\"\n const cur = kind === \"dimension\" ? dimensions : metrics\n if (cur.includes(key)) {\n if (cur.length === 1) return // keep at least one of each\n onSelectionChange(plural, cur.filter((k) => k !== key))\n } else {\n onSelectionChange(plural, [...cur, key])\n }\n }\n\n const match = (l: string) => l.toLowerCase().includes(search.trim().toLowerCase())\n const items = fields.filter((f) => match(f.label))\n\n return (\n <div className=\"flex items-start border-b border-[color:var(--report-builder-border)] bg-[color:var(--report-builder-surface)] py-3\">\n <Popover\n open={open}\n onOpenChange={(o) => {\n setOpen(o)\n if (!o) {\n setSearch(\"\")\n setHovered(null)\n }\n }}\n >\n {/* anchor spans icon + strip so the dropdown is as wide as the strip */}\n <PopoverAnchor asChild>\n <div className=\"flex min-w-0 flex-1 items-start\">\n <div className=\"flex shrink-0 items-center px-3\">\n <Table className=\"text-[color:var(--report-builder-fg)]\" size={24} strokeWidth={1.5} />\n </div>\n <div className=\"min-w-0 flex-1\">\n {/* chips are NOT a click target (GAM: only their × reacts) */}\n <div className=\"flex flex-wrap items-center gap-x-2 gap-y-1\">\n {dimensions.map((k) => (\n <GamChip\n key={`d:${k}`}\n icon={<DimGlyph />}\n onRemove={\n dimensions.length > 1 ? () => { toggle(\"dimension\", k); } : undefined\n }\n >\n {byKey(\"dimension\", k)?.label ?? k}\n </GamChip>\n ))}\n {metrics.map((k) => (\n <GamChip\n key={`m:${k}`}\n icon={<MetricGlyph />}\n onRemove={metrics.length > 1 ? () => { toggle(\"metric\", k); } : undefined}\n >\n {byKey(\"metric\", k)?.label ?? k}\n </GamChip>\n ))}\n </div>\n {/* the inline search field — the ONLY opener, like GAM's combobox */}\n <input\n ref={inputRef}\n className=\"mt-2 w-full max-w-md bg-transparent text-sm text-[color:var(--report-builder-fg)] outline-none placeholder:text-[color:var(--report-builder-fg-subtle)]\"\n placeholder=\"Select dimensions and metrics\"\n value={search}\n onChange={(e) => {\n setSearch(e.target.value)\n if (!open) setOpen(true)\n }}\n onFocus={() => {\n setOpen(true)\n }}\n />\n </div>\n </div>\n </PopoverAnchor>\n {/* GAM dropdown: strip-wide, two panes (list | description), View all footer */}\n <PopoverContent\n align=\"start\"\n className={GAM_POPUP}\n sideOffset={4}\n style={{ width: \"var(--radix-popper-anchor-width)\" }}\n onInteractOutside={(e) => {\n if (e.target === inputRef.current) e.preventDefault()\n }}\n onOpenAutoFocus={(e) => {\n e.preventDefault()\n }}\n >\n <div className=\"flex\">\n <div className=\"max-h-[340px] flex-[1.6] overflow-auto py-1\">\n {!search.trim() && (\n <div className=\"px-4 pb-1 pt-2 text-xs font-normal text-[color:var(--report-builder-fg-subtle)]\">\n Popular\n </div>\n )}\n {items.map((f) => {\n const sel =\n f.kind === \"dimension\"\n ? dimensions.includes(f.key)\n : metrics.includes(f.key)\n return (\n <label\n key={`${f.kind}:${f.key}`}\n className=\"flex h-8 cursor-pointer items-center gap-3 px-4 text-[15px] text-[color:var(--report-builder-fg-strong)] hover:bg-[color:var(--report-builder-surface-muted)]\"\n onMouseEnter={() => {\n setHovered(`${f.kind}:${f.key}`)\n }}\n onMouseLeave={() => {\n setHovered(null)\n }}\n // Mirror hover on keyboard focus so the description pane is\n // reachable without a mouse (WCAG 2.1 AA). Focus bubbles\n // from the inner checkbox to this label.\n onFocus={() => {\n setHovered(`${f.kind}:${f.key}`)\n }}\n onBlur={() => {\n setHovered(null)\n }}\n >\n <Checkbox\n checked={sel}\n className={GAM_CHECKBOX}\n onCheckedChange={() => {\n toggle(f.kind, f.key)\n }}\n />\n <span className=\"flex items-center gap-2\">\n <KindGlyph kind={f.kind} />\n {f.label}\n </span>\n </label>\n )\n })}\n {items.length === 0 && (\n <div className=\"px-4 py-2 text-sm text-[color:var(--report-builder-fg-subtle)]\">No matches</div>\n )}\n </div>\n <div className=\"min-h-[200px] flex-1 border-l border-[color:var(--report-builder-border-strong)] p-4 text-sm text-[color:var(--report-builder-fg)]\">\n {hovered\n ? (fields.find((f) => `${f.kind}:${f.key}` === hovered)?.description ??\n fields.find((f) => `${f.kind}:${f.key}` === hovered)?.label)\n : \"Hover over a dimension or metric to see a description\"}\n </div>\n </div>\n <div className=\"border-t border-[color:var(--report-builder-border-strong)] px-4 py-2.5\">\n <button\n aria-label=\"View all fields\"\n className=\"text-sm font-medium text-[color:var(--report-builder-accent-hover)] hover:underline\"\n type=\"button\"\n onClick={() => {\n setOpen(false)\n setViewAllOpen(true)\n }}\n >\n View all\n </button>\n </div>\n </PopoverContent>\n </Popover>\n <div className=\"flex shrink-0 items-center self-stretch border-l border-[color:var(--report-builder-border)] px-4\">\n <button\n aria-label=\"View all dimensions and metrics\"\n className=\"text-sm font-medium text-[color:var(--report-builder-accent-hover)] hover:underline\"\n type=\"button\"\n onClick={() => {\n setViewAllOpen(true)\n }}\n >\n View all\n </button>\n </div>\n {viewAllOpen && (\n <AllFieldsDialog\n dimensions={dimensions}\n fields={fields}\n metrics={metrics}\n onOpenChange={setViewAllOpen}\n onSelectionChange={onSelectionChange}\n />\n )}\n </div>\n )\n}\n\n// ---------------------------------------------------------------------------\n// Filter chips row\n// ---------------------------------------------------------------------------\n\nfunction filterChipLabel(f: ReportBuilderFilter, ff?: ReportBuilderFilterField): string {\n const label = ff ? fieldLabel(ff.label, ff.key) : f.field\n if (f.op === \"anyOf\") return `${label} is any of ${listFmt(f.values ?? [])}`\n if (f.op === \"contains\") return `${label} contains \"${f.text ?? \"\"}\"`\n if (f.op === \"between\") return `${ff?.label ?? f.field} between ${numFmt(f.a)} and ${numFmt(f.b)}`\n const op = NUMBER_OPS.find((o) => o.v === f.op)?.l ?? f.op\n return `${ff?.label ?? f.field} ${op} ${numFmt(f.a)}`\n}\n\n/** Build the filter entry from editor state.\n * Returns the entry, `null` for an empty editor (→ remove the filter), or\n * `\"invalid\"` for unparsable numeric input (→ keep the editor open). */\nfunction buildFilterEntry(\n ff: ReportBuilderFilterField,\n s: { a: string; b: string; op: string; text: string; vals: string[] }\n): \"invalid\" | null | ReportBuilderFilter {\n if (ff.type === \"enum\") {\n return s.vals.length ? { field: ff.key, op: \"anyOf\", values: s.vals } : null\n }\n if (ff.type === \"text\") {\n const t = s.text.trim()\n return t ? { field: ff.key, op: \"contains\", text: t } : null\n }\n const na = Number.parseFloat(s.a)\n if (Number.isNaN(na)) return \"invalid\"\n const nb = s.op === \"between\" ? Number.parseFloat(s.b) : null\n if (nb != null && Number.isNaN(nb)) return \"invalid\"\n return { a: na, b: nb, field: ff.key, op: s.op as ReportBuilderFilter[\"op\"] }\n}\n\nfunction FiltersBar({\n filterFields,\n filters,\n onFiltersChange,\n}: {\n filterFields: ReportBuilderFilterField[]\n filters: ReportBuilderFilter[]\n onFiltersChange: (filters: ReportBuilderFilter[]) => void\n}) {\n const [open, setOpen] = React.useState(false)\n const [fieldKey, setFieldKey] = React.useState<null | string>(null) // null = field list\n const [editIdx, setEditIdx] = React.useState<null | number>(null)\n const [vals, setVals] = React.useState<string[]>([])\n const [text, setText] = React.useState(\"\")\n const [op, setOp] = React.useState<string>(\">=\")\n const [a, setA] = React.useState(\"\")\n const [b, setB] = React.useState(\"\")\n const [fsearch, setFsearch] = React.useState(\"\") // field-list typeahead\n const [vsearch, setVsearch] = React.useState(\"\") // value typeahead in editor\n const inputRef = React.useRef<HTMLInputElement>(null)\n\n const fieldOf = (key: string) => filterFields.find((f) => f.key === key)\n\n function reset() {\n setFieldKey(null)\n setEditIdx(null)\n setVals([])\n setText(\"\")\n setOp(\">=\")\n setA(\"\")\n setB(\"\")\n setFsearch(\"\")\n setVsearch(\"\")\n }\n\n function openEditor(key: string, idx?: number) {\n const ff = fieldOf(key)\n if (!ff) return\n // enum/text fields keep one filter per field — editing replaces it\n const existingIdx =\n idx ?? (ff.type === \"number\" ? -1 : filters.findIndex((x) => x.field === key))\n const seed = editorStateFor(existingIdx >= 0 ? filters[existingIdx] : undefined)\n setFieldKey(key)\n setEditIdx(existingIdx >= 0 ? existingIdx : null)\n setVsearch(\"\")\n setVals(seed.vals)\n setText(seed.text)\n setOp(seed.op)\n setA(seed.a)\n setB(seed.b)\n setOpen(true)\n }\n\n function apply() {\n const ff = fieldKey ? fieldOf(fieldKey) : null\n if (!ff) return\n const entry = buildFilterEntry(ff, { a, b, op, text, vals })\n if (entry === \"invalid\") return\n const next = [...filters]\n if (editIdx != null) {\n if (entry) next[editIdx] = entry\n else next.splice(editIdx, 1)\n } else if (entry) {\n next.push(entry)\n }\n onFiltersChange(next)\n setOpen(false)\n reset()\n }\n\n const editorField = fieldKey ? fieldOf(fieldKey) : null\n const valueOptions = editorField?.options ?? []\n const valueSuggestions = valueOptions.filter(\n (v) => !vals.includes(v) && v.toLowerCase().includes(vsearch.trim().toLowerCase())\n )\n const fieldMatches = (l: string) =>\n l.toLowerCase().includes(fsearch.trim().toLowerCase())\n\n return (\n <div className=\"flex min-h-12 items-center bg-[color:var(--report-builder-surface)] py-2\">\n <div className=\"flex shrink-0 items-center px-3\">\n <Filter className=\"text-[color:var(--report-builder-accent)]\" fill=\"currentColor\" size={20} strokeWidth={0} />\n </div>\n <div className=\"flex min-w-0 flex-1 flex-wrap items-center gap-x-2 gap-y-1\">\n {filters.map((f, i) => (\n <GamChip\n // Content-based key, not the array index: number fields allow\n // duplicate filters on the same field, so an index key mis-keys\n // survivors on removal/reorder. The chip label is unique per filter.\n key={`${f.field}:${filterChipLabel(f, fieldOf(f.field))}`}\n active={open && editIdx === i}\n onClick={() => {\n openEditor(f.field, i)\n }}\n onRemove={() => {\n onFiltersChange(filters.filter((_, j) => j !== i))\n }}\n >\n {filterChipLabel(f, fieldOf(f.field))}\n </GamChip>\n ))}\n {/* \"Add filter\" inline field — the opener, like GAM's combobox */}\n <Popover\n open={open}\n onOpenChange={(o) => {\n setOpen(o)\n if (!o) reset()\n }}\n >\n <PopoverAnchor asChild>\n <input\n ref={inputRef}\n className=\"w-28 bg-transparent px-2 py-1 text-sm text-[color:var(--report-builder-fg)] outline-none placeholder:text-[color:var(--report-builder-fg-subtle)]\"\n placeholder=\"Add filter\"\n value={fsearch}\n onChange={(e) => {\n setFsearch(e.target.value)\n if (!open) setOpen(true)\n }}\n onFocus={() => {\n if (fieldKey === null) setOpen(true)\n }}\n />\n </PopoverAnchor>\n <PopoverContent\n align=\"start\"\n className={cn(fieldKey === null ? \"w-72\" : \"w-[26rem]\", GAM_POPUP)}\n onInteractOutside={(e) => {\n if (e.target === inputRef.current) e.preventDefault()\n }}\n onOpenAutoFocus={(e) => {\n e.preventDefault()\n }}\n >\n {fieldKey === null ? (\n // step 1 — field list (filtered by the inline field's text)\n <div className=\"max-h-80 overflow-auto py-1\">\n {filterFields\n .filter((f) => fieldMatches(f.label))\n .map((f) => (\n <button\n key={f.key}\n className=\"flex h-8 w-full items-center gap-2 px-4 text-left text-[15px] text-[color:var(--report-builder-fg-strong)] hover:bg-[color:var(--report-builder-surface-muted)]\"\n type=\"button\"\n onClick={() => {\n openEditor(f.key)\n }}\n >\n <KindGlyph kind={f.glyph ?? \"dimension\"} />\n {f.label}\n </button>\n ))}\n </div>\n ) : (\n // step 2 — GAM editor popup: title + ✕, operator, values, Apply\n <div>\n <div className=\"flex items-center justify-between px-3 pb-1 pt-3\">\n <span className=\"text-base text-[color:var(--report-builder-fg)]\">\n {editorField ? fieldLabel(editorField.label, editorField.key) : fieldKey}\n </span>\n <button\n aria-label=\"Close\"\n className=\"rounded-full p-1 text-[color:var(--report-builder-fg-muted)] hover:bg-[color:var(--report-builder-surface-hover)]\"\n type=\"button\"\n onClick={() => {\n setOpen(false)\n reset()\n }}\n >\n <X size={18} />\n </button>\n </div>\n {editorField?.type === \"text\" ? (\n <div className=\"px-3 py-2\">\n <div className=\"mb-2 rounded border border-[color:var(--report-builder-border)] px-3 py-2 text-[13px] text-[color:var(--report-builder-fg-muted)]\">\n contains\n </div>\n <input\n autoFocus\n className=\"w-full border-b border-[color:var(--report-builder-border)] bg-transparent py-1 text-sm text-[color:var(--report-builder-fg)] outline-none placeholder:text-[color:var(--report-builder-fg-subtle)] focus:border-[color:var(--report-builder-accent)]\"\n placeholder=\"Type to search\"\n value={text}\n onChange={(e) => {\n setText(e.target.value)\n }}\n />\n </div>\n ) : editorField?.type === \"number\" ? (\n <div className=\"flex items-center gap-2 px-3 py-2\">\n <Select value={op} onValueChange={setOp}>\n <SelectTrigger className=\"w-24\" size=\"sm\">\n <SelectValue />\n </SelectTrigger>\n <SelectContent>\n {NUMBER_OPS.map((o) => (\n <SelectItem key={o.v} value={o.v}>\n {o.l}\n </SelectItem>\n ))}\n </SelectContent>\n </Select>\n <NumberInput\n placeholder=\"value\"\n value={a}\n onChange={(e) => {\n setA(e.target.value)\n }}\n />\n {op === \"between\" && (\n <NumberInput\n placeholder=\"to\"\n value={b}\n onChange={(e) => {\n setB(e.target.value)\n }}\n />\n )}\n </div>\n ) : (\n <div className=\"px-3 py-2\">\n {/* operator box (enum fields are \"is any of\") */}\n <div className=\"mb-2 rounded border border-[color:var(--report-builder-border)] px-3 py-2 text-[13px] text-[color:var(--report-builder-fg-muted)]\">\n is any of\n </div>\n {/* selected values as chips, like GAM */}\n {vals.length > 0 && (\n <div className=\"mb-1 flex flex-wrap gap-x-2 gap-y-1\">\n {vals.map((v) => (\n <GamChip\n key={v}\n onRemove={() => {\n setVals((p) => p.filter((x) => x !== v))\n }}\n >\n {v}\n </GamChip>\n ))}\n </div>\n )}\n <input\n autoFocus\n className=\"w-full border-b border-[color:var(--report-builder-border)] bg-transparent py-1 text-sm text-[color:var(--report-builder-fg)] outline-none placeholder:text-[color:var(--report-builder-fg-subtle)] focus:border-[color:var(--report-builder-accent)]\"\n placeholder=\"Type to search\"\n value={vsearch}\n onChange={(e) => {\n setVsearch(e.target.value)\n }}\n // Keyboard parity with GAM: Enter adds the first\n // suggestion, so the enum editor is operable without a\n // mouse (WCAG 2.1 AA).\n onKeyDown={(e) => {\n const first = valueSuggestions[0]\n if (e.key === \"Enter\" && first) {\n e.preventDefault()\n setVals((p) => [...p, first])\n setVsearch(\"\")\n }\n }}\n />\n <div className=\"mt-1 max-h-44 overflow-auto\">\n {valueSuggestions.map((v) => (\n <button\n key={v}\n className=\"flex h-8 w-full items-center px-2 text-left text-sm text-[color:var(--report-builder-fg-strong)] hover:bg-[color:var(--report-builder-surface-muted)]\"\n type=\"button\"\n onClick={() => {\n setVals((p) => [...p, v])\n setVsearch(\"\")\n }}\n >\n {v}\n </button>\n ))}\n </div>\n </div>\n )}\n {/* GAM's blue \"Apply\" text button */}\n <div className=\"flex justify-end px-3 pb-2 pt-1\">\n <button\n className=\"rounded px-2 py-1 text-sm font-medium text-[color:var(--report-builder-accent-hover)] hover:bg-[color:var(--report-builder-accent-bg-subtle)]\"\n type=\"button\"\n onClick={apply}\n >\n Apply\n </button>\n </div>\n </div>\n )}\n </PopoverContent>\n </Popover>\n </div>\n {filters.length > 0 && (\n <button\n aria-label=\"Clear all filters\"\n className=\"mx-2 flex shrink-0 items-center rounded-full p-2 text-[color:var(--report-builder-fg-muted)] hover:bg-[color:var(--report-builder-surface-hover)]\"\n type=\"button\"\n onClick={() => {\n onFiltersChange([])\n }}\n >\n <X size={20} />\n </button>\n )}\n </div>\n )\n}\n\n// ---------------------------------------------------------------------------\n// ReportBuilder — the bordered card with both bars\n// ---------------------------------------------------------------------------\n\n/**\n * ReportBuilder - GAM-style report builder bar\n *\n * A faithful copy of Google Ad Manager's report builder: a dimensions+metrics\n * chip strip with inline typeahead, a sentence-chip filter row with an inline\n * \"Add filter\" field and per-field editors, and the \"All dimensions and\n * metrics\" View-all dialog with draft + Apply.\n *\n * @example\n * ```tsx\n * <ReportBuilder\n * fields={[\n * { key: \"date\", label: \"Date\", kind: \"dimension\" },\n * { key: \"rev\", label: \"Revenue\", kind: \"metric\" },\n * ]}\n * dimensions={[\"date\"]}\n * metrics={[\"rev\"]}\n * onSelectionChange={(kind, keys) => { ... }}\n * filterFields={[\n * { key: \"src\", label: \"Source\", type: \"enum\", options: [\"google\", \"facebook\"] },\n * { key: \"rev\", label: \"Revenue\", type: \"number\", glyph: \"metric\" },\n * ]}\n * filters={filters}\n * onFiltersChange={setFilters}\n * />\n * ```\n */\nexport function ReportBuilder({\n fields,\n dimensions,\n metrics,\n onSelectionChange,\n filterFields,\n filters = [],\n onFiltersChange,\n className,\n ...props\n}: ReportBuilderProps) {\n return (\n <div\n className={cn(\"flex flex-col border border-[color:var(--report-builder-border)] bg-[color:var(--report-builder-surface)]\", className)}\n data-slot=\"report-builder\"\n {...props}\n >\n <FieldsBar\n dimensions={dimensions}\n fields={fields}\n metrics={metrics}\n onSelectionChange={onSelectionChange}\n />\n {filterFields && filterFields.length > 0 && onFiltersChange && (\n <FiltersBar\n filterFields={filterFields}\n filters={filters}\n onFiltersChange={onFiltersChange}\n />\n )}\n </div>\n )\n}\n"]}
|
|
@@ -1,6 +1,6 @@
|
|
|
1
1
|
import { DropdownMenu, DropdownMenuTrigger, DropdownMenuContent, DropdownMenuSeparator, DropdownMenuLabel, DropdownMenuGroup, DropdownMenuItem } from './chunk-FSMHI7DW.js';
|
|
2
|
-
import { Avatar, AvatarImage, AvatarFallback } from './chunk-
|
|
3
|
-
import { Badge } from './chunk-
|
|
2
|
+
import { Avatar, AvatarImage, AvatarFallback } from './chunk-YP2ATSXP.js';
|
|
3
|
+
import { Badge } from './chunk-TNROOKX3.js';
|
|
4
4
|
import { cn } from './chunk-HRNDJU7D.js';
|
|
5
5
|
import { ChevronsUpDown, Check } from 'lucide-react';
|
|
6
6
|
import { jsxs, jsx, Fragment } from 'react/jsx-runtime';
|
|
@@ -92,5 +92,5 @@ function AccountSwitch({
|
|
|
92
92
|
}
|
|
93
93
|
|
|
94
94
|
export { AccountSwitch };
|
|
95
|
-
//# sourceMappingURL=chunk-
|
|
96
|
-
//# sourceMappingURL=chunk-
|
|
95
|
+
//# sourceMappingURL=chunk-2Y7PQ6ZL.js.map
|
|
96
|
+
//# sourceMappingURL=chunk-2Y7PQ6ZL.js.map
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"sources":["../src/components/navigation/AccountSwitch/AccountSwitch.tsx"],"names":[],"mappings":"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","file":"chunk-
|
|
1
|
+
{"version":3,"sources":["../src/components/navigation/AccountSwitch/AccountSwitch.tsx"],"names":[],"mappings":"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","file":"chunk-2Y7PQ6ZL.js","sourcesContent":["\"use client\"\n\nimport type { AccountSwitchAccount, AccountSwitchProps } from \"./AccountSwitch.types\"\n\nimport { Check, ChevronsUpDown } from \"lucide-react\"\n\nimport { cn } from \"../../../lib/utils\"\nimport { Avatar, AvatarFallback, AvatarImage } from \"../../primitives/Avatar\"\nimport { Badge } from \"../../primitives/Badge\"\nimport {\n DropdownMenu,\n DropdownMenuContent,\n DropdownMenuGroup,\n DropdownMenuItem,\n DropdownMenuLabel,\n DropdownMenuSeparator,\n DropdownMenuTrigger,\n} from \"../DropdownMenu\"\n\nfunction AccountSwitch({\n className,\n accounts,\n triggerShape = \"pill\",\n header,\n footer,\n onSelect,\n ...props\n}: AccountSwitchProps) {\n const currentAccount = accounts.find((a) => a.isCurrent) ?? accounts[0]\n\n const handleSelect = (account: AccountSwitchAccount) => {\n if (account.id !== currentAccount?.id) {\n onSelect?.(account)\n }\n }\n\n return (\n <DropdownMenu>\n <DropdownMenuTrigger asChild>\n <button\n className={cn(\n \"inline-flex items-center gap-2 h-[var(--input-size-md-h)] border bg-card text-card-foreground transition-colors hover:bg-accent/50 focus-visible:ring-2 focus-visible:ring-ring focus-visible:outline-none\",\n triggerShape === \"pill\"\n ? \"rounded-full pl-1.5 pr-3\"\n : \"rounded-[var(--radius-md)] px-3\",\n className\n )}\n data-slot=\"account-switch-trigger\"\n type=\"button\"\n {...props}\n >\n {currentAccount && (\n <>\n <Avatar size=\"xs\">\n {currentAccount.avatarSrc && (\n <AvatarImage alt={currentAccount.name} src={currentAccount.avatarSrc} />\n )}\n <AvatarFallback>\n {currentAccount.avatarFallback ?? currentAccount.name.charAt(0)}\n </AvatarFallback>\n </Avatar>\n <span className=\"text-sm font-medium truncate max-w-[var(--account-switch-name-max-width)]\">\n {currentAccount.name}\n </span>\n </>\n )}\n <ChevronsUpDown\n aria-hidden=\"true\"\n className=\"size-3.5 text-muted-foreground shrink-0 ml-auto\"\n />\n </button>\n </DropdownMenuTrigger>\n <DropdownMenuContent\n align=\"start\"\n className=\"min-w-[var(--account-switch-content-min-width)]\"\n data-slot=\"account-switch-content\"\n >\n {header && (\n <>\n <div className=\"px-2 py-1.5\">{header}</div>\n <DropdownMenuSeparator />\n </>\n )}\n <DropdownMenuLabel className=\"text-xs font-medium text-muted-foreground uppercase tracking-wider\">\n Contas\n </DropdownMenuLabel>\n <DropdownMenuGroup>\n {accounts.map((account) => (\n <DropdownMenuItem\n key={account.id}\n className=\"flex items-center gap-2\"\n onClick={() => {\n handleSelect(account)\n }}\n >\n <Avatar size=\"xs\">\n {account.avatarSrc && (\n <AvatarImage alt={account.name} src={account.avatarSrc} />\n )}\n <AvatarFallback>\n {account.avatarFallback ?? account.name.charAt(0)}\n </AvatarFallback>\n </Avatar>\n <span className=\"flex-1 truncate\">{account.name}</span>\n {account.plan && (\n <Badge color={account.plan === \"PRO\" ? \"primary\" : \"muted\"} size=\"sm\" type=\"pill-color\">\n {account.plan}\n </Badge>\n )}\n {account.isCurrent && <Check aria-hidden=\"true\" className=\"size-3.5 text-primary\" />}\n </DropdownMenuItem>\n ))}\n </DropdownMenuGroup>\n {footer && (\n <>\n <DropdownMenuSeparator />\n {footer}\n </>\n )}\n </DropdownMenuContent>\n </DropdownMenu>\n )\n}\n\nexport { AccountSwitch }\n"]}
|
|
@@ -1,22 +1,23 @@
|
|
|
1
|
+
import { Sparkline } from './chunk-2VHARFMD.js';
|
|
1
2
|
import { Card, CardHeader, CardContent, CardTitle } from './chunk-K45MMHLA.js';
|
|
2
3
|
import { ProgressBar } from './chunk-UFRMZ3M6.js';
|
|
3
4
|
import { SkeletonLoader } from './chunk-QHKOBGLW.js';
|
|
4
|
-
import { Badge } from './chunk-
|
|
5
|
+
import { Badge } from './chunk-TNROOKX3.js';
|
|
5
6
|
import { cn } from './chunk-HRNDJU7D.js';
|
|
6
7
|
import { Minus, ArrowDown, ArrowUp } from 'lucide-react';
|
|
7
8
|
import { jsxs, jsx } from 'react/jsx-runtime';
|
|
8
9
|
|
|
9
10
|
var sizeConfig = {
|
|
10
11
|
sm: {
|
|
11
|
-
value: "text-
|
|
12
|
+
value: "text-[length:var(--kpi-card-value-size-sm)] font-[number:var(--kpi-card-value-weight)]",
|
|
12
13
|
padding: "p-4"
|
|
13
14
|
},
|
|
14
15
|
md: {
|
|
15
|
-
value: "text-
|
|
16
|
+
value: "text-[length:var(--kpi-card-value-size-md)] font-[number:var(--kpi-card-value-weight)]",
|
|
16
17
|
padding: "p-6"
|
|
17
18
|
},
|
|
18
19
|
lg: {
|
|
19
|
-
value: "text-
|
|
20
|
+
value: "text-[length:var(--kpi-card-value-size-lg)] font-[number:var(--kpi-card-value-weight)]",
|
|
20
21
|
padding: "p-6"
|
|
21
22
|
}
|
|
22
23
|
};
|
|
@@ -33,7 +34,6 @@ var trendColors = {
|
|
|
33
34
|
function KPICard({
|
|
34
35
|
title,
|
|
35
36
|
value,
|
|
36
|
-
previousValue: _previousValue,
|
|
37
37
|
delta,
|
|
38
38
|
deltaLabel,
|
|
39
39
|
trend,
|
|
@@ -56,6 +56,7 @@ function KPICard({
|
|
|
56
56
|
const TrendIcon = TrendIcons[computedTrend];
|
|
57
57
|
const trendColor = trendColors[computedTrend];
|
|
58
58
|
const sizeStyles = sizeConfig[size];
|
|
59
|
+
const sparklineColor = computedTrend === "up" ? "var(--kpi-card-sparkline-up)" : computedTrend === "down" ? "var(--kpi-card-sparkline-down)" : "var(--kpi-card-sparkline-neutral)";
|
|
59
60
|
const variantStyles = {
|
|
60
61
|
default: "",
|
|
61
62
|
ghost: "border-none shadow-none bg-transparent",
|
|
@@ -165,28 +166,16 @@ function KPICard({
|
|
|
165
166
|
)
|
|
166
167
|
] }),
|
|
167
168
|
sparkline && sparkline.length > 0 && /* @__PURE__ */ jsx(
|
|
168
|
-
|
|
169
|
+
Sparkline,
|
|
169
170
|
{
|
|
170
171
|
"aria-hidden": "true",
|
|
171
|
-
|
|
172
|
+
color: sparklineColor,
|
|
173
|
+
data: sparkline,
|
|
172
174
|
"data-slot": "kpi-card-sparkline",
|
|
173
|
-
|
|
174
|
-
|
|
175
|
-
|
|
176
|
-
|
|
177
|
-
const height = (val - min) / range * 100;
|
|
178
|
-
return /* @__PURE__ */ jsx(
|
|
179
|
-
"div",
|
|
180
|
-
{
|
|
181
|
-
className: cn(
|
|
182
|
-
"w-1 rounded-full",
|
|
183
|
-
computedTrend === "up" ? "bg-success/60" : computedTrend === "down" ? "bg-destructive/60" : "bg-muted-foreground/40"
|
|
184
|
-
),
|
|
185
|
-
style: { height: `${String(Math.max(height, 10))}%` }
|
|
186
|
-
},
|
|
187
|
-
`sparkline-bar-${String(val)}-${String(idx)}`
|
|
188
|
-
);
|
|
189
|
-
})
|
|
175
|
+
height: 32,
|
|
176
|
+
style: { opacity: "var(--kpi-card-sparkline-opacity)" },
|
|
177
|
+
variant: "bar",
|
|
178
|
+
width: 96
|
|
190
179
|
}
|
|
191
180
|
)
|
|
192
181
|
] }),
|
|
@@ -233,5 +222,5 @@ function KPICardGroup({
|
|
|
233
222
|
}
|
|
234
223
|
|
|
235
224
|
export { KPICard, KPICardGroup };
|
|
236
|
-
//# sourceMappingURL=chunk-
|
|
237
|
-
//# sourceMappingURL=chunk-
|
|
225
|
+
//# sourceMappingURL=chunk-32IJQOUV.js.map
|
|
226
|
+
//# sourceMappingURL=chunk-32IJQOUV.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"sources":["../src/components/data-display/KPICard/KPICard.tsx"],"names":[],"mappings":"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","file":"chunk-32IJQOUV.js","sourcesContent":["import type {\n KPICardGroupProps,\n KPICardProps,\n KPICardTrend,\n} from \"./KPICard.types\"\n\nimport { ArrowDown, ArrowUp, Minus } from \"lucide-react\"\n\nimport { cn } from \"../../../lib/utils\"\nimport {\n Card,\n CardContent,\n CardHeader,\n CardTitle,\n} from \"../../layout/Card\"\nimport { Badge } from \"../../primitives/Badge\"\nimport { ProgressBar } from \"../../primitives/ProgressBar\"\nimport { SkeletonLoader } from \"../../primitives/SkeletonLoader\"\nimport { Sparkline } from \"../Sparkline\"\n\n/**\n * Size configuration for typography\n */\nconst sizeConfig = {\n sm: {\n value: \"text-[length:var(--kpi-card-value-size-sm)] font-[number:var(--kpi-card-value-weight)]\",\n padding: \"p-4\",\n },\n md: {\n value: \"text-[length:var(--kpi-card-value-size-md)] font-[number:var(--kpi-card-value-weight)]\",\n padding: \"p-6\",\n },\n lg: {\n value: \"text-[length:var(--kpi-card-value-size-lg)] font-[number:var(--kpi-card-value-weight)]\",\n padding: \"p-6\",\n },\n} as const\n\n/**\n * Trend icons mapping\n */\nconst TrendIcons = {\n up: ArrowUp,\n down: ArrowDown,\n neutral: Minus,\n} as const\n\n/**\n * Trend colors mapping using design tokens\n */\nconst trendColors = {\n up: \"text-success\",\n down: \"text-destructive\",\n neutral: \"text-muted-foreground\",\n} as const\n\n/**\n * KPICard - Key Performance Indicator Card\n *\n * Dashboard component that displays important metrics prominently.\n * Combines main value, comparison/delta, mini chart, and contextual metadata\n * in a layout optimized for quick visualization.\n *\n * @example\n * ```tsx\n * <KPICard\n * title=\"Revenue\"\n * value=\"$45,231.89\"\n * delta={20.1}\n * deltaLabel=\"from last month\"\n * />\n * ```\n */\nfunction KPICard({\n title,\n value,\n delta,\n deltaLabel,\n trend,\n sparkline,\n icon,\n featuredIcon,\n dropdownIcon,\n helpText,\n progressBar,\n swap,\n showBadge = true,\n action,\n variant = \"default\",\n size = \"md\",\n loading = false,\n className,\n ...props\n}: KPICardProps) {\n // Auto-detect trend direction if not provided\n const computedTrend: KPICardTrend = trend ?? (delta !== undefined\n ? delta > 0 ? \"up\" : delta < 0 ? \"down\" : \"neutral\"\n : \"neutral\")\n\n const TrendIcon = TrendIcons[computedTrend]\n const trendColor = trendColors[computedTrend]\n const sizeStyles = sizeConfig[size]\n const sparklineColor =\n computedTrend === \"up\"\n ? \"var(--kpi-card-sparkline-up)\"\n : computedTrend === \"down\"\n ? \"var(--kpi-card-sparkline-down)\"\n : \"var(--kpi-card-sparkline-neutral)\"\n\n // Variant styles\n const variantStyles = {\n default: \"\",\n ghost: \"border-none shadow-none bg-transparent\",\n highlight: \"border-primary/50 bg-primary/5\",\n }\n\n if (loading) {\n return (\n <Card\n className={cn(variantStyles[variant], className)}\n data-slot=\"kpi-card\"\n {...props}\n >\n <CardHeader className=\"flex flex-row items-center justify-between pb-2\">\n <SkeletonLoader className=\"h-4 w-24\" />\n <SkeletonLoader className=\"size-4\" />\n </CardHeader>\n <CardContent>\n <SkeletonLoader className=\"mb-2 h-8 w-32\" />\n <SkeletonLoader className=\"h-4 w-20\" />\n </CardContent>\n </Card>\n )\n }\n\n return (\n <Card\n className={cn(variantStyles[variant], className)}\n data-slot=\"kpi-card\"\n {...props}\n >\n <CardHeader className=\"flex flex-row items-center justify-between pb-2\">\n <div className=\"flex items-center gap-1.5\">\n <CardTitle className=\"text-sm font-medium text-muted-foreground\">\n {title}\n </CardTitle>\n {helpText && (\n <span\n className=\"text-xs text-muted-foreground\"\n data-slot=\"kpi-card-help-text\"\n >\n {helpText}\n </span>\n )}\n </div>\n <div className=\"flex items-center gap-2\">\n {featuredIcon && (\n <span\n className=\"inline-flex size-10 items-center justify-center rounded-full bg-primary/10 text-primary [&_svg]:size-5\"\n data-slot=\"kpi-card-featured-icon\"\n >\n {featuredIcon}\n </span>\n )}\n {icon && !featuredIcon && (\n <span className=\"text-muted-foreground\" data-slot=\"kpi-card-icon\">\n {icon}\n </span>\n )}\n {dropdownIcon && (\n <span\n className=\"text-muted-foreground\"\n data-slot=\"kpi-card-dropdown-icon\"\n >\n {dropdownIcon}\n </span>\n )}\n {action && !icon && !featuredIcon && !dropdownIcon && (\n <span data-slot=\"kpi-card-action\">{action}</span>\n )}\n </div>\n </CardHeader>\n <CardContent>\n <div className=\"flex items-end justify-between\">\n <div>\n <div\n className={cn(sizeStyles.value, \"tabular-nums\")}\n data-slot=\"kpi-card-value\"\n >\n {value}\n </div>\n {delta !== undefined && (\n <div\n className={cn(\"mt-1 flex items-center gap-2\", trendColor)}\n data-slot=\"kpi-card-delta\"\n data-trend={computedTrend}\n >\n {showBadge ? (\n <Badge\n color={\n computedTrend === \"up\"\n ? \"success\"\n : computedTrend === \"down\"\n ? \"destructive\"\n : \"muted\"\n }\n leadingIcon={<TrendIcon aria-hidden=\"true\" />}\n size=\"sm\"\n type=\"pill-color\"\n >\n {Math.abs(delta)}%\n </Badge>\n ) : (\n <span className={cn(\"flex items-center text-xs\", trendColor)}>\n <TrendIcon aria-hidden=\"true\" className=\"mr-1 size-3\" />\n <span className=\"font-medium\">{Math.abs(delta)}%</span>\n </span>\n )}\n {deltaLabel && (\n <span className=\"text-xs text-muted-foreground\">\n {deltaLabel}\n </span>\n )}\n {swap && (\n <span className=\"ml-auto\" data-slot=\"kpi-card-swap\">\n {swap}\n </span>\n )}\n </div>\n )}\n </div>\n {sparkline && sparkline.length > 0 && (\n <Sparkline\n aria-hidden=\"true\"\n color={sparklineColor}\n data={sparkline}\n data-slot=\"kpi-card-sparkline\"\n height={32}\n style={{ opacity: \"var(--kpi-card-sparkline-opacity)\" }}\n variant=\"bar\"\n width={96}\n />\n )}\n </div>\n {progressBar !== undefined && (\n <div className=\"mt-3\" data-slot=\"kpi-card-progress\">\n {typeof progressBar === \"number\" ? (\n <ProgressBar value={progressBar} />\n ) : (\n progressBar\n )}\n </div>\n )}\n </CardContent>\n {/* Screen reader summary */}\n <span className=\"sr-only\">\n {title}: {value}\n {delta !== undefined && `, ${computedTrend === \"up\" ? \"up\" : computedTrend === \"down\" ? \"down\" : \"unchanged\"} ${String(Math.abs(delta))}%`}\n {deltaLabel && ` ${deltaLabel}`}\n </span>\n </Card>\n )\n}\n\n/**\n * KPICardGroup — Multiple KPIs composition (Figma Type=Multiple KPIs)\n *\n * Wrapper que diagramra múltiplos `KPICard` em layout horizontal ou vertical.\n *\n * @example\n * ```tsx\n * <KPICardGroup orientation=\"horizontal\" gap=\"md\">\n * <KPICard title=\"Revenue\" value=\"$45k\" delta={12} />\n * <KPICard title=\"Orders\" value={1240} delta={-3} />\n * <KPICard title=\"Users\" value={892} delta={8} />\n * </KPICardGroup>\n * ```\n */\nfunction KPICardGroup({\n children,\n orientation = \"horizontal\",\n gap = \"md\",\n className,\n ...props\n}: KPICardGroupProps) {\n const gapClasses = {\n sm: \"gap-2\",\n md: \"gap-4\",\n lg: \"gap-6\",\n } as const\n\n return (\n <div\n className={cn(\n \"flex\",\n orientation === \"horizontal\"\n ? \"flex-row [&>*]:flex-1\"\n : \"flex-col\",\n gapClasses[gap],\n className\n )}\n data-orientation={orientation}\n data-slot=\"kpi-card-group\"\n {...props}\n >\n {children}\n </div>\n )\n}\n\nexport { KPICard, KPICardGroup }\n"]}
|
|
@@ -1,6 +1,6 @@
|
|
|
1
|
-
import { Textarea } from './chunk-
|
|
1
|
+
import { Textarea } from './chunk-U6EOAIPK.js';
|
|
2
2
|
import { TextInput } from './chunk-PWCMCMDN.js';
|
|
3
|
-
import { Button } from './chunk-
|
|
3
|
+
import { Button } from './chunk-ONQCNOLU.js';
|
|
4
4
|
import { cn } from './chunk-HRNDJU7D.js';
|
|
5
5
|
import 'react';
|
|
6
6
|
import { cva } from 'class-variance-authority';
|
|
@@ -166,5 +166,5 @@ function InputGroupTextarea({
|
|
|
166
166
|
}
|
|
167
167
|
|
|
168
168
|
export { InputGroup, InputGroupAddon, InputGroupButton, InputGroupInput, InputGroupText, InputGroupTextarea, inputGroupAddonVariants, inputGroupButtonVariants, inputGroupInputVariants, inputGroupTextareaVariants, inputGroupVariants };
|
|
169
|
-
//# sourceMappingURL=chunk-
|
|
170
|
-
//# sourceMappingURL=chunk-
|
|
169
|
+
//# sourceMappingURL=chunk-33JGPMUW.js.map
|
|
170
|
+
//# sourceMappingURL=chunk-33JGPMUW.js.map
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"sources":["../src/components/forms/InputGroup/InputGroup.variants.ts","../src/components/forms/InputGroup/InputGroup.tsx"],"names":[],"mappings":"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","file":"chunk-
|
|
1
|
+
{"version":3,"sources":["../src/components/forms/InputGroup/InputGroup.variants.ts","../src/components/forms/InputGroup/InputGroup.tsx"],"names":[],"mappings":"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","file":"chunk-33JGPMUW.js","sourcesContent":["import { cva, type VariantProps } from \"class-variance-authority\"\n\n/**\n * InputGroup container variant styles using CVA\n */\nexport const inputGroupVariants = cva(\n // Base styles\n [\n \"group/input-group border-input dark:bg-input/30 relative flex w-full items-center rounded-[var(--input-group-radius)] border shadow-xs transition-[color,box-shadow] outline-none\",\n \"min-w-0 has-[>textarea]:h-auto\",\n\n // Variants based on alignment\n \"has-[>[data-align=inline-start]]:[&>input]:pl-2\",\n \"has-[>[data-align=inline-end]]:[&>input]:pr-2\",\n \"has-[>[data-align=block-start]]:h-auto has-[>[data-align=block-start]]:flex-col has-[>[data-align=block-start]]:[&>input]:pb-3\",\n \"has-[>[data-align=block-end]]:h-auto has-[>[data-align=block-end]]:flex-col has-[>[data-align=block-end]]:[&>input]:pt-3\",\n\n // Focus state\n \"has-[[data-slot=input-group-control]:focus-visible]:border-ring has-[[data-slot=input-group-control]:focus-visible]:ring-ring/50 has-[[data-slot=input-group-control]:focus-visible]:ring-[3px]\",\n\n // Error state\n \"has-[[data-slot][aria-invalid=true]]:ring-destructive/20 has-[[data-slot][aria-invalid=true]]:border-destructive dark:has-[[data-slot][aria-invalid=true]]:ring-destructive/40\",\n ],\n {\n variants: {\n size: {\n sm: \"h-8\",\n md: \"h-9\",\n lg: \"h-10\",\n },\n },\n defaultVariants: {\n size: \"md\",\n },\n }\n)\n\n/**\n * InputGroupAddon variant styles using CVA\n */\nexport const inputGroupAddonVariants = cva(\n \"text-muted-foreground flex h-auto cursor-text items-center justify-center gap-2 py-1.5 text-sm font-medium select-none [&>svg:not([class*='size-'])]:size-4 [&>kbd]:rounded-[var(--input-group-button-radius)] group-data-[disabled=true]/input-group:opacity-50\",\n {\n variants: {\n align: {\n \"inline-start\":\n \"order-first pl-3 has-[>button]:ml-[-0.45rem] has-[>kbd]:ml-[-0.35rem]\",\n \"inline-end\":\n \"order-last pr-3 has-[>button]:mr-[-0.45rem] has-[>kbd]:mr-[-0.35rem]\",\n \"block-start\":\n \"order-first w-full justify-start px-3 pt-3 [.border-b]:pb-3 group-has-[>input]/input-group:pt-2.5\",\n \"block-end\":\n \"order-last w-full justify-start px-3 pb-3 [.border-t]:pt-3 group-has-[>input]/input-group:pb-2.5\",\n },\n },\n defaultVariants: {\n align: \"inline-start\",\n },\n }\n)\n\n/**\n * InputGroupButton variant styles using CVA\n */\nexport const inputGroupButtonVariants = cva(\n \"text-sm shadow-none flex gap-2 items-center\",\n {\n variants: {\n size: {\n xs: \"h-6 gap-1 px-2 rounded-[var(--input-group-button-radius)] [&>svg:not([class*='size-'])]:size-3.5 has-[>svg]:px-2\",\n sm: \"h-8 px-2.5 gap-1.5 rounded-[var(--input-group-button-radius)] has-[>svg]:px-2.5\",\n \"icon-xs\":\n \"size-6 rounded-[var(--input-group-button-radius)] p-0 has-[>svg]:p-0\",\n \"icon-sm\": \"size-8 p-0 has-[>svg]:p-0\",\n },\n },\n defaultVariants: {\n size: \"xs\",\n },\n }\n)\n\n/**\n * InputGroupInput variant styles (for the input within the group)\n */\nexport const inputGroupInputVariants = cva(\n \"flex-1 rounded-none border-0 bg-transparent shadow-none focus-visible:ring-0 dark:bg-transparent\"\n)\n\n/**\n * InputGroupTextarea variant styles (for the textarea within the group)\n */\nexport const inputGroupTextareaVariants = cva(\n \"flex-1 resize-none rounded-none border-0 bg-transparent py-3 shadow-none focus-visible:ring-0 dark:bg-transparent\"\n)\n\n// Export variant types\nexport type InputGroupVariantProps = VariantProps<typeof inputGroupVariants>\nexport type InputGroupAddonVariantProps = VariantProps<typeof inputGroupAddonVariants>\nexport type InputGroupButtonVariantProps = VariantProps<typeof inputGroupButtonVariants>\nexport type InputGroupInputVariantProps = VariantProps<typeof inputGroupInputVariants>\nexport type InputGroupTextareaVariantProps = VariantProps<typeof inputGroupTextareaVariants>\n","\"use client\"\n\nimport type {\n InputGroupAddonProps,\n InputGroupButtonProps,\n InputGroupInputProps,\n InputGroupProps,\n InputGroupTextareaProps,\n InputGroupTextProps,\n} from \"./InputGroup.types\"\n\nimport * as React from \"react\"\n\nimport { cn } from \"../../../lib/utils\"\nimport { Button } from \"../../primitives/Button\"\nimport { Textarea } from \"../Textarea\"\nimport { TextInput, type TextInputProps } from \"../TextInput\"\nimport {\n inputGroupAddonVariants,\n inputGroupButtonVariants,\n inputGroupInputVariants,\n inputGroupTextareaVariants,\n inputGroupVariants,\n} from \"./InputGroup.variants\"\n\nfunction InputGroup({\n className,\n size,\n disabled,\n ...props\n}: InputGroupProps) {\n return (\n <div\n className={cn(inputGroupVariants({ size }), className)}\n data-disabled={disabled ?? undefined}\n data-slot=\"input-group\"\n role=\"group\"\n {...props}\n />\n )\n}\n\nfunction InputGroupAddon({\n className,\n align = \"inline-start\",\n ...props\n}: InputGroupAddonProps) {\n return (\n <div\n className={cn(inputGroupAddonVariants({ align }), className)}\n data-align={align}\n data-slot=\"input-group-addon\"\n role=\"group\"\n onClick={(e) => {\n if ((e.target as HTMLElement).closest(\"button\")) {\n return\n }\n e.currentTarget.parentElement?.querySelector(\"input\")?.focus()\n }}\n {...props}\n />\n )\n}\n\nfunction InputGroupButton({\n className,\n type = \"button\",\n variant = \"ghost\",\n size = \"xs\",\n ...props\n}: InputGroupButtonProps) {\n return (\n <Button\n className={cn(inputGroupButtonVariants({ size }), className)}\n data-size={size}\n type={type}\n variant={variant}\n {...props}\n />\n )\n}\n\nfunction InputGroupText({ className, ...props }: InputGroupTextProps) {\n return (\n <span\n className={cn(\n \"text-muted-foreground flex items-center gap-2 text-sm [&_svg]:pointer-events-none [&_svg:not([class*='size-'])]:size-4\",\n className\n )}\n {...props}\n />\n )\n}\n\nfunction InputGroupInput({ className, ...props }: InputGroupInputProps) {\n return (\n <TextInput\n className={cn(inputGroupInputVariants(), className)}\n data-slot=\"input-group-control\"\n {...props}\n />\n )\n}\n\nfunction InputGroupTextarea({\n className,\n ...props\n}: InputGroupTextareaProps) {\n return (\n <Textarea\n className={cn(inputGroupTextareaVariants(), className)}\n data-slot=\"input-group-control\"\n {...props}\n />\n )\n}\n\nexport {\n InputGroup,\n InputGroupAddon,\n InputGroupButton,\n InputGroupInput,\n InputGroupText,\n InputGroupTextarea,\n}\n\n// Re-export types\nexport type { TextInputProps }\n"]}
|
|
@@ -1,5 +1,5 @@
|
|
|
1
|
-
import { Avatar, AvatarImage, AvatarFallback } from './chunk-
|
|
2
|
-
import { Button } from './chunk-
|
|
1
|
+
import { Avatar, AvatarImage, AvatarFallback } from './chunk-YP2ATSXP.js';
|
|
2
|
+
import { Button } from './chunk-ONQCNOLU.js';
|
|
3
3
|
import { cn } from './chunk-HRNDJU7D.js';
|
|
4
4
|
import { Check, X, User, TrendingUp, ChevronRight, Forward, Clock } from 'lucide-react';
|
|
5
5
|
import { useId, useState } from 'react';
|
|
@@ -540,5 +540,5 @@ function ApprovalFlow({
|
|
|
540
540
|
}
|
|
541
541
|
|
|
542
542
|
export { ApprovalFlow, ApprovalFlowConnector, ApprovalFlowMarker, ApprovalFlowStep, approvalFlowActionsVariants, approvalFlowConnectorVariants, approvalFlowMarkerVariants, approvalFlowStepCardVariants, approvalFlowStepVariants, approvalFlowVariants };
|
|
543
|
-
//# sourceMappingURL=chunk-
|
|
544
|
-
//# sourceMappingURL=chunk-
|
|
543
|
+
//# sourceMappingURL=chunk-36XTKR3B.js.map
|
|
544
|
+
//# sourceMappingURL=chunk-36XTKR3B.js.map
|