spine-framework 0.3.145 → 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 +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,13 @@
|
|
|
1
|
+
// CIL[BEGIN stable_id="~/.framework/src/components/ui/sidebar.tsx:module_header:module_header" type="module_header" identity="module_header" parent="none"]
|
|
2
|
+
// CIL[DOC-AUDIENCE audience="frontend-developers"]
|
|
3
|
+
// CIL[DOC-MACRO purpose="Collects sidebar dependencies, shared configuration, context types, and exports the public sidebar API"]
|
|
4
|
+
// CIL[DOC-RESPONSIBILITY responsibility="Import shared dependencies and declare module-level sidebar constants and types"]
|
|
5
|
+
// CIL[DOC-CONTEXT module="sidebar" layer="ui" related_files=".framework/src/components/ui/button.tsx,.framework/src/components/ui/input.tsx,.framework/src/components/ui/separator.tsx,.framework/src/components/ui/sheet.tsx,.framework/src/components/ui/skeleton.tsx,.framework/src/components/ui/tooltip.tsx,.framework/src/hooks/use-mobile.ts,.framework/src/lib/utils.ts"]
|
|
6
|
+
// CIL[DOC-CONTRACT inputs="none" outputs="none (side effects at module level)" errors="none" side_effects="creates React context and defines module constants"]
|
|
7
|
+
// CIL[DOC-MICRO logic_summary="Imports React, cva, radix-ui Slot, project hooks, local utilities, and sibling UI components" notable_decisions="[]"]
|
|
8
|
+
// CIL[DOC-CONFIDENCE pass="second" score="0.90" flags="none"]
|
|
9
|
+
// CIL[DOC-STABILITY stability="stable"]
|
|
10
|
+
|
|
1
11
|
|
|
2
12
|
|
|
3
13
|
|
|
@@ -28,21 +38,6 @@
|
|
|
28
38
|
|
|
29
39
|
|
|
30
40
|
|
|
31
|
-
// CIL[BEGIN chunk_id="sidebar_module_header_1783758409" type="module_header" identity="imports" parent="none"]
|
|
32
|
-
// CIL[DOC-MACRO purpose="Import dependencies for sidebar component library"]
|
|
33
|
-
// CIL[DOC-RESPONSIBILITY responsibility="Import external React UI primitives and utilities"]
|
|
34
|
-
// CIL[DOC-CONTEXT module="sidebar" layer="ui_components" related_files="[\".framework/src/components/layout/Sidebar.tsx\",\".framework/src/components/ui/dialog.tsx\",\"custom/apps/cortex/pages/operations/OperationsDashboard.tsx\",\"custom/apps/portal/pages/ContentPage.tsx\",\"custom/apps/portal/pages/CoursesPage.tsx\",\"\\\"]"]
|
|
35
|
-
// CIL[DOC-CONTRACT inputs="none" outputs="React, CVA, hooks, UI components, icons" errors="none" side_effects="Module imports"]
|
|
36
|
-
// CIL[DOC-MICRO logic_summary="Imports React, CVA, hooks, UI components and icons for sidebar functionality" notable_decisions="[]"]
|
|
37
|
-
// CIL[DOC-CONFIDENCE pass="second" score="0.95" flags="none"]
|
|
38
|
-
// CIL[DOC-STABILITY stability="stable"]
|
|
39
|
-
// CIL[DOC-AUDIENCE audience="developer"]
|
|
40
|
-
// CIL[DOC-VECTOR type="context" content="Layer: ui_components. Direct callers: 0. Direct calls: 0. Related files: .framework/src/components/layout/Sidebar.tsx, .framework/src/components/ui/dialog.tsx, custom/apps/cortex/pages/operations/OperationsDashboard.tsx, custom/apps/portal/pages/ContentPage.tsx, custom/apps/portal/pages/CoursesPage.tsx, \."]
|
|
41
|
-
// CIL[DOC-VECTOR type="blast_radius" content="Direct callers: 0. Total affected: 0."]
|
|
42
|
-
// CIL[DOC-VECTOR type="configuration" content="No configuration dependencies."]
|
|
43
|
-
// CIL[DOC-VECTOR type="constraint" content="No test paths identified."]
|
|
44
|
-
// CIL[DOC-VECTOR type="implementation_pattern" content="" status="pending_human_input"]
|
|
45
|
-
// CIL[DOC-VECTOR type="user_journey" content="" status="pending_human_input"]
|
|
46
41
|
import * as React from "react"
|
|
47
42
|
import { cva, type VariantProps } from "class-variance-authority"
|
|
48
43
|
import { Slot } from "radix-ui"
|
|
@@ -66,42 +61,28 @@ import {
|
|
|
66
61
|
TooltipTrigger,
|
|
67
62
|
} from "@/components/ui/tooltip"
|
|
68
63
|
import { PanelLeftIcon } from "lucide-react"
|
|
69
|
-
// CIL[
|
|
70
|
-
// CIL[
|
|
71
|
-
// CIL[DOC-
|
|
72
|
-
// CIL[DOC-
|
|
73
|
-
// CIL[DOC-CONTEXT module="sidebar" layer="ui_components" related_files="[\".framework/src/components/layout/Sidebar.tsx\",\".framework/src/pages/admin/IntegrationsPage.tsx\",\".framework/functions/_shared/principal.ts\",\".framework/functions/_shared/schema-utils.ts\",\"custom/apps/cortex/pages/operations/OperationsDashboard.tsx\",\"\\\"]"]
|
|
74
|
-
// CIL[DOC-CONTRACT inputs="none" outputs="Constants" errors="none" side_effects="Constants definition"]
|
|
75
|
-
// CIL[DOC-MICRO logic_summary="Defines cookie name, max age, width values and keyboard shortcut for sidebar" notable_decisions="[]"]
|
|
76
|
-
// CIL[DOC-CONFIDENCE pass="second" score="0.95" flags="none"]
|
|
77
|
-
// CIL[DOC-STABILITY stability="stable"]
|
|
78
|
-
// CIL[DOC-VECTOR type="context" content="Layer: ui_components. Direct callers: 0. Direct calls: 0. Related files: .framework/src/components/layout/Sidebar.tsx, .framework/src/pages/admin/IntegrationsPage.tsx, .framework/functions/_shared/principal.ts, .framework/functions/_shared/schema-utils.ts, custom/apps/cortex/pages/operations/OperationsDashboard.tsx, \."]
|
|
79
|
-
// CIL[DOC-VECTOR type="blast_radius" content="Direct callers: 0. Total affected: 0."]
|
|
80
|
-
// CIL[DOC-VECTOR type="configuration" content="No configuration dependencies."]
|
|
81
|
-
// CIL[DOC-VECTOR type="constraint" content="No test paths identified."]
|
|
64
|
+
// CIL[DOC-VECTOR type="context" content="purpose='Collects sidebar dependencies, shared configuration, context types, and exports the public sidebar API'; No verified external callers; imports: .framework/src/hooks/use-mobile.ts,.framework/src/lib/utils.ts,.framework/src/components/ui/button.tsx"]
|
|
65
|
+
// CIL[DOC-VECTOR type="blast_radius" content="No direct caller data from CIL graph; local impact only"]
|
|
66
|
+
// CIL[DOC-VECTOR type="configuration" content="No environment or build configuration dependencies identified"]
|
|
67
|
+
// CIL[DOC-VECTOR type="constraint" content="Standard runtime; no special invariants documented"]
|
|
82
68
|
// CIL[DOC-VECTOR type="implementation_pattern" content="" status="pending_human_input"]
|
|
83
69
|
// CIL[DOC-VECTOR type="user_journey" content="" status="pending_human_input"]
|
|
70
|
+
// CIL[END stable_id="~/.framework/src/components/ui/sidebar.tsx:module_header:module_header"]
|
|
71
|
+
|
|
72
|
+
// CIL[BEGIN stable_id="~/.framework/src/components/ui/sidebar.tsx:sidebar_config:config" type="config" identity="sidebar_config" parent="none"]
|
|
73
|
+
// CIL[DOC-MACRO purpose="Defines sidebar layout constants, cookie name, keyboard shortcut, and the React context type"]
|
|
74
|
+
// CIL[DOC-RESPONSIBILITY responsibility="Provide reusable layout values and the typed sidebar context"]
|
|
75
|
+
// CIL[DOC-CONTEXT module="sidebar" layer="ui" related_files=".framework/src/components/ui/button.tsx,.framework/src/components/ui/input.tsx,.framework/src/components/ui/separator.tsx,.framework/src/components/ui/sheet.tsx,.framework/src/components/ui/sidebar.tsx,.framework/src/components/ui/skeleton.tsx,.framework/src/components/ui/tooltip.tsx,.framework/src/hooks/use-mobile.ts,.framework/src/lib/utils.ts"]
|
|
76
|
+
// CIL[DOC-CONTRACT inputs="none" outputs="constants, types, and context" errors="none" side_effects="none"]
|
|
77
|
+
// CIL[DOC-MICRO logic_summary="Declares cookie and width constants and a typed context for provider state" notable_decisions="[]"]
|
|
78
|
+
// CIL[DOC-CONFIDENCE pass="second" score="0.90" flags="none"]
|
|
79
|
+
// CIL[DOC-STABILITY stability="stable"]
|
|
84
80
|
const SIDEBAR_COOKIE_NAME = "sidebar_state"
|
|
85
81
|
const SIDEBAR_COOKIE_MAX_AGE = 60 * 60 * 24 * 7
|
|
86
82
|
const SIDEBAR_WIDTH = "16rem"
|
|
87
83
|
const SIDEBAR_WIDTH_MOBILE = "18rem"
|
|
88
84
|
const SIDEBAR_WIDTH_ICON = "3rem"
|
|
89
85
|
const SIDEBAR_KEYBOARD_SHORTCUT = "b"
|
|
90
|
-
// CIL[END chunk_id="sidebar_constants_1783758409"]
|
|
91
|
-
// CIL[BEGIN chunk_id="sidebar_types_1783758409" type="types" identity="SidebarContextProps" parent="none"]
|
|
92
|
-
// CIL[DOC-MACRO purpose="Define sidebar context interface"]
|
|
93
|
-
// CIL[DOC-RESPONSIBILITY responsibility="Provide TypeScript interface for sidebar context"]
|
|
94
|
-
// CIL[DOC-CONTEXT module="sidebar" layer="ui_components" related_files="[\".framework/src/components/layout/Sidebar.tsx\",\".framework/functions/_shared/schema-utils.ts\",\".framework/src/pages/admin/IntegrationsPage.tsx\",\".framework/functions/_shared/principal.ts\",\"custom/apps/cortex/pages/operations/OperationsDashboard.tsx\",\"\\\"]"]
|
|
95
|
-
// CIL[DOC-CONTRACT inputs="none" outputs="TypeScript interface" errors="none" side_effects="Type definition"]
|
|
96
|
-
// CIL[DOC-MICRO logic_summary="Defines interface with state, open/close functions, mobile detection and toggle" notable_decisions="[]"]
|
|
97
|
-
// CIL[DOC-CONFIDENCE pass="second" score="0.95" flags="none"]
|
|
98
|
-
// CIL[DOC-STABILITY stability="stable"]
|
|
99
|
-
// CIL[DOC-VECTOR type="context" content="Layer: ui_components. Direct callers: 0. Direct calls: 0. Related files: .framework/src/components/layout/Sidebar.tsx, .framework/functions/_shared/schema-utils.ts, .framework/src/pages/admin/IntegrationsPage.tsx, .framework/functions/_shared/principal.ts, custom/apps/cortex/pages/operations/OperationsDashboard.tsx, \."]
|
|
100
|
-
// CIL[DOC-VECTOR type="blast_radius" content="Direct callers: 0. Total affected: 0."]
|
|
101
|
-
// CIL[DOC-VECTOR type="configuration" content="No configuration dependencies."]
|
|
102
|
-
// CIL[DOC-VECTOR type="constraint" content="No test paths identified."]
|
|
103
|
-
// CIL[DOC-VECTOR type="implementation_pattern" content="" status="pending_human_input"]
|
|
104
|
-
// CIL[DOC-VECTOR type="user_journey" content="" status="pending_human_input"]
|
|
105
86
|
type SidebarContextProps = {
|
|
106
87
|
state: "expanded" | "collapsed"
|
|
107
88
|
open: boolean
|
|
@@ -111,37 +92,23 @@ type SidebarContextProps = {
|
|
|
111
92
|
isMobile: boolean
|
|
112
93
|
toggleSidebar: () => void
|
|
113
94
|
}
|
|
114
|
-
// CIL[END chunk_id="sidebar_types_1783758409"]
|
|
115
|
-
// CIL[BEGIN chunk_id="sidebar_context_1783758409" type="context" identity="SidebarContext" parent="none"]
|
|
116
|
-
// CIL[DOC-MACRO purpose="Create React context for sidebar state"]
|
|
117
|
-
// CIL[DOC-RESPONSIBILITY responsibility="Provide context for sharing sidebar state across components"]
|
|
118
|
-
// CIL[DOC-CONTEXT module="sidebar" layer="ui_components" related_files="[\".framework/src/components/layout/Sidebar.tsx\",\".framework/src/pages/admin/TypeDetailPage.tsx\",\"custom/apps/portal/pages/ContentPage.tsx\",\"custom/apps/portal/pages/CoursesPage.tsx\",\"custom/apps/cortex/pages/operations/OperationsDashboard.tsx\",\"\\\"]"]
|
|
119
|
-
// CIL[DOC-CONTRACT inputs="none" outputs="React Context" errors="none" side_effects="React context creation"]
|
|
120
|
-
// CIL[DOC-MICRO logic_summary="Creates React context with SidebarContextProps type and null default" notable_decisions="[]"]
|
|
121
|
-
// CIL[DOC-CONFIDENCE pass="second" score="0.95" flags="none"]
|
|
122
|
-
// CIL[DOC-STABILITY stability="stable"]
|
|
123
|
-
// CIL[DOC-VECTOR type="context" content="Layer: ui_components. Direct callers: 0. Direct calls: 0. Related files: .framework/src/components/layout/Sidebar.tsx, .framework/src/pages/admin/TypeDetailPage.tsx, custom/apps/portal/pages/ContentPage.tsx, custom/apps/portal/pages/CoursesPage.tsx, custom/apps/cortex/pages/operations/OperationsDashboard.tsx, \."]
|
|
124
|
-
// CIL[DOC-VECTOR type="blast_radius" content="Direct callers: 0. Total affected: 0."]
|
|
125
|
-
// CIL[DOC-VECTOR type="configuration" content="No configuration dependencies."]
|
|
126
|
-
// CIL[DOC-VECTOR type="constraint" content="No test paths identified."]
|
|
127
|
-
// CIL[DOC-VECTOR type="implementation_pattern" content="" status="pending_human_input"]
|
|
128
|
-
// CIL[DOC-VECTOR type="user_journey" content="" status="pending_human_input"]
|
|
129
95
|
const SidebarContext = React.createContext<SidebarContextProps | null>(null)
|
|
130
|
-
// CIL[
|
|
131
|
-
// CIL[
|
|
132
|
-
// CIL[DOC-
|
|
133
|
-
// CIL[DOC-
|
|
134
|
-
// CIL[DOC-CONTEXT module="sidebar" layer="ui_components" related_files="[]"]
|
|
135
|
-
// CIL[DOC-CONTRACT inputs="none" outputs="SidebarContextProps" errors="Throws if context missing" side_effects="React context access"]
|
|
136
|
-
// CIL[DOC-MICRO logic_summary="Accesses React context with error throwing for missing provider" notable_decisions="[]"]
|
|
137
|
-
// CIL[DOC-CONFIDENCE pass="second" score="0.95" flags="none"]
|
|
138
|
-
// CIL[DOC-STABILITY stability="stable"]
|
|
139
|
-
// CIL[DOC-VECTOR type="context" content="Layer: ui_components. Direct callers: 0. Direct calls: 0. Related files: none."]
|
|
140
|
-
// CIL[DOC-VECTOR type="blast_radius" content="Direct callers: 0. Total affected: 0."]
|
|
141
|
-
// CIL[DOC-VECTOR type="configuration" content="No configuration dependencies."]
|
|
142
|
-
// CIL[DOC-VECTOR type="constraint" content="No test paths identified."]
|
|
96
|
+
// CIL[DOC-VECTOR type="context" content="purpose='Defines sidebar layout constants, cookie name, keyboard shortcut, and the React context type'; No verified external callers; imports: .framework/src/hooks/use-mobile.ts,.framework/src/lib/utils.ts,.framework/src/components/ui/button.tsx"]
|
|
97
|
+
// CIL[DOC-VECTOR type="blast_radius" content="No direct caller data from CIL graph; local impact only"]
|
|
98
|
+
// CIL[DOC-VECTOR type="configuration" content="No environment or build configuration dependencies identified"]
|
|
99
|
+
// CIL[DOC-VECTOR type="constraint" content="Standard runtime; no special invariants documented"]
|
|
143
100
|
// CIL[DOC-VECTOR type="implementation_pattern" content="" status="pending_human_input"]
|
|
144
101
|
// CIL[DOC-VECTOR type="user_journey" content="" status="pending_human_input"]
|
|
102
|
+
// CIL[END stable_id="~/.framework/src/components/ui/sidebar.tsx:sidebar_config:config"]
|
|
103
|
+
|
|
104
|
+
// CIL[BEGIN stable_id="~/.framework/src/components/ui/sidebar.tsx:useSidebar:hook" type="hook" identity="useSidebar" parent="none"]
|
|
105
|
+
// CIL[DOC-MACRO purpose="Provides the sidebar state hook used by consumers within a SidebarProvider"]
|
|
106
|
+
// CIL[DOC-RESPONSIBILITY responsibility="Return the current sidebar context or throw if the provider is missing"]
|
|
107
|
+
// CIL[DOC-CONTEXT module="sidebar" layer="ui" related_files=".framework/src/components/ui/button.tsx,.framework/src/components/ui/input.tsx,.framework/src/components/ui/separator.tsx,.framework/src/components/ui/sheet.tsx,.framework/src/components/ui/sidebar.tsx,.framework/src/components/ui/skeleton.tsx,.framework/src/components/ui/tooltip.tsx,.framework/src/hooks/use-mobile.ts,.framework/src/lib/utils.ts"]
|
|
108
|
+
// CIL[DOC-CONTRACT inputs="none" outputs="SidebarContextProps object" errors="throws if called outside a SidebarProvider" side_effects="none"]
|
|
109
|
+
// CIL[DOC-MICRO logic_summary="Reads context and throws when null" notable_decisions="[]"]
|
|
110
|
+
// CIL[DOC-CONFIDENCE pass="second" score="0.90" flags="none"]
|
|
111
|
+
// CIL[DOC-STABILITY stability="stable"]
|
|
145
112
|
function useSidebar() {
|
|
146
113
|
const context = React.useContext(SidebarContext)
|
|
147
114
|
if (!context) {
|
|
@@ -150,21 +117,22 @@ function useSidebar() {
|
|
|
150
117
|
|
|
151
118
|
return context
|
|
152
119
|
}
|
|
153
|
-
// CIL[
|
|
154
|
-
// CIL[
|
|
155
|
-
// CIL[DOC-
|
|
156
|
-
// CIL[DOC-
|
|
157
|
-
// CIL[DOC-CONTEXT module="sidebar" layer="ui_components" related_files="[]"]
|
|
158
|
-
// CIL[DOC-CONTRACT inputs="none" outputs="Context provider" errors="none" side_effects="State management, cookie storage, keyboard events"]
|
|
159
|
-
// CIL[DOC-MICRO logic_summary="Manages sidebar state with cookie persistence, keyboard shortcuts, mobile detection and context provision" notable_decisions="[]"]
|
|
160
|
-
// CIL[DOC-CONFIDENCE pass="second" score="0.95" flags="none"]
|
|
161
|
-
// CIL[DOC-STABILITY stability="stable"]
|
|
162
|
-
// CIL[DOC-VECTOR type="context" content="Layer: ui_components. Direct callers: 0. Direct calls: 0. Related files: none."]
|
|
163
|
-
// CIL[DOC-VECTOR type="blast_radius" content="Direct callers: 0. Total affected: 0."]
|
|
164
|
-
// CIL[DOC-VECTOR type="configuration" content="No configuration dependencies."]
|
|
165
|
-
// CIL[DOC-VECTOR type="constraint" content="No test paths identified."]
|
|
120
|
+
// CIL[DOC-VECTOR type="context" content="purpose='Provides the sidebar state hook used by consumers within a SidebarProvider'; No verified external callers; imports: .framework/src/hooks/use-mobile.ts,.framework/src/lib/utils.ts,.framework/src/components/ui/button.tsx"]
|
|
121
|
+
// CIL[DOC-VECTOR type="blast_radius" content="No direct caller data from CIL graph; local impact only"]
|
|
122
|
+
// CIL[DOC-VECTOR type="configuration" content="No environment or build configuration dependencies identified"]
|
|
123
|
+
// CIL[DOC-VECTOR type="constraint" content="Standard runtime; no special invariants documented"]
|
|
166
124
|
// CIL[DOC-VECTOR type="implementation_pattern" content="" status="pending_human_input"]
|
|
167
125
|
// CIL[DOC-VECTOR type="user_journey" content="" status="pending_human_input"]
|
|
126
|
+
// CIL[END stable_id="~/.framework/src/components/ui/sidebar.tsx:useSidebar:hook"]
|
|
127
|
+
|
|
128
|
+
// CIL[BEGIN stable_id="~/.framework/src/components/ui/sidebar.tsx:SidebarProvider:component" type="component" identity="SidebarProvider" parent="none"]
|
|
129
|
+
// CIL[DOC-MACRO purpose="Manages sidebar open state, mobile sheet state, cookie persistence, and keyboard toggle"]
|
|
130
|
+
// CIL[DOC-RESPONSIBILITY responsibility="Own sidebar state, cookie persistence, keyboard shortcut, and context value"]
|
|
131
|
+
// CIL[DOC-CONTEXT module="sidebar" layer="ui" related_files=".framework/src/components/ui/button.tsx,.framework/src/components/ui/input.tsx,.framework/src/components/ui/separator.tsx,.framework/src/components/ui/sheet.tsx,.framework/src/components/ui/sidebar.tsx,.framework/src/components/ui/skeleton.tsx,.framework/src/components/ui/tooltip.tsx,.framework/src/hooks/use-mobile.ts,.framework/src/lib/utils.ts"]
|
|
132
|
+
// CIL[DOC-CONTRACT inputs="defaultOpen, open, onOpenChange, className, style, children, props" outputs="JSX element" errors="none" side_effects="sets document.cookie and attaches a window keydown listener"]
|
|
133
|
+
// CIL[DOC-MICRO logic_summary="Initializes open state, syncs props, persists state to a cookie, and toggles via keyboard" notable_decisions="[]"]
|
|
134
|
+
// CIL[DOC-CONFIDENCE pass="second" score="0.90" flags="none"]
|
|
135
|
+
// CIL[DOC-STABILITY stability="stable"]
|
|
168
136
|
function SidebarProvider({
|
|
169
137
|
defaultOpen = true,
|
|
170
138
|
open: openProp,
|
|
@@ -253,21 +221,22 @@ function SidebarProvider({
|
|
|
253
221
|
</SidebarContext.Provider>
|
|
254
222
|
)
|
|
255
223
|
}
|
|
256
|
-
// CIL[
|
|
257
|
-
// CIL[
|
|
258
|
-
// CIL[DOC-
|
|
259
|
-
// CIL[DOC-
|
|
260
|
-
// CIL[DOC-CONTEXT module="sidebar" layer="ui_components" related_files="[]"]
|
|
261
|
-
// CIL[DOC-CONTRACT inputs="none" outputs="Styled sidebar panel" errors="none" side_effects="DOM rendering"]
|
|
262
|
-
// CIL[DOC-MICRO logic_summary="Creates responsive sidebar with mobile sheet, desktop panel, gap handling and animations" notable_decisions="[]"]
|
|
263
|
-
// CIL[DOC-CONFIDENCE pass="second" score="0.95" flags="none"]
|
|
264
|
-
// CIL[DOC-STABILITY stability="stable"]
|
|
265
|
-
// CIL[DOC-VECTOR type="context" content="Layer: ui_components. Direct callers: 0. Direct calls: 0. Related files: none."]
|
|
266
|
-
// CIL[DOC-VECTOR type="blast_radius" content="Direct callers: 0. Total affected: 0."]
|
|
267
|
-
// CIL[DOC-VECTOR type="configuration" content="No configuration dependencies."]
|
|
268
|
-
// CIL[DOC-VECTOR type="constraint" content="No test paths identified."]
|
|
224
|
+
// CIL[DOC-VECTOR type="context" content="purpose='Manages sidebar open state, mobile sheet state, cookie persistence, and keyboard toggle'; No verified external callers; imports: .framework/src/hooks/use-mobile.ts,.framework/src/lib/utils.ts,.framework/src/components/ui/button.tsx"]
|
|
225
|
+
// CIL[DOC-VECTOR type="blast_radius" content="No direct caller data from CIL graph; local impact only"]
|
|
226
|
+
// CIL[DOC-VECTOR type="configuration" content="No environment or build configuration dependencies identified"]
|
|
227
|
+
// CIL[DOC-VECTOR type="constraint" content="Standard runtime; no special invariants documented"]
|
|
269
228
|
// CIL[DOC-VECTOR type="implementation_pattern" content="" status="pending_human_input"]
|
|
270
229
|
// CIL[DOC-VECTOR type="user_journey" content="" status="pending_human_input"]
|
|
230
|
+
// CIL[END stable_id="~/.framework/src/components/ui/sidebar.tsx:SidebarProvider:component"]
|
|
231
|
+
|
|
232
|
+
// CIL[BEGIN stable_id="~/.framework/src/components/ui/sidebar.tsx:Sidebar:component" type="component" identity="Sidebar" parent="none"]
|
|
233
|
+
// CIL[DOC-MACRO purpose="Renders the main sidebar container with responsive offcanvas, floating, or inset variants"]
|
|
234
|
+
// CIL[DOC-RESPONSIBILITY responsibility="Render the correct sidebar layout for desktop or mobile contexts"]
|
|
235
|
+
// CIL[DOC-CONTEXT module="sidebar" layer="ui" related_files=".framework/src/components/ui/button.tsx,.framework/src/components/ui/input.tsx,.framework/src/components/ui/separator.tsx,.framework/src/components/ui/sheet.tsx,.framework/src/components/ui/sidebar.tsx,.framework/src/components/ui/skeleton.tsx,.framework/src/components/ui/tooltip.tsx,.framework/src/hooks/use-mobile.ts,.framework/src/lib/utils.ts"]
|
|
236
|
+
// CIL[DOC-CONTRACT inputs="side, variant, collapsible, className, children, dir, props" outputs="JSX element" errors="none" side_effects="none"]
|
|
237
|
+
// CIL[DOC-MICRO logic_summary="Chooses between a static container, a mobile Sheet, or a desktop peer layout based on props and screen" notable_decisions="[]"]
|
|
238
|
+
// CIL[DOC-CONFIDENCE pass="second" score="0.90" flags="none"]
|
|
239
|
+
// CIL[DOC-STABILITY stability="stable"]
|
|
271
240
|
function Sidebar({
|
|
272
241
|
side = "left",
|
|
273
242
|
variant = "sidebar",
|
|
@@ -323,7 +292,6 @@ function Sidebar({
|
|
|
323
292
|
</Sheet>
|
|
324
293
|
)
|
|
325
294
|
}
|
|
326
|
-
|
|
327
295
|
return (
|
|
328
296
|
<div
|
|
329
297
|
className="group peer hidden text-sidebar-foreground md:block"
|
|
@@ -368,21 +336,22 @@ function Sidebar({
|
|
|
368
336
|
</div>
|
|
369
337
|
)
|
|
370
338
|
}
|
|
371
|
-
// CIL[
|
|
372
|
-
// CIL[
|
|
373
|
-
// CIL[DOC-
|
|
374
|
-
// CIL[DOC-
|
|
375
|
-
// CIL[DOC-CONTEXT module="sidebar" layer="ui_components" related_files="[]"]
|
|
376
|
-
// CIL[DOC-CONTRACT inputs="none" outputs="Toggle button" errors="none" side_effects="State change, DOM events"]
|
|
377
|
-
// CIL[DOC-MICRO logic_summary="Creates button with PanelLeftIcon that toggles sidebar state on click" notable_decisions="[]"]
|
|
378
|
-
// CIL[DOC-CONFIDENCE pass="second" score="0.95" flags="none"]
|
|
379
|
-
// CIL[DOC-STABILITY stability="stable"]
|
|
380
|
-
// CIL[DOC-VECTOR type="context" content="Layer: ui_components. Direct callers: 0. Direct calls: 0. Related files: none."]
|
|
381
|
-
// CIL[DOC-VECTOR type="blast_radius" content="Direct callers: 0. Total affected: 0."]
|
|
382
|
-
// CIL[DOC-VECTOR type="configuration" content="No configuration dependencies."]
|
|
383
|
-
// CIL[DOC-VECTOR type="constraint" content="No test paths identified."]
|
|
339
|
+
// CIL[DOC-VECTOR type="context" content="purpose='Renders the main sidebar container with responsive offcanvas, floating, or inset variants'; No verified external callers; imports: .framework/src/hooks/use-mobile.ts,.framework/src/lib/utils.ts,.framework/src/components/ui/button.tsx"]
|
|
340
|
+
// CIL[DOC-VECTOR type="blast_radius" content="No direct caller data from CIL graph; local impact only"]
|
|
341
|
+
// CIL[DOC-VECTOR type="configuration" content="No environment or build configuration dependencies identified"]
|
|
342
|
+
// CIL[DOC-VECTOR type="constraint" content="Standard runtime; no special invariants documented"]
|
|
384
343
|
// CIL[DOC-VECTOR type="implementation_pattern" content="" status="pending_human_input"]
|
|
385
344
|
// CIL[DOC-VECTOR type="user_journey" content="" status="pending_human_input"]
|
|
345
|
+
// CIL[END stable_id="~/.framework/src/components/ui/sidebar.tsx:Sidebar:component"]
|
|
346
|
+
|
|
347
|
+
// CIL[BEGIN stable_id="~/.framework/src/components/ui/sidebar.tsx:SidebarTrigger:component" type="component" identity="SidebarTrigger" parent="none"]
|
|
348
|
+
// CIL[DOC-MACRO purpose="Renders a button that toggles the sidebar open/closed state"]
|
|
349
|
+
// CIL[DOC-RESPONSIBILITY responsibility="Toggle sidebar state when activated by user interaction"]
|
|
350
|
+
// CIL[DOC-CONTEXT module="sidebar" layer="ui" related_files=".framework/src/components/ui/button.tsx,.framework/src/components/ui/input.tsx,.framework/src/components/ui/separator.tsx,.framework/src/components/ui/sheet.tsx,.framework/src/components/ui/sidebar.tsx,.framework/src/components/ui/skeleton.tsx,.framework/src/components/ui/tooltip.tsx,.framework/src/hooks/use-mobile.ts,.framework/src/lib/utils.ts"]
|
|
351
|
+
// CIL[DOC-CONTRACT inputs="className, onClick, props" outputs="JSX element" errors="none" side_effects="calls toggleSidebar on click"]
|
|
352
|
+
// CIL[DOC-MICRO logic_summary="Wraps Button and calls toggleSidebar when clicked" notable_decisions="[]"]
|
|
353
|
+
// CIL[DOC-CONFIDENCE pass="second" score="0.90" flags="none"]
|
|
354
|
+
// CIL[DOC-STABILITY stability="stable"]
|
|
386
355
|
function SidebarTrigger({
|
|
387
356
|
className,
|
|
388
357
|
onClick,
|
|
@@ -408,21 +377,22 @@ function SidebarTrigger({
|
|
|
408
377
|
</Button>
|
|
409
378
|
)
|
|
410
379
|
}
|
|
411
|
-
// CIL[
|
|
412
|
-
// CIL[
|
|
413
|
-
// CIL[DOC-
|
|
414
|
-
// CIL[DOC-
|
|
415
|
-
// CIL[DOC-CONTEXT module="sidebar" layer="ui_components" related_files="[]"]
|
|
416
|
-
// CIL[DOC-CONTRACT inputs="none" outputs="Rail button" errors="none" side_effects="DOM events"]
|
|
417
|
-
// CIL[DOC-MICRO logic_summary="Creates draggable rail with resize cursor, hover states and visual divider" notable_decisions="[]"]
|
|
418
|
-
// CIL[DOC-CONFIDENCE pass="second" score="0.95" flags="none"]
|
|
419
|
-
// CIL[DOC-STABILITY stability="stable"]
|
|
420
|
-
// CIL[DOC-VECTOR type="context" content="Layer: ui_components. Direct callers: 0. Direct calls: 0. Related files: none."]
|
|
421
|
-
// CIL[DOC-VECTOR type="blast_radius" content="Direct callers: 0. Total affected: 0."]
|
|
422
|
-
// CIL[DOC-VECTOR type="configuration" content="No configuration dependencies."]
|
|
423
|
-
// CIL[DOC-VECTOR type="constraint" content="No test paths identified."]
|
|
380
|
+
// CIL[DOC-VECTOR type="context" content="purpose='Renders a button that toggles the sidebar open/closed state'; No verified external callers; imports: .framework/src/hooks/use-mobile.ts,.framework/src/lib/utils.ts,.framework/src/components/ui/button.tsx"]
|
|
381
|
+
// CIL[DOC-VECTOR type="blast_radius" content="No direct caller data from CIL graph; local impact only"]
|
|
382
|
+
// CIL[DOC-VECTOR type="configuration" content="No environment or build configuration dependencies identified"]
|
|
383
|
+
// CIL[DOC-VECTOR type="constraint" content="Standard runtime; no special invariants documented"]
|
|
424
384
|
// CIL[DOC-VECTOR type="implementation_pattern" content="" status="pending_human_input"]
|
|
425
385
|
// CIL[DOC-VECTOR type="user_journey" content="" status="pending_human_input"]
|
|
386
|
+
// CIL[END stable_id="~/.framework/src/components/ui/sidebar.tsx:SidebarTrigger:component"]
|
|
387
|
+
|
|
388
|
+
// CIL[BEGIN stable_id="~/.framework/src/components/ui/sidebar.tsx:SidebarRail:component" type="component" identity="SidebarRail" parent="none"]
|
|
389
|
+
// CIL[DOC-MACRO purpose="Renders a collapsible rail area that toggles the sidebar when clicked"]
|
|
390
|
+
// CIL[DOC-RESPONSIBILITY responsibility="Provide a clickable rail to collapse or expand the sidebar"]
|
|
391
|
+
// CIL[DOC-CONTEXT module="sidebar" layer="ui" related_files=".framework/src/components/ui/button.tsx,.framework/src/components/ui/input.tsx,.framework/src/components/ui/separator.tsx,.framework/src/components/ui/sheet.tsx,.framework/src/components/ui/sidebar.tsx,.framework/src/components/ui/skeleton.tsx,.framework/src/components/ui/tooltip.tsx,.framework/src/hooks/use-mobile.ts,.framework/src/lib/utils.ts"]
|
|
392
|
+
// CIL[DOC-CONTRACT inputs="className, props" outputs="JSX element" errors="none" side_effects="calls toggleSidebar on click"]
|
|
393
|
+
// CIL[DOC-MICRO logic_summary="Renders an absolute hover/click rail to toggle the sidebar" notable_decisions="[]"]
|
|
394
|
+
// CIL[DOC-CONFIDENCE pass="second" score="0.90" flags="none"]
|
|
395
|
+
// CIL[DOC-STABILITY stability="stable"]
|
|
426
396
|
function SidebarRail({ className, ...props }: React.ComponentProps<"button">) {
|
|
427
397
|
const { toggleSidebar } = useSidebar()
|
|
428
398
|
|
|
@@ -447,21 +417,22 @@ function SidebarRail({ className, ...props }: React.ComponentProps<"button">) {
|
|
|
447
417
|
/>
|
|
448
418
|
)
|
|
449
419
|
}
|
|
450
|
-
// CIL[
|
|
451
|
-
// CIL[
|
|
452
|
-
// CIL[DOC-
|
|
453
|
-
// CIL[DOC-
|
|
454
|
-
// CIL[DOC-CONTEXT module="sidebar" layer="ui_components" related_files="[]"]
|
|
455
|
-
// CIL[DOC-CONTRACT inputs="none" outputs="Main content area" errors="none" side_effects="DOM rendering"]
|
|
456
|
-
// CIL[DOC-MICRO logic_summary="Creates main content area with responsive margins when sidebar is present" notable_decisions="[]"]
|
|
457
|
-
// CIL[DOC-CONFIDENCE pass="second" score="0.95" flags="none"]
|
|
458
|
-
// CIL[DOC-STABILITY stability="stable"]
|
|
459
|
-
// CIL[DOC-VECTOR type="context" content="Layer: ui_components. Direct callers: 0. Direct calls: 0. Related files: none."]
|
|
460
|
-
// CIL[DOC-VECTOR type="blast_radius" content="Direct callers: 0. Total affected: 0."]
|
|
461
|
-
// CIL[DOC-VECTOR type="configuration" content="No configuration dependencies."]
|
|
462
|
-
// CIL[DOC-VECTOR type="constraint" content="No test paths identified."]
|
|
420
|
+
// CIL[DOC-VECTOR type="context" content="purpose='Renders a collapsible rail area that toggles the sidebar when clicked'; No verified external callers; imports: .framework/src/hooks/use-mobile.ts,.framework/src/lib/utils.ts,.framework/src/components/ui/button.tsx"]
|
|
421
|
+
// CIL[DOC-VECTOR type="blast_radius" content="No direct caller data from CIL graph; local impact only"]
|
|
422
|
+
// CIL[DOC-VECTOR type="configuration" content="No environment or build configuration dependencies identified"]
|
|
423
|
+
// CIL[DOC-VECTOR type="constraint" content="Standard runtime; no special invariants documented"]
|
|
463
424
|
// CIL[DOC-VECTOR type="implementation_pattern" content="" status="pending_human_input"]
|
|
464
425
|
// CIL[DOC-VECTOR type="user_journey" content="" status="pending_human_input"]
|
|
426
|
+
// CIL[END stable_id="~/.framework/src/components/ui/sidebar.tsx:SidebarRail:component"]
|
|
427
|
+
|
|
428
|
+
// CIL[BEGIN stable_id="~/.framework/src/components/ui/sidebar.tsx:SidebarInset:component" type="component" identity="SidebarInset" parent="none"]
|
|
429
|
+
// CIL[DOC-MACRO purpose="Renders the main content area that adapts to the sidebar variant"]
|
|
430
|
+
// CIL[DOC-RESPONSIBILITY responsibility="Display main page content with correct margins for the active sidebar variant"]
|
|
431
|
+
// CIL[DOC-CONTEXT module="sidebar" layer="ui" related_files=".framework/src/components/ui/button.tsx,.framework/src/components/ui/input.tsx,.framework/src/components/ui/separator.tsx,.framework/src/components/ui/sheet.tsx,.framework/src/components/ui/sidebar.tsx,.framework/src/components/ui/skeleton.tsx,.framework/src/components/ui/tooltip.tsx,.framework/src/hooks/use-mobile.ts,.framework/src/lib/utils.ts"]
|
|
432
|
+
// CIL[DOC-CONTRACT inputs="className, props" outputs="JSX element" errors="none" side_effects="none"]
|
|
433
|
+
// CIL[DOC-MICRO logic_summary="Renders main content with inset-aware margins" notable_decisions="[]"]
|
|
434
|
+
// CIL[DOC-CONFIDENCE pass="second" score="0.90" flags="none"]
|
|
435
|
+
// CIL[DOC-STABILITY stability="stable"]
|
|
465
436
|
function SidebarInset({ className, ...props }: React.ComponentProps<"main">) {
|
|
466
437
|
return (
|
|
467
438
|
<main
|
|
@@ -474,21 +445,22 @@ function SidebarInset({ className, ...props }: React.ComponentProps<"main">) {
|
|
|
474
445
|
/>
|
|
475
446
|
)
|
|
476
447
|
}
|
|
477
|
-
// CIL[
|
|
478
|
-
// CIL[
|
|
479
|
-
// CIL[DOC-
|
|
480
|
-
// CIL[DOC-
|
|
481
|
-
// CIL[DOC-CONTEXT module="sidebar" layer="ui_components" related_files="[]"]
|
|
482
|
-
// CIL[DOC-CONTRACT inputs="none" outputs="Styled input" errors="none" side_effects="DOM rendering"]
|
|
483
|
-
// CIL[DOC-MICRO logic_summary="Creates input with fixed height, background color and sidebar styling" notable_decisions="[]"]
|
|
484
|
-
// CIL[DOC-CONFIDENCE pass="second" score="0.95" flags="none"]
|
|
485
|
-
// CIL[DOC-STABILITY stability="stable"]
|
|
486
|
-
// CIL[DOC-VECTOR type="context" content="Layer: ui_components. Direct callers: 0. Direct calls: 0. Related files: none."]
|
|
487
|
-
// CIL[DOC-VECTOR type="blast_radius" content="Direct callers: 0. Total affected: 0."]
|
|
488
|
-
// CIL[DOC-VECTOR type="configuration" content="No configuration dependencies."]
|
|
489
|
-
// CIL[DOC-VECTOR type="constraint" content="No test paths identified."]
|
|
448
|
+
// CIL[DOC-VECTOR type="context" content="purpose='Renders the main content area that adapts to the sidebar variant'; No verified external callers; imports: .framework/src/hooks/use-mobile.ts,.framework/src/lib/utils.ts,.framework/src/components/ui/button.tsx"]
|
|
449
|
+
// CIL[DOC-VECTOR type="blast_radius" content="No direct caller data from CIL graph; local impact only"]
|
|
450
|
+
// CIL[DOC-VECTOR type="configuration" content="No environment or build configuration dependencies identified"]
|
|
451
|
+
// CIL[DOC-VECTOR type="constraint" content="Standard runtime; no special invariants documented"]
|
|
490
452
|
// CIL[DOC-VECTOR type="implementation_pattern" content="" status="pending_human_input"]
|
|
491
453
|
// CIL[DOC-VECTOR type="user_journey" content="" status="pending_human_input"]
|
|
454
|
+
// CIL[END stable_id="~/.framework/src/components/ui/sidebar.tsx:SidebarInset:component"]
|
|
455
|
+
|
|
456
|
+
// CIL[BEGIN stable_id="~/.framework/src/components/ui/sidebar.tsx:SidebarInput:component" type="component" identity="SidebarInput" parent="none"]
|
|
457
|
+
// CIL[DOC-MACRO purpose="Renders a compact input styled for use inside the sidebar"]
|
|
458
|
+
// CIL[DOC-RESPONSIBILITY responsibility="Render an input field visually adapted to the sidebar"]
|
|
459
|
+
// CIL[DOC-CONTEXT module="sidebar" layer="ui" related_files=".framework/src/components/ui/button.tsx,.framework/src/components/ui/input.tsx,.framework/src/components/ui/separator.tsx,.framework/src/components/ui/sheet.tsx,.framework/src/components/ui/sidebar.tsx,.framework/src/components/ui/skeleton.tsx,.framework/src/components/ui/tooltip.tsx,.framework/src/hooks/use-mobile.ts,.framework/src/lib/utils.ts"]
|
|
460
|
+
// CIL[DOC-CONTRACT inputs="className, props" outputs="JSX element" errors="none" side_effects="none"]
|
|
461
|
+
// CIL[DOC-MICRO logic_summary="Forwards to Input with sidebar-specific styling" notable_decisions="[]"]
|
|
462
|
+
// CIL[DOC-CONFIDENCE pass="second" score="0.90" flags="none"]
|
|
463
|
+
// CIL[DOC-STABILITY stability="stable"]
|
|
492
464
|
function SidebarInput({
|
|
493
465
|
className,
|
|
494
466
|
...props
|
|
@@ -505,21 +477,22 @@ function SidebarInput({
|
|
|
505
477
|
/>
|
|
506
478
|
)
|
|
507
479
|
}
|
|
508
|
-
// CIL[
|
|
509
|
-
// CIL[
|
|
510
|
-
// CIL[DOC-
|
|
511
|
-
// CIL[DOC-
|
|
512
|
-
// CIL[DOC-CONTEXT module="sidebar" layer="ui_components" related_files="[]"]
|
|
513
|
-
// CIL[DOC-CONTRACT inputs="none" outputs="Styled header div" errors="none" side_effects="DOM rendering"]
|
|
514
|
-
// CIL[DOC-MICRO logic_summary="Creates flex column header with gap and padding using Tailwind classes" notable_decisions="[]"]
|
|
515
|
-
// CIL[DOC-CONFIDENCE pass="second" score="0.95" flags="none"]
|
|
516
|
-
// CIL[DOC-STABILITY stability="stable"]
|
|
517
|
-
// CIL[DOC-VECTOR type="context" content="Layer: ui_components. Direct callers: 0. Direct calls: 0. Related files: none."]
|
|
518
|
-
// CIL[DOC-VECTOR type="blast_radius" content="Direct callers: 0. Total affected: 0."]
|
|
519
|
-
// CIL[DOC-VECTOR type="configuration" content="No configuration dependencies."]
|
|
520
|
-
// CIL[DOC-VECTOR type="constraint" content="No test paths identified."]
|
|
480
|
+
// CIL[DOC-VECTOR type="context" content="purpose='Renders a compact input styled for use inside the sidebar'; No verified external callers; imports: .framework/src/hooks/use-mobile.ts,.framework/src/lib/utils.ts,.framework/src/components/ui/button.tsx"]
|
|
481
|
+
// CIL[DOC-VECTOR type="blast_radius" content="No direct caller data from CIL graph; local impact only"]
|
|
482
|
+
// CIL[DOC-VECTOR type="configuration" content="No environment or build configuration dependencies identified"]
|
|
483
|
+
// CIL[DOC-VECTOR type="constraint" content="Standard runtime; no special invariants documented"]
|
|
521
484
|
// CIL[DOC-VECTOR type="implementation_pattern" content="" status="pending_human_input"]
|
|
522
485
|
// CIL[DOC-VECTOR type="user_journey" content="" status="pending_human_input"]
|
|
486
|
+
// CIL[END stable_id="~/.framework/src/components/ui/sidebar.tsx:SidebarInput:component"]
|
|
487
|
+
|
|
488
|
+
// CIL[BEGIN stable_id="~/.framework/src/components/ui/sidebar.tsx:SidebarHeader:component" type="component" identity="SidebarHeader" parent="none"]
|
|
489
|
+
// CIL[DOC-MACRO purpose="Renders a header section inside the sidebar"]
|
|
490
|
+
// CIL[DOC-RESPONSIBILITY responsibility="Contain header-level children inside the sidebar layout"]
|
|
491
|
+
// CIL[DOC-CONTEXT module="sidebar" layer="ui" related_files=".framework/src/components/ui/button.tsx,.framework/src/components/ui/input.tsx,.framework/src/components/ui/separator.tsx,.framework/src/components/ui/sheet.tsx,.framework/src/components/ui/sidebar.tsx,.framework/src/components/ui/skeleton.tsx,.framework/src/components/ui/tooltip.tsx,.framework/src/hooks/use-mobile.ts,.framework/src/lib/utils.ts"]
|
|
492
|
+
// CIL[DOC-CONTRACT inputs="className, props" outputs="JSX element" errors="none" side_effects="none"]
|
|
493
|
+
// CIL[DOC-MICRO logic_summary="Forwards to a styled div" notable_decisions="[]"]
|
|
494
|
+
// CIL[DOC-CONFIDENCE pass="second" score="0.90" flags="none"]
|
|
495
|
+
// CIL[DOC-STABILITY stability="stable"]
|
|
523
496
|
function SidebarHeader({ className, ...props }: React.ComponentProps<"div">) {
|
|
524
497
|
return (
|
|
525
498
|
<div
|
|
@@ -530,21 +503,22 @@ function SidebarHeader({ className, ...props }: React.ComponentProps<"div">) {
|
|
|
530
503
|
/>
|
|
531
504
|
)
|
|
532
505
|
}
|
|
533
|
-
// CIL[
|
|
534
|
-
// CIL[
|
|
535
|
-
// CIL[DOC-
|
|
536
|
-
// CIL[DOC-
|
|
537
|
-
// CIL[DOC-CONTEXT module="sidebar" layer="ui_components" related_files="[]"]
|
|
538
|
-
// CIL[DOC-CONTRACT inputs="none" outputs="Styled footer div" errors="none" side_effects="DOM rendering"]
|
|
539
|
-
// CIL[DOC-MICRO logic_summary="Creates flex column footer with auto margin, gap and padding using Tailwind" 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_components. 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."]
|
|
506
|
+
// CIL[DOC-VECTOR type="context" content="purpose='Renders a header section inside the sidebar'; No verified external callers; imports: .framework/src/hooks/use-mobile.ts,.framework/src/lib/utils.ts,.framework/src/components/ui/button.tsx"]
|
|
507
|
+
// CIL[DOC-VECTOR type="blast_radius" content="No direct caller data from CIL graph; local impact only"]
|
|
508
|
+
// CIL[DOC-VECTOR type="configuration" content="No environment or build configuration dependencies identified"]
|
|
509
|
+
// CIL[DOC-VECTOR type="constraint" content="Standard runtime; no special invariants documented"]
|
|
546
510
|
// CIL[DOC-VECTOR type="implementation_pattern" content="" status="pending_human_input"]
|
|
547
511
|
// CIL[DOC-VECTOR type="user_journey" content="" status="pending_human_input"]
|
|
512
|
+
// CIL[END stable_id="~/.framework/src/components/ui/sidebar.tsx:SidebarHeader:component"]
|
|
513
|
+
|
|
514
|
+
// CIL[BEGIN stable_id="~/.framework/src/components/ui/sidebar.tsx:SidebarFooter:component" type="component" identity="SidebarFooter" parent="none"]
|
|
515
|
+
// CIL[DOC-MACRO purpose="Renders a footer section inside the sidebar"]
|
|
516
|
+
// CIL[DOC-RESPONSIBILITY responsibility="Contain footer-level children inside the sidebar layout"]
|
|
517
|
+
// CIL[DOC-CONTEXT module="sidebar" layer="ui" related_files=".framework/src/components/ui/button.tsx,.framework/src/components/ui/input.tsx,.framework/src/components/ui/separator.tsx,.framework/src/components/ui/sheet.tsx,.framework/src/components/ui/sidebar.tsx,.framework/src/components/ui/skeleton.tsx,.framework/src/components/ui/tooltip.tsx,.framework/src/hooks/use-mobile.ts,.framework/src/lib/utils.ts"]
|
|
518
|
+
// CIL[DOC-CONTRACT inputs="className, props" outputs="JSX element" errors="none" side_effects="none"]
|
|
519
|
+
// CIL[DOC-MICRO logic_summary="Forwards to a styled div" notable_decisions="[]"]
|
|
520
|
+
// CIL[DOC-CONFIDENCE pass="second" score="0.90" flags="none"]
|
|
521
|
+
// CIL[DOC-STABILITY stability="stable"]
|
|
548
522
|
function SidebarFooter({ className, ...props }: React.ComponentProps<"div">) {
|
|
549
523
|
return (
|
|
550
524
|
<div
|
|
@@ -555,21 +529,22 @@ function SidebarFooter({ className, ...props }: React.ComponentProps<"div">) {
|
|
|
555
529
|
/>
|
|
556
530
|
)
|
|
557
531
|
}
|
|
558
|
-
// CIL[
|
|
559
|
-
// CIL[
|
|
560
|
-
// CIL[DOC-
|
|
561
|
-
// CIL[DOC-
|
|
562
|
-
// CIL[DOC-CONTEXT module="sidebar" layer="ui_components" related_files="[]"]
|
|
563
|
-
// CIL[DOC-CONTRACT inputs="none" outputs="Styled separator" errors="none" side_effects="DOM rendering"]
|
|
564
|
-
// CIL[DOC-MICRO logic_summary="Creates horizontal divider with border color and negative margins" notable_decisions="[]"]
|
|
565
|
-
// CIL[DOC-CONFIDENCE pass="second" score="0.95" flags="none"]
|
|
566
|
-
// CIL[DOC-STABILITY stability="stable"]
|
|
567
|
-
// CIL[DOC-VECTOR type="context" content="Layer: ui_components. Direct callers: 0. Direct calls: 0. Related files: none."]
|
|
568
|
-
// CIL[DOC-VECTOR type="blast_radius" content="Direct callers: 0. Total affected: 0."]
|
|
569
|
-
// CIL[DOC-VECTOR type="configuration" content="No configuration dependencies."]
|
|
570
|
-
// CIL[DOC-VECTOR type="constraint" content="No test paths identified."]
|
|
532
|
+
// CIL[DOC-VECTOR type="context" content="purpose='Renders a footer section inside the sidebar'; No verified external callers; imports: .framework/src/hooks/use-mobile.ts,.framework/src/lib/utils.ts,.framework/src/components/ui/button.tsx"]
|
|
533
|
+
// CIL[DOC-VECTOR type="blast_radius" content="No direct caller data from CIL graph; local impact only"]
|
|
534
|
+
// CIL[DOC-VECTOR type="configuration" content="No environment or build configuration dependencies identified"]
|
|
535
|
+
// CIL[DOC-VECTOR type="constraint" content="Standard runtime; no special invariants documented"]
|
|
571
536
|
// CIL[DOC-VECTOR type="implementation_pattern" content="" status="pending_human_input"]
|
|
572
537
|
// CIL[DOC-VECTOR type="user_journey" content="" status="pending_human_input"]
|
|
538
|
+
// CIL[END stable_id="~/.framework/src/components/ui/sidebar.tsx:SidebarFooter:component"]
|
|
539
|
+
|
|
540
|
+
// CIL[BEGIN stable_id="~/.framework/src/components/ui/sidebar.tsx:SidebarSeparator:component" type="component" identity="SidebarSeparator" parent="none"]
|
|
541
|
+
// CIL[DOC-MACRO purpose="Renders a horizontal separator line inside the sidebar"]
|
|
542
|
+
// CIL[DOC-RESPONSIBILITY responsibility="Visually separate groups of sidebar items"]
|
|
543
|
+
// CIL[DOC-CONTEXT module="sidebar" layer="ui" related_files=".framework/src/components/ui/button.tsx,.framework/src/components/ui/input.tsx,.framework/src/components/ui/separator.tsx,.framework/src/components/ui/sheet.tsx,.framework/src/components/ui/sidebar.tsx,.framework/src/components/ui/skeleton.tsx,.framework/src/components/ui/tooltip.tsx,.framework/src/hooks/use-mobile.ts,.framework/src/lib/utils.ts"]
|
|
544
|
+
// CIL[DOC-CONTRACT inputs="className, props" outputs="JSX element" errors="none" side_effects="none"]
|
|
545
|
+
// CIL[DOC-MICRO logic_summary="Forwards to a styled Separator" notable_decisions="[]"]
|
|
546
|
+
// CIL[DOC-CONFIDENCE pass="second" score="0.90" flags="none"]
|
|
547
|
+
// CIL[DOC-STABILITY stability="stable"]
|
|
573
548
|
function SidebarSeparator({
|
|
574
549
|
className,
|
|
575
550
|
...props
|
|
@@ -583,21 +558,22 @@ function SidebarSeparator({
|
|
|
583
558
|
/>
|
|
584
559
|
)
|
|
585
560
|
}
|
|
586
|
-
// CIL[
|
|
587
|
-
// CIL[
|
|
588
|
-
// CIL[DOC-
|
|
589
|
-
// CIL[DOC-
|
|
590
|
-
// CIL[DOC-CONTEXT module="sidebar" layer="ui_components" related_files="[]"]
|
|
591
|
-
// CIL[DOC-CONTRACT inputs="none" outputs="Scrollable content area" errors="none" side_effects="DOM rendering"]
|
|
592
|
-
// CIL[DOC-MICRO logic_summary="Creates scrollable flex column container with overflow handling" notable_decisions="[]"]
|
|
593
|
-
// CIL[DOC-CONFIDENCE pass="second" score="0.95" flags="none"]
|
|
594
|
-
// CIL[DOC-STABILITY stability="stable"]
|
|
595
|
-
// CIL[DOC-VECTOR type="context" content="Layer: ui_components. Direct callers: 0. Direct calls: 0. Related files: none."]
|
|
596
|
-
// CIL[DOC-VECTOR type="blast_radius" content="Direct callers: 0. Total affected: 0."]
|
|
597
|
-
// CIL[DOC-VECTOR type="configuration" content="No configuration dependencies."]
|
|
598
|
-
// CIL[DOC-VECTOR type="constraint" content="No test paths identified."]
|
|
561
|
+
// CIL[DOC-VECTOR type="context" content="purpose='Renders a horizontal separator line inside the sidebar'; No verified external callers; imports: .framework/src/hooks/use-mobile.ts,.framework/src/lib/utils.ts,.framework/src/components/ui/button.tsx"]
|
|
562
|
+
// CIL[DOC-VECTOR type="blast_radius" content="No direct caller data from CIL graph; local impact only"]
|
|
563
|
+
// CIL[DOC-VECTOR type="configuration" content="No environment or build configuration dependencies identified"]
|
|
564
|
+
// CIL[DOC-VECTOR type="constraint" content="Standard runtime; no special invariants documented"]
|
|
599
565
|
// CIL[DOC-VECTOR type="implementation_pattern" content="" status="pending_human_input"]
|
|
600
566
|
// CIL[DOC-VECTOR type="user_journey" content="" status="pending_human_input"]
|
|
567
|
+
// CIL[END stable_id="~/.framework/src/components/ui/sidebar.tsx:SidebarSeparator:component"]
|
|
568
|
+
|
|
569
|
+
// CIL[BEGIN stable_id="~/.framework/src/components/ui/sidebar.tsx:SidebarContent:component" type="component" identity="SidebarContent" parent="none"]
|
|
570
|
+
// CIL[DOC-MACRO purpose="Renders the scrollable content area of the sidebar"]
|
|
571
|
+
// CIL[DOC-RESPONSIBILITY responsibility="Provide the scrollable primary content region of the sidebar"]
|
|
572
|
+
// CIL[DOC-CONTEXT module="sidebar" layer="ui" related_files=".framework/src/components/ui/button.tsx,.framework/src/components/ui/input.tsx,.framework/src/components/ui/separator.tsx,.framework/src/components/ui/sheet.tsx,.framework/src/components/ui/sidebar.tsx,.framework/src/components/ui/skeleton.tsx,.framework/src/components/ui/tooltip.tsx,.framework/src/hooks/use-mobile.ts,.framework/src/lib/utils.ts"]
|
|
573
|
+
// CIL[DOC-CONTRACT inputs="className, props" outputs="JSX element" errors="none" side_effects="none"]
|
|
574
|
+
// CIL[DOC-MICRO logic_summary="Forwards to a scrollable flex div" notable_decisions="[]"]
|
|
575
|
+
// CIL[DOC-CONFIDENCE pass="second" score="0.90" flags="none"]
|
|
576
|
+
// CIL[DOC-STABILITY stability="stable"]
|
|
601
577
|
function SidebarContent({ className, ...props }: React.ComponentProps<"div">) {
|
|
602
578
|
return (
|
|
603
579
|
<div
|
|
@@ -611,21 +587,22 @@ function SidebarContent({ className, ...props }: React.ComponentProps<"div">) {
|
|
|
611
587
|
/>
|
|
612
588
|
)
|
|
613
589
|
}
|
|
614
|
-
// CIL[
|
|
615
|
-
// CIL[
|
|
616
|
-
// CIL[DOC-
|
|
617
|
-
// CIL[DOC-
|
|
618
|
-
// CIL[DOC-CONTEXT module="sidebar" layer="ui_components" related_files="[]"]
|
|
619
|
-
// CIL[DOC-CONTRACT inputs="none" outputs="Styled group container" errors="none" side_effects="DOM rendering"]
|
|
620
|
-
// CIL[DOC-MICRO logic_summary="Creates flex column container with min-width and padding for sidebar groups" notable_decisions="[]"]
|
|
621
|
-
// CIL[DOC-CONFIDENCE pass="second" score="0.95" flags="none"]
|
|
622
|
-
// CIL[DOC-STABILITY stability="stable"]
|
|
623
|
-
// CIL[DOC-VECTOR type="context" content="Layer: ui_components. Direct callers: 0. Direct calls: 0. Related files: none."]
|
|
624
|
-
// CIL[DOC-VECTOR type="blast_radius" content="Direct callers: 0. Total affected: 0."]
|
|
625
|
-
// CIL[DOC-VECTOR type="configuration" content="No configuration dependencies."]
|
|
626
|
-
// CIL[DOC-VECTOR type="constraint" content="No test paths identified."]
|
|
590
|
+
// CIL[DOC-VECTOR type="context" content="purpose='Renders the scrollable content area of the sidebar'; No verified external callers; imports: .framework/src/hooks/use-mobile.ts,.framework/src/lib/utils.ts,.framework/src/components/ui/button.tsx"]
|
|
591
|
+
// CIL[DOC-VECTOR type="blast_radius" content="No direct caller data from CIL graph; local impact only"]
|
|
592
|
+
// CIL[DOC-VECTOR type="configuration" content="No environment or build configuration dependencies identified"]
|
|
593
|
+
// CIL[DOC-VECTOR type="constraint" content="Standard runtime; no special invariants documented"]
|
|
627
594
|
// CIL[DOC-VECTOR type="implementation_pattern" content="" status="pending_human_input"]
|
|
628
595
|
// CIL[DOC-VECTOR type="user_journey" content="" status="pending_human_input"]
|
|
596
|
+
// CIL[END stable_id="~/.framework/src/components/ui/sidebar.tsx:SidebarContent:component"]
|
|
597
|
+
|
|
598
|
+
// CIL[BEGIN stable_id="~/.framework/src/components/ui/sidebar.tsx:SidebarGroup:component" type="component" identity="SidebarGroup" parent="none"]
|
|
599
|
+
// CIL[DOC-MACRO purpose="Renders a grouping container for sidebar menu items"]
|
|
600
|
+
// CIL[DOC-RESPONSIBILITY responsibility="Group related items and labels inside the sidebar"]
|
|
601
|
+
// CIL[DOC-CONTEXT module="sidebar" layer="ui" related_files=".framework/src/components/ui/button.tsx,.framework/src/components/ui/input.tsx,.framework/src/components/ui/separator.tsx,.framework/src/components/ui/sheet.tsx,.framework/src/components/ui/sidebar.tsx,.framework/src/components/ui/skeleton.tsx,.framework/src/components/ui/tooltip.tsx,.framework/src/hooks/use-mobile.ts,.framework/src/lib/utils.ts"]
|
|
602
|
+
// CIL[DOC-CONTRACT inputs="className, props" outputs="JSX element" errors="none" side_effects="none"]
|
|
603
|
+
// CIL[DOC-MICRO logic_summary="Forwards to a styled div" notable_decisions="[]"]
|
|
604
|
+
// CIL[DOC-CONFIDENCE pass="second" score="0.90" flags="none"]
|
|
605
|
+
// CIL[DOC-STABILITY stability="stable"]
|
|
629
606
|
function SidebarGroup({ className, ...props }: React.ComponentProps<"div">) {
|
|
630
607
|
return (
|
|
631
608
|
<div
|
|
@@ -639,21 +616,22 @@ function SidebarGroup({ className, ...props }: React.ComponentProps<"div">) {
|
|
|
639
616
|
/>
|
|
640
617
|
)
|
|
641
618
|
}
|
|
642
|
-
// CIL[
|
|
643
|
-
// CIL[
|
|
644
|
-
// CIL[DOC-
|
|
645
|
-
// CIL[DOC-
|
|
646
|
-
// CIL[DOC-CONTEXT module="sidebar" layer="ui_components" related_files="[]"]
|
|
647
|
-
// CIL[DOC-CONTRACT inputs="none" outputs="Styled label" errors="none" side_effects="DOM rendering"]
|
|
648
|
-
// CIL[DOC-MICRO logic_summary="Creates label with optional slot rendering, styling and collapse behavior" notable_decisions="[]"]
|
|
649
|
-
// CIL[DOC-CONFIDENCE pass="second" score="0.95" flags="none"]
|
|
650
|
-
// CIL[DOC-STABILITY stability="stable"]
|
|
651
|
-
// CIL[DOC-VECTOR type="context" content="Layer: ui_components. Direct callers: 0. Direct calls: 0. Related files: none."]
|
|
652
|
-
// CIL[DOC-VECTOR type="blast_radius" content="Direct callers: 0. Total affected: 0."]
|
|
653
|
-
// CIL[DOC-VECTOR type="configuration" content="No configuration dependencies."]
|
|
654
|
-
// CIL[DOC-VECTOR type="constraint" content="No test paths identified."]
|
|
619
|
+
// CIL[DOC-VECTOR type="context" content="purpose='Renders a grouping container for sidebar menu items'; No verified external callers; imports: .framework/src/hooks/use-mobile.ts,.framework/src/lib/utils.ts,.framework/src/components/ui/button.tsx"]
|
|
620
|
+
// CIL[DOC-VECTOR type="blast_radius" content="No direct caller data from CIL graph; local impact only"]
|
|
621
|
+
// CIL[DOC-VECTOR type="configuration" content="No environment or build configuration dependencies identified"]
|
|
622
|
+
// CIL[DOC-VECTOR type="constraint" content="Standard runtime; no special invariants documented"]
|
|
655
623
|
// CIL[DOC-VECTOR type="implementation_pattern" content="" status="pending_human_input"]
|
|
656
624
|
// CIL[DOC-VECTOR type="user_journey" content="" status="pending_human_input"]
|
|
625
|
+
// CIL[END stable_id="~/.framework/src/components/ui/sidebar.tsx:SidebarGroup:component"]
|
|
626
|
+
|
|
627
|
+
// CIL[BEGIN stable_id="~/.framework/src/components/ui/sidebar.tsx:SidebarGroupLabel:component" type="component" identity="SidebarGroupLabel" parent="none"]
|
|
628
|
+
// CIL[DOC-MACRO purpose="Renders a label for a sidebar group with collapse behavior"]
|
|
629
|
+
// CIL[DOC-RESPONSIBILITY responsibility="Display the group heading and hide it in collapsed icon mode"]
|
|
630
|
+
// CIL[DOC-CONTEXT module="sidebar" layer="ui" related_files=".framework/src/components/ui/button.tsx,.framework/src/components/ui/input.tsx,.framework/src/components/ui/separator.tsx,.framework/src/components/ui/sheet.tsx,.framework/src/components/ui/sidebar.tsx,.framework/src/components/ui/skeleton.tsx,.framework/src/components/ui/tooltip.tsx,.framework/src/hooks/use-mobile.ts,.framework/src/lib/utils.ts"]
|
|
631
|
+
// CIL[DOC-CONTRACT inputs="className, asChild, props" outputs="JSX element" errors="none" side_effects="none"]
|
|
632
|
+
// CIL[DOC-MICRO logic_summary="Uses Slot.Root or div and hides on icon-only sidebar" notable_decisions="[]"]
|
|
633
|
+
// CIL[DOC-CONFIDENCE pass="second" score="0.90" flags="none"]
|
|
634
|
+
// CIL[DOC-STABILITY stability="stable"]
|
|
657
635
|
function SidebarGroupLabel({
|
|
658
636
|
className,
|
|
659
637
|
asChild = false,
|
|
@@ -673,21 +651,22 @@ function SidebarGroupLabel({
|
|
|
673
651
|
/>
|
|
674
652
|
)
|
|
675
653
|
}
|
|
676
|
-
// CIL[
|
|
677
|
-
// CIL[
|
|
678
|
-
// CIL[DOC-
|
|
679
|
-
// CIL[DOC-
|
|
680
|
-
// CIL[DOC-CONTEXT module="sidebar" layer="ui_components" related_files="[]"]
|
|
681
|
-
// CIL[DOC-CONTRACT inputs="none" outputs="Styled action button" errors="none" side_effects="DOM events"]
|
|
682
|
-
// CIL[DOC-MICRO logic_summary="Creates action button with optional slot rendering and hover states" notable_decisions="[]"]
|
|
683
|
-
// CIL[DOC-CONFIDENCE pass="second" score="0.95" flags="none"]
|
|
684
|
-
// CIL[DOC-STABILITY stability="stable"]
|
|
685
|
-
// CIL[DOC-VECTOR type="context" content="Layer: ui_components. Direct callers: 0. Direct calls: 0. Related files: none."]
|
|
686
|
-
// CIL[DOC-VECTOR type="blast_radius" content="Direct callers: 0. Total affected: 0."]
|
|
687
|
-
// CIL[DOC-VECTOR type="configuration" content="No configuration dependencies."]
|
|
688
|
-
// CIL[DOC-VECTOR type="constraint" content="No test paths identified."]
|
|
654
|
+
// CIL[DOC-VECTOR type="context" content="purpose='Renders a label for a sidebar group with collapse behavior'; No verified external callers; imports: .framework/src/hooks/use-mobile.ts,.framework/src/lib/utils.ts,.framework/src/components/ui/button.tsx"]
|
|
655
|
+
// CIL[DOC-VECTOR type="blast_radius" content="No direct caller data from CIL graph; local impact only"]
|
|
656
|
+
// CIL[DOC-VECTOR type="configuration" content="No environment or build configuration dependencies identified"]
|
|
657
|
+
// CIL[DOC-VECTOR type="constraint" content="Standard runtime; no special invariants documented"]
|
|
689
658
|
// CIL[DOC-VECTOR type="implementation_pattern" content="" status="pending_human_input"]
|
|
690
659
|
// CIL[DOC-VECTOR type="user_journey" content="" status="pending_human_input"]
|
|
660
|
+
// CIL[END stable_id="~/.framework/src/components/ui/sidebar.tsx:SidebarGroupLabel:component"]
|
|
661
|
+
|
|
662
|
+
// CIL[BEGIN stable_id="~/.framework/src/components/ui/sidebar.tsx:SidebarGroupAction:component" type="component" identity="SidebarGroupAction" parent="none"]
|
|
663
|
+
// CIL[DOC-MACRO purpose="Renders an action button for a sidebar group"]
|
|
664
|
+
// CIL[DOC-RESPONSIBILITY responsibility="Expose a small action button on a group header"]
|
|
665
|
+
// CIL[DOC-CONTEXT module="sidebar" layer="ui" related_files=".framework/src/components/ui/button.tsx,.framework/src/components/ui/input.tsx,.framework/src/components/ui/separator.tsx,.framework/src/components/ui/sheet.tsx,.framework/src/components/ui/sidebar.tsx,.framework/src/components/ui/skeleton.tsx,.framework/src/components/ui/tooltip.tsx,.framework/src/hooks/use-mobile.ts,.framework/src/lib/utils.ts"]
|
|
666
|
+
// CIL[DOC-CONTRACT inputs="className, asChild, props" outputs="JSX element" errors="none" side_effects="none"]
|
|
667
|
+
// CIL[DOC-MICRO logic_summary="Uses Slot.Root or button and positions absolutely in the group header" notable_decisions="[]"]
|
|
668
|
+
// CIL[DOC-CONFIDENCE pass="second" score="0.90" flags="none"]
|
|
669
|
+
// CIL[DOC-STABILITY stability="stable"]
|
|
691
670
|
function SidebarGroupAction({
|
|
692
671
|
className,
|
|
693
672
|
asChild = false,
|
|
@@ -707,21 +686,22 @@ function SidebarGroupAction({
|
|
|
707
686
|
/>
|
|
708
687
|
)
|
|
709
688
|
}
|
|
710
|
-
// CIL[
|
|
711
|
-
// CIL[
|
|
712
|
-
// CIL[DOC-
|
|
713
|
-
// CIL[DOC-
|
|
714
|
-
// CIL[DOC-CONTEXT module="sidebar" layer="ui_components" related_files="[]"]
|
|
715
|
-
// CIL[DOC-CONTRACT inputs="none" outputs="Styled content container" errors="none" side_effects="DOM rendering"]
|
|
716
|
-
// CIL[DOC-MICRO logic_summary="Creates flex column container with full width and small text styling" notable_decisions="[]"]
|
|
717
|
-
// CIL[DOC-CONFIDENCE pass="second" score="0.95" flags="none"]
|
|
718
|
-
// CIL[DOC-STABILITY stability="stable"]
|
|
719
|
-
// CIL[DOC-VECTOR type="context" content="Layer: ui_components. Direct callers: 0. Direct calls: 0. Related files: none."]
|
|
720
|
-
// CIL[DOC-VECTOR type="blast_radius" content="Direct callers: 0. Total affected: 0."]
|
|
721
|
-
// CIL[DOC-VECTOR type="configuration" content="No configuration dependencies."]
|
|
722
|
-
// CIL[DOC-VECTOR type="constraint" content="No test paths identified."]
|
|
689
|
+
// CIL[DOC-VECTOR type="context" content="purpose='Renders an action button for a sidebar group'; No verified external callers; imports: .framework/src/hooks/use-mobile.ts,.framework/src/lib/utils.ts,.framework/src/components/ui/button.tsx"]
|
|
690
|
+
// CIL[DOC-VECTOR type="blast_radius" content="No direct caller data from CIL graph; local impact only"]
|
|
691
|
+
// CIL[DOC-VECTOR type="configuration" content="No environment or build configuration dependencies identified"]
|
|
692
|
+
// CIL[DOC-VECTOR type="constraint" content="Standard runtime; no special invariants documented"]
|
|
723
693
|
// CIL[DOC-VECTOR type="implementation_pattern" content="" status="pending_human_input"]
|
|
724
694
|
// CIL[DOC-VECTOR type="user_journey" content="" status="pending_human_input"]
|
|
695
|
+
// CIL[END stable_id="~/.framework/src/components/ui/sidebar.tsx:SidebarGroupAction:component"]
|
|
696
|
+
|
|
697
|
+
// CIL[BEGIN stable_id="~/.framework/src/components/ui/sidebar.tsx:SidebarGroupContent:component" type="component" identity="SidebarGroupContent" parent="none"]
|
|
698
|
+
// CIL[DOC-MACRO purpose="Renders the content wrapper for a sidebar group"]
|
|
699
|
+
// CIL[DOC-RESPONSIBILITY responsibility="Wrap the children of a sidebar group"]
|
|
700
|
+
// CIL[DOC-CONTEXT module="sidebar" layer="ui" related_files=".framework/src/components/ui/button.tsx,.framework/src/components/ui/input.tsx,.framework/src/components/ui/separator.tsx,.framework/src/components/ui/sheet.tsx,.framework/src/components/ui/sidebar.tsx,.framework/src/components/ui/skeleton.tsx,.framework/src/components/ui/tooltip.tsx,.framework/src/hooks/use-mobile.ts,.framework/src/lib/utils.ts"]
|
|
701
|
+
// CIL[DOC-CONTRACT inputs="className, props" outputs="JSX element" errors="none" side_effects="none"]
|
|
702
|
+
// CIL[DOC-MICRO logic_summary="Forwards to a styled div" notable_decisions="[]"]
|
|
703
|
+
// CIL[DOC-CONFIDENCE pass="second" score="0.90" flags="none"]
|
|
704
|
+
// CIL[DOC-STABILITY stability="stable"]
|
|
725
705
|
function SidebarGroupContent({
|
|
726
706
|
className,
|
|
727
707
|
...props
|
|
@@ -735,21 +715,22 @@ function SidebarGroupContent({
|
|
|
735
715
|
/>
|
|
736
716
|
)
|
|
737
717
|
}
|
|
738
|
-
// CIL[
|
|
739
|
-
// CIL[
|
|
740
|
-
// CIL[DOC-
|
|
741
|
-
// CIL[DOC-
|
|
742
|
-
// CIL[DOC-CONTEXT module="sidebar" layer="ui_components" related_files="[]"]
|
|
743
|
-
// CIL[DOC-CONTRACT inputs="none" outputs="Styled menu list" errors="none" side_effects="DOM rendering"]
|
|
744
|
-
// CIL[DOC-MICRO logic_summary="Creates flex column list with full width and gap between items" notable_decisions="[]"]
|
|
745
|
-
// CIL[DOC-CONFIDENCE pass="second" score="0.95" flags="none"]
|
|
746
|
-
// CIL[DOC-STABILITY stability="stable"]
|
|
747
|
-
// CIL[DOC-VECTOR type="context" content="Layer: ui_components. Direct callers: 0. Direct calls: 0. Related files: none."]
|
|
748
|
-
// CIL[DOC-VECTOR type="blast_radius" content="Direct callers: 0. Total affected: 0."]
|
|
749
|
-
// CIL[DOC-VECTOR type="configuration" content="No configuration dependencies."]
|
|
750
|
-
// CIL[DOC-VECTOR type="constraint" content="No test paths identified."]
|
|
718
|
+
// CIL[DOC-VECTOR type="context" content="purpose='Renders the content wrapper for a sidebar group'; No verified external callers; imports: .framework/src/hooks/use-mobile.ts,.framework/src/lib/utils.ts,.framework/src/components/ui/button.tsx"]
|
|
719
|
+
// CIL[DOC-VECTOR type="blast_radius" content="No direct caller data from CIL graph; local impact only"]
|
|
720
|
+
// CIL[DOC-VECTOR type="configuration" content="No environment or build configuration dependencies identified"]
|
|
721
|
+
// CIL[DOC-VECTOR type="constraint" content="Standard runtime; no special invariants documented"]
|
|
751
722
|
// CIL[DOC-VECTOR type="implementation_pattern" content="" status="pending_human_input"]
|
|
752
723
|
// CIL[DOC-VECTOR type="user_journey" content="" status="pending_human_input"]
|
|
724
|
+
// CIL[END stable_id="~/.framework/src/components/ui/sidebar.tsx:SidebarGroupContent:component"]
|
|
725
|
+
|
|
726
|
+
// CIL[BEGIN stable_id="~/.framework/src/components/ui/sidebar.tsx:SidebarMenu:component" type="component" identity="SidebarMenu" parent="none"]
|
|
727
|
+
// CIL[DOC-MACRO purpose="Renders a menu list inside the sidebar"]
|
|
728
|
+
// CIL[DOC-RESPONSIBILITY responsibility="Render the unordered menu list of sidebar items"]
|
|
729
|
+
// CIL[DOC-CONTEXT module="sidebar" layer="ui" related_files=".framework/src/components/ui/button.tsx,.framework/src/components/ui/input.tsx,.framework/src/components/ui/separator.tsx,.framework/src/components/ui/sheet.tsx,.framework/src/components/ui/sidebar.tsx,.framework/src/components/ui/skeleton.tsx,.framework/src/components/ui/tooltip.tsx,.framework/src/hooks/use-mobile.ts,.framework/src/lib/utils.ts"]
|
|
730
|
+
// CIL[DOC-CONTRACT inputs="className, props" outputs="JSX element" errors="none" side_effects="none"]
|
|
731
|
+
// CIL[DOC-MICRO logic_summary="Forwards to a styled ul" notable_decisions="[]"]
|
|
732
|
+
// CIL[DOC-CONFIDENCE pass="second" score="0.90" flags="none"]
|
|
733
|
+
// CIL[DOC-STABILITY stability="stable"]
|
|
753
734
|
function SidebarMenu({ className, ...props }: React.ComponentProps<"ul">) {
|
|
754
735
|
return (
|
|
755
736
|
<ul
|
|
@@ -760,21 +741,22 @@ function SidebarMenu({ className, ...props }: React.ComponentProps<"ul">) {
|
|
|
760
741
|
/>
|
|
761
742
|
)
|
|
762
743
|
}
|
|
763
|
-
// CIL[
|
|
764
|
-
// CIL[
|
|
765
|
-
// CIL[DOC-
|
|
766
|
-
// CIL[DOC-
|
|
767
|
-
// CIL[DOC-CONTEXT module="sidebar" layer="ui_components" related_files="[]"]
|
|
768
|
-
// CIL[DOC-CONTRACT inputs="none" outputs="Styled menu item" errors="none" side_effects="DOM rendering"]
|
|
769
|
-
// CIL[DOC-MICRO logic_summary="Creates list item with relative positioning and group styling" notable_decisions="[]"]
|
|
770
|
-
// CIL[DOC-CONFIDENCE pass="second" score="0.95" flags="none"]
|
|
771
|
-
// CIL[DOC-STABILITY stability="stable"]
|
|
772
|
-
// CIL[DOC-VECTOR type="context" content="Layer: ui_components. Direct callers: 0. Direct calls: 0. Related files: none."]
|
|
773
|
-
// CIL[DOC-VECTOR type="blast_radius" content="Direct callers: 0. Total affected: 0."]
|
|
774
|
-
// CIL[DOC-VECTOR type="configuration" content="No configuration dependencies."]
|
|
775
|
-
// CIL[DOC-VECTOR type="constraint" content="No test paths identified."]
|
|
744
|
+
// CIL[DOC-VECTOR type="context" content="purpose='Renders a menu list inside the sidebar'; No verified external callers; imports: .framework/src/hooks/use-mobile.ts,.framework/src/lib/utils.ts,.framework/src/components/ui/button.tsx"]
|
|
745
|
+
// CIL[DOC-VECTOR type="blast_radius" content="No direct caller data from CIL graph; local impact only"]
|
|
746
|
+
// CIL[DOC-VECTOR type="configuration" content="No environment or build configuration dependencies identified"]
|
|
747
|
+
// CIL[DOC-VECTOR type="constraint" content="Standard runtime; no special invariants documented"]
|
|
776
748
|
// CIL[DOC-VECTOR type="implementation_pattern" content="" status="pending_human_input"]
|
|
777
749
|
// CIL[DOC-VECTOR type="user_journey" content="" status="pending_human_input"]
|
|
750
|
+
// CIL[END stable_id="~/.framework/src/components/ui/sidebar.tsx:SidebarMenu:component"]
|
|
751
|
+
|
|
752
|
+
// CIL[BEGIN stable_id="~/.framework/src/components/ui/sidebar.tsx:SidebarMenuItem:component" type="component" identity="SidebarMenuItem" parent="none"]
|
|
753
|
+
// CIL[DOC-MACRO purpose="Renders a menu item wrapper inside the sidebar"]
|
|
754
|
+
// CIL[DOC-RESPONSIBILITY responsibility="Wrap a single entry in the sidebar menu"]
|
|
755
|
+
// CIL[DOC-CONTEXT module="sidebar" layer="ui" related_files=".framework/src/components/ui/button.tsx,.framework/src/components/ui/input.tsx,.framework/src/components/ui/separator.tsx,.framework/src/components/ui/sheet.tsx,.framework/src/components/ui/sidebar.tsx,.framework/src/components/ui/skeleton.tsx,.framework/src/components/ui/tooltip.tsx,.framework/src/hooks/use-mobile.ts,.framework/src/lib/utils.ts"]
|
|
756
|
+
// CIL[DOC-CONTRACT inputs="className, props" outputs="JSX element" errors="none" side_effects="none"]
|
|
757
|
+
// CIL[DOC-MICRO logic_summary="Forwards to a styled li" notable_decisions="[]"]
|
|
758
|
+
// CIL[DOC-CONFIDENCE pass="second" score="0.90" flags="none"]
|
|
759
|
+
// CIL[DOC-STABILITY stability="stable"]
|
|
778
760
|
function SidebarMenuItem({ className, ...props }: React.ComponentProps<"li">) {
|
|
779
761
|
return (
|
|
780
762
|
<li
|
|
@@ -785,21 +767,23 @@ function SidebarMenuItem({ className, ...props }: React.ComponentProps<"li">) {
|
|
|
785
767
|
/>
|
|
786
768
|
)
|
|
787
769
|
}
|
|
788
|
-
// CIL[
|
|
789
|
-
// CIL[
|
|
790
|
-
// CIL[DOC-
|
|
791
|
-
// CIL[DOC-
|
|
792
|
-
// CIL[DOC-CONTEXT module="sidebar" layer="ui_components" related_files="[]"]
|
|
793
|
-
// CIL[DOC-CONTRACT inputs="none" outputs="CVA variants" errors="none" side_effects="Variant definition"]
|
|
794
|
-
// CIL[DOC-MICRO logic_summary="Defines base styles and variants for outline/default and size options" notable_decisions="[]"]
|
|
795
|
-
// CIL[DOC-CONFIDENCE pass="second" score="0.95" flags="none"]
|
|
796
|
-
// CIL[DOC-STABILITY stability="stable"]
|
|
797
|
-
// CIL[DOC-VECTOR type="context" content="Layer: ui_components. Direct callers: 0. Direct calls: 0. Related files: none."]
|
|
798
|
-
// CIL[DOC-VECTOR type="blast_radius" content="Direct callers: 0. Total affected: 0."]
|
|
799
|
-
// CIL[DOC-VECTOR type="configuration" content="No configuration dependencies."]
|
|
800
|
-
// CIL[DOC-VECTOR type="constraint" content="No test paths identified."]
|
|
770
|
+
// CIL[DOC-VECTOR type="context" content="purpose='Renders a menu item wrapper inside the sidebar'; No verified external callers; imports: .framework/src/hooks/use-mobile.ts,.framework/src/lib/utils.ts,.framework/src/components/ui/button.tsx"]
|
|
771
|
+
// CIL[DOC-VECTOR type="blast_radius" content="No direct caller data from CIL graph; local impact only"]
|
|
772
|
+
// CIL[DOC-VECTOR type="configuration" content="No environment or build configuration dependencies identified"]
|
|
773
|
+
// CIL[DOC-VECTOR type="constraint" content="Standard runtime; no special invariants documented"]
|
|
801
774
|
// CIL[DOC-VECTOR type="implementation_pattern" content="" status="pending_human_input"]
|
|
802
775
|
// CIL[DOC-VECTOR type="user_journey" content="" status="pending_human_input"]
|
|
776
|
+
// CIL[END stable_id="~/.framework/src/components/ui/sidebar.tsx:SidebarMenuItem:component"]
|
|
777
|
+
|
|
778
|
+
|
|
779
|
+
// CIL[BEGIN stable_id="~/.framework/src/components/ui/sidebar.tsx:sidebarMenuButtonVariants:constant" type="constant" identity="sidebarMenuButtonVariants" parent="none"]
|
|
780
|
+
// CIL[DOC-MACRO purpose="Defines the class-variance-authority variants for sidebar menu buttons"]
|
|
781
|
+
// CIL[DOC-RESPONSIBILITY responsibility="Compute CSS class variants for menu button sizes and styles"]
|
|
782
|
+
// CIL[DOC-CONTEXT module="sidebar" layer="ui" related_files=".framework/src/components/ui/button.tsx,.framework/src/components/ui/input.tsx,.framework/src/components/ui/separator.tsx,.framework/src/components/ui/sheet.tsx,.framework/src/components/ui/sidebar.tsx,.framework/src/components/ui/skeleton.tsx,.framework/src/components/ui/tooltip.tsx,.framework/src/hooks/use-mobile.ts,.framework/src/lib/utils.ts"]
|
|
783
|
+
// CIL[DOC-CONTRACT inputs="none" outputs="cva variant function" errors="none" side_effects="none"]
|
|
784
|
+
// CIL[DOC-MICRO logic_summary="Builds cva variants for default and outline styles plus sizes" notable_decisions="[]"]
|
|
785
|
+
// CIL[DOC-CONFIDENCE pass="second" score="0.90" flags="none"]
|
|
786
|
+
// CIL[DOC-STABILITY stability="stable"]
|
|
803
787
|
const sidebarMenuButtonVariants = cva(
|
|
804
788
|
"peer/menu-button group/menu-button flex w-full items-center gap-2 overflow-hidden rounded-[calc(var(--radius-sm)+2px)] p-2 text-left text-xs ring-sidebar-ring outline-hidden transition-[width,height,padding] group-has-data-[sidebar=menu-action]/menu-item:pr-8 group-data-[collapsible=icon]:size-8! group-data-[collapsible=icon]:p-2! hover:bg-sidebar-accent hover:text-sidebar-accent-foreground focus-visible:ring-2 active:bg-sidebar-accent active:text-sidebar-accent-foreground disabled:pointer-events-none disabled:opacity-50 aria-disabled:pointer-events-none aria-disabled:opacity-50 data-open:hover:bg-sidebar-accent data-open:hover:text-sidebar-accent-foreground data-active:bg-sidebar-accent data-active:font-medium data-active:text-sidebar-accent-foreground [&_svg]:size-4 [&_svg]:shrink-0 [&>span:last-child]:truncate",
|
|
805
789
|
{
|
|
@@ -821,21 +805,22 @@ const sidebarMenuButtonVariants = cva(
|
|
|
821
805
|
},
|
|
822
806
|
}
|
|
823
807
|
)
|
|
824
|
-
// CIL[
|
|
825
|
-
// CIL[
|
|
826
|
-
// CIL[DOC-
|
|
827
|
-
// CIL[DOC-
|
|
828
|
-
// CIL[DOC-CONTEXT module="sidebar" layer="ui_components" related_files="[]"]
|
|
829
|
-
// CIL[DOC-CONTRACT inputs="none" outputs="Styled menu button" errors="none" side_effects="DOM events"]
|
|
830
|
-
// CIL[DOC-MICRO logic_summary="Creates menu button with variants, tooltip support and responsive styling" notable_decisions="[]"]
|
|
831
|
-
// CIL[DOC-CONFIDENCE pass="second" score="0.95" flags="none"]
|
|
832
|
-
// CIL[DOC-STABILITY stability="stable"]
|
|
833
|
-
// CIL[DOC-VECTOR type="context" content="Layer: ui_components. Direct callers: 0. Direct calls: 0. Related files: none."]
|
|
834
|
-
// CIL[DOC-VECTOR type="blast_radius" content="Direct callers: 0. Total affected: 0."]
|
|
835
|
-
// CIL[DOC-VECTOR type="configuration" content="No configuration dependencies."]
|
|
836
|
-
// CIL[DOC-VECTOR type="constraint" content="No test paths identified."]
|
|
808
|
+
// CIL[DOC-VECTOR type="context" content="purpose='Defines the class-variance-authority variants for sidebar menu buttons'; No verified external callers; imports: .framework/src/hooks/use-mobile.ts,.framework/src/lib/utils.ts,.framework/src/components/ui/button.tsx"]
|
|
809
|
+
// CIL[DOC-VECTOR type="blast_radius" content="No direct caller data from CIL graph; local impact only"]
|
|
810
|
+
// CIL[DOC-VECTOR type="configuration" content="No environment or build configuration dependencies identified"]
|
|
811
|
+
// CIL[DOC-VECTOR type="constraint" content="Standard runtime; no special invariants documented"]
|
|
837
812
|
// CIL[DOC-VECTOR type="implementation_pattern" content="" status="pending_human_input"]
|
|
838
813
|
// CIL[DOC-VECTOR type="user_journey" content="" status="pending_human_input"]
|
|
814
|
+
// CIL[END stable_id="~/.framework/src/components/ui/sidebar.tsx:sidebarMenuButtonVariants:constant"]
|
|
815
|
+
|
|
816
|
+
// CIL[BEGIN stable_id="~/.framework/src/components/ui/sidebar.tsx:SidebarMenuButton:component" type="component" identity="SidebarMenuButton" parent="none"]
|
|
817
|
+
// CIL[DOC-MACRO purpose="Renders an interactive sidebar menu button with optional tooltip"]
|
|
818
|
+
// CIL[DOC-RESPONSIBILITY responsibility="Render the interactive menu button and optional collapsed tooltip"]
|
|
819
|
+
// CIL[DOC-CONTEXT module="sidebar" layer="ui" related_files=".framework/src/components/ui/button.tsx,.framework/src/components/ui/input.tsx,.framework/src/components/ui/separator.tsx,.framework/src/components/ui/sheet.tsx,.framework/src/components/ui/sidebar.tsx,.framework/src/components/ui/skeleton.tsx,.framework/src/components/ui/tooltip.tsx,.framework/src/hooks/use-mobile.ts,.framework/src/lib/utils.ts"]
|
|
820
|
+
// CIL[DOC-CONTRACT inputs="asChild, isActive, variant, size, tooltip, className, props" outputs="JSX element" errors="none" side_effects="none"]
|
|
821
|
+
// CIL[DOC-MICRO logic_summary="Renders the cva-styled button and wraps with tooltip when collapsed" notable_decisions="[]"]
|
|
822
|
+
// CIL[DOC-CONFIDENCE pass="second" score="0.90" flags="none"]
|
|
823
|
+
// CIL[DOC-STABILITY stability="stable"]
|
|
839
824
|
function SidebarMenuButton({
|
|
840
825
|
asChild = false,
|
|
841
826
|
isActive = false,
|
|
@@ -885,21 +870,22 @@ function SidebarMenuButton({
|
|
|
885
870
|
</Tooltip>
|
|
886
871
|
)
|
|
887
872
|
}
|
|
888
|
-
// CIL[
|
|
889
|
-
// CIL[
|
|
890
|
-
// CIL[DOC-
|
|
891
|
-
// CIL[DOC-
|
|
892
|
-
// CIL[DOC-CONTEXT module="sidebar" layer="ui_components" related_files="[]"]
|
|
893
|
-
// CIL[DOC-CONTRACT inputs="none" outputs="Styled action button" errors="none" side_effects="DOM events"]
|
|
894
|
-
// CIL[DOC-MICRO logic_summary="Creates action button with optional slot rendering and hover visibility" notable_decisions="[]"]
|
|
895
|
-
// CIL[DOC-CONFIDENCE pass="second" score="0.95" flags="none"]
|
|
896
|
-
// CIL[DOC-STABILITY stability="stable"]
|
|
897
|
-
// CIL[DOC-VECTOR type="context" content="Layer: ui_components. Direct callers: 0. Direct calls: 0. Related files: none."]
|
|
898
|
-
// CIL[DOC-VECTOR type="blast_radius" content="Direct callers: 0. Total affected: 0."]
|
|
899
|
-
// CIL[DOC-VECTOR type="configuration" content="No configuration dependencies."]
|
|
900
|
-
// CIL[DOC-VECTOR type="constraint" content="No test paths identified."]
|
|
873
|
+
// CIL[DOC-VECTOR type="context" content="purpose='Renders an interactive sidebar menu button with optional tooltip'; No verified external callers; imports: .framework/src/hooks/use-mobile.ts,.framework/src/lib/utils.ts,.framework/src/components/ui/button.tsx"]
|
|
874
|
+
// CIL[DOC-VECTOR type="blast_radius" content="No direct caller data from CIL graph; local impact only"]
|
|
875
|
+
// CIL[DOC-VECTOR type="configuration" content="No environment or build configuration dependencies identified"]
|
|
876
|
+
// CIL[DOC-VECTOR type="constraint" content="Standard runtime; no special invariants documented"]
|
|
901
877
|
// CIL[DOC-VECTOR type="implementation_pattern" content="" status="pending_human_input"]
|
|
902
878
|
// CIL[DOC-VECTOR type="user_journey" content="" status="pending_human_input"]
|
|
879
|
+
// CIL[END stable_id="~/.framework/src/components/ui/sidebar.tsx:SidebarMenuButton:component"]
|
|
880
|
+
|
|
881
|
+
// CIL[BEGIN stable_id="~/.framework/src/components/ui/sidebar.tsx:SidebarMenuAction:component" type="component" identity="SidebarMenuAction" parent="none"]
|
|
882
|
+
// CIL[DOC-MACRO purpose="Renders an action button attached to a sidebar menu item"]
|
|
883
|
+
// CIL[DOC-RESPONSIBILITY responsibility="Render a small action attached to a menu item, with hover reveal"]
|
|
884
|
+
// CIL[DOC-CONTEXT module="sidebar" layer="ui" related_files=".framework/src/components/ui/button.tsx,.framework/src/components/ui/input.tsx,.framework/src/components/ui/separator.tsx,.framework/src/components/ui/sheet.tsx,.framework/src/components/ui/sidebar.tsx,.framework/src/components/ui/skeleton.tsx,.framework/src/components/ui/tooltip.tsx,.framework/src/hooks/use-mobile.ts,.framework/src/lib/utils.ts"]
|
|
885
|
+
// CIL[DOC-CONTRACT inputs="className, asChild, showOnHover, props" outputs="JSX element" errors="none" side_effects="none"]
|
|
886
|
+
// CIL[DOC-MICRO logic_summary="Renders an optional child or button and reveals on hover" notable_decisions="[]"]
|
|
887
|
+
// CIL[DOC-CONFIDENCE pass="second" score="0.90" flags="none"]
|
|
888
|
+
// CIL[DOC-STABILITY stability="stable"]
|
|
903
889
|
function SidebarMenuAction({
|
|
904
890
|
className,
|
|
905
891
|
asChild = false,
|
|
@@ -925,21 +911,22 @@ function SidebarMenuAction({
|
|
|
925
911
|
/>
|
|
926
912
|
)
|
|
927
913
|
}
|
|
928
|
-
// CIL[
|
|
929
|
-
// CIL[
|
|
930
|
-
// CIL[DOC-
|
|
931
|
-
// CIL[DOC-
|
|
932
|
-
// CIL[DOC-CONTEXT module="sidebar" layer="ui_components" related_files="[]"]
|
|
933
|
-
// CIL[DOC-CONTRACT inputs="none" outputs="Styled badge" errors="none" side_effects="DOM rendering"]
|
|
934
|
-
// CIL[DOC-MICRO logic_summary="Creates badge with absolute positioning, size and tabular number styling" notable_decisions="[]"]
|
|
935
|
-
// CIL[DOC-CONFIDENCE pass="second" score="0.95" flags="none"]
|
|
936
|
-
// CIL[DOC-STABILITY stability="stable"]
|
|
937
|
-
// CIL[DOC-VECTOR type="context" content="Layer: ui_components. Direct callers: 0. Direct calls: 0. Related files: none."]
|
|
938
|
-
// CIL[DOC-VECTOR type="blast_radius" content="Direct callers: 0. Total affected: 0."]
|
|
939
|
-
// CIL[DOC-VECTOR type="configuration" content="No configuration dependencies."]
|
|
940
|
-
// CIL[DOC-VECTOR type="constraint" content="No test paths identified."]
|
|
914
|
+
// CIL[DOC-VECTOR type="context" content="purpose='Renders an action button attached to a sidebar menu item'; No verified external callers; imports: .framework/src/hooks/use-mobile.ts,.framework/src/lib/utils.ts,.framework/src/components/ui/button.tsx"]
|
|
915
|
+
// CIL[DOC-VECTOR type="blast_radius" content="No direct caller data from CIL graph; local impact only"]
|
|
916
|
+
// CIL[DOC-VECTOR type="configuration" content="No environment or build configuration dependencies identified"]
|
|
917
|
+
// CIL[DOC-VECTOR type="constraint" content="Standard runtime; no special invariants documented"]
|
|
941
918
|
// CIL[DOC-VECTOR type="implementation_pattern" content="" status="pending_human_input"]
|
|
942
919
|
// CIL[DOC-VECTOR type="user_journey" content="" status="pending_human_input"]
|
|
920
|
+
// CIL[END stable_id="~/.framework/src/components/ui/sidebar.tsx:SidebarMenuAction:component"]
|
|
921
|
+
|
|
922
|
+
// CIL[BEGIN stable_id="~/.framework/src/components/ui/sidebar.tsx:SidebarMenuBadge:component" type="component" identity="SidebarMenuBadge" parent="none"]
|
|
923
|
+
// CIL[DOC-MACRO purpose="Renders a badge indicator for a sidebar menu item"]
|
|
924
|
+
// CIL[DOC-RESPONSIBILITY responsibility="Display a numeric or status badge next to a menu item"]
|
|
925
|
+
// CIL[DOC-CONTEXT module="sidebar" layer="ui" related_files=".framework/src/components/ui/button.tsx,.framework/src/components/ui/input.tsx,.framework/src/components/ui/separator.tsx,.framework/src/components/ui/sheet.tsx,.framework/src/components/ui/sidebar.tsx,.framework/src/components/ui/skeleton.tsx,.framework/src/components/ui/tooltip.tsx,.framework/src/hooks/use-mobile.ts,.framework/src/lib/utils.ts"]
|
|
926
|
+
// CIL[DOC-CONTRACT inputs="className, props" outputs="JSX element" errors="none" side_effects="none"]
|
|
927
|
+
// CIL[DOC-MICRO logic_summary="Renders a small badge with dynamic hover colors" notable_decisions="[]"]
|
|
928
|
+
// CIL[DOC-CONFIDENCE pass="second" score="0.90" flags="none"]
|
|
929
|
+
// CIL[DOC-STABILITY stability="stable"]
|
|
943
930
|
function SidebarMenuBadge({
|
|
944
931
|
className,
|
|
945
932
|
...props
|
|
@@ -956,21 +943,22 @@ function SidebarMenuBadge({
|
|
|
956
943
|
/>
|
|
957
944
|
)
|
|
958
945
|
}
|
|
959
|
-
// CIL[
|
|
960
|
-
// CIL[
|
|
961
|
-
// CIL[DOC-
|
|
962
|
-
// CIL[DOC-
|
|
963
|
-
// CIL[DOC-CONTEXT module="sidebar" layer="ui_components" related_files="[]"]
|
|
964
|
-
// CIL[DOC-CONTRACT inputs="none" outputs="Styled skeleton" errors="none" side_effects="DOM rendering"]
|
|
965
|
-
// CIL[DOC-MICRO logic_summary="Creates skeleton with optional icon and random width between 50-90%" notable_decisions="[]"]
|
|
966
|
-
// CIL[DOC-CONFIDENCE pass="second" score="0.95" flags="none"]
|
|
967
|
-
// CIL[DOC-STABILITY stability="stable"]
|
|
968
|
-
// CIL[DOC-VECTOR type="context" content="Layer: ui_components. Direct callers: 0. Direct calls: 0. Related files: none."]
|
|
969
|
-
// CIL[DOC-VECTOR type="blast_radius" content="Direct callers: 0. Total affected: 0."]
|
|
970
|
-
// CIL[DOC-VECTOR type="configuration" content="No configuration dependencies."]
|
|
971
|
-
// CIL[DOC-VECTOR type="constraint" content="No test paths identified."]
|
|
946
|
+
// CIL[DOC-VECTOR type="context" content="purpose='Renders a badge indicator for a sidebar menu item'; No verified external callers; imports: .framework/src/hooks/use-mobile.ts,.framework/src/lib/utils.ts,.framework/src/components/ui/button.tsx"]
|
|
947
|
+
// CIL[DOC-VECTOR type="blast_radius" content="No direct caller data from CIL graph; local impact only"]
|
|
948
|
+
// CIL[DOC-VECTOR type="configuration" content="No environment or build configuration dependencies identified"]
|
|
949
|
+
// CIL[DOC-VECTOR type="constraint" content="Standard runtime; no special invariants documented"]
|
|
972
950
|
// CIL[DOC-VECTOR type="implementation_pattern" content="" status="pending_human_input"]
|
|
973
951
|
// CIL[DOC-VECTOR type="user_journey" content="" status="pending_human_input"]
|
|
952
|
+
// CIL[END stable_id="~/.framework/src/components/ui/sidebar.tsx:SidebarMenuBadge:component"]
|
|
953
|
+
|
|
954
|
+
// CIL[BEGIN stable_id="~/.framework/src/components/ui/sidebar.tsx:SidebarMenuSkeleton:component" type="component" identity="SidebarMenuSkeleton" parent="none"]
|
|
955
|
+
// CIL[DOC-MACRO purpose="Renders a placeholder skeleton loading row for sidebar menu items"]
|
|
956
|
+
// CIL[DOC-RESPONSIBILITY responsibility="Show a loading placeholder for a menu item"]
|
|
957
|
+
// CIL[DOC-CONTEXT module="sidebar" layer="ui" related_files=".framework/src/components/ui/button.tsx,.framework/src/components/ui/input.tsx,.framework/src/components/ui/separator.tsx,.framework/src/components/ui/sheet.tsx,.framework/src/components/ui/sidebar.tsx,.framework/src/components/ui/skeleton.tsx,.framework/src/components/ui/tooltip.tsx,.framework/src/hooks/use-mobile.ts,.framework/src/lib/utils.ts"]
|
|
958
|
+
// CIL[DOC-CONTRACT inputs="className, showIcon, props" outputs="JSX element" errors="none" side_effects="uses Math.random to pick a skeleton width on mount"]
|
|
959
|
+
// CIL[DOC-MICRO logic_summary="Renders icon and text skeletons with a randomized width" notable_decisions="[]"]
|
|
960
|
+
// CIL[DOC-CONFIDENCE pass="second" score="0.90" flags="none"]
|
|
961
|
+
// CIL[DOC-STABILITY stability="stable"]
|
|
974
962
|
function SidebarMenuSkeleton({
|
|
975
963
|
className,
|
|
976
964
|
showIcon = false,
|
|
@@ -1007,21 +995,22 @@ function SidebarMenuSkeleton({
|
|
|
1007
995
|
</div>
|
|
1008
996
|
)
|
|
1009
997
|
}
|
|
1010
|
-
// CIL[
|
|
1011
|
-
// CIL[
|
|
1012
|
-
// CIL[DOC-
|
|
1013
|
-
// CIL[DOC-
|
|
1014
|
-
// CIL[DOC-CONTEXT module="sidebar" layer="ui_components" related_files="[]"]
|
|
1015
|
-
// CIL[DOC-CONTRACT inputs="none" outputs="Styled sub-menu" errors="none" side_effects="DOM rendering"]
|
|
1016
|
-
// CIL[DOC-MICRO logic_summary="Creates sub-menu with left border, padding and collapsed visibility" notable_decisions="[]"]
|
|
1017
|
-
// CIL[DOC-CONFIDENCE pass="second" score="0.95" flags="none"]
|
|
1018
|
-
// CIL[DOC-STABILITY stability="stable"]
|
|
1019
|
-
// CIL[DOC-VECTOR type="context" content="Layer: ui_components. Direct callers: 0. Direct calls: 0. Related files: none."]
|
|
1020
|
-
// CIL[DOC-VECTOR type="blast_radius" content="Direct callers: 0. Total affected: 0."]
|
|
1021
|
-
// CIL[DOC-VECTOR type="configuration" content="No configuration dependencies."]
|
|
1022
|
-
// CIL[DOC-VECTOR type="constraint" content="No test paths identified."]
|
|
998
|
+
// CIL[DOC-VECTOR type="context" content="purpose='Renders a placeholder skeleton loading row for sidebar menu items'; No verified external callers; imports: .framework/src/hooks/use-mobile.ts,.framework/src/lib/utils.ts,.framework/src/components/ui/button.tsx"]
|
|
999
|
+
// CIL[DOC-VECTOR type="blast_radius" content="No direct caller data from CIL graph; local impact only"]
|
|
1000
|
+
// CIL[DOC-VECTOR type="configuration" content="No environment or build configuration dependencies identified"]
|
|
1001
|
+
// CIL[DOC-VECTOR type="constraint" content="Standard runtime; no special invariants documented"]
|
|
1023
1002
|
// CIL[DOC-VECTOR type="implementation_pattern" content="" status="pending_human_input"]
|
|
1024
1003
|
// CIL[DOC-VECTOR type="user_journey" content="" status="pending_human_input"]
|
|
1004
|
+
// CIL[END stable_id="~/.framework/src/components/ui/sidebar.tsx:SidebarMenuSkeleton:component"]
|
|
1005
|
+
|
|
1006
|
+
// CIL[BEGIN stable_id="~/.framework/src/components/ui/sidebar.tsx:SidebarMenuSub:component" type="component" identity="SidebarMenuSub" parent="none"]
|
|
1007
|
+
// CIL[DOC-MACRO purpose="Renders a collapsible sub-menu list inside the sidebar"]
|
|
1008
|
+
// CIL[DOC-RESPONSIBILITY responsibility="Render an indented sub-menu list"]
|
|
1009
|
+
// CIL[DOC-CONTEXT module="sidebar" layer="ui" related_files=".framework/src/components/ui/button.tsx,.framework/src/components/ui/input.tsx,.framework/src/components/ui/separator.tsx,.framework/src/components/ui/sheet.tsx,.framework/src/components/ui/sidebar.tsx,.framework/src/components/ui/skeleton.tsx,.framework/src/components/ui/tooltip.tsx,.framework/src/hooks/use-mobile.ts,.framework/src/lib/utils.ts"]
|
|
1010
|
+
// CIL[DOC-CONTRACT inputs="className, props" outputs="JSX element" errors="none" side_effects="none"]
|
|
1011
|
+
// CIL[DOC-MICRO logic_summary="Renders an indented bordered sub-list" notable_decisions="[]"]
|
|
1012
|
+
// CIL[DOC-CONFIDENCE pass="second" score="0.90" flags="none"]
|
|
1013
|
+
// CIL[DOC-STABILITY stability="stable"]
|
|
1025
1014
|
function SidebarMenuSub({ className, ...props }: React.ComponentProps<"ul">) {
|
|
1026
1015
|
return (
|
|
1027
1016
|
<ul
|
|
@@ -1035,21 +1024,22 @@ function SidebarMenuSub({ className, ...props }: React.ComponentProps<"ul">) {
|
|
|
1035
1024
|
/>
|
|
1036
1025
|
)
|
|
1037
1026
|
}
|
|
1038
|
-
// CIL[
|
|
1039
|
-
// CIL[
|
|
1040
|
-
// CIL[DOC-
|
|
1041
|
-
// CIL[DOC-
|
|
1042
|
-
// CIL[DOC-CONTEXT module="sidebar" layer="ui_components" related_files="[]"]
|
|
1043
|
-
// CIL[DOC-CONTRACT inputs="none" outputs="Styled sub-menu item" errors="none" side_effects="DOM rendering"]
|
|
1044
|
-
// CIL[DOC-MICRO logic_summary="Creates list item with relative positioning and sub-menu styling" notable_decisions="[]"]
|
|
1045
|
-
// CIL[DOC-CONFIDENCE pass="second" score="0.95" flags="none"]
|
|
1046
|
-
// CIL[DOC-STABILITY stability="stable"]
|
|
1047
|
-
// CIL[DOC-VECTOR type="context" content="Layer: ui_components. Direct callers: 0. Direct calls: 0. Related files: none."]
|
|
1048
|
-
// CIL[DOC-VECTOR type="blast_radius" content="Direct callers: 0. Total affected: 0."]
|
|
1049
|
-
// CIL[DOC-VECTOR type="configuration" content="No configuration dependencies."]
|
|
1050
|
-
// CIL[DOC-VECTOR type="constraint" content="No test paths identified."]
|
|
1027
|
+
// CIL[DOC-VECTOR type="context" content="purpose='Renders a collapsible sub-menu list inside the sidebar'; No verified external callers; imports: .framework/src/hooks/use-mobile.ts,.framework/src/lib/utils.ts,.framework/src/components/ui/button.tsx"]
|
|
1028
|
+
// CIL[DOC-VECTOR type="blast_radius" content="No direct caller data from CIL graph; local impact only"]
|
|
1029
|
+
// CIL[DOC-VECTOR type="configuration" content="No environment or build configuration dependencies identified"]
|
|
1030
|
+
// CIL[DOC-VECTOR type="constraint" content="Standard runtime; no special invariants documented"]
|
|
1051
1031
|
// CIL[DOC-VECTOR type="implementation_pattern" content="" status="pending_human_input"]
|
|
1052
1032
|
// CIL[DOC-VECTOR type="user_journey" content="" status="pending_human_input"]
|
|
1033
|
+
// CIL[END stable_id="~/.framework/src/components/ui/sidebar.tsx:SidebarMenuSub:component"]
|
|
1034
|
+
|
|
1035
|
+
// CIL[BEGIN stable_id="~/.framework/src/components/ui/sidebar.tsx:SidebarMenuSubItem:component" type="component" identity="SidebarMenuSubItem" parent="none"]
|
|
1036
|
+
// CIL[DOC-MACRO purpose="Renders a sub-menu item wrapper"]
|
|
1037
|
+
// CIL[DOC-RESPONSIBILITY responsibility="Wrap a single sub-menu entry"]
|
|
1038
|
+
// CIL[DOC-CONTEXT module="sidebar" layer="ui" related_files=".framework/src/components/ui/button.tsx,.framework/src/components/ui/input.tsx,.framework/src/components/ui/separator.tsx,.framework/src/components/ui/sheet.tsx,.framework/src/components/ui/sidebar.tsx,.framework/src/components/ui/skeleton.tsx,.framework/src/components/ui/tooltip.tsx,.framework/src/hooks/use-mobile.ts,.framework/src/lib/utils.ts"]
|
|
1039
|
+
// CIL[DOC-CONTRACT inputs="className, props" outputs="JSX element" errors="none" side_effects="none"]
|
|
1040
|
+
// CIL[DOC-MICRO logic_summary="Forwards to a styled li" notable_decisions="[]"]
|
|
1041
|
+
// CIL[DOC-CONFIDENCE pass="second" score="0.90" flags="none"]
|
|
1042
|
+
// CIL[DOC-STABILITY stability="stable"]
|
|
1053
1043
|
function SidebarMenuSubItem({
|
|
1054
1044
|
className,
|
|
1055
1045
|
...props
|
|
@@ -1063,21 +1053,22 @@ function SidebarMenuSubItem({
|
|
|
1063
1053
|
/>
|
|
1064
1054
|
)
|
|
1065
1055
|
}
|
|
1066
|
-
// CIL[
|
|
1067
|
-
// CIL[
|
|
1068
|
-
// CIL[DOC-
|
|
1069
|
-
// CIL[DOC-
|
|
1070
|
-
// CIL[DOC-CONTEXT module="sidebar" layer="ui_components" related_files="[]"]
|
|
1071
|
-
// CIL[DOC-CONTRACT inputs="none" outputs="Styled sub-menu button" errors="none" side_effects="DOM events"]
|
|
1072
|
-
// CIL[DOC-MICRO logic_summary="Creates sub-menu button with size variants, active states and responsive styling" notable_decisions="[]"]
|
|
1073
|
-
// CIL[DOC-CONFIDENCE pass="second" score="0.95" flags="none"]
|
|
1074
|
-
// CIL[DOC-STABILITY stability="stable"]
|
|
1075
|
-
// CIL[DOC-VECTOR type="context" content="Layer: ui_components. Direct callers: 0. Direct calls: 0. Related files: none."]
|
|
1076
|
-
// CIL[DOC-VECTOR type="blast_radius" content="Direct callers: 0. Total affected: 0."]
|
|
1077
|
-
// CIL[DOC-VECTOR type="configuration" content="No configuration dependencies."]
|
|
1078
|
-
// CIL[DOC-VECTOR type="constraint" content="No test paths identified."]
|
|
1056
|
+
// CIL[DOC-VECTOR type="context" content="purpose='Renders a sub-menu item wrapper'; No verified external callers; imports: .framework/src/hooks/use-mobile.ts,.framework/src/lib/utils.ts,.framework/src/components/ui/button.tsx"]
|
|
1057
|
+
// CIL[DOC-VECTOR type="blast_radius" content="No direct caller data from CIL graph; local impact only"]
|
|
1058
|
+
// CIL[DOC-VECTOR type="configuration" content="No environment or build configuration dependencies identified"]
|
|
1059
|
+
// CIL[DOC-VECTOR type="constraint" content="Standard runtime; no special invariants documented"]
|
|
1079
1060
|
// CIL[DOC-VECTOR type="implementation_pattern" content="" status="pending_human_input"]
|
|
1080
1061
|
// CIL[DOC-VECTOR type="user_journey" content="" status="pending_human_input"]
|
|
1062
|
+
// CIL[END stable_id="~/.framework/src/components/ui/sidebar.tsx:SidebarMenuSubItem:component"]
|
|
1063
|
+
|
|
1064
|
+
// CIL[BEGIN stable_id="~/.framework/src/components/ui/sidebar.tsx:SidebarMenuSubButton:component" type="component" identity="SidebarMenuSubButton" parent="none"]
|
|
1065
|
+
// CIL[DOC-MACRO purpose="Renders a button for a sub-menu item"]
|
|
1066
|
+
// CIL[DOC-RESPONSIBILITY responsibility="Render an anchor-like sub-menu button"]
|
|
1067
|
+
// CIL[DOC-CONTEXT module="sidebar" layer="ui" related_files=".framework/src/components/ui/button.tsx,.framework/src/components/ui/input.tsx,.framework/src/components/ui/separator.tsx,.framework/src/components/ui/sheet.tsx,.framework/src/components/ui/sidebar.tsx,.framework/src/components/ui/skeleton.tsx,.framework/src/components/ui/tooltip.tsx,.framework/src/hooks/use-mobile.ts,.framework/src/lib/utils.ts"]
|
|
1068
|
+
// CIL[DOC-CONTRACT inputs="asChild, size, isActive, className, props" outputs="JSX element" errors="none" side_effects="none"]
|
|
1069
|
+
// CIL[DOC-MICRO logic_summary="Renders an anchor or child with size/active states" notable_decisions="[]"]
|
|
1070
|
+
// CIL[DOC-CONFIDENCE pass="second" score="0.90" flags="none"]
|
|
1071
|
+
// CIL[DOC-STABILITY stability="stable"]
|
|
1081
1072
|
function SidebarMenuSubButton({
|
|
1082
1073
|
asChild = false,
|
|
1083
1074
|
size = "md",
|
|
@@ -1105,21 +1096,21 @@ function SidebarMenuSubButton({
|
|
|
1105
1096
|
/>
|
|
1106
1097
|
)
|
|
1107
1098
|
}
|
|
1108
|
-
// CIL[
|
|
1109
|
-
// CIL[
|
|
1110
|
-
// CIL[DOC-
|
|
1111
|
-
// CIL[DOC-
|
|
1112
|
-
// CIL[DOC-CONTEXT module="sidebar" layer="ui_components" related_files="[]"]
|
|
1113
|
-
// CIL[DOC-CONTRACT inputs="none" outputs="Component exports" errors="none" side_effects="Module exports"]
|
|
1114
|
-
// CIL[DOC-MICRO logic_summary="Exports all sidebar components: Sidebar, SidebarContent, SidebarFooter, SidebarGroup, SidebarGroupAction, SidebarGroupContent, SidebarGroupLabel, SidebarHeader, SidebarInput, SidebarInset, SidebarMenu, SidebarMenuAction, SidebarMenuBadge, SidebarMenuButton, SidebarMenuItem, SidebarMenuSkeleton, SidebarMenuSub, SidebarMenuSubButton, SidebarMenuSubItem, SidebarProvider, SidebarRail, SidebarSeparator, SidebarTrigger, useSidebar" notable_decisions="[]"]
|
|
1115
|
-
// CIL[DOC-CONFIDENCE pass="second" score="0.95" flags="none"]
|
|
1116
|
-
// CIL[DOC-STABILITY stability="stable"]
|
|
1117
|
-
// CIL[DOC-VECTOR type="context" content="Layer: ui_components. Direct callers: 0. Direct calls: 0. Related files: none."]
|
|
1118
|
-
// CIL[DOC-VECTOR type="blast_radius" content="Direct callers: 0. Total affected: 0."]
|
|
1119
|
-
// CIL[DOC-VECTOR type="configuration" content="No configuration dependencies."]
|
|
1120
|
-
// CIL[DOC-VECTOR type="constraint" content="No test paths identified."]
|
|
1099
|
+
// CIL[DOC-VECTOR type="context" content="purpose='Renders a button for a sub-menu item'; No verified external callers; imports: .framework/src/hooks/use-mobile.ts,.framework/src/lib/utils.ts,.framework/src/components/ui/button.tsx"]
|
|
1100
|
+
// CIL[DOC-VECTOR type="blast_radius" content="No direct caller data from CIL graph; local impact only"]
|
|
1101
|
+
// CIL[DOC-VECTOR type="configuration" content="No environment or build configuration dependencies identified"]
|
|
1102
|
+
// CIL[DOC-VECTOR type="constraint" content="Standard runtime; no special invariants documented"]
|
|
1121
1103
|
// CIL[DOC-VECTOR type="implementation_pattern" content="" status="pending_human_input"]
|
|
1122
1104
|
// CIL[DOC-VECTOR type="user_journey" content="" status="pending_human_input"]
|
|
1105
|
+
// CIL[END stable_id="~/.framework/src/components/ui/sidebar.tsx:SidebarMenuSubButton:component"]
|
|
1106
|
+
// CIL[BEGIN stable_id="~/.framework/src/components/ui/sidebar.tsx:module_exports:export" type="export" identity="module_exports" parent="none"]
|
|
1107
|
+
// CIL[DOC-MACRO purpose="Re-exports all public sidebar components, hooks, and helpers"]
|
|
1108
|
+
// CIL[DOC-RESPONSIBILITY responsibility="Expose all public sidebar symbols to consumers"]
|
|
1109
|
+
// CIL[DOC-CONTEXT module="sidebar" layer="ui" related_files=".framework/src/components/ui/button.tsx,.framework/src/components/ui/input.tsx,.framework/src/components/ui/separator.tsx,.framework/src/components/ui/sheet.tsx,.framework/src/components/ui/sidebar.tsx,.framework/src/components/ui/skeleton.tsx,.framework/src/components/ui/tooltip.tsx,.framework/src/hooks/use-mobile.ts,.framework/src/lib/utils.ts"]
|
|
1110
|
+
// CIL[DOC-CONTRACT inputs="none" outputs="none (module re-exports)" errors="none" side_effects="none"]
|
|
1111
|
+
// CIL[DOC-MICRO logic_summary="Lists every public component and hook in a single export block" notable_decisions="[]"]
|
|
1112
|
+
// CIL[DOC-CONFIDENCE pass="second" score="0.90" flags="none"]
|
|
1113
|
+
// CIL[DOC-STABILITY stability="stable"]
|
|
1123
1114
|
export {
|
|
1124
1115
|
Sidebar,
|
|
1125
1116
|
SidebarContent,
|
|
@@ -1146,4 +1137,10 @@ export {
|
|
|
1146
1137
|
SidebarTrigger,
|
|
1147
1138
|
useSidebar,
|
|
1148
1139
|
}
|
|
1149
|
-
// CIL[
|
|
1140
|
+
// CIL[DOC-VECTOR type="context" content="purpose='Re-exports all public sidebar components, hooks, and helpers'; No verified external callers; imports: .framework/src/hooks/use-mobile.ts,.framework/src/lib/utils.ts,.framework/src/components/ui/button.tsx"]
|
|
1141
|
+
// CIL[DOC-VECTOR type="blast_radius" content="No direct caller data from CIL graph; local impact only"]
|
|
1142
|
+
// CIL[DOC-VECTOR type="configuration" content="No environment or build configuration dependencies identified"]
|
|
1143
|
+
// CIL[DOC-VECTOR type="constraint" content="Standard runtime; no special invariants documented"]
|
|
1144
|
+
// CIL[DOC-VECTOR type="implementation_pattern" content="" status="pending_human_input"]
|
|
1145
|
+
// CIL[DOC-VECTOR type="user_journey" content="" status="pending_human_input"]
|
|
1146
|
+
// CIL[END stable_id="~/.framework/src/components/ui/sidebar.tsx:module_exports:export"]
|