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,47 +1,33 @@
|
|
|
1
|
-
|
|
2
|
-
|
|
3
|
-
|
|
4
|
-
|
|
5
|
-
|
|
6
|
-
|
|
7
|
-
|
|
8
|
-
|
|
9
|
-
|
|
10
|
-
// CIL[BEGIN chunk_id="breadcrumb_module_header_1783881474" type="module_header" identity="module_header" parent="none"]
|
|
11
|
-
// CIL[DOC-MACRO purpose="Breadcrumb navigation component library with Radix integration"]
|
|
12
|
-
// CIL[DOC-RESPONSIBILITY responsibility="Provide breadcrumb infrastructure and navigation utilities"]
|
|
13
|
-
// CIL[DOC-CONTEXT module="ui.breadcrumb" layer="component" related_files="[\".framework/src/components/layout/Sidebar.tsx\",\".framework/src/pages/admin/IntegrationsPage.tsx\",\".framework/src/components/ui/dialog.tsx\",\"custom/apps/portal/pages/ContentPage.tsx\",\".framework/src/pages/admin/RolesPage.tsx\",\"\\\"]"]
|
|
14
|
-
// CIL[DOC-CONTRACT inputs="none" outputs="React, Slot, utils, navigation icons" errors="none" side_effects="none"]
|
|
15
|
-
// CIL[DOC-MICRO logic_summary="Imports React, Radix Slot, utility functions, and navigation icons" notable_decisions="['radix-ui integration', 'lucide icon usage', 'navigation pattern']"]
|
|
16
|
-
// CIL[DOC-CONFIDENCE pass="second" score="0.95" flags="none"]
|
|
1
|
+
// CIL[BEGIN stable_id="~/.framework/src/components/ui/breadcrumb.tsx:module_header:module_header" type="module_header" identity="module_header" parent=""]
|
|
2
|
+
// CIL[DOC-MACRO purpose="Provides the set of breadcrumb UI primitives for navigation patterns."]
|
|
3
|
+
// CIL[DOC-RESPONSIBILITY responsibility="Imports required dependencies and exports the breadcrumb component set."]
|
|
4
|
+
// CIL[DOC-CONTEXT module="ui/breadcrumb" layer="components/ui" related_files=".framework/src/lib/utils.ts"]
|
|
5
|
+
// CIL[DOC-CONTRACT inputs="N/A" outputs="N/A" errors="N/A" side_effects="N/A"]
|
|
6
|
+
// CIL[DOC-MICRO logic_summary="Imports React, radix Slot, local utils, and Lucide icons." notable_decisions="[]"]
|
|
7
|
+
// CIL[DOC-CONFIDENCE pass="second" score="0.90" flags="none"]
|
|
17
8
|
// CIL[DOC-STABILITY stability="stable"]
|
|
18
|
-
// CIL[DOC-AUDIENCE audience="
|
|
19
|
-
// CIL[DOC-VECTOR type="context" content="Layer: component. Direct callers: 0. Direct calls: 0. Related files: .framework/src/components/layout/Sidebar.tsx, .framework/src/pages/admin/IntegrationsPage.tsx, .framework/src/components/ui/dialog.tsx, custom/apps/portal/pages/ContentPage.tsx, .framework/src/pages/admin/RolesPage.tsx, \."]
|
|
20
|
-
// CIL[DOC-VECTOR type="blast_radius" content="Direct callers: 0. Total affected: 0."]
|
|
21
|
-
// CIL[DOC-VECTOR type="configuration" content="No configuration dependencies."]
|
|
22
|
-
// CIL[DOC-VECTOR type="constraint" content="No test paths identified."]
|
|
23
|
-
// CIL[DOC-VECTOR type="implementation_pattern" content="" status="pending_human_input"]
|
|
24
|
-
// CIL[DOC-VECTOR type="user_journey" content="" status="pending_human_input"]
|
|
9
|
+
// CIL[DOC-AUDIENCE audience="frontend-developers, ui-consumers"]
|
|
25
10
|
import * as React from "react"
|
|
26
11
|
import { Slot } from "radix-ui"
|
|
27
12
|
|
|
28
13
|
import { cn } from "@/lib/utils"
|
|
29
14
|
import { ChevronRightIcon, MoreHorizontalIcon } from "lucide-react"
|
|
30
|
-
// CIL[
|
|
31
|
-
// CIL[
|
|
32
|
-
// CIL[DOC-
|
|
33
|
-
// CIL[DOC-
|
|
34
|
-
// CIL[DOC-CONTEXT module="ui.breadcrumb" layer="component" related_files="[\".framework/src/components/layout/Sidebar.tsx\",\".framework/functions/_shared/schema-utils.ts\",\".framework/src/components/ui/dialog.tsx\",\".framework/functions/_shared/principal.ts\",\".framework/src/pages/admin/TypeDetailPage.tsx\",\"\\\"]"]
|
|
35
|
-
// CIL[DOC-CONTRACT inputs="none" outputs="semantic nav element" errors="none" side_effects="renders DOM"]
|
|
36
|
-
// CIL[DOC-MICRO logic_summary="Wraps nav element with proper ARIA label and slot attribution" notable_decisions="['semantic HTML', 'accessibility attributes', 'slot pattern']"]
|
|
37
|
-
// CIL[DOC-CONFIDENCE pass="second" score="0.95" flags="none"]
|
|
38
|
-
// CIL[DOC-STABILITY stability="stable"]
|
|
39
|
-
// CIL[DOC-VECTOR type="context" content="Layer: component. Direct callers: 0. Direct calls: 0. Related files: .framework/src/components/layout/Sidebar.tsx, .framework/functions/_shared/schema-utils.ts, .framework/src/components/ui/dialog.tsx, .framework/functions/_shared/principal.ts, .framework/src/pages/admin/TypeDetailPage.tsx, \."]
|
|
40
|
-
// CIL[DOC-VECTOR type="blast_radius" content="Direct callers: 0. Total affected: 0."]
|
|
41
|
-
// CIL[DOC-VECTOR type="configuration" content="No configuration dependencies."]
|
|
42
|
-
// CIL[DOC-VECTOR type="constraint" content="No test paths identified."]
|
|
15
|
+
// CIL[DOC-VECTOR type="context" content="purpose='Provides the set of breadcrumb UI primitives for navigation patterns.'; No verified external callers; imports: .framework/src/lib/utils.ts"]
|
|
16
|
+
// CIL[DOC-VECTOR type="blast_radius" content="No direct caller data from CIL graph; local impact only"]
|
|
17
|
+
// CIL[DOC-VECTOR type="configuration" content="No environment or build configuration dependencies identified"]
|
|
18
|
+
// CIL[DOC-VECTOR type="constraint" content="Standard runtime; no special invariants documented"]
|
|
43
19
|
// CIL[DOC-VECTOR type="implementation_pattern" content="" status="pending_human_input"]
|
|
44
20
|
// CIL[DOC-VECTOR type="user_journey" content="" status="pending_human_input"]
|
|
21
|
+
// CIL[END stable_id="~/.framework/src/components/ui/breadcrumb.tsx:module_header:module_header"]
|
|
22
|
+
|
|
23
|
+
// CIL[BEGIN stable_id="~/.framework/src/components/ui/breadcrumb.tsx:breadcrumb:function" type="function" identity="Breadcrumb" parent="~/.framework/src/components/ui/breadcrumb.tsx:module_header:module_header"]
|
|
24
|
+
// CIL[DOC-MACRO purpose="Renders a semantic <nav> wrapper for breadcrumb navigation."]
|
|
25
|
+
// CIL[DOC-RESPONSIBILITY responsibility="Wraps children in a nav element with an accessible aria-label."]
|
|
26
|
+
// CIL[DOC-CONTEXT module="ui/breadcrumb" layer="components/ui" related_files=".framework/src/components/ui/breadcrumb.tsx,.framework/src/lib/utils.ts"]
|
|
27
|
+
// CIL[DOC-CONTRACT inputs="className?: string, props: React.ComponentProps<'nav'>" outputs="JSX.Element" errors="None" side_effects="None"]
|
|
28
|
+
// CIL[DOC-MICRO logic_summary="Returns a nav element with aria-label=breadcrumb and merged className via cn." notable_decisions="[]"]
|
|
29
|
+
// CIL[DOC-CONFIDENCE pass="second" score="0.90" flags="none"]
|
|
30
|
+
// CIL[DOC-STABILITY stability="stable"]
|
|
45
31
|
function Breadcrumb({ className, ...props }: React.ComponentProps<"nav">) {
|
|
46
32
|
return (
|
|
47
33
|
<nav
|
|
@@ -52,21 +38,22 @@ function Breadcrumb({ className, ...props }: React.ComponentProps<"nav">) {
|
|
|
52
38
|
/>
|
|
53
39
|
)
|
|
54
40
|
}
|
|
55
|
-
// CIL[
|
|
56
|
-
// CIL[
|
|
57
|
-
// CIL[DOC-
|
|
58
|
-
// CIL[DOC-
|
|
59
|
-
// CIL[DOC-CONTEXT module="ui.breadcrumb" layer="component" related_files="[\".framework/src/components/layout/Sidebar.tsx\",\".framework/functions/_shared/schema-utils.ts\",\".framework/src/components/ui/dialog.tsx\",\".framework/functions/_shared/principal.ts\",\".framework/src/pages/admin/TypeDetailPage.tsx\",\"\\\"]"]
|
|
60
|
-
// CIL[DOC-CONTRACT inputs="none" outputs="styled ol element" errors="none" side_effects="renders DOM"]
|
|
61
|
-
// CIL[DOC-MICRO logic_summary="Applies flex layout with responsive wrapping and text styling" notable_decisions="['flex layout', 'responsive design', 'text handling']"]
|
|
62
|
-
// CIL[DOC-CONFIDENCE pass="second" score="0.95" flags="none"]
|
|
63
|
-
// CIL[DOC-STABILITY stability="stable"]
|
|
64
|
-
// CIL[DOC-VECTOR type="context" content="Layer: component. Direct callers: 1. Direct calls: 0. Related files: .framework/src/components/layout/Sidebar.tsx, .framework/functions/_shared/schema-utils.ts, .framework/src/components/ui/dialog.tsx, .framework/functions/_shared/principal.ts, .framework/src/pages/admin/TypeDetailPage.tsx, \."]
|
|
65
|
-
// CIL[DOC-VECTOR type="blast_radius" content="Direct callers: 1. Total affected: 2."]
|
|
66
|
-
// CIL[DOC-VECTOR type="configuration" content="No configuration dependencies."]
|
|
67
|
-
// CIL[DOC-VECTOR type="constraint" content="No test paths identified."]
|
|
41
|
+
// CIL[DOC-VECTOR type="context" content="purpose='Renders a semantic <nav> wrapper for breadcrumb navigation.'; No verified external callers; imports: .framework/src/lib/utils.ts"]
|
|
42
|
+
// CIL[DOC-VECTOR type="blast_radius" content="No direct caller data from CIL graph; local impact only"]
|
|
43
|
+
// CIL[DOC-VECTOR type="configuration" content="No environment or build configuration dependencies identified"]
|
|
44
|
+
// CIL[DOC-VECTOR type="constraint" content="Standard runtime; no special invariants documented"]
|
|
68
45
|
// CIL[DOC-VECTOR type="implementation_pattern" content="" status="pending_human_input"]
|
|
69
46
|
// CIL[DOC-VECTOR type="user_journey" content="" status="pending_human_input"]
|
|
47
|
+
// CIL[END stable_id="~/.framework/src/components/ui/breadcrumb.tsx:breadcrumb:function"]
|
|
48
|
+
|
|
49
|
+
// CIL[BEGIN stable_id="~/.framework/src/components/ui/breadcrumb.tsx:breadcrumblist:function" type="function" identity="BreadcrumbList" parent="~/.framework/src/components/ui/breadcrumb.tsx:module_header:module_header"]
|
|
50
|
+
// CIL[DOC-MACRO purpose="Renders the ordered list of breadcrumb items."]
|
|
51
|
+
// CIL[DOC-RESPONSIBILITY responsibility="Displays an ordered list styled for breadcrumb navigation."]
|
|
52
|
+
// CIL[DOC-CONTEXT module="ui/breadcrumb" layer="components/ui" related_files=".framework/src/components/ui/breadcrumb.tsx,.framework/src/lib/utils.ts"]
|
|
53
|
+
// CIL[DOC-CONTRACT inputs="className?: string, props: React.ComponentProps<'ol'>" outputs="JSX.Element" errors="None" side_effects="None"]
|
|
54
|
+
// CIL[DOC-MICRO logic_summary="Returns an ol element with flex wrap and muted-foreground styling." notable_decisions="[]"]
|
|
55
|
+
// CIL[DOC-CONFIDENCE pass="second" score="0.90" flags="none"]
|
|
56
|
+
// CIL[DOC-STABILITY stability="stable"]
|
|
70
57
|
function BreadcrumbList({ className, ...props }: React.ComponentProps<"ol">) {
|
|
71
58
|
return (
|
|
72
59
|
<ol
|
|
@@ -79,21 +66,22 @@ function BreadcrumbList({ className, ...props }: React.ComponentProps<"ol">) {
|
|
|
79
66
|
/>
|
|
80
67
|
)
|
|
81
68
|
}
|
|
82
|
-
// CIL[
|
|
83
|
-
// CIL[
|
|
84
|
-
// CIL[DOC-
|
|
85
|
-
// CIL[DOC-
|
|
86
|
-
// CIL[DOC-CONTEXT module="ui.breadcrumb" layer="component" related_files="[\".framework/src/components/layout/Sidebar.tsx\",\".framework/functions/_shared/schema-utils.ts\",\".framework/src/pages/admin/TypeDetailPage.tsx\",\".framework/src/components/ui/dialog.tsx\",\".framework/functions/_shared/principal.ts\",\"\\\"]"]
|
|
87
|
-
// CIL[DOC-CONTRACT inputs="none" outputs="styled li element" errors="none" side_effects="renders DOM"]
|
|
88
|
-
// CIL[DOC-MICRO logic_summary="Applies inline flex layout with consistent spacing for items" notable_decisions="['inline layout', 'consistent spacing pattern']"]
|
|
89
|
-
// CIL[DOC-CONFIDENCE pass="second" score="0.95" flags="none"]
|
|
90
|
-
// CIL[DOC-STABILITY stability="stable"]
|
|
91
|
-
// CIL[DOC-VECTOR type="context" content="Layer: component. Direct callers: 1. Direct calls: 0. Related files: .framework/src/components/layout/Sidebar.tsx, .framework/functions/_shared/schema-utils.ts, .framework/src/pages/admin/TypeDetailPage.tsx, .framework/src/components/ui/dialog.tsx, .framework/functions/_shared/principal.ts, \."]
|
|
92
|
-
// CIL[DOC-VECTOR type="blast_radius" content="Direct callers: 1. Total affected: 2."]
|
|
93
|
-
// CIL[DOC-VECTOR type="configuration" content="No configuration dependencies."]
|
|
94
|
-
// CIL[DOC-VECTOR type="constraint" content="No test paths identified."]
|
|
69
|
+
// CIL[DOC-VECTOR type="context" content="purpose='Renders the ordered list of breadcrumb items.'; No verified external callers; imports: .framework/src/lib/utils.ts"]
|
|
70
|
+
// CIL[DOC-VECTOR type="blast_radius" content="No direct caller data from CIL graph; local impact only"]
|
|
71
|
+
// CIL[DOC-VECTOR type="configuration" content="No environment or build configuration dependencies identified"]
|
|
72
|
+
// CIL[DOC-VECTOR type="constraint" content="Standard runtime; no special invariants documented"]
|
|
95
73
|
// CIL[DOC-VECTOR type="implementation_pattern" content="" status="pending_human_input"]
|
|
96
74
|
// CIL[DOC-VECTOR type="user_journey" content="" status="pending_human_input"]
|
|
75
|
+
// CIL[END stable_id="~/.framework/src/components/ui/breadcrumb.tsx:breadcrumblist:function"]
|
|
76
|
+
|
|
77
|
+
// CIL[BEGIN stable_id="~/.framework/src/components/ui/breadcrumb.tsx:breadcrumbitem:function" type="function" identity="BreadcrumbItem" parent="~/.framework/src/components/ui/breadcrumb.tsx:module_header:module_header"]
|
|
78
|
+
// CIL[DOC-MACRO purpose="Renders a single item in the breadcrumb list."]
|
|
79
|
+
// CIL[DOC-RESPONSIBILITY responsibility="Represents one breadcrumb entry as an inline list item."]
|
|
80
|
+
// CIL[DOC-CONTEXT module="ui/breadcrumb" layer="components/ui" related_files=".framework/src/components/ui/breadcrumb.tsx,.framework/src/lib/utils.ts"]
|
|
81
|
+
// CIL[DOC-CONTRACT inputs="className?: string, props: React.ComponentProps<'li'>" outputs="JSX.Element" errors="None" side_effects="None"]
|
|
82
|
+
// CIL[DOC-MICRO logic_summary="Returns an li element with inline-flex gap styling." notable_decisions="[]"]
|
|
83
|
+
// CIL[DOC-CONFIDENCE pass="second" score="0.90" flags="none"]
|
|
84
|
+
// CIL[DOC-STABILITY stability="stable"]
|
|
97
85
|
function BreadcrumbItem({ className, ...props }: React.ComponentProps<"li">) {
|
|
98
86
|
return (
|
|
99
87
|
<li
|
|
@@ -103,21 +91,22 @@ function BreadcrumbItem({ className, ...props }: React.ComponentProps<"li">) {
|
|
|
103
91
|
/>
|
|
104
92
|
)
|
|
105
93
|
}
|
|
106
|
-
// CIL[
|
|
107
|
-
// CIL[
|
|
108
|
-
// CIL[DOC-
|
|
109
|
-
// CIL[DOC-
|
|
110
|
-
// CIL[DOC-CONTEXT module="ui.breadcrumb" layer="component" related_files="[]"]
|
|
111
|
-
// CIL[DOC-CONTRACT inputs="none" outputs="styled link or Slot component" errors="none" side_effects="renders DOM"]
|
|
112
|
-
// CIL[DOC-MICRO logic_summary="Uses Radix Slot for composition, applies hover color transitions" notable_decisions="['composition pattern', 'hover state styling', 'slot integration']"]
|
|
113
|
-
// CIL[DOC-CONFIDENCE pass="second" score="0.95" flags="none"]
|
|
114
|
-
// CIL[DOC-STABILITY stability="stable"]
|
|
115
|
-
// CIL[DOC-VECTOR type="context" content="Layer: component. Direct callers: 0. Direct calls: 0. Related files: none."]
|
|
116
|
-
// CIL[DOC-VECTOR type="blast_radius" content="Direct callers: 0. Total affected: 0."]
|
|
117
|
-
// CIL[DOC-VECTOR type="configuration" content="No configuration dependencies."]
|
|
118
|
-
// CIL[DOC-VECTOR type="constraint" content="No test paths identified."]
|
|
94
|
+
// CIL[DOC-VECTOR type="context" content="purpose='Renders a single item in the breadcrumb list.'; No verified external callers; imports: .framework/src/lib/utils.ts"]
|
|
95
|
+
// CIL[DOC-VECTOR type="blast_radius" content="No direct caller data from CIL graph; local impact only"]
|
|
96
|
+
// CIL[DOC-VECTOR type="configuration" content="No environment or build configuration dependencies identified"]
|
|
97
|
+
// CIL[DOC-VECTOR type="constraint" content="Standard runtime; no special invariants documented"]
|
|
119
98
|
// CIL[DOC-VECTOR type="implementation_pattern" content="" status="pending_human_input"]
|
|
120
99
|
// CIL[DOC-VECTOR type="user_journey" content="" status="pending_human_input"]
|
|
100
|
+
// CIL[END stable_id="~/.framework/src/components/ui/breadcrumb.tsx:breadcrumbitem:function"]
|
|
101
|
+
|
|
102
|
+
// CIL[BEGIN stable_id="~/.framework/src/components/ui/breadcrumb.tsx:breadcrumblink:function" type="function" identity="BreadcrumbLink" parent="~/.framework/src/components/ui/breadcrumb.tsx:module_header:module_header"]
|
|
103
|
+
// CIL[DOC-MACRO purpose="Renders a clickable link within a breadcrumb item."]
|
|
104
|
+
// CIL[DOC-RESPONSIBILITY responsibility="Provides a navigational link or slottable anchor for a breadcrumb item."]
|
|
105
|
+
// CIL[DOC-CONTEXT module="ui/breadcrumb" layer="components/ui" related_files=".framework/src/components/ui/breadcrumb.tsx,.framework/src/lib/utils.ts"]
|
|
106
|
+
// CIL[DOC-CONTRACT inputs="asChild?: boolean, className?: string, props: React.ComponentProps<'a'>" outputs="JSX.Element" errors="None" side_effects="None"]
|
|
107
|
+
// CIL[DOC-MICRO logic_summary="Selects between Slot.Root or an a tag based on asChild, applies hover classes." notable_decisions="[]"]
|
|
108
|
+
// CIL[DOC-CONFIDENCE pass="second" score="0.90" flags="none"]
|
|
109
|
+
// CIL[DOC-STABILITY stability="stable"]
|
|
121
110
|
function BreadcrumbLink({
|
|
122
111
|
asChild,
|
|
123
112
|
className,
|
|
@@ -135,21 +124,22 @@ function BreadcrumbLink({
|
|
|
135
124
|
/>
|
|
136
125
|
)
|
|
137
126
|
}
|
|
138
|
-
// CIL[
|
|
139
|
-
// CIL[
|
|
140
|
-
// CIL[DOC-
|
|
141
|
-
// CIL[DOC-
|
|
142
|
-
// CIL[DOC-CONTEXT module="ui.breadcrumb" layer="component" related_files="[]"]
|
|
143
|
-
// CIL[DOC-CONTRACT inputs="none" outputs="styled span element" errors="none" side_effects="renders DOM"]
|
|
144
|
-
// CIL[DOC-MICRO logic_summary="Applies semantic attributes and foreground color for current page" notable_decisions="['semantic HTML', 'accessibility attributes', 'visual hierarchy']"]
|
|
145
|
-
// CIL[DOC-CONFIDENCE pass="second" score="0.95" flags="none"]
|
|
146
|
-
// CIL[DOC-STABILITY stability="stable"]
|
|
147
|
-
// CIL[DOC-VECTOR type="context" content="Layer: component. Direct callers: 0. Direct calls: 0. Related files: none."]
|
|
148
|
-
// CIL[DOC-VECTOR type="blast_radius" content="Direct callers: 0. Total affected: 0."]
|
|
149
|
-
// CIL[DOC-VECTOR type="configuration" content="No configuration dependencies."]
|
|
150
|
-
// CIL[DOC-VECTOR type="constraint" content="No test paths identified."]
|
|
127
|
+
// CIL[DOC-VECTOR type="context" content="purpose='Renders a clickable link within a breadcrumb item.'; No verified external callers; imports: .framework/src/lib/utils.ts"]
|
|
128
|
+
// CIL[DOC-VECTOR type="blast_radius" content="No direct caller data from CIL graph; local impact only"]
|
|
129
|
+
// CIL[DOC-VECTOR type="configuration" content="No environment or build configuration dependencies identified"]
|
|
130
|
+
// CIL[DOC-VECTOR type="constraint" content="Standard runtime; no special invariants documented"]
|
|
151
131
|
// CIL[DOC-VECTOR type="implementation_pattern" content="" status="pending_human_input"]
|
|
152
132
|
// CIL[DOC-VECTOR type="user_journey" content="" status="pending_human_input"]
|
|
133
|
+
// CIL[END stable_id="~/.framework/src/components/ui/breadcrumb.tsx:breadcrumblink:function"]
|
|
134
|
+
|
|
135
|
+
// CIL[BEGIN stable_id="~/.framework/src/components/ui/breadcrumb.tsx:breadcrumbpage:function" type="function" identity="BreadcrumbPage" parent="~/.framework/src/components/ui/breadcrumb.tsx:module_header:module_header"]
|
|
136
|
+
// CIL[DOC-MACRO purpose="Renders the current page segment in a breadcrumb."]
|
|
137
|
+
// CIL[DOC-RESPONSIBILITY responsibility="Displays the active page with current-page semantics."]
|
|
138
|
+
// CIL[DOC-CONTEXT module="ui/breadcrumb" layer="components/ui" related_files=".framework/src/components/ui/breadcrumb.tsx,.framework/src/lib/utils.ts"]
|
|
139
|
+
// CIL[DOC-CONTRACT inputs="className?: string, props: React.ComponentProps<'span'>" outputs="JSX.Element" errors="None" side_effects="None"]
|
|
140
|
+
// CIL[DOC-MICRO logic_summary="Returns a span with role=link, aria-current=page, and foreground styling." notable_decisions="[]"]
|
|
141
|
+
// CIL[DOC-CONFIDENCE pass="second" score="0.90" flags="none"]
|
|
142
|
+
// CIL[DOC-STABILITY stability="stable"]
|
|
153
143
|
function BreadcrumbPage({ className, ...props }: React.ComponentProps<"span">) {
|
|
154
144
|
return (
|
|
155
145
|
<span
|
|
@@ -162,21 +152,22 @@ function BreadcrumbPage({ className, ...props }: React.ComponentProps<"span">) {
|
|
|
162
152
|
/>
|
|
163
153
|
)
|
|
164
154
|
}
|
|
165
|
-
// CIL[
|
|
166
|
-
// CIL[
|
|
167
|
-
// CIL[DOC-
|
|
168
|
-
// CIL[DOC-
|
|
169
|
-
// CIL[DOC-CONTEXT module="ui.breadcrumb" layer="component" related_files="[]"]
|
|
170
|
-
// CIL[DOC-CONTRACT inputs="none" outputs="separator li element" errors="none" side_effects="renders DOM"]
|
|
171
|
-
// CIL[DOC-MICRO logic_summary="Uses semantic presentation role with customizable icon fallback" notable_decisions="['semantic HTML', 'icon fallback pattern', 'accessibility attributes']"]
|
|
172
|
-
// CIL[DOC-CONFIDENCE pass="second" score="0.95" flags="none"]
|
|
173
|
-
// CIL[DOC-STABILITY stability="stable"]
|
|
174
|
-
// CIL[DOC-VECTOR type="context" content="Layer: component. Direct callers: 0. Direct calls: 0. Related files: none."]
|
|
175
|
-
// CIL[DOC-VECTOR type="blast_radius" content="Direct callers: 0. Total affected: 0."]
|
|
176
|
-
// CIL[DOC-VECTOR type="configuration" content="No configuration dependencies."]
|
|
177
|
-
// CIL[DOC-VECTOR type="constraint" content="No test paths identified."]
|
|
155
|
+
// CIL[DOC-VECTOR type="context" content="purpose='Renders the current page segment in a breadcrumb.'; No verified external callers; imports: .framework/src/lib/utils.ts"]
|
|
156
|
+
// CIL[DOC-VECTOR type="blast_radius" content="No direct caller data from CIL graph; local impact only"]
|
|
157
|
+
// CIL[DOC-VECTOR type="configuration" content="No environment or build configuration dependencies identified"]
|
|
158
|
+
// CIL[DOC-VECTOR type="constraint" content="Standard runtime; no special invariants documented"]
|
|
178
159
|
// CIL[DOC-VECTOR type="implementation_pattern" content="" status="pending_human_input"]
|
|
179
160
|
// CIL[DOC-VECTOR type="user_journey" content="" status="pending_human_input"]
|
|
161
|
+
// CIL[END stable_id="~/.framework/src/components/ui/breadcrumb.tsx:breadcrumbpage:function"]
|
|
162
|
+
|
|
163
|
+
// CIL[BEGIN stable_id="~/.framework/src/components/ui/breadcrumb.tsx:breadcrumbseparator:function" type="function" identity="BreadcrumbSeparator" parent="~/.framework/src/components/ui/breadcrumb.tsx:module_header:module_header"]
|
|
164
|
+
// CIL[DOC-MACRO purpose="Renders a visual separator between breadcrumb items."]
|
|
165
|
+
// CIL[DOC-RESPONSIBILITY responsibility="Separates breadcrumb items with a chevron icon."]
|
|
166
|
+
// CIL[DOC-CONTEXT module="ui/breadcrumb" layer="components/ui" related_files=".framework/src/components/ui/breadcrumb.tsx,.framework/src/lib/utils.ts"]
|
|
167
|
+
// CIL[DOC-CONTRACT inputs="children?: React.ReactNode, className?: string, props: React.ComponentProps<'li'>" outputs="JSX.Element" errors="None" side_effects="None"]
|
|
168
|
+
// CIL[DOC-MICRO logic_summary="Returns an li with role=presentation, renders ChevronRightIcon by default." notable_decisions="[]"]
|
|
169
|
+
// CIL[DOC-CONFIDENCE pass="second" score="0.90" flags="none"]
|
|
170
|
+
// CIL[DOC-STABILITY stability="stable"]
|
|
180
171
|
function BreadcrumbSeparator({
|
|
181
172
|
children,
|
|
182
173
|
className,
|
|
@@ -196,21 +187,22 @@ function BreadcrumbSeparator({
|
|
|
196
187
|
</li>
|
|
197
188
|
)
|
|
198
189
|
}
|
|
199
|
-
// CIL[
|
|
200
|
-
// CIL[
|
|
201
|
-
// CIL[DOC-
|
|
202
|
-
// CIL[DOC-
|
|
203
|
-
// CIL[DOC-CONTEXT module="ui.breadcrumb" layer="component" related_files="[]"]
|
|
204
|
-
// CIL[DOC-CONTRACT inputs="none" outputs="ellipsis span element" errors="none" side_effects="renders DOM"]
|
|
205
|
-
// CIL[DOC-MICRO logic_summary="Uses semantic presentation role with icon and screen reader text" notable_decisions="['semantic HTML', 'accessibility support', 'icon integration']"]
|
|
206
|
-
// CIL[DOC-CONFIDENCE pass="second" score="0.95" flags="none"]
|
|
207
|
-
// CIL[DOC-STABILITY stability="stable"]
|
|
208
|
-
// CIL[DOC-VECTOR type="context" content="Layer: component. Direct callers: 0. Direct calls: 0. Related files: none."]
|
|
209
|
-
// CIL[DOC-VECTOR type="blast_radius" content="Direct callers: 0. Total affected: 0."]
|
|
210
|
-
// CIL[DOC-VECTOR type="configuration" content="No configuration dependencies."]
|
|
211
|
-
// CIL[DOC-VECTOR type="constraint" content="No test paths identified."]
|
|
190
|
+
// CIL[DOC-VECTOR type="context" content="purpose='Renders a visual separator between breadcrumb items.'; No verified external callers; imports: .framework/src/lib/utils.ts"]
|
|
191
|
+
// CIL[DOC-VECTOR type="blast_radius" content="No direct caller data from CIL graph; local impact only"]
|
|
192
|
+
// CIL[DOC-VECTOR type="configuration" content="No environment or build configuration dependencies identified"]
|
|
193
|
+
// CIL[DOC-VECTOR type="constraint" content="Standard runtime; no special invariants documented"]
|
|
212
194
|
// CIL[DOC-VECTOR type="implementation_pattern" content="" status="pending_human_input"]
|
|
213
195
|
// CIL[DOC-VECTOR type="user_journey" content="" status="pending_human_input"]
|
|
196
|
+
// CIL[END stable_id="~/.framework/src/components/ui/breadcrumb.tsx:breadcrumbseparator:function"]
|
|
197
|
+
|
|
198
|
+
// CIL[BEGIN stable_id="~/.framework/src/components/ui/breadcrumb.tsx:breadcrumbellipsis:function" type="function" identity="BreadcrumbEllipsis" parent="~/.framework/src/components/ui/breadcrumb.tsx:module_header:module_header"]
|
|
199
|
+
// CIL[DOC-MACRO purpose="Renders a collapsed-overflow indicator for long breadcrumbs."]
|
|
200
|
+
// CIL[DOC-RESPONSIBILITY responsibility="Indicates collapsed breadcrumb items while preserving screen-reader text."]
|
|
201
|
+
// CIL[DOC-CONTEXT module="ui/breadcrumb" layer="components/ui" related_files=".framework/src/components/ui/breadcrumb.tsx,.framework/src/lib/utils.ts"]
|
|
202
|
+
// CIL[DOC-CONTRACT inputs="className?: string, props: React.ComponentProps<'span'>" outputs="JSX.Element" errors="None" side_effects="None"]
|
|
203
|
+
// CIL[DOC-MICRO logic_summary="Returns a span with MoreHorizontalIcon and an sr-only More label." notable_decisions="[]"]
|
|
204
|
+
// CIL[DOC-CONFIDENCE pass="second" score="0.90" flags="none"]
|
|
205
|
+
// CIL[DOC-STABILITY stability="stable"]
|
|
214
206
|
function BreadcrumbEllipsis({
|
|
215
207
|
className,
|
|
216
208
|
...props
|
|
@@ -232,21 +224,22 @@ function BreadcrumbEllipsis({
|
|
|
232
224
|
</span>
|
|
233
225
|
)
|
|
234
226
|
}
|
|
235
|
-
// CIL[
|
|
236
|
-
// CIL[
|
|
237
|
-
// CIL[DOC-
|
|
238
|
-
// CIL[DOC-
|
|
239
|
-
// CIL[DOC-CONTEXT module="ui.breadcrumb" layer="component" related_files="[]"]
|
|
240
|
-
// CIL[DOC-CONTRACT inputs="none" outputs="all breadcrumb components" errors="none" side_effects="module exports"]
|
|
241
|
-
// CIL[DOC-MICRO logic_summary="Exports comprehensive breadcrumb component set for navigation" notable_decisions="['comprehensive export strategy', 'navigation component library']"]
|
|
242
|
-
// CIL[DOC-CONFIDENCE pass="second" score="0.95" flags="none"]
|
|
243
|
-
// CIL[DOC-STABILITY stability="stable"]
|
|
244
|
-
// CIL[DOC-VECTOR type="context" content="Layer: component. Direct callers: 0. Direct calls: 0. Related files: none."]
|
|
245
|
-
// CIL[DOC-VECTOR type="blast_radius" content="Direct callers: 0. Total affected: 0."]
|
|
246
|
-
// CIL[DOC-VECTOR type="configuration" content="No configuration dependencies."]
|
|
247
|
-
// CIL[DOC-VECTOR type="constraint" content="No test paths identified."]
|
|
227
|
+
// CIL[DOC-VECTOR type="context" content="purpose='Renders a collapsed-overflow indicator for long breadcrumbs.'; No verified external callers; imports: .framework/src/lib/utils.ts"]
|
|
228
|
+
// CIL[DOC-VECTOR type="blast_radius" content="No direct caller data from CIL graph; local impact only"]
|
|
229
|
+
// CIL[DOC-VECTOR type="configuration" content="No environment or build configuration dependencies identified"]
|
|
230
|
+
// CIL[DOC-VECTOR type="constraint" content="Standard runtime; no special invariants documented"]
|
|
248
231
|
// CIL[DOC-VECTOR type="implementation_pattern" content="" status="pending_human_input"]
|
|
249
232
|
// CIL[DOC-VECTOR type="user_journey" content="" status="pending_human_input"]
|
|
233
|
+
// CIL[END stable_id="~/.framework/src/components/ui/breadcrumb.tsx:breadcrumbellipsis:function"]
|
|
234
|
+
|
|
235
|
+
// CIL[BEGIN stable_id="~/.framework/src/components/ui/breadcrumb.tsx:module_exports:module_exports" type="module_exports" identity="module_exports" parent="~/.framework/src/components/ui/breadcrumb.tsx:module_header:module_header"]
|
|
236
|
+
// CIL[DOC-MACRO purpose="Re-exports the public breadcrumb component set for consumers."]
|
|
237
|
+
// CIL[DOC-RESPONSIBILITY responsibility="Exposes named component exports from the breadcrumb module."]
|
|
238
|
+
// CIL[DOC-CONTEXT module="ui/breadcrumb" layer="components/ui" related_files=".framework/src/components/ui/breadcrumb.tsx,.framework/src/lib/utils.ts"]
|
|
239
|
+
// CIL[DOC-CONTRACT inputs="N/A" outputs="Named component exports" errors="None" side_effects="None"]
|
|
240
|
+
// CIL[DOC-MICRO logic_summary="Lists the named component exports in a single export block." notable_decisions="[]"]
|
|
241
|
+
// CIL[DOC-CONFIDENCE pass="second" score="0.90" flags="none"]
|
|
242
|
+
// CIL[DOC-STABILITY stability="stable"]
|
|
250
243
|
export {
|
|
251
244
|
Breadcrumb,
|
|
252
245
|
BreadcrumbList,
|
|
@@ -256,4 +249,10 @@ export {
|
|
|
256
249
|
BreadcrumbSeparator,
|
|
257
250
|
BreadcrumbEllipsis,
|
|
258
251
|
}
|
|
259
|
-
// CIL[
|
|
252
|
+
// CIL[DOC-VECTOR type="context" content="purpose='Re-exports the public breadcrumb component set for consumers.'; No verified external callers; imports: .framework/src/lib/utils.ts"]
|
|
253
|
+
// CIL[DOC-VECTOR type="blast_radius" content="No direct caller data from CIL graph; local impact only"]
|
|
254
|
+
// CIL[DOC-VECTOR type="configuration" content="No environment or build configuration dependencies identified"]
|
|
255
|
+
// CIL[DOC-VECTOR type="constraint" content="Standard runtime; no special invariants documented"]
|
|
256
|
+
// CIL[DOC-VECTOR type="implementation_pattern" content="" status="pending_human_input"]
|
|
257
|
+
// CIL[DOC-VECTOR type="user_journey" content="" status="pending_human_input"]
|
|
258
|
+
// CIL[END stable_id="~/.framework/src/components/ui/breadcrumb.tsx:module_exports:module_exports"]
|
|
@@ -1,29 +1,33 @@
|
|
|
1
|
-
|
|
2
|
-
|
|
3
|
-
|
|
4
|
-
|
|
5
|
-
|
|
6
|
-
// CIL[
|
|
7
|
-
// CIL[DOC-
|
|
8
|
-
// CIL[DOC-RESPONSIBILITY responsibility="Define button group variants and component infrastructure"]
|
|
9
|
-
// CIL[DOC-CONTEXT module="ui.button-group" layer="component" related_files="[\".framework/src/components/ui/dialog.tsx\",\".framework/src/pages/admin/RolesPage.tsx\",\"custom/apps/portal/pages/ContentPage.tsx\",\".framework/functions/_shared/schema-utils.ts\",\".framework/functions/_shared/principal.ts\",\"\\\"]"]
|
|
10
|
-
// CIL[DOC-CONTRACT inputs="none" outputs="buttonGroupVariants, CVA, Slot, Separator" errors="none" side_effects="none"]
|
|
11
|
-
// CIL[DOC-MICRO logic_summary="Creates orientation-aware button group variant system with complex border management" notable_decisions="['class-variance-authority pattern', 'complex CSS selector system', 'orientation-aware styling']"]
|
|
12
|
-
// CIL[DOC-CONFIDENCE pass="second" score="0.95" flags="none"]
|
|
1
|
+
// CIL[BEGIN stable_id="~/.framework/src/components/ui/button-group.tsx:module_header:module_header" type="module_header" identity="module_header" parent="none"]
|
|
2
|
+
// CIL[DOC-MACRO purpose="Import CVA, Radix Slot, and project utilities for the ButtonGroup UI component set"]
|
|
3
|
+
// CIL[DOC-RESPONSIBILITY responsibility="Provide shared imports and dependencies for button group building blocks"]
|
|
4
|
+
// CIL[DOC-CONTEXT module="components/ui/button-group" layer="ui" related_files=".framework/src/components/ui/separator.tsx,.framework/src/lib/utils.ts"]
|
|
5
|
+
// CIL[DOC-CONTRACT inputs="none" outputs="imported utilities and dependencies" errors="none" side_effects="adds module dependencies"]
|
|
6
|
+
// CIL[DOC-MICRO logic_summary="Imports class-variance-authority, Radix Slot, cn utility, and the Separator component" notable_decisions="[]"]
|
|
7
|
+
// CIL[DOC-CONFIDENCE pass="second" score="0.90" flags="none"]
|
|
13
8
|
// CIL[DOC-STABILITY stability="stable"]
|
|
14
|
-
// CIL[DOC-AUDIENCE audience="
|
|
15
|
-
// CIL[DOC-VECTOR type="context" content="Layer: component. Direct callers: 0. Direct calls: 0. Related files: .framework/src/components/ui/dialog.tsx, .framework/src/pages/admin/RolesPage.tsx, custom/apps/portal/pages/ContentPage.tsx, .framework/functions/_shared/schema-utils.ts, .framework/functions/_shared/principal.ts, \."]
|
|
16
|
-
// CIL[DOC-VECTOR type="blast_radius" content="Direct callers: 0. Total affected: 0."]
|
|
17
|
-
// CIL[DOC-VECTOR type="configuration" content="No configuration dependencies."]
|
|
18
|
-
// CIL[DOC-VECTOR type="constraint" content="No test paths identified."]
|
|
19
|
-
// CIL[DOC-VECTOR type="implementation_pattern" content="" status="pending_human_input"]
|
|
20
|
-
// CIL[DOC-VECTOR type="user_journey" content="" status="pending_human_input"]
|
|
9
|
+
// CIL[DOC-AUDIENCE audience="ui component consumers and maintainers"]
|
|
21
10
|
import { cva, type VariantProps } from "class-variance-authority"
|
|
22
11
|
import { Slot } from "radix-ui"
|
|
23
12
|
|
|
24
13
|
import { cn } from "@/lib/utils"
|
|
25
14
|
import { Separator } from "@/components/ui/separator"
|
|
15
|
+
// CIL[DOC-VECTOR type="context" content="purpose='Import CVA, Radix Slot, and project utilities for the ButtonGroup UI component set'; No verified external callers; imports: .framework/src/lib/utils.ts,.framework/src/components/ui/separator.tsx"]
|
|
16
|
+
// CIL[DOC-VECTOR type="blast_radius" content="No direct caller data from CIL graph; local impact only"]
|
|
17
|
+
// CIL[DOC-VECTOR type="configuration" content="No environment or build configuration dependencies identified"]
|
|
18
|
+
// CIL[DOC-VECTOR type="constraint" content="Standard runtime; no special invariants documented"]
|
|
19
|
+
// CIL[DOC-VECTOR type="implementation_pattern" content="" status="pending_human_input"]
|
|
20
|
+
// CIL[DOC-VECTOR type="user_journey" content="" status="pending_human_input"]
|
|
21
|
+
// CIL[END stable_id="~/.framework/src/components/ui/button-group.tsx:module_header:module_header"]
|
|
26
22
|
|
|
23
|
+
// CIL[BEGIN stable_id="~/.framework/src/components/ui/button-group.tsx:buttongroupvariants:constant" type="constant" identity="buttonGroupVariants" parent="none"]
|
|
24
|
+
// CIL[DOC-MACRO purpose="Define the class-variance-authority variant map for ButtonGroup styling"]
|
|
25
|
+
// CIL[DOC-RESPONSIBILITY responsibility="Generate CSS classes for horizontal and vertical button group orientations"]
|
|
26
|
+
// CIL[DOC-CONTEXT module="components/ui/button-group" layer="ui" related_files=".framework/src/components/ui/button-group.tsx,.framework/src/components/ui/separator.tsx,.framework/src/lib/utils.ts"]
|
|
27
|
+
// CIL[DOC-CONTRACT inputs="props: { orientation?: 'horizontal' | 'vertical' }" outputs="Tailwind class string" errors="none" side_effects="none"]
|
|
28
|
+
// CIL[DOC-MICRO logic_summary="Combines a base flex layout with orientation-specific border rounding, gap, and focus rules" notable_decisions="[]"]
|
|
29
|
+
// CIL[DOC-CONFIDENCE pass="second" score="0.90" flags="none"]
|
|
30
|
+
// CIL[DOC-STABILITY stability="stable"]
|
|
27
31
|
const buttonGroupVariants = cva(
|
|
28
32
|
"group/button-group flex w-fit items-stretch *:focus-visible:relative *:focus-visible:z-10 has-[>[data-slot=button-group]]:gap-2 has-[select[aria-hidden=true]:last-child]:[&>[data-slot=select-trigger]:last-of-type]:rounded-r-md [&>[data-slot=select-trigger]:not([class*='w-'])]:w-fit [&>input]:flex-1",
|
|
29
33
|
{
|
|
@@ -40,21 +44,22 @@ const buttonGroupVariants = cva(
|
|
|
40
44
|
},
|
|
41
45
|
}
|
|
42
46
|
)
|
|
43
|
-
// CIL[
|
|
44
|
-
// CIL[
|
|
45
|
-
// CIL[DOC-
|
|
46
|
-
// CIL[DOC-
|
|
47
|
-
// CIL[DOC-CONTEXT module="ui.button-group" layer="component" related_files="[\".framework/functions/_shared/schema-utils.ts\",\".framework/src/components/ui/dialog.tsx\",\".framework/functions/_shared/principal.ts\",\".framework/src/pages/admin/TypeDetailPage.tsx\",\".framework/src/pages/admin/IntegrationsPage.tsx\",\"\\\"]"]
|
|
48
|
-
// CIL[DOC-CONTRACT inputs="none" outputs="styled button group container" errors="none" side_effects="renders DOM"]
|
|
49
|
-
// CIL[DOC-MICRO logic_summary="Applies CVA variants, sets semantic group role, handles orientation" notable_decisions="['semantic HTML', 'CVA integration', 'orientation handling']"]
|
|
50
|
-
// CIL[DOC-CONFIDENCE pass="second" score="0.95" flags="none"]
|
|
51
|
-
// CIL[DOC-STABILITY stability="stable"]
|
|
52
|
-
// CIL[DOC-VECTOR type="context" content="Layer: component. Direct callers: 0. Direct calls: 0. Related files: .framework/functions/_shared/schema-utils.ts, .framework/src/components/ui/dialog.tsx, .framework/functions/_shared/principal.ts, .framework/src/pages/admin/TypeDetailPage.tsx, .framework/src/pages/admin/IntegrationsPage.tsx, \."]
|
|
53
|
-
// CIL[DOC-VECTOR type="blast_radius" content="Direct callers: 0. Total affected: 0."]
|
|
54
|
-
// CIL[DOC-VECTOR type="configuration" content="No configuration dependencies."]
|
|
55
|
-
// CIL[DOC-VECTOR type="constraint" content="No test paths identified."]
|
|
47
|
+
// CIL[DOC-VECTOR type="context" content="purpose='Define the class-variance-authority variant map for ButtonGroup styling'; No verified external callers; imports: .framework/src/lib/utils.ts,.framework/src/components/ui/separator.tsx"]
|
|
48
|
+
// CIL[DOC-VECTOR type="blast_radius" content="No direct caller data from CIL graph; local impact only"]
|
|
49
|
+
// CIL[DOC-VECTOR type="configuration" content="No environment or build configuration dependencies identified"]
|
|
50
|
+
// CIL[DOC-VECTOR type="constraint" content="Standard runtime; no special invariants documented"]
|
|
56
51
|
// CIL[DOC-VECTOR type="implementation_pattern" content="" status="pending_human_input"]
|
|
57
52
|
// CIL[DOC-VECTOR type="user_journey" content="" status="pending_human_input"]
|
|
53
|
+
// CIL[END stable_id="~/.framework/src/components/ui/button-group.tsx:buttongroupvariants:constant"]
|
|
54
|
+
|
|
55
|
+
// CIL[BEGIN stable_id="~/.framework/src/components/ui/button-group.tsx:buttongroup:function" type="function" identity="ButtonGroup" parent="none"]
|
|
56
|
+
// CIL[DOC-MACRO purpose="Render a container that groups child buttons with role, data-slot, and orientation styling"]
|
|
57
|
+
// CIL[DOC-RESPONSIBILITY responsibility="Apply buttonGroupVariants classes and data attributes to a group div"]
|
|
58
|
+
// CIL[DOC-CONTEXT module="components/ui/button-group" layer="ui" related_files=".framework/src/components/ui/button-group.tsx,.framework/src/components/ui/separator.tsx,.framework/src/lib/utils.ts"]
|
|
59
|
+
// CIL[DOC-CONTRACT inputs="className: string | undefined, orientation: 'horizontal' | 'vertical' | undefined, ...props: React.ComponentProps<'div'> & VariantProps<typeof buttonGroupVariants>" outputs="JSX div" errors="prop type mismatch" side_effects="renders DOM"]
|
|
60
|
+
// CIL[DOC-MICRO logic_summary="Applies cva-generated classes, role='group', and data-orientation; passes remaining props through" notable_decisions="[]"]
|
|
61
|
+
// CIL[DOC-CONFIDENCE pass="second" score="0.90" flags="none"]
|
|
62
|
+
// CIL[DOC-STABILITY stability="stable"]
|
|
58
63
|
function ButtonGroup({
|
|
59
64
|
className,
|
|
60
65
|
orientation,
|
|
@@ -70,21 +75,22 @@ function ButtonGroup({
|
|
|
70
75
|
/>
|
|
71
76
|
)
|
|
72
77
|
}
|
|
73
|
-
// CIL[
|
|
74
|
-
// CIL[
|
|
75
|
-
// CIL[DOC-
|
|
76
|
-
// CIL[DOC-
|
|
77
|
-
// CIL[DOC-CONTEXT module="ui.button-group" layer="component" related_files="[\".framework/functions/_shared/schema-utils.ts\",\"custom/apps/portal/pages/ContentPage.tsx\",\".framework/src/pages/admin/RolesPage.tsx\",\"custom/apps/cortex/pages/operations/OperationsDashboard.tsx\",\".framework/src/components/ui/dialog.tsx\",\"\\\"]"]
|
|
78
|
-
// CIL[DOC-CONTRACT inputs="none" outputs="styled text or Slot component" errors="none" side_effects="renders DOM"]
|
|
79
|
-
// CIL[DOC-MICRO logic_summary="Uses Radix Slot for composition, applies muted styling with icon handling" notable_decisions="['composition pattern', 'muted styling', 'icon integration']"]
|
|
80
|
-
// CIL[DOC-CONFIDENCE pass="second" score="0.95" flags="none"]
|
|
81
|
-
// CIL[DOC-STABILITY stability="stable"]
|
|
82
|
-
// CIL[DOC-VECTOR type="context" content="Layer: component. Direct callers: 0. Direct calls: 0. Related files: .framework/functions/_shared/schema-utils.ts, custom/apps/portal/pages/ContentPage.tsx, .framework/src/pages/admin/RolesPage.tsx, custom/apps/cortex/pages/operations/OperationsDashboard.tsx, .framework/src/components/ui/dialog.tsx, \."]
|
|
83
|
-
// CIL[DOC-VECTOR type="blast_radius" content="Direct callers: 0. Total affected: 0."]
|
|
84
|
-
// CIL[DOC-VECTOR type="configuration" content="No configuration dependencies."]
|
|
85
|
-
// CIL[DOC-VECTOR type="constraint" content="No test paths identified."]
|
|
78
|
+
// CIL[DOC-VECTOR type="context" content="purpose='Render a container that groups child buttons with role, data-slot, and orientation styling'; No verified external callers; imports: .framework/src/lib/utils.ts,.framework/src/components/ui/separator.tsx"]
|
|
79
|
+
// CIL[DOC-VECTOR type="blast_radius" content="No direct caller data from CIL graph; local impact only"]
|
|
80
|
+
// CIL[DOC-VECTOR type="configuration" content="No environment or build configuration dependencies identified"]
|
|
81
|
+
// CIL[DOC-VECTOR type="constraint" content="Standard runtime; no special invariants documented"]
|
|
86
82
|
// CIL[DOC-VECTOR type="implementation_pattern" content="" status="pending_human_input"]
|
|
87
83
|
// CIL[DOC-VECTOR type="user_journey" content="" status="pending_human_input"]
|
|
84
|
+
// CIL[END stable_id="~/.framework/src/components/ui/button-group.tsx:buttongroup:function"]
|
|
85
|
+
|
|
86
|
+
// CIL[BEGIN stable_id="~/.framework/src/components/ui/button-group.tsx:buttongrouptext:function" type="function" identity="ButtonGroupText" parent="none"]
|
|
87
|
+
// CIL[DOC-MACRO purpose="Render a compact text or metadata element inside a button group"]
|
|
88
|
+
// CIL[DOC-RESPONSIBILITY responsibility="Provide a muted, rounded label slot with optional Slot.Root composition"]
|
|
89
|
+
// CIL[DOC-CONTEXT module="components/ui/button-group" layer="ui" related_files=".framework/src/components/ui/button-group.tsx,.framework/src/components/ui/separator.tsx,.framework/src/lib/utils.ts"]
|
|
90
|
+
// CIL[DOC-CONTRACT inputs="className: string | undefined, asChild: boolean, ...props: React.ComponentProps<'div'> & { asChild?: boolean }" outputs="JSX div or Slot.Root" errors="none" side_effects="renders DOM"]
|
|
91
|
+
// CIL[DOC-MICRO logic_summary="Chooses Slot.Root when asChild is true; applies muted, rounded, small text styles" notable_decisions="[]"]
|
|
92
|
+
// CIL[DOC-CONFIDENCE pass="second" score="0.90" flags="none"]
|
|
93
|
+
// CIL[DOC-STABILITY stability="stable"]
|
|
88
94
|
function ButtonGroupText({
|
|
89
95
|
className,
|
|
90
96
|
asChild = false,
|
|
@@ -104,21 +110,22 @@ function ButtonGroupText({
|
|
|
104
110
|
/>
|
|
105
111
|
)
|
|
106
112
|
}
|
|
107
|
-
// CIL[
|
|
108
|
-
// CIL[
|
|
109
|
-
// CIL[DOC-
|
|
110
|
-
// CIL[DOC-
|
|
111
|
-
// CIL[DOC-CONTEXT module="ui.button-group" layer="component" related_files="[\".framework/functions/_shared/schema-utils.ts\",\".framework/src/components/ui/dialog.tsx\",\".framework/src/pages/admin/RolesPage.tsx\",\".framework/functions/_shared/principal.ts\",\".framework/src/pages/admin/TypeDetailPage.tsx\",\"\\\"]"]
|
|
112
|
-
// CIL[DOC-CONTRACT inputs="none" outputs="styled separator component" errors="none" side_effects="renders DOM"]
|
|
113
|
-
// CIL[DOC-MICRO logic_summary="Wraps Separator with orientation-specific styling and data attributes" notable_decisions="['separator wrapper pattern', 'orientation-aware styling', 'data attributes']"]
|
|
114
|
-
// CIL[DOC-CONFIDENCE pass="second" score="0.95" flags="none"]
|
|
115
|
-
// CIL[DOC-STABILITY stability="stable"]
|
|
116
|
-
// CIL[DOC-VECTOR type="context" content="Layer: component. Direct callers: 0. Direct calls: 0. Related files: .framework/functions/_shared/schema-utils.ts, .framework/src/components/ui/dialog.tsx, .framework/src/pages/admin/RolesPage.tsx, .framework/functions/_shared/principal.ts, .framework/src/pages/admin/TypeDetailPage.tsx, \."]
|
|
117
|
-
// CIL[DOC-VECTOR type="blast_radius" content="Direct callers: 0. Total affected: 0."]
|
|
118
|
-
// CIL[DOC-VECTOR type="configuration" content="No configuration dependencies."]
|
|
119
|
-
// CIL[DOC-VECTOR type="constraint" content="No test paths identified."]
|
|
113
|
+
// CIL[DOC-VECTOR type="context" content="purpose='Render a compact text or metadata element inside a button group'; No verified external callers; imports: .framework/src/lib/utils.ts,.framework/src/components/ui/separator.tsx"]
|
|
114
|
+
// CIL[DOC-VECTOR type="blast_radius" content="No direct caller data from CIL graph; local impact only"]
|
|
115
|
+
// CIL[DOC-VECTOR type="configuration" content="No environment or build configuration dependencies identified"]
|
|
116
|
+
// CIL[DOC-VECTOR type="constraint" content="Standard runtime; no special invariants documented"]
|
|
120
117
|
// CIL[DOC-VECTOR type="implementation_pattern" content="" status="pending_human_input"]
|
|
121
118
|
// CIL[DOC-VECTOR type="user_journey" content="" status="pending_human_input"]
|
|
119
|
+
// CIL[END stable_id="~/.framework/src/components/ui/button-group.tsx:buttongrouptext:function"]
|
|
120
|
+
|
|
121
|
+
// CIL[BEGIN stable_id="~/.framework/src/components/ui/button-group.tsx:buttongroupseparator:function" type="function" identity="ButtonGroupSeparator" parent="none"]
|
|
122
|
+
// CIL[DOC-MACRO purpose="Render a visual separator between items in a button group"]
|
|
123
|
+
// CIL[DOC-RESPONSIBILITY responsibility="Provide a stretchable Separator with theme-aware input background"]
|
|
124
|
+
// CIL[DOC-CONTEXT module="components/ui/button-group" layer="ui" related_files=".framework/src/components/ui/button-group.tsx,.framework/src/components/ui/separator.tsx,.framework/src/lib/utils.ts"]
|
|
125
|
+
// CIL[DOC-CONTRACT inputs="className: string | undefined, orientation: 'horizontal' | 'vertical' | undefined, ...props: React.ComponentProps<typeof Separator>" outputs="JSX Separator" errors="none" side_effects="renders DOM"]
|
|
126
|
+
// CIL[DOC-MICRO logic_summary="Renders a Separator with data-slot and orientation-aware background utility classes" notable_decisions="[]"]
|
|
127
|
+
// CIL[DOC-CONFIDENCE pass="second" score="0.90" flags="none"]
|
|
128
|
+
// CIL[DOC-STABILITY stability="stable"]
|
|
122
129
|
function ButtonGroupSeparator({
|
|
123
130
|
className,
|
|
124
131
|
orientation = "vertical",
|
|
@@ -136,25 +143,32 @@ function ButtonGroupSeparator({
|
|
|
136
143
|
/>
|
|
137
144
|
)
|
|
138
145
|
}
|
|
139
|
-
// CIL[
|
|
140
|
-
// CIL[
|
|
141
|
-
// CIL[DOC-
|
|
142
|
-
// CIL[DOC-
|
|
143
|
-
// CIL[DOC-CONTEXT module="ui.button-group" layer="component" 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/TypeDetailPage.tsx\",\".framework/functions/_shared/principal.ts\",\"\\\"]"]
|
|
144
|
-
// CIL[DOC-CONTRACT inputs="none" outputs="button group components and variants" errors="none" side_effects="module exports"]
|
|
145
|
-
// CIL[DOC-MICRO logic_summary="Exports all button group components and variants for customization" notable_decisions="['export variants for customization', 'named exports pattern']"]
|
|
146
|
-
// CIL[DOC-CONFIDENCE pass="second" score="0.95" flags="none"]
|
|
147
|
-
// CIL[DOC-STABILITY stability="stable"]
|
|
148
|
-
// CIL[DOC-VECTOR type="context" content="Layer: component. 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/TypeDetailPage.tsx, .framework/functions/_shared/principal.ts, \."]
|
|
149
|
-
// CIL[DOC-VECTOR type="blast_radius" content="Direct callers: 0. Total affected: 0."]
|
|
150
|
-
// CIL[DOC-VECTOR type="configuration" content="No configuration dependencies."]
|
|
151
|
-
// CIL[DOC-VECTOR type="constraint" content="No test paths identified."]
|
|
146
|
+
// CIL[DOC-VECTOR type="context" content="purpose='Render a visual separator between items in a button group'; No verified external callers; imports: .framework/src/lib/utils.ts,.framework/src/components/ui/separator.tsx"]
|
|
147
|
+
// CIL[DOC-VECTOR type="blast_radius" content="No direct caller data from CIL graph; local impact only"]
|
|
148
|
+
// CIL[DOC-VECTOR type="configuration" content="No environment or build configuration dependencies identified"]
|
|
149
|
+
// CIL[DOC-VECTOR type="constraint" content="Standard runtime; no special invariants documented"]
|
|
152
150
|
// CIL[DOC-VECTOR type="implementation_pattern" content="" status="pending_human_input"]
|
|
153
151
|
// CIL[DOC-VECTOR type="user_journey" content="" status="pending_human_input"]
|
|
152
|
+
// CIL[END stable_id="~/.framework/src/components/ui/button-group.tsx:buttongroupseparator:function"]
|
|
153
|
+
|
|
154
|
+
// CIL[BEGIN stable_id="~/.framework/src/components/ui/button-group.tsx:module_exports:module_exports" type="module_exports" identity="module_exports" parent="none"]
|
|
155
|
+
// CIL[DOC-MACRO purpose="Expose the ButtonGroup, ButtonGroupText, ButtonGroupSeparator, and buttonGroupVariants API"]
|
|
156
|
+
// CIL[DOC-RESPONSIBILITY responsibility="Named export of the public button-group module members"]
|
|
157
|
+
// CIL[DOC-CONTEXT module="components/ui/button-group" layer="ui" related_files=".framework/src/components/ui/button-group.tsx,.framework/src/components/ui/separator.tsx,.framework/src/lib/utils.ts"]
|
|
158
|
+
// CIL[DOC-CONTRACT inputs="none" outputs="named exports" errors="none" side_effects="none"]
|
|
159
|
+
// CIL[DOC-MICRO logic_summary="Re-exports all component pieces from this module as named exports" notable_decisions="[]"]
|
|
160
|
+
// CIL[DOC-CONFIDENCE pass="second" score="0.90" flags="none"]
|
|
161
|
+
// CIL[DOC-STABILITY stability="stable"]
|
|
154
162
|
export {
|
|
155
163
|
ButtonGroup,
|
|
156
164
|
ButtonGroupSeparator,
|
|
157
165
|
ButtonGroupText,
|
|
158
166
|
buttonGroupVariants,
|
|
159
167
|
}
|
|
160
|
-
// CIL[
|
|
168
|
+
// CIL[DOC-VECTOR type="context" content="purpose='Expose the ButtonGroup, ButtonGroupText, ButtonGroupSeparator, and buttonGroupVariants API'; No verified external callers; imports: .framework/src/lib/utils.ts,.framework/src/components/ui/separator.tsx"]
|
|
169
|
+
// CIL[DOC-VECTOR type="blast_radius" content="No direct caller data from CIL graph; local impact only"]
|
|
170
|
+
// CIL[DOC-VECTOR type="configuration" content="No environment or build configuration dependencies identified"]
|
|
171
|
+
// CIL[DOC-VECTOR type="constraint" content="Standard runtime; no special invariants documented"]
|
|
172
|
+
// CIL[DOC-VECTOR type="implementation_pattern" content="" status="pending_human_input"]
|
|
173
|
+
// CIL[DOC-VECTOR type="user_journey" content="" status="pending_human_input"]
|
|
174
|
+
// CIL[END stable_id="~/.framework/src/components/ui/button-group.tsx:module_exports:module_exports"]
|