spine-framework 0.3.145 → 0.4.1
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 +5067 -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 +15 -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/dropdown-menu.tsx:use_client:directive"]
|
|
2
|
+
// CIL[DOC-MACRO purpose="Marks this module as client-side only"]
|
|
3
|
+
// CIL[DOC-RESPONSIBILITY responsibility="Instructs the bundler to treat this file as a client component"]
|
|
4
|
+
// CIL[DOC-CONTEXT module="components/ui/dropdown-menu" layer="ui" related_files=".framework/src/components/ui/dropdown-menu.tsx,.framework/src/lib/utils.ts"]
|
|
5
|
+
// CIL[DOC-CONTRACT inputs="none" outputs="use client directive" errors="none" side_effects="Excludes module from server rendering"]
|
|
6
|
+
// CIL[DOC-MICRO logic_summary="Single use client directive" 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
|
|
|
@@ -15,61 +23,65 @@
|
|
|
15
23
|
|
|
16
24
|
|
|
17
25
|
|
|
18
|
-
|
|
19
|
-
|
|
20
|
-
// CIL[DOC-
|
|
21
|
-
// CIL[DOC-
|
|
22
|
-
// CIL[DOC-
|
|
23
|
-
// CIL[DOC-
|
|
24
|
-
// CIL[DOC-CONFIDENCE pass="second" score="0.95" flags="none"]
|
|
25
|
-
// CIL[DOC-STABILITY stability="stable"]
|
|
26
|
-
// CIL[DOC-AUDIENCE audience="developer"]
|
|
27
|
-
// 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/ui/dialog.tsx, .framework/src/pages/admin/TypeDetailPage.tsx, .framework/functions/_shared/principal.ts, .framework/functions/_shared/schema-utils.ts, \."]
|
|
28
|
-
// CIL[DOC-VECTOR type="blast_radius" content="Direct callers: 0. Total affected: 0."]
|
|
29
|
-
// CIL[DOC-VECTOR type="configuration" content="No configuration dependencies."]
|
|
30
|
-
// CIL[DOC-VECTOR type="constraint" content="No test paths identified."]
|
|
26
|
+
|
|
27
|
+
"use client"
|
|
28
|
+
// CIL[DOC-VECTOR type="context" content="purpose='Marks this module as client-side only'; No verified external callers; imports: .framework/src/lib/utils.ts"]
|
|
29
|
+
// CIL[DOC-VECTOR type="blast_radius" content="No direct caller data from CIL graph; local impact only"]
|
|
30
|
+
// CIL[DOC-VECTOR type="configuration" content="No environment or build configuration dependencies identified"]
|
|
31
|
+
// CIL[DOC-VECTOR type="constraint" content="Standard runtime; no special invariants documented"]
|
|
31
32
|
// CIL[DOC-VECTOR type="implementation_pattern" content="" status="pending_human_input"]
|
|
32
33
|
// CIL[DOC-VECTOR type="user_journey" content="" status="pending_human_input"]
|
|
33
|
-
|
|
34
|
+
// CIL[END stable_id="~/.framework/src/components/ui/dropdown-menu.tsx:use_client:directive"]
|
|
35
|
+
// CIL[BEGIN stable_id="~/.framework/src/components/ui/dropdown-menu.tsx:module_header:module_header"]
|
|
36
|
+
// CIL[DOC-MACRO purpose="Imports dependencies for the dropdown menu UI components"]
|
|
37
|
+
// CIL[DOC-RESPONSIBILITY responsibility="Set up React, Radix UI, utility and icon imports used by the components below"]
|
|
38
|
+
// CIL[DOC-CONTEXT module="components/ui/dropdown-menu" layer="ui" related_files=".framework/src/lib/utils.ts"]
|
|
39
|
+
// CIL[DOC-CONTRACT inputs="none" outputs="imported symbols" errors="none" side_effects="Registers module dependencies"]
|
|
40
|
+
// CIL[DOC-MICRO logic_summary="Import statements for React, Radix primitives, cn and icons" notable_decisions="[]"]
|
|
41
|
+
// CIL[DOC-CONFIDENCE pass="second" score="0.90" flags="none"]
|
|
42
|
+
// CIL[DOC-STABILITY stability="stable"]
|
|
43
|
+
// CIL[DOC-AUDIENCE audience="ui-developers"]
|
|
34
44
|
import * as React from "react"
|
|
35
45
|
import { DropdownMenu as DropdownMenuPrimitive } from "radix-ui"
|
|
36
46
|
import { cn } from "@/lib/utils"
|
|
37
47
|
import { CheckIcon, ChevronRightIcon } from "lucide-react"
|
|
38
|
-
// CIL[
|
|
39
|
-
// CIL[
|
|
40
|
-
// CIL[DOC-
|
|
41
|
-
// CIL[DOC-
|
|
42
|
-
// CIL[DOC-CONTEXT module="dropdownmenu" layer="ui" related_files="[\".framework/src/components/ui/dialog.tsx\",\"custom/apps/portal/pages/ContentPage.tsx\",\".framework/src/pages/admin/RolesPage.tsx\",\"\\\"]"]
|
|
43
|
-
// CIL[DOC-CONTRACT inputs="none" outputs="dropdown menu root" errors="none" side_effects="renders DOM"]
|
|
44
|
-
// CIL[DOC-MICRO logic_summary="Wraps Radix DropdownMenu.Root with data-slot attribute" notable_decisions="[]"]
|
|
45
|
-
// CIL[DOC-CONFIDENCE pass="second" score="0.95" flags="none"]
|
|
46
|
-
// CIL[DOC-STABILITY stability="stable"]
|
|
47
|
-
// CIL[DOC-VECTOR type="context" content="Layer: ui. Direct callers: 0. Direct calls: 0. Related files: .framework/src/components/ui/dialog.tsx, custom/apps/portal/pages/ContentPage.tsx, .framework/src/pages/admin/RolesPage.tsx, \."]
|
|
48
|
-
// CIL[DOC-VECTOR type="blast_radius" content="Direct callers: 0. Total affected: 0."]
|
|
49
|
-
// CIL[DOC-VECTOR type="configuration" content="No configuration dependencies."]
|
|
50
|
-
// CIL[DOC-VECTOR type="constraint" content="No test paths identified."]
|
|
48
|
+
// CIL[DOC-VECTOR type="context" content="purpose='Imports dependencies for the dropdown menu UI components'; No verified external callers; imports: .framework/src/lib/utils.ts"]
|
|
49
|
+
// CIL[DOC-VECTOR type="blast_radius" content="No direct caller data from CIL graph; local impact only"]
|
|
50
|
+
// CIL[DOC-VECTOR type="configuration" content="No environment or build configuration dependencies identified"]
|
|
51
|
+
// CIL[DOC-VECTOR type="constraint" content="Standard runtime; no special invariants documented"]
|
|
51
52
|
// CIL[DOC-VECTOR type="implementation_pattern" content="" status="pending_human_input"]
|
|
52
53
|
// CIL[DOC-VECTOR type="user_journey" content="" status="pending_human_input"]
|
|
54
|
+
// CIL[END stable_id="~/.framework/src/components/ui/dropdown-menu.tsx:module_header:module_header"]
|
|
55
|
+
|
|
56
|
+
// CIL[BEGIN stable_id="~/.framework/src/components/ui/dropdown-menu.tsx:DropdownMenu:component"]
|
|
57
|
+
// CIL[DOC-MACRO purpose="Root dropdown menu component wrapping Radix DropdownMenuPrimitive.Root"]
|
|
58
|
+
// CIL[DOC-RESPONSIBILITY responsibility="Render the top-level dropdown menu container"]
|
|
59
|
+
// CIL[DOC-CONTEXT module="components/ui/dropdown-menu" layer="ui" related_files=".framework/src/components/ui/dropdown-menu.tsx,.framework/src/lib/utils.ts"]
|
|
60
|
+
// CIL[DOC-CONTRACT inputs="...props" outputs="JSX element" errors="None" side_effects="None"]
|
|
61
|
+
// CIL[DOC-MICRO logic_summary="Forwards props to Radix root with a data-slot attribute" notable_decisions="[]"]
|
|
62
|
+
// CIL[DOC-CONFIDENCE pass="second" score="0.90" flags="none"]
|
|
63
|
+
// CIL[DOC-STABILITY stability="stable"]
|
|
53
64
|
function DropdownMenu({
|
|
54
65
|
...props
|
|
55
66
|
}: React.ComponentProps<typeof DropdownMenuPrimitive.Root>) {
|
|
56
67
|
return <DropdownMenuPrimitive.Root data-slot="dropdown-menu" {...props} />
|
|
57
68
|
}
|
|
58
|
-
// CIL[
|
|
59
|
-
// CIL[
|
|
60
|
-
// CIL[DOC-
|
|
61
|
-
// CIL[DOC-
|
|
62
|
-
// CIL[DOC-CONTEXT module="dropdownmenu" layer="ui" related_files="[\"custom/apps/portal/pages/ContentPage.tsx\",\".framework/src/pages/admin/TypeDetailPage.tsx\",\".framework/functions/_shared/principal.ts\",\"custom/apps/cortex/pages/operations/OperationsDashboard.tsx\",\".framework/functions/_shared/schema-utils.ts\",\"\\\"]"]
|
|
63
|
-
// CIL[DOC-CONTRACT inputs="none" outputs="dropdown menu portal" errors="none" side_effects="renders DOM"]
|
|
64
|
-
// CIL[DOC-MICRO logic_summary="Wraps Radix DropdownMenuPortal with data-slot attribute" notable_decisions="[]"]
|
|
65
|
-
// CIL[DOC-CONFIDENCE pass="second" score="0.95" flags="none"]
|
|
66
|
-
// CIL[DOC-STABILITY stability="stable"]
|
|
67
|
-
// CIL[DOC-VECTOR type="context" content="Layer: ui. Direct callers: 1. Direct calls: 0. Related files: custom/apps/portal/pages/ContentPage.tsx, .framework/src/pages/admin/TypeDetailPage.tsx, .framework/functions/_shared/principal.ts, custom/apps/cortex/pages/operations/OperationsDashboard.tsx, .framework/functions/_shared/schema-utils.ts, \."]
|
|
68
|
-
// CIL[DOC-VECTOR type="blast_radius" content="Direct callers: 1. Total affected: 2."]
|
|
69
|
-
// CIL[DOC-VECTOR type="configuration" content="No configuration dependencies."]
|
|
70
|
-
// CIL[DOC-VECTOR type="constraint" content="No test paths identified."]
|
|
69
|
+
// CIL[DOC-VECTOR type="context" content="purpose='Root dropdown menu component wrapping Radix DropdownMenuPrimitive.Root'; 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"]
|
|
71
73
|
// CIL[DOC-VECTOR type="implementation_pattern" content="" status="pending_human_input"]
|
|
72
74
|
// CIL[DOC-VECTOR type="user_journey" content="" status="pending_human_input"]
|
|
75
|
+
// CIL[END stable_id="~/.framework/src/components/ui/dropdown-menu.tsx:DropdownMenu:component"]
|
|
76
|
+
|
|
77
|
+
// CIL[BEGIN stable_id="~/.framework/src/components/ui/dropdown-menu.tsx:DropdownMenuPortal:component"]
|
|
78
|
+
// CIL[DOC-MACRO purpose="Portal wrapper for dropdown menu content"]
|
|
79
|
+
// CIL[DOC-RESPONSIBILITY responsibility="Render dropdown content outside the normal DOM hierarchy"]
|
|
80
|
+
// CIL[DOC-CONTEXT module="components/ui/dropdown-menu" layer="ui" related_files=".framework/src/components/ui/dropdown-menu.tsx,.framework/src/lib/utils.ts"]
|
|
81
|
+
// CIL[DOC-CONTRACT inputs="...props" outputs="JSX element" errors="None" side_effects="Renders content outside parent DOM"]
|
|
82
|
+
// CIL[DOC-MICRO logic_summary="Forwards props to Radix portal with a data-slot attribute" notable_decisions="[]"]
|
|
83
|
+
// CIL[DOC-CONFIDENCE pass="second" score="0.90" flags="none"]
|
|
84
|
+
// CIL[DOC-STABILITY stability="stable"]
|
|
73
85
|
function DropdownMenuPortal({
|
|
74
86
|
...props
|
|
75
87
|
}: React.ComponentProps<typeof DropdownMenuPrimitive.Portal>) {
|
|
@@ -77,21 +89,22 @@ function DropdownMenuPortal({
|
|
|
77
89
|
<DropdownMenuPrimitive.Portal data-slot="dropdown-menu-portal" {...props} />
|
|
78
90
|
)
|
|
79
91
|
}
|
|
80
|
-
// CIL[
|
|
81
|
-
// CIL[
|
|
82
|
-
// CIL[DOC-
|
|
83
|
-
// CIL[DOC-
|
|
84
|
-
// CIL[DOC-CONTEXT module="dropdownmenu" layer="ui" related_files="[\".framework/src/components/ui/dialog.tsx\",\"custom/apps/portal/pages/ContentPage.tsx\",\".framework/src/pages/admin/RolesPage.tsx\",\"\\\"]"]
|
|
85
|
-
// CIL[DOC-CONTRACT inputs="none" outputs="dropdown menu trigger" errors="none" side_effects="renders DOM"]
|
|
86
|
-
// CIL[DOC-MICRO logic_summary="Wraps Radix DropdownMenuTrigger with data-slot attribute" notable_decisions="[]"]
|
|
87
|
-
// CIL[DOC-CONFIDENCE pass="second" score="0.95" flags="none"]
|
|
88
|
-
// CIL[DOC-STABILITY stability="stable"]
|
|
89
|
-
// CIL[DOC-VECTOR type="context" content="Layer: ui. Direct callers: 1. Direct calls: 0. Related files: .framework/src/components/ui/dialog.tsx, custom/apps/portal/pages/ContentPage.tsx, .framework/src/pages/admin/RolesPage.tsx, \."]
|
|
90
|
-
// CIL[DOC-VECTOR type="blast_radius" content="Direct callers: 1. Total affected: 2."]
|
|
91
|
-
// CIL[DOC-VECTOR type="configuration" content="No configuration dependencies."]
|
|
92
|
-
// CIL[DOC-VECTOR type="constraint" content="No test paths identified."]
|
|
92
|
+
// CIL[DOC-VECTOR type="context" content="purpose='Portal wrapper for dropdown menu content'; No verified external callers; imports: .framework/src/lib/utils.ts"]
|
|
93
|
+
// CIL[DOC-VECTOR type="blast_radius" content="No direct caller data from CIL graph; local impact only"]
|
|
94
|
+
// CIL[DOC-VECTOR type="configuration" content="No environment or build configuration dependencies identified"]
|
|
95
|
+
// CIL[DOC-VECTOR type="constraint" content="Standard runtime; no special invariants documented"]
|
|
93
96
|
// CIL[DOC-VECTOR type="implementation_pattern" content="" status="pending_human_input"]
|
|
94
97
|
// CIL[DOC-VECTOR type="user_journey" content="" status="pending_human_input"]
|
|
98
|
+
// CIL[END stable_id="~/.framework/src/components/ui/dropdown-menu.tsx:DropdownMenuPortal:component"]
|
|
99
|
+
|
|
100
|
+
// CIL[BEGIN stable_id="~/.framework/src/components/ui/dropdown-menu.tsx:DropdownMenuTrigger:component"]
|
|
101
|
+
// CIL[DOC-MACRO purpose="Trigger element for opening a dropdown menu"]
|
|
102
|
+
// CIL[DOC-RESPONSIBILITY responsibility="Render the button or element that toggles the dropdown"]
|
|
103
|
+
// CIL[DOC-CONTEXT module="components/ui/dropdown-menu" layer="ui" related_files=".framework/src/components/ui/dropdown-menu.tsx,.framework/src/lib/utils.ts"]
|
|
104
|
+
// CIL[DOC-CONTRACT inputs="...props" outputs="JSX element" errors="None" side_effects="None"]
|
|
105
|
+
// CIL[DOC-MICRO logic_summary="Forwards props to Radix trigger with a data-slot attribute" notable_decisions="[]"]
|
|
106
|
+
// CIL[DOC-CONFIDENCE pass="second" score="0.90" flags="none"]
|
|
107
|
+
// CIL[DOC-STABILITY stability="stable"]
|
|
95
108
|
function DropdownMenuTrigger({
|
|
96
109
|
...props
|
|
97
110
|
}: React.ComponentProps<typeof DropdownMenuPrimitive.Trigger>) {
|
|
@@ -102,21 +115,22 @@ function DropdownMenuTrigger({
|
|
|
102
115
|
/>
|
|
103
116
|
)
|
|
104
117
|
}
|
|
105
|
-
// CIL[
|
|
106
|
-
// CIL[
|
|
107
|
-
// CIL[DOC-
|
|
108
|
-
// CIL[DOC-
|
|
109
|
-
// CIL[DOC-CONTEXT module="dropdownmenu" layer="ui" related_files="[]"]
|
|
110
|
-
// CIL[DOC-CONTRACT inputs="none" outputs="styled popup container" errors="none" side_effects="renders DOM"]
|
|
111
|
-
// CIL[DOC-MICRO logic_summary="Creates popup with portal, animations and popover styling" notable_decisions="[]"]
|
|
112
|
-
// CIL[DOC-CONFIDENCE pass="second" score="0.95" flags="none"]
|
|
113
|
-
// CIL[DOC-STABILITY stability="stable"]
|
|
114
|
-
// CIL[DOC-VECTOR type="context" content="Layer: ui. Direct callers: 0. Direct calls: 0. Related files: none."]
|
|
115
|
-
// CIL[DOC-VECTOR type="blast_radius" content="Direct callers: 0. Total affected: 0."]
|
|
116
|
-
// CIL[DOC-VECTOR type="configuration" content="No configuration dependencies."]
|
|
117
|
-
// CIL[DOC-VECTOR type="constraint" content="No test paths identified."]
|
|
118
|
+
// CIL[DOC-VECTOR type="context" content="purpose='Trigger element for opening a dropdown menu'; No verified external callers; imports: .framework/src/lib/utils.ts"]
|
|
119
|
+
// CIL[DOC-VECTOR type="blast_radius" content="No direct caller data from CIL graph; local impact only"]
|
|
120
|
+
// CIL[DOC-VECTOR type="configuration" content="No environment or build configuration dependencies identified"]
|
|
121
|
+
// CIL[DOC-VECTOR type="constraint" content="Standard runtime; no special invariants documented"]
|
|
118
122
|
// CIL[DOC-VECTOR type="implementation_pattern" content="" status="pending_human_input"]
|
|
119
123
|
// CIL[DOC-VECTOR type="user_journey" content="" status="pending_human_input"]
|
|
124
|
+
// CIL[END stable_id="~/.framework/src/components/ui/dropdown-menu.tsx:DropdownMenuTrigger:component"]
|
|
125
|
+
|
|
126
|
+
// CIL[BEGIN stable_id="~/.framework/src/components/ui/dropdown-menu.tsx:DropdownMenuContent:component"]
|
|
127
|
+
// CIL[DOC-MACRO purpose="Dropdown menu content panel with positioning and styling"]
|
|
128
|
+
// CIL[DOC-RESPONSIBILITY responsibility="Render styled, positioned dropdown content with animations and overflow handling"]
|
|
129
|
+
// CIL[DOC-CONTEXT module="components/ui/dropdown-menu" layer="ui" related_files=".framework/src/components/ui/dropdown-menu.tsx,.framework/src/lib/utils.ts"]
|
|
130
|
+
// CIL[DOC-CONTRACT inputs="className, align, sideOffset, Radix content props" outputs="JSX element" errors="None" side_effects="Renders dropdown content into a portal"]
|
|
131
|
+
// CIL[DOC-MICRO logic_summary="Wraps Radix Portal and Content with default alignment, side offset and a Tailwind class string" notable_decisions="[]"]
|
|
132
|
+
// CIL[DOC-CONFIDENCE pass="second" score="0.90" flags="none"]
|
|
133
|
+
// CIL[DOC-STABILITY stability="stable"]
|
|
120
134
|
function DropdownMenuContent({
|
|
121
135
|
className,
|
|
122
136
|
align = "start",
|
|
@@ -135,21 +149,22 @@ function DropdownMenuContent({
|
|
|
135
149
|
</DropdownMenuPrimitive.Portal>
|
|
136
150
|
)
|
|
137
151
|
}
|
|
138
|
-
// CIL[
|
|
139
|
-
// CIL[
|
|
140
|
-
// CIL[DOC-
|
|
141
|
-
// CIL[DOC-
|
|
142
|
-
// CIL[DOC-CONTEXT module="dropdownmenu" layer="ui" related_files="[]"]
|
|
143
|
-
// CIL[DOC-CONTRACT inputs="none" outputs="group container" errors="none" side_effects="renders DOM"]
|
|
144
|
-
// CIL[DOC-MICRO logic_summary="Wraps Radix DropdownMenuGroup with data-slot attribute" notable_decisions="[]"]
|
|
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: ui. 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."]
|
|
152
|
+
// CIL[DOC-VECTOR type="context" content="purpose='Dropdown menu content panel with positioning and styling'; No verified external callers; imports: .framework/src/lib/utils.ts"]
|
|
153
|
+
// CIL[DOC-VECTOR type="blast_radius" content="No direct caller data from CIL graph; local impact only"]
|
|
154
|
+
// CIL[DOC-VECTOR type="configuration" content="No environment or build configuration dependencies identified"]
|
|
155
|
+
// CIL[DOC-VECTOR type="constraint" content="Standard runtime; no special invariants documented"]
|
|
151
156
|
// CIL[DOC-VECTOR type="implementation_pattern" content="" status="pending_human_input"]
|
|
152
157
|
// CIL[DOC-VECTOR type="user_journey" content="" status="pending_human_input"]
|
|
158
|
+
// CIL[END stable_id="~/.framework/src/components/ui/dropdown-menu.tsx:DropdownMenuContent:component"]
|
|
159
|
+
|
|
160
|
+
// CIL[BEGIN stable_id="~/.framework/src/components/ui/dropdown-menu.tsx:DropdownMenuGroup:component"]
|
|
161
|
+
// CIL[DOC-MACRO purpose="Group container for dropdown menu items"]
|
|
162
|
+
// CIL[DOC-RESPONSIBILITY responsibility="Group related dropdown items visually and semantically"]
|
|
163
|
+
// CIL[DOC-CONTEXT module="components/ui/dropdown-menu" layer="ui" related_files=".framework/src/components/ui/dropdown-menu.tsx,.framework/src/lib/utils.ts"]
|
|
164
|
+
// CIL[DOC-CONTRACT inputs="...props" outputs="JSX element" errors="None" side_effects="None"]
|
|
165
|
+
// CIL[DOC-MICRO logic_summary="Forwards props to Radix group with a data-slot attribute" notable_decisions="[]"]
|
|
166
|
+
// CIL[DOC-CONFIDENCE pass="second" score="0.90" flags="none"]
|
|
167
|
+
// CIL[DOC-STABILITY stability="stable"]
|
|
153
168
|
function DropdownMenuGroup({
|
|
154
169
|
...props
|
|
155
170
|
}: React.ComponentProps<typeof DropdownMenuPrimitive.Group>) {
|
|
@@ -157,21 +172,22 @@ function DropdownMenuGroup({
|
|
|
157
172
|
<DropdownMenuPrimitive.Group data-slot="dropdown-menu-group" {...props} />
|
|
158
173
|
)
|
|
159
174
|
}
|
|
160
|
-
// CIL[
|
|
161
|
-
// CIL[
|
|
162
|
-
// CIL[DOC-
|
|
163
|
-
// CIL[DOC-
|
|
164
|
-
// CIL[DOC-CONTEXT module="dropdownmenu" layer="ui" related_files="[]"]
|
|
165
|
-
// CIL[DOC-CONTRACT inputs="none" outputs="styled menu item" errors="none" side_effects="renders DOM"]
|
|
166
|
-
// CIL[DOC-MICRO logic_summary="Creates interactive item with focus styling and destructive variant" notable_decisions="[]"]
|
|
167
|
-
// CIL[DOC-CONFIDENCE pass="second" score="0.95" flags="none"]
|
|
168
|
-
// CIL[DOC-STABILITY stability="stable"]
|
|
169
|
-
// CIL[DOC-VECTOR type="context" content="Layer: ui. Direct callers: 0. Direct calls: 0. Related files: none."]
|
|
170
|
-
// CIL[DOC-VECTOR type="blast_radius" content="Direct callers: 0. Total affected: 0."]
|
|
171
|
-
// CIL[DOC-VECTOR type="configuration" content="No configuration dependencies."]
|
|
172
|
-
// CIL[DOC-VECTOR type="constraint" content="No test paths identified."]
|
|
175
|
+
// CIL[DOC-VECTOR type="context" content="purpose='Group container for dropdown menu items'; No verified external callers; imports: .framework/src/lib/utils.ts"]
|
|
176
|
+
// CIL[DOC-VECTOR type="blast_radius" content="No direct caller data from CIL graph; local impact only"]
|
|
177
|
+
// CIL[DOC-VECTOR type="configuration" content="No environment or build configuration dependencies identified"]
|
|
178
|
+
// CIL[DOC-VECTOR type="constraint" content="Standard runtime; no special invariants documented"]
|
|
173
179
|
// CIL[DOC-VECTOR type="implementation_pattern" content="" status="pending_human_input"]
|
|
174
180
|
// CIL[DOC-VECTOR type="user_journey" content="" status="pending_human_input"]
|
|
181
|
+
// CIL[END stable_id="~/.framework/src/components/ui/dropdown-menu.tsx:DropdownMenuGroup:component"]
|
|
182
|
+
|
|
183
|
+
// CIL[BEGIN stable_id="~/.framework/src/components/ui/dropdown-menu.tsx:DropdownMenuItem:component"]
|
|
184
|
+
// CIL[DOC-MACRO purpose="Selectable item inside a dropdown menu"]
|
|
185
|
+
// CIL[DOC-RESPONSIBILITY responsibility="Render a styled dropdown item supporting default and destructive variants and inset padding"]
|
|
186
|
+
// CIL[DOC-CONTEXT module="components/ui/dropdown-menu" layer="ui" related_files=".framework/src/components/ui/dropdown-menu.tsx,.framework/src/lib/utils.ts"]
|
|
187
|
+
// CIL[DOC-CONTRACT inputs="className, inset, variant, Radix item props" outputs="JSX element" errors="None" side_effects="None"]
|
|
188
|
+
// CIL[DOC-MICRO logic_summary="Forwards props to Radix Item with data-slot, data-inset, data-variant and a compound Tailwind class string" notable_decisions="[]"]
|
|
189
|
+
// CIL[DOC-CONFIDENCE pass="second" score="0.90" flags="none"]
|
|
190
|
+
// CIL[DOC-STABILITY stability="stable"]
|
|
175
191
|
function DropdownMenuItem({
|
|
176
192
|
className,
|
|
177
193
|
inset,
|
|
@@ -194,21 +210,22 @@ function DropdownMenuItem({
|
|
|
194
210
|
/>
|
|
195
211
|
)
|
|
196
212
|
}
|
|
197
|
-
// CIL[
|
|
198
|
-
// CIL[
|
|
199
|
-
// CIL[DOC-
|
|
200
|
-
// CIL[DOC-
|
|
201
|
-
// CIL[DOC-CONTEXT module="dropdownmenu" layer="ui" related_files="[]"]
|
|
202
|
-
// CIL[DOC-CONTRACT inputs="none" outputs="checkbox menu item" errors="none" side_effects="renders DOM"]
|
|
203
|
-
// CIL[DOC-MICRO logic_summary="Creates toggleable item with check indicator and inset styling" notable_decisions="[]"]
|
|
204
|
-
// CIL[DOC-CONFIDENCE pass="second" score="0.95" flags="none"]
|
|
205
|
-
// CIL[DOC-STABILITY stability="stable"]
|
|
206
|
-
// CIL[DOC-VECTOR type="context" content="Layer: ui. Direct callers: 0. Direct calls: 0. Related files: none."]
|
|
207
|
-
// CIL[DOC-VECTOR type="blast_radius" content="Direct callers: 0. Total affected: 0."]
|
|
208
|
-
// CIL[DOC-VECTOR type="configuration" content="No configuration dependencies."]
|
|
209
|
-
// CIL[DOC-VECTOR type="constraint" content="No test paths identified."]
|
|
213
|
+
// CIL[DOC-VECTOR type="context" content="purpose='Selectable item inside a dropdown menu'; No verified external callers; imports: .framework/src/lib/utils.ts"]
|
|
214
|
+
// CIL[DOC-VECTOR type="blast_radius" content="No direct caller data from CIL graph; local impact only"]
|
|
215
|
+
// CIL[DOC-VECTOR type="configuration" content="No environment or build configuration dependencies identified"]
|
|
216
|
+
// CIL[DOC-VECTOR type="constraint" content="Standard runtime; no special invariants documented"]
|
|
210
217
|
// CIL[DOC-VECTOR type="implementation_pattern" content="" status="pending_human_input"]
|
|
211
218
|
// CIL[DOC-VECTOR type="user_journey" content="" status="pending_human_input"]
|
|
219
|
+
// CIL[END stable_id="~/.framework/src/components/ui/dropdown-menu.tsx:DropdownMenuItem:component"]
|
|
220
|
+
|
|
221
|
+
// CIL[BEGIN stable_id="~/.framework/src/components/ui/dropdown-menu.tsx:DropdownMenuCheckboxItem:component"]
|
|
222
|
+
// CIL[DOC-MACRO purpose="Checkbox item in a dropdown menu"]
|
|
223
|
+
// CIL[DOC-RESPONSIBILITY responsibility="Render a checkbox item with checked state, inset support and an indicator"]
|
|
224
|
+
// CIL[DOC-CONTEXT module="components/ui/dropdown-menu" layer="ui" related_files=".framework/src/components/ui/dropdown-menu.tsx,.framework/src/lib/utils.ts"]
|
|
225
|
+
// CIL[DOC-CONTRACT inputs="className, children, checked, inset, ...props" outputs="JSX element" errors="None" side_effects="Displays check icon when checked"]
|
|
226
|
+
// CIL[DOC-MICRO logic_summary="Wraps Radix CheckboxItem with data attributes and renders a right-aligned check icon indicator" notable_decisions="[]"]
|
|
227
|
+
// CIL[DOC-CONFIDENCE pass="second" score="0.90" flags="none"]
|
|
228
|
+
// CIL[DOC-STABILITY stability="stable"]
|
|
212
229
|
function DropdownMenuCheckboxItem({
|
|
213
230
|
className,
|
|
214
231
|
children,
|
|
@@ -242,21 +259,22 @@ function DropdownMenuCheckboxItem({
|
|
|
242
259
|
</DropdownMenuPrimitive.CheckboxItem>
|
|
243
260
|
)
|
|
244
261
|
}
|
|
245
|
-
// CIL[
|
|
246
|
-
// CIL[
|
|
247
|
-
// CIL[DOC-
|
|
248
|
-
// CIL[DOC-
|
|
249
|
-
// CIL[DOC-CONTEXT module="dropdownmenu" layer="ui" related_files="[]"]
|
|
250
|
-
// CIL[DOC-CONTRACT inputs="none" outputs="radio group container" errors="none" side_effects="renders DOM"]
|
|
251
|
-
// CIL[DOC-MICRO logic_summary="Wraps Radix DropdownMenuRadioGroup with data-slot attribute" notable_decisions="[]"]
|
|
252
|
-
// CIL[DOC-CONFIDENCE pass="second" score="0.95" flags="none"]
|
|
253
|
-
// CIL[DOC-STABILITY stability="stable"]
|
|
254
|
-
// CIL[DOC-VECTOR type="context" content="Layer: ui. Direct callers: 0. Direct calls: 0. Related files: none."]
|
|
255
|
-
// CIL[DOC-VECTOR type="blast_radius" content="Direct callers: 0. Total affected: 0."]
|
|
256
|
-
// CIL[DOC-VECTOR type="configuration" content="No configuration dependencies."]
|
|
257
|
-
// CIL[DOC-VECTOR type="constraint" content="No test paths identified."]
|
|
262
|
+
// CIL[DOC-VECTOR type="context" content="purpose='Checkbox item in a dropdown menu'; No verified external callers; imports: .framework/src/lib/utils.ts"]
|
|
263
|
+
// CIL[DOC-VECTOR type="blast_radius" content="No direct caller data from CIL graph; local impact only"]
|
|
264
|
+
// CIL[DOC-VECTOR type="configuration" content="No environment or build configuration dependencies identified"]
|
|
265
|
+
// CIL[DOC-VECTOR type="constraint" content="Standard runtime; no special invariants documented"]
|
|
258
266
|
// CIL[DOC-VECTOR type="implementation_pattern" content="" status="pending_human_input"]
|
|
259
267
|
// CIL[DOC-VECTOR type="user_journey" content="" status="pending_human_input"]
|
|
268
|
+
// CIL[END stable_id="~/.framework/src/components/ui/dropdown-menu.tsx:DropdownMenuCheckboxItem:component"]
|
|
269
|
+
|
|
270
|
+
// CIL[BEGIN stable_id="~/.framework/src/components/ui/dropdown-menu.tsx:DropdownMenuRadioGroup:component"]
|
|
271
|
+
// CIL[DOC-MACRO purpose="Radio group container for dropdown menu"]
|
|
272
|
+
// CIL[DOC-RESPONSIBILITY responsibility="Group related radio items"]
|
|
273
|
+
// CIL[DOC-CONTEXT module="components/ui/dropdown-menu" layer="ui" related_files=".framework/src/components/ui/dropdown-menu.tsx,.framework/src/lib/utils.ts"]
|
|
274
|
+
// CIL[DOC-CONTRACT inputs="...props" outputs="JSX element" errors="None" side_effects="None"]
|
|
275
|
+
// CIL[DOC-MICRO logic_summary="Forwards props to Radix radio group with a data-slot attribute" notable_decisions="[]"]
|
|
276
|
+
// CIL[DOC-CONFIDENCE pass="second" score="0.90" flags="none"]
|
|
277
|
+
// CIL[DOC-STABILITY stability="stable"]
|
|
260
278
|
function DropdownMenuRadioGroup({
|
|
261
279
|
...props
|
|
262
280
|
}: React.ComponentProps<typeof DropdownMenuPrimitive.RadioGroup>) {
|
|
@@ -267,21 +285,22 @@ function DropdownMenuRadioGroup({
|
|
|
267
285
|
/>
|
|
268
286
|
)
|
|
269
287
|
}
|
|
270
|
-
// CIL[
|
|
271
|
-
// CIL[
|
|
272
|
-
// CIL[DOC-
|
|
273
|
-
// CIL[DOC-
|
|
274
|
-
// CIL[DOC-CONTEXT module="dropdownmenu" layer="ui" related_files="[]"]
|
|
275
|
-
// CIL[DOC-CONTRACT inputs="none" outputs="radio menu item" errors="none" side_effects="renders DOM"]
|
|
276
|
-
// CIL[DOC-MICRO logic_summary="Creates radio item with check indicator and inset styling" notable_decisions="[]"]
|
|
277
|
-
// CIL[DOC-CONFIDENCE pass="second" score="0.95" flags="none"]
|
|
278
|
-
// CIL[DOC-STABILITY stability="stable"]
|
|
279
|
-
// CIL[DOC-VECTOR type="context" content="Layer: ui. Direct callers: 0. Direct calls: 0. Related files: none."]
|
|
280
|
-
// CIL[DOC-VECTOR type="blast_radius" content="Direct callers: 0. Total affected: 0."]
|
|
281
|
-
// CIL[DOC-VECTOR type="configuration" content="No configuration dependencies."]
|
|
282
|
-
// CIL[DOC-VECTOR type="constraint" content="No test paths identified."]
|
|
288
|
+
// CIL[DOC-VECTOR type="context" content="purpose='Radio group container for dropdown menu'; No verified external callers; imports: .framework/src/lib/utils.ts"]
|
|
289
|
+
// CIL[DOC-VECTOR type="blast_radius" content="No direct caller data from CIL graph; local impact only"]
|
|
290
|
+
// CIL[DOC-VECTOR type="configuration" content="No environment or build configuration dependencies identified"]
|
|
291
|
+
// CIL[DOC-VECTOR type="constraint" content="Standard runtime; no special invariants documented"]
|
|
283
292
|
// CIL[DOC-VECTOR type="implementation_pattern" content="" status="pending_human_input"]
|
|
284
293
|
// CIL[DOC-VECTOR type="user_journey" content="" status="pending_human_input"]
|
|
294
|
+
// CIL[END stable_id="~/.framework/src/components/ui/dropdown-menu.tsx:DropdownMenuRadioGroup:component"]
|
|
295
|
+
|
|
296
|
+
// CIL[BEGIN stable_id="~/.framework/src/components/ui/dropdown-menu.tsx:DropdownMenuRadioItem:component"]
|
|
297
|
+
// CIL[DOC-MACRO purpose="Radio item in a dropdown menu"]
|
|
298
|
+
// CIL[DOC-RESPONSIBILITY responsibility="Render a radio item with an indicator and inset support"]
|
|
299
|
+
// CIL[DOC-CONTEXT module="components/ui/dropdown-menu" layer="ui" related_files=".framework/src/components/ui/dropdown-menu.tsx,.framework/src/lib/utils.ts"]
|
|
300
|
+
// CIL[DOC-CONTRACT inputs="className, children, inset, ...props" outputs="JSX element" errors="None" side_effects="Displays selection indicator when selected"]
|
|
301
|
+
// CIL[DOC-MICRO logic_summary="Wraps Radix RadioItem with data attributes and renders a check icon as the selection indicator" notable_decisions="[]"]
|
|
302
|
+
// CIL[DOC-CONFIDENCE pass="second" score="0.90" flags="none"]
|
|
303
|
+
// CIL[DOC-STABILITY stability="stable"]
|
|
285
304
|
function DropdownMenuRadioItem({
|
|
286
305
|
className,
|
|
287
306
|
children,
|
|
@@ -313,21 +332,22 @@ function DropdownMenuRadioItem({
|
|
|
313
332
|
</DropdownMenuPrimitive.RadioItem>
|
|
314
333
|
)
|
|
315
334
|
}
|
|
316
|
-
// CIL[
|
|
317
|
-
// CIL[
|
|
318
|
-
// CIL[DOC-
|
|
319
|
-
// CIL[DOC-
|
|
320
|
-
// CIL[DOC-CONTEXT module="dropdownmenu" layer="ui" related_files="[]"]
|
|
321
|
-
// CIL[DOC-CONTRACT inputs="none" outputs="styled label" errors="none" side_effects="renders DOM"]
|
|
322
|
-
// CIL[DOC-MICRO logic_summary="Creates muted text label with inset styling support" notable_decisions="[]"]
|
|
323
|
-
// CIL[DOC-CONFIDENCE pass="second" score="0.95" flags="none"]
|
|
324
|
-
// CIL[DOC-STABILITY stability="stable"]
|
|
325
|
-
// CIL[DOC-VECTOR type="context" content="Layer: ui. Direct callers: 0. Direct calls: 0. Related files: none."]
|
|
326
|
-
// CIL[DOC-VECTOR type="blast_radius" content="Direct callers: 0. Total affected: 0."]
|
|
327
|
-
// CIL[DOC-VECTOR type="configuration" content="No configuration dependencies."]
|
|
328
|
-
// CIL[DOC-VECTOR type="constraint" content="No test paths identified."]
|
|
335
|
+
// CIL[DOC-VECTOR type="context" content="purpose='Radio item in a dropdown menu'; No verified external callers; imports: .framework/src/lib/utils.ts"]
|
|
336
|
+
// CIL[DOC-VECTOR type="blast_radius" content="No direct caller data from CIL graph; local impact only"]
|
|
337
|
+
// CIL[DOC-VECTOR type="configuration" content="No environment or build configuration dependencies identified"]
|
|
338
|
+
// CIL[DOC-VECTOR type="constraint" content="Standard runtime; no special invariants documented"]
|
|
329
339
|
// CIL[DOC-VECTOR type="implementation_pattern" content="" status="pending_human_input"]
|
|
330
340
|
// CIL[DOC-VECTOR type="user_journey" content="" status="pending_human_input"]
|
|
341
|
+
// CIL[END stable_id="~/.framework/src/components/ui/dropdown-menu.tsx:DropdownMenuRadioItem:component"]
|
|
342
|
+
|
|
343
|
+
// CIL[BEGIN stable_id="~/.framework/src/components/ui/dropdown-menu.tsx:DropdownMenuLabel:component"]
|
|
344
|
+
// CIL[DOC-MACRO purpose="Label for grouping or describing dropdown menu items"]
|
|
345
|
+
// CIL[DOC-RESPONSIBILITY responsibility="Render a styled dropdown label with optional inset padding"]
|
|
346
|
+
// CIL[DOC-CONTEXT module="components/ui/dropdown-menu" layer="ui" related_files=".framework/src/components/ui/dropdown-menu.tsx,.framework/src/lib/utils.ts"]
|
|
347
|
+
// CIL[DOC-CONTRACT inputs="className, inset, ...props" outputs="JSX element" errors="None" side_effects="None"]
|
|
348
|
+
// CIL[DOC-MICRO logic_summary="Forwards props to Radix label with data-slot, data-inset and a muted text class string" notable_decisions="[]"]
|
|
349
|
+
// CIL[DOC-CONFIDENCE pass="second" score="0.90" flags="none"]
|
|
350
|
+
// CIL[DOC-STABILITY stability="stable"]
|
|
331
351
|
function DropdownMenuLabel({
|
|
332
352
|
className,
|
|
333
353
|
inset,
|
|
@@ -347,21 +367,22 @@ function DropdownMenuLabel({
|
|
|
347
367
|
/>
|
|
348
368
|
)
|
|
349
369
|
}
|
|
350
|
-
// CIL[
|
|
351
|
-
// CIL[
|
|
352
|
-
// CIL[DOC-
|
|
353
|
-
// CIL[DOC-
|
|
354
|
-
// CIL[DOC-CONTEXT module="dropdownmenu" layer="ui" related_files="[]"]
|
|
355
|
-
// CIL[DOC-CONTRACT inputs="none" outputs="styled separator" errors="none" side_effects="renders DOM"]
|
|
356
|
-
// CIL[DOC-MICRO logic_summary="Creates horizontal line with margin and border styling" notable_decisions="[]"]
|
|
357
|
-
// CIL[DOC-CONFIDENCE pass="second" score="0.95" flags="none"]
|
|
358
|
-
// CIL[DOC-STABILITY stability="stable"]
|
|
359
|
-
// CIL[DOC-VECTOR type="context" content="Layer: ui. Direct callers: 0. Direct calls: 0. Related files: none."]
|
|
360
|
-
// CIL[DOC-VECTOR type="blast_radius" content="Direct callers: 0. Total affected: 0."]
|
|
361
|
-
// CIL[DOC-VECTOR type="configuration" content="No configuration dependencies."]
|
|
362
|
-
// CIL[DOC-VECTOR type="constraint" content="No test paths identified."]
|
|
370
|
+
// CIL[DOC-VECTOR type="context" content="purpose='Label for grouping or describing dropdown menu items'; No verified external callers; imports: .framework/src/lib/utils.ts"]
|
|
371
|
+
// CIL[DOC-VECTOR type="blast_radius" content="No direct caller data from CIL graph; local impact only"]
|
|
372
|
+
// CIL[DOC-VECTOR type="configuration" content="No environment or build configuration dependencies identified"]
|
|
373
|
+
// CIL[DOC-VECTOR type="constraint" content="Standard runtime; no special invariants documented"]
|
|
363
374
|
// CIL[DOC-VECTOR type="implementation_pattern" content="" status="pending_human_input"]
|
|
364
375
|
// CIL[DOC-VECTOR type="user_journey" content="" status="pending_human_input"]
|
|
376
|
+
// CIL[END stable_id="~/.framework/src/components/ui/dropdown-menu.tsx:DropdownMenuLabel:component"]
|
|
377
|
+
|
|
378
|
+
// CIL[BEGIN stable_id="~/.framework/src/components/ui/dropdown-menu.tsx:DropdownMenuSeparator:component"]
|
|
379
|
+
// CIL[DOC-MACRO purpose="Horizontal separator between dropdown menu sections"]
|
|
380
|
+
// CIL[DOC-RESPONSIBILITY responsibility="Render a styled horizontal divider"]
|
|
381
|
+
// CIL[DOC-CONTEXT module="components/ui/dropdown-menu" layer="ui" related_files=".framework/src/components/ui/dropdown-menu.tsx,.framework/src/lib/utils.ts"]
|
|
382
|
+
// CIL[DOC-CONTRACT inputs="className, ...props" outputs="JSX element" errors="None" side_effects="None"]
|
|
383
|
+
// CIL[DOC-MICRO logic_summary="Forwards props to Radix separator with data-slot and a border class string" notable_decisions="[]"]
|
|
384
|
+
// CIL[DOC-CONFIDENCE pass="second" score="0.90" flags="none"]
|
|
385
|
+
// CIL[DOC-STABILITY stability="stable"]
|
|
365
386
|
function DropdownMenuSeparator({
|
|
366
387
|
className,
|
|
367
388
|
...props
|
|
@@ -374,21 +395,22 @@ function DropdownMenuSeparator({
|
|
|
374
395
|
/>
|
|
375
396
|
)
|
|
376
397
|
}
|
|
377
|
-
// CIL[
|
|
378
|
-
// CIL[
|
|
379
|
-
// CIL[DOC-
|
|
380
|
-
// CIL[DOC-
|
|
381
|
-
// CIL[DOC-CONTEXT module="dropdownmenu" layer="ui" related_files="[]"]
|
|
382
|
-
// CIL[DOC-CONTRACT inputs="none" outputs="styled shortcut span" errors="none" side_effects="renders DOM"]
|
|
383
|
-
// CIL[DOC-MICRO logic_summary="Creates small tracking-widest text with focus styling" notable_decisions="[]"]
|
|
384
|
-
// CIL[DOC-CONFIDENCE pass="second" score="0.95" flags="none"]
|
|
385
|
-
// CIL[DOC-STABILITY stability="stable"]
|
|
386
|
-
// CIL[DOC-VECTOR type="context" content="Layer: ui. Direct callers: 0. Direct calls: 0. Related files: none."]
|
|
387
|
-
// CIL[DOC-VECTOR type="blast_radius" content="Direct callers: 0. Total affected: 0."]
|
|
388
|
-
// CIL[DOC-VECTOR type="configuration" content="No configuration dependencies."]
|
|
389
|
-
// CIL[DOC-VECTOR type="constraint" content="No test paths identified."]
|
|
398
|
+
// CIL[DOC-VECTOR type="context" content="purpose='Horizontal separator between dropdown menu sections'; No verified external callers; imports: .framework/src/lib/utils.ts"]
|
|
399
|
+
// CIL[DOC-VECTOR type="blast_radius" content="No direct caller data from CIL graph; local impact only"]
|
|
400
|
+
// CIL[DOC-VECTOR type="configuration" content="No environment or build configuration dependencies identified"]
|
|
401
|
+
// CIL[DOC-VECTOR type="constraint" content="Standard runtime; no special invariants documented"]
|
|
390
402
|
// CIL[DOC-VECTOR type="implementation_pattern" content="" status="pending_human_input"]
|
|
391
403
|
// CIL[DOC-VECTOR type="user_journey" content="" status="pending_human_input"]
|
|
404
|
+
// CIL[END stable_id="~/.framework/src/components/ui/dropdown-menu.tsx:DropdownMenuSeparator:component"]
|
|
405
|
+
|
|
406
|
+
// CIL[BEGIN stable_id="~/.framework/src/components/ui/dropdown-menu.tsx:DropdownMenuShortcut:component"]
|
|
407
|
+
// CIL[DOC-MACRO purpose="Keyboard shortcut text inside a dropdown menu item"]
|
|
408
|
+
// CIL[DOC-RESPONSIBILITY responsibility="Render small muted shortcut text that responds to focus state"]
|
|
409
|
+
// CIL[DOC-CONTEXT module="components/ui/dropdown-menu" layer="ui" related_files=".framework/src/components/ui/dropdown-menu.tsx,.framework/src/lib/utils.ts"]
|
|
410
|
+
// CIL[DOC-CONTRACT inputs="className, ...props" outputs="JSX element" errors="None" side_effects="None"]
|
|
411
|
+
// CIL[DOC-MICRO logic_summary="Renders a span with data-slot and a small muted text class string" notable_decisions="[]"]
|
|
412
|
+
// CIL[DOC-CONFIDENCE pass="second" score="0.90" flags="none"]
|
|
413
|
+
// CIL[DOC-STABILITY stability="stable"]
|
|
392
414
|
function DropdownMenuShortcut({
|
|
393
415
|
className,
|
|
394
416
|
...props
|
|
@@ -404,41 +426,43 @@ function DropdownMenuShortcut({
|
|
|
404
426
|
/>
|
|
405
427
|
)
|
|
406
428
|
}
|
|
407
|
-
// CIL[
|
|
408
|
-
// CIL[
|
|
409
|
-
// CIL[DOC-
|
|
410
|
-
// CIL[DOC-
|
|
411
|
-
// CIL[DOC-CONTEXT module="dropdownmenu" layer="ui" related_files="[]"]
|
|
412
|
-
// CIL[DOC-CONTRACT inputs="none" outputs="submenu container" errors="none" side_effects="renders DOM"]
|
|
413
|
-
// CIL[DOC-MICRO logic_summary="Wraps Radix DropdownMenuSub with data-slot attribute" notable_decisions="[]"]
|
|
414
|
-
// CIL[DOC-CONFIDENCE pass="second" score="0.95" flags="none"]
|
|
415
|
-
// CIL[DOC-STABILITY stability="stable"]
|
|
416
|
-
// CIL[DOC-VECTOR type="context" content="Layer: ui. Direct callers: 0. Direct calls: 0. Related files: none."]
|
|
417
|
-
// CIL[DOC-VECTOR type="blast_radius" content="Direct callers: 0. Total affected: 0."]
|
|
418
|
-
// CIL[DOC-VECTOR type="configuration" content="No configuration dependencies."]
|
|
419
|
-
// CIL[DOC-VECTOR type="constraint" content="No test paths identified."]
|
|
429
|
+
// CIL[DOC-VECTOR type="context" content="purpose='Keyboard shortcut text inside a dropdown menu item'; No verified external callers; imports: .framework/src/lib/utils.ts"]
|
|
430
|
+
// CIL[DOC-VECTOR type="blast_radius" content="No direct caller data from CIL graph; local impact only"]
|
|
431
|
+
// CIL[DOC-VECTOR type="configuration" content="No environment or build configuration dependencies identified"]
|
|
432
|
+
// CIL[DOC-VECTOR type="constraint" content="Standard runtime; no special invariants documented"]
|
|
420
433
|
// CIL[DOC-VECTOR type="implementation_pattern" content="" status="pending_human_input"]
|
|
421
434
|
// CIL[DOC-VECTOR type="user_journey" content="" status="pending_human_input"]
|
|
435
|
+
// CIL[END stable_id="~/.framework/src/components/ui/dropdown-menu.tsx:DropdownMenuShortcut:component"]
|
|
436
|
+
|
|
437
|
+
// CIL[BEGIN stable_id="~/.framework/src/components/ui/dropdown-menu.tsx:DropdownMenuSub:component"]
|
|
438
|
+
// CIL[DOC-MACRO purpose="Submenu root for nested dropdown menus"]
|
|
439
|
+
// CIL[DOC-RESPONSIBILITY responsibility="Render a nested dropdown menu container"]
|
|
440
|
+
// CIL[DOC-CONTEXT module="components/ui/dropdown-menu" layer="ui" related_files=".framework/src/components/ui/dropdown-menu.tsx,.framework/src/lib/utils.ts"]
|
|
441
|
+
// CIL[DOC-CONTRACT inputs="...props" outputs="JSX element" errors="None" side_effects="None"]
|
|
442
|
+
// CIL[DOC-MICRO logic_summary="Forwards props to Radix sub with a data-slot attribute" notable_decisions="[]"]
|
|
443
|
+
// CIL[DOC-CONFIDENCE pass="second" score="0.90" flags="none"]
|
|
444
|
+
// CIL[DOC-STABILITY stability="stable"]
|
|
422
445
|
function DropdownMenuSub({
|
|
423
446
|
...props
|
|
424
447
|
}: React.ComponentProps<typeof DropdownMenuPrimitive.Sub>) {
|
|
425
448
|
return <DropdownMenuPrimitive.Sub data-slot="dropdown-menu-sub" {...props} />
|
|
426
449
|
}
|
|
427
|
-
// CIL[
|
|
428
|
-
// CIL[
|
|
429
|
-
// CIL[DOC-
|
|
430
|
-
// CIL[DOC-
|
|
431
|
-
// CIL[DOC-CONTEXT module="dropdownmenu" layer="ui" related_files="[]"]
|
|
432
|
-
// CIL[DOC-CONTRACT inputs="none" outputs="submenu trigger" errors="none" side_effects="renders DOM"]
|
|
433
|
-
// CIL[DOC-MICRO logic_summary="Creates trigger with chevron icon and inset styling support" notable_decisions="[]"]
|
|
434
|
-
// CIL[DOC-CONFIDENCE pass="second" score="0.95" flags="none"]
|
|
435
|
-
// CIL[DOC-STABILITY stability="stable"]
|
|
436
|
-
// CIL[DOC-VECTOR type="context" content="Layer: ui. Direct callers: 0. Direct calls: 0. Related files: none."]
|
|
437
|
-
// CIL[DOC-VECTOR type="blast_radius" content="Direct callers: 0. Total affected: 0."]
|
|
438
|
-
// CIL[DOC-VECTOR type="configuration" content="No configuration dependencies."]
|
|
439
|
-
// CIL[DOC-VECTOR type="constraint" content="No test paths identified."]
|
|
450
|
+
// CIL[DOC-VECTOR type="context" content="purpose='Submenu root for nested dropdown menus'; No verified external callers; imports: .framework/src/lib/utils.ts"]
|
|
451
|
+
// CIL[DOC-VECTOR type="blast_radius" content="No direct caller data from CIL graph; local impact only"]
|
|
452
|
+
// CIL[DOC-VECTOR type="configuration" content="No environment or build configuration dependencies identified"]
|
|
453
|
+
// CIL[DOC-VECTOR type="constraint" content="Standard runtime; no special invariants documented"]
|
|
440
454
|
// CIL[DOC-VECTOR type="implementation_pattern" content="" status="pending_human_input"]
|
|
441
455
|
// CIL[DOC-VECTOR type="user_journey" content="" status="pending_human_input"]
|
|
456
|
+
// CIL[END stable_id="~/.framework/src/components/ui/dropdown-menu.tsx:DropdownMenuSub:component"]
|
|
457
|
+
|
|
458
|
+
// CIL[BEGIN stable_id="~/.framework/src/components/ui/dropdown-menu.tsx:DropdownMenuSubTrigger:component"]
|
|
459
|
+
// CIL[DOC-MACRO purpose="Trigger for a nested dropdown submenu"]
|
|
460
|
+
// CIL[DOC-RESPONSIBILITY responsibility="Render a trigger with an inset option and a chevron icon"]
|
|
461
|
+
// CIL[DOC-CONTEXT module="components/ui/dropdown-menu" layer="ui" related_files=".framework/src/components/ui/dropdown-menu.tsx,.framework/src/lib/utils.ts"]
|
|
462
|
+
// CIL[DOC-CONTRACT inputs="className, inset, children, ...props" outputs="JSX element" errors="None" side_effects="None"]
|
|
463
|
+
// CIL[DOC-MICRO logic_summary="Forwards props to Radix sub trigger with data attributes and appends a ChevronRightIcon" notable_decisions="[]"]
|
|
464
|
+
// CIL[DOC-CONFIDENCE pass="second" score="0.90" flags="none"]
|
|
465
|
+
// CIL[DOC-STABILITY stability="stable"]
|
|
442
466
|
function DropdownMenuSubTrigger({
|
|
443
467
|
className,
|
|
444
468
|
inset,
|
|
@@ -462,21 +486,22 @@ function DropdownMenuSubTrigger({
|
|
|
462
486
|
</DropdownMenuPrimitive.SubTrigger>
|
|
463
487
|
)
|
|
464
488
|
}
|
|
465
|
-
// CIL[
|
|
466
|
-
// CIL[
|
|
467
|
-
// CIL[DOC-
|
|
468
|
-
// CIL[DOC-
|
|
469
|
-
// CIL[DOC-CONTEXT module="dropdownmenu" layer="ui" related_files="[]"]
|
|
470
|
-
// CIL[DOC-CONTRACT inputs="none" outputs="styled submenu popup" errors="none" side_effects="renders DOM"]
|
|
471
|
-
// CIL[DOC-MICRO logic_summary="Creates popup container with animations for submenu content" notable_decisions="[]"]
|
|
472
|
-
// CIL[DOC-CONFIDENCE pass="second" score="0.95" flags="none"]
|
|
473
|
-
// CIL[DOC-STABILITY stability="stable"]
|
|
474
|
-
// CIL[DOC-VECTOR type="context" content="Layer: ui. Direct callers: 0. Direct calls: 0. Related files: none."]
|
|
475
|
-
// CIL[DOC-VECTOR type="blast_radius" content="Direct callers: 0. Total affected: 0."]
|
|
476
|
-
// CIL[DOC-VECTOR type="configuration" content="No configuration dependencies."]
|
|
477
|
-
// CIL[DOC-VECTOR type="constraint" content="No test paths identified."]
|
|
489
|
+
// CIL[DOC-VECTOR type="context" content="purpose='Trigger for a nested dropdown submenu'; No verified external callers; imports: .framework/src/lib/utils.ts"]
|
|
490
|
+
// CIL[DOC-VECTOR type="blast_radius" content="No direct caller data from CIL graph; local impact only"]
|
|
491
|
+
// CIL[DOC-VECTOR type="configuration" content="No environment or build configuration dependencies identified"]
|
|
492
|
+
// CIL[DOC-VECTOR type="constraint" content="Standard runtime; no special invariants documented"]
|
|
478
493
|
// CIL[DOC-VECTOR type="implementation_pattern" content="" status="pending_human_input"]
|
|
479
494
|
// CIL[DOC-VECTOR type="user_journey" content="" status="pending_human_input"]
|
|
495
|
+
// CIL[END stable_id="~/.framework/src/components/ui/dropdown-menu.tsx:DropdownMenuSubTrigger:component"]
|
|
496
|
+
|
|
497
|
+
// CIL[BEGIN stable_id="~/.framework/src/components/ui/dropdown-menu.tsx:DropdownMenuSubContent:component"]
|
|
498
|
+
// CIL[DOC-MACRO purpose="Nested dropdown submenu content panel"]
|
|
499
|
+
// CIL[DOC-RESPONSIBILITY responsibility="Render styled nested submenu content with animations"]
|
|
500
|
+
// CIL[DOC-CONTEXT module="components/ui/dropdown-menu" layer="ui" related_files=".framework/src/components/ui/dropdown-menu.tsx,.framework/src/lib/utils.ts"]
|
|
501
|
+
// CIL[DOC-CONTRACT inputs="className, ...props" outputs="JSX element" errors="None" side_effects="Renders nested submenu content"]
|
|
502
|
+
// CIL[DOC-MICRO logic_summary="Forwards props to Radix SubContent with data-slot and a Tailwind class string for nested menus" notable_decisions="[]"]
|
|
503
|
+
// CIL[DOC-CONFIDENCE pass="second" score="0.90" flags="none"]
|
|
504
|
+
// CIL[DOC-STABILITY stability="stable"]
|
|
480
505
|
function DropdownMenuSubContent({
|
|
481
506
|
className,
|
|
482
507
|
...props
|
|
@@ -489,21 +514,21 @@ function DropdownMenuSubContent({
|
|
|
489
514
|
/>
|
|
490
515
|
)
|
|
491
516
|
}
|
|
492
|
-
// CIL[
|
|
493
|
-
// CIL[
|
|
494
|
-
// CIL[DOC-
|
|
495
|
-
// CIL[DOC-
|
|
496
|
-
// CIL[DOC-CONTEXT module="dropdownmenu" layer="ui" related_files="[]"]
|
|
497
|
-
// CIL[DOC-CONTRACT inputs="none" outputs="component exports" errors="none" side_effects="module exports"]
|
|
498
|
-
// CIL[DOC-MICRO logic_summary="Exports all dropdown menu components for external usage" notable_decisions="[]"]
|
|
499
|
-
// CIL[DOC-CONFIDENCE pass="second" score="0.95" flags="none"]
|
|
500
|
-
// CIL[DOC-STABILITY stability="stable"]
|
|
501
|
-
// CIL[DOC-VECTOR type="context" content="Layer: ui. Direct callers: 0. Direct calls: 0. Related files: none."]
|
|
502
|
-
// CIL[DOC-VECTOR type="blast_radius" content="Direct callers: 0. Total affected: 0."]
|
|
503
|
-
// CIL[DOC-VECTOR type="configuration" content="No configuration dependencies."]
|
|
504
|
-
// CIL[DOC-VECTOR type="constraint" content="No test paths identified."]
|
|
517
|
+
// CIL[DOC-VECTOR type="context" content="purpose='Nested dropdown submenu content panel'; No verified external callers; imports: .framework/src/lib/utils.ts"]
|
|
518
|
+
// CIL[DOC-VECTOR type="blast_radius" content="No direct caller data from CIL graph; local impact only"]
|
|
519
|
+
// CIL[DOC-VECTOR type="configuration" content="No environment or build configuration dependencies identified"]
|
|
520
|
+
// CIL[DOC-VECTOR type="constraint" content="Standard runtime; no special invariants documented"]
|
|
505
521
|
// CIL[DOC-VECTOR type="implementation_pattern" content="" status="pending_human_input"]
|
|
506
522
|
// CIL[DOC-VECTOR type="user_journey" content="" status="pending_human_input"]
|
|
523
|
+
// CIL[END stable_id="~/.framework/src/components/ui/dropdown-menu.tsx:DropdownMenuSubContent:component"]
|
|
524
|
+
// CIL[BEGIN stable_id="~/.framework/src/components/ui/dropdown-menu.tsx:export_block:export_block"]
|
|
525
|
+
// CIL[DOC-MACRO purpose="Export all dropdown menu component symbols"]
|
|
526
|
+
// CIL[DOC-RESPONSIBILITY responsibility="Make dropdown menu components available for import by consumers"]
|
|
527
|
+
// CIL[DOC-CONTEXT module="components/ui/dropdown-menu" layer="ui" related_files=".framework/src/components/ui/dropdown-menu.tsx,.framework/src/lib/utils.ts"]
|
|
528
|
+
// CIL[DOC-CONTRACT inputs="All component definitions in this module" outputs="Named exports" errors="None" side_effects="Exposes module public API"]
|
|
529
|
+
// CIL[DOC-MICRO logic_summary="Named export block listing every dropdown menu component" notable_decisions="[]"]
|
|
530
|
+
// CIL[DOC-CONFIDENCE pass="second" score="0.90" flags="none"]
|
|
531
|
+
// CIL[DOC-STABILITY stability="stable"]
|
|
507
532
|
export {
|
|
508
533
|
DropdownMenu,
|
|
509
534
|
DropdownMenuPortal,
|
|
@@ -521,4 +546,10 @@ export {
|
|
|
521
546
|
DropdownMenuSubTrigger,
|
|
522
547
|
DropdownMenuSubContent,
|
|
523
548
|
}
|
|
524
|
-
// CIL[
|
|
549
|
+
// CIL[DOC-VECTOR type="context" content="purpose='Export all dropdown menu component symbols'; No verified external callers; imports: .framework/src/lib/utils.ts"]
|
|
550
|
+
// CIL[DOC-VECTOR type="blast_radius" content="No direct caller data from CIL graph; local impact only"]
|
|
551
|
+
// CIL[DOC-VECTOR type="configuration" content="No environment or build configuration dependencies identified"]
|
|
552
|
+
// CIL[DOC-VECTOR type="constraint" content="Standard runtime; no special invariants documented"]
|
|
553
|
+
// CIL[DOC-VECTOR type="implementation_pattern" content="" status="pending_human_input"]
|
|
554
|
+
// CIL[DOC-VECTOR type="user_journey" content="" status="pending_human_input"]
|
|
555
|
+
// CIL[END stable_id="~/.framework/src/components/ui/dropdown-menu.tsx:export_block:export_block"]
|