@schandlergarcia/sf-web-components 2.3.17 → 2.5.0
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
- package/.a4drules/skills/command-center-builder/SKILL.md +3 -2
- package/.a4drules/skills/component-library/SKILL.md +50 -4
- package/.a4drules/skills/component-library/card-components.md +88 -0
- package/.a4drules/skills/component-library/when-to-use.md +1 -0
- package/CHANGELOG.md +40 -0
- package/CLAUDE.md +12 -13
- package/README.md +0 -15
- package/dist/components/library/cards/KanbanBoard.js +313 -0
- package/dist/components/library/cards/KanbanBoard.js.map +1 -0
- package/dist/components/library/index.js +60 -57
- package/dist/components/library/index.js.map +1 -1
- package/dist/components/workspace/ComponentRegistry.js +5 -2
- package/dist/components/workspace/ComponentRegistry.js.map +1 -1
- package/dist/index.js +84 -82
- package/dist/index.js.map +1 -1
- package/dist/styles/global.css +44 -57
- package/package.json +7 -2
- package/scripts/apply-brand.mjs +47 -30
- package/scripts/postinstall.mjs +1 -11
- package/src/components/library/cards/KanbanBoard.jsx +507 -0
- package/src/components/library/index.jsx +1 -0
- package/src/styles/global.css +44 -57
- package/brands/engine/PARTNER_HUB_PRD.md +0 -584
- package/brands/engine/agentApiConfig.ts +0 -36
- package/brands/engine/app/api/graphql-operations-types.ts +0 -11260
- package/brands/engine/app/api/graphqlClient.ts +0 -25
- package/brands/engine/app/api/partnerQueries.ts +0 -212
- package/brands/engine/app/appLayout.tsx +0 -5
- package/brands/engine/app/components/AgentPanel.tsx +0 -541
- package/brands/engine/app/components/AgentforceConversationClient.tsx +0 -201
- package/brands/engine/app/components/Data360Widget.tsx +0 -301
- package/brands/engine/app/components/__inherit_AgentforceConversationClient.tsx +0 -3
- package/brands/engine/app/components/alerts/status-alert.tsx +0 -49
- package/brands/engine/app/components/layouts/card-layout.tsx +0 -29
- package/brands/engine/app/components/workspace/CommandCenter.tsx +0 -16
- package/brands/engine/app/config/agentApi.ts +0 -36
- package/brands/engine/app/data/partner-hub-sample-data.js +0 -297
- package/brands/engine/app/features/object-search/__examples__/api/accountSearchService.ts +0 -46
- package/brands/engine/app/features/object-search/__examples__/api/query/distinctAccountIndustries.graphql +0 -19
- package/brands/engine/app/features/object-search/__examples__/api/query/distinctAccountTypes.graphql +0 -19
- package/brands/engine/app/features/object-search/__examples__/api/query/getAccountDetail.graphql +0 -121
- package/brands/engine/app/features/object-search/__examples__/api/query/searchAccounts.graphql +0 -51
- package/brands/engine/app/features/object-search/__examples__/pages/AccountObjectDetailPage.tsx +0 -357
- package/brands/engine/app/features/object-search/__examples__/pages/AccountSearch.tsx +0 -312
- package/brands/engine/app/features/object-search/__examples__/pages/Home.tsx +0 -34
- package/brands/engine/app/features/object-search/api/objectSearchService.ts +0 -84
- package/brands/engine/app/features/object-search/components/ActiveFilters.tsx +0 -89
- package/brands/engine/app/features/object-search/components/FilterContext.tsx +0 -83
- package/brands/engine/app/features/object-search/components/ObjectBreadcrumb.tsx +0 -66
- package/brands/engine/app/features/object-search/components/PaginationControls.tsx +0 -109
- package/brands/engine/app/features/object-search/components/SearchBar.tsx +0 -41
- package/brands/engine/app/features/object-search/components/SortControl.tsx +0 -143
- package/brands/engine/app/features/object-search/components/filters/BooleanFilter.tsx +0 -78
- package/brands/engine/app/features/object-search/components/filters/DateFilter.tsx +0 -128
- package/brands/engine/app/features/object-search/components/filters/DateRangeFilter.tsx +0 -70
- package/brands/engine/app/features/object-search/components/filters/FilterFieldWrapper.tsx +0 -33
- package/brands/engine/app/features/object-search/components/filters/MultiSelectFilter.tsx +0 -97
- package/brands/engine/app/features/object-search/components/filters/NumericRangeFilter.tsx +0 -163
- package/brands/engine/app/features/object-search/components/filters/SearchFilter.tsx +0 -50
- package/brands/engine/app/features/object-search/components/filters/SelectFilter.tsx +0 -97
- package/brands/engine/app/features/object-search/components/filters/TextFilter.tsx +0 -91
- package/brands/engine/app/features/object-search/hooks/useAsyncData.ts +0 -54
- package/brands/engine/app/features/object-search/hooks/useCachedAsyncData.ts +0 -184
- package/brands/engine/app/features/object-search/hooks/useDebouncedCallback.ts +0 -34
- package/brands/engine/app/features/object-search/hooks/useObjectSearchParams.ts +0 -252
- package/brands/engine/app/features/object-search/utils/debounce.ts +0 -25
- package/brands/engine/app/features/object-search/utils/fieldUtils.ts +0 -29
- package/brands/engine/app/features/object-search/utils/filterUtils.ts +0 -404
- package/brands/engine/app/features/object-search/utils/sortUtils.ts +0 -38
- package/brands/engine/app/hooks/useEngineLiveData.ts +0 -49
- package/brands/engine/app/hooks/useEvaAgent.ts +0 -288
- package/brands/engine/app/hooks/usePartnerDashboardData.ts +0 -141
- package/brands/engine/app/navigationMenu.tsx +0 -80
- package/brands/engine/app/pages/AccountObjectDetailPage.tsx +0 -361
- package/brands/engine/app/pages/AccountSearch.tsx +0 -305
- package/brands/engine/app/pages/BlankDashboard.tsx +0 -15
- package/brands/engine/app/pages/DataTest.tsx +0 -78
- package/brands/engine/app/pages/Home.tsx +0 -5
- package/brands/engine/app/pages/NotFound.tsx +0 -19
- package/brands/engine/app/pages/PartnerHubDashboard.tsx +0 -2760
- package/brands/engine/app/pages/Search.tsx +0 -13
- package/brands/engine/app/router-utils.tsx +0 -35
- package/brands/engine/app/routes.tsx +0 -39
- package/brands/engine/app/styles/global.css +0 -269
- package/brands/engine/brand.css +0 -40
- package/brands/engine/engine-command-center-prd.md +0 -575
- package/brands/engine/engine-live-data.js +0 -135
- package/brands/engine/engine-sample-data.js +0 -378
- package/brands/engine/engine_logo.png +0 -0
- package/brands/engine/global.css +0 -269
- package/brands/engine/partner-hub-sample-data.js +0 -281
- package/brands/engine/schema.graphql +0 -292
- package/brands/engine/useEngineLiveData.ts +0 -49
- package/brands/engine/useEvaAgent.ts +0 -288
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"KanbanBoard.js","sources":["../../../../src/components/library/cards/KanbanBoard.jsx"],"sourcesContent":["import React, { useMemo, useState, useCallback } from \"react\";\nimport {\n DndContext,\n DragOverlay,\n PointerSensor,\n KeyboardSensor,\n useSensor,\n useSensors,\n closestCenter,\n useDroppable,\n} from \"@dnd-kit/core\";\nimport {\n SortableContext,\n useSortable,\n verticalListSortingStrategy,\n sortableKeyboardCoordinates,\n arrayMove,\n} from \"@dnd-kit/sortable\";\nimport { CSS } from \"@dnd-kit/utilities\";\nimport BaseCard from \"./BaseCard\";\nimport UIText from \"../ui/Text\";\nimport UIChip from \"../ui/Chip\";\n\n/**\n * KanbanBoard\n *\n * A swim-lane / board view with structured cards and (optional) drag-and-drop\n * powered by @dnd-kit. Designed to live inside a CommandCenter dashboard and\n * to behave consistently with ListCard / TableCard.\n *\n * Data shapes:\n * columns: [{ id, title, accent?, limit?, footer?, emptyMessage? }]\n * cards: [{ id, columnId, title, subtitle?, description?, badges?,\n * status?, avatar?, meta?, actions?, accent? }]\n *\n * Callbacks:\n * onCardClick(card)\n * onCardMove({ cardId, fromColumnId, toColumnId, fromIndex, toIndex })\n */\n\nconst ACCENT_RING = {\n default: \"ring-slate-200 dark:ring-slate-800\",\n primary: \"ring-brand-500/40\",\n success: \"ring-emerald-500/40\",\n warning: \"ring-amber-500/40\",\n danger: \"ring-rose-500/40\",\n info: \"ring-sky-500/40\",\n};\n\nconst ACCENT_DOT = {\n default: \"bg-slate-400\",\n primary: \"bg-brand-500\",\n success: \"bg-emerald-500\",\n warning: \"bg-amber-500\",\n danger: \"bg-rose-500\",\n info: \"bg-sky-500\",\n};\n\nconst ACCENT_BORDER_LEFT = {\n default: \"border-l-slate-300 dark:border-l-slate-700\",\n primary: \"border-l-brand-500\",\n success: \"border-l-emerald-500\",\n warning: \"border-l-amber-500\",\n danger: \"border-l-rose-500\",\n info: \"border-l-sky-500\",\n};\n\nfunction CardBadges({ badges }) {\n if (!badges || badges.length === 0) return null;\n return (\n <div className=\"mt-2 flex flex-wrap gap-1.5\">\n {badges.map((b, i) => {\n if (React.isValidElement(b)) return <span key={i}>{b}</span>;\n if (typeof b === \"string\") {\n return (\n <UIChip key={i} size=\"sm\" variant=\"default\">\n {b}\n </UIChip>\n );\n }\n return (\n <UIChip\n key={b.id ?? i}\n size={b.size ?? \"sm\"}\n variant={b.variant ?? \"default\"}\n color={b.color}\n >\n {b.label ?? b.text}\n </UIChip>\n );\n })}\n </div>\n );\n}\n\nfunction CardAvatar({ avatar, title }) {\n if (!avatar) return null;\n if (typeof avatar === \"string\") {\n return (\n <img\n src={avatar}\n alt=\"\"\n className=\"h-7 w-7 shrink-0 rounded-full border border-slate-200 object-cover dark:border-slate-800\"\n />\n );\n }\n if (React.isValidElement(avatar)) {\n return (\n <div className=\"grid h-7 w-7 shrink-0 place-items-center rounded-full border border-slate-200 bg-slate-50 dark:border-slate-800 dark:bg-slate-800\">\n {avatar}\n </div>\n );\n }\n return (\n <div className=\"grid h-7 w-7 shrink-0 place-items-center rounded-full border border-slate-200 bg-slate-100 text-[10px] font-semibold text-slate-700 dark:border-slate-800 dark:bg-slate-800 dark:text-slate-200\">\n {String(title ?? \"??\")\n .slice(0, 2)\n .toUpperCase()}\n </div>\n );\n}\n\nfunction KanbanCardBody({ card, accent, dragging, onClick, dense }) {\n const accentBorder =\n ACCENT_BORDER_LEFT[card?.accent ?? accent ?? \"default\"] ?? ACCENT_BORDER_LEFT.default;\n\n const Comp = onClick ? \"button\" : \"div\";\n\n return (\n <Comp\n type={onClick ? \"button\" : undefined}\n onClick={onClick ? () => onClick(card) : undefined}\n className={[\n \"group block w-full rounded-xl border bg-white text-left shadow-sm transition\",\n \"border-slate-200 dark:border-slate-800 dark:bg-slate-900\",\n \"border-l-4\",\n accentBorder,\n dense ? \"p-2.5\" : \"p-3\",\n dragging ? \"opacity-60 ring-2 ring-brand-500\" : \"hover:-translate-y-[1px] hover:shadow-md\",\n ]\n .filter(Boolean)\n .join(\" \")}\n >\n <div className=\"flex items-start gap-2\">\n <CardAvatar avatar={card.avatar} title={card.title} />\n <div className=\"min-w-0 flex-1\">\n <UIText as=\"div\" size=\"sm\" weight=\"medium\" className=\"truncate\">\n {card.title}\n </UIText>\n {card.subtitle ? (\n <UIText as=\"div\" size=\"xs\" muted className=\"mt-0.5 truncate\">\n {card.subtitle}\n </UIText>\n ) : null}\n </div>\n {card.status ? (\n <span\n aria-label={String(card.status)}\n className={[\n \"mt-1.5 h-2 w-2 shrink-0 rounded-full\",\n ACCENT_DOT[card.status] ?? ACCENT_DOT.default,\n ].join(\" \")}\n />\n ) : null}\n </div>\n\n {card.description ? (\n <UIText as=\"div\" size=\"xs\" muted className=\"mt-2 line-clamp-3 text-left\">\n {card.description}\n </UIText>\n ) : null}\n\n <CardBadges badges={card.badges} />\n\n {card.meta && card.meta.length > 0 ? (\n <div className=\"mt-2 flex flex-wrap items-center gap-x-3 gap-y-1 text-xs text-slate-500 dark:text-slate-400\">\n {card.meta.map((m, i) => {\n if (React.isValidElement(m)) return <span key={i}>{m}</span>;\n if (typeof m === \"string\") return <span key={i}>{m}</span>;\n return (\n <span key={m.id ?? i} className=\"inline-flex items-center gap-1\">\n {m.icon ? <span className=\"opacity-70\">{m.icon}</span> : null}\n <span>{m.label ?? m.text}</span>\n </span>\n );\n })}\n </div>\n ) : null}\n\n {card.actions ? (\n <div\n className=\"mt-2 flex justify-end gap-1.5\"\n onClick={(e) => e.stopPropagation()}\n >\n {card.actions}\n </div>\n ) : null}\n </Comp>\n );\n}\n\nfunction SortableKanbanCard({ card, accent, onClick, isDraggable, dense }) {\n const sortable = useSortable({\n id: card.id,\n data: { columnId: card.columnId, type: \"card\" },\n disabled: !isDraggable,\n });\n\n const style = {\n transform: CSS.Translate.toString(sortable.transform),\n transition: sortable.transition,\n };\n\n return (\n <div\n ref={sortable.setNodeRef}\n style={style}\n {...(isDraggable ? sortable.attributes : {})}\n {...(isDraggable ? sortable.listeners : {})}\n className={isDraggable ? \"touch-none\" : undefined}\n >\n <KanbanCardBody\n card={card}\n accent={accent}\n dragging={sortable.isDragging}\n onClick={onClick}\n dense={dense}\n />\n </div>\n );\n}\n\nfunction KanbanColumn({\n column,\n cards,\n accent,\n onCardClick,\n isDraggable,\n dense,\n showCounts,\n showLimits,\n emptyMessage,\n}) {\n const droppable = useDroppable({\n id: `column:${column.id}`,\n data: { columnId: column.id, type: \"column\" },\n });\n\n const count = cards.length;\n const overLimit = column.limit != null && count > column.limit;\n\n return (\n <div className=\"flex w-72 shrink-0 flex-col rounded-2xl border border-slate-200 bg-slate-50 dark:border-slate-800 dark:bg-slate-900/60\">\n <div className=\"flex items-center justify-between gap-2 border-b border-slate-200 px-3 py-2 dark:border-slate-800\">\n <div className=\"flex min-w-0 items-center gap-2\">\n <span\n aria-hidden\n className={[\n \"h-2 w-2 shrink-0 rounded-full\",\n ACCENT_DOT[column.accent ?? accent ?? \"default\"] ?? ACCENT_DOT.default,\n ].join(\" \")}\n />\n <UIText as=\"div\" size=\"sm\" weight=\"medium\" className=\"truncate\">\n {column.title}\n </UIText>\n {showCounts ? (\n <UIChip\n size=\"sm\"\n variant=\"default\"\n className={overLimit ? \"ring-1 ring-rose-500\" : undefined}\n >\n {showLimits && column.limit != null ? `${count} / ${column.limit}` : count}\n </UIChip>\n ) : null}\n </div>\n {column.actions ? <div className=\"shrink-0\">{column.actions}</div> : null}\n </div>\n\n <div\n ref={droppable.setNodeRef}\n className={[\n \"flex flex-1 flex-col gap-2 overflow-y-auto p-2\",\n droppable.isOver ? \"bg-brand-50/50 dark:bg-brand-950/30\" : \"\",\n ]\n .filter(Boolean)\n .join(\" \")}\n style={{ minHeight: 80 }}\n >\n <SortableContext\n items={cards.map((c) => c.id)}\n strategy={verticalListSortingStrategy}\n >\n {cards.length === 0 ? (\n <div className=\"grid flex-1 place-items-center px-2 py-6\">\n <UIText as=\"div\" size=\"xs\" muted className=\"text-center\">\n {column.emptyMessage ?? emptyMessage ?? \"No items\"}\n </UIText>\n </div>\n ) : (\n cards.map((card) => (\n <SortableKanbanCard\n key={card.id}\n card={card}\n accent={accent}\n onClick={onCardClick}\n isDraggable={isDraggable}\n dense={dense}\n />\n ))\n )}\n </SortableContext>\n </div>\n\n {column.footer ? (\n <div className=\"border-t border-slate-200 px-3 py-2 text-xs text-slate-500 dark:border-slate-800 dark:text-slate-400\">\n {column.footer}\n </div>\n ) : null}\n </div>\n );\n}\n\nexport default function KanbanBoard({\n columns = [],\n cards = [],\n title,\n subtitle,\n accent = \"default\",\n isDraggable = true,\n dense = false,\n showColumnCounts = true,\n showWipLimits = true,\n emptyMessage = \"No items\",\n loading = false,\n error,\n actions,\n onCardClick,\n onCardMove,\n className = \"\",\n ...cardProps\n}) {\n const [activeId, setActiveId] = useState(null);\n const [internalCards, setInternalCards] = useState(null);\n\n const liveCards = internalCards ?? cards;\n\n const sensors = useSensors(\n useSensor(PointerSensor, { activationConstraint: { distance: 4 } }),\n useSensor(KeyboardSensor, { coordinateGetter: sortableKeyboardCoordinates })\n );\n\n const cardsByColumn = useMemo(() => {\n const map = {};\n for (const col of columns) map[col.id] = [];\n for (const c of liveCards) {\n const colId = c.columnId;\n if (!map[colId]) map[colId] = [];\n map[colId].push(c);\n }\n return map;\n }, [columns, liveCards]);\n\n const findColumnIdForCard = useCallback(\n (cardId) => {\n const card = liveCards.find((c) => c.id === cardId);\n return card?.columnId ?? null;\n },\n [liveCards]\n );\n\n const resolveColumnId = useCallback(\n (id) => {\n if (!id) return null;\n if (typeof id === \"string\" && id.startsWith(\"column:\")) return id.slice(\"column:\".length);\n const card = liveCards.find((c) => c.id === id);\n return card?.columnId ?? null;\n },\n [liveCards]\n );\n\n const handleDragStart = (event) => setActiveId(event.active.id);\n\n const handleDragEnd = (event) => {\n setActiveId(null);\n const { active, over } = event;\n if (!over) return;\n\n const fromColumnId = findColumnIdForCard(active.id);\n const toColumnId = resolveColumnId(over.id);\n if (!fromColumnId || !toColumnId) return;\n\n const fromList = (cardsByColumn[fromColumnId] ?? []).slice();\n const toList =\n fromColumnId === toColumnId ? fromList : (cardsByColumn[toColumnId] ?? []).slice();\n\n const fromIndex = fromList.findIndex((c) => c.id === active.id);\n let toIndex;\n\n if (over.data?.current?.type === \"column\" || over.id === `column:${toColumnId}`) {\n toIndex = toList.length;\n } else {\n toIndex = toList.findIndex((c) => c.id === over.id);\n if (toIndex === -1) toIndex = toList.length;\n }\n\n if (fromColumnId === toColumnId && fromIndex === toIndex) return;\n\n let nextCards;\n if (fromColumnId === toColumnId) {\n const reordered = arrayMove(fromList, fromIndex, toIndex);\n const others = liveCards.filter((c) => c.columnId !== fromColumnId);\n nextCards = [...others, ...reordered];\n } else {\n const moved = { ...fromList[fromIndex], columnId: toColumnId };\n const newFrom = fromList.filter((c) => c.id !== active.id);\n const newTo = toList.slice();\n newTo.splice(toIndex, 0, moved);\n const others = liveCards.filter(\n (c) => c.columnId !== fromColumnId && c.columnId !== toColumnId\n );\n nextCards = [...others, ...newFrom, ...newTo];\n }\n\n if (onCardMove) {\n onCardMove({\n cardId: active.id,\n fromColumnId,\n toColumnId,\n fromIndex,\n toIndex,\n });\n } else {\n setInternalCards(nextCards);\n }\n };\n\n const activeCard = activeId ? liveCards.find((c) => c.id === activeId) : null;\n\n const header =\n title || subtitle || actions ? (\n <div className=\"mb-3 flex items-start justify-between gap-3\">\n <div className=\"min-w-0\">\n {title ? (\n <UIText as=\"div\" size=\"sm\" weight=\"medium\">\n {title}\n </UIText>\n ) : null}\n {subtitle ? (\n <UIText as=\"div\" size=\"xs\" muted className=\"mt-1\">\n {subtitle}\n </UIText>\n ) : null}\n </div>\n {actions ? <div className=\"shrink-0\">{actions}</div> : null}\n </div>\n ) : null;\n\n const board = (\n <div className=\"flex gap-3 overflow-x-auto pb-1\">\n {columns.map((col) => (\n <KanbanColumn\n key={col.id}\n column={col}\n cards={cardsByColumn[col.id] ?? []}\n accent={accent}\n onCardClick={onCardClick}\n isDraggable={isDraggable}\n dense={dense}\n showCounts={showColumnCounts}\n showLimits={showWipLimits}\n emptyMessage={emptyMessage}\n />\n ))}\n </div>\n );\n\n return (\n <BaseCard\n padding=\"default\"\n isLoading={loading}\n className={className}\n {...cardProps}\n >\n {header}\n {error ? (\n <div className=\"rounded-md border border-rose-200 bg-rose-50 px-3 py-2 text-sm text-rose-700 dark:border-rose-900/60 dark:bg-rose-950/40 dark:text-rose-300\">\n {String(error)}\n </div>\n ) : (\n <DndContext\n sensors={sensors}\n collisionDetection={closestCenter}\n onDragStart={handleDragStart}\n onDragEnd={handleDragEnd}\n onDragCancel={() => setActiveId(null)}\n >\n {board}\n <DragOverlay>\n {activeCard ? (\n <KanbanCardBody card={activeCard} accent={accent} dragging dense={dense} />\n ) : null}\n </DragOverlay>\n </DndContext>\n )}\n </BaseCard>\n );\n}\n"],"names":["ACCENT_DOT","ACCENT_BORDER_LEFT","CardBadges","badges","jsx","b","i","React","UIChip","CardAvatar","avatar","title","KanbanCardBody","card","accent","dragging","onClick","dense","accentBorder","jsxs","UIText","m","e","SortableKanbanCard","isDraggable","sortable","useSortable","style","CSS","KanbanColumn","column","cards","onCardClick","showCounts","showLimits","emptyMessage","droppable","useDroppable","count","overLimit","SortableContext","c","verticalListSortingStrategy","KanbanBoard","columns","subtitle","showColumnCounts","showWipLimits","loading","error","actions","onCardMove","className","cardProps","activeId","setActiveId","useState","internalCards","setInternalCards","liveCards","sensors","useSensors","useSensor","PointerSensor","KeyboardSensor","sortableKeyboardCoordinates","cardsByColumn","useMemo","map","col","colId","findColumnIdForCard","useCallback","cardId","resolveColumnId","id","handleDragStart","event","handleDragEnd","active","over","fromColumnId","toColumnId","fromList","toList","fromIndex","toIndex","nextCards","reordered","arrayMove","moved","newFrom","newTo","activeCard","header","board","BaseCard","DndContext","closestCenter","DragOverlay"],"mappings":";;;;;;;;AAiDA,MAAMA,IAAa;AAAA,EACjB,SAAS;AAAA,EACT,SAAS;AAAA,EACT,SAAS;AAAA,EACT,SAAS;AAAA,EACT,QAAQ;AAAA,EACR,MAAM;AACR,GAEMC,IAAqB;AAAA,EACzB,SAAS;AAAA,EACT,SAAS;AAAA,EACT,SAAS;AAAA,EACT,SAAS;AAAA,EACT,QAAQ;AAAA,EACR,MAAM;AACR;AAEA,SAASC,GAAW,EAAE,QAAAC,KAAU;AAC9B,SAAI,CAACA,KAAUA,EAAO,WAAW,IAAU,OAEzC,gBAAAC,EAAC,SAAI,WAAU,+BACZ,YAAO,IAAI,CAACC,GAAGC,MACVC,EAAM,eAAeF,CAAC,IAAU,gBAAAD,EAAC,QAAA,EAAc,eAAJE,CAAM,IACjD,OAAOD,KAAM,6BAEZG,GAAA,EAAe,MAAK,MAAK,SAAQ,WAC/B,eADUF,CAEb,IAIF,gBAAAF;AAAA,IAACI;AAAA,IAAA;AAAA,MAEC,MAAMH,EAAE,QAAQ;AAAA,MAChB,SAASA,EAAE,WAAW;AAAA,MACtB,OAAOA,EAAE;AAAA,MAER,UAAAA,EAAE,SAASA,EAAE;AAAA,IAAA;AAAA,IALTA,EAAE,MAAMC;AAAA,EAAA,CAQlB,EAAA,CACH;AAEJ;AAEA,SAASG,GAAW,EAAE,QAAAC,GAAQ,OAAAC,KAAS;AACrC,SAAKD,IACD,OAAOA,KAAW,WAElB,gBAAAN;AAAA,IAAC;AAAA,IAAA;AAAA,MACC,KAAKM;AAAA,MACL,KAAI;AAAA,MACJ,WAAU;AAAA,IAAA;AAAA,EAAA,IAIZH,EAAM,eAAeG,CAAM,IAE3B,gBAAAN,EAAC,OAAA,EAAI,WAAU,qIACZ,UAAAM,GACH,IAIF,gBAAAN,EAAC,OAAA,EAAI,WAAU,mMACZ,UAAA,OAAOO,KAAS,IAAI,EAClB,MAAM,GAAG,CAAC,EACV,eACL,IAtBkB;AAwBtB;AAEA,SAASC,EAAe,EAAE,MAAAC,GAAM,QAAAC,GAAQ,UAAAC,GAAU,SAAAC,GAAS,OAAAC,KAAS;AAClE,QAAMC,IACJjB,EAAmBY,GAAM,UAAUC,KAAU,SAAS,KAAKb,EAAmB;AAIhF,SACE,gBAAAkB;AAAA,IAHWH,IAAU,WAAW;AAAA,IAG/B;AAAA,MACC,MAAMA,IAAU,WAAW;AAAA,MAC3B,SAASA,IAAU,MAAMA,EAAQH,CAAI,IAAI;AAAA,MACzC,WAAW;AAAA,QACT;AAAA,QACA;AAAA,QACA;AAAA,QACAK;AAAA,QACAD,IAAQ,UAAU;AAAA,QAClBF,IAAW,qCAAqC;AAAA,MAAA,EAE/C,OAAO,OAAO,EACd,KAAK,GAAG;AAAA,MAEX,UAAA;AAAA,QAAA,gBAAAI,EAAC,OAAA,EAAI,WAAU,0BACb,UAAA;AAAA,UAAA,gBAAAf,EAACK,MAAW,QAAQI,EAAK,QAAQ,OAAOA,EAAK,OAAO;AAAA,UACpD,gBAAAM,EAAC,OAAA,EAAI,WAAU,kBACb,UAAA;AAAA,YAAA,gBAAAf,EAACgB,GAAA,EAAO,IAAG,OAAM,MAAK,MAAK,QAAO,UAAS,WAAU,YAClD,UAAAP,EAAK,MAAA,CACR;AAAA,YACCA,EAAK,WACJ,gBAAAT,EAACgB,GAAA,EAAO,IAAG,OAAM,MAAK,MAAK,OAAK,IAAC,WAAU,mBACxC,UAAAP,EAAK,UACR,IACE;AAAA,UAAA,GACN;AAAA,UACCA,EAAK,SACJ,gBAAAT;AAAA,YAAC;AAAA,YAAA;AAAA,cACC,cAAY,OAAOS,EAAK,MAAM;AAAA,cAC9B,WAAW;AAAA,gBACT;AAAA,gBACAb,EAAWa,EAAK,MAAM,KAAKb,EAAW;AAAA,cAAA,EACtC,KAAK,GAAG;AAAA,YAAA;AAAA,UAAA,IAEV;AAAA,QAAA,GACN;AAAA,QAECa,EAAK,cACJ,gBAAAT,EAACgB,GAAA,EAAO,IAAG,OAAM,MAAK,MAAK,OAAK,IAAC,WAAU,+BACxC,UAAAP,EAAK,aACR,IACE;AAAA,QAEJ,gBAAAT,EAACF,IAAA,EAAW,QAAQW,EAAK,OAAA,CAAQ;AAAA,QAEhCA,EAAK,QAAQA,EAAK,KAAK,SAAS,IAC/B,gBAAAT,EAAC,OAAA,EAAI,WAAU,+FACZ,UAAAS,EAAK,KAAK,IAAI,CAACQ,GAAGf,MACbC,EAAM,eAAec,CAAC,IAAU,gBAAAjB,EAAC,QAAA,EAAc,eAAJE,CAAM,IACjD,OAAOe,KAAM,WAAiB,gBAAAjB,EAAC,QAAA,EAAc,eAAJE,CAAM,IAEjD,gBAAAa,EAAC,QAAA,EAAqB,WAAU,kCAC7B,UAAA;AAAA,UAAAE,EAAE,OAAO,gBAAAjB,EAAC,QAAA,EAAK,WAAU,cAAc,UAAAiB,EAAE,MAAK,IAAU;AAAA,UACzD,gBAAAjB,EAAC,QAAA,EAAM,UAAAiB,EAAE,SAASA,EAAE,KAAA,CAAK;AAAA,QAAA,KAFhBA,EAAE,MAAMf,CAGnB,CAEH,GACH,IACE;AAAA,QAEHO,EAAK,UACJ,gBAAAT;AAAA,UAAC;AAAA,UAAA;AAAA,YACC,WAAU;AAAA,YACV,SAAS,CAACkB,MAAMA,EAAE,gBAAA;AAAA,YAEjB,UAAAT,EAAK;AAAA,UAAA;AAAA,QAAA,IAEN;AAAA,MAAA;AAAA,IAAA;AAAA,EAAA;AAGV;AAEA,SAASU,GAAmB,EAAE,MAAAV,GAAM,QAAAC,GAAQ,SAAAE,GAAS,aAAAQ,GAAa,OAAAP,KAAS;AACzE,QAAMQ,IAAWC,GAAY;AAAA,IAC3B,IAAIb,EAAK;AAAA,IACT,MAAM,EAAE,UAAUA,EAAK,UAAU,MAAM,OAAA;AAAA,IACvC,UAAU,CAACW;AAAA,EAAA,CACZ,GAEKG,IAAQ;AAAA,IACZ,WAAWC,GAAI,UAAU,SAASH,EAAS,SAAS;AAAA,IACpD,YAAYA,EAAS;AAAA,EAAA;AAGvB,SACE,gBAAArB;AAAA,IAAC;AAAA,IAAA;AAAA,MACC,KAAKqB,EAAS;AAAA,MACd,OAAAE;AAAA,MACC,GAAIH,IAAcC,EAAS,aAAa,CAAA;AAAA,MACxC,GAAID,IAAcC,EAAS,YAAY,CAAA;AAAA,MACxC,WAAWD,IAAc,eAAe;AAAA,MAExC,UAAA,gBAAApB;AAAA,QAACQ;AAAA,QAAA;AAAA,UACC,MAAAC;AAAA,UACA,QAAAC;AAAA,UACA,UAAUW,EAAS;AAAA,UACnB,SAAAT;AAAA,UACA,OAAAC;AAAA,QAAA;AAAA,MAAA;AAAA,IACF;AAAA,EAAA;AAGN;AAEA,SAASY,GAAa;AAAA,EACpB,QAAAC;AAAA,EACA,OAAAC;AAAA,EACA,QAAAjB;AAAA,EACA,aAAAkB;AAAA,EACA,aAAAR;AAAA,EACA,OAAAP;AAAA,EACA,YAAAgB;AAAA,EACA,YAAAC;AAAA,EACA,cAAAC;AACF,GAAG;AACD,QAAMC,IAAYC,GAAa;AAAA,IAC7B,IAAI,UAAUP,EAAO,EAAE;AAAA,IACvB,MAAM,EAAE,UAAUA,EAAO,IAAI,MAAM,SAAA;AAAA,EAAS,CAC7C,GAEKQ,IAAQP,EAAM,QACdQ,IAAYT,EAAO,SAAS,QAAQQ,IAAQR,EAAO;AAEzD,SACE,gBAAAX,EAAC,OAAA,EAAI,WAAU,0HACb,UAAA;AAAA,IAAA,gBAAAA,EAAC,OAAA,EAAI,WAAU,qGACb,UAAA;AAAA,MAAA,gBAAAA,EAAC,OAAA,EAAI,WAAU,mCACb,UAAA;AAAA,QAAA,gBAAAf;AAAA,UAAC;AAAA,UAAA;AAAA,YACC,eAAW;AAAA,YACX,WAAW;AAAA,cACT;AAAA,cACAJ,EAAW8B,EAAO,UAAUhB,KAAU,SAAS,KAAKd,EAAW;AAAA,YAAA,EAC/D,KAAK,GAAG;AAAA,UAAA;AAAA,QAAA;AAAA,QAEZ,gBAAAI,EAACgB,GAAA,EAAO,IAAG,OAAM,MAAK,MAAK,QAAO,UAAS,WAAU,YAClD,UAAAU,EAAO,MAAA,CACV;AAAA,QACCG,IACC,gBAAA7B;AAAA,UAACI;AAAA,UAAA;AAAA,YACC,MAAK;AAAA,YACL,SAAQ;AAAA,YACR,WAAW+B,IAAY,yBAAyB;AAAA,YAE/C,UAAAL,KAAcJ,EAAO,SAAS,OAAO,GAAGQ,CAAK,MAAMR,EAAO,KAAK,KAAKQ;AAAA,UAAA;AAAA,QAAA,IAErE;AAAA,MAAA,GACN;AAAA,MACCR,EAAO,UAAU,gBAAA1B,EAAC,OAAA,EAAI,WAAU,YAAY,UAAA0B,EAAO,SAAQ,IAAS;AAAA,IAAA,GACvE;AAAA,IAEA,gBAAA1B;AAAA,MAAC;AAAA,MAAA;AAAA,QACC,KAAKgC,EAAU;AAAA,QACf,WAAW;AAAA,UACT;AAAA,UACAA,EAAU,SAAS,wCAAwC;AAAA,QAAA,EAE1D,OAAO,OAAO,EACd,KAAK,GAAG;AAAA,QACX,OAAO,EAAE,WAAW,GAAA;AAAA,QAEpB,UAAA,gBAAAhC;AAAA,UAACoC;AAAA,UAAA;AAAA,YACC,OAAOT,EAAM,IAAI,CAACU,MAAMA,EAAE,EAAE;AAAA,YAC5B,UAAUC;AAAA,YAET,UAAAX,EAAM,WAAW,IAChB,gBAAA3B,EAAC,OAAA,EAAI,WAAU,4CACb,UAAA,gBAAAA,EAACgB,GAAA,EAAO,IAAG,OAAM,MAAK,MAAK,OAAK,IAAC,WAAU,eACxC,UAAAU,EAAO,gBAAgBK,KAAgB,WAAA,CAC1C,EAAA,CACF,IAEAJ,EAAM,IAAI,CAAClB,MACT,gBAAAT;AAAA,cAACmB;AAAA,cAAA;AAAA,gBAEC,MAAAV;AAAA,gBACA,QAAAC;AAAA,gBACA,SAASkB;AAAA,gBACT,aAAAR;AAAA,gBACA,OAAAP;AAAA,cAAA;AAAA,cALKJ,EAAK;AAAA,YAAA,CAOb;AAAA,UAAA;AAAA,QAAA;AAAA,MAEL;AAAA,IAAA;AAAA,IAGDiB,EAAO,SACN,gBAAA1B,EAAC,OAAA,EAAI,WAAU,wGACZ,UAAA0B,EAAO,QACV,IACE;AAAA,EAAA,GACN;AAEJ;AAEA,SAAwBa,GAAY;AAAA,EAClC,SAAAC,IAAU,CAAA;AAAA,EACV,OAAAb,IAAQ,CAAA;AAAA,EACR,OAAApB;AAAA,EACA,UAAAkC;AAAA,EACA,QAAA/B,IAAS;AAAA,EACT,aAAAU,IAAc;AAAA,EACd,OAAAP,IAAQ;AAAA,EACR,kBAAA6B,IAAmB;AAAA,EACnB,eAAAC,IAAgB;AAAA,EAChB,cAAAZ,IAAe;AAAA,EACf,SAAAa,IAAU;AAAA,EACV,OAAAC;AAAA,EACA,SAAAC;AAAA,EACA,aAAAlB;AAAA,EACA,YAAAmB;AAAA,EACA,WAAAC,IAAY;AAAA,EACZ,GAAGC;AACL,GAAG;AACD,QAAM,CAACC,GAAUC,CAAW,IAAIC,EAAS,IAAI,GACvC,CAACC,GAAeC,CAAgB,IAAIF,EAAS,IAAI,GAEjDG,IAAYF,KAAiB1B,GAE7B6B,IAAUC;AAAA,IACdC,EAAUC,IAAe,EAAE,sBAAsB,EAAE,UAAU,EAAA,GAAK;AAAA,IAClED,EAAUE,IAAgB,EAAE,kBAAkBC,IAA6B;AAAA,EAAA,GAGvEC,IAAgBC,GAAQ,MAAM;AAClC,UAAMC,IAAM,CAAA;AACZ,eAAWC,KAAOzB,EAAS,CAAAwB,EAAIC,EAAI,EAAE,IAAI,CAAA;AACzC,eAAW5B,KAAKkB,GAAW;AACzB,YAAMW,IAAQ7B,EAAE;AAChB,MAAK2B,EAAIE,CAAK,MAAGF,EAAIE,CAAK,IAAI,CAAA,IAC9BF,EAAIE,CAAK,EAAE,KAAK7B,CAAC;AAAA,IACnB;AACA,WAAO2B;AAAA,EACT,GAAG,CAACxB,GAASe,CAAS,CAAC,GAEjBY,IAAsBC;AAAA,IAC1B,CAACC,MACcd,EAAU,KAAK,CAAClB,MAAMA,EAAE,OAAOgC,CAAM,GACrC,YAAY;AAAA,IAE3B,CAACd,CAAS;AAAA,EAAA,GAGNe,IAAkBF;AAAA,IACtB,CAACG,MACMA,IACD,OAAOA,KAAO,YAAYA,EAAG,WAAW,SAAS,IAAUA,EAAG,MAAM,CAAgB,IAC3EhB,EAAU,KAAK,CAAClB,MAAMA,EAAE,OAAOkC,CAAE,GACjC,YAAY,OAHT;AAAA,IAKlB,CAAChB,CAAS;AAAA,EAAA,GAGNiB,IAAkB,CAACC,MAAUtB,EAAYsB,EAAM,OAAO,EAAE,GAExDC,IAAgB,CAACD,MAAU;AAC/B,IAAAtB,EAAY,IAAI;AAChB,UAAM,EAAE,QAAAwB,GAAQ,MAAAC,EAAA,IAASH;AACzB,QAAI,CAACG,EAAM;AAEX,UAAMC,IAAeV,EAAoBQ,EAAO,EAAE,GAC5CG,IAAaR,EAAgBM,EAAK,EAAE;AAC1C,QAAI,CAACC,KAAgB,CAACC,EAAY;AAElC,UAAMC,KAAYjB,EAAce,CAAY,KAAK,CAAA,GAAI,MAAA,GAC/CG,IACJH,MAAiBC,IAAaC,KAAYjB,EAAcgB,CAAU,KAAK,CAAA,GAAI,MAAA,GAEvEG,IAAYF,EAAS,UAAU,CAAC1C,MAAMA,EAAE,OAAOsC,EAAO,EAAE;AAC9D,QAAIO;AASJ,QAPIN,EAAK,MAAM,SAAS,SAAS,YAAYA,EAAK,OAAO,UAAUE,CAAU,KAC3EI,IAAUF,EAAO,UAEjBE,IAAUF,EAAO,UAAU,CAAC3C,MAAMA,EAAE,OAAOuC,EAAK,EAAE,GAC9CM,MAAY,OAAIA,IAAUF,EAAO,UAGnCH,MAAiBC,KAAcG,MAAcC,EAAS;AAE1D,QAAIC;AACJ,QAAIN,MAAiBC,GAAY;AAC/B,YAAMM,IAAYC,GAAUN,GAAUE,GAAWC,CAAO;AAExD,MAAAC,IAAY,CAAC,GADE5B,EAAU,OAAO,CAAClB,MAAMA,EAAE,aAAawC,CAAY,GAC1C,GAAGO,CAAS;AAAA,IACtC,OAAO;AACL,YAAME,IAAQ,EAAE,GAAGP,EAASE,CAAS,GAAG,UAAUH,EAAA,GAC5CS,IAAUR,EAAS,OAAO,CAAC1C,MAAMA,EAAE,OAAOsC,EAAO,EAAE,GACnDa,IAAQR,EAAO,MAAA;AACrB,MAAAQ,EAAM,OAAON,GAAS,GAAGI,CAAK,GAI9BH,IAAY,CAAC,GAHE5B,EAAU;AAAA,QACvB,CAAClB,MAAMA,EAAE,aAAawC,KAAgBxC,EAAE,aAAayC;AAAA,MAAA,GAE/B,GAAGS,GAAS,GAAGC,CAAK;AAAA,IAC9C;AAEA,IAAIzC,IACFA,EAAW;AAAA,MACT,QAAQ4B,EAAO;AAAA,MACf,cAAAE;AAAA,MACA,YAAAC;AAAA,MACA,WAAAG;AAAA,MACA,SAAAC;AAAA,IAAA,CACD,IAED5B,EAAiB6B,CAAS;AAAA,EAE9B,GAEMM,IAAavC,IAAWK,EAAU,KAAK,CAAClB,MAAMA,EAAE,OAAOa,CAAQ,IAAI,MAEnEwC,KACJnF,KAASkC,KAAYK,IACnB,gBAAA/B,EAAC,OAAA,EAAI,WAAU,+CACb,UAAA;AAAA,IAAA,gBAAAA,EAAC,OAAA,EAAI,WAAU,WACZ,UAAA;AAAA,MAAAR,IACC,gBAAAP,EAACgB,KAAO,IAAG,OAAM,MAAK,MAAK,QAAO,UAC/B,UAAAT,EAAA,CACH,IACE;AAAA,MACHkC,IACC,gBAAAzC,EAACgB,GAAA,EAAO,IAAG,OAAM,MAAK,MAAK,OAAK,IAAC,WAAU,QACxC,UAAAyB,EAAA,CACH,IACE;AAAA,IAAA,GACN;AAAA,IACCK,IAAU,gBAAA9C,EAAC,OAAA,EAAI,WAAU,YAAY,aAAQ,IAAS;AAAA,EAAA,EAAA,CACzD,IACE,MAEA2F,uBACH,OAAA,EAAI,WAAU,mCACZ,UAAAnD,EAAQ,IAAI,CAACyB,MACZ,gBAAAjE;AAAA,IAACyB;AAAA,IAAA;AAAA,MAEC,QAAQwC;AAAA,MACR,OAAOH,EAAcG,EAAI,EAAE,KAAK,CAAA;AAAA,MAChC,QAAAvD;AAAA,MACA,aAAAkB;AAAA,MACA,aAAAR;AAAA,MACA,OAAAP;AAAA,MACA,YAAY6B;AAAA,MACZ,YAAYC;AAAA,MACZ,cAAAZ;AAAA,IAAA;AAAA,IATKkC,EAAI;AAAA,EAAA,CAWZ,GACH;AAGF,SACE,gBAAAlD;AAAA,IAAC6E;AAAA,IAAA;AAAA,MACC,SAAQ;AAAA,MACR,WAAWhD;AAAA,MACX,WAAAI;AAAA,MACC,GAAGC;AAAA,MAEH,UAAA;AAAA,QAAAyC;AAAA,QACA7C,sBACE,OAAA,EAAI,WAAU,+IACZ,UAAA,OAAOA,CAAK,GACf,IAEA,gBAAA9B;AAAA,UAAC8E;AAAA,UAAA;AAAA,YACC,SAAArC;AAAA,YACA,oBAAoBsC;AAAA,YACpB,aAAatB;AAAA,YACb,WAAWE;AAAA,YACX,cAAc,MAAMvB,EAAY,IAAI;AAAA,YAEnC,UAAA;AAAA,cAAAwC;AAAA,cACD,gBAAA3F,EAAC+F,IAAA,EACE,UAAAN,IACC,gBAAAzF,EAACQ,GAAA,EAAe,MAAMiF,GAAY,QAAA/E,GAAgB,UAAQ,IAAC,OAAAG,EAAA,CAAc,IACvE,KAAA,CACN;AAAA,YAAA;AAAA,UAAA;AAAA,QAAA;AAAA,MACF;AAAA,IAAA;AAAA,EAAA;AAIR;"}
|
|
@@ -1,67 +1,70 @@
|
|
|
1
|
-
import { jsx as
|
|
2
|
-
import { default as
|
|
1
|
+
import { jsx as a } from "react/jsx-runtime";
|
|
2
|
+
import { default as E, useThemeMode as H } from "./theme/AppThemeProvider.js";
|
|
3
3
|
import "react";
|
|
4
4
|
import "framer-motion";
|
|
5
5
|
import "@heroicons/react/24/outline";
|
|
6
|
+
import "@dnd-kit/core";
|
|
7
|
+
import "@dnd-kit/sortable";
|
|
8
|
+
import "@dnd-kit/utilities";
|
|
6
9
|
import "d3";
|
|
7
|
-
import { default as
|
|
10
|
+
import { default as A } from "./charts/GeoMap.js";
|
|
8
11
|
import "react-dom";
|
|
9
|
-
import { default as
|
|
10
|
-
import { Accordion as
|
|
11
|
-
import { Dialog as
|
|
12
|
+
import { default as G, useDataMode as K } from "./data/DataModeProvider.js";
|
|
13
|
+
import { Accordion as U, Badge as V, Breadcrumbs as $, Drawer as q, Dropdown as J, Kbd as Q, Meter as R, Modal as W, Pagination as X, ProgressBar as Y, ProgressCircle as Z, ScrollShadow as _, Separator as ee, Skeleton as te, Tabs as ae, Toast as re, Tooltip as oe, toast as ie } from "@heroui/react";
|
|
14
|
+
import { Dialog as se, DialogClose as le, DialogContent as ce, DialogDescription as de, DialogFooter as me, DialogHeader as pe, DialogOverlay as ge, DialogPortal as ue, DialogTitle as xe, DialogTrigger as be, default as fe } from "./heroui/Dialog.js";
|
|
12
15
|
import "@heroicons/react/24/solid";
|
|
13
|
-
const
|
|
16
|
+
const b = ({ children: e, ...t }) => /* @__PURE__ */ a("nav", { "aria-label": "breadcrumb", ...t, children: e }), f = ({ children: e, ...t }) => /* @__PURE__ */ a("ol", { className: "flex flex-wrap items-center gap-1.5 break-words text-sm text-slate-500 dark:text-slate-400", ...t, children: e }), h = ({ children: e, ...t }) => /* @__PURE__ */ a("li", { className: "inline-flex items-center gap-1.5", ...t, children: e }), D = ({ href: e, children: t, asChild: r, ...o }) => r ? /* @__PURE__ */ a("span", { ...o, children: t }) : /* @__PURE__ */ a("a", { href: e, className: "transition-colors hover:text-slate-900 dark:hover:text-slate-50", ...o, children: t }), P = ({ children: e, ...t }) => /* @__PURE__ */ a("span", { role: "link", "aria-disabled": "true", "aria-current": "page", className: "font-normal text-slate-900 dark:text-slate-50", ...t, children: e }), v = ({ children: e, ...t }) => /* @__PURE__ */ a("li", { role: "presentation", "aria-hidden": "true", ...t, children: e ?? "/" }), k = (e) => /* @__PURE__ */ a("span", { role: "presentation", "aria-hidden": "true", ...e, children: "..." }), B = ({ children: e, ...t }) => /* @__PURE__ */ a("ul", { className: "flex flex-row items-center gap-1", ...t, children: e }), S = ({ children: e, ...t }) => /* @__PURE__ */ a("li", { ...t, children: e }), i = ({ href: e, isActive: t, children: r, ...o }) => /* @__PURE__ */ a("a", { href: e, "aria-current": t ? "page" : void 0, className: `inline-flex items-center justify-center rounded-md text-sm font-medium h-9 min-w-9 px-4 py-2 ${t ? "bg-slate-900 text-white dark:bg-slate-50 dark:text-slate-900" : "hover:bg-slate-100 dark:hover:bg-slate-800"}`, ...o, children: r }), w = ({ href: e, ...t }) => /* @__PURE__ */ a(i, { href: e, ...t, children: "Previous" }), N = ({ href: e, ...t }) => /* @__PURE__ */ a(i, { href: e, ...t, children: "Next" }), T = (e) => /* @__PURE__ */ a("span", { "aria-hidden": !0, ...e, children: "..." }), M = ({ children: e, size: t, ...r }) => /* @__PURE__ */ a("button", { ...r, children: e }), C = ({ placeholder: e, ...t }) => /* @__PURE__ */ a("span", { ...t, children: e }), I = ({ children: e, ...t }) => /* @__PURE__ */ a("div", { ...t, children: e }), y = ({ children: e, ...t }) => /* @__PURE__ */ a("div", { ...t, children: e });
|
|
14
17
|
export {
|
|
15
|
-
|
|
16
|
-
|
|
17
|
-
|
|
18
|
-
|
|
19
|
-
|
|
20
|
-
|
|
21
|
-
|
|
22
|
-
|
|
23
|
-
|
|
24
|
-
|
|
25
|
-
|
|
26
|
-
|
|
27
|
-
|
|
28
|
-
|
|
29
|
-
|
|
30
|
-
|
|
31
|
-
|
|
32
|
-
|
|
33
|
-
|
|
34
|
-
|
|
35
|
-
|
|
36
|
-
|
|
37
|
-
|
|
38
|
-
|
|
39
|
-
|
|
40
|
-
|
|
41
|
-
|
|
42
|
-
|
|
43
|
-
|
|
44
|
-
|
|
45
|
-
|
|
46
|
-
|
|
47
|
-
|
|
18
|
+
U as Accordion,
|
|
19
|
+
E as AppThemeProvider,
|
|
20
|
+
V as Badge,
|
|
21
|
+
b as Breadcrumb,
|
|
22
|
+
k as BreadcrumbEllipsis,
|
|
23
|
+
h as BreadcrumbItem,
|
|
24
|
+
D as BreadcrumbLink,
|
|
25
|
+
f as BreadcrumbList,
|
|
26
|
+
P as BreadcrumbPage,
|
|
27
|
+
v as BreadcrumbSeparator,
|
|
28
|
+
$ as Breadcrumbs,
|
|
29
|
+
G as DataModeProvider,
|
|
30
|
+
se as Dialog,
|
|
31
|
+
le as DialogClose,
|
|
32
|
+
ce as DialogContent,
|
|
33
|
+
de as DialogDescription,
|
|
34
|
+
me as DialogFooter,
|
|
35
|
+
pe as DialogHeader,
|
|
36
|
+
ge as DialogOverlay,
|
|
37
|
+
ue as DialogPortal,
|
|
38
|
+
xe as DialogTitle,
|
|
39
|
+
be as DialogTrigger,
|
|
40
|
+
q as Drawer,
|
|
41
|
+
J as Dropdown,
|
|
42
|
+
A as GeoMap,
|
|
43
|
+
fe as HeroUIDialog,
|
|
44
|
+
Q as Kbd,
|
|
45
|
+
R as Meter,
|
|
46
|
+
W as Modal,
|
|
47
|
+
X as Pagination,
|
|
48
|
+
B as PaginationContent,
|
|
49
|
+
T as PaginationEllipsis,
|
|
50
|
+
S as PaginationItem,
|
|
48
51
|
i as PaginationLink,
|
|
49
|
-
|
|
50
|
-
|
|
51
|
-
|
|
52
|
-
|
|
53
|
-
|
|
54
|
-
|
|
55
|
-
|
|
56
|
-
|
|
57
|
-
|
|
58
|
-
|
|
59
|
-
|
|
60
|
-
|
|
61
|
-
|
|
62
|
-
|
|
63
|
-
|
|
64
|
-
|
|
65
|
-
|
|
52
|
+
N as PaginationNext,
|
|
53
|
+
w as PaginationPrevious,
|
|
54
|
+
Y as ProgressBar,
|
|
55
|
+
Z as ProgressCircle,
|
|
56
|
+
_ as ScrollShadow,
|
|
57
|
+
I as SelectContent,
|
|
58
|
+
y as SelectItem,
|
|
59
|
+
M as SelectTrigger,
|
|
60
|
+
C as SelectValue,
|
|
61
|
+
ee as Separator,
|
|
62
|
+
te as Skeleton,
|
|
63
|
+
ae as Tabs,
|
|
64
|
+
re as Toast,
|
|
65
|
+
oe as Tooltip,
|
|
66
|
+
ie as toast,
|
|
67
|
+
K as useDataMode,
|
|
68
|
+
H as useThemeMode
|
|
66
69
|
};
|
|
67
70
|
//# sourceMappingURL=index.js.map
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"index.js","sources":["../../../src/components/library/index.jsx"],"sourcesContent":["export { default as AppThemeProvider, useThemeMode } from \"./theme/AppThemeProvider\";\n\n// UI primitives\nexport { default as UIButton } from \"./ui/UIButton\";\nexport { default as UIInput } from \"./ui/UIInput\";\nexport { default as UIToggle } from \"./ui/Toggle\";\nexport { default as UIText } from \"./ui/Text\";\nexport { default as UICard, Card, CardHeader, CardTitle, CardDescription, CardContent, CardFooter } from \"./ui/Card\";\nexport { default as UIContainer } from \"./ui/Container\";\nexport { default as UIChip } from \"./ui/Chip\";\nexport { default as Avatar } from \"./ui/Avatar\";\nexport { default as Spinner } from \"./ui/Spinner\";\nexport { default as EmptyState } from \"./ui/EmptyState\";\nexport { default as Label } from \"./ui/Label\";\nexport { default as Checkbox } from \"./ui/Checkbox\";\nexport { default as FieldGroup } from \"./ui/FieldGroup\";\n\n// Cards\nexport { default as BaseCard } from \"./cards/BaseCard\";\nexport { default as ChartCard } from \"./cards/ChartCard\";\nexport { default as ListCard } from \"./cards/ListCard\";\nexport { default as MetricCard } from \"./cards/MetricCard\";\nexport { default as SectionCard } from \"./cards/SectionCard\";\nexport { default as StatusCard } from \"./cards/StatusCard\";\nexport { default as TableCard } from \"./cards/TableCard\";\nexport { default as WidgetCard } from \"./cards/WidgetCard\";\nexport { default as FeedPanel } from \"./cards/FeedPanel\";\nexport { default as ActivityCard } from \"./cards/ActivityCard\";\nexport { default as MetricsStrip } from \"./cards/MetricsStrip\";\nexport { default as CalloutCard } from \"./cards/CalloutCard\";\nexport { default as ActionList } from \"./cards/ActionList\";\n\n// Charts\nexport { default as D3Chart } from \"./charts/D3Chart\";\nexport { D3ChartTemplates } from \"./charts/D3ChartTemplates\";\nexport { default as GeoMap } from \"./charts/GeoMap\";\n\n// Layout\nexport { default as PageContainer } from \"./layout/PageContainer\";\n\n// Skeletons\nexport { default as CardSkeleton } from \"./skeletons/CardSkeleton\";\n\n// Forms\nexport { FormModal, FormRenderer, FormSection, FormField, useFormState } from \"./forms\";\n\n// Filters\nexport { FilterBar, SearchFilter, SelectFilter, ToggleFilter } from \"./filters\";\n\n// Data mode\nexport { default as DataModeProvider, useDataMode } from \"./data/DataModeProvider\";\nexport { default as DataModeToggle } from \"./data/DataModeToggle\";\nexport { default as useDataSource } from \"./data/useDataSource\";\n\n// Data utilities\nexport { default as usePageFilters } from \"./data/usePageFilters\";\nexport {\n filterBySearch,\n filterByValue,\n filterByToggle,\n filterByDateRange,\n sortByKey,\n applyFilters,\n} from \"./data/filterUtils\";\n\n// Chat / AI agent\nexport {\n ChatPanel,\n ChatBar,\n ChatMessageList,\n ChatMessage,\n ChatInput,\n ChatTypingIndicator,\n ChatSuggestions,\n ChatToolCall,\n ChatWelcome,\n useChatState,\n} from \"./chat\";\n\n// HeroUI wrappers — existing\nexport { default as HeroUIButton, Button } from \"./heroui/Button\";\nexport { default as HeroUIInput } from \"./heroui/Input\";\nexport { default as HeroUICard } from \"./heroui/Card\";\nexport { default as HeroUIToggle } from \"./heroui/Toggle\";\n\n// HeroUI wrappers — navigation & layout\nexport { default as HeroUITabs, Tabs } from \"./heroui/Tabs\";\nexport { default as HeroUIAccordion, Accordion } from \"./heroui/Accordion\";\nexport { default as HeroUIBreadcrumbs, Breadcrumbs } from \"./heroui/Breadcrumbs\";\nexport { default as HeroUISeparator, Separator } from \"./heroui/Separator\";\nexport { default as HeroUIPagination, Pagination } from \"./heroui/Pagination\";\n\n// Breadcrumb subcomponents for shadcn compatibility\nexport const Breadcrumb = ({ children, ...props }) => <nav aria-label=\"breadcrumb\" {...props}>{children}</nav>;\nexport const BreadcrumbList = ({ children, ...props }) => <ol className=\"flex flex-wrap items-center gap-1.5 break-words text-sm text-slate-500 dark:text-slate-400\" {...props}>{children}</ol>;\nexport const BreadcrumbItem = ({ children, ...props }) => <li className=\"inline-flex items-center gap-1.5\" {...props}>{children}</li>;\nexport const BreadcrumbLink = ({ href, children, asChild, ...props }) => asChild ? <span {...props}>{children}</span> : <a href={href} className=\"transition-colors hover:text-slate-900 dark:hover:text-slate-50\" {...props}>{children}</a>;\nexport const BreadcrumbPage = ({ children, ...props }) => <span role=\"link\" aria-disabled=\"true\" aria-current=\"page\" className=\"font-normal text-slate-900 dark:text-slate-50\" {...props}>{children}</span>;\nexport const BreadcrumbSeparator = ({ children, ...props }) => <li role=\"presentation\" aria-hidden=\"true\" {...props}>{children ?? \"/\"}</li>;\nexport const BreadcrumbEllipsis = (props) => <span role=\"presentation\" aria-hidden=\"true\" {...props}>...</span>;\n\n// Pagination subcomponents for shadcn compatibility\nexport const PaginationContent = ({ children, ...props }) => <ul className=\"flex flex-row items-center gap-1\" {...props}>{children}</ul>;\nexport const PaginationItem = ({ children, ...props }) => <li {...props}>{children}</li>;\nexport const PaginationLink = ({ href, isActive, children, ...props }) => <a href={href} aria-current={isActive ? \"page\" : undefined} className={`inline-flex items-center justify-center rounded-md text-sm font-medium h-9 min-w-9 px-4 py-2 ${isActive ? \"bg-slate-900 text-white dark:bg-slate-50 dark:text-slate-900\" : \"hover:bg-slate-100 dark:hover:bg-slate-800\"}`} {...props}>{children}</a>;\nexport const PaginationPrevious = ({ href, ...props }) => <PaginationLink href={href} {...props}>Previous</PaginationLink>;\nexport const PaginationNext = ({ href, ...props }) => <PaginationLink href={href} {...props}>Next</PaginationLink>;\nexport const PaginationEllipsis = (props) => <span aria-hidden {...props}>...</span>;\n\n// HeroUI wrappers — overlays\nexport { default as HeroUIDrawer, Drawer } from \"./heroui/Drawer\";\nexport { default as HeroUIModal, Modal } from \"./heroui/Modal\";\nexport { default as HeroUIDropdown, Dropdown } from \"./heroui/Dropdown\";\nexport { default as HeroUITooltip, Tooltip } from \"./heroui/Tooltip\";\nexport { default as HeroUIToast, Toast, toast } from \"./heroui/Toast\";\n\n// HeroUI wrappers — feedback\nexport { default as HeroUIAlert } from \"./heroui/Alert\";\nexport { default as HeroUIBadge, Badge } from \"./heroui/Badge\";\nexport { default as HeroUIProgressBar, ProgressBar } from \"./heroui/ProgressBar\";\nexport { default as HeroUIProgressCircle, ProgressCircle } from \"./heroui/ProgressCircle\";\nexport { default as HeroUIMeter, Meter } from \"./heroui/Meter\";\nexport { default as HeroUISkeleton, Skeleton } from \"./heroui/Skeleton\";\n\n// shadcn-compatible components from ui/\nexport { default as Alert, AlertTitle, AlertDescription, AlertAction } from \"./ui/Alert\";\n\n// shadcn-compatible components from heroui/ (HeroUI-based)\nexport { default as HeroUIDialog, Dialog, DialogTrigger, DialogPortal, DialogClose, DialogOverlay, DialogContent, DialogHeader, DialogFooter, DialogTitle, DialogDescription } from \"./heroui/Dialog\";\nexport { default as HeroUIField, Field, FieldLabel, FieldDescription, FieldError } from \"./heroui/Field\";\nexport { default as HeroUICollapsible, Collapsible, CollapsibleTrigger, CollapsibleContent } from \"./heroui/Collapsible\";\nexport { default as HeroUIPopover, Popover, PopoverTrigger, PopoverContent } from \"./heroui/Popover\";\nexport { default as HeroUIDatePicker, DatePicker, DatePickerTrigger, DatePickerContent, DatePickerCalendar, DatePickerRangeTrigger } from \"./heroui/DatePicker\";\n\n// HeroUI wrappers — pickers & forms\nexport { default as HeroUISelect, Select } from \"./heroui/Select\";\n\n// Re-export Select subcomponents for shadcn compatibility\nexport const SelectTrigger = ({ children, size, ...props }) => <button {...props}>{children}</button>;\nexport const SelectValue = ({ placeholder, ...props }) => <span {...props}>{placeholder}</span>;\nexport const SelectContent = ({ children, ...props }) => <div {...props}>{children}</div>;\nexport const SelectItem = ({ children, ...props }) => <div {...props}>{children}</div>;\n\n// HeroUI wrappers — utilities\nexport { default as HeroUIKbd, Kbd } from \"./heroui/Kbd\";\nexport { default as HeroUIScrollShadow, ScrollShadow } from \"./heroui/ScrollShadow\";\n"],"names":["Breadcrumb","children","props","jsx","BreadcrumbList","BreadcrumbItem","BreadcrumbLink","href","asChild","BreadcrumbPage","BreadcrumbSeparator","BreadcrumbEllipsis","PaginationContent","PaginationItem","PaginationLink","isActive","PaginationPrevious","PaginationNext","PaginationEllipsis","SelectTrigger","size","SelectValue","placeholder","SelectContent","SelectItem"],"mappings":"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"}
|
|
1
|
+
{"version":3,"file":"index.js","sources":["../../../src/components/library/index.jsx"],"sourcesContent":["export { default as AppThemeProvider, useThemeMode } from \"./theme/AppThemeProvider\";\n\n// UI primitives\nexport { default as UIButton } from \"./ui/UIButton\";\nexport { default as UIInput } from \"./ui/UIInput\";\nexport { default as UIToggle } from \"./ui/Toggle\";\nexport { default as UIText } from \"./ui/Text\";\nexport { default as UICard, Card, CardHeader, CardTitle, CardDescription, CardContent, CardFooter } from \"./ui/Card\";\nexport { default as UIContainer } from \"./ui/Container\";\nexport { default as UIChip } from \"./ui/Chip\";\nexport { default as Avatar } from \"./ui/Avatar\";\nexport { default as Spinner } from \"./ui/Spinner\";\nexport { default as EmptyState } from \"./ui/EmptyState\";\nexport { default as Label } from \"./ui/Label\";\nexport { default as Checkbox } from \"./ui/Checkbox\";\nexport { default as FieldGroup } from \"./ui/FieldGroup\";\n\n// Cards\nexport { default as BaseCard } from \"./cards/BaseCard\";\nexport { default as ChartCard } from \"./cards/ChartCard\";\nexport { default as ListCard } from \"./cards/ListCard\";\nexport { default as MetricCard } from \"./cards/MetricCard\";\nexport { default as SectionCard } from \"./cards/SectionCard\";\nexport { default as StatusCard } from \"./cards/StatusCard\";\nexport { default as TableCard } from \"./cards/TableCard\";\nexport { default as WidgetCard } from \"./cards/WidgetCard\";\nexport { default as FeedPanel } from \"./cards/FeedPanel\";\nexport { default as ActivityCard } from \"./cards/ActivityCard\";\nexport { default as MetricsStrip } from \"./cards/MetricsStrip\";\nexport { default as CalloutCard } from \"./cards/CalloutCard\";\nexport { default as ActionList } from \"./cards/ActionList\";\nexport { default as KanbanBoard } from \"./cards/KanbanBoard\";\n\n// Charts\nexport { default as D3Chart } from \"./charts/D3Chart\";\nexport { D3ChartTemplates } from \"./charts/D3ChartTemplates\";\nexport { default as GeoMap } from \"./charts/GeoMap\";\n\n// Layout\nexport { default as PageContainer } from \"./layout/PageContainer\";\n\n// Skeletons\nexport { default as CardSkeleton } from \"./skeletons/CardSkeleton\";\n\n// Forms\nexport { FormModal, FormRenderer, FormSection, FormField, useFormState } from \"./forms\";\n\n// Filters\nexport { FilterBar, SearchFilter, SelectFilter, ToggleFilter } from \"./filters\";\n\n// Data mode\nexport { default as DataModeProvider, useDataMode } from \"./data/DataModeProvider\";\nexport { default as DataModeToggle } from \"./data/DataModeToggle\";\nexport { default as useDataSource } from \"./data/useDataSource\";\n\n// Data utilities\nexport { default as usePageFilters } from \"./data/usePageFilters\";\nexport {\n filterBySearch,\n filterByValue,\n filterByToggle,\n filterByDateRange,\n sortByKey,\n applyFilters,\n} from \"./data/filterUtils\";\n\n// Chat / AI agent\nexport {\n ChatPanel,\n ChatBar,\n ChatMessageList,\n ChatMessage,\n ChatInput,\n ChatTypingIndicator,\n ChatSuggestions,\n ChatToolCall,\n ChatWelcome,\n useChatState,\n} from \"./chat\";\n\n// HeroUI wrappers — existing\nexport { default as HeroUIButton, Button } from \"./heroui/Button\";\nexport { default as HeroUIInput } from \"./heroui/Input\";\nexport { default as HeroUICard } from \"./heroui/Card\";\nexport { default as HeroUIToggle } from \"./heroui/Toggle\";\n\n// HeroUI wrappers — navigation & layout\nexport { default as HeroUITabs, Tabs } from \"./heroui/Tabs\";\nexport { default as HeroUIAccordion, Accordion } from \"./heroui/Accordion\";\nexport { default as HeroUIBreadcrumbs, Breadcrumbs } from \"./heroui/Breadcrumbs\";\nexport { default as HeroUISeparator, Separator } from \"./heroui/Separator\";\nexport { default as HeroUIPagination, Pagination } from \"./heroui/Pagination\";\n\n// Breadcrumb subcomponents for shadcn compatibility\nexport const Breadcrumb = ({ children, ...props }) => <nav aria-label=\"breadcrumb\" {...props}>{children}</nav>;\nexport const BreadcrumbList = ({ children, ...props }) => <ol className=\"flex flex-wrap items-center gap-1.5 break-words text-sm text-slate-500 dark:text-slate-400\" {...props}>{children}</ol>;\nexport const BreadcrumbItem = ({ children, ...props }) => <li className=\"inline-flex items-center gap-1.5\" {...props}>{children}</li>;\nexport const BreadcrumbLink = ({ href, children, asChild, ...props }) => asChild ? <span {...props}>{children}</span> : <a href={href} className=\"transition-colors hover:text-slate-900 dark:hover:text-slate-50\" {...props}>{children}</a>;\nexport const BreadcrumbPage = ({ children, ...props }) => <span role=\"link\" aria-disabled=\"true\" aria-current=\"page\" className=\"font-normal text-slate-900 dark:text-slate-50\" {...props}>{children}</span>;\nexport const BreadcrumbSeparator = ({ children, ...props }) => <li role=\"presentation\" aria-hidden=\"true\" {...props}>{children ?? \"/\"}</li>;\nexport const BreadcrumbEllipsis = (props) => <span role=\"presentation\" aria-hidden=\"true\" {...props}>...</span>;\n\n// Pagination subcomponents for shadcn compatibility\nexport const PaginationContent = ({ children, ...props }) => <ul className=\"flex flex-row items-center gap-1\" {...props}>{children}</ul>;\nexport const PaginationItem = ({ children, ...props }) => <li {...props}>{children}</li>;\nexport const PaginationLink = ({ href, isActive, children, ...props }) => <a href={href} aria-current={isActive ? \"page\" : undefined} className={`inline-flex items-center justify-center rounded-md text-sm font-medium h-9 min-w-9 px-4 py-2 ${isActive ? \"bg-slate-900 text-white dark:bg-slate-50 dark:text-slate-900\" : \"hover:bg-slate-100 dark:hover:bg-slate-800\"}`} {...props}>{children}</a>;\nexport const PaginationPrevious = ({ href, ...props }) => <PaginationLink href={href} {...props}>Previous</PaginationLink>;\nexport const PaginationNext = ({ href, ...props }) => <PaginationLink href={href} {...props}>Next</PaginationLink>;\nexport const PaginationEllipsis = (props) => <span aria-hidden {...props}>...</span>;\n\n// HeroUI wrappers — overlays\nexport { default as HeroUIDrawer, Drawer } from \"./heroui/Drawer\";\nexport { default as HeroUIModal, Modal } from \"./heroui/Modal\";\nexport { default as HeroUIDropdown, Dropdown } from \"./heroui/Dropdown\";\nexport { default as HeroUITooltip, Tooltip } from \"./heroui/Tooltip\";\nexport { default as HeroUIToast, Toast, toast } from \"./heroui/Toast\";\n\n// HeroUI wrappers — feedback\nexport { default as HeroUIAlert } from \"./heroui/Alert\";\nexport { default as HeroUIBadge, Badge } from \"./heroui/Badge\";\nexport { default as HeroUIProgressBar, ProgressBar } from \"./heroui/ProgressBar\";\nexport { default as HeroUIProgressCircle, ProgressCircle } from \"./heroui/ProgressCircle\";\nexport { default as HeroUIMeter, Meter } from \"./heroui/Meter\";\nexport { default as HeroUISkeleton, Skeleton } from \"./heroui/Skeleton\";\n\n// shadcn-compatible components from ui/\nexport { default as Alert, AlertTitle, AlertDescription, AlertAction } from \"./ui/Alert\";\n\n// shadcn-compatible components from heroui/ (HeroUI-based)\nexport { default as HeroUIDialog, Dialog, DialogTrigger, DialogPortal, DialogClose, DialogOverlay, DialogContent, DialogHeader, DialogFooter, DialogTitle, DialogDescription } from \"./heroui/Dialog\";\nexport { default as HeroUIField, Field, FieldLabel, FieldDescription, FieldError } from \"./heroui/Field\";\nexport { default as HeroUICollapsible, Collapsible, CollapsibleTrigger, CollapsibleContent } from \"./heroui/Collapsible\";\nexport { default as HeroUIPopover, Popover, PopoverTrigger, PopoverContent } from \"./heroui/Popover\";\nexport { default as HeroUIDatePicker, DatePicker, DatePickerTrigger, DatePickerContent, DatePickerCalendar, DatePickerRangeTrigger } from \"./heroui/DatePicker\";\n\n// HeroUI wrappers — pickers & forms\nexport { default as HeroUISelect, Select } from \"./heroui/Select\";\n\n// Re-export Select subcomponents for shadcn compatibility\nexport const SelectTrigger = ({ children, size, ...props }) => <button {...props}>{children}</button>;\nexport const SelectValue = ({ placeholder, ...props }) => <span {...props}>{placeholder}</span>;\nexport const SelectContent = ({ children, ...props }) => <div {...props}>{children}</div>;\nexport const SelectItem = ({ children, ...props }) => <div {...props}>{children}</div>;\n\n// HeroUI wrappers — utilities\nexport { default as HeroUIKbd, Kbd } from \"./heroui/Kbd\";\nexport { default as HeroUIScrollShadow, ScrollShadow } from \"./heroui/ScrollShadow\";\n"],"names":["Breadcrumb","children","props","jsx","BreadcrumbList","BreadcrumbItem","BreadcrumbLink","href","asChild","BreadcrumbPage","BreadcrumbSeparator","BreadcrumbEllipsis","PaginationContent","PaginationItem","PaginationLink","isActive","PaginationPrevious","PaginationNext","PaginationEllipsis","SelectTrigger","size","SelectValue","placeholder","SelectContent","SelectItem"],"mappings":"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"}
|
|
@@ -9,6 +9,9 @@ import f from "../library/cards/StatusCard.js";
|
|
|
9
9
|
import k from "../library/cards/TableCard.js";
|
|
10
10
|
import "framer-motion";
|
|
11
11
|
import "@heroicons/react/24/outline";
|
|
12
|
+
import "@dnd-kit/core";
|
|
13
|
+
import "@dnd-kit/sortable";
|
|
14
|
+
import "@dnd-kit/utilities";
|
|
12
15
|
import v from "../library/charts/D3Chart.js";
|
|
13
16
|
import { D3ChartTemplates as N } from "../library/charts/D3ChartTemplates.js";
|
|
14
17
|
import "../library/charts/GeoMap.js";
|
|
@@ -218,7 +221,7 @@ let C = { ...y };
|
|
|
218
221
|
function w() {
|
|
219
222
|
return C;
|
|
220
223
|
}
|
|
221
|
-
function
|
|
224
|
+
function F(t, a) {
|
|
222
225
|
const l = w()[t.type];
|
|
223
226
|
return l ? /* @__PURE__ */ e(l, { ...t.props ?? {} }, t.id ?? a) : /* @__PURE__ */ i("div", { className: "rounded-lg border border-dashed border-slate-300 p-3 text-xs text-slate-500 dark:border-slate-700", children: [
|
|
224
227
|
"Unknown component: ",
|
|
@@ -227,6 +230,6 @@ function V(t, a) {
|
|
|
227
230
|
}
|
|
228
231
|
export {
|
|
229
232
|
w as getComponentRegistry,
|
|
230
|
-
|
|
233
|
+
F as renderSchemaComponent
|
|
231
234
|
};
|
|
232
235
|
//# sourceMappingURL=ComponentRegistry.js.map
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"ComponentRegistry.js","sources":["../../../src/components/workspace/ComponentRegistry.jsx"],"sourcesContent":["import React from \"react\";\nimport {\n BaseCard,\n MetricCard,\n TableCard,\n ChartCard,\n D3Chart,\n D3ChartTemplates,\n StatusCard,\n ListCard,\n UIButton,\n UIChip,\n UIText\n} from \"@/components/library\";\n\nconst BUILTIN_COMPONENTS = {\n NarrativeSummary({ summary, title }) {\n return (\n <div className=\"text-sm text-slate-600 dark:text-slate-300\">\n {title && <div className=\"mb-1 font-medium text-slate-900 dark:text-slate-50\">{title}</div>}\n {summary}\n </div>\n );\n },\n\n MetricsStrip({ metrics = [], title, collapsible = false, collapsed: initialCollapsed = false }) {\n const [collapsed, setCollapsed] = React.useState(initialCollapsed);\n\n const items = metrics.length ? metrics : [\n { label: \"Metric A\", value: \"—\", trend: null },\n { label: \"Metric B\", value: \"—\", trend: null },\n { label: \"Metric C\", value: \"—\", trend: null }\n ];\n\n if (collapsible && collapsed) {\n return (\n <button\n type=\"button\"\n onClick={() => setCollapsed(false)}\n className=\"flex w-full items-center justify-between rounded-lg border border-slate-200 bg-white px-3 py-2 text-left text-xs text-slate-500 hover:bg-slate-50 dark:border-slate-800 dark:bg-slate-900 dark:text-slate-400 dark:hover:bg-slate-800\"\n >\n <span>{title ?? \"Metrics\"}: {items.map(m => `${m.label} ${m.value}`).join(\" · \")}</span>\n <span>▸</span>\n </button>\n );\n }\n\n return (\n <div className=\"rounded-xl border border-slate-200 bg-white p-3 dark:border-slate-800 dark:bg-slate-900\">\n {(title || collapsible) && (\n <div className=\"mb-2 flex items-center justify-between\">\n <span className=\"text-xs font-medium text-slate-500 dark:text-slate-400\">{title ?? \"Metrics\"}</span>\n {collapsible && (\n <button\n type=\"button\"\n onClick={() => setCollapsed(true)}\n className=\"text-xs text-slate-400 hover:text-slate-600 dark:text-slate-500 dark:hover:text-slate-300\"\n >\n Collapse\n </button>\n )}\n </div>\n )}\n <div className=\"flex flex-wrap gap-4\">\n {items.map((m) => (\n <div key={m.label} className=\"min-w-[80px]\">\n <div className=\"text-xs text-slate-400 dark:text-slate-500\">{m.label}</div>\n <div className=\"flex items-baseline gap-1.5\">\n <span className=\"text-sm font-semibold text-slate-700 dark:text-slate-200\">{m.value}</span>\n {m.trend && (\n <span className={`text-xs ${String(m.trend).startsWith?.(\"+\") || m.trend > 0 ? \"text-red-500\" : \"text-emerald-500\"}`}>\n {typeof m.trend === \"number\" ? (m.trend > 0 ? `+${m.trend}` : m.trend) : m.trend}\n </span>\n )}\n </div>\n </div>\n ))}\n </div>\n </div>\n );\n },\n\n ItemList({ items = [], title, onItemClick }) {\n const [expanded, setExpanded] = React.useState(null);\n if (!items.length) {\n return <div className=\"text-sm text-slate-500 dark:text-slate-400\">No items.</div>;\n }\n return (\n <div className=\"space-y-2\">\n {title && (\n <div className=\"flex items-center justify-between\">\n <span className=\"text-sm font-medium text-slate-900 dark:text-slate-50\">{title}</span>\n <span className=\"text-xs text-slate-400 dark:text-slate-500\">{items.length} items</span>\n </div>\n )}\n <div className=\"space-y-1.5\">\n {items.map((item, idx) => (\n <div key={item.id ?? idx} className=\"rounded-xl border border-slate-200 bg-white dark:border-slate-800 dark:bg-slate-900\">\n <button\n type=\"button\"\n onClick={() => {\n setExpanded(expanded === (item.id ?? idx) ? null : (item.id ?? idx));\n onItemClick?.(item);\n }}\n className=\"flex w-full items-start justify-between gap-3 p-3 text-left\"\n >\n <div className=\"min-w-0 flex-1\">\n <div className=\"flex items-start justify-between gap-2\">\n <div className=\"text-sm font-medium text-slate-900 dark:text-slate-50\">\n {item.title ?? item.name ?? `Item ${idx + 1}`}\n </div>\n {item.status && (\n <UIChip tone={item.status === \"critical\" ? \"danger\" : item.status === \"warning\" ? \"warning\" : \"neutral\"} className=\"shrink-0\">\n {item.status}\n </UIChip>\n )}\n </div>\n {item.description && (\n <div className=\"mt-1 text-xs text-slate-500 dark:text-slate-400\">{item.description}</div>\n )}\n </div>\n </button>\n {expanded === (item.id ?? idx) && item.actions && (\n <div className=\"border-t border-slate-100 px-3 py-2 dark:border-slate-800\">\n <div className=\"flex flex-wrap gap-1.5\">\n {item.actions.map((action, i) => (\n <button\n key={typeof action === \"string\" ? action : action.label}\n type=\"button\"\n className={`rounded-md px-2.5 py-1 text-xs font-medium transition-colors ${\n i === 0\n ? \"bg-slate-900 text-white hover:bg-slate-800 dark:bg-slate-50 dark:text-slate-900 dark:hover:bg-slate-200\"\n : \"bg-slate-100 text-slate-700 hover:bg-slate-200 dark:bg-slate-800 dark:text-slate-300 dark:hover:bg-slate-700\"\n }`}\n >\n {typeof action === \"string\" ? action : action.label}\n </button>\n ))}\n </div>\n </div>\n )}\n </div>\n ))}\n </div>\n </div>\n );\n },\n\n DataTable({ title, subtitle, columns = [], data = [], rows, searchable = true, sortable = true, paginated = true, pageSize = 5 }) {\n const tableData = data.length ? data : (rows ?? []);\n const cols = columns.length ? columns : [\n { key: \"name\", label: \"Name\" },\n { key: \"status\", label: \"Status\" },\n { key: \"value\", label: \"Value\" }\n ];\n return (\n <TableCard\n title={title ?? \"Data\"}\n subtitle={subtitle}\n columns={cols}\n data={tableData}\n searchable={searchable}\n sortable={sortable}\n paginated={paginated}\n pageSize={pageSize}\n />\n );\n },\n\n DataChart({ title, subtitle, chartType = \"line\", data = [], height = 200 }) {\n const series = data.length ? data : Array.from({ length: 12 }, (_, i) => ({ x: i, y: Math.random() * 100 }));\n return (\n <ChartCard\n title={title ?? \"Trend\"}\n subtitle={subtitle ?? \"Data visualization\"}\n chartType={chartType}\n height={height}\n chart={\n <D3Chart\n data={series}\n responsive\n height={height}\n ariaLabel={title}\n renderChart={(svg, d, dims, opts) => D3ChartTemplates.lineChart(svg, d, dims, opts)}\n options={{ xKey: \"x\", yKey: \"y\", showGrid: true, showAxes: true }}\n />\n }\n />\n );\n },\n\n MetricCard({ title, label, value, trend, change, changeType, color, icon, description }) {\n return (\n <MetricCard\n title={title ?? label}\n value={value ?? \"—\"}\n trend={trend}\n change={change}\n changeType={changeType}\n color={color}\n icon={icon}\n description={description}\n />\n );\n },\n\n StatusCard({ title, subtitle, status, items, layout, showProgress, showTimestamp }) {\n return (\n <StatusCard\n title={title}\n subtitle={subtitle}\n status={status}\n items={items}\n layout={layout}\n showProgress={showProgress}\n showTimestamp={showTimestamp}\n />\n );\n },\n\n ActionList({ actions = [], title, onAction }) {\n return (\n <div className=\"rounded-2xl border border-slate-200 bg-white p-4 dark:border-slate-800 dark:bg-slate-900\">\n {title && <div className=\"mb-3 text-sm font-medium text-slate-900 dark:text-slate-50\">{title}</div>}\n <div className=\"flex flex-wrap gap-2\">\n {actions.map((action, i) => (\n <UIButton\n key={i}\n size=\"sm\"\n variant={i === 0 ? \"primary\" : \"outline\"}\n onClick={() => onAction?.(action)}\n >\n {typeof action === \"string\" ? action : action.label}\n </UIButton>\n ))}\n </div>\n </div>\n );\n },\n\n CalloutCard({ title, message, tone = \"neutral\" }) {\n const toneClasses = {\n neutral: \"border-slate-200 bg-slate-50 text-slate-700 dark:border-slate-800 dark:bg-slate-950/30 dark:text-slate-200\",\n success: \"border-emerald-200 bg-emerald-50 text-emerald-800 dark:border-emerald-900/40 dark:bg-emerald-950/20 dark:text-emerald-200\",\n warning: \"border-amber-200 bg-amber-50 text-amber-800 dark:border-amber-900/40 dark:bg-amber-950/20 dark:text-amber-200\",\n danger: \"border-rose-200 bg-rose-50 text-rose-800 dark:border-rose-900/40 dark:bg-rose-950/20 dark:text-rose-200\"\n };\n return (\n <div className={`rounded-xl border p-4 ${toneClasses[tone] ?? toneClasses.neutral}`}>\n {title && <div className=\"mb-1 text-sm font-semibold\">{title}</div>}\n <div className=\"text-sm\">{message}</div>\n </div>\n );\n },\n\n Divider() {\n return <div className=\"h-px bg-slate-200 dark:bg-slate-800\" />;\n },\n\n Spacer({ size = \"md\" }) {\n const heights = { sm: \"h-2\", md: \"h-4\", lg: \"h-6\" };\n return <div className={heights[size] ?? heights.md} />;\n }\n};\n\nlet _registry = { ...BUILTIN_COMPONENTS };\n\nexport function getComponentRegistry() {\n return _registry;\n}\n\nexport function registerComponent(type, Component) {\n _registry = { ..._registry, [type]: Component };\n}\n\nexport function registerComponents(map) {\n _registry = { ..._registry, ...map };\n}\n\nexport function renderSchemaComponent(component, index) {\n const registry = getComponentRegistry();\n const Component = registry[component.type];\n if (!Component) {\n return (\n <div key={index} className=\"rounded-lg border border-dashed border-slate-300 p-3 text-xs text-slate-500 dark:border-slate-700\">\n Unknown component: {component.type}\n </div>\n );\n }\n return <Component key={component.id ?? index} {...(component.props ?? {})} />;\n}\n\nexport function renderSchema(components = []) {\n return components.map((c, i) => renderSchemaComponent(c, i));\n}\n\nexport default BUILTIN_COMPONENTS;\n"],"names":["BUILTIN_COMPONENTS","summary","title","jsxs","jsx","metrics","collapsible","initialCollapsed","collapsed","setCollapsed","React","items","m","onItemClick","expanded","setExpanded","item","idx","UIChip","action","i","subtitle","columns","data","rows","searchable","sortable","paginated","pageSize","tableData","cols","TableCard","chartType","height","series","_","ChartCard","D3Chart","svg","d","dims","opts","D3ChartTemplates","label","value","trend","change","changeType","color","icon","description","MetricCard","status","layout","showProgress","showTimestamp","StatusCard","actions","onAction","UIButton","message","tone","toneClasses","size","heights","_registry","getComponentRegistry","renderSchemaComponent","component","index","Component"],"mappings":"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"}
|
|
1
|
+
{"version":3,"file":"ComponentRegistry.js","sources":["../../../src/components/workspace/ComponentRegistry.jsx"],"sourcesContent":["import React from \"react\";\nimport {\n BaseCard,\n MetricCard,\n TableCard,\n ChartCard,\n D3Chart,\n D3ChartTemplates,\n StatusCard,\n ListCard,\n UIButton,\n UIChip,\n UIText\n} from \"@/components/library\";\n\nconst BUILTIN_COMPONENTS = {\n NarrativeSummary({ summary, title }) {\n return (\n <div className=\"text-sm text-slate-600 dark:text-slate-300\">\n {title && <div className=\"mb-1 font-medium text-slate-900 dark:text-slate-50\">{title}</div>}\n {summary}\n </div>\n );\n },\n\n MetricsStrip({ metrics = [], title, collapsible = false, collapsed: initialCollapsed = false }) {\n const [collapsed, setCollapsed] = React.useState(initialCollapsed);\n\n const items = metrics.length ? metrics : [\n { label: \"Metric A\", value: \"—\", trend: null },\n { label: \"Metric B\", value: \"—\", trend: null },\n { label: \"Metric C\", value: \"—\", trend: null }\n ];\n\n if (collapsible && collapsed) {\n return (\n <button\n type=\"button\"\n onClick={() => setCollapsed(false)}\n className=\"flex w-full items-center justify-between rounded-lg border border-slate-200 bg-white px-3 py-2 text-left text-xs text-slate-500 hover:bg-slate-50 dark:border-slate-800 dark:bg-slate-900 dark:text-slate-400 dark:hover:bg-slate-800\"\n >\n <span>{title ?? \"Metrics\"}: {items.map(m => `${m.label} ${m.value}`).join(\" · \")}</span>\n <span>▸</span>\n </button>\n );\n }\n\n return (\n <div className=\"rounded-xl border border-slate-200 bg-white p-3 dark:border-slate-800 dark:bg-slate-900\">\n {(title || collapsible) && (\n <div className=\"mb-2 flex items-center justify-between\">\n <span className=\"text-xs font-medium text-slate-500 dark:text-slate-400\">{title ?? \"Metrics\"}</span>\n {collapsible && (\n <button\n type=\"button\"\n onClick={() => setCollapsed(true)}\n className=\"text-xs text-slate-400 hover:text-slate-600 dark:text-slate-500 dark:hover:text-slate-300\"\n >\n Collapse\n </button>\n )}\n </div>\n )}\n <div className=\"flex flex-wrap gap-4\">\n {items.map((m) => (\n <div key={m.label} className=\"min-w-[80px]\">\n <div className=\"text-xs text-slate-400 dark:text-slate-500\">{m.label}</div>\n <div className=\"flex items-baseline gap-1.5\">\n <span className=\"text-sm font-semibold text-slate-700 dark:text-slate-200\">{m.value}</span>\n {m.trend && (\n <span className={`text-xs ${String(m.trend).startsWith?.(\"+\") || m.trend > 0 ? \"text-red-500\" : \"text-emerald-500\"}`}>\n {typeof m.trend === \"number\" ? (m.trend > 0 ? `+${m.trend}` : m.trend) : m.trend}\n </span>\n )}\n </div>\n </div>\n ))}\n </div>\n </div>\n );\n },\n\n ItemList({ items = [], title, onItemClick }) {\n const [expanded, setExpanded] = React.useState(null);\n if (!items.length) {\n return <div className=\"text-sm text-slate-500 dark:text-slate-400\">No items.</div>;\n }\n return (\n <div className=\"space-y-2\">\n {title && (\n <div className=\"flex items-center justify-between\">\n <span className=\"text-sm font-medium text-slate-900 dark:text-slate-50\">{title}</span>\n <span className=\"text-xs text-slate-400 dark:text-slate-500\">{items.length} items</span>\n </div>\n )}\n <div className=\"space-y-1.5\">\n {items.map((item, idx) => (\n <div key={item.id ?? idx} className=\"rounded-xl border border-slate-200 bg-white dark:border-slate-800 dark:bg-slate-900\">\n <button\n type=\"button\"\n onClick={() => {\n setExpanded(expanded === (item.id ?? idx) ? null : (item.id ?? idx));\n onItemClick?.(item);\n }}\n className=\"flex w-full items-start justify-between gap-3 p-3 text-left\"\n >\n <div className=\"min-w-0 flex-1\">\n <div className=\"flex items-start justify-between gap-2\">\n <div className=\"text-sm font-medium text-slate-900 dark:text-slate-50\">\n {item.title ?? item.name ?? `Item ${idx + 1}`}\n </div>\n {item.status && (\n <UIChip tone={item.status === \"critical\" ? \"danger\" : item.status === \"warning\" ? \"warning\" : \"neutral\"} className=\"shrink-0\">\n {item.status}\n </UIChip>\n )}\n </div>\n {item.description && (\n <div className=\"mt-1 text-xs text-slate-500 dark:text-slate-400\">{item.description}</div>\n )}\n </div>\n </button>\n {expanded === (item.id ?? idx) && item.actions && (\n <div className=\"border-t border-slate-100 px-3 py-2 dark:border-slate-800\">\n <div className=\"flex flex-wrap gap-1.5\">\n {item.actions.map((action, i) => (\n <button\n key={typeof action === \"string\" ? action : action.label}\n type=\"button\"\n className={`rounded-md px-2.5 py-1 text-xs font-medium transition-colors ${\n i === 0\n ? \"bg-slate-900 text-white hover:bg-slate-800 dark:bg-slate-50 dark:text-slate-900 dark:hover:bg-slate-200\"\n : \"bg-slate-100 text-slate-700 hover:bg-slate-200 dark:bg-slate-800 dark:text-slate-300 dark:hover:bg-slate-700\"\n }`}\n >\n {typeof action === \"string\" ? action : action.label}\n </button>\n ))}\n </div>\n </div>\n )}\n </div>\n ))}\n </div>\n </div>\n );\n },\n\n DataTable({ title, subtitle, columns = [], data = [], rows, searchable = true, sortable = true, paginated = true, pageSize = 5 }) {\n const tableData = data.length ? data : (rows ?? []);\n const cols = columns.length ? columns : [\n { key: \"name\", label: \"Name\" },\n { key: \"status\", label: \"Status\" },\n { key: \"value\", label: \"Value\" }\n ];\n return (\n <TableCard\n title={title ?? \"Data\"}\n subtitle={subtitle}\n columns={cols}\n data={tableData}\n searchable={searchable}\n sortable={sortable}\n paginated={paginated}\n pageSize={pageSize}\n />\n );\n },\n\n DataChart({ title, subtitle, chartType = \"line\", data = [], height = 200 }) {\n const series = data.length ? data : Array.from({ length: 12 }, (_, i) => ({ x: i, y: Math.random() * 100 }));\n return (\n <ChartCard\n title={title ?? \"Trend\"}\n subtitle={subtitle ?? \"Data visualization\"}\n chartType={chartType}\n height={height}\n chart={\n <D3Chart\n data={series}\n responsive\n height={height}\n ariaLabel={title}\n renderChart={(svg, d, dims, opts) => D3ChartTemplates.lineChart(svg, d, dims, opts)}\n options={{ xKey: \"x\", yKey: \"y\", showGrid: true, showAxes: true }}\n />\n }\n />\n );\n },\n\n MetricCard({ title, label, value, trend, change, changeType, color, icon, description }) {\n return (\n <MetricCard\n title={title ?? label}\n value={value ?? \"—\"}\n trend={trend}\n change={change}\n changeType={changeType}\n color={color}\n icon={icon}\n description={description}\n />\n );\n },\n\n StatusCard({ title, subtitle, status, items, layout, showProgress, showTimestamp }) {\n return (\n <StatusCard\n title={title}\n subtitle={subtitle}\n status={status}\n items={items}\n layout={layout}\n showProgress={showProgress}\n showTimestamp={showTimestamp}\n />\n );\n },\n\n ActionList({ actions = [], title, onAction }) {\n return (\n <div className=\"rounded-2xl border border-slate-200 bg-white p-4 dark:border-slate-800 dark:bg-slate-900\">\n {title && <div className=\"mb-3 text-sm font-medium text-slate-900 dark:text-slate-50\">{title}</div>}\n <div className=\"flex flex-wrap gap-2\">\n {actions.map((action, i) => (\n <UIButton\n key={i}\n size=\"sm\"\n variant={i === 0 ? \"primary\" : \"outline\"}\n onClick={() => onAction?.(action)}\n >\n {typeof action === \"string\" ? action : action.label}\n </UIButton>\n ))}\n </div>\n </div>\n );\n },\n\n CalloutCard({ title, message, tone = \"neutral\" }) {\n const toneClasses = {\n neutral: \"border-slate-200 bg-slate-50 text-slate-700 dark:border-slate-800 dark:bg-slate-950/30 dark:text-slate-200\",\n success: \"border-emerald-200 bg-emerald-50 text-emerald-800 dark:border-emerald-900/40 dark:bg-emerald-950/20 dark:text-emerald-200\",\n warning: \"border-amber-200 bg-amber-50 text-amber-800 dark:border-amber-900/40 dark:bg-amber-950/20 dark:text-amber-200\",\n danger: \"border-rose-200 bg-rose-50 text-rose-800 dark:border-rose-900/40 dark:bg-rose-950/20 dark:text-rose-200\"\n };\n return (\n <div className={`rounded-xl border p-4 ${toneClasses[tone] ?? toneClasses.neutral}`}>\n {title && <div className=\"mb-1 text-sm font-semibold\">{title}</div>}\n <div className=\"text-sm\">{message}</div>\n </div>\n );\n },\n\n Divider() {\n return <div className=\"h-px bg-slate-200 dark:bg-slate-800\" />;\n },\n\n Spacer({ size = \"md\" }) {\n const heights = { sm: \"h-2\", md: \"h-4\", lg: \"h-6\" };\n return <div className={heights[size] ?? heights.md} />;\n }\n};\n\nlet _registry = { ...BUILTIN_COMPONENTS };\n\nexport function getComponentRegistry() {\n return _registry;\n}\n\nexport function registerComponent(type, Component) {\n _registry = { ..._registry, [type]: Component };\n}\n\nexport function registerComponents(map) {\n _registry = { ..._registry, ...map };\n}\n\nexport function renderSchemaComponent(component, index) {\n const registry = getComponentRegistry();\n const Component = registry[component.type];\n if (!Component) {\n return (\n <div key={index} className=\"rounded-lg border border-dashed border-slate-300 p-3 text-xs text-slate-500 dark:border-slate-700\">\n Unknown component: {component.type}\n </div>\n );\n }\n return <Component key={component.id ?? index} {...(component.props ?? {})} />;\n}\n\nexport function renderSchema(components = []) {\n return components.map((c, i) => renderSchemaComponent(c, i));\n}\n\nexport default BUILTIN_COMPONENTS;\n"],"names":["BUILTIN_COMPONENTS","summary","title","jsxs","jsx","metrics","collapsible","initialCollapsed","collapsed","setCollapsed","React","items","m","onItemClick","expanded","setExpanded","item","idx","UIChip","action","i","subtitle","columns","data","rows","searchable","sortable","paginated","pageSize","tableData","cols","TableCard","chartType","height","series","_","ChartCard","D3Chart","svg","d","dims","opts","D3ChartTemplates","label","value","trend","change","changeType","color","icon","description","MetricCard","status","layout","showProgress","showTimestamp","StatusCard","actions","onAction","UIButton","message","tone","toneClasses","size","heights","_registry","getComponentRegistry","renderSchemaComponent","component","index","Component"],"mappings":"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"}
|