spine-framework 0.3.144 → 0.4.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/.env.example +76 -0
- package/.framework/.spine-manifest.json +19 -0
- package/.framework/cli/commands/agents.ts +61 -33
- package/.framework/cli/commands/auth.ts +60 -28
- package/.framework/cli/commands/create-app.ts +212 -80
- package/.framework/cli/commands/dev.ts +184 -68
- package/.framework/cli/commands/doctor.ts +324 -152
- package/.framework/cli/commands/generate.ts +119 -68
- package/.framework/cli/commands/init.ts +141 -242
- package/.framework/cli/commands/install-app.ts +1336 -314
- package/.framework/cli/commands/items.ts +31 -29
- package/.framework/cli/commands/migrate.ts +299 -156
- package/.framework/cli/commands/migrations.ts +62 -30
- package/.framework/cli/commands/pipelines.ts +31 -29
- package/.framework/cli/commands/status.ts +105 -45
- package/.framework/cli/commands/system.ts +47 -42
- package/.framework/cli/commands/test.ts +161 -102
- package/.framework/cli/commands/upgrade.ts +260 -0
- package/.framework/cli/commands/validate-app.ts +517 -161
- package/.framework/cli/context.ts +117 -85
- package/.framework/cli/env-loader.ts +74 -43
- package/.framework/cli/index.ts +70 -46
- package/.framework/cli/lib/project-files.ts +404 -0
- package/.framework/docs/guides/testing-guide.md +1 -1
- package/.framework/docs/runtime-types.md +72 -72
- package/.framework/functions/_shared/access.ts +84 -0
- package/.framework/functions/_shared/agent-runner.ts +5051 -1026
- package/.framework/functions/_shared/app-manifest.ts +214 -94
- package/.framework/functions/_shared/ast.ts +214 -0
- package/.framework/functions/_shared/audit.ts +91 -55
- package/.framework/functions/_shared/cil.ts +368 -127
- package/.framework/functions/_shared/db.ts +337 -68
- package/.framework/functions/_shared/funnel.ts +228 -0
- package/.framework/functions/_shared/geo.ts +105 -0
- package/.framework/functions/_shared/hash-api-key.ts +94 -17
- package/.framework/functions/_shared/index.ts +22 -224
- package/.framework/functions/_shared/kb.ts +832 -58
- package/.framework/functions/_shared/llm.ts +118 -18
- package/.framework/functions/_shared/logging.ts +317 -19
- package/.framework/functions/_shared/middleware.ts +701 -131
- package/.framework/functions/_shared/notify.ts +70 -0
- package/.framework/functions/_shared/outcomes.ts +34 -19
- package/.framework/functions/_shared/permissions.ts +501 -315
- package/.framework/functions/_shared/pipeline-runner.ts +704 -155
- package/.framework/functions/_shared/principal.ts +436 -263
- package/.framework/functions/_shared/rate-limit.ts +233 -0
- package/.framework/functions/_shared/resolve-credentials.ts +86 -19
- package/.framework/functions/_shared/resolve-ids.ts +203 -139
- package/.framework/functions/_shared/retry-deliveries.ts +51 -16
- package/.framework/functions/_shared/schema-utils.ts +602 -521
- package/.framework/functions/_shared/security.ts +345 -0
- package/.framework/functions/_shared/testing.ts +197 -172
- package/.framework/functions/_shared/tracing.ts +351 -21
- package/.framework/functions/_shared/trigger-engine.ts +425 -136
- package/.framework/functions/_shared/webhook-registration.ts +71 -70
- package/.framework/functions/_shared/webhook-registry.ts +126 -83
- package/.framework/functions/account-nodes.ts +30 -30
- package/.framework/functions/adapters/generic-webhook-inbound.ts +49 -16
- package/.framework/functions/adapters/generic-webhook-outbound.ts +17 -17
- package/.framework/functions/adapters/openai-outbound.ts +15 -16
- package/.framework/functions/admin-data.ts +596 -173
- package/.framework/functions/admin-funnel.ts +64 -60
- package/.framework/functions/admin-install-funnel.ts +84 -66
- package/.framework/functions/admin-signals.ts +69 -51
- package/.framework/functions/ai-agents.ts +431 -106
- package/.framework/functions/ai-interactions.ts +186 -112
- package/.framework/functions/api-keys.ts +107 -107
- package/.framework/functions/apps.ts +154 -136
- package/.framework/functions/auth.ts +83 -65
- package/.framework/functions/cil-agent-ingest.ts +189 -232
- package/.framework/functions/cil-agent.ts +433 -177
- package/.framework/functions/cil-callmap.ts +642 -430
- package/.framework/functions/cil-config.ts +139 -135
- package/.framework/functions/cil-context.ts +214 -127
- package/.framework/functions/cil-doc.ts +587 -458
- package/.framework/functions/cil-embeddings.ts +453 -364
- package/.framework/functions/cil-graph.ts +427 -142
- package/.framework/functions/cil-ingest.ts +1418 -1154
- package/.framework/functions/cil-pipeline.ts +276 -21
- package/.framework/functions/cil-project.ts +659 -132
- package/.framework/functions/cil-validate.ts +198 -164
- package/.framework/functions/debug-auth.ts +57 -55
- package/.framework/functions/deliveries.ts +80 -21
- package/.framework/functions/embeddings.ts +1023 -318
- package/.framework/functions/eval-harness.ts +146 -108
- package/.framework/functions/integration-outbound.ts +205 -75
- package/.framework/functions/integration-routes.ts +128 -23
- package/.framework/functions/integrations.ts +125 -100
- package/.framework/functions/invites.ts +1095 -460
- package/.framework/functions/item-progress.ts +158 -102
- package/.framework/functions/kb.ts +34 -10
- package/.framework/functions/logs.ts +133 -133
- package/.framework/functions/observability.ts +152 -122
- package/.framework/functions/pipeline-executions.ts +147 -132
- package/.framework/functions/pipelines.ts +134 -119
- package/.framework/functions/prompt-configs.ts +96 -80
- package/.framework/functions/roles.ts +112 -82
- package/.framework/functions/security.ts +450 -0
- package/.framework/functions/system-cron.ts +117 -80
- package/.framework/functions/system.ts +158 -98
- package/.framework/functions/tests.ts +29 -29
- package/.framework/functions/timers.ts +94 -95
- package/.framework/functions/trigger-scheduler.ts +10 -0
- package/.framework/functions/triggers.ts +179 -149
- package/.framework/functions/types.ts +137 -125
- package/.framework/mcp/index.ts +133 -0
- package/.framework/mcp/load-env.ts +60 -0
- package/.framework/mcp/shared/app-manifest.ts +275 -0
- package/.framework/mcp/shared/db.ts +477 -0
- package/.framework/mcp/shared/kb.ts +118 -0
- package/.framework/mcp/tools/architect.ts +431 -0
- package/.framework/mcp/tools/cil/context.ts +345 -0
- package/.framework/mcp/tools/cil/graph.ts +242 -0
- package/.framework/mcp/tools/cil/ingest.ts +1217 -0
- package/.framework/mcp/tools/cil/pipeline-orchestrator.ts +693 -0
- package/.framework/mcp/tools/cil/pipeline.ts +767 -0
- package/.framework/mcp/tools/cil/project.ts +791 -0
- package/.framework/mcp/tools/cil/retrieval.ts +336 -0
- package/.framework/mcp/tools/cil/search-core.ts +454 -0
- package/.framework/mcp/tools/cil/search.ts +97 -0
- package/.framework/mcp/tools/cil/suggest.ts +186 -0
- package/.framework/mcp/tools/cil/validate.ts +1369 -0
- package/.framework/mcp/tools/kb/delete.ts +139 -0
- package/.framework/mcp/tools/kb/index.ts +52 -0
- package/.framework/mcp/tools/kb/ingest.ts +84 -0
- package/.framework/mcp/tools/kb/list-types.ts +102 -0
- package/.framework/mcp/tools/kb/publish.ts +100 -0
- package/.framework/mcp/tools/kb/reindex.ts +86 -0
- package/.framework/mcp/tools/kb/revoke.ts +85 -0
- package/.framework/mcp/tools/kb/search.ts +101 -0
- package/.framework/mcp/tools/kb/upsert.ts +125 -0
- package/.framework/mcp/tools/observability.ts +510 -0
- package/.framework/migrations/001_core_schema.sql +15 -0
- package/.framework/migrations/002_core_rls_and_functions.sql +15 -0
- package/.framework/migrations/003_core_system_data.sql +16 -1
- package/.framework/migrations/004_core_rpc_and_broker.sql +17 -1
- package/.framework/migrations/005_core_observability.sql +17 -1
- package/.framework/migrations/006_security_hardening_rls.sql +15 -0
- package/.framework/migrations/007_kb_article_list.sql +17 -1
- package/.framework/migrations/008_items_target.sql +15 -0
- package/.framework/migrations/009_roles_slug_unique.sql +15 -0
- package/.framework/migrations/010_auth_user_trigger.sql +15 -0
- package/.framework/migrations/011_spine_system_account.sql +16 -0
- package/.framework/migrations/012_service_role_grants.sql +16 -0
- package/.framework/migrations/013_get_account_apps_role_filter.sql +15 -0
- package/.framework/migrations/014_apps_required_roles.sql +16 -0
- package/.framework/migrations/015_types_kind_slug_unique.sql +20 -0
- package/.framework/migrations/016_cil_types.sql +281 -0
- package/.framework/migrations/017_cil_stable_ids.sql +37 -0
- package/.framework/migrations/018_runtime_tables.sql +129 -0
- package/.framework/migrations/019_agent_prompt_columns.sql +56 -0
- package/.framework/migrations/020_schema_reconciliation.sql +67 -0
- package/.framework/migrations/021_kb_embedding_lifecycle.sql +31 -0
- package/.framework/migrations/032_cil_status_migration.sql +73 -0
- package/.framework/migrations/033_cil_versioning.sql +73 -0
- package/.framework/migrations/034_match_embeddings_knn.sql +115 -0
- package/.framework/migrations/035_rate_limits.sql +55 -0
- package/.framework/migrations/036_demo_record_flags.sql +72 -0
- package/.framework/migrations/037_kb_types_canonical.sql +244 -0
- package/.framework/migrations/038_drop_demo_record_flags.sql +38 -0
- package/.framework/migrations/042_registration_hierarchy.sql +309 -0
- package/.framework/migrations/043_policy_actor_cleanup.sql +39 -0
- package/.framework/migrations/044_match_embeddings_filtered_knn.sql +151 -0
- package/.framework/migrations/045_security_critical_rls.sql +139 -0
- package/.framework/migrations/046_security_missing_rls.sql +79 -0
- package/.framework/migrations/047_people_updated_by.sql +27 -0
- package/.framework/migrations/048_watcher_last_seen_at.sql +24 -0
- package/.framework/migrations/049_security_blocklist.sql +148 -0
- package/.framework/migrations/050_notifications.sql +49 -0
- package/.framework/migrations/051_message_agent_fields.sql +74 -0
- package/.framework/migrations/052_registration_security.sql +421 -0
- package/.framework/migrations/053_builtin_action_seeds.sql +66 -0
- package/.framework/migrations/054_kb_ingest_lease.sql +157 -0
- package/.framework/migrations/055_type_id_drift_reconciliation.sql +33 -0
- package/.framework/migrations/056_slug_column_reconciliation.sql +38 -0
- package/.framework/migrations/057_pipelines_slug_identity.sql +14 -0
- package/.framework/migrations/058_account_data_field_declarations.sql +53 -0
- package/.framework/migrations/059_registration_placement_fixes.sql +269 -0
- package/.framework/migrations/060_account_person_record_permissions.sql +38 -0
- package/.framework/migrations/061_fk_dedup.sql +32 -0
- package/.framework/public/spine-logo.svg +10 -3
- package/.framework/scripts/app-install-cli.ts +190 -93
- package/.framework/scripts/assemble-frontend.sh +127 -44
- package/.framework/scripts/assemble-functions.sh +128 -30
- package/.framework/scripts/boundary-check.sh +6 -2
- package/.framework/scripts/build-manifest.sh +24 -68
- package/.framework/scripts/check-core-integrity.sh +15 -76
- package/.framework/scripts/checksum-manifest.mts +343 -0
- package/.framework/scripts/cil-migrate-markers.ts +403 -0
- package/.framework/scripts/fix-cil-markers.mjs +176 -0
- package/.framework/scripts/verify-integrity.sh +21 -57
- package/.framework/scripts/verify-manifest.mts +305 -0
- package/.framework/seeds/types/funnel_signal_use.json +74 -21
- package/.framework/seeds/types/spine_instance.json +73 -21
- package/.framework/src/App.tsx +118 -72
- package/.framework/src/apps/admin/index.tsx +855 -58
- package/.framework/src/components/AppWrapper.tsx +43 -45
- package/.framework/src/components/CustomAppLoader.tsx +160 -116
- package/.framework/src/components/admin/AdminListPage.tsx +46 -44
- package/.framework/src/components/admin/AdminSidebar.tsx +57 -47
- package/.framework/src/components/admin/AdminStatsCard.tsx +46 -44
- package/.framework/src/components/admin/PageInstructions.tsx +98 -2
- package/.framework/src/components/admin/SortableTableHeader.tsx +44 -45
- package/.framework/src/components/app-shell/GenericAppShell.tsx +64 -65
- package/.framework/src/components/app-shell/GenericDetailPage.tsx +44 -47
- package/.framework/src/components/app-shell/GenericListPage.tsx +45 -49
- package/.framework/src/components/app-sidebar.tsx +42 -45
- package/.framework/src/components/auth/ProtectedRoute.tsx +48 -41
- package/.framework/src/components/auth/TurnstileWidget.tsx +27 -0
- package/.framework/src/components/kb/KBArticleEditor.tsx +231 -22
- package/.framework/src/components/kb/KBArticleList.tsx +251 -10
- package/.framework/src/components/layout/AppShell.tsx +51 -45
- package/.framework/src/components/layout/Header.tsx +42 -43
- package/.framework/src/components/layout/Layout.tsx +46 -46
- package/.framework/src/components/layout/Sidebar.tsx +196 -96
- package/.framework/src/components/runtime/DataDetailHeader.tsx +55 -30
- package/.framework/src/components/runtime/DataDetailPage.tsx +31 -269
- package/.framework/src/components/runtime/DataFilters.tsx +49 -74
- package/.framework/src/components/runtime/DataHeader.tsx +53 -32
- package/.framework/src/components/runtime/DataListPage.tsx +51 -155
- package/.framework/src/components/runtime/DataStats.tsx +66 -44
- package/.framework/src/components/runtime/DataTable.tsx +49 -149
- package/.framework/src/components/runtime/SchemaDetailForm.tsx +45 -75
- package/.framework/src/components/runtime/index.ts +119 -16
- package/.framework/src/components/search-form.tsx +46 -29
- package/.framework/src/components/shared/AgentView.tsx +65 -48
- package/.framework/src/components/shared/FieldRenderer.tsx +144 -50
- package/.framework/src/components/shared/InviteManager.tsx +207 -97
- package/.framework/src/components/shared/MemberList.tsx +97 -0
- package/.framework/src/components/shared/SchemaFields.tsx +107 -86
- package/.framework/src/components/ui/DataTable.tsx +80 -68
- package/.framework/src/components/ui/Form.tsx +157 -146
- package/.framework/src/components/ui/ItemCard.tsx +74 -67
- package/.framework/src/components/ui/ItemListView.tsx +73 -68
- package/.framework/src/components/ui/LoadingSpinner.tsx +43 -48
- package/.framework/src/components/ui/Modal.tsx +78 -68
- package/.framework/src/components/ui/RichTextEditor.tsx +89 -69
- package/.framework/src/components/ui/accordion.tsx +85 -86
- package/.framework/src/components/ui/alert-dialog.tsx +197 -184
- package/.framework/src/components/ui/alert.tsx +105 -94
- package/.framework/src/components/ui/aspect-ratio.tsx +57 -43
- package/.framework/src/components/ui/avatar.tsx +122 -107
- package/.framework/src/components/ui/badge.tsx +60 -55
- package/.framework/src/components/ui/breadcrumb.tsx +127 -128
- package/.framework/src/components/ui/button-group.tsx +86 -72
- package/.framework/src/components/ui/button.tsx +71 -50
- package/.framework/src/components/ui/calendar.tsx +72 -57
- package/.framework/src/components/ui/card.tsx +136 -129
- package/.framework/src/components/ui/carousel.tsx +226 -107
- package/.framework/src/components/ui/chart.tsx +252 -147
- package/.framework/src/components/ui/checkbox.tsx +43 -44
- package/.framework/src/components/ui/collapsible.tsx +86 -71
- package/.framework/src/components/ui/combobox.tsx +282 -249
- package/.framework/src/components/ui/command.tsx +158 -146
- package/.framework/src/components/ui/context-menu.tsx +239 -240
- package/.framework/src/components/ui/dialog.tsx +174 -157
- package/.framework/src/components/ui/direction.tsx +72 -56
- package/.framework/src/components/ui/drawer.tsx +168 -169
- package/.framework/src/components/ui/dropdown-menu.tsx +254 -223
- package/.framework/src/components/ui/empty.tsx +131 -120
- package/.framework/src/components/ui/field.tsx +205 -173
- package/.framework/src/components/ui/hover-card.tsx +71 -72
- package/.framework/src/components/ui/input-group.tsx +148 -133
- package/.framework/src/components/ui/input-otp.tsx +99 -86
- package/.framework/src/components/ui/input.tsx +43 -41
- package/.framework/src/components/ui/item.tsx +207 -185
- package/.framework/src/components/ui/kbd.tsx +57 -56
- package/.framework/src/components/ui/label.tsx +45 -41
- package/.framework/src/components/ui/menubar.tsx +268 -236
- package/.framework/src/components/ui/native-select.tsx +85 -86
- package/.framework/src/components/ui/navigation-menu.tsx +166 -156
- package/.framework/src/components/ui/pagination.tsx +131 -141
- package/.framework/src/components/ui/popover.tsx +125 -128
- package/.framework/src/components/ui/progress.tsx +47 -44
- package/.framework/src/components/ui/radio-group.tsx +60 -55
- package/.framework/src/components/ui/resizable.tsx +85 -72
- package/.framework/src/components/ui/scroll-area.tsx +57 -58
- package/.framework/src/components/ui/select.tsx +182 -169
- package/.framework/src/components/ui/separator.tsx +42 -43
- package/.framework/src/components/ui/sheet.tsx +170 -159
- package/.framework/src/components/ui/sidebar.tsx +395 -398
- package/.framework/src/components/ui/skeleton.tsx +42 -43
- package/.framework/src/components/ui/slider.tsx +61 -44
- package/.framework/src/components/ui/sonner.tsx +44 -44
- package/.framework/src/components/ui/spinner.tsx +47 -42
- package/.framework/src/components/ui/switch.tsx +56 -42
- package/.framework/src/components/ui/table-primitives.tsx +272 -132
- package/.framework/src/components/ui/table.tsx +140 -142
- package/.framework/src/components/ui/tabs.tsx +110 -93
- package/.framework/src/components/ui/textarea.tsx +43 -44
- package/.framework/src/components/ui/toggle-group.tsx +87 -71
- package/.framework/src/components/ui/toggle.tsx +56 -56
- package/.framework/src/components/ui/tooltip.tsx +99 -85
- package/.framework/src/contexts/AppContext.tsx +166 -114
- package/.framework/src/contexts/AuthContext.tsx +232 -137
- package/.framework/src/hooks/use-mobile.ts +43 -44
- package/.framework/src/hooks/useApi.ts +185 -172
- package/.framework/src/hooks/useAppPath.ts +31 -29
- package/.framework/src/hooks/useApps.ts +77 -42
- package/.framework/src/hooks/useEntityList.ts +66 -29
- package/.framework/src/hooks/useEntityRecord.ts +76 -32
- package/.framework/src/hooks/useForm.ts +62 -30
- package/.framework/src/hooks/useListSchema.ts +60 -43
- package/.framework/src/hooks/useSchemaRecord.ts +115 -95
- package/.framework/src/lib/api.ts +258 -134
- package/.framework/src/lib/registration.ts +181 -0
- package/.framework/src/lib/supabase.ts +118 -81
- package/.framework/src/lib/utils.ts +266 -266
- package/.framework/src/main.tsx +43 -44
- package/.framework/src/pages/DashboardPage.tsx +44 -43
- package/.framework/src/pages/NoAppPage.tsx +50 -0
- package/.framework/src/pages/NotFoundPage.tsx +32 -29
- package/.framework/src/pages/SetupPage.tsx +34 -33
- package/.framework/src/pages/admin/AIAgentDetailPage.tsx +69 -58
- package/.framework/src/pages/admin/AIAgentsPage.tsx +43 -40
- package/.framework/src/pages/admin/APIKeyDetailPage.tsx +63 -55
- package/.framework/src/pages/admin/APIKeysPage.tsx +44 -42
- package/.framework/src/pages/admin/AlertsConfigPage.tsx +117 -94
- package/.framework/src/pages/admin/AppDetailPage.tsx +48 -42
- package/.framework/src/pages/admin/AppsPage.tsx +45 -42
- package/.framework/src/pages/admin/DeliveriesPage.tsx +49 -17
- package/.framework/src/pages/admin/DesignedPage.tsx +31 -30
- package/.framework/src/pages/admin/EmbeddingDetailPage.tsx +58 -0
- package/.framework/src/pages/admin/EmbeddingsPage.tsx +49 -0
- package/.framework/src/pages/admin/ExtendedShadcnTestPage.tsx +31 -29
- package/.framework/src/pages/admin/IncrementalShadcnTestPage.tsx +46 -29
- package/.framework/src/pages/admin/IntegratedDashboard.tsx +32 -29
- package/.framework/src/pages/admin/IntegrationDetailPage.tsx +68 -55
- package/.framework/src/pages/admin/IntegrationsPage.tsx +45 -42
- package/.framework/src/pages/admin/InvitesPage.tsx +60 -44
- package/.framework/src/pages/admin/LogsPage.tsx +87 -137
- package/.framework/src/pages/admin/MinimalShadcnTestPage.tsx +31 -29
- package/.framework/src/pages/admin/ObservabilityDashboard.tsx +150 -89
- package/.framework/src/pages/admin/PipelineDetailPage.tsx +77 -104
- package/.framework/src/pages/admin/PipelineExecutionsPage.tsx +44 -43
- package/.framework/src/pages/admin/PipelinesPage.tsx +59 -145
- package/.framework/src/pages/admin/PromptConfigDetailPage.tsx +53 -42
- package/.framework/src/pages/admin/PromptConfigsPage.tsx +47 -117
- package/.framework/src/pages/admin/ProperlyDesignedPage.tsx +31 -44
- package/.framework/src/pages/admin/RoleDetailPage.tsx +49 -92
- package/.framework/src/pages/admin/RolesPage.tsx +47 -164
- package/.framework/src/pages/admin/SecurityPage.tsx +310 -0
- package/.framework/src/pages/admin/SelectTestPage.tsx +30 -32
- package/.framework/src/pages/admin/ShadcnTestPage.tsx +37 -44
- package/.framework/src/pages/admin/SimpleDashboard.tsx +32 -44
- package/.framework/src/pages/admin/TestRunDetailPage.tsx +97 -44
- package/.framework/src/pages/admin/TestingDashboard.tsx +126 -71
- package/.framework/src/pages/admin/TimerDetailPage.tsx +67 -55
- package/.framework/src/pages/admin/TimersPage.tsx +44 -42
- package/.framework/src/pages/admin/TriggerDetailPage.tsx +47 -42
- package/.framework/src/pages/admin/TriggersPage.tsx +58 -57
- package/.framework/src/pages/admin/TypeDetailPage.tsx +91 -55
- package/.framework/src/pages/admin/TypesPage.tsx +45 -42
- package/.framework/src/pages/admin/cil/CILAgentPage.tsx +258 -128
- package/.framework/src/pages/admin/cil/CILChunkDetailPage.tsx +127 -123
- package/.framework/src/pages/admin/cil/CILDashboardPage.tsx +308 -235
- package/.framework/src/pages/admin/cil/CILFileListPage.tsx +159 -110
- package/.framework/src/pages/admin/cil/CILFileSelectPage.tsx +432 -0
- package/.framework/src/pages/admin/cil/CILGraphPage.tsx +200 -178
- package/.framework/src/pages/admin/cil/CILIngestionPage.tsx +286 -239
- package/.framework/src/pages/admin/cil/CILProjectsPage.tsx +211 -90
- package/.framework/src/pages/admin/cil/CILSearchPage.tsx +156 -143
- package/.framework/src/pages/admin/cil/CILSuggestionsPage.tsx +379 -0
- package/.framework/src/pages/admin/cil/CILVersionsPage.tsx +337 -0
- package/.framework/src/pages/admin/cil/FlexiblePipelinePage.tsx +219 -214
- package/.framework/src/pages/admin/kb/KBAdminPage.tsx +64 -0
- package/.framework/src/pages/auth/AuthConfirmPage.tsx +135 -65
- package/.framework/src/pages/auth/ForgotPasswordPage.tsx +39 -31
- package/.framework/src/pages/auth/LoginPage.tsx +38 -32
- package/.framework/src/pages/auth/PendingApprovalPage.tsx +31 -28
- package/.framework/src/pages/auth/RegisterPage.tsx +429 -155
- package/.framework/src/pages/spine-framework/APIPage.tsx +33 -30
- package/.framework/src/pages/spine-framework/CLIPage.tsx +32 -30
- package/.framework/src/types/auth.ts +101 -93
- package/.framework/src/types/types.ts +283 -262
- package/.framework/templates/project.json +87 -0
- package/.framework/templates/spine.config.neutral.json +7 -0
- package/.framework/tests/api/api-surface.test.ts +381 -0
- package/.framework/tests/fixtures/seed.ts +427 -0
- package/.framework/tests/fixtures/teardown.ts +228 -0
- package/.framework/tests/reporter.ts +351 -0
- package/.framework/tests/setup.ts +135 -0
- package/.framework/tests/ui/ui-sweep.ts +278 -0
- package/.framework/tests/unit/admin-data-logger.test.ts +310 -0
- package/.framework/tests/unit/agent-runner.test.ts +2389 -0
- package/.framework/tests/unit/ai-interactions.test.ts +81 -0
- package/.framework/tests/unit/app-manifest.test.ts +359 -0
- package/.framework/tests/unit/assembly-scripts.test.ts +172 -0
- package/.framework/tests/unit/cil-determinism.test.ts +85 -0
- package/.framework/tests/unit/core-isolation.test.ts +153 -0
- package/.framework/tests/unit/funnel-signals.test.ts +135 -0
- package/.framework/tests/unit/install-app.test.ts +1759 -0
- package/.framework/tests/unit/invites-security.test.ts +572 -0
- package/.framework/tests/unit/kb-ingest-lease.test.ts +287 -0
- package/.framework/tests/unit/kb-search.test.ts +119 -0
- package/.framework/tests/unit/migrate.test.ts +509 -0
- package/.framework/tests/unit/notify.test.ts +136 -0
- package/.framework/tests/unit/permissions.test.ts +269 -0
- package/.framework/tests/unit/pipeline-runner.test.ts +755 -0
- package/.framework/tests/unit/principal-cache.test.ts +138 -0
- package/.framework/tests/unit/retrieval-golden.test.ts +520 -0
- package/.framework/tests/unit/runtime-isolation.test.ts +642 -0
- package/.framework/tests/unit/schema-utils.test.ts +225 -0
- package/.framework/tests/unit/trigger-engine.test.ts +513 -0
- package/.framework/tests/unit/validate-app.test.ts +527 -0
- package/README.md +34 -3
- package/bin/spine-framework.cjs +1 -0
- package/config/tailwind.config.cjs +7 -0
- package/config/tsconfig.functions.json +42 -0
- package/config/tsconfig.json +37 -9
- package/config/vite.config.ts +31 -2
- package/netlify.toml +31 -3
- package/package.json +46 -29
- package/scripts/assemble-frontend.sh +127 -44
- package/scripts/assemble-functions.sh +127 -29
- package/scripts/boundary-check.sh +6 -2
- package/scripts/build-manifest.sh +24 -68
- package/scripts/checksum-manifest.mts +345 -0
- package/scripts/dev-clean.sh +86 -0
- package/scripts/dev-netlify.sh +49 -0
- package/scripts/netlify-dev-wrapper.sh +2 -0
- package/scripts/verify-install.ts +358 -0
- package/scripts/verify-integrity.sh +21 -57
- package/scripts/verify-manifest.mts +305 -0
- package/templates/project/gitignore +45 -0
- package/{config → templates/project}/package-lock.json +22335 -9366
- package/vitest.config.ts +46 -0
- package/.framework/public/spine.config.json +0 -91
- package/config/deno.lock +0 -108
- package/config/tsconfig.node.tsbuildinfo +0 -1
- package/config/tsconfig.tsbuildinfo +0 -1
- package/config/vite.config.d.ts +0 -2
- package/custom/.devin/AGENT.md +0 -357
- package/custom/.devin/skills/install-app/SKILL.md +0 -39
- package/custom/.devin/skills/spine-workbench-discovery/SKILL.md +0 -39
- package/custom/.devin/skills/spine-workbench-idea/SKILL.md +0 -36
- package/custom/.devin/skills/spine-workbench-implement/SKILL.md +0 -46
- package/custom/.devin/skills/spine-workbench-initiative/SKILL.md +0 -28
- package/custom/.devin/skills/spine-workbench-plan/SKILL.md +0 -38
- package/custom/.devin/workflows/app-install.yaml +0 -83
- package/custom/README.md +0 -79
- package/docs/README.md +0 -15
- package/scripts/app-install-cli.ts +0 -286
- package/scripts/check-core-integrity.sh +0 -82
- package/scripts/ingest-chunks.cjs +0 -202
- package/scripts/kb-chunk-parser.cjs +0 -312
- package/scripts/kb-chunk-parser.ts +0 -330
- package/scripts/kb-ingest-docs.ts +0 -203
- package/scripts/load-test-app-install.ts +0 -484
- package/scripts/test-login.js +0 -33
- package/spine.config.json +0 -91
|
@@ -1,3 +1,14 @@
|
|
|
1
|
+
// CIL[BEGIN stable_id="~/.framework/src/components/ui/avatar.tsx:module_header:module_header" type="module_header" identity="module_header" parent="~/.framework/src/components/ui/avatar.tsx"]
|
|
2
|
+
// CIL[DOC-MACRO purpose="Import the dependencies and utilities used by the avatar component module"]
|
|
3
|
+
// CIL[DOC-RESPONSIBILITY responsibility="Provide React, Radix UI Avatar, and the cn utility to the Avatar subcomponents"]
|
|
4
|
+
// CIL[DOC-CONTEXT module=".framework/src/components/ui/avatar.tsx" layer="ui" related_files=".framework/src/lib/utils.ts"]
|
|
5
|
+
// CIL[DOC-CONTRACT inputs="none" outputs="React, AvatarPrimitive, and cn bindings available to the module" errors="none" side_effects="none"]
|
|
6
|
+
// CIL[DOC-MICRO logic_summary="Import third-party and local dependencies required by the avatar components" notable_decisions="Uses the @/lib/utils alias to import the cn class-name utility"]
|
|
7
|
+
// CIL[DOC-CONFIDENCE pass="second" score="0.9" flags="[]"]
|
|
8
|
+
// CIL[DOC-STABILITY stable]
|
|
9
|
+
// CIL[DOC-AUDIENCE audience="developers"]
|
|
10
|
+
|
|
11
|
+
|
|
1
12
|
|
|
2
13
|
|
|
3
14
|
|
|
@@ -6,40 +17,27 @@
|
|
|
6
17
|
|
|
7
18
|
|
|
8
19
|
|
|
9
|
-
// CIL[BEGIN chunk_id="avatar_module_header_1783883196" type="module_header" identity="module_header" parent="none"]
|
|
10
|
-
// CIL[DOC-MACRO purpose="Import React and Radix UI Avatar dependencies"]
|
|
11
|
-
// CIL[DOC-RESPONSIBILITY responsibility="Provide external dependencies for Avatar component system"]
|
|
12
|
-
// CIL[DOC-CONTEXT module="avatar" layer="ui" related_files="[\"custom/apps/portal/pages/ContentPage.tsx\",\"custom/apps/cortex/pages/operations/OperationsDashboard.tsx\",\".framework/src/components/ui/dialog.tsx\",\".framework/src/components/ui/table-primitives.tsx\",\"\\\"]"]
|
|
13
|
-
// CIL[DOC-CONTRACT inputs="none" outputs="React, AvatarPrimitive, cn" errors="none" side_effects="none"]
|
|
14
|
-
// CIL[DOC-MICRO logic_summary="Imports React, Radix UI Avatar primitives, and utility function" notable_decisions="[]"]
|
|
15
|
-
// CIL[DOC-CONFIDENCE pass="second" score="0.95" flags="none"]
|
|
16
|
-
// CIL[DOC-STABILITY stability="stable"]
|
|
17
|
-
// CIL[DOC-AUDIENCE audience="developer"]
|
|
18
|
-
// CIL[DOC-VECTOR type="context" content="Layer: ui. Direct callers: 0. Direct calls: 0. Related files: custom/apps/portal/pages/ContentPage.tsx, custom/apps/cortex/pages/operations/OperationsDashboard.tsx, .framework/src/components/ui/dialog.tsx, .framework/src/components/ui/table-primitives.tsx, \."]
|
|
19
|
-
// CIL[DOC-VECTOR type="blast_radius" content="Direct callers: 0. Total affected: 0."]
|
|
20
|
-
// CIL[DOC-VECTOR type="configuration" content="No configuration dependencies."]
|
|
21
|
-
// CIL[DOC-VECTOR type="constraint" content="No test paths identified."]
|
|
22
|
-
// CIL[DOC-VECTOR type="implementation_pattern" content="" status="pending_human_input"]
|
|
23
|
-
// CIL[DOC-VECTOR type="user_journey" content="" status="pending_human_input"]
|
|
24
20
|
import * as React from "react"
|
|
25
21
|
import { Avatar as AvatarPrimitive } from "radix-ui"
|
|
26
22
|
|
|
27
23
|
import { cn } from "@/lib/utils"
|
|
28
|
-
// CIL[
|
|
29
|
-
// CIL[
|
|
30
|
-
// CIL[DOC-
|
|
31
|
-
// CIL[DOC-
|
|
32
|
-
// CIL[DOC-CONTEXT module="avatar" layer="ui" related_files="[\"custom/apps/portal/pages/ContentPage.tsx\",\"custom/apps/cortex/pages/operations/OperationsDashboard.tsx\",\".framework/src/components/ui/dialog.tsx\",\".framework/src/pages/admin/RolesPage.tsx\",\".framework/functions/_shared/principal.ts\",\"\\\"]"]
|
|
33
|
-
// CIL[DOC-CONTRACT inputs="none" outputs="JSX AvatarPrimitive.Root" errors="none" side_effects="renders DOM"]
|
|
34
|
-
// CIL[DOC-MICRO logic_summary="Creates avatar root with size variants, overlay effects, and responsive styling" notable_decisions="[]"]
|
|
35
|
-
// CIL[DOC-CONFIDENCE pass="second" score="0.95" flags="none"]
|
|
36
|
-
// CIL[DOC-STABILITY stability="stable"]
|
|
37
|
-
// CIL[DOC-VECTOR type="context" content="Layer: ui. Direct callers: 0. Direct calls: 0. Related files: custom/apps/portal/pages/ContentPage.tsx, custom/apps/cortex/pages/operations/OperationsDashboard.tsx, .framework/src/components/ui/dialog.tsx, .framework/src/pages/admin/RolesPage.tsx, .framework/functions/_shared/principal.ts, \."]
|
|
38
|
-
// CIL[DOC-VECTOR type="blast_radius" content="Direct callers: 0. Total affected: 0."]
|
|
39
|
-
// CIL[DOC-VECTOR type="configuration" content="No configuration dependencies."]
|
|
40
|
-
// CIL[DOC-VECTOR type="constraint" content="No test paths identified."]
|
|
24
|
+
// CIL[DOC-VECTOR type="context" content="purpose='Import the dependencies and utilities used by the avatar component module'; No verified external callers; imports: .framework/src/lib/utils.ts"]
|
|
25
|
+
// CIL[DOC-VECTOR type="blast_radius" content="No direct caller data from CIL graph; local impact only"]
|
|
26
|
+
// CIL[DOC-VECTOR type="configuration" content="No environment or build configuration dependencies identified"]
|
|
27
|
+
// CIL[DOC-VECTOR type="constraint" content="Standard runtime; no special invariants documented"]
|
|
41
28
|
// CIL[DOC-VECTOR type="implementation_pattern" content="" status="pending_human_input"]
|
|
42
29
|
// CIL[DOC-VECTOR type="user_journey" content="" status="pending_human_input"]
|
|
30
|
+
// CIL[END stable_id="~/.framework/src/components/ui/avatar.tsx:module_header:module_header"]
|
|
31
|
+
|
|
32
|
+
// CIL[BEGIN stable_id="~/.framework/src/components/ui/avatar.tsx:Avatar:component" type="component" identity="Avatar" parent="~/.framework/src/components/ui/avatar.tsx"]
|
|
33
|
+
// CIL[DOC-MACRO purpose="Render an avatar root element with configurable size and Tailwind styling"]
|
|
34
|
+
// CIL[DOC-RESPONSIBILITY responsibility="Provide a styled AvatarPrimitive.Root wrapper that supports default, sm, and lg sizes"]
|
|
35
|
+
// CIL[DOC-CONTEXT module=".framework/src/components/ui/avatar.tsx" layer="ui" related_files=".framework/src/components/ui/avatar.tsx,.framework/src/lib/utils.ts"]
|
|
36
|
+
// CIL[DOC-CONTRACT inputs="className: string, size: default|sm|lg, and standard AvatarPrimitive.Root props" outputs="JSX element styled as a rounded avatar root with data attributes" errors="none" side_effects="none"]
|
|
37
|
+
// CIL[DOC-MICRO logic_summary="Wrap AvatarPrimitive.Root and apply size-aware Tailwind classes via cn, including a subtle border overlay" notable_decisions="Uses data-size attributes and dark mode mix-blend utilities for the border"]
|
|
38
|
+
// CIL[DOC-CONFIDENCE pass="second" score="0.85" flags="[]"]
|
|
39
|
+
// CIL[DOC-STABILITY stable]
|
|
40
|
+
// CIL[DOC-AUDIENCE audience="developers"]
|
|
43
41
|
function Avatar({
|
|
44
42
|
className,
|
|
45
43
|
size = "default",
|
|
@@ -59,21 +57,23 @@ function Avatar({
|
|
|
59
57
|
/>
|
|
60
58
|
)
|
|
61
59
|
}
|
|
62
|
-
// CIL[
|
|
63
|
-
// CIL[
|
|
64
|
-
// CIL[DOC-
|
|
65
|
-
// CIL[DOC-
|
|
66
|
-
// CIL[DOC-CONTEXT module="avatar" layer="ui" related_files="[\"custom/apps/portal/pages/ContentPage.tsx\",\".framework/src/pages/admin/IntegrationsPage.tsx\",\".framework/src/components/ui/dialog.tsx\",\".framework/migrations/015_simplify_apps_table.sql\",\".framework/src/components/ui/table-primitives.tsx\",\"\\\"]"]
|
|
67
|
-
// CIL[DOC-CONTRACT inputs="none" outputs="JSX AvatarPrimitive.Image" errors="none" side_effects="renders DOM"]
|
|
68
|
-
// CIL[DOC-MICRO logic_summary="Creates circular image with aspect-square, full size, rounded corners, object-cover" notable_decisions="[]"]
|
|
69
|
-
// CIL[DOC-CONFIDENCE pass="second" score="0.95" flags="none"]
|
|
70
|
-
// CIL[DOC-STABILITY stability="stable"]
|
|
71
|
-
// CIL[DOC-VECTOR type="context" content="Layer: ui. Direct callers: 0. Direct calls: 0. Related files: custom/apps/portal/pages/ContentPage.tsx, .framework/src/pages/admin/IntegrationsPage.tsx, .framework/src/components/ui/dialog.tsx, .framework/migrations/015_simplify_apps_table.sql, .framework/src/components/ui/table-primitives.tsx, \."]
|
|
72
|
-
// CIL[DOC-VECTOR type="blast_radius" content="Direct callers: 0. Total affected: 0."]
|
|
73
|
-
// CIL[DOC-VECTOR type="configuration" content="No configuration dependencies."]
|
|
74
|
-
// CIL[DOC-VECTOR type="constraint" content="No test paths identified."]
|
|
60
|
+
// CIL[DOC-VECTOR type="context" content="purpose='Render an avatar root element with configurable size and Tailwind styling'; No verified external callers; imports: .framework/src/lib/utils.ts"]
|
|
61
|
+
// CIL[DOC-VECTOR type="blast_radius" content="No direct caller data from CIL graph; local impact only"]
|
|
62
|
+
// CIL[DOC-VECTOR type="configuration" content="No environment or build configuration dependencies identified"]
|
|
63
|
+
// CIL[DOC-VECTOR type="constraint" content="Standard runtime; no special invariants documented"]
|
|
75
64
|
// CIL[DOC-VECTOR type="implementation_pattern" content="" status="pending_human_input"]
|
|
76
65
|
// CIL[DOC-VECTOR type="user_journey" content="" status="pending_human_input"]
|
|
66
|
+
// CIL[END stable_id="~/.framework/src/components/ui/avatar.tsx:Avatar:component"]
|
|
67
|
+
|
|
68
|
+
// CIL[BEGIN stable_id="~/.framework/src/components/ui/avatar.tsx:AvatarImage:component" type="component" identity="AvatarImage" parent="~/.framework/src/components/ui/avatar.tsx"]
|
|
69
|
+
// CIL[DOC-MACRO purpose="Render the image content of an avatar"]
|
|
70
|
+
// CIL[DOC-RESPONSIBILITY responsibility="Display an image inside an Avatar, cropped to a circle and covering the container"]
|
|
71
|
+
// CIL[DOC-CONTEXT module=".framework/src/components/ui/avatar.tsx" layer="ui" related_files=".framework/src/components/ui/avatar.tsx,.framework/src/lib/utils.ts"]
|
|
72
|
+
// CIL[DOC-CONTRACT inputs="className: string, props: spread of standard AvatarPrimitive.Image props" outputs="JSX image element with rounded cover styling" errors="none" side_effects="none"]
|
|
73
|
+
// CIL[DOC-MICRO logic_summary="Wrap AvatarPrimitive.Image and apply aspect-square, size-full, rounded-full, and object-cover classes" notable_decisions="Merges additional className with the cover classes"]
|
|
74
|
+
// CIL[DOC-CONFIDENCE pass="second" score="0.85" flags="[]"]
|
|
75
|
+
// CIL[DOC-STABILITY stable]
|
|
76
|
+
// CIL[DOC-AUDIENCE audience="developers"]
|
|
77
77
|
function AvatarImage({
|
|
78
78
|
className,
|
|
79
79
|
...props
|
|
@@ -89,21 +89,23 @@ function AvatarImage({
|
|
|
89
89
|
/>
|
|
90
90
|
)
|
|
91
91
|
}
|
|
92
|
-
// CIL[
|
|
93
|
-
// CIL[
|
|
94
|
-
// CIL[DOC-
|
|
95
|
-
// CIL[DOC-
|
|
96
|
-
// CIL[DOC-CONTEXT module="avatar" layer="ui" related_files="[\"custom/apps/portal/pages/ContentPage.tsx\",\".framework/src/components/ui/table-primitives.tsx\",\".framework/src/components/ui/dialog.tsx\",\"custom/apps/cortex/pages/operations/OperationsDashboard.tsx\",\"\\\"]"]
|
|
97
|
-
// CIL[DOC-CONTRACT inputs="none" outputs="JSX AvatarPrimitive.Fallback" errors="none" side_effects="renders DOM"]
|
|
98
|
-
// CIL[DOC-MICRO logic_summary="Creates circular fallback with centered content, muted styling, size-responsive text" notable_decisions="[]"]
|
|
99
|
-
// CIL[DOC-CONFIDENCE pass="second" score="0.95" flags="none"]
|
|
100
|
-
// CIL[DOC-STABILITY stability="stable"]
|
|
101
|
-
// CIL[DOC-VECTOR type="context" content="Layer: ui. Direct callers: 0. Direct calls: 0. Related files: custom/apps/portal/pages/ContentPage.tsx, .framework/src/components/ui/table-primitives.tsx, .framework/src/components/ui/dialog.tsx, custom/apps/cortex/pages/operations/OperationsDashboard.tsx, \."]
|
|
102
|
-
// CIL[DOC-VECTOR type="blast_radius" content="Direct callers: 0. Total affected: 0."]
|
|
103
|
-
// CIL[DOC-VECTOR type="configuration" content="No configuration dependencies."]
|
|
104
|
-
// CIL[DOC-VECTOR type="constraint" content="No test paths identified."]
|
|
92
|
+
// CIL[DOC-VECTOR type="context" content="purpose='Render the image content of an avatar'; No verified external callers; imports: .framework/src/lib/utils.ts"]
|
|
93
|
+
// CIL[DOC-VECTOR type="blast_radius" content="No direct caller data from CIL graph; local impact only"]
|
|
94
|
+
// CIL[DOC-VECTOR type="configuration" content="No environment or build configuration dependencies identified"]
|
|
95
|
+
// CIL[DOC-VECTOR type="constraint" content="Standard runtime; no special invariants documented"]
|
|
105
96
|
// CIL[DOC-VECTOR type="implementation_pattern" content="" status="pending_human_input"]
|
|
106
97
|
// CIL[DOC-VECTOR type="user_journey" content="" status="pending_human_input"]
|
|
98
|
+
// CIL[END stable_id="~/.framework/src/components/ui/avatar.tsx:AvatarImage:component"]
|
|
99
|
+
|
|
100
|
+
// CIL[BEGIN stable_id="~/.framework/src/components/ui/avatar.tsx:AvatarFallback:component" type="component" identity="AvatarFallback" parent="~/.framework/src/components/ui/avatar.tsx"]
|
|
101
|
+
// CIL[DOC-MACRO purpose="Render placeholder content when an avatar image cannot be displayed"]
|
|
102
|
+
// CIL[DOC-RESPONSIBILITY responsibility="Show initials or an icon inside an Avatar when no image is loaded"]
|
|
103
|
+
// CIL[DOC-CONTEXT module=".framework/src/components/ui/avatar.tsx" layer="ui" related_files=".framework/src/components/ui/avatar.tsx,.framework/src/lib/utils.ts"]
|
|
104
|
+
// CIL[DOC-CONTRACT inputs="className: string, props: spread of standard AvatarPrimitive.Fallback props" outputs="JSX fallback element with muted background and centered content" errors="none" side_effects="none"]
|
|
105
|
+
// CIL[DOC-MICRO logic_summary="Wrap AvatarPrimitive.Fallback and apply a centered, rounded, muted background with size-aware text" notable_decisions="Reduces text size for sm avatars via the group-data selector"]
|
|
106
|
+
// CIL[DOC-CONFIDENCE pass="second" score="0.85" flags="[]"]
|
|
107
|
+
// CIL[DOC-STABILITY stable]
|
|
108
|
+
// CIL[DOC-AUDIENCE audience="developers"]
|
|
107
109
|
function AvatarFallback({
|
|
108
110
|
className,
|
|
109
111
|
...props
|
|
@@ -119,21 +121,23 @@ function AvatarFallback({
|
|
|
119
121
|
/>
|
|
120
122
|
)
|
|
121
123
|
}
|
|
122
|
-
// CIL[
|
|
123
|
-
// CIL[
|
|
124
|
-
// CIL[DOC-
|
|
125
|
-
// CIL[DOC-
|
|
126
|
-
// CIL[DOC-CONTEXT module="avatar" layer="ui" related_files="[\".framework/src/pages/admin/RolesPage.tsx\",\"custom/apps/portal/pages/ContentPage.tsx\",\".framework/src/components/ui/table-primitives.tsx\",\".framework/src/pages/admin/TypeDetailPage.tsx\"]"]
|
|
127
|
-
// CIL[DOC-CONTRACT inputs="none" outputs="JSX span element" errors="none" side_effects="renders DOM"]
|
|
128
|
-
// CIL[DOC-MICRO logic_summary="Creates positioned badge with size variants, ring styling, icon handling" notable_decisions="[]"]
|
|
129
|
-
// CIL[DOC-CONFIDENCE pass="second" score="0.95" flags="none"]
|
|
130
|
-
// CIL[DOC-STABILITY stability="stable"]
|
|
131
|
-
// CIL[DOC-VECTOR type="context" content="Layer: ui. Direct callers: 0. Direct calls: 0. Related files: .framework/src/pages/admin/RolesPage.tsx, custom/apps/portal/pages/ContentPage.tsx, .framework/src/components/ui/table-primitives.tsx, .framework/src/pages/admin/TypeDetailPage.tsx."]
|
|
132
|
-
// CIL[DOC-VECTOR type="blast_radius" content="Direct callers: 0. Total affected: 0."]
|
|
133
|
-
// CIL[DOC-VECTOR type="configuration" content="No configuration dependencies."]
|
|
134
|
-
// CIL[DOC-VECTOR type="constraint" content="No test paths identified."]
|
|
124
|
+
// CIL[DOC-VECTOR type="context" content="purpose='Render placeholder content when an avatar image cannot be displayed'; No verified external callers; imports: .framework/src/lib/utils.ts"]
|
|
125
|
+
// CIL[DOC-VECTOR type="blast_radius" content="No direct caller data from CIL graph; local impact only"]
|
|
126
|
+
// CIL[DOC-VECTOR type="configuration" content="No environment or build configuration dependencies identified"]
|
|
127
|
+
// CIL[DOC-VECTOR type="constraint" content="Standard runtime; no special invariants documented"]
|
|
135
128
|
// CIL[DOC-VECTOR type="implementation_pattern" content="" status="pending_human_input"]
|
|
136
129
|
// CIL[DOC-VECTOR type="user_journey" content="" status="pending_human_input"]
|
|
130
|
+
// CIL[END stable_id="~/.framework/src/components/ui/avatar.tsx:AvatarFallback:component"]
|
|
131
|
+
|
|
132
|
+
// CIL[BEGIN stable_id="~/.framework/src/components/ui/avatar.tsx:AvatarBadge:component" type="component" identity="AvatarBadge" parent="~/.framework/src/components/ui/avatar.tsx"]
|
|
133
|
+
// CIL[DOC-MACRO purpose="Render a small status badge overlaid on an avatar"]
|
|
134
|
+
// CIL[DOC-RESPONSIBILITY responsibility="Display a positioned badge at the bottom-right of an Avatar, adapting to avatar size"]
|
|
135
|
+
// CIL[DOC-CONTEXT module=".framework/src/components/ui/avatar.tsx" layer="ui" related_files=".framework/src/components/ui/avatar.tsx,.framework/src/lib/utils.ts"]
|
|
136
|
+
// CIL[DOC-CONTRACT inputs="className: string, props: spread of standard span props" outputs="JSX span element positioned absolutely over the avatar" errors="none" side_effects="none"]
|
|
137
|
+
// CIL[DOC-MICRO logic_summary="Render an absolute positioned span with primary background and size-aware dimensions" notable_decisions="Uses group-data selectors for sm/default/lg sizing and hides nested svg on sm"]
|
|
138
|
+
// CIL[DOC-CONFIDENCE pass="second" score="0.85" flags="[]"]
|
|
139
|
+
// CIL[DOC-STABILITY stable]
|
|
140
|
+
// CIL[DOC-AUDIENCE audience="developers"]
|
|
137
141
|
function AvatarBadge({ className, ...props }: React.ComponentProps<"span">) {
|
|
138
142
|
return (
|
|
139
143
|
<span
|
|
@@ -149,21 +153,23 @@ function AvatarBadge({ className, ...props }: React.ComponentProps<"span">) {
|
|
|
149
153
|
/>
|
|
150
154
|
)
|
|
151
155
|
}
|
|
152
|
-
// CIL[
|
|
153
|
-
// CIL[
|
|
154
|
-
// CIL[DOC-
|
|
155
|
-
// CIL[DOC-
|
|
156
|
-
// CIL[DOC-CONTEXT module="avatar" layer="ui" related_files="[]"]
|
|
157
|
-
// CIL[DOC-CONTRACT inputs="none" outputs="JSX div element" errors="none" side_effects="renders DOM"]
|
|
158
|
-
// CIL[DOC-MICRO logic_summary="Creates flex container with negative space-x for overlapping avatars with ring styling" notable_decisions="[]"]
|
|
159
|
-
// CIL[DOC-CONFIDENCE pass="second" score="0.95" flags="none"]
|
|
160
|
-
// CIL[DOC-STABILITY stability="stable"]
|
|
161
|
-
// CIL[DOC-VECTOR type="context" content="Layer: ui. Direct callers: 0. Direct calls: 0. Related files: none."]
|
|
162
|
-
// CIL[DOC-VECTOR type="blast_radius" content="Direct callers: 0. Total affected: 0."]
|
|
163
|
-
// CIL[DOC-VECTOR type="configuration" content="No configuration dependencies."]
|
|
164
|
-
// CIL[DOC-VECTOR type="constraint" content="No test paths identified."]
|
|
156
|
+
// CIL[DOC-VECTOR type="context" content="purpose='Render a small status badge overlaid on an avatar'; No verified external callers; imports: .framework/src/lib/utils.ts"]
|
|
157
|
+
// CIL[DOC-VECTOR type="blast_radius" content="No direct caller data from CIL graph; local impact only"]
|
|
158
|
+
// CIL[DOC-VECTOR type="configuration" content="No environment or build configuration dependencies identified"]
|
|
159
|
+
// CIL[DOC-VECTOR type="constraint" content="Standard runtime; no special invariants documented"]
|
|
165
160
|
// CIL[DOC-VECTOR type="implementation_pattern" content="" status="pending_human_input"]
|
|
166
161
|
// CIL[DOC-VECTOR type="user_journey" content="" status="pending_human_input"]
|
|
162
|
+
// CIL[END stable_id="~/.framework/src/components/ui/avatar.tsx:AvatarBadge:component"]
|
|
163
|
+
|
|
164
|
+
// CIL[BEGIN stable_id="~/.framework/src/components/ui/avatar.tsx:AvatarGroup:component" type="component" identity="AvatarGroup" parent="~/.framework/src/components/ui/avatar.tsx"]
|
|
165
|
+
// CIL[DOC-MACRO purpose="Group multiple avatars into a compact, overlapping stack"]
|
|
166
|
+
// CIL[DOC-RESPONSIBILITY responsibility="Layout a horizontal row of Avatars with negative horizontal spacing"]
|
|
167
|
+
// CIL[DOC-CONTEXT module=".framework/src/components/ui/avatar.tsx" layer="ui" related_files=".framework/src/components/ui/avatar.tsx,.framework/src/lib/utils.ts"]
|
|
168
|
+
// CIL[DOC-CONTRACT inputs="className: string, props: spread of standard div props" outputs="JSX div element containing the overlapped avatar children" errors="none" side_effects="none"]
|
|
169
|
+
// CIL[DOC-MICRO logic_summary="Render a flex container that overlaps child avatars and adds a ring around each" notable_decisions="Uses Tailwind space-negative utilities and attribute selectors for child styling"]
|
|
170
|
+
// CIL[DOC-CONFIDENCE pass="second" score="0.85" flags="[]"]
|
|
171
|
+
// CIL[DOC-STABILITY stable]
|
|
172
|
+
// CIL[DOC-AUDIENCE audience="developers"]
|
|
167
173
|
function AvatarGroup({ className, ...props }: React.ComponentProps<"div">) {
|
|
168
174
|
return (
|
|
169
175
|
<div
|
|
@@ -176,21 +182,23 @@ function AvatarGroup({ className, ...props }: React.ComponentProps<"div">) {
|
|
|
176
182
|
/>
|
|
177
183
|
)
|
|
178
184
|
}
|
|
179
|
-
// CIL[
|
|
180
|
-
// CIL[
|
|
181
|
-
// CIL[DOC-
|
|
182
|
-
// CIL[DOC-
|
|
183
|
-
// CIL[DOC-CONTEXT module="avatar" layer="ui" related_files="[]"]
|
|
184
|
-
// CIL[DOC-CONTRACT inputs="none" outputs="JSX div element" errors="none" side_effects="renders DOM"]
|
|
185
|
-
// CIL[DOC-MICRO logic_summary="Creates count indicator with size responsiveness, group styling, icon handling" notable_decisions="[]"]
|
|
186
|
-
// CIL[DOC-CONFIDENCE pass="second" score="0.95" flags="none"]
|
|
187
|
-
// CIL[DOC-STABILITY stability="stable"]
|
|
188
|
-
// CIL[DOC-VECTOR type="context" content="Layer: ui. Direct callers: 0. Direct calls: 0. Related files: none."]
|
|
189
|
-
// CIL[DOC-VECTOR type="blast_radius" content="Direct callers: 0. Total affected: 0."]
|
|
190
|
-
// CIL[DOC-VECTOR type="configuration" content="No configuration dependencies."]
|
|
191
|
-
// CIL[DOC-VECTOR type="constraint" content="No test paths identified."]
|
|
185
|
+
// CIL[DOC-VECTOR type="context" content="purpose='Group multiple avatars into a compact, overlapping stack'; No verified external callers; imports: .framework/src/lib/utils.ts"]
|
|
186
|
+
// CIL[DOC-VECTOR type="blast_radius" content="No direct caller data from CIL graph; local impact only"]
|
|
187
|
+
// CIL[DOC-VECTOR type="configuration" content="No environment or build configuration dependencies identified"]
|
|
188
|
+
// CIL[DOC-VECTOR type="constraint" content="Standard runtime; no special invariants documented"]
|
|
192
189
|
// CIL[DOC-VECTOR type="implementation_pattern" content="" status="pending_human_input"]
|
|
193
190
|
// CIL[DOC-VECTOR type="user_journey" content="" status="pending_human_input"]
|
|
191
|
+
// CIL[END stable_id="~/.framework/src/components/ui/avatar.tsx:AvatarGroup:component"]
|
|
192
|
+
|
|
193
|
+
// CIL[BEGIN stable_id="~/.framework/src/components/ui/avatar.tsx:AvatarGroupCount:component" type="component" identity="AvatarGroupCount" parent="~/.framework/src/components/ui/avatar.tsx"]
|
|
194
|
+
// CIL[DOC-MACRO purpose="Render a circular counter for additional avatars in a group"]
|
|
195
|
+
// CIL[DOC-RESPONSIBILITY responsibility="Show the number of hidden or extra avatars beyond those visible in an AvatarGroup"]
|
|
196
|
+
// CIL[DOC-CONTEXT module=".framework/src/components/ui/avatar.tsx" layer="ui" related_files=".framework/src/components/ui/avatar.tsx,.framework/src/lib/utils.ts"]
|
|
197
|
+
// CIL[DOC-CONTRACT inputs="className: string, props: spread of standard div props" outputs="JSX div element styled as a count badge with size-aware scaling" errors="none" side_effects="none"]
|
|
198
|
+
// CIL[DOC-MICRO logic_summary="Render a centered count element with muted background and group-based size scaling" notable_decisions="Scales size and svg icon dimensions based on the parent AvatarGroup size"]
|
|
199
|
+
// CIL[DOC-CONFIDENCE pass="second" score="0.85" flags="[]"]
|
|
200
|
+
// CIL[DOC-STABILITY stable]
|
|
201
|
+
// CIL[DOC-AUDIENCE audience="developers"]
|
|
194
202
|
function AvatarGroupCount({
|
|
195
203
|
className,
|
|
196
204
|
...props
|
|
@@ -206,21 +214,22 @@ function AvatarGroupCount({
|
|
|
206
214
|
/>
|
|
207
215
|
)
|
|
208
216
|
}
|
|
209
|
-
// CIL[
|
|
210
|
-
// CIL[
|
|
211
|
-
// CIL[DOC-
|
|
212
|
-
// CIL[DOC-
|
|
213
|
-
// CIL[DOC-CONTEXT module="avatar" layer="ui" related_files="[]"]
|
|
214
|
-
// CIL[DOC-CONTRACT inputs="none" outputs="exported components" errors="none" side_effects="module exports"]
|
|
215
|
-
// CIL[DOC-MICRO logic_summary="Exports Avatar, AvatarImage, AvatarFallback, AvatarGroup, AvatarGroupCount, AvatarBadge" notable_decisions="[]"]
|
|
216
|
-
// CIL[DOC-CONFIDENCE pass="second" score="0.95" flags="none"]
|
|
217
|
-
// CIL[DOC-STABILITY stability="stable"]
|
|
218
|
-
// CIL[DOC-VECTOR type="context" content="Layer: ui. Direct callers: 0. Direct calls: 0. Related files: none."]
|
|
219
|
-
// CIL[DOC-VECTOR type="blast_radius" content="Direct callers: 0. Total affected: 0."]
|
|
220
|
-
// CIL[DOC-VECTOR type="configuration" content="No configuration dependencies."]
|
|
221
|
-
// CIL[DOC-VECTOR type="constraint" content="No test paths identified."]
|
|
217
|
+
// CIL[DOC-VECTOR type="context" content="purpose='Render a circular counter for additional avatars in a group'; No verified external callers; imports: .framework/src/lib/utils.ts"]
|
|
218
|
+
// CIL[DOC-VECTOR type="blast_radius" content="No direct caller data from CIL graph; local impact only"]
|
|
219
|
+
// CIL[DOC-VECTOR type="configuration" content="No environment or build configuration dependencies identified"]
|
|
220
|
+
// CIL[DOC-VECTOR type="constraint" content="Standard runtime; no special invariants documented"]
|
|
222
221
|
// CIL[DOC-VECTOR type="implementation_pattern" content="" status="pending_human_input"]
|
|
223
222
|
// CIL[DOC-VECTOR type="user_journey" content="" status="pending_human_input"]
|
|
223
|
+
// CIL[END stable_id="~/.framework/src/components/ui/avatar.tsx:AvatarGroupCount:component"]
|
|
224
|
+
// CIL[BEGIN stable_id="~/.framework/src/components/ui/avatar.tsx:exports:variable" type="variable" identity="exports" parent="~/.framework/src/components/ui/avatar.tsx"]
|
|
225
|
+
// CIL[DOC-MACRO purpose="Re-export the Avatar subcomponents and the Avatar root"]
|
|
226
|
+
// CIL[DOC-RESPONSIBILITY responsibility="Expose the public API of the avatar module for consumers"]
|
|
227
|
+
// CIL[DOC-CONTEXT module=".framework/src/components/ui/avatar.tsx" layer="ui" related_files=".framework/src/components/ui/avatar.tsx,.framework/src/lib/utils.ts"]
|
|
228
|
+
// CIL[DOC-CONTRACT inputs="none" outputs="Avatar, AvatarImage, AvatarFallback, AvatarGroup, AvatarGroupCount, and AvatarBadge named exports" errors="none" side_effects="none"]
|
|
229
|
+
// CIL[DOC-MICRO logic_summary="Named export list for the Avatar components" notable_decisions="Exports all subcomponents so consumers can compose them explicitly"]
|
|
230
|
+
// CIL[DOC-CONFIDENCE pass="second" score="0.9" flags="[]"]
|
|
231
|
+
// CIL[DOC-STABILITY stable]
|
|
232
|
+
// CIL[DOC-AUDIENCE audience="developers"]
|
|
224
233
|
export {
|
|
225
234
|
Avatar,
|
|
226
235
|
AvatarImage,
|
|
@@ -229,4 +238,10 @@ export {
|
|
|
229
238
|
AvatarGroupCount,
|
|
230
239
|
AvatarBadge,
|
|
231
240
|
}
|
|
232
|
-
// CIL[
|
|
241
|
+
// CIL[DOC-VECTOR type="context" content="purpose='Re-export the Avatar subcomponents and the Avatar root'; No verified external callers; imports: .framework/src/lib/utils.ts"]
|
|
242
|
+
// CIL[DOC-VECTOR type="blast_radius" content="No direct caller data from CIL graph; local impact only"]
|
|
243
|
+
// CIL[DOC-VECTOR type="configuration" content="No environment or build configuration dependencies identified"]
|
|
244
|
+
// CIL[DOC-VECTOR type="constraint" content="Standard runtime; no special invariants documented"]
|
|
245
|
+
// CIL[DOC-VECTOR type="implementation_pattern" content="" status="pending_human_input"]
|
|
246
|
+
// CIL[DOC-VECTOR type="user_journey" content="" status="pending_human_input"]
|
|
247
|
+
// CIL[END stable_id="~/.framework/src/components/ui/avatar.tsx:exports:variable"]
|
|
@@ -1,42 +1,38 @@
|
|
|
1
|
+
// CIL[BEGIN stable_id="~/.framework/src/components/ui/badge.tsx:module_header:module_header" type="module_header" identity="module_header" parent="~/.framework/src/components/ui/badge.tsx"]
|
|
2
|
+
// CIL[DOC-MACRO purpose="Import the dependencies and utilities used by the badge component module"]
|
|
3
|
+
// CIL[DOC-RESPONSIBILITY responsibility="Provide React, cva, radix Slot, and the cn utility to the Badge and badgeVariants definitions"]
|
|
4
|
+
// CIL[DOC-CONTEXT module=".framework/src/components/ui/badge.tsx" layer="ui" related_files=".framework/src/lib/utils.ts"]
|
|
5
|
+
// CIL[DOC-CONTRACT inputs="none" outputs="React, cva, Slot, and cn bindings available to the module" errors="none" side_effects="none"]
|
|
6
|
+
// CIL[DOC-MICRO logic_summary="Import third-party and local dependencies required by badge variants and the Badge component" notable_decisions="Uses the @/lib/utils alias to import the cn class-name utility"]
|
|
7
|
+
// CIL[DOC-CONFIDENCE pass="second" score="0.90" flags="none"]
|
|
8
|
+
// CIL[DOC-STABILITY stable]
|
|
9
|
+
// CIL[DOC-AUDIENCE audience="developers"]
|
|
10
|
+
|
|
1
11
|
|
|
2
12
|
|
|
3
13
|
|
|
4
14
|
|
|
5
|
-
// CIL[BEGIN chunk_id="badge_module_header_1783883196" type="module_header" identity="module_header" parent="none"]
|
|
6
|
-
// CIL[DOC-MACRO purpose="Import React, styling, and composition dependencies for Badge"]
|
|
7
|
-
// CIL[DOC-RESPONSIBILITY responsibility="Provide external dependencies for Badge UI component"]
|
|
8
|
-
// CIL[DOC-CONTEXT module="badge" layer="ui" related_files="[\"custom/apps/cortex/pages/operations/OperationsDashboard.tsx\",\".framework/src/pages/admin/RolesPage.tsx\",\"custom/apps/portal/pages/ContentPage.tsx\",\".framework/src/pages/admin/TypeDetailPage.tsx\",\".framework/functions/_shared/principal.ts\",\"\\\"]"]
|
|
9
|
-
// CIL[DOC-CONTRACT inputs="none" outputs="React, cva, VariantProps, Slot, cn" errors="none" side_effects="none"]
|
|
10
|
-
// CIL[DOC-MICRO logic_summary="Imports React, class-variance-authority, Radix Slot for composition, utility function" notable_decisions="[]"]
|
|
11
|
-
// CIL[DOC-CONFIDENCE pass="second" score="0.95" flags="none"]
|
|
12
|
-
// CIL[DOC-STABILITY stability="stable"]
|
|
13
|
-
// CIL[DOC-AUDIENCE audience="developer"]
|
|
14
|
-
// CIL[DOC-VECTOR type="context" content="Layer: ui. Direct callers: 0. Direct calls: 0. Related files: custom/apps/cortex/pages/operations/OperationsDashboard.tsx, .framework/src/pages/admin/RolesPage.tsx, custom/apps/portal/pages/ContentPage.tsx, .framework/src/pages/admin/TypeDetailPage.tsx, .framework/functions/_shared/principal.ts, \."]
|
|
15
|
-
// CIL[DOC-VECTOR type="blast_radius" content="Direct callers: 0. Total affected: 0."]
|
|
16
|
-
// CIL[DOC-VECTOR type="configuration" content="No configuration dependencies."]
|
|
17
|
-
// CIL[DOC-VECTOR type="constraint" content="No test paths identified."]
|
|
18
|
-
// CIL[DOC-VECTOR type="implementation_pattern" content="" status="pending_human_input"]
|
|
19
|
-
// CIL[DOC-VECTOR type="user_journey" content="" status="pending_human_input"]
|
|
20
15
|
import * as React from "react"
|
|
21
16
|
import { cva, type VariantProps } from "class-variance-authority"
|
|
22
17
|
import { Slot } from "radix-ui"
|
|
23
18
|
|
|
24
19
|
import { cn } from "@/lib/utils"
|
|
25
|
-
// CIL[
|
|
26
|
-
// CIL[
|
|
27
|
-
// CIL[DOC-
|
|
28
|
-
// CIL[DOC-
|
|
29
|
-
// CIL[DOC-CONTEXT module="badge" layer="ui" related_files="[\".framework/src/pages/admin/RolesPage.tsx\",\".framework/src/components/ui/dialog.tsx\",\".framework/src/components/ui/table-primitives.tsx\",\"custom/apps/portal/pages/ContentPage.tsx\",\"\\\"]"]
|
|
30
|
-
// CIL[DOC-CONTRACT inputs="none" outputs="badgeVariants function" errors="none" side_effects="none"]
|
|
31
|
-
// CIL[DOC-MICRO logic_summary="Creates CVA config with default, secondary, destructive, outline, ghost, link variants" notable_decisions="[]"]
|
|
32
|
-
// CIL[DOC-CONFIDENCE pass="second" score="0.95" flags="none"]
|
|
33
|
-
// CIL[DOC-STABILITY stability="stable"]
|
|
34
|
-
// CIL[DOC-VECTOR type="context" content="Layer: ui. Direct callers: 1. Direct calls: 0. Related files: .framework/src/pages/admin/RolesPage.tsx, .framework/src/components/ui/dialog.tsx, .framework/src/components/ui/table-primitives.tsx, custom/apps/portal/pages/ContentPage.tsx, \."]
|
|
35
|
-
// CIL[DOC-VECTOR type="blast_radius" content="Direct callers: 1. Total affected: 3."]
|
|
36
|
-
// CIL[DOC-VECTOR type="configuration" content="No configuration dependencies."]
|
|
37
|
-
// CIL[DOC-VECTOR type="constraint" content="No test paths identified."]
|
|
20
|
+
// CIL[DOC-VECTOR type="context" content="purpose='Import the dependencies and utilities used by the badge component module'; No verified external callers; imports: .framework/src/lib/utils.ts"]
|
|
21
|
+
// CIL[DOC-VECTOR type="blast_radius" content="No direct caller data from CIL graph; local impact only"]
|
|
22
|
+
// CIL[DOC-VECTOR type="configuration" content="No environment or build configuration dependencies identified"]
|
|
23
|
+
// CIL[DOC-VECTOR type="constraint" content="Standard runtime; no special invariants documented"]
|
|
38
24
|
// CIL[DOC-VECTOR type="implementation_pattern" content="" status="pending_human_input"]
|
|
39
25
|
// CIL[DOC-VECTOR type="user_journey" content="" status="pending_human_input"]
|
|
26
|
+
// CIL[END stable_id="~/.framework/src/components/ui/badge.tsx:module_header:module_header"]
|
|
27
|
+
// CIL[BEGIN stable_id="~/.framework/src/components/ui/badge.tsx:badgeVariants:constant" type="constant" identity="badgeVariants" parent="~/.framework/src/components/ui/badge.tsx"]
|
|
28
|
+
// CIL[DOC-MACRO purpose="Define the class-variance-authority configuration for badge styling"]
|
|
29
|
+
// CIL[DOC-RESPONSIBILITY responsibility="Provide a cva-based styling contract with named variants for the Badge component"]
|
|
30
|
+
// CIL[DOC-CONTEXT module=".framework/src/components/ui/badge.tsx" layer="ui" related_files=".framework/src/components/ui/badge.tsx,.framework/src/lib/utils.ts"]
|
|
31
|
+
// CIL[DOC-CONTRACT inputs="variant name string (default, secondary, destructive, outline, ghost, link)" outputs="string of Tailwind CSS classes for the selected badge variant" errors="none" side_effects="none"]
|
|
32
|
+
// CIL[DOC-MICRO logic_summary="Build a cva style function with base classes and variant-driven class mappings" notable_decisions="Keeps all Tailwind classes inline; supports aria-invalid and has-data icon selectors"]
|
|
33
|
+
// CIL[DOC-CONFIDENCE pass="second" score="0.90" flags="none"]
|
|
34
|
+
// CIL[DOC-STABILITY stable]
|
|
35
|
+
// CIL[DOC-AUDIENCE audience="developers"]
|
|
40
36
|
const badgeVariants = cva(
|
|
41
37
|
"group/badge inline-flex h-5 w-fit shrink-0 items-center justify-center gap-1 overflow-hidden rounded-full border border-transparent px-2 py-0.5 text-[0.625rem] font-medium whitespace-nowrap transition-all focus-visible:border-ring focus-visible:ring-[3px] focus-visible:ring-ring/50 has-data-[icon=inline-end]:pr-1.5 has-data-[icon=inline-start]:pl-1.5 aria-invalid:border-destructive aria-invalid:ring-destructive/20 dark:aria-invalid:ring-destructive/40 [&>svg]:pointer-events-none [&>svg]:size-2.5!",
|
|
42
38
|
{
|
|
@@ -59,21 +55,23 @@ const badgeVariants = cva(
|
|
|
59
55
|
},
|
|
60
56
|
}
|
|
61
57
|
)
|
|
62
|
-
// CIL[
|
|
63
|
-
// CIL[
|
|
64
|
-
// CIL[DOC-
|
|
65
|
-
// CIL[DOC-
|
|
66
|
-
// CIL[DOC-CONTEXT module="badge" layer="ui" related_files="[\".framework/src/pages/admin/RolesPage.tsx\",\"custom/apps/portal/pages/ContentPage.tsx\",\".framework/src/components/ui/dialog.tsx\",\".framework/src/components/ui/table-primitives.tsx\",\"\\\"]"]
|
|
67
|
-
// CIL[DOC-CONTRACT inputs="none" outputs="JSX element" errors="none" side_effects="renders DOM"]
|
|
68
|
-
// CIL[DOC-MICRO logic_summary="Creates badge with Radix Slot composition, applies variants, spreads props" notable_decisions="[]"]
|
|
69
|
-
// CIL[DOC-CONFIDENCE pass="second" score="0.95" flags="none"]
|
|
70
|
-
// CIL[DOC-STABILITY stability="stable"]
|
|
71
|
-
// CIL[DOC-VECTOR type="context" content="Layer: ui. Direct callers: 2. Direct calls: 0. Related files: .framework/src/pages/admin/RolesPage.tsx, custom/apps/portal/pages/ContentPage.tsx, .framework/src/components/ui/dialog.tsx, .framework/src/components/ui/table-primitives.tsx, \."]
|
|
72
|
-
// CIL[DOC-VECTOR type="blast_radius" content="Direct callers: 2. Total affected: 2."]
|
|
73
|
-
// CIL[DOC-VECTOR type="configuration" content="No configuration dependencies."]
|
|
74
|
-
// CIL[DOC-VECTOR type="constraint" content="No test paths identified."]
|
|
58
|
+
// CIL[DOC-VECTOR type="context" content="purpose='Define the class-variance-authority configuration for badge styling'; No verified external callers; imports: .framework/src/lib/utils.ts"]
|
|
59
|
+
// CIL[DOC-VECTOR type="blast_radius" content="No direct caller data from CIL graph; local impact only"]
|
|
60
|
+
// CIL[DOC-VECTOR type="configuration" content="No environment or build configuration dependencies identified"]
|
|
61
|
+
// CIL[DOC-VECTOR type="constraint" content="Standard runtime; no special invariants documented"]
|
|
75
62
|
// CIL[DOC-VECTOR type="implementation_pattern" content="" status="pending_human_input"]
|
|
76
63
|
// CIL[DOC-VECTOR type="user_journey" content="" status="pending_human_input"]
|
|
64
|
+
// CIL[END stable_id="~/.framework/src/components/ui/badge.tsx:badgeVariants:constant"]
|
|
65
|
+
|
|
66
|
+
// CIL[BEGIN stable_id="~/.framework/src/components/ui/badge.tsx:Badge:component" type="component" identity="Badge" parent="~/.framework/src/components/ui/badge.tsx"]
|
|
67
|
+
// CIL[DOC-MACRO purpose="Render a small status badge element with variant-based Tailwind styling"]
|
|
68
|
+
// CIL[DOC-RESPONSIBILITY responsibility="Render a span or polymorphic child element styled by the badgeVariants contract"]
|
|
69
|
+
// CIL[DOC-CONTEXT module=".framework/src/components/ui/badge.tsx" layer="ui" related_files=".framework/src/components/ui/badge.tsx,.framework/src/lib/utils.ts"]
|
|
70
|
+
// CIL[DOC-CONTRACT inputs="className: string, variant: cva variant name, asChild: boolean, VariantProps type from cva, plus standard span props" outputs="JSX element styled with the computed badge classes" errors="none" side_effects="none"]
|
|
71
|
+
// CIL[DOC-MICRO logic_summary="Select Slot.Root or span based on asChild, then render with merged classes and data attributes" notable_decisions="Defaults variant to default; merges additional className with the variant classes"]
|
|
72
|
+
// CIL[DOC-CONFIDENCE pass="second" score="0.90" flags="none"]
|
|
73
|
+
// CIL[DOC-STABILITY stable]
|
|
74
|
+
// CIL[DOC-AUDIENCE audience="developers"]
|
|
77
75
|
function Badge({
|
|
78
76
|
className,
|
|
79
77
|
variant = "default",
|
|
@@ -92,20 +90,27 @@ function Badge({
|
|
|
92
90
|
/>
|
|
93
91
|
)
|
|
94
92
|
}
|
|
95
|
-
// CIL[
|
|
96
|
-
// CIL[
|
|
97
|
-
// CIL[DOC-
|
|
98
|
-
// CIL[DOC-
|
|
99
|
-
// CIL[DOC-CONTEXT module="badge" layer="ui" related_files="[\"custom/apps/portal/pages/ContentPage.tsx\",\".framework/src/pages/admin/RolesPage.tsx\",\".framework/src/components/ui/dialog.tsx\",\".framework/src/components/ui/table-primitives.tsx\",\"\\\"]"]
|
|
100
|
-
// CIL[DOC-CONTRACT inputs="none" outputs="exported Badge, badgeVariants" errors="none" side_effects="module exports"]
|
|
101
|
-
// CIL[DOC-MICRO logic_summary="Exports Badge component and badgeVariants styling function" notable_decisions="[]"]
|
|
102
|
-
// CIL[DOC-CONFIDENCE pass="second" score="0.95" flags="none"]
|
|
103
|
-
// CIL[DOC-STABILITY stability="stable"]
|
|
104
|
-
// CIL[DOC-VECTOR type="context" content="Layer: ui. Direct callers: 0. Direct calls: 0. Related files: custom/apps/portal/pages/ContentPage.tsx, .framework/src/pages/admin/RolesPage.tsx, .framework/src/components/ui/dialog.tsx, .framework/src/components/ui/table-primitives.tsx, \."]
|
|
105
|
-
// CIL[DOC-VECTOR type="blast_radius" content="Direct callers: 0. Total affected: 0."]
|
|
106
|
-
// CIL[DOC-VECTOR type="configuration" content="No configuration dependencies."]
|
|
107
|
-
// CIL[DOC-VECTOR type="constraint" content="No test paths identified."]
|
|
93
|
+
// CIL[DOC-VECTOR type="context" content="purpose='Render a small status badge element with variant-based Tailwind styling'; No verified external callers; imports: .framework/src/lib/utils.ts"]
|
|
94
|
+
// CIL[DOC-VECTOR type="blast_radius" content="No direct caller data from CIL graph; local impact only"]
|
|
95
|
+
// CIL[DOC-VECTOR type="configuration" content="No environment or build configuration dependencies identified"]
|
|
96
|
+
// CIL[DOC-VECTOR type="constraint" content="Standard runtime; no special invariants documented"]
|
|
108
97
|
// CIL[DOC-VECTOR type="implementation_pattern" content="" status="pending_human_input"]
|
|
109
98
|
// CIL[DOC-VECTOR type="user_journey" content="" status="pending_human_input"]
|
|
99
|
+
// CIL[END stable_id="~/.framework/src/components/ui/badge.tsx:Badge:component"]
|
|
100
|
+
// CIL[BEGIN stable_id="~/.framework/src/components/ui/badge.tsx:exports:variable" type="variable" identity="exports" parent="~/.framework/src/components/ui/badge.tsx"]
|
|
101
|
+
// CIL[DOC-MACRO purpose="Re-export the Badge component and badgeVariants style utility"]
|
|
102
|
+
// CIL[DOC-RESPONSIBILITY responsibility="Expose the public API of the badge module for consumers"]
|
|
103
|
+
// CIL[DOC-CONTEXT module=".framework/src/components/ui/badge.tsx" layer="ui" related_files=".framework/src/components/ui/badge.tsx,.framework/src/lib/utils.ts"]
|
|
104
|
+
// CIL[DOC-CONTRACT inputs="none" outputs="Badge and badgeVariants named exports" errors="none" side_effects="none"]
|
|
105
|
+
// CIL[DOC-MICRO logic_summary="Named export list for the Badge component and badgeVariants constant" notable_decisions="Exports both component and styling contract so consumers can compose or extend variants"]
|
|
106
|
+
// CIL[DOC-CONFIDENCE pass="second" score="0.90" flags="none"]
|
|
107
|
+
// CIL[DOC-STABILITY stable]
|
|
108
|
+
// CIL[DOC-AUDIENCE audience="developers"]
|
|
110
109
|
export { Badge, badgeVariants }
|
|
111
|
-
// CIL[
|
|
110
|
+
// CIL[DOC-VECTOR type="context" content="purpose='Re-export the Badge component and badgeVariants style utility'; No verified external callers; imports: .framework/src/lib/utils.ts"]
|
|
111
|
+
// CIL[DOC-VECTOR type="blast_radius" content="No direct caller data from CIL graph; local impact only"]
|
|
112
|
+
// CIL[DOC-VECTOR type="configuration" content="No environment or build configuration dependencies identified"]
|
|
113
|
+
// CIL[DOC-VECTOR type="constraint" content="Standard runtime; no special invariants documented"]
|
|
114
|
+
// CIL[DOC-VECTOR type="implementation_pattern" content="" status="pending_human_input"]
|
|
115
|
+
// CIL[DOC-VECTOR type="user_journey" content="" status="pending_human_input"]
|
|
116
|
+
// CIL[END stable_id="~/.framework/src/components/ui/badge.tsx:exports:variable"]
|