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,11 @@
|
|
|
1
|
+
// CIL[BEGIN stable_id="~/.framework/src/components/ui/combobox.tsx:use_client:directive" type="directive" identity="use_client" parent="none"]
|
|
2
|
+
// CIL[DOC-MACRO purpose="Marks this module for client-side rendering in Next.js"]
|
|
3
|
+
// CIL[DOC-RESPONSIBILITY responsibility="Declare the use client directive at the top of the file"]
|
|
4
|
+
// CIL[DOC-CONTEXT module="combobox" layer="components/ui" related_files=".framework/src/components/ui/button.tsx,.framework/src/components/ui/combobox.tsx,.framework/src/components/ui/input-group.tsx,.framework/src/lib/utils.ts"]
|
|
5
|
+
// CIL[DOC-CONTRACT inputs="none" outputs="client rendering directive" errors="none" side_effects="none"]
|
|
6
|
+
// CIL[DOC-MICRO logic_summary="Contains the 'use client' string required by Next.js for client components." notable_decisions="[]"]
|
|
7
|
+
// CIL[DOC-CONFIDENCE pass="second" score="0.90" flags="none"]
|
|
8
|
+
// CIL[DOC-STABILITY stability="stable"]
|
|
1
9
|
|
|
2
10
|
|
|
3
11
|
|
|
@@ -17,22 +25,24 @@
|
|
|
17
25
|
|
|
18
26
|
|
|
19
27
|
|
|
20
|
-
|
|
21
|
-
|
|
22
|
-
// CIL[DOC-
|
|
23
|
-
// CIL[DOC-
|
|
24
|
-
// CIL[DOC-
|
|
25
|
-
// CIL[DOC-
|
|
26
|
-
// CIL[DOC-CONFIDENCE pass="second" score="0.95" flags="none"]
|
|
27
|
-
// CIL[DOC-STABILITY stability="stable"]
|
|
28
|
-
// CIL[DOC-AUDIENCE audience="developer"]
|
|
29
|
-
// 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/components/layout/Sidebar.tsx, .framework/src/components/ui/dialog.tsx, .framework/src/pages/admin/TypeDetailPage.tsx, .framework/functions/_shared/principal.ts, \."]
|
|
30
|
-
// CIL[DOC-VECTOR type="blast_radius" content="Direct callers: 0. Total affected: 0."]
|
|
31
|
-
// CIL[DOC-VECTOR type="configuration" content="No configuration dependencies."]
|
|
32
|
-
// CIL[DOC-VECTOR type="constraint" content="No test paths identified."]
|
|
28
|
+
|
|
29
|
+
"use client"
|
|
30
|
+
// CIL[DOC-VECTOR type="context" content="purpose='Marks this module for client-side rendering in Next.js'; No verified external callers; imports: .framework/src/lib/utils.ts,.framework/src/components/ui/button.tsx,.framework/src/components/ui/input-group.tsx"]
|
|
31
|
+
// CIL[DOC-VECTOR type="blast_radius" content="No direct caller data from CIL graph; local impact only"]
|
|
32
|
+
// CIL[DOC-VECTOR type="configuration" content="No environment or build configuration dependencies identified"]
|
|
33
|
+
// CIL[DOC-VECTOR type="constraint" content="Standard runtime; no special invariants documented"]
|
|
33
34
|
// CIL[DOC-VECTOR type="implementation_pattern" content="" status="pending_human_input"]
|
|
34
35
|
// CIL[DOC-VECTOR type="user_journey" content="" status="pending_human_input"]
|
|
35
|
-
|
|
36
|
+
// CIL[END stable_id="~/.framework/src/components/ui/combobox.tsx:use_client:directive"]
|
|
37
|
+
// CIL[BEGIN stable_id="~/.framework/src/components/ui/combobox.tsx:module_header:module_header" type="module_header" identity="module_header" parent="none"]
|
|
38
|
+
// CIL[DOC-MACRO purpose="Provides the Combobox UI components built on Base UI for the shadcn/ui design system"]
|
|
39
|
+
// CIL[DOC-RESPONSIBILITY responsibility="Import combobox dependencies and re-export the public Combobox component surface"]
|
|
40
|
+
// CIL[DOC-CONTEXT module="combobox" layer="components/ui" related_files=".framework/src/components/ui/button.tsx,.framework/src/components/ui/input-group.tsx,.framework/src/lib/utils.ts"]
|
|
41
|
+
// CIL[DOC-CONTRACT inputs="none" outputs="imports and component exports" errors="none" side_effects="none"]
|
|
42
|
+
// CIL[DOC-MICRO logic_summary="Sets up React, Base UI Combobox, utility, Button, InputGroup, and icon imports used by all combobox subcomponents." notable_decisions="[]"]
|
|
43
|
+
// CIL[DOC-CONFIDENCE pass="second" score="0.90" flags="none"]
|
|
44
|
+
// CIL[DOC-STABILITY stability="stable"]
|
|
45
|
+
// CIL[DOC-AUDIENCE audience="frontend-developers"]
|
|
36
46
|
import * as React from "react"
|
|
37
47
|
import { Combobox as ComboboxPrimitive } from "@base-ui/react"
|
|
38
48
|
import { cn } from "@/lib/utils"
|
|
@@ -44,55 +54,58 @@ import {
|
|
|
44
54
|
InputGroupInput,
|
|
45
55
|
} from "@/components/ui/input-group"
|
|
46
56
|
import { ChevronDownIcon, XIcon, CheckIcon } from "lucide-react"
|
|
47
|
-
// CIL[
|
|
48
|
-
// CIL[
|
|
49
|
-
// CIL[DOC-
|
|
50
|
-
// CIL[DOC-
|
|
51
|
-
// CIL[DOC-CONTEXT module="combobox" layer="ui" related_files="[\".framework/src/components/ui/dialog.tsx\",\".framework/src/components/layout/Sidebar.tsx\",\"custom/apps/portal/pages/ContentPage.tsx\",\".framework/src/pages/admin/RolesPage.tsx\",\"\\\"]"]
|
|
52
|
-
// CIL[DOC-CONTRACT inputs="none" outputs="Combobox root primitive" errors="none" side_effects="none"]
|
|
53
|
-
// CIL[DOC-MICRO logic_summary="Direct alias to Base UI ComboboxPrimitive.Root" notable_decisions="[]"]
|
|
54
|
-
// CIL[DOC-CONFIDENCE pass="second" score="0.95" flags="none"]
|
|
55
|
-
// CIL[DOC-STABILITY stability="stable"]
|
|
56
|
-
// CIL[DOC-VECTOR type="context" content="Layer: ui. Direct callers: 0. Direct calls: 0. Related files: .framework/src/components/ui/dialog.tsx, .framework/src/components/layout/Sidebar.tsx, custom/apps/portal/pages/ContentPage.tsx, .framework/src/pages/admin/RolesPage.tsx, \."]
|
|
57
|
-
// CIL[DOC-VECTOR type="blast_radius" content="Direct callers: 0. Total affected: 0."]
|
|
58
|
-
// CIL[DOC-VECTOR type="configuration" content="No configuration dependencies."]
|
|
59
|
-
// CIL[DOC-VECTOR type="constraint" content="No test paths identified."]
|
|
57
|
+
// CIL[DOC-VECTOR type="context" content="purpose='Provides the Combobox UI components built on Base UI for the shadcn/ui design system'; No verified external callers; imports: .framework/src/lib/utils.ts,.framework/src/components/ui/button.tsx,.framework/src/components/ui/input-group.tsx"]
|
|
58
|
+
// CIL[DOC-VECTOR type="blast_radius" content="No direct caller data from CIL graph; local impact only"]
|
|
59
|
+
// CIL[DOC-VECTOR type="configuration" content="No environment or build configuration dependencies identified"]
|
|
60
|
+
// CIL[DOC-VECTOR type="constraint" content="Standard runtime; no special invariants documented"]
|
|
60
61
|
// CIL[DOC-VECTOR type="implementation_pattern" content="" status="pending_human_input"]
|
|
61
62
|
// CIL[DOC-VECTOR type="user_journey" content="" status="pending_human_input"]
|
|
62
|
-
|
|
63
|
-
// CIL[
|
|
64
|
-
// CIL[
|
|
65
|
-
// CIL[DOC-
|
|
66
|
-
// CIL[DOC-
|
|
67
|
-
// CIL[DOC-
|
|
68
|
-
// CIL[DOC-
|
|
69
|
-
// CIL[DOC-
|
|
70
|
-
// CIL[DOC-CONFIDENCE pass="second" score="0.95" flags="none"]
|
|
63
|
+
// CIL[END stable_id="~/.framework/src/components/ui/combobox.tsx:module_header:module_header"]
|
|
64
|
+
// CIL[BEGIN stable_id="~/.framework/src/components/ui/combobox.tsx:combobox:constant" type="constant" identity="combobox" parent="~/.framework/src/components/ui/combobox.tsx:module_header:module_header"]
|
|
65
|
+
// CIL[DOC-MACRO purpose="Assigns ComboboxPrimitive.Root to a local Combobox constant"]
|
|
66
|
+
// CIL[DOC-RESPONSIBILITY responsibility="Expose the root Combobox component under a concise local alias"]
|
|
67
|
+
// CIL[DOC-CONTEXT module="combobox" layer="components/ui" related_files=".framework/src/components/ui/button.tsx,.framework/src/components/ui/combobox.tsx,.framework/src/components/ui/input-group.tsx,.framework/src/lib/utils.ts"]
|
|
68
|
+
// CIL[DOC-CONTRACT inputs="none" outputs="Combobox constant alias" errors="none" side_effects="none"]
|
|
69
|
+
// CIL[DOC-MICRO logic_summary="Aliases ComboboxPrimitive.Root as Combobox for the public API." notable_decisions="[]"]
|
|
70
|
+
// CIL[DOC-CONFIDENCE pass="second" score="0.90" flags="none"]
|
|
71
71
|
// CIL[DOC-STABILITY stability="stable"]
|
|
72
|
-
|
|
73
|
-
// CIL[DOC-VECTOR type="
|
|
74
|
-
// CIL[DOC-VECTOR type="
|
|
75
|
-
// CIL[DOC-VECTOR type="
|
|
72
|
+
const Combobox = ComboboxPrimitive.Root
|
|
73
|
+
// CIL[DOC-VECTOR type="context" content="purpose='Assigns ComboboxPrimitive.Root to a local Combobox constant'; No verified external callers; imports: .framework/src/lib/utils.ts,.framework/src/components/ui/button.tsx,.framework/src/components/ui/input-group.tsx"]
|
|
74
|
+
// CIL[DOC-VECTOR type="blast_radius" content="No direct caller data from CIL graph; local impact only"]
|
|
75
|
+
// CIL[DOC-VECTOR type="configuration" content="No environment or build configuration dependencies identified"]
|
|
76
|
+
// CIL[DOC-VECTOR type="constraint" content="Standard runtime; no special invariants documented"]
|
|
76
77
|
// CIL[DOC-VECTOR type="implementation_pattern" content="" status="pending_human_input"]
|
|
77
78
|
// CIL[DOC-VECTOR type="user_journey" content="" status="pending_human_input"]
|
|
79
|
+
// CIL[END stable_id="~/.framework/src/components/ui/combobox.tsx:combobox:constant"]
|
|
80
|
+
|
|
81
|
+
// CIL[BEGIN stable_id="~/.framework/src/components/ui/combobox.tsx:ComboboxValue:component" type="component" identity="ComboboxValue" parent="~/.framework/src/components/ui/combobox.tsx:module_header:module_header"]
|
|
82
|
+
// CIL[DOC-MACRO purpose="Renders the selected value display inside a combobox"]
|
|
83
|
+
// CIL[DOC-RESPONSIBILITY responsibility="Return a styled ComboboxPrimitive.Value wrapper"]
|
|
84
|
+
// CIL[DOC-CONTEXT module="combobox" layer="components/ui" related_files=".framework/src/components/ui/button.tsx,.framework/src/components/ui/combobox.tsx,.framework/src/components/ui/input-group.tsx,.framework/src/lib/utils.ts"]
|
|
85
|
+
// CIL[DOC-CONTRACT inputs="...props from ComboboxPrimitive.Value.Props" outputs="React element" errors="none" side_effects="none"]
|
|
86
|
+
// CIL[DOC-MICRO logic_summary="Spreads props onto ComboboxPrimitive.Value with a data-slot attribute." notable_decisions="[]"]
|
|
87
|
+
// CIL[DOC-CONFIDENCE pass="second" score="0.90" flags="none"]
|
|
88
|
+
// CIL[DOC-STABILITY stability="stable"]
|
|
78
89
|
function ComboboxValue({ ...props }: ComboboxPrimitive.Value.Props) {
|
|
79
90
|
return <ComboboxPrimitive.Value data-slot="combobox-value" {...props} />
|
|
80
91
|
}
|
|
81
|
-
|
|
82
|
-
// CIL[
|
|
83
|
-
// CIL[DOC-
|
|
84
|
-
// CIL[DOC-
|
|
85
|
-
// CIL[DOC-
|
|
86
|
-
// CIL[DOC-CONTRACT inputs="none" outputs="trigger with icon" errors="none" side_effects="renders DOM"]
|
|
87
|
-
// CIL[DOC-MICRO logic_summary="Creates trigger with chevron down icon and icon sizing" notable_decisions="[]"]
|
|
88
|
-
// CIL[DOC-CONFIDENCE pass="second" score="0.95" flags="none"]
|
|
89
|
-
// CIL[DOC-STABILITY stability="stable"]
|
|
90
|
-
// CIL[DOC-VECTOR type="context" content="Layer: ui. Direct callers: 0. Direct calls: 0. Related files: \."]
|
|
91
|
-
// CIL[DOC-VECTOR type="blast_radius" content="Direct callers: 0. Total affected: 0."]
|
|
92
|
-
// CIL[DOC-VECTOR type="configuration" content="No configuration dependencies."]
|
|
93
|
-
// CIL[DOC-VECTOR type="constraint" content="No test paths identified."]
|
|
92
|
+
|
|
93
|
+
// CIL[DOC-VECTOR type="context" content="purpose='Renders the selected value display inside a combobox'; No verified external callers; imports: .framework/src/lib/utils.ts,.framework/src/components/ui/button.tsx,.framework/src/components/ui/input-group.tsx"]
|
|
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"]
|
|
94
97
|
// CIL[DOC-VECTOR type="implementation_pattern" content="" status="pending_human_input"]
|
|
95
98
|
// CIL[DOC-VECTOR type="user_journey" content="" status="pending_human_input"]
|
|
99
|
+
// CIL[END stable_id="~/.framework/src/components/ui/combobox.tsx:ComboboxValue:component"]
|
|
100
|
+
|
|
101
|
+
// CIL[BEGIN stable_id="~/.framework/src/components/ui/combobox.tsx:ComboboxTrigger:component" type="component" identity="ComboboxTrigger" parent="~/.framework/src/components/ui/combobox.tsx:module_header:module_header"]
|
|
102
|
+
// CIL[DOC-MACRO purpose="Renders the combobox trigger button with a chevron icon"]
|
|
103
|
+
// CIL[DOC-RESPONSIBILITY responsibility="Render a trigger element that opens the combobox popup"]
|
|
104
|
+
// CIL[DOC-CONTEXT module="combobox" layer="components/ui" related_files=".framework/src/components/ui/button.tsx,.framework/src/components/ui/combobox.tsx,.framework/src/components/ui/input-group.tsx,.framework/src/lib/utils.ts"]
|
|
105
|
+
// CIL[DOC-CONTRACT inputs="className, children, ...props and trigger props" outputs="React element" errors="none" side_effects="none"]
|
|
106
|
+
// CIL[DOC-MICRO logic_summary="Wraps ComboboxPrimitive.Trigger with cn utilities and appends a ChevronDownIcon." notable_decisions="[]"]
|
|
107
|
+
// CIL[DOC-CONFIDENCE pass="second" score="0.90" flags="none"]
|
|
108
|
+
// CIL[DOC-STABILITY stability="stable"]
|
|
96
109
|
function ComboboxTrigger({
|
|
97
110
|
className,
|
|
98
111
|
children,
|
|
@@ -109,21 +122,22 @@ function ComboboxTrigger({
|
|
|
109
122
|
</ComboboxPrimitive.Trigger>
|
|
110
123
|
)
|
|
111
124
|
}
|
|
112
|
-
// CIL[
|
|
113
|
-
// CIL[
|
|
114
|
-
// CIL[DOC-
|
|
115
|
-
// CIL[DOC-
|
|
116
|
-
// CIL[DOC-CONTEXT module="combobox" layer="ui" related_files="[\"\\\"]"]
|
|
117
|
-
// CIL[DOC-CONTRACT inputs="none" outputs="clear button" errors="none" side_effects="renders DOM"]
|
|
118
|
-
// CIL[DOC-MICRO logic_summary="Creates ghost button with X icon using InputGroupButton" notable_decisions="[]"]
|
|
119
|
-
// CIL[DOC-CONFIDENCE pass="second" score="0.95" flags="none"]
|
|
120
|
-
// CIL[DOC-STABILITY stability="stable"]
|
|
121
|
-
// CIL[DOC-VECTOR type="context" content="Layer: ui. Direct callers: 0. Direct calls: 0. Related files: \."]
|
|
122
|
-
// CIL[DOC-VECTOR type="blast_radius" content="Direct callers: 0. Total affected: 0."]
|
|
123
|
-
// CIL[DOC-VECTOR type="configuration" content="No configuration dependencies."]
|
|
124
|
-
// CIL[DOC-VECTOR type="constraint" content="No test paths identified."]
|
|
125
|
+
// CIL[DOC-VECTOR type="context" content="purpose='Renders the combobox trigger button with a chevron icon'; No verified external callers; imports: .framework/src/lib/utils.ts,.framework/src/components/ui/button.tsx,.framework/src/components/ui/input-group.tsx"]
|
|
126
|
+
// CIL[DOC-VECTOR type="blast_radius" content="No direct caller data from CIL graph; local impact only"]
|
|
127
|
+
// CIL[DOC-VECTOR type="configuration" content="No environment or build configuration dependencies identified"]
|
|
128
|
+
// CIL[DOC-VECTOR type="constraint" content="Standard runtime; no special invariants documented"]
|
|
125
129
|
// CIL[DOC-VECTOR type="implementation_pattern" content="" status="pending_human_input"]
|
|
126
130
|
// CIL[DOC-VECTOR type="user_journey" content="" status="pending_human_input"]
|
|
131
|
+
// CIL[END stable_id="~/.framework/src/components/ui/combobox.tsx:ComboboxTrigger:component"]
|
|
132
|
+
|
|
133
|
+
// CIL[BEGIN stable_id="~/.framework/src/components/ui/combobox.tsx:ComboboxClear:component" type="component" identity="ComboboxClear" parent="~/.framework/src/components/ui/combobox.tsx:module_header:module_header"]
|
|
134
|
+
// CIL[DOC-MACRO purpose="Renders a clear button for the combobox selection"]
|
|
135
|
+
// CIL[DOC-RESPONSIBILITY responsibility="Render an accessible clear control as an InputGroupButton"]
|
|
136
|
+
// CIL[DOC-CONTEXT module="combobox" layer="components/ui" related_files=".framework/src/components/ui/button.tsx,.framework/src/components/ui/combobox.tsx,.framework/src/components/ui/input-group.tsx,.framework/src/lib/utils.ts"]
|
|
137
|
+
// CIL[DOC-CONTRACT inputs="className, ...props and clear props" outputs="React element" errors="none" side_effects="none"]
|
|
138
|
+
// CIL[DOC-MICRO logic_summary="Renders ComboboxPrimitive.Clear using an icon ghost button and an XIcon." notable_decisions="[]"]
|
|
139
|
+
// CIL[DOC-CONFIDENCE pass="second" score="0.90" flags="none"]
|
|
140
|
+
// CIL[DOC-STABILITY stability="stable"]
|
|
127
141
|
function ComboboxClear({ className, ...props }: ComboboxPrimitive.Clear.Props) {
|
|
128
142
|
return (
|
|
129
143
|
<ComboboxPrimitive.Clear
|
|
@@ -136,21 +150,22 @@ function ComboboxClear({ className, ...props }: ComboboxPrimitive.Clear.Props) {
|
|
|
136
150
|
</ComboboxPrimitive.Clear>
|
|
137
151
|
)
|
|
138
152
|
}
|
|
139
|
-
// CIL[
|
|
140
|
-
// CIL[
|
|
141
|
-
// CIL[DOC-
|
|
142
|
-
// CIL[DOC-
|
|
143
|
-
// CIL[DOC-CONTEXT module="combobox" layer="ui" related_files="[]"]
|
|
144
|
-
// CIL[DOC-CONTRACT inputs="none" outputs="input group" errors="none" side_effects="renders DOM"]
|
|
145
|
-
// CIL[DOC-MICRO logic_summary="Creates InputGroup with conditional trigger and clear button addons" notable_decisions="[]"]
|
|
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: ui. Direct callers: 0. Direct calls: 0. Related files: none."]
|
|
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."]
|
|
153
|
+
// CIL[DOC-VECTOR type="context" content="purpose='Renders a clear button for the combobox selection'; No verified external callers; imports: .framework/src/lib/utils.ts,.framework/src/components/ui/button.tsx,.framework/src/components/ui/input-group.tsx"]
|
|
154
|
+
// CIL[DOC-VECTOR type="blast_radius" content="No direct caller data from CIL graph; local impact only"]
|
|
155
|
+
// CIL[DOC-VECTOR type="configuration" content="No environment or build configuration dependencies identified"]
|
|
156
|
+
// CIL[DOC-VECTOR type="constraint" content="Standard runtime; no special invariants documented"]
|
|
152
157
|
// CIL[DOC-VECTOR type="implementation_pattern" content="" status="pending_human_input"]
|
|
153
158
|
// CIL[DOC-VECTOR type="user_journey" content="" status="pending_human_input"]
|
|
159
|
+
// CIL[END stable_id="~/.framework/src/components/ui/combobox.tsx:ComboboxClear:component"]
|
|
160
|
+
|
|
161
|
+
// CIL[BEGIN stable_id="~/.framework/src/components/ui/combobox.tsx:ComboboxInput:component" type="component" identity="ComboboxInput" parent="~/.framework/src/components/ui/combobox.tsx:module_header:module_header"]
|
|
162
|
+
// CIL[DOC-MACRO purpose="Renders the combobox text input with optional trigger and clear controls"]
|
|
163
|
+
// CIL[DOC-RESPONSIBILITY responsibility="Compose an InputGroup with the primitive input, trigger and clear addons"]
|
|
164
|
+
// CIL[DOC-CONTEXT module="combobox" layer="components/ui" related_files=".framework/src/components/ui/button.tsx,.framework/src/components/ui/combobox.tsx,.framework/src/components/ui/input-group.tsx,.framework/src/lib/utils.ts"]
|
|
165
|
+
// CIL[DOC-CONTRACT inputs="className, children, disabled, showTrigger, showClear and input props" outputs="React element" errors="none" side_effects="none"]
|
|
166
|
+
// CIL[DOC-MICRO logic_summary="Assembles an InputGroup around ComboboxPrimitive.Input and conditionally renders a ComboboxTrigger and ComboboxClear." notable_decisions="[]"]
|
|
167
|
+
// CIL[DOC-CONFIDENCE pass="second" score="0.90" flags="none"]
|
|
168
|
+
// CIL[DOC-STABILITY stability="stable"]
|
|
154
169
|
function ComboboxInput({
|
|
155
170
|
className,
|
|
156
171
|
children,
|
|
@@ -187,21 +202,22 @@ function ComboboxInput({
|
|
|
187
202
|
</InputGroup>
|
|
188
203
|
)
|
|
189
204
|
}
|
|
190
|
-
// CIL[
|
|
191
|
-
// CIL[
|
|
192
|
-
// CIL[DOC-
|
|
193
|
-
// CIL[DOC-
|
|
194
|
-
// CIL[DOC-CONTEXT module="combobox" layer="ui" related_files="[]"]
|
|
195
|
-
// CIL[DOC-CONTRACT inputs="none" outputs="popup container" errors="none" side_effects="renders DOM"]
|
|
196
|
-
// CIL[DOC-MICRO logic_summary="Creates positioned popup with animations and responsive sizing" notable_decisions="[]"]
|
|
197
|
-
// CIL[DOC-CONFIDENCE pass="second" score="0.95" flags="none"]
|
|
198
|
-
// CIL[DOC-STABILITY stability="stable"]
|
|
199
|
-
// CIL[DOC-VECTOR type="context" content="Layer: ui. Direct callers: 0. Direct calls: 0. Related files: none."]
|
|
200
|
-
// CIL[DOC-VECTOR type="blast_radius" content="Direct callers: 0. Total affected: 0."]
|
|
201
|
-
// CIL[DOC-VECTOR type="configuration" content="No configuration dependencies."]
|
|
202
|
-
// CIL[DOC-VECTOR type="constraint" content="No test paths identified."]
|
|
205
|
+
// CIL[DOC-VECTOR type="context" content="purpose='Renders the combobox text input with optional trigger and clear controls'; No verified external callers; imports: .framework/src/lib/utils.ts,.framework/src/components/ui/button.tsx,.framework/src/components/ui/input-group.tsx"]
|
|
206
|
+
// CIL[DOC-VECTOR type="blast_radius" content="No direct caller data from CIL graph; local impact only"]
|
|
207
|
+
// CIL[DOC-VECTOR type="configuration" content="No environment or build configuration dependencies identified"]
|
|
208
|
+
// CIL[DOC-VECTOR type="constraint" content="Standard runtime; no special invariants documented"]
|
|
203
209
|
// CIL[DOC-VECTOR type="implementation_pattern" content="" status="pending_human_input"]
|
|
204
210
|
// CIL[DOC-VECTOR type="user_journey" content="" status="pending_human_input"]
|
|
211
|
+
// CIL[END stable_id="~/.framework/src/components/ui/combobox.tsx:ComboboxInput:component"]
|
|
212
|
+
|
|
213
|
+
// CIL[BEGIN stable_id="~/.framework/src/components/ui/combobox.tsx:ComboboxContent:component" type="component" identity="ComboboxContent" parent="~/.framework/src/components/ui/combobox.tsx:module_header:module_header"]
|
|
214
|
+
// CIL[DOC-MACRO purpose="Renders the combobox popup content with positioning"]
|
|
215
|
+
// CIL[DOC-RESPONSIBILITY responsibility="Portal and position the popup surface for the combobox list"]
|
|
216
|
+
// CIL[DOC-CONTEXT module="combobox" layer="components/ui" related_files=".framework/src/components/ui/button.tsx,.framework/src/components/ui/combobox.tsx,.framework/src/components/ui/input-group.tsx,.framework/src/lib/utils.ts"]
|
|
217
|
+
// CIL[DOC-CONTRACT inputs="className, side, sideOffset, align, alignOffset, anchor, ...props, Pick positioner props and popup props" outputs="React element" errors="none" side_effects="DOM portal"]
|
|
218
|
+
// CIL[DOC-MICRO logic_summary="Uses ComboboxPrimitive.Portal and Positioner to render a themed Popup with animation and data attributes." notable_decisions="[]"]
|
|
219
|
+
// CIL[DOC-CONFIDENCE pass="second" score="0.90" flags="none"]
|
|
220
|
+
// CIL[DOC-STABILITY stability="stable"]
|
|
205
221
|
function ComboboxContent({
|
|
206
222
|
className,
|
|
207
223
|
side = "bottom",
|
|
@@ -235,21 +251,22 @@ function ComboboxContent({
|
|
|
235
251
|
</ComboboxPrimitive.Portal>
|
|
236
252
|
)
|
|
237
253
|
}
|
|
238
|
-
// CIL[
|
|
239
|
-
// CIL[
|
|
240
|
-
// CIL[DOC-
|
|
241
|
-
// CIL[DOC-
|
|
242
|
-
// CIL[DOC-CONTEXT module="combobox" layer="ui" related_files="[]"]
|
|
243
|
-
// CIL[DOC-CONTRACT inputs="none" outputs="scrollable list" errors="none" side_effects="renders DOM"]
|
|
244
|
-
// CIL[DOC-MICRO logic_summary="Creates scrollable container with overflow handling and padding" notable_decisions="[]"]
|
|
245
|
-
// CIL[DOC-CONFIDENCE pass="second" score="0.95" flags="none"]
|
|
246
|
-
// CIL[DOC-STABILITY stability="stable"]
|
|
247
|
-
// CIL[DOC-VECTOR type="context" content="Layer: ui. Direct callers: 0. Direct calls: 0. Related files: none."]
|
|
248
|
-
// CIL[DOC-VECTOR type="blast_radius" content="Direct callers: 0. Total affected: 0."]
|
|
249
|
-
// CIL[DOC-VECTOR type="configuration" content="No configuration dependencies."]
|
|
250
|
-
// CIL[DOC-VECTOR type="constraint" content="No test paths identified."]
|
|
254
|
+
// CIL[DOC-VECTOR type="context" content="purpose='Renders the combobox popup content with positioning'; No verified external callers; imports: .framework/src/lib/utils.ts,.framework/src/components/ui/button.tsx,.framework/src/components/ui/input-group.tsx"]
|
|
255
|
+
// CIL[DOC-VECTOR type="blast_radius" content="No direct caller data from CIL graph; local impact only"]
|
|
256
|
+
// CIL[DOC-VECTOR type="configuration" content="No environment or build configuration dependencies identified"]
|
|
257
|
+
// CIL[DOC-VECTOR type="constraint" content="Standard runtime; no special invariants documented"]
|
|
251
258
|
// CIL[DOC-VECTOR type="implementation_pattern" content="" status="pending_human_input"]
|
|
252
259
|
// CIL[DOC-VECTOR type="user_journey" content="" status="pending_human_input"]
|
|
260
|
+
// CIL[END stable_id="~/.framework/src/components/ui/combobox.tsx:ComboboxContent:component"]
|
|
261
|
+
|
|
262
|
+
// CIL[BEGIN stable_id="~/.framework/src/components/ui/combobox.tsx:ComboboxList:component" type="component" identity="ComboboxList" parent="~/.framework/src/components/ui/combobox.tsx:module_header:module_header"]
|
|
263
|
+
// CIL[DOC-MACRO purpose="Renders the scrollable list container for combobox items"]
|
|
264
|
+
// CIL[DOC-RESPONSIBILITY responsibility="Render a styled ComboboxPrimitive.List with overflow and empty state support"]
|
|
265
|
+
// CIL[DOC-CONTEXT module="combobox" layer="components/ui" related_files=".framework/src/components/ui/button.tsx,.framework/src/components/ui/combobox.tsx,.framework/src/components/ui/input-group.tsx,.framework/src/lib/utils.ts"]
|
|
266
|
+
// CIL[DOC-CONTRACT inputs="className, ...props and list props" outputs="React element" errors="none" side_effects="none"]
|
|
267
|
+
// CIL[DOC-MICRO logic_summary="Applies a themed className with no-scrollbar, scroll padding and empty-state styling." notable_decisions="[]"]
|
|
268
|
+
// CIL[DOC-CONFIDENCE pass="second" score="0.90" flags="none"]
|
|
269
|
+
// CIL[DOC-STABILITY stability="stable"]
|
|
253
270
|
function ComboboxList({ className, ...props }: ComboboxPrimitive.List.Props) {
|
|
254
271
|
return (
|
|
255
272
|
<ComboboxPrimitive.List
|
|
@@ -262,21 +279,22 @@ function ComboboxList({ className, ...props }: ComboboxPrimitive.List.Props) {
|
|
|
262
279
|
/>
|
|
263
280
|
)
|
|
264
281
|
}
|
|
265
|
-
// CIL[
|
|
266
|
-
// CIL[
|
|
267
|
-
// CIL[DOC-
|
|
268
|
-
// CIL[DOC-
|
|
269
|
-
// CIL[DOC-CONTEXT module="combobox" layer="ui" related_files="[]"]
|
|
270
|
-
// CIL[DOC-CONTRACT inputs="none" outputs="selectable item" errors="none" side_effects="renders DOM"]
|
|
271
|
-
// CIL[DOC-MICRO logic_summary="Creates interactive item with selection indicator and styling" notable_decisions="[]"]
|
|
272
|
-
// CIL[DOC-CONFIDENCE pass="second" score="0.95" flags="none"]
|
|
273
|
-
// CIL[DOC-STABILITY stability="stable"]
|
|
274
|
-
// CIL[DOC-VECTOR type="context" content="Layer: ui. Direct callers: 0. Direct calls: 0. Related files: none."]
|
|
275
|
-
// CIL[DOC-VECTOR type="blast_radius" content="Direct callers: 0. Total affected: 0."]
|
|
276
|
-
// CIL[DOC-VECTOR type="configuration" content="No configuration dependencies."]
|
|
277
|
-
// CIL[DOC-VECTOR type="constraint" content="No test paths identified."]
|
|
282
|
+
// CIL[DOC-VECTOR type="context" content="purpose='Renders the scrollable list container for combobox items'; No verified external callers; imports: .framework/src/lib/utils.ts,.framework/src/components/ui/button.tsx,.framework/src/components/ui/input-group.tsx"]
|
|
283
|
+
// CIL[DOC-VECTOR type="blast_radius" content="No direct caller data from CIL graph; local impact only"]
|
|
284
|
+
// CIL[DOC-VECTOR type="configuration" content="No environment or build configuration dependencies identified"]
|
|
285
|
+
// CIL[DOC-VECTOR type="constraint" content="Standard runtime; no special invariants documented"]
|
|
278
286
|
// CIL[DOC-VECTOR type="implementation_pattern" content="" status="pending_human_input"]
|
|
279
287
|
// CIL[DOC-VECTOR type="user_journey" content="" status="pending_human_input"]
|
|
288
|
+
// CIL[END stable_id="~/.framework/src/components/ui/combobox.tsx:ComboboxList:component"]
|
|
289
|
+
|
|
290
|
+
// CIL[BEGIN stable_id="~/.framework/src/components/ui/combobox.tsx:ComboboxItem:component" type="component" identity="ComboboxItem" parent="~/.framework/src/components/ui/combobox.tsx:module_header:module_header"]
|
|
291
|
+
// CIL[DOC-MACRO purpose="Renders a selectable item inside the combobox list"]
|
|
292
|
+
// CIL[DOC-RESPONSIBILITY responsibility="Render a list item with highlighting, disabled and checked indicator states"]
|
|
293
|
+
// CIL[DOC-CONTEXT module="combobox" layer="components/ui" related_files=".framework/src/components/ui/button.tsx,.framework/src/components/ui/combobox.tsx,.framework/src/components/ui/input-group.tsx,.framework/src/lib/utils.ts"]
|
|
294
|
+
// CIL[DOC-CONTRACT inputs="className, children, ...props and item props" outputs="React element" errors="none" side_effects="none"]
|
|
295
|
+
// CIL[DOC-MICRO logic_summary="Wraps ComboboxPrimitive.Item and renders a CheckIcon indicator when selected." notable_decisions="[]"]
|
|
296
|
+
// CIL[DOC-CONFIDENCE pass="second" score="0.90" flags="none"]
|
|
297
|
+
// CIL[DOC-STABILITY stability="stable"]
|
|
280
298
|
function ComboboxItem({
|
|
281
299
|
className,
|
|
282
300
|
children,
|
|
@@ -302,21 +320,22 @@ function ComboboxItem({
|
|
|
302
320
|
</ComboboxPrimitive.Item>
|
|
303
321
|
)
|
|
304
322
|
}
|
|
305
|
-
// CIL[
|
|
306
|
-
// CIL[
|
|
307
|
-
// CIL[DOC-
|
|
308
|
-
// CIL[DOC-
|
|
309
|
-
// CIL[DOC-CONTEXT module="combobox" layer="ui" related_files="[]"]
|
|
310
|
-
// CIL[DOC-CONTRACT inputs="none" outputs="group container" errors="none" side_effects="renders DOM"]
|
|
311
|
-
// CIL[DOC-MICRO logic_summary="Wraps Base UI Group primitive with data-slot attribute" notable_decisions="[]"]
|
|
312
|
-
// CIL[DOC-CONFIDENCE pass="second" score="0.95" flags="none"]
|
|
313
|
-
// CIL[DOC-STABILITY stability="stable"]
|
|
314
|
-
// CIL[DOC-VECTOR type="context" content="Layer: ui. Direct callers: 0. Direct calls: 0. Related files: none."]
|
|
315
|
-
// CIL[DOC-VECTOR type="blast_radius" content="Direct callers: 0. Total affected: 0."]
|
|
316
|
-
// CIL[DOC-VECTOR type="configuration" content="No configuration dependencies."]
|
|
317
|
-
// CIL[DOC-VECTOR type="constraint" content="No test paths identified."]
|
|
323
|
+
// CIL[DOC-VECTOR type="context" content="purpose='Renders a selectable item inside the combobox list'; No verified external callers; imports: .framework/src/lib/utils.ts,.framework/src/components/ui/button.tsx,.framework/src/components/ui/input-group.tsx"]
|
|
324
|
+
// CIL[DOC-VECTOR type="blast_radius" content="No direct caller data from CIL graph; local impact only"]
|
|
325
|
+
// CIL[DOC-VECTOR type="configuration" content="No environment or build configuration dependencies identified"]
|
|
326
|
+
// CIL[DOC-VECTOR type="constraint" content="Standard runtime; no special invariants documented"]
|
|
318
327
|
// CIL[DOC-VECTOR type="implementation_pattern" content="" status="pending_human_input"]
|
|
319
328
|
// CIL[DOC-VECTOR type="user_journey" content="" status="pending_human_input"]
|
|
329
|
+
// CIL[END stable_id="~/.framework/src/components/ui/combobox.tsx:ComboboxItem:component"]
|
|
330
|
+
|
|
331
|
+
// CIL[BEGIN stable_id="~/.framework/src/components/ui/combobox.tsx:ComboboxGroup:component" type="component" identity="ComboboxGroup" parent="~/.framework/src/components/ui/combobox.tsx:module_header:module_header"]
|
|
332
|
+
// CIL[DOC-MACRO purpose="Groups related combobox items under a common wrapper"]
|
|
333
|
+
// CIL[DOC-RESPONSIBILITY responsibility="Render a ComboboxPrimitive.Group with className merging"]
|
|
334
|
+
// CIL[DOC-CONTEXT module="combobox" layer="components/ui" related_files=".framework/src/components/ui/button.tsx,.framework/src/components/ui/combobox.tsx,.framework/src/components/ui/input-group.tsx,.framework/src/lib/utils.ts"]
|
|
335
|
+
// CIL[DOC-CONTRACT inputs="className, ...props and group props" outputs="React element" errors="none" side_effects="none"]
|
|
336
|
+
// CIL[DOC-MICRO logic_summary="Forwards props to ComboboxPrimitive.Group and applies className via cn." notable_decisions="[]"]
|
|
337
|
+
// CIL[DOC-CONFIDENCE pass="second" score="0.90" flags="none"]
|
|
338
|
+
// CIL[DOC-STABILITY stability="stable"]
|
|
320
339
|
function ComboboxGroup({ className, ...props }: ComboboxPrimitive.Group.Props) {
|
|
321
340
|
return (
|
|
322
341
|
<ComboboxPrimitive.Group
|
|
@@ -326,21 +345,22 @@ function ComboboxGroup({ className, ...props }: ComboboxPrimitive.Group.Props) {
|
|
|
326
345
|
/>
|
|
327
346
|
)
|
|
328
347
|
}
|
|
329
|
-
// CIL[
|
|
330
|
-
// CIL[
|
|
331
|
-
// CIL[DOC-
|
|
332
|
-
// CIL[DOC-
|
|
333
|
-
// CIL[DOC-CONTEXT module="combobox" layer="ui" related_files="[]"]
|
|
334
|
-
// CIL[DOC-CONTRACT inputs="none" outputs="styled label" errors="none" side_effects="renders DOM"]
|
|
335
|
-
// CIL[DOC-MICRO logic_summary="Creates muted text label with padding for group headers" notable_decisions="[]"]
|
|
336
|
-
// CIL[DOC-CONFIDENCE pass="second" score="0.95" flags="none"]
|
|
337
|
-
// CIL[DOC-STABILITY stability="stable"]
|
|
338
|
-
// CIL[DOC-VECTOR type="context" content="Layer: ui. Direct callers: 0. Direct calls: 0. Related files: none."]
|
|
339
|
-
// CIL[DOC-VECTOR type="blast_radius" content="Direct callers: 0. Total affected: 0."]
|
|
340
|
-
// CIL[DOC-VECTOR type="configuration" content="No configuration dependencies."]
|
|
341
|
-
// CIL[DOC-VECTOR type="constraint" content="No test paths identified."]
|
|
348
|
+
// CIL[DOC-VECTOR type="context" content="purpose='Groups related combobox items under a common wrapper'; No verified external callers; imports: .framework/src/lib/utils.ts,.framework/src/components/ui/button.tsx,.framework/src/components/ui/input-group.tsx"]
|
|
349
|
+
// CIL[DOC-VECTOR type="blast_radius" content="No direct caller data from CIL graph; local impact only"]
|
|
350
|
+
// CIL[DOC-VECTOR type="configuration" content="No environment or build configuration dependencies identified"]
|
|
351
|
+
// CIL[DOC-VECTOR type="constraint" content="Standard runtime; no special invariants documented"]
|
|
342
352
|
// CIL[DOC-VECTOR type="implementation_pattern" content="" status="pending_human_input"]
|
|
343
353
|
// CIL[DOC-VECTOR type="user_journey" content="" status="pending_human_input"]
|
|
354
|
+
// CIL[END stable_id="~/.framework/src/components/ui/combobox.tsx:ComboboxGroup:component"]
|
|
355
|
+
|
|
356
|
+
// CIL[BEGIN stable_id="~/.framework/src/components/ui/combobox.tsx:ComboboxLabel:component" type="component" identity="ComboboxLabel" parent="~/.framework/src/components/ui/combobox.tsx:module_header:module_header"]
|
|
357
|
+
// CIL[DOC-MACRO purpose="Renders a label for a combobox group"]
|
|
358
|
+
// CIL[DOC-RESPONSIBILITY responsibility="Render a muted group label using ComboboxPrimitive.GroupLabel"]
|
|
359
|
+
// CIL[DOC-CONTEXT module="combobox" layer="components/ui" related_files=".framework/src/components/ui/button.tsx,.framework/src/components/ui/combobox.tsx,.framework/src/components/ui/input-group.tsx,.framework/src/lib/utils.ts"]
|
|
360
|
+
// CIL[DOC-CONTRACT inputs="className, ...props and label props" outputs="React element" errors="none" side_effects="none"]
|
|
361
|
+
// CIL[DOC-MICRO logic_summary="Applies muted typography and padding to a ComboboxPrimitive.GroupLabel." notable_decisions="[]"]
|
|
362
|
+
// CIL[DOC-CONFIDENCE pass="second" score="0.90" flags="none"]
|
|
363
|
+
// CIL[DOC-STABILITY stability="stable"]
|
|
344
364
|
function ComboboxLabel({
|
|
345
365
|
className,
|
|
346
366
|
...props
|
|
@@ -353,41 +373,43 @@ function ComboboxLabel({
|
|
|
353
373
|
/>
|
|
354
374
|
)
|
|
355
375
|
}
|
|
356
|
-
// CIL[
|
|
357
|
-
// CIL[
|
|
358
|
-
// CIL[DOC-
|
|
359
|
-
// CIL[DOC-
|
|
360
|
-
// CIL[DOC-CONTEXT module="combobox" layer="ui" related_files="[]"]
|
|
361
|
-
// CIL[DOC-CONTRACT inputs="none" outputs="collection wrapper" errors="none" side_effects="renders DOM"]
|
|
362
|
-
// CIL[DOC-MICRO logic_summary="Wraps Base UI Collection primitive with data-slot attribute" notable_decisions="[]"]
|
|
363
|
-
// CIL[DOC-CONFIDENCE pass="second" score="0.95" flags="none"]
|
|
364
|
-
// CIL[DOC-STABILITY stability="stable"]
|
|
365
|
-
// CIL[DOC-VECTOR type="context" content="Layer: ui. Direct callers: 0. Direct calls: 0. Related files: none."]
|
|
366
|
-
// CIL[DOC-VECTOR type="blast_radius" content="Direct callers: 0. Total affected: 0."]
|
|
367
|
-
// CIL[DOC-VECTOR type="configuration" content="No configuration dependencies."]
|
|
368
|
-
// CIL[DOC-VECTOR type="constraint" content="No test paths identified."]
|
|
376
|
+
// CIL[DOC-VECTOR type="context" content="purpose='Renders a label for a combobox group'; No verified external callers; imports: .framework/src/lib/utils.ts,.framework/src/components/ui/button.tsx,.framework/src/components/ui/input-group.tsx"]
|
|
377
|
+
// CIL[DOC-VECTOR type="blast_radius" content="No direct caller data from CIL graph; local impact only"]
|
|
378
|
+
// CIL[DOC-VECTOR type="configuration" content="No environment or build configuration dependencies identified"]
|
|
379
|
+
// CIL[DOC-VECTOR type="constraint" content="Standard runtime; no special invariants documented"]
|
|
369
380
|
// CIL[DOC-VECTOR type="implementation_pattern" content="" status="pending_human_input"]
|
|
370
381
|
// CIL[DOC-VECTOR type="user_journey" content="" status="pending_human_input"]
|
|
382
|
+
// CIL[END stable_id="~/.framework/src/components/ui/combobox.tsx:ComboboxLabel:component"]
|
|
383
|
+
|
|
384
|
+
// CIL[BEGIN stable_id="~/.framework/src/components/ui/combobox.tsx:ComboboxCollection:component" type="component" identity="ComboboxCollection" parent="~/.framework/src/components/ui/combobox.tsx:module_header:module_header"]
|
|
385
|
+
// CIL[DOC-MACRO purpose="Provides the collection wrapper for combobox options"]
|
|
386
|
+
// CIL[DOC-RESPONSIBILITY responsibility="Render a ComboboxPrimitive.Collection with a data-slot attribute"]
|
|
387
|
+
// CIL[DOC-CONTEXT module="combobox" layer="components/ui" related_files=".framework/src/components/ui/button.tsx,.framework/src/components/ui/combobox.tsx,.framework/src/components/ui/input-group.tsx,.framework/src/lib/utils.ts"]
|
|
388
|
+
// CIL[DOC-CONTRACT inputs="...props as collection props" outputs="React element" errors="none" side_effects="none"]
|
|
389
|
+
// CIL[DOC-MICRO logic_summary="Forwards props to ComboboxPrimitive.Collection and adds a data-slot marker." notable_decisions="[]"]
|
|
390
|
+
// CIL[DOC-CONFIDENCE pass="second" score="0.90" flags="none"]
|
|
391
|
+
// CIL[DOC-STABILITY stability="stable"]
|
|
371
392
|
function ComboboxCollection({ ...props }: ComboboxPrimitive.Collection.Props) {
|
|
372
393
|
return (
|
|
373
394
|
<ComboboxPrimitive.Collection data-slot="combobox-collection" {...props} />
|
|
374
395
|
)
|
|
375
396
|
}
|
|
376
|
-
// CIL[
|
|
377
|
-
// CIL[
|
|
378
|
-
// CIL[DOC-
|
|
379
|
-
// CIL[DOC-
|
|
380
|
-
// CIL[DOC-CONTEXT module="combobox" layer="ui" related_files="[]"]
|
|
381
|
-
// CIL[DOC-CONTRACT inputs="none" outputs="styled empty state" errors="none" side_effects="renders DOM"]
|
|
382
|
-
// CIL[DOC-MICRO logic_summary="Creates centered container with padding for empty state content" notable_decisions="[]"]
|
|
383
|
-
// CIL[DOC-CONFIDENCE pass="second" score="0.95" flags="none"]
|
|
384
|
-
// CIL[DOC-STABILITY stability="stable"]
|
|
385
|
-
// CIL[DOC-VECTOR type="context" content="Layer: ui. Direct callers: 0. Direct calls: 0. Related files: none."]
|
|
386
|
-
// CIL[DOC-VECTOR type="blast_radius" content="Direct callers: 0. Total affected: 0."]
|
|
387
|
-
// CIL[DOC-VECTOR type="configuration" content="No configuration dependencies."]
|
|
388
|
-
// CIL[DOC-VECTOR type="constraint" content="No test paths identified."]
|
|
397
|
+
// CIL[DOC-VECTOR type="context" content="purpose='Provides the collection wrapper for combobox options'; No verified external callers; imports: .framework/src/lib/utils.ts,.framework/src/components/ui/button.tsx,.framework/src/components/ui/input-group.tsx"]
|
|
398
|
+
// CIL[DOC-VECTOR type="blast_radius" content="No direct caller data from CIL graph; local impact only"]
|
|
399
|
+
// CIL[DOC-VECTOR type="configuration" content="No environment or build configuration dependencies identified"]
|
|
400
|
+
// CIL[DOC-VECTOR type="constraint" content="Standard runtime; no special invariants documented"]
|
|
389
401
|
// CIL[DOC-VECTOR type="implementation_pattern" content="" status="pending_human_input"]
|
|
390
402
|
// CIL[DOC-VECTOR type="user_journey" content="" status="pending_human_input"]
|
|
403
|
+
// CIL[END stable_id="~/.framework/src/components/ui/combobox.tsx:ComboboxCollection:component"]
|
|
404
|
+
|
|
405
|
+
// CIL[BEGIN stable_id="~/.framework/src/components/ui/combobox.tsx:ComboboxEmpty:component" type="component" identity="ComboboxEmpty" parent="~/.framework/src/components/ui/combobox.tsx:module_header:module_header"]
|
|
406
|
+
// CIL[DOC-MACRO purpose="Renders the empty state when no combobox items match"]
|
|
407
|
+
// CIL[DOC-RESPONSIBILITY responsibility="Display a centered empty message when the list has no matches"]
|
|
408
|
+
// CIL[DOC-CONTEXT module="combobox" layer="components/ui" related_files=".framework/src/components/ui/button.tsx,.framework/src/components/ui/combobox.tsx,.framework/src/components/ui/input-group.tsx,.framework/src/lib/utils.ts"]
|
|
409
|
+
// CIL[DOC-CONTRACT inputs="className, ...props and empty props" outputs="React element" errors="none" side_effects="none"]
|
|
410
|
+
// CIL[DOC-MICRO logic_summary="Uses a group-data-empty selector to show the message only when the list is empty." notable_decisions="[]"]
|
|
411
|
+
// CIL[DOC-CONFIDENCE pass="second" score="0.90" flags="none"]
|
|
412
|
+
// CIL[DOC-STABILITY stability="stable"]
|
|
391
413
|
function ComboboxEmpty({ className, ...props }: ComboboxPrimitive.Empty.Props) {
|
|
392
414
|
return (
|
|
393
415
|
<ComboboxPrimitive.Empty
|
|
@@ -400,21 +422,22 @@ function ComboboxEmpty({ className, ...props }: ComboboxPrimitive.Empty.Props) {
|
|
|
400
422
|
/>
|
|
401
423
|
)
|
|
402
424
|
}
|
|
403
|
-
// CIL[
|
|
404
|
-
// CIL[
|
|
405
|
-
// CIL[DOC-
|
|
406
|
-
// CIL[DOC-
|
|
407
|
-
// CIL[DOC-CONTEXT module="combobox" layer="ui" related_files="[]"]
|
|
408
|
-
// CIL[DOC-CONTRACT inputs="none" outputs="styled separator" errors="none" side_effects="renders DOM"]
|
|
409
|
-
// CIL[DOC-MICRO logic_summary="Creates horizontal line with margin and border styling" notable_decisions="[]"]
|
|
410
|
-
// CIL[DOC-CONFIDENCE pass="second" score="0.95" flags="none"]
|
|
411
|
-
// CIL[DOC-STABILITY stability="stable"]
|
|
412
|
-
// CIL[DOC-VECTOR type="context" content="Layer: ui. Direct callers: 0. Direct calls: 0. Related files: none."]
|
|
413
|
-
// CIL[DOC-VECTOR type="blast_radius" content="Direct callers: 0. Total affected: 0."]
|
|
414
|
-
// CIL[DOC-VECTOR type="configuration" content="No configuration dependencies."]
|
|
415
|
-
// CIL[DOC-VECTOR type="constraint" content="No test paths identified."]
|
|
425
|
+
// CIL[DOC-VECTOR type="context" content="purpose='Renders the empty state when no combobox items match'; No verified external callers; imports: .framework/src/lib/utils.ts,.framework/src/components/ui/button.tsx,.framework/src/components/ui/input-group.tsx"]
|
|
426
|
+
// CIL[DOC-VECTOR type="blast_radius" content="No direct caller data from CIL graph; local impact only"]
|
|
427
|
+
// CIL[DOC-VECTOR type="configuration" content="No environment or build configuration dependencies identified"]
|
|
428
|
+
// CIL[DOC-VECTOR type="constraint" content="Standard runtime; no special invariants documented"]
|
|
416
429
|
// CIL[DOC-VECTOR type="implementation_pattern" content="" status="pending_human_input"]
|
|
417
430
|
// CIL[DOC-VECTOR type="user_journey" content="" status="pending_human_input"]
|
|
431
|
+
// CIL[END stable_id="~/.framework/src/components/ui/combobox.tsx:ComboboxEmpty:component"]
|
|
432
|
+
|
|
433
|
+
// CIL[BEGIN stable_id="~/.framework/src/components/ui/combobox.tsx:ComboboxSeparator:component" type="component" identity="ComboboxSeparator" parent="~/.framework/src/components/ui/combobox.tsx:module_header:module_header"]
|
|
434
|
+
// CIL[DOC-MACRO purpose="Renders a visual divider between combobox groups"]
|
|
435
|
+
// CIL[DOC-RESPONSIBILITY responsibility="Render a horizontal separator between list groups"]
|
|
436
|
+
// CIL[DOC-CONTEXT module="combobox" layer="components/ui" related_files=".framework/src/components/ui/button.tsx,.framework/src/components/ui/combobox.tsx,.framework/src/components/ui/input-group.tsx,.framework/src/lib/utils.ts"]
|
|
437
|
+
// CIL[DOC-CONTRACT inputs="className, ...props and separator props" outputs="React element" errors="none" side_effects="none"]
|
|
438
|
+
// CIL[DOC-MICRO logic_summary="Forwards props to ComboboxPrimitive.Separator and applies a border line style." notable_decisions="[]"]
|
|
439
|
+
// CIL[DOC-CONFIDENCE pass="second" score="0.90" flags="none"]
|
|
440
|
+
// CIL[DOC-STABILITY stability="stable"]
|
|
418
441
|
function ComboboxSeparator({
|
|
419
442
|
className,
|
|
420
443
|
...props
|
|
@@ -427,21 +450,22 @@ function ComboboxSeparator({
|
|
|
427
450
|
/>
|
|
428
451
|
)
|
|
429
452
|
}
|
|
430
|
-
// CIL[
|
|
431
|
-
// CIL[
|
|
432
|
-
// CIL[DOC-
|
|
433
|
-
// CIL[DOC-
|
|
434
|
-
// CIL[DOC-CONTEXT module="combobox" layer="ui" related_files="[]"]
|
|
435
|
-
// CIL[DOC-CONTRACT inputs="none" outputs="chips container" errors="none" side_effects="renders DOM"]
|
|
436
|
-
// CIL[DOC-MICRO logic_summary="Creates flex container with border and focus styling for chips" notable_decisions="[]"]
|
|
437
|
-
// CIL[DOC-CONFIDENCE pass="second" score="0.95" flags="none"]
|
|
438
|
-
// CIL[DOC-STABILITY stability="stable"]
|
|
439
|
-
// CIL[DOC-VECTOR type="context" content="Layer: ui. Direct callers: 0. Direct calls: 0. Related files: none."]
|
|
440
|
-
// CIL[DOC-VECTOR type="blast_radius" content="Direct callers: 0. Total affected: 0."]
|
|
441
|
-
// CIL[DOC-VECTOR type="configuration" content="No configuration dependencies."]
|
|
442
|
-
// CIL[DOC-VECTOR type="constraint" content="No test paths identified."]
|
|
453
|
+
// CIL[DOC-VECTOR type="context" content="purpose='Renders a visual divider between combobox groups'; No verified external callers; imports: .framework/src/lib/utils.ts,.framework/src/components/ui/button.tsx,.framework/src/components/ui/input-group.tsx"]
|
|
454
|
+
// CIL[DOC-VECTOR type="blast_radius" content="No direct caller data from CIL graph; local impact only"]
|
|
455
|
+
// CIL[DOC-VECTOR type="configuration" content="No environment or build configuration dependencies identified"]
|
|
456
|
+
// CIL[DOC-VECTOR type="constraint" content="Standard runtime; no special invariants documented"]
|
|
443
457
|
// CIL[DOC-VECTOR type="implementation_pattern" content="" status="pending_human_input"]
|
|
444
458
|
// CIL[DOC-VECTOR type="user_journey" content="" status="pending_human_input"]
|
|
459
|
+
// CIL[END stable_id="~/.framework/src/components/ui/combobox.tsx:ComboboxSeparator:component"]
|
|
460
|
+
|
|
461
|
+
// CIL[BEGIN stable_id="~/.framework/src/components/ui/combobox.tsx:ComboboxChips:component" type="component" identity="ComboboxChips" parent="~/.framework/src/components/ui/combobox.tsx:module_header:module_header"]
|
|
462
|
+
// CIL[DOC-MACRO purpose="Renders the chip container for a multi-select combobox"]
|
|
463
|
+
// CIL[DOC-RESPONSIBILITY responsibility="Render a flex-wrapped chip list with focus and invalid states"]
|
|
464
|
+
// CIL[DOC-CONTEXT module="combobox" layer="components/ui" related_files=".framework/src/components/ui/button.tsx,.framework/src/components/ui/combobox.tsx,.framework/src/components/ui/input-group.tsx,.framework/src/lib/utils.ts"]
|
|
465
|
+
// CIL[DOC-CONTRACT inputs="className, ...props, ComboboxPrimitive chips type and component props" outputs="React element" errors="none" side_effects="none"]
|
|
466
|
+
// CIL[DOC-MICRO logic_summary="Wraps ComboboxPrimitive.Chips with a styled input-like container and focus ring." notable_decisions="[]"]
|
|
467
|
+
// CIL[DOC-CONFIDENCE pass="second" score="0.90" flags="none"]
|
|
468
|
+
// CIL[DOC-STABILITY stability="stable"]
|
|
445
469
|
function ComboboxChips({
|
|
446
470
|
className,
|
|
447
471
|
...props
|
|
@@ -458,21 +482,22 @@ function ComboboxChips({
|
|
|
458
482
|
/>
|
|
459
483
|
)
|
|
460
484
|
}
|
|
461
|
-
// CIL[
|
|
462
|
-
// CIL[
|
|
463
|
-
// CIL[DOC-
|
|
464
|
-
// CIL[DOC-
|
|
465
|
-
// CIL[DOC-CONTEXT module="combobox" layer="ui" related_files="[]"]
|
|
466
|
-
// CIL[DOC-CONTRACT inputs="none" outputs="styled chip" errors="none" side_effects="renders DOM"]
|
|
467
|
-
// CIL[DOC-MICRO logic_summary="Creates removable chip with conditional remove button and styling" notable_decisions="[]"]
|
|
468
|
-
// CIL[DOC-CONFIDENCE pass="second" score="0.95" flags="none"]
|
|
469
|
-
// CIL[DOC-STABILITY stability="stable"]
|
|
470
|
-
// CIL[DOC-VECTOR type="context" content="Layer: ui. Direct callers: 0. Direct calls: 0. Related files: none."]
|
|
471
|
-
// CIL[DOC-VECTOR type="blast_radius" content="Direct callers: 0. Total affected: 0."]
|
|
472
|
-
// CIL[DOC-VECTOR type="configuration" content="No configuration dependencies."]
|
|
473
|
-
// CIL[DOC-VECTOR type="constraint" content="No test paths identified."]
|
|
485
|
+
// CIL[DOC-VECTOR type="context" content="purpose='Renders the chip container for a multi-select combobox'; No verified external callers; imports: .framework/src/lib/utils.ts,.framework/src/components/ui/button.tsx,.framework/src/components/ui/input-group.tsx"]
|
|
486
|
+
// CIL[DOC-VECTOR type="blast_radius" content="No direct caller data from CIL graph; local impact only"]
|
|
487
|
+
// CIL[DOC-VECTOR type="configuration" content="No environment or build configuration dependencies identified"]
|
|
488
|
+
// CIL[DOC-VECTOR type="constraint" content="Standard runtime; no special invariants documented"]
|
|
474
489
|
// CIL[DOC-VECTOR type="implementation_pattern" content="" status="pending_human_input"]
|
|
475
490
|
// CIL[DOC-VECTOR type="user_journey" content="" status="pending_human_input"]
|
|
491
|
+
// CIL[END stable_id="~/.framework/src/components/ui/combobox.tsx:ComboboxChips:component"]
|
|
492
|
+
|
|
493
|
+
// CIL[BEGIN stable_id="~/.framework/src/components/ui/combobox.tsx:ComboboxChip:component" type="component" identity="ComboboxChip" parent="~/.framework/src/components/ui/combobox.tsx:module_header:module_header"]
|
|
494
|
+
// CIL[DOC-MACRO purpose="Renders an individual selected chip with optional remove button"]
|
|
495
|
+
// CIL[DOC-RESPONSIBILITY responsibility="Render a chip label and conditionally a remove button"]
|
|
496
|
+
// CIL[DOC-CONTEXT module="combobox" layer="components/ui" related_files=".framework/src/components/ui/button.tsx,.framework/src/components/ui/combobox.tsx,.framework/src/components/ui/input-group.tsx,.framework/src/lib/utils.ts"]
|
|
497
|
+
// CIL[DOC-CONTRACT inputs="className, children, showRemove, ...props and chip props" outputs="React element" errors="none" side_effects="none"]
|
|
498
|
+
// CIL[DOC-MICRO logic_summary="Renders ComboboxPrimitive.Chip and conditionally a ChipRemove button using Button." notable_decisions="[]"]
|
|
499
|
+
// CIL[DOC-CONFIDENCE pass="second" score="0.90" flags="none"]
|
|
500
|
+
// CIL[DOC-STABILITY stability="stable"]
|
|
476
501
|
function ComboboxChip({
|
|
477
502
|
className,
|
|
478
503
|
children,
|
|
@@ -503,21 +528,22 @@ function ComboboxChip({
|
|
|
503
528
|
</ComboboxPrimitive.Chip>
|
|
504
529
|
)
|
|
505
530
|
}
|
|
506
|
-
// CIL[
|
|
507
|
-
// CIL[
|
|
508
|
-
// CIL[DOC-
|
|
509
|
-
// CIL[DOC-
|
|
510
|
-
// CIL[DOC-CONTEXT module="combobox" layer="ui" related_files="[]"]
|
|
511
|
-
// CIL[DOC-CONTRACT inputs="none" outputs="chips input" errors="none" side_effects="renders DOM"]
|
|
512
|
-
// CIL[DOC-MICRO logic_summary="Creates minimal input field with outline removal for chips" notable_decisions="[]"]
|
|
513
|
-
// CIL[DOC-CONFIDENCE pass="second" score="0.95" flags="none"]
|
|
514
|
-
// CIL[DOC-STABILITY stability="stable"]
|
|
515
|
-
// CIL[DOC-VECTOR type="context" content="Layer: ui. Direct callers: 0. Direct calls: 0. Related files: none."]
|
|
516
|
-
// CIL[DOC-VECTOR type="blast_radius" content="Direct callers: 0. Total affected: 0."]
|
|
517
|
-
// CIL[DOC-VECTOR type="configuration" content="No configuration dependencies."]
|
|
518
|
-
// CIL[DOC-VECTOR type="constraint" content="No test paths identified."]
|
|
531
|
+
// CIL[DOC-VECTOR type="context" content="purpose='Renders an individual selected chip with optional remove button'; No verified external callers; imports: .framework/src/lib/utils.ts,.framework/src/components/ui/button.tsx,.framework/src/components/ui/input-group.tsx"]
|
|
532
|
+
// CIL[DOC-VECTOR type="blast_radius" content="No direct caller data from CIL graph; local impact only"]
|
|
533
|
+
// CIL[DOC-VECTOR type="configuration" content="No environment or build configuration dependencies identified"]
|
|
534
|
+
// CIL[DOC-VECTOR type="constraint" content="Standard runtime; no special invariants documented"]
|
|
519
535
|
// CIL[DOC-VECTOR type="implementation_pattern" content="" status="pending_human_input"]
|
|
520
536
|
// CIL[DOC-VECTOR type="user_journey" content="" status="pending_human_input"]
|
|
537
|
+
// CIL[END stable_id="~/.framework/src/components/ui/combobox.tsx:ComboboxChip:component"]
|
|
538
|
+
|
|
539
|
+
// CIL[BEGIN stable_id="~/.framework/src/components/ui/combobox.tsx:ComboboxChipsInput:component" type="component" identity="ComboboxChipsInput" parent="~/.framework/src/components/ui/combobox.tsx:module_header:module_header"]
|
|
540
|
+
// CIL[DOC-MACRO purpose="Renders the inline text input inside the chip container"]
|
|
541
|
+
// CIL[DOC-RESPONSIBILITY responsibility="Render a flexible text input for typing within chips"]
|
|
542
|
+
// CIL[DOC-CONTEXT module="combobox" layer="components/ui" related_files=".framework/src/components/ui/button.tsx,.framework/src/components/ui/combobox.tsx,.framework/src/components/ui/input-group.tsx,.framework/src/lib/utils.ts"]
|
|
543
|
+
// CIL[DOC-CONTRACT inputs="className, ...props and input props" outputs="React element" errors="none" side_effects="none"]
|
|
544
|
+
// CIL[DOC-MICRO logic_summary="Forwards props to ComboboxPrimitive.Input and applies a small outline-none className." notable_decisions="[]"]
|
|
545
|
+
// CIL[DOC-CONFIDENCE pass="second" score="0.90" flags="none"]
|
|
546
|
+
// CIL[DOC-STABILITY stability="stable"]
|
|
521
547
|
function ComboboxChipsInput({
|
|
522
548
|
className,
|
|
523
549
|
...props
|
|
@@ -530,39 +556,40 @@ function ComboboxChipsInput({
|
|
|
530
556
|
/>
|
|
531
557
|
)
|
|
532
558
|
}
|
|
533
|
-
// CIL[
|
|
534
|
-
// CIL[
|
|
535
|
-
// CIL[DOC-
|
|
536
|
-
// CIL[DOC-
|
|
537
|
-
// CIL[DOC-CONTEXT module="combobox" layer="ui" related_files="[]"]
|
|
538
|
-
// CIL[DOC-CONTRACT inputs="none" outputs="React ref" errors="none" side_effects="none"]
|
|
539
|
-
// CIL[DOC-MICRO logic_summary="Creates React ref for HTMLDivElement anchor element" notable_decisions="[]"]
|
|
540
|
-
// CIL[DOC-CONFIDENCE pass="second" score="0.95" flags="none"]
|
|
541
|
-
// CIL[DOC-STABILITY stability="stable"]
|
|
542
|
-
// CIL[DOC-VECTOR type="context" content="Layer: ui. Direct callers: 0. Direct calls: 0. Related files: none."]
|
|
543
|
-
// CIL[DOC-VECTOR type="blast_radius" content="Direct callers: 0. Total affected: 0."]
|
|
544
|
-
// CIL[DOC-VECTOR type="configuration" content="No configuration dependencies."]
|
|
545
|
-
// CIL[DOC-VECTOR type="constraint" content="No test paths identified."]
|
|
559
|
+
// CIL[DOC-VECTOR type="context" content="purpose='Renders the inline text input inside the chip container'; No verified external callers; imports: .framework/src/lib/utils.ts,.framework/src/components/ui/button.tsx,.framework/src/components/ui/input-group.tsx"]
|
|
560
|
+
// CIL[DOC-VECTOR type="blast_radius" content="No direct caller data from CIL graph; local impact only"]
|
|
561
|
+
// CIL[DOC-VECTOR type="configuration" content="No environment or build configuration dependencies identified"]
|
|
562
|
+
// CIL[DOC-VECTOR type="constraint" content="Standard runtime; no special invariants documented"]
|
|
546
563
|
// CIL[DOC-VECTOR type="implementation_pattern" content="" status="pending_human_input"]
|
|
547
564
|
// CIL[DOC-VECTOR type="user_journey" content="" status="pending_human_input"]
|
|
565
|
+
// CIL[END stable_id="~/.framework/src/components/ui/combobox.tsx:ComboboxChipsInput:component"]
|
|
566
|
+
|
|
567
|
+
// CIL[BEGIN stable_id="~/.framework/src/components/ui/combobox.tsx:useComboboxAnchor:hook" type="hook" identity="useComboboxAnchor" parent="~/.framework/src/components/ui/combobox.tsx:module_header:module_header"]
|
|
568
|
+
// CIL[DOC-MACRO purpose="Provides a ref for anchoring the combobox popup"]
|
|
569
|
+
// CIL[DOC-RESPONSIBILITY responsibility="Return a ref that can be attached to an anchor element"]
|
|
570
|
+
// CIL[DOC-CONTEXT module="combobox" layer="components/ui" related_files=".framework/src/components/ui/button.tsx,.framework/src/components/ui/combobox.tsx,.framework/src/components/ui/input-group.tsx,.framework/src/lib/utils.ts"]
|
|
571
|
+
// CIL[DOC-CONTRACT inputs="none" outputs="React ref to HTMLDivElement" errors="none" side_effects="none"]
|
|
572
|
+
// CIL[DOC-MICRO logic_summary="Creates a React ref typed to HTMLDivElement for anchoring." notable_decisions="[]"]
|
|
573
|
+
// CIL[DOC-CONFIDENCE pass="second" score="0.90" flags="none"]
|
|
574
|
+
// CIL[DOC-STABILITY stability="stable"]
|
|
548
575
|
function useComboboxAnchor() {
|
|
549
576
|
return React.useRef<HTMLDivElement | null>(null)
|
|
550
577
|
}
|
|
551
|
-
// CIL[
|
|
552
|
-
// CIL[
|
|
553
|
-
// CIL[DOC-
|
|
554
|
-
// CIL[DOC-
|
|
555
|
-
// CIL[DOC-CONTEXT module="combobox" layer="ui" related_files="[]"]
|
|
556
|
-
// CIL[DOC-CONTRACT inputs="none" outputs="component exports" errors="none" side_effects="module exports"]
|
|
557
|
-
// CIL[DOC-MICRO logic_summary="Exports all combobox components and utility hook for external usage" notable_decisions="[]"]
|
|
558
|
-
// CIL[DOC-CONFIDENCE pass="second" score="0.95" flags="none"]
|
|
559
|
-
// CIL[DOC-STABILITY stability="stable"]
|
|
560
|
-
// CIL[DOC-VECTOR type="context" content="Layer: ui. Direct callers: 0. Direct calls: 0. Related files: none."]
|
|
561
|
-
// CIL[DOC-VECTOR type="blast_radius" content="Direct callers: 0. Total affected: 0."]
|
|
562
|
-
// CIL[DOC-VECTOR type="configuration" content="No configuration dependencies."]
|
|
563
|
-
// CIL[DOC-VECTOR type="constraint" content="No test paths identified."]
|
|
578
|
+
// CIL[DOC-VECTOR type="context" content="purpose='Provides a ref for anchoring the combobox popup'; No verified external callers; imports: .framework/src/lib/utils.ts,.framework/src/components/ui/button.tsx,.framework/src/components/ui/input-group.tsx"]
|
|
579
|
+
// CIL[DOC-VECTOR type="blast_radius" content="No direct caller data from CIL graph; local impact only"]
|
|
580
|
+
// CIL[DOC-VECTOR type="configuration" content="No environment or build configuration dependencies identified"]
|
|
581
|
+
// CIL[DOC-VECTOR type="constraint" content="Standard runtime; no special invariants documented"]
|
|
564
582
|
// CIL[DOC-VECTOR type="implementation_pattern" content="" status="pending_human_input"]
|
|
565
583
|
// CIL[DOC-VECTOR type="user_journey" content="" status="pending_human_input"]
|
|
584
|
+
// CIL[END stable_id="~/.framework/src/components/ui/combobox.tsx:useComboboxAnchor:hook"]
|
|
585
|
+
// CIL[BEGIN stable_id="~/.framework/src/components/ui/combobox.tsx:combobox:exports" type="export" identity="combobox" parent="~/.framework/src/components/ui/combobox.tsx:module_header:module_header"]
|
|
586
|
+
// CIL[DOC-MACRO purpose="Re-exports the public Combobox component surface"]
|
|
587
|
+
// CIL[DOC-RESPONSIBILITY responsibility="Expose all combobox subcomponents and the anchor hook"]
|
|
588
|
+
// CIL[DOC-CONTEXT module="combobox" layer="components/ui" related_files=".framework/src/components/ui/button.tsx,.framework/src/components/ui/combobox.tsx,.framework/src/components/ui/input-group.tsx,.framework/src/lib/utils.ts"]
|
|
589
|
+
// CIL[DOC-CONTRACT inputs="none" outputs="named exports" errors="none" side_effects="none"]
|
|
590
|
+
// CIL[DOC-MICRO logic_summary="Lists all named component and hook exports for consumers." notable_decisions="[]"]
|
|
591
|
+
// CIL[DOC-CONFIDENCE pass="second" score="0.90" flags="none"]
|
|
592
|
+
// CIL[DOC-STABILITY stability="stable"]
|
|
566
593
|
export {
|
|
567
594
|
Combobox,
|
|
568
595
|
ComboboxInput,
|
|
@@ -581,4 +608,10 @@ export {
|
|
|
581
608
|
ComboboxValue,
|
|
582
609
|
useComboboxAnchor,
|
|
583
610
|
}
|
|
584
|
-
// CIL[
|
|
611
|
+
// CIL[DOC-VECTOR type="context" content="purpose='Re-exports the public Combobox component surface'; No verified external callers; imports: .framework/src/lib/utils.ts,.framework/src/components/ui/button.tsx,.framework/src/components/ui/input-group.tsx"]
|
|
612
|
+
// CIL[DOC-VECTOR type="blast_radius" content="No direct caller data from CIL graph; local impact only"]
|
|
613
|
+
// CIL[DOC-VECTOR type="configuration" content="No environment or build configuration dependencies identified"]
|
|
614
|
+
// CIL[DOC-VECTOR type="constraint" content="Standard runtime; no special invariants documented"]
|
|
615
|
+
// CIL[DOC-VECTOR type="implementation_pattern" content="" status="pending_human_input"]
|
|
616
|
+
// CIL[DOC-VECTOR type="user_journey" content="" status="pending_human_input"]
|
|
617
|
+
// CIL[END stable_id="~/.framework/src/components/ui/combobox.tsx:combobox:exports"]
|