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,16 @@
|
|
|
1
|
+
// CIL[BEGIN stable_id="~/.framework/src/components/ui/carousel.tsx:module_header:module_header" type="module_header" identity="module_header" parent="none"]
|
|
2
|
+
// CIL[DOC-MACRO purpose="Provides the Carousel UI components built on Embla Carousel for the shadcn/ui design system"]
|
|
3
|
+
// CIL[DOC-RESPONSIBILITY responsibility="Import carousel dependencies and re-export the public Carousel component surface"]
|
|
4
|
+
// CIL[DOC-CONTEXT module="carousel" layer="components/ui" related_files=".framework/src/components/ui/button.tsx,.framework/src/lib/utils.ts"]
|
|
5
|
+
// CIL[DOC-CONTRACT inputs="none" outputs="imports and component exports" errors="none" side_effects="none"]
|
|
6
|
+
// CIL[DOC-MICRO logic_summary="Sets up React, Embla Carousel, utility, Button, and icon imports used by Carousel, Content, Item, Previous, and Next." notable_decisions="[]"]
|
|
7
|
+
// CIL[DOC-CONFIDENCE pass="second" score="0.90" flags="none"]
|
|
8
|
+
// CIL[DOC-STABILITY stability="stable"]
|
|
9
|
+
// CIL[DOC-AUDIENCE audience="frontend-developers"]
|
|
10
|
+
|
|
11
|
+
|
|
12
|
+
|
|
13
|
+
|
|
1
14
|
|
|
2
15
|
|
|
3
16
|
|
|
@@ -6,21 +19,6 @@
|
|
|
6
19
|
|
|
7
20
|
|
|
8
21
|
|
|
9
|
-
// CIL[BEGIN chunk_id="carousel_module_header_1783881474" type="module_header" identity="module_header" parent="none"]
|
|
10
|
-
// CIL[DOC-MACRO purpose="Carousel component library with Embla Carousel integration"]
|
|
11
|
-
// CIL[DOC-RESPONSIBILITY responsibility="Provide carousel infrastructure, types, and context system"]
|
|
12
|
-
// CIL[DOC-CONTEXT module="ui.carousel" layer="component" related_files="[\".framework/src/pages/admin/IntegrationsPage.tsx\",\".framework/src/components/ui/dialog.tsx\",\".framework/src/components/layout/Sidebar.tsx\",\"custom/apps/portal/pages/ContentPage.tsx\",\".framework/src/pages/admin/RolesPage.tsx\",\"\\\"]"]
|
|
13
|
-
// CIL[DOC-CONTRACT inputs="none" outputs="carousel types, context, React, Embla" errors="none" side_effects="none"]
|
|
14
|
-
// CIL[DOC-MICRO logic_summary="Defines carousel type system, context provider, and Embla integration" notable_decisions="['embla-carousel integration', 'comprehensive type system', 'context pattern']"]
|
|
15
|
-
// CIL[DOC-CONFIDENCE pass="second" score="0.95" flags="none"]
|
|
16
|
-
// CIL[DOC-STABILITY stability="stable"]
|
|
17
|
-
// CIL[DOC-AUDIENCE audience="developer"]
|
|
18
|
-
// CIL[DOC-VECTOR type="context" content="Layer: component. Direct callers: 0. Direct calls: 0. Related files: .framework/src/pages/admin/IntegrationsPage.tsx, .framework/src/components/ui/dialog.tsx, .framework/src/components/layout/Sidebar.tsx, custom/apps/portal/pages/ContentPage.tsx, .framework/src/pages/admin/RolesPage.tsx, \."]
|
|
19
|
-
// CIL[DOC-VECTOR type="blast_radius" content="Direct callers: 0. Total affected: 0."]
|
|
20
|
-
// CIL[DOC-VECTOR type="configuration" content="No configuration dependencies."]
|
|
21
|
-
// CIL[DOC-VECTOR type="constraint" content="No test paths identified."]
|
|
22
|
-
// CIL[DOC-VECTOR type="implementation_pattern" content="" status="pending_human_input"]
|
|
23
|
-
// CIL[DOC-VECTOR type="user_journey" content="" status="pending_human_input"]
|
|
24
22
|
import * as React from "react"
|
|
25
23
|
import useEmblaCarousel, {
|
|
26
24
|
type UseEmblaCarouselType,
|
|
@@ -29,19 +27,112 @@ import useEmblaCarousel, {
|
|
|
29
27
|
import { cn } from "@/lib/utils"
|
|
30
28
|
import { Button } from "@/components/ui/button"
|
|
31
29
|
import { ChevronLeftIcon, ChevronRightIcon } from "lucide-react"
|
|
30
|
+
// CIL[DOC-VECTOR type="context" content="purpose='Provides the Carousel UI components built on Embla Carousel for the shadcn/ui design system'; No verified external callers; imports: .framework/src/lib/utils.ts,.framework/src/components/ui/button.tsx"]
|
|
31
|
+
// CIL[DOC-VECTOR type="blast_radius" content="No direct caller data from CIL graph; local impact only"]
|
|
32
|
+
// CIL[DOC-VECTOR type="configuration" content="No environment or build configuration dependencies identified"]
|
|
33
|
+
// CIL[DOC-VECTOR type="constraint" content="Standard runtime; no special invariants documented"]
|
|
34
|
+
// CIL[DOC-VECTOR type="implementation_pattern" content="" status="pending_human_input"]
|
|
35
|
+
// CIL[DOC-VECTOR type="user_journey" content="" status="pending_human_input"]
|
|
36
|
+
// CIL[END stable_id="~/.framework/src/components/ui/carousel.tsx:module_header:module_header"]
|
|
32
37
|
|
|
38
|
+
// CIL[BEGIN stable_id="~/.framework/src/components/ui/carousel.tsx:carouselapi:type" type="type" identity="carouselapi" parent="~/.framework/src/components/ui/carousel.tsx:module_header:module_header"]
|
|
39
|
+
// CIL[DOC-MACRO purpose="Exposes the Embla Carousel API type returned by useEmblaCarousel"]
|
|
40
|
+
// CIL[DOC-RESPONSIBILITY responsibility="Define the CarouselApi type alias for consumer typing"]
|
|
41
|
+
// CIL[DOC-CONTEXT module="carousel" layer="components/ui" related_files=".framework/src/components/ui/button.tsx,.framework/src/components/ui/carousel.tsx,.framework/src/lib/utils.ts"]
|
|
42
|
+
// CIL[DOC-CONTRACT inputs="none" outputs="CarouselApi type alias" errors="none" side_effects="none"]
|
|
43
|
+
// CIL[DOC-MICRO logic_summary="Aliases UseEmblaCarouselType[1] as CarouselApi." notable_decisions="[]"]
|
|
44
|
+
// CIL[DOC-CONFIDENCE pass="second" score="0.90" flags="none"]
|
|
45
|
+
// CIL[DOC-STABILITY stability="stable"]
|
|
33
46
|
type CarouselApi = UseEmblaCarouselType[1]
|
|
47
|
+
// CIL[DOC-VECTOR type="context" content="purpose='Exposes the Embla Carousel API type returned by useEmblaCarousel'; No verified external callers; imports: .framework/src/lib/utils.ts,.framework/src/components/ui/button.tsx"]
|
|
48
|
+
// CIL[DOC-VECTOR type="blast_radius" content="No direct caller data from CIL graph; local impact only"]
|
|
49
|
+
// CIL[DOC-VECTOR type="configuration" content="No environment or build configuration dependencies identified"]
|
|
50
|
+
// CIL[DOC-VECTOR type="constraint" content="Standard runtime; no special invariants documented"]
|
|
51
|
+
// CIL[DOC-VECTOR type="implementation_pattern" content="" status="pending_human_input"]
|
|
52
|
+
// CIL[DOC-VECTOR type="user_journey" content="" status="pending_human_input"]
|
|
53
|
+
// CIL[END stable_id="~/.framework/src/components/ui/carousel.tsx:carouselapi:type"]
|
|
54
|
+
|
|
55
|
+
// CIL[BEGIN stable_id="~/.framework/src/components/ui/carousel.tsx:usecarouselparameters:type" type="type" identity="usecarouselparameters" parent="~/.framework/src/components/ui/carousel.tsx:module_header:module_header"]
|
|
56
|
+
// CIL[DOC-MACRO purpose="Defines the parameter tuple type accepted by the useEmblaCarousel hook"]
|
|
57
|
+
// CIL[DOC-RESPONSIBILITY responsibility="Provide the UseCarouselParameters type for the Carousel hook"]
|
|
58
|
+
// CIL[DOC-CONTEXT module="carousel" layer="components/ui" related_files=".framework/src/components/ui/button.tsx,.framework/src/components/ui/carousel.tsx,.framework/src/lib/utils.ts"]
|
|
59
|
+
// CIL[DOC-CONTRACT inputs="none" outputs="UseCarouselParameters type alias" errors="none" side_effects="none"]
|
|
60
|
+
// CIL[DOC-MICRO logic_summary="Aliases Parameters<typeof useEmblaCarousel> as UseCarouselParameters." notable_decisions="[]"]
|
|
61
|
+
// CIL[DOC-CONFIDENCE pass="second" score="0.90" flags="none"]
|
|
62
|
+
// CIL[DOC-STABILITY stability="stable"]
|
|
34
63
|
type UseCarouselParameters = Parameters<typeof useEmblaCarousel>
|
|
64
|
+
// CIL[DOC-VECTOR type="context" content="purpose='Defines the parameter tuple type accepted by the useEmblaCarousel hook'; No verified external callers; imports: .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"]
|
|
68
|
+
// CIL[DOC-VECTOR type="implementation_pattern" content="" status="pending_human_input"]
|
|
69
|
+
// CIL[DOC-VECTOR type="user_journey" content="" status="pending_human_input"]
|
|
70
|
+
// CIL[END stable_id="~/.framework/src/components/ui/carousel.tsx:usecarouselparameters:type"]
|
|
71
|
+
|
|
72
|
+
// CIL[BEGIN stable_id="~/.framework/src/components/ui/carousel.tsx:carouseloptions:type" type="type" identity="carouseloptions" parent="~/.framework/src/components/ui/carousel.tsx:module_header:module_header"]
|
|
73
|
+
// CIL[DOC-MACRO purpose="Defines the carousel configuration options type"]
|
|
74
|
+
// CIL[DOC-RESPONSIBILITY responsibility="Provide the CarouselOptions type for the Carousel component"]
|
|
75
|
+
// CIL[DOC-CONTEXT module="carousel" layer="components/ui" related_files=".framework/src/components/ui/button.tsx,.framework/src/components/ui/carousel.tsx,.framework/src/lib/utils.ts"]
|
|
76
|
+
// CIL[DOC-CONTRACT inputs="none" outputs="CarouselOptions type alias" errors="none" side_effects="none"]
|
|
77
|
+
// CIL[DOC-MICRO logic_summary="Aliases UseCarouselParameters[0] as CarouselOptions." notable_decisions="[]"]
|
|
78
|
+
// CIL[DOC-CONFIDENCE pass="second" score="0.90" flags="none"]
|
|
79
|
+
// CIL[DOC-STABILITY stability="stable"]
|
|
35
80
|
type CarouselOptions = UseCarouselParameters[0]
|
|
81
|
+
// CIL[DOC-VECTOR type="context" content="purpose='Defines the carousel configuration options type'; No verified external callers; imports: .framework/src/lib/utils.ts,.framework/src/components/ui/button.tsx"]
|
|
82
|
+
// CIL[DOC-VECTOR type="blast_radius" content="No direct caller data from CIL graph; local impact only"]
|
|
83
|
+
// CIL[DOC-VECTOR type="configuration" content="No environment or build configuration dependencies identified"]
|
|
84
|
+
// CIL[DOC-VECTOR type="constraint" content="Standard runtime; no special invariants documented"]
|
|
85
|
+
// CIL[DOC-VECTOR type="implementation_pattern" content="" status="pending_human_input"]
|
|
86
|
+
// CIL[DOC-VECTOR type="user_journey" content="" status="pending_human_input"]
|
|
87
|
+
// CIL[END stable_id="~/.framework/src/components/ui/carousel.tsx:carouseloptions:type"]
|
|
88
|
+
|
|
89
|
+
// CIL[BEGIN stable_id="~/.framework/src/components/ui/carousel.tsx:carouselplugin:type" type="type" identity="carouselplugin" parent="~/.framework/src/components/ui/carousel.tsx:module_header:module_header"]
|
|
90
|
+
// CIL[DOC-MACRO purpose="Defines the carousel plugin type"]
|
|
91
|
+
// CIL[DOC-RESPONSIBILITY responsibility="Provide the CarouselPlugin type for Embla plugins"]
|
|
92
|
+
// CIL[DOC-CONTEXT module="carousel" layer="components/ui" related_files=".framework/src/components/ui/button.tsx,.framework/src/components/ui/carousel.tsx,.framework/src/lib/utils.ts"]
|
|
93
|
+
// CIL[DOC-CONTRACT inputs="none" outputs="CarouselPlugin type alias" errors="none" side_effects="none"]
|
|
94
|
+
// CIL[DOC-MICRO logic_summary="Aliases UseCarouselParameters[1] as CarouselPlugin." notable_decisions="[]"]
|
|
95
|
+
// CIL[DOC-CONFIDENCE pass="second" score="0.90" flags="none"]
|
|
96
|
+
// CIL[DOC-STABILITY stability="stable"]
|
|
36
97
|
type CarouselPlugin = UseCarouselParameters[1]
|
|
98
|
+
// CIL[DOC-VECTOR type="context" content="purpose='Defines the carousel plugin type'; No verified external callers; imports: .framework/src/lib/utils.ts,.framework/src/components/ui/button.tsx"]
|
|
99
|
+
// CIL[DOC-VECTOR type="blast_radius" content="No direct caller data from CIL graph; local impact only"]
|
|
100
|
+
// CIL[DOC-VECTOR type="configuration" content="No environment or build configuration dependencies identified"]
|
|
101
|
+
// CIL[DOC-VECTOR type="constraint" content="Standard runtime; no special invariants documented"]
|
|
102
|
+
// CIL[DOC-VECTOR type="implementation_pattern" content="" status="pending_human_input"]
|
|
103
|
+
// CIL[DOC-VECTOR type="user_journey" content="" status="pending_human_input"]
|
|
104
|
+
// CIL[END stable_id="~/.framework/src/components/ui/carousel.tsx:carouselplugin:type"]
|
|
37
105
|
|
|
106
|
+
// CIL[BEGIN stable_id="~/.framework/src/components/ui/carousel.tsx:carouselprops:type" type="type" identity="carouselprops" parent="~/.framework/src/components/ui/carousel.tsx:module_header:module_header"]
|
|
107
|
+
// CIL[DOC-MACRO purpose="Defines the props accepted by the Carousel component"]
|
|
108
|
+
// CIL[DOC-RESPONSIBILITY responsibility="Declare the CarouselProps interface with options, plugins, orientation, and setApi"]
|
|
109
|
+
// CIL[DOC-CONTEXT module="carousel" layer="components/ui" related_files=".framework/src/components/ui/button.tsx,.framework/src/components/ui/carousel.tsx,.framework/src/lib/utils.ts"]
|
|
110
|
+
// CIL[DOC-CONTRACT inputs="none" outputs="CarouselProps type declaration" errors="none" side_effects="none"]
|
|
111
|
+
// CIL[DOC-MICRO logic_summary="Describes the public props for the Carousel component including optional opts, plugins, orientation, and setApi callback." notable_decisions="[]"]
|
|
112
|
+
// CIL[DOC-CONFIDENCE pass="second" score="0.90" flags="none"]
|
|
113
|
+
// CIL[DOC-STABILITY stability="stable"]
|
|
38
114
|
type CarouselProps = {
|
|
39
115
|
opts?: CarouselOptions
|
|
40
116
|
plugins?: CarouselPlugin
|
|
41
117
|
orientation?: "horizontal" | "vertical"
|
|
42
118
|
setApi?: (api: CarouselApi) => void
|
|
43
119
|
}
|
|
120
|
+
// CIL[DOC-VECTOR type="context" content="purpose='Defines the props accepted by the Carousel component'; No verified external callers; imports: .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"]
|
|
124
|
+
// CIL[DOC-VECTOR type="implementation_pattern" content="" status="pending_human_input"]
|
|
125
|
+
// CIL[DOC-VECTOR type="user_journey" content="" status="pending_human_input"]
|
|
126
|
+
// CIL[END stable_id="~/.framework/src/components/ui/carousel.tsx:carouselprops:type"]
|
|
44
127
|
|
|
128
|
+
// CIL[BEGIN stable_id="~/.framework/src/components/ui/carousel.tsx:carouselcontextprops:type" type="type" identity="carouselcontextprops" parent="~/.framework/src/components/ui/carousel.tsx:module_header:module_header"]
|
|
129
|
+
// CIL[DOC-MACRO purpose="Defines the context shape consumed by nested Carousel subcomponents"]
|
|
130
|
+
// CIL[DOC-RESPONSIBILITY responsibility="Declare the CarouselContextProps interface"]
|
|
131
|
+
// CIL[DOC-CONTEXT module="carousel" layer="components/ui" related_files=".framework/src/components/ui/button.tsx,.framework/src/components/ui/carousel.tsx,.framework/src/lib/utils.ts"]
|
|
132
|
+
// CIL[DOC-CONTRACT inputs="none" outputs="CarouselContextProps type declaration" errors="none" side_effects="none"]
|
|
133
|
+
// CIL[DOC-MICRO logic_summary="Extends CarouselProps with carouselRef, api, scroll handlers, and scrollability booleans." notable_decisions="[]"]
|
|
134
|
+
// CIL[DOC-CONFIDENCE pass="second" score="0.90" flags="none"]
|
|
135
|
+
// CIL[DOC-STABILITY stability="stable"]
|
|
45
136
|
type CarouselContextProps = {
|
|
46
137
|
carouselRef: ReturnType<typeof useEmblaCarousel>[0]
|
|
47
138
|
api: ReturnType<typeof useEmblaCarousel>[1]
|
|
@@ -50,23 +141,39 @@ type CarouselContextProps = {
|
|
|
50
141
|
canScrollPrev: boolean
|
|
51
142
|
canScrollNext: boolean
|
|
52
143
|
} & CarouselProps
|
|
144
|
+
// CIL[DOC-VECTOR type="context" content="purpose='Defines the context shape consumed by nested Carousel subcomponents'; No verified external callers; imports: .framework/src/lib/utils.ts,.framework/src/components/ui/button.tsx"]
|
|
145
|
+
// CIL[DOC-VECTOR type="blast_radius" content="No direct caller data from CIL graph; local impact only"]
|
|
146
|
+
// CIL[DOC-VECTOR type="configuration" content="No environment or build configuration dependencies identified"]
|
|
147
|
+
// CIL[DOC-VECTOR type="constraint" content="Standard runtime; no special invariants documented"]
|
|
148
|
+
// CIL[DOC-VECTOR type="implementation_pattern" content="" status="pending_human_input"]
|
|
149
|
+
// CIL[DOC-VECTOR type="user_journey" content="" status="pending_human_input"]
|
|
150
|
+
// CIL[END stable_id="~/.framework/src/components/ui/carousel.tsx:carouselcontextprops:type"]
|
|
53
151
|
|
|
54
|
-
|
|
55
|
-
// CIL[
|
|
56
|
-
// CIL[
|
|
57
|
-
// CIL[DOC-
|
|
58
|
-
// CIL[DOC-
|
|
59
|
-
// CIL[DOC-
|
|
60
|
-
// CIL[DOC-
|
|
61
|
-
// CIL[DOC-MICRO logic_summary="Retrieves carousel context and throws descriptive error if missing" notable_decisions="['context validation', 'developer-friendly error messages']"]
|
|
62
|
-
// CIL[DOC-CONFIDENCE pass="second" score="0.95" flags="none"]
|
|
152
|
+
// CIL[BEGIN stable_id="~/.framework/src/components/ui/carousel.tsx:carouselcontext:constant" type="constant" identity="carouselcontext" parent="~/.framework/src/components/ui/carousel.tsx:module_header:module_header"]
|
|
153
|
+
// CIL[DOC-MACRO purpose="Creates the React context for Carousel subcomponent communication"]
|
|
154
|
+
// CIL[DOC-RESPONSIBILITY responsibility="Initialize the CarouselContext with a null default"]
|
|
155
|
+
// CIL[DOC-CONTEXT module="carousel" layer="components/ui" related_files=".framework/src/components/ui/button.tsx,.framework/src/components/ui/carousel.tsx,.framework/src/lib/utils.ts"]
|
|
156
|
+
// CIL[DOC-CONTRACT inputs="none" outputs="CarouselContext constant" errors="none" side_effects="none"]
|
|
157
|
+
// CIL[DOC-MICRO logic_summary="Creates a React context typed to CarouselContextProps or null." notable_decisions="[]"]
|
|
158
|
+
// CIL[DOC-CONFIDENCE pass="second" score="0.90" flags="none"]
|
|
63
159
|
// CIL[DOC-STABILITY stability="stable"]
|
|
64
|
-
|
|
65
|
-
// CIL[DOC-VECTOR type="
|
|
66
|
-
// CIL[DOC-VECTOR type="
|
|
67
|
-
// CIL[DOC-VECTOR type="
|
|
160
|
+
const CarouselContext = React.createContext<CarouselContextProps | null>(null)
|
|
161
|
+
// CIL[DOC-VECTOR type="context" content="purpose='Creates the React context for Carousel subcomponent communication'; No verified external callers; imports: .framework/src/lib/utils.ts,.framework/src/components/ui/button.tsx"]
|
|
162
|
+
// CIL[DOC-VECTOR type="blast_radius" content="No direct caller data from CIL graph; local impact only"]
|
|
163
|
+
// CIL[DOC-VECTOR type="configuration" content="No environment or build configuration dependencies identified"]
|
|
164
|
+
// CIL[DOC-VECTOR type="constraint" content="Standard runtime; no special invariants documented"]
|
|
68
165
|
// CIL[DOC-VECTOR type="implementation_pattern" content="" status="pending_human_input"]
|
|
69
166
|
// CIL[DOC-VECTOR type="user_journey" content="" status="pending_human_input"]
|
|
167
|
+
// CIL[END stable_id="~/.framework/src/components/ui/carousel.tsx:carouselcontext:constant"]
|
|
168
|
+
|
|
169
|
+
// CIL[BEGIN stable_id="~/.framework/src/components/ui/carousel.tsx:usecarousel:function" type="function" identity="usecarousel" parent="~/.framework/src/components/ui/carousel.tsx:module_header:module_header"]
|
|
170
|
+
// CIL[DOC-MACRO purpose="Hook to access the Carousel context from subcomponents"]
|
|
171
|
+
// CIL[DOC-RESPONSIBILITY responsibility="Return the CarouselContext value or throw if used outside a Carousel"]
|
|
172
|
+
// CIL[DOC-CONTEXT module="carousel" layer="components/ui" related_files=".framework/src/components/ui/button.tsx,.framework/src/components/ui/carousel.tsx,.framework/src/lib/utils.ts"]
|
|
173
|
+
// CIL[DOC-CONTRACT inputs="none" outputs="CarouselContextProps" errors="Throws if context is null" side_effects="none"]
|
|
174
|
+
// CIL[DOC-MICRO logic_summary="Reads React context and throws an error when not inside a Carousel provider." notable_decisions="[]"]
|
|
175
|
+
// CIL[DOC-CONFIDENCE pass="second" score="0.90" flags="none"]
|
|
176
|
+
// CIL[DOC-STABILITY stability="stable"]
|
|
70
177
|
function useCarousel() {
|
|
71
178
|
const context = React.useContext(CarouselContext)
|
|
72
179
|
|
|
@@ -76,21 +183,22 @@ function useCarousel() {
|
|
|
76
183
|
|
|
77
184
|
return context
|
|
78
185
|
}
|
|
79
|
-
// CIL[
|
|
80
|
-
// CIL[
|
|
81
|
-
// CIL[DOC-
|
|
82
|
-
// CIL[DOC-
|
|
83
|
-
// CIL[DOC-CONTEXT module="ui.carousel" layer="component" related_files="[\"custom/apps/portal/pages/ContentPage.tsx\",\".framework/src/components/layout/Sidebar.tsx\",\".framework/src/components/ui/dialog.tsx\",\".framework/src/pages/admin/RolesPage.tsx\",\"\\\"]"]
|
|
84
|
-
// CIL[DOC-CONTRACT inputs="none" outputs="carousel container with context" errors="none" side_effects="provides context, manages state"]
|
|
85
|
-
// CIL[DOC-MICRO logic_summary="Integrates Embla Carousel, manages scroll state, handles keyboard events" notable_decisions="['embla integration', 'keyboard navigation', 'context provision pattern']"]
|
|
86
|
-
// CIL[DOC-CONFIDENCE pass="second" score="0.95" flags="none"]
|
|
87
|
-
// CIL[DOC-STABILITY stability="stable"]
|
|
88
|
-
// CIL[DOC-VECTOR type="context" content="Layer: component. Direct callers: 0. Direct calls: 0. Related files: custom/apps/portal/pages/ContentPage.tsx, .framework/src/components/layout/Sidebar.tsx, .framework/src/components/ui/dialog.tsx, .framework/src/pages/admin/RolesPage.tsx, \."]
|
|
89
|
-
// CIL[DOC-VECTOR type="blast_radius" content="Direct callers: 0. Total affected: 0."]
|
|
90
|
-
// CIL[DOC-VECTOR type="configuration" content="No configuration dependencies."]
|
|
91
|
-
// CIL[DOC-VECTOR type="constraint" content="No test paths identified."]
|
|
186
|
+
// CIL[DOC-VECTOR type="context" content="purpose='Hook to access the Carousel context from subcomponents'; No verified external callers; imports: .framework/src/lib/utils.ts,.framework/src/components/ui/button.tsx"]
|
|
187
|
+
// CIL[DOC-VECTOR type="blast_radius" content="No direct caller data from CIL graph; local impact only"]
|
|
188
|
+
// CIL[DOC-VECTOR type="configuration" content="No environment or build configuration dependencies identified"]
|
|
189
|
+
// CIL[DOC-VECTOR type="constraint" content="Standard runtime; no special invariants documented"]
|
|
92
190
|
// CIL[DOC-VECTOR type="implementation_pattern" content="" status="pending_human_input"]
|
|
93
191
|
// CIL[DOC-VECTOR type="user_journey" content="" status="pending_human_input"]
|
|
192
|
+
// CIL[END stable_id="~/.framework/src/components/ui/carousel.tsx:usecarousel:function"]
|
|
193
|
+
|
|
194
|
+
// CIL[BEGIN stable_id="~/.framework/src/components/ui/carousel.tsx:carousel:function" type="function" identity="carousel" parent="~/.framework/src/components/ui/carousel.tsx:module_header:module_header"]
|
|
195
|
+
// CIL[DOC-MACRO purpose="Main Carousel component that wires Embla and exposes context to children"]
|
|
196
|
+
// CIL[DOC-RESPONSIBILITY responsibility="Initialize the Embla carousel, track scrollability, handle keyboard input, and render the provider"]
|
|
197
|
+
// CIL[DOC-CONTEXT module="carousel" layer="components/ui" related_files=".framework/src/components/ui/button.tsx,.framework/src/components/ui/carousel.tsx,.framework/src/lib/utils.ts"]
|
|
198
|
+
// CIL[DOC-CONTRACT inputs="props: React.ComponentProps<'div'> & CarouselProps" outputs="JSX element with CarouselContext.Provider and a keyboard-handled container" errors="none" side_effects="Registers Embla select/reInit event handlers and keyboard event handling"]
|
|
199
|
+
// CIL[DOC-MICRO logic_summary="Creates an Embla instance, manages canScrollPrev/Next state, binds keyboard navigation, and passes values to context." notable_decisions="[]"]
|
|
200
|
+
// CIL[DOC-CONFIDENCE pass="second" score="0.90" flags="none"]
|
|
201
|
+
// CIL[DOC-STABILITY stability="stable"]
|
|
94
202
|
function Carousel({
|
|
95
203
|
orientation = "horizontal",
|
|
96
204
|
opts,
|
|
@@ -180,21 +288,22 @@ function Carousel({
|
|
|
180
288
|
</CarouselContext.Provider>
|
|
181
289
|
)
|
|
182
290
|
}
|
|
183
|
-
// CIL[
|
|
184
|
-
// CIL[
|
|
185
|
-
// CIL[DOC-
|
|
186
|
-
// CIL[DOC-
|
|
187
|
-
// CIL[DOC-CONTEXT module="ui.carousel" layer="component" related_files="[\".framework/src/components/layout/Sidebar.tsx\",\"custom/apps/portal/pages/ContentPage.tsx\",\".framework/functions/_shared/schema-utils.ts\",\".framework/src/components/ui/dialog.tsx\",\".framework/functions/_shared/principal.ts\",\"\\\"]"]
|
|
188
|
-
// CIL[DOC-CONTRACT inputs="none" outputs="scrollable content container" errors="none" side_effects="renders DOM"]
|
|
189
|
-
// CIL[DOC-MICRO logic_summary="Attaches carousel ref, applies orientation-specific flex layout" notable_decisions="['orientation-aware layout', 'ref attachment pattern']"]
|
|
190
|
-
// CIL[DOC-CONFIDENCE pass="second" score="0.95" flags="none"]
|
|
191
|
-
// CIL[DOC-STABILITY stability="stable"]
|
|
192
|
-
// CIL[DOC-VECTOR type="context" content="Layer: component. Direct callers: 1. Direct calls: 0. Related files: .framework/src/components/layout/Sidebar.tsx, custom/apps/portal/pages/ContentPage.tsx, .framework/functions/_shared/schema-utils.ts, .framework/src/components/ui/dialog.tsx, .framework/functions/_shared/principal.ts, \."]
|
|
193
|
-
// CIL[DOC-VECTOR type="blast_radius" content="Direct callers: 1. Total affected: 1."]
|
|
194
|
-
// CIL[DOC-VECTOR type="configuration" content="No configuration dependencies."]
|
|
195
|
-
// CIL[DOC-VECTOR type="constraint" content="No test paths identified."]
|
|
291
|
+
// CIL[DOC-VECTOR type="context" content="purpose='Main Carousel component that wires Embla and exposes context to children'; No verified external callers; imports: .framework/src/lib/utils.ts,.framework/src/components/ui/button.tsx"]
|
|
292
|
+
// CIL[DOC-VECTOR type="blast_radius" content="No direct caller data from CIL graph; local impact only"]
|
|
293
|
+
// CIL[DOC-VECTOR type="configuration" content="No environment or build configuration dependencies identified"]
|
|
294
|
+
// CIL[DOC-VECTOR type="constraint" content="Standard runtime; no special invariants documented"]
|
|
196
295
|
// CIL[DOC-VECTOR type="implementation_pattern" content="" status="pending_human_input"]
|
|
197
296
|
// CIL[DOC-VECTOR type="user_journey" content="" status="pending_human_input"]
|
|
297
|
+
// CIL[END stable_id="~/.framework/src/components/ui/carousel.tsx:carousel:function"]
|
|
298
|
+
|
|
299
|
+
// CIL[BEGIN stable_id="~/.framework/src/components/ui/carousel.tsx:carouselcontent:function" type="function" identity="carouselcontent" parent="~/.framework/src/components/ui/carousel.tsx:module_header:module_header"]
|
|
300
|
+
// CIL[DOC-MACRO purpose="Renders the scrollable viewport and track for carousel items"]
|
|
301
|
+
// CIL[DOC-RESPONSIBILITY responsibility="Apply the carousel ref and orientation styles to the content wrapper"]
|
|
302
|
+
// CIL[DOC-CONTEXT module="carousel" layer="components/ui" related_files=".framework/src/components/ui/button.tsx,.framework/src/components/ui/carousel.tsx,.framework/src/lib/utils.ts"]
|
|
303
|
+
// CIL[DOC-CONTRACT inputs="className, ...props: React.ComponentProps<'div'>" outputs="JSX element with overflow-hidden viewport and flex track" errors="none" side_effects="none"]
|
|
304
|
+
// CIL[DOC-MICRO logic_summary="Receives the Embla ref and orientation from context and renders the inner track with orientation-specific spacing." notable_decisions="[]"]
|
|
305
|
+
// CIL[DOC-CONFIDENCE pass="second" score="0.90" flags="none"]
|
|
306
|
+
// CIL[DOC-STABILITY stability="stable"]
|
|
198
307
|
function CarouselContent({ className, ...props }: React.ComponentProps<"div">) {
|
|
199
308
|
const { carouselRef, orientation } = useCarousel()
|
|
200
309
|
|
|
@@ -215,21 +324,22 @@ function CarouselContent({ className, ...props }: React.ComponentProps<"div">) {
|
|
|
215
324
|
</div>
|
|
216
325
|
)
|
|
217
326
|
}
|
|
218
|
-
// CIL[
|
|
219
|
-
// CIL[
|
|
220
|
-
// CIL[DOC-
|
|
221
|
-
// CIL[DOC-
|
|
222
|
-
// CIL[DOC-CONTEXT module="ui.carousel" layer="component" related_files="[\".framework/src/components/ui/dialog.tsx\",\".framework/functions/_shared/schema-utils.ts\",\".framework/functions/_shared/principal.ts\",\".framework/src/pages/admin/TypeDetailPage.tsx\",\".framework/src/pages/admin/IntegrationsPage.tsx\",\"\\\"]"]
|
|
223
|
-
// CIL[DOC-CONTRACT inputs="none" outputs="slide container element" errors="none" side_effects="renders DOM"]
|
|
224
|
-
// CIL[DOC-MICRO logic_summary="Applies orientation-specific padding and slide layout styling" notable_decisions="['orientation-aware spacing', 'accessibility roles']"]
|
|
225
|
-
// CIL[DOC-CONFIDENCE pass="second" score="0.95" flags="none"]
|
|
226
|
-
// CIL[DOC-STABILITY stability="stable"]
|
|
227
|
-
// CIL[DOC-VECTOR type="context" content="Layer: component. Direct callers: 0. Direct calls: 0. Related files: .framework/src/components/ui/dialog.tsx, .framework/functions/_shared/schema-utils.ts, .framework/functions/_shared/principal.ts, .framework/src/pages/admin/TypeDetailPage.tsx, .framework/src/pages/admin/IntegrationsPage.tsx, \."]
|
|
228
|
-
// CIL[DOC-VECTOR type="blast_radius" content="Direct callers: 0. Total affected: 0."]
|
|
229
|
-
// CIL[DOC-VECTOR type="configuration" content="No configuration dependencies."]
|
|
230
|
-
// CIL[DOC-VECTOR type="constraint" content="No test paths identified."]
|
|
327
|
+
// CIL[DOC-VECTOR type="context" content="purpose='Renders the scrollable viewport and track for carousel items'; No verified external callers; imports: .framework/src/lib/utils.ts,.framework/src/components/ui/button.tsx"]
|
|
328
|
+
// CIL[DOC-VECTOR type="blast_radius" content="No direct caller data from CIL graph; local impact only"]
|
|
329
|
+
// CIL[DOC-VECTOR type="configuration" content="No environment or build configuration dependencies identified"]
|
|
330
|
+
// CIL[DOC-VECTOR type="constraint" content="Standard runtime; no special invariants documented"]
|
|
231
331
|
// CIL[DOC-VECTOR type="implementation_pattern" content="" status="pending_human_input"]
|
|
232
332
|
// CIL[DOC-VECTOR type="user_journey" content="" status="pending_human_input"]
|
|
333
|
+
// CIL[END stable_id="~/.framework/src/components/ui/carousel.tsx:carouselcontent:function"]
|
|
334
|
+
|
|
335
|
+
// CIL[BEGIN stable_id="~/.framework/src/components/ui/carousel.tsx:carouselitem:function" type="function" identity="carouselitem" parent="~/.framework/src/components/ui/carousel.tsx:module_header:module_header"]
|
|
336
|
+
// CIL[DOC-MACRO purpose="Renders a single slide inside the Carousel track"]
|
|
337
|
+
// CIL[DOC-RESPONSIBILITY responsibility="Apply slide role and orientation-specific padding to each item"]
|
|
338
|
+
// CIL[DOC-CONTEXT module="carousel" layer="components/ui" related_files=".framework/src/components/ui/button.tsx,.framework/src/components/ui/carousel.tsx,.framework/src/lib/utils.ts"]
|
|
339
|
+
// CIL[DOC-CONTRACT inputs="className, ...props: React.ComponentProps<'div'>" outputs="JSX slide element" errors="none" side_effects="none"]
|
|
340
|
+
// CIL[DOC-MICRO logic_summary="Renders a group with aria-roledescription 'slide' and orientation padding." notable_decisions="[]"]
|
|
341
|
+
// CIL[DOC-CONFIDENCE pass="second" score="0.90" flags="none"]
|
|
342
|
+
// CIL[DOC-STABILITY stability="stable"]
|
|
233
343
|
function CarouselItem({ className, ...props }: React.ComponentProps<"div">) {
|
|
234
344
|
const { orientation } = useCarousel()
|
|
235
345
|
|
|
@@ -247,21 +357,22 @@ function CarouselItem({ className, ...props }: React.ComponentProps<"div">) {
|
|
|
247
357
|
/>
|
|
248
358
|
)
|
|
249
359
|
}
|
|
250
|
-
// CIL[
|
|
251
|
-
// CIL[
|
|
252
|
-
// CIL[DOC-
|
|
253
|
-
// CIL[DOC-
|
|
254
|
-
// CIL[DOC-CONTEXT module="ui.carousel" layer="component" related_files="[]"]
|
|
255
|
-
// CIL[DOC-CONTRACT inputs="none" outputs="navigation button component" errors="none" side_effects="renders DOM, triggers scroll"]
|
|
256
|
-
// CIL[DOC-MICRO logic_summary="Applies orientation-specific positioning and manages disabled state" notable_decisions="['orientation-aware positioning', 'state management integration']"]
|
|
257
|
-
// CIL[DOC-CONFIDENCE pass="second" score="0.95" flags="none"]
|
|
258
|
-
// CIL[DOC-STABILITY stability="stable"]
|
|
259
|
-
// CIL[DOC-VECTOR type="context" content="Layer: component. Direct callers: 0. Direct calls: 0. Related files: none."]
|
|
260
|
-
// CIL[DOC-VECTOR type="blast_radius" content="Direct callers: 0. Total affected: 0."]
|
|
261
|
-
// CIL[DOC-VECTOR type="configuration" content="No configuration dependencies."]
|
|
262
|
-
// CIL[DOC-VECTOR type="constraint" content="No test paths identified."]
|
|
360
|
+
// CIL[DOC-VECTOR type="context" content="purpose='Renders a single slide inside the Carousel track'; No verified external callers; imports: .framework/src/lib/utils.ts,.framework/src/components/ui/button.tsx"]
|
|
361
|
+
// CIL[DOC-VECTOR type="blast_radius" content="No direct caller data from CIL graph; local impact only"]
|
|
362
|
+
// CIL[DOC-VECTOR type="configuration" content="No environment or build configuration dependencies identified"]
|
|
363
|
+
// CIL[DOC-VECTOR type="constraint" content="Standard runtime; no special invariants documented"]
|
|
263
364
|
// CIL[DOC-VECTOR type="implementation_pattern" content="" status="pending_human_input"]
|
|
264
365
|
// CIL[DOC-VECTOR type="user_journey" content="" status="pending_human_input"]
|
|
366
|
+
// CIL[END stable_id="~/.framework/src/components/ui/carousel.tsx:carouselitem:function"]
|
|
367
|
+
|
|
368
|
+
// CIL[BEGIN stable_id="~/.framework/src/components/ui/carousel.tsx:carouselprevious:function" type="function" identity="carouselprevious" parent="~/.framework/src/components/ui/carousel.tsx:module_header:module_header"]
|
|
369
|
+
// CIL[DOC-MACRO purpose="Renders the previous-slide control button"]
|
|
370
|
+
// CIL[DOC-RESPONSIBILITY responsibility="Scroll the carousel to the previous item when enabled"]
|
|
371
|
+
// CIL[DOC-CONTEXT module="carousel" layer="components/ui" related_files=".framework/src/components/ui/button.tsx,.framework/src/components/ui/carousel.tsx,.framework/src/lib/utils.ts"]
|
|
372
|
+
// CIL[DOC-CONTRACT inputs="props: React.ComponentProps<typeof Button> with optional variant, size, className" outputs="Button element" errors="none" side_effects="Calls scrollPrev on click"]
|
|
373
|
+
// CIL[DOC-MICRO logic_summary="Displays a ChevronLeft button positioned absolutely; disabled when no previous slide is available." notable_decisions="[]"]
|
|
374
|
+
// CIL[DOC-CONFIDENCE pass="second" score="0.90" flags="none"]
|
|
375
|
+
// CIL[DOC-STABILITY stability="stable"]
|
|
265
376
|
function CarouselPrevious({
|
|
266
377
|
className,
|
|
267
378
|
variant = "outline",
|
|
@@ -291,21 +402,22 @@ function CarouselPrevious({
|
|
|
291
402
|
</Button>
|
|
292
403
|
)
|
|
293
404
|
}
|
|
294
|
-
// CIL[
|
|
295
|
-
// CIL[
|
|
296
|
-
// CIL[DOC-
|
|
297
|
-
// CIL[DOC-
|
|
298
|
-
// CIL[DOC-CONTEXT module="ui.carousel" layer="component" related_files="[]"]
|
|
299
|
-
// CIL[DOC-CONTRACT inputs="none" outputs="navigation button component" errors="none" side_effects="renders DOM, triggers scroll"]
|
|
300
|
-
// CIL[DOC-MICRO logic_summary="Applies orientation-specific positioning and manages disabled state" notable_decisions="['orientation-aware positioning', 'state management integration']"]
|
|
301
|
-
// CIL[DOC-CONFIDENCE pass="second" score="0.95" flags="none"]
|
|
302
|
-
// CIL[DOC-STABILITY stability="stable"]
|
|
303
|
-
// CIL[DOC-VECTOR type="context" content="Layer: component. Direct callers: 0. Direct calls: 0. Related files: none."]
|
|
304
|
-
// CIL[DOC-VECTOR type="blast_radius" content="Direct callers: 0. Total affected: 0."]
|
|
305
|
-
// CIL[DOC-VECTOR type="configuration" content="No configuration dependencies."]
|
|
306
|
-
// CIL[DOC-VECTOR type="constraint" content="No test paths identified."]
|
|
405
|
+
// CIL[DOC-VECTOR type="context" content="purpose='Renders the previous-slide control button'; No verified external callers; imports: .framework/src/lib/utils.ts,.framework/src/components/ui/button.tsx"]
|
|
406
|
+
// CIL[DOC-VECTOR type="blast_radius" content="No direct caller data from CIL graph; local impact only"]
|
|
407
|
+
// CIL[DOC-VECTOR type="configuration" content="No environment or build configuration dependencies identified"]
|
|
408
|
+
// CIL[DOC-VECTOR type="constraint" content="Standard runtime; no special invariants documented"]
|
|
307
409
|
// CIL[DOC-VECTOR type="implementation_pattern" content="" status="pending_human_input"]
|
|
308
410
|
// CIL[DOC-VECTOR type="user_journey" content="" status="pending_human_input"]
|
|
411
|
+
// CIL[END stable_id="~/.framework/src/components/ui/carousel.tsx:carouselprevious:function"]
|
|
412
|
+
|
|
413
|
+
// CIL[BEGIN stable_id="~/.framework/src/components/ui/carousel.tsx:carouselnext:function" type="function" identity="carouselnext" parent="~/.framework/src/components/ui/carousel.tsx:module_header:module_header"]
|
|
414
|
+
// CIL[DOC-MACRO purpose="Renders the next-slide control button"]
|
|
415
|
+
// CIL[DOC-RESPONSIBILITY responsibility="Scroll the carousel to the next item when enabled"]
|
|
416
|
+
// CIL[DOC-CONTEXT module="carousel" layer="components/ui" related_files=".framework/src/components/ui/button.tsx,.framework/src/components/ui/carousel.tsx,.framework/src/lib/utils.ts"]
|
|
417
|
+
// CIL[DOC-CONTRACT inputs="props: React.ComponentProps<typeof Button> with optional variant, size, className" outputs="Button element" errors="none" side_effects="Calls scrollNext on click"]
|
|
418
|
+
// CIL[DOC-MICRO logic_summary="Displays a ChevronRight button positioned absolutely; disabled when no next slide is available." notable_decisions="[]"]
|
|
419
|
+
// CIL[DOC-CONFIDENCE pass="second" score="0.90" flags="none"]
|
|
420
|
+
// CIL[DOC-STABILITY stability="stable"]
|
|
309
421
|
function CarouselNext({
|
|
310
422
|
className,
|
|
311
423
|
variant = "outline",
|
|
@@ -335,21 +447,22 @@ function CarouselNext({
|
|
|
335
447
|
</Button>
|
|
336
448
|
)
|
|
337
449
|
}
|
|
338
|
-
// CIL[
|
|
339
|
-
// CIL[
|
|
340
|
-
// CIL[DOC-
|
|
341
|
-
// CIL[DOC-
|
|
342
|
-
// CIL[DOC-CONTEXT module="ui.carousel" layer="component" related_files="[\"custom/apps/portal/pages/ContentPage.tsx\",\"custom/apps/cortex/pages/operations/OperationsDashboard.tsx\",\".framework/src/components/layout/Sidebar.tsx\",\".framework/src/components/ui/dialog.tsx\",\".framework/src/pages/admin/TypeDetailPage.tsx\"]"]
|
|
343
|
-
// CIL[DOC-CONTRACT inputs="none" outputs="carousel components, types, and hook" errors="none" side_effects="module exports"]
|
|
344
|
-
// CIL[DOC-MICRO logic_summary="Exports all carousel components, types, and utilities for consumption" notable_decisions="['comprehensive export strategy', 'type exports included', 'hook exports']"]
|
|
345
|
-
// CIL[DOC-CONFIDENCE pass="second" score="0.95" flags="none"]
|
|
346
|
-
// CIL[DOC-STABILITY stability="stable"]
|
|
347
|
-
// CIL[DOC-VECTOR type="context" content="Layer: component. Direct callers: 0. Direct calls: 0. Related files: custom/apps/portal/pages/ContentPage.tsx, custom/apps/cortex/pages/operations/OperationsDashboard.tsx, .framework/src/components/layout/Sidebar.tsx, .framework/src/components/ui/dialog.tsx, .framework/src/pages/admin/TypeDetailPage.tsx."]
|
|
348
|
-
// CIL[DOC-VECTOR type="blast_radius" content="Direct callers: 0. Total affected: 0."]
|
|
349
|
-
// CIL[DOC-VECTOR type="configuration" content="No configuration dependencies."]
|
|
350
|
-
// CIL[DOC-VECTOR type="constraint" content="No test paths identified."]
|
|
450
|
+
// CIL[DOC-VECTOR type="context" content="purpose='Renders the next-slide control button'; No verified external callers; imports: .framework/src/lib/utils.ts,.framework/src/components/ui/button.tsx"]
|
|
451
|
+
// CIL[DOC-VECTOR type="blast_radius" content="No direct caller data from CIL graph; local impact only"]
|
|
452
|
+
// CIL[DOC-VECTOR type="configuration" content="No environment or build configuration dependencies identified"]
|
|
453
|
+
// CIL[DOC-VECTOR type="constraint" content="Standard runtime; no special invariants documented"]
|
|
351
454
|
// CIL[DOC-VECTOR type="implementation_pattern" content="" status="pending_human_input"]
|
|
352
455
|
// CIL[DOC-VECTOR type="user_journey" content="" status="pending_human_input"]
|
|
456
|
+
// CIL[END stable_id="~/.framework/src/components/ui/carousel.tsx:carouselnext:function"]
|
|
457
|
+
|
|
458
|
+
// CIL[BEGIN stable_id="~/.framework/src/components/ui/carousel.tsx:export_list:export" type="export" identity="export_list" parent="~/.framework/src/components/ui/carousel.tsx:module_header:module_header"]
|
|
459
|
+
// CIL[DOC-MACRO purpose="Re-exports the public Carousel component surface"]
|
|
460
|
+
// CIL[DOC-RESPONSIBILITY responsibility="Expose Carousel, subcomponents, hooks, and types for module consumers"]
|
|
461
|
+
// CIL[DOC-CONTEXT module="carousel" layer="components/ui" related_files=".framework/src/components/ui/button.tsx,.framework/src/components/ui/carousel.tsx,.framework/src/lib/utils.ts"]
|
|
462
|
+
// CIL[DOC-CONTRACT inputs="none" outputs="Named exports of component and type symbols" errors="none" side_effects="none"]
|
|
463
|
+
// CIL[DOC-MICRO logic_summary="Lists all public identifiers for external consumers." notable_decisions="[]"]
|
|
464
|
+
// CIL[DOC-CONFIDENCE pass="second" score="0.90" flags="none"]
|
|
465
|
+
// CIL[DOC-STABILITY stability="stable"]
|
|
353
466
|
export {
|
|
354
467
|
type CarouselApi,
|
|
355
468
|
Carousel,
|
|
@@ -359,4 +472,10 @@ export {
|
|
|
359
472
|
CarouselNext,
|
|
360
473
|
useCarousel,
|
|
361
474
|
}
|
|
362
|
-
// CIL[
|
|
475
|
+
// CIL[DOC-VECTOR type="context" content="purpose='Re-exports the public Carousel component surface'; No verified external callers; imports: .framework/src/lib/utils.ts,.framework/src/components/ui/button.tsx"]
|
|
476
|
+
// CIL[DOC-VECTOR type="blast_radius" content="No direct caller data from CIL graph; local impact only"]
|
|
477
|
+
// CIL[DOC-VECTOR type="configuration" content="No environment or build configuration dependencies identified"]
|
|
478
|
+
// CIL[DOC-VECTOR type="constraint" content="Standard runtime; no special invariants documented"]
|
|
479
|
+
// CIL[DOC-VECTOR type="implementation_pattern" content="" status="pending_human_input"]
|
|
480
|
+
// CIL[DOC-VECTOR type="user_journey" content="" status="pending_human_input"]
|
|
481
|
+
// CIL[END stable_id="~/.framework/src/components/ui/carousel.tsx:export_list:export"]
|