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,27 +1,35 @@
|
|
|
1
|
+
// CIL[BEGIN stable_id="~/.framework/src/components/ui/button.tsx:module_header:module_header" type="module_header" identity="module_header" parent="~/.framework/src/components/ui/button.tsx"]
|
|
2
|
+
// CIL[DOC-MACRO purpose="Declare module-level imports and dependencies for the Button component"]
|
|
3
|
+
// CIL[DOC-RESPONSIBILITY responsibility="Import React, class-variance-authority, radix Slot, and the cn utility for the Button component"]
|
|
4
|
+
// CIL[DOC-CONTEXT module=".framework/src/components/ui/button.tsx" layer="ui" related_files=".framework/src/lib/utils.ts"]
|
|
5
|
+
// CIL[DOC-CONTRACT inputs="none" outputs="Imported React, cva, Slot and cn bindings available to the module" errors="Module load fails if a peer dependency is missing" side_effects="none"]
|
|
6
|
+
// CIL[DOC-MICRO logic_summary="Imports React, cva/VariantProps, Slot, and the cn Tailwind class merge utility" notable_decisions="Uses cva for variant-driven styling and cn for conditional class merging"]
|
|
7
|
+
// CIL[DOC-CONFIDENCE pass="second" score="0.85" flags="[]"]
|
|
8
|
+
// CIL[DOC-STABILITY stable]
|
|
9
|
+
// CIL[DOC-AUDIENCE audience="component developers"]
|
|
1
10
|
|
|
2
|
-
|
|
3
|
-
|
|
4
|
-
// CIL[BEGIN chunk_id="button_module_header_1783881474" type="module_header" identity="module_header" parent="none"]
|
|
5
|
-
// CIL[DOC-MACRO purpose="Button component with comprehensive variant system using CVA"]
|
|
6
|
-
// CIL[DOC-RESPONSIBILITY responsibility="Define button styling variants and component infrastructure"]
|
|
7
|
-
// CIL[DOC-CONTEXT module="ui.button" layer="component" related_files="[\".framework/src/components/ui/dialog.tsx\",\".framework/src/components/ui/table-primitives.tsx\",\".framework/src/pages/admin/RolesPage.tsx\",\"custom/apps/portal/pages/ContentPage.tsx\",\"\\\"]"]
|
|
8
|
-
// CIL[DOC-CONTRACT inputs="none" outputs="buttonVariants, React, CVA, Slot" errors="none" side_effects="none"]
|
|
9
|
-
// CIL[DOC-MICRO logic_summary="Creates comprehensive button variant system with theme support and accessibility" notable_decisions="['class-variance-authority pattern', 'extensive variant system', 'icon-aware sizing']"]
|
|
10
|
-
// CIL[DOC-CONFIDENCE pass="second" score="0.95" flags="none"]
|
|
11
|
-
// CIL[DOC-STABILITY stability="stable"]
|
|
12
|
-
// CIL[DOC-AUDIENCE audience="developer"]
|
|
13
|
-
// CIL[DOC-VECTOR type="context" content="Layer: component. Direct callers: 0. Direct calls: 0. Related files: .framework/src/components/ui/dialog.tsx, .framework/src/components/ui/table-primitives.tsx, .framework/src/pages/admin/RolesPage.tsx, custom/apps/portal/pages/ContentPage.tsx, \."]
|
|
14
|
-
// CIL[DOC-VECTOR type="blast_radius" content="Direct callers: 0. Total affected: 0."]
|
|
15
|
-
// CIL[DOC-VECTOR type="configuration" content="No configuration dependencies."]
|
|
16
|
-
// CIL[DOC-VECTOR type="constraint" content="No test paths identified."]
|
|
17
|
-
// CIL[DOC-VECTOR type="implementation_pattern" content="" status="pending_human_input"]
|
|
18
|
-
// CIL[DOC-VECTOR type="user_journey" content="" status="pending_human_input"]
|
|
19
11
|
import * as React from "react"
|
|
20
12
|
import { cva, type VariantProps } from "class-variance-authority"
|
|
21
13
|
import { Slot } from "radix-ui"
|
|
22
14
|
|
|
23
15
|
import { cn } from "@/lib/utils"
|
|
16
|
+
// CIL[DOC-VECTOR type="context" content="purpose='Declare module-level imports and dependencies for the Button component'; No verified external callers; imports: .framework/src/lib/utils.ts"]
|
|
17
|
+
// CIL[DOC-VECTOR type="blast_radius" content="No direct caller data from CIL graph; local impact only"]
|
|
18
|
+
// CIL[DOC-VECTOR type="configuration" content="No environment or build configuration dependencies identified"]
|
|
19
|
+
// CIL[DOC-VECTOR type="constraint" content="Standard runtime; no special invariants documented"]
|
|
20
|
+
// CIL[DOC-VECTOR type="implementation_pattern" content="" status="pending_human_input"]
|
|
21
|
+
// CIL[DOC-VECTOR type="user_journey" content="" status="pending_human_input"]
|
|
22
|
+
// CIL[END stable_id="~/.framework/src/components/ui/button.tsx:module_header:module_header"]
|
|
24
23
|
|
|
24
|
+
// CIL[BEGIN stable_id="~/.framework/src/components/ui/button.tsx:buttonVariants:constant" type="constant" identity="buttonVariants" parent="~/.framework/src/components/ui/button.tsx"]
|
|
25
|
+
// CIL[DOC-MACRO purpose="Define the CVA-based style variants for the Button component"]
|
|
26
|
+
// CIL[DOC-RESPONSIBILITY responsibility="Provide a class-variance-authority configuration that defines size, variant, and default variants for Button"]
|
|
27
|
+
// CIL[DOC-CONTEXT module=".framework/src/components/ui/button.tsx" layer="ui" related_files=".framework/src/components/ui/button.tsx,.framework/src/lib/utils.ts"]
|
|
28
|
+
// CIL[DOC-CONTRACT inputs="none" outputs="buttonVariants function that returns Tailwind classes for given variant and size" errors="none" side_effects="none"]
|
|
29
|
+
// CIL[DOC-MICRO logic_summary="Configures cva with a base class, variant and size maps, and default variants" notable_decisions="Uses Tailwind tokens such as bg-primary and border-border; includes icon and state modifier sizes"]
|
|
30
|
+
// CIL[DOC-CONFIDENCE pass="second" score="0.85" flags="[]"]
|
|
31
|
+
// CIL[DOC-STABILITY stable]
|
|
32
|
+
// CIL[DOC-AUDIENCE audience="component developers"]
|
|
25
33
|
const buttonVariants = cva(
|
|
26
34
|
"group/button inline-flex shrink-0 items-center justify-center rounded-md border border-transparent bg-clip-padding text-xs/relaxed font-medium whitespace-nowrap transition-all outline-none select-none focus-visible:border-ring focus-visible:ring-2 focus-visible:ring-ring/30 active:not-aria-[haspopup]:translate-y-px disabled:pointer-events-none disabled:opacity-50 aria-invalid:border-destructive aria-invalid:ring-2 aria-invalid:ring-destructive/20 dark:aria-invalid:border-destructive/50 dark:aria-invalid:ring-destructive/40 [&_svg]:pointer-events-none [&_svg]:shrink-0 [&_svg:not([class*='size-'])]:size-4",
|
|
27
35
|
{
|
|
@@ -56,31 +64,36 @@ const buttonVariants = cva(
|
|
|
56
64
|
},
|
|
57
65
|
}
|
|
58
66
|
)
|
|
59
|
-
// CIL[
|
|
60
|
-
// CIL[
|
|
61
|
-
// CIL[DOC-
|
|
62
|
-
// CIL[DOC-
|
|
63
|
-
// CIL[DOC-CONTEXT module="ui.button" layer="component" related_files="[\"custom/apps/portal/pages/ContentPage.tsx\",\".framework/src/components/ui/dialog.tsx\",\".framework/src/components/ui/table-primitives.tsx\",\".framework/src/pages/admin/RolesPage.tsx\",\"\\\"]"]
|
|
64
|
-
// CIL[DOC-CONTRACT inputs="none" outputs="styled button or Slot component" errors="none" side_effects="renders DOM"]
|
|
65
|
-
// CIL[DOC-MICRO logic_summary="Uses Radix Slot for composition, applies CVA variants, sets data attributes" notable_decisions="['composition pattern', 'CVA integration', 'data attributes for styling']"]
|
|
66
|
-
// CIL[DOC-CONFIDENCE pass="second" score="0.95" flags="none"]
|
|
67
|
-
// CIL[DOC-STABILITY stability="stable"]
|
|
68
|
-
// CIL[DOC-VECTOR type="context" content="Layer: component. Direct callers: 2. Direct calls: 0. Related files: custom/apps/portal/pages/ContentPage.tsx, .framework/src/components/ui/dialog.tsx, .framework/src/components/ui/table-primitives.tsx, .framework/src/pages/admin/RolesPage.tsx, \."]
|
|
69
|
-
// CIL[DOC-VECTOR type="blast_radius" content="Direct callers: 2. Total affected: 2."]
|
|
70
|
-
// CIL[DOC-VECTOR type="configuration" content="No configuration dependencies."]
|
|
71
|
-
// CIL[DOC-VECTOR type="constraint" content="No test paths identified."]
|
|
67
|
+
// CIL[DOC-VECTOR type="context" content="purpose='Define the CVA-based style variants for the Button component'; No verified external callers; imports: .framework/src/lib/utils.ts"]
|
|
68
|
+
// CIL[DOC-VECTOR type="blast_radius" content="No direct caller data from CIL graph; local impact only"]
|
|
69
|
+
// CIL[DOC-VECTOR type="configuration" content="No environment or build configuration dependencies identified"]
|
|
70
|
+
// CIL[DOC-VECTOR type="constraint" content="Standard runtime; no special invariants documented"]
|
|
72
71
|
// CIL[DOC-VECTOR type="implementation_pattern" content="" status="pending_human_input"]
|
|
73
72
|
// CIL[DOC-VECTOR type="user_journey" content="" status="pending_human_input"]
|
|
74
|
-
|
|
73
|
+
// CIL[END stable_id="~/.framework/src/components/ui/button.tsx:buttonVariants:constant"]
|
|
74
|
+
|
|
75
|
+
// CIL[BEGIN stable_id="~/.framework/src/components/ui/button.tsx:Button:component" type="component" identity="Button" parent="~/.framework/src/components/ui/button.tsx"]
|
|
76
|
+
// CIL[DOC-MACRO purpose="Render a flexible Button component with CVA variants and optional child slot"]
|
|
77
|
+
// CIL[DOC-RESPONSIBILITY responsibility="Render a styled button or polymorphic Slot wrapper using the configured size and variant"]
|
|
78
|
+
// CIL[DOC-CONTEXT module=".framework/src/components/ui/button.tsx" layer="ui" related_files=".framework/src/components/ui/button.tsx,.framework/src/lib/utils.ts"]
|
|
79
|
+
// CIL[DOC-CONTRACT inputs="className, variant, size, asChild, ref, standard button props" outputs="React element with merged CVA classes and data attributes" errors="none" side_effects="none"]
|
|
80
|
+
// CIL[DOC-MICRO logic_summary="Chooses Slot.Root or 'button' based on asChild; merges className with buttonVariants output and spreads remaining props" notable_decisions="forwardRef is required — Radix primitives (DropdownMenuTrigger/PopoverTrigger/DialogTrigger/TooltipTrigger) attach their anchor ref through asChild; a plain function component silently drops it under React 18 and the floating content positions at 0,0 off-screen"]
|
|
81
|
+
// CIL[DOC-CONFIDENCE pass="second" score="0.90" flags="[]"]
|
|
82
|
+
// CIL[DOC-STABILITY stable]
|
|
83
|
+
// CIL[DOC-AUDIENCE audience="component developers"]
|
|
84
|
+
const Button = React.forwardRef<
|
|
85
|
+
HTMLButtonElement,
|
|
86
|
+
React.ComponentProps<"button"> &
|
|
87
|
+
VariantProps<typeof buttonVariants> & {
|
|
88
|
+
asChild?: boolean
|
|
89
|
+
}
|
|
90
|
+
>(function Button({
|
|
75
91
|
className,
|
|
76
92
|
variant = "default",
|
|
77
93
|
size = "default",
|
|
78
94
|
asChild = false,
|
|
79
95
|
...props
|
|
80
|
-
}
|
|
81
|
-
VariantProps<typeof buttonVariants> & {
|
|
82
|
-
asChild?: boolean
|
|
83
|
-
}) {
|
|
96
|
+
}, ref) {
|
|
84
97
|
const Comp = asChild ? Slot.Root : "button"
|
|
85
98
|
|
|
86
99
|
return (
|
|
@@ -89,24 +102,32 @@ function Button({
|
|
|
89
102
|
data-variant={variant}
|
|
90
103
|
data-size={size}
|
|
91
104
|
className={cn(buttonVariants({ variant, size, className }))}
|
|
105
|
+
ref={ref}
|
|
92
106
|
{...props}
|
|
93
107
|
/>
|
|
94
108
|
)
|
|
95
|
-
}
|
|
96
|
-
// CIL[
|
|
97
|
-
// CIL[
|
|
98
|
-
// CIL[DOC-
|
|
99
|
-
// CIL[DOC-
|
|
100
|
-
// CIL[DOC-CONTEXT module="ui.button" layer="component" related_files="[\"custom/apps/portal/pages/ContentPage.tsx\",\".framework/src/components/ui/dialog.tsx\",\".framework/src/components/ui/table-primitives.tsx\",\"custom/apps/cortex/pages/operations/OperationsDashboard.tsx\",\"\\\"]"]
|
|
101
|
-
// CIL[DOC-CONTRACT inputs="none" outputs="Button component and buttonVariants" errors="none" side_effects="module exports"]
|
|
102
|
-
// CIL[DOC-MICRO logic_summary="Exports main Button component and buttonVariants for customization" notable_decisions="['export variants for customization', 'named exports pattern']"]
|
|
103
|
-
// CIL[DOC-CONFIDENCE pass="second" score="0.95" flags="none"]
|
|
104
|
-
// CIL[DOC-STABILITY stability="stable"]
|
|
105
|
-
// 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/ui/dialog.tsx, .framework/src/components/ui/table-primitives.tsx, custom/apps/cortex/pages/operations/OperationsDashboard.tsx, \."]
|
|
106
|
-
// CIL[DOC-VECTOR type="blast_radius" content="Direct callers: 0. Total affected: 0."]
|
|
107
|
-
// CIL[DOC-VECTOR type="configuration" content="No configuration dependencies."]
|
|
108
|
-
// CIL[DOC-VECTOR type="constraint" content="No test paths identified."]
|
|
109
|
+
})
|
|
110
|
+
// CIL[DOC-VECTOR type="context" content="purpose='Render a flexible Button component with CVA variants and optional child slot'; No verified external callers; imports: .framework/src/lib/utils.ts"]
|
|
111
|
+
// CIL[DOC-VECTOR type="blast_radius" content="No direct caller data from CIL graph; local impact only"]
|
|
112
|
+
// CIL[DOC-VECTOR type="configuration" content="No environment or build configuration dependencies identified"]
|
|
113
|
+
// CIL[DOC-VECTOR type="constraint" content="Standard runtime; no special invariants documented"]
|
|
109
114
|
// CIL[DOC-VECTOR type="implementation_pattern" content="" status="pending_human_input"]
|
|
110
115
|
// CIL[DOC-VECTOR type="user_journey" content="" status="pending_human_input"]
|
|
116
|
+
// CIL[END stable_id="~/.framework/src/components/ui/button.tsx:Button:component"]
|
|
117
|
+
// CIL[BEGIN stable_id="~/.framework/src/components/ui/button.tsx:exports:variable" type="variable" identity="exports" parent="~/.framework/src/components/ui/button.tsx"]
|
|
118
|
+
// CIL[DOC-MACRO purpose="Export the Button component and buttonVariants helper for consumers"]
|
|
119
|
+
// CIL[DOC-RESPONSIBILITY responsibility="Make Button and buttonVariants available to other modules"]
|
|
120
|
+
// CIL[DOC-CONTEXT module=".framework/src/components/ui/button.tsx" layer="ui" related_files=".framework/src/components/ui/button.tsx,.framework/src/lib/utils.ts"]
|
|
121
|
+
// CIL[DOC-CONTRACT inputs="none" outputs="Named exports Button and buttonVariants" errors="none" side_effects="none"]
|
|
122
|
+
// CIL[DOC-MICRO logic_summary="Re-exports the Button component and buttonVariants constant from this module" notable_decisions="Named exports allow tree-shaking and explicit imports"]
|
|
123
|
+
// CIL[DOC-CONFIDENCE pass="second" score="0.85" flags="[]"]
|
|
124
|
+
// CIL[DOC-STABILITY stable]
|
|
125
|
+
// CIL[DOC-AUDIENCE audience="component developers"]
|
|
111
126
|
export { Button, buttonVariants }
|
|
112
|
-
// CIL[
|
|
127
|
+
// CIL[DOC-VECTOR type="context" content="purpose='Export the Button component and buttonVariants helper for consumers'; No verified external callers; imports: .framework/src/lib/utils.ts"]
|
|
128
|
+
// CIL[DOC-VECTOR type="blast_radius" content="No direct caller data from CIL graph; local impact only"]
|
|
129
|
+
// CIL[DOC-VECTOR type="configuration" content="No environment or build configuration dependencies identified"]
|
|
130
|
+
// CIL[DOC-VECTOR type="constraint" content="Standard runtime; no special invariants documented"]
|
|
131
|
+
// CIL[DOC-VECTOR type="implementation_pattern" content="" status="pending_human_input"]
|
|
132
|
+
// CIL[DOC-VECTOR type="user_journey" content="" status="pending_human_input"]
|
|
133
|
+
// CIL[END stable_id="~/.framework/src/components/ui/button.tsx:exports:variable"]
|
|
@@ -1,24 +1,29 @@
|
|
|
1
|
-
|
|
2
|
-
|
|
3
|
-
|
|
4
|
-
|
|
5
|
-
// CIL[
|
|
6
|
-
// CIL[DOC-
|
|
7
|
-
// CIL[DOC-
|
|
8
|
-
// CIL[DOC-CONTEXT module="ui.calendar" 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\",\"\\\"]"]
|
|
9
|
-
// CIL[DOC-CONTRACT inputs="none" outputs="React, DayPicker, Button, icons" errors="none" side_effects="none"]
|
|
10
|
-
// CIL[DOC-MICRO logic_summary="Imports calendar library dependencies and UI components for calendar implementation" notable_decisions="['react-day-picker integration', 'custom button integration', 'lucide icons']"]
|
|
11
|
-
// CIL[DOC-CONFIDENCE pass="second" score="0.95" flags="none"]
|
|
1
|
+
// CIL[BEGIN stable_id="~/.framework/src/components/ui/calendar.tsx:module_directive:module_directive" type="module_directive" identity="module_directive" parent=""]
|
|
2
|
+
// CIL[DOC-MACRO purpose="Marks this module as client-side React code for the Next.js app router."]
|
|
3
|
+
// CIL[DOC-RESPONSIBILITY responsibility="Sets the 'use client' directive at the top of the file."]
|
|
4
|
+
// CIL[DOC-CONTEXT module="calendar" layer="ui" related_files=".framework/src/components/ui/button.tsx,.framework/src/components/ui/calendar.tsx,.framework/src/lib/utils.ts"]
|
|
5
|
+
// CIL[DOC-CONTRACT inputs="none" outputs="client directive" errors="none" side_effects="none"]
|
|
6
|
+
// CIL[DOC-MICRO logic_summary="Contains the 'use client' directive only." notable_decisions="[]"]
|
|
7
|
+
// CIL[DOC-CONFIDENCE pass="second" score="0.90" flags="none"]
|
|
12
8
|
// CIL[DOC-STABILITY stability="stable"]
|
|
13
|
-
|
|
14
|
-
// CIL[DOC-VECTOR type="context" content="
|
|
15
|
-
// CIL[DOC-VECTOR type="blast_radius" content="
|
|
16
|
-
// CIL[DOC-VECTOR type="configuration" content="No configuration dependencies
|
|
17
|
-
// CIL[DOC-VECTOR type="constraint" content="
|
|
9
|
+
"use client"
|
|
10
|
+
// CIL[DOC-VECTOR type="context" content="purpose='Marks this module as client-side React code for the Next.js app router.'; No verified external callers; imports: .framework/src/lib/utils.ts,.framework/src/components/ui/button.tsx"]
|
|
11
|
+
// CIL[DOC-VECTOR type="blast_radius" content="No direct caller data from CIL graph; local impact only"]
|
|
12
|
+
// CIL[DOC-VECTOR type="configuration" content="No environment or build configuration dependencies identified"]
|
|
13
|
+
// CIL[DOC-VECTOR type="constraint" content="Standard runtime; no special invariants documented"]
|
|
18
14
|
// CIL[DOC-VECTOR type="implementation_pattern" content="" status="pending_human_input"]
|
|
19
15
|
// CIL[DOC-VECTOR type="user_journey" content="" status="pending_human_input"]
|
|
20
|
-
|
|
16
|
+
// CIL[END stable_id="~/.framework/src/components/ui/calendar.tsx:module_directive:module_directive"]
|
|
21
17
|
|
|
18
|
+
// CIL[BEGIN stable_id="~/.framework/src/components/ui/calendar.tsx:module_header:module_header" type="module_header" identity="module_header" parent=""]
|
|
19
|
+
// CIL[DOC-MACRO purpose="Imports dependencies and registers UI symbols used by the calendar components."]
|
|
20
|
+
// CIL[DOC-RESPONSIBILITY responsibility="Import React, DayPicker, utility functions, button component, and icons."]
|
|
21
|
+
// CIL[DOC-CONTEXT module="calendar" layer="ui" related_files=".framework/src/components/ui/button.tsx,.framework/src/lib/utils.ts"]
|
|
22
|
+
// CIL[DOC-CONTRACT inputs="none" outputs="imported modules and types" errors="none" side_effects="none"]
|
|
23
|
+
// CIL[DOC-MICRO logic_summary="Module imports for the calendar UI components." notable_decisions="[]"]
|
|
24
|
+
// CIL[DOC-CONFIDENCE pass="second" score="0.90" flags="none"]
|
|
25
|
+
// CIL[DOC-STABILITY stability="stable"]
|
|
26
|
+
// CIL[DOC-AUDIENCE audience="developer"]
|
|
22
27
|
import * as React from "react"
|
|
23
28
|
import {
|
|
24
29
|
DayPicker,
|
|
@@ -30,21 +35,22 @@ import {
|
|
|
30
35
|
import { cn } from "@/lib/utils"
|
|
31
36
|
import { Button, buttonVariants } from "@/components/ui/button"
|
|
32
37
|
import { ChevronLeftIcon, ChevronRightIcon, ChevronDownIcon } from "lucide-react"
|
|
33
|
-
// CIL[
|
|
34
|
-
// CIL[
|
|
35
|
-
// CIL[DOC-
|
|
36
|
-
// CIL[DOC-
|
|
37
|
-
// CIL[DOC-CONTEXT module="ui.calendar" layer="component" related_files="[\".framework/src/components/ui/dialog.tsx\",\".framework/src/components/layout/Sidebar.tsx\",\"custom/apps/portal/pages/ContentPage.tsx\",\".framework/src/pages/admin/RolesPage.tsx\",\".framework/functions/_shared/schema-utils.ts\",\"\\\"]"]
|
|
38
|
-
// CIL[DOC-CONTRACT inputs="none" outputs="styled calendar component" errors="none" side_effects="renders DOM"]
|
|
39
|
-
// CIL[DOC-MICRO logic_summary="Configures DayPicker with custom styling, components, and comprehensive class name overrides" notable_decisions="['extensive customization system', 'custom component injection', 'theme-aware styling']"]
|
|
40
|
-
// CIL[DOC-CONFIDENCE pass="second" score="0.95" flags="none"]
|
|
41
|
-
// CIL[DOC-STABILITY stability="stable"]
|
|
42
|
-
// CIL[DOC-VECTOR type="context" content="Layer: component. Direct callers: 0. Direct calls: 0. Related files: .framework/src/components/ui/dialog.tsx, .framework/src/components/layout/Sidebar.tsx, custom/apps/portal/pages/ContentPage.tsx, .framework/src/pages/admin/RolesPage.tsx, .framework/functions/_shared/schema-utils.ts, \."]
|
|
43
|
-
// CIL[DOC-VECTOR type="blast_radius" content="Direct callers: 0. Total affected: 0."]
|
|
44
|
-
// CIL[DOC-VECTOR type="configuration" content="No configuration dependencies."]
|
|
45
|
-
// CIL[DOC-VECTOR type="constraint" content="No test paths identified."]
|
|
38
|
+
// CIL[DOC-VECTOR type="context" content="purpose='Imports dependencies and registers UI symbols used by the calendar components.'; No verified external callers; imports: .framework/src/lib/utils.ts,.framework/src/components/ui/button.tsx"]
|
|
39
|
+
// CIL[DOC-VECTOR type="blast_radius" content="No direct caller data from CIL graph; local impact only"]
|
|
40
|
+
// CIL[DOC-VECTOR type="configuration" content="No environment or build configuration dependencies identified"]
|
|
41
|
+
// CIL[DOC-VECTOR type="constraint" content="Standard runtime; no special invariants documented"]
|
|
46
42
|
// CIL[DOC-VECTOR type="implementation_pattern" content="" status="pending_human_input"]
|
|
47
43
|
// CIL[DOC-VECTOR type="user_journey" content="" status="pending_human_input"]
|
|
44
|
+
// CIL[END stable_id="~/.framework/src/components/ui/calendar.tsx:module_header:module_header"]
|
|
45
|
+
|
|
46
|
+
// CIL[BEGIN stable_id="~/.framework/src/components/ui/calendar.tsx:Calendar:component" type="component" identity="Calendar" parent=""]
|
|
47
|
+
// CIL[DOC-MACRO purpose="Renders a styled date picker calendar using react-day-picker with Tailwind class names and custom sub-components."]
|
|
48
|
+
// CIL[DOC-RESPONSIBILITY responsibility="Render the Calendar UI, apply default and user-supplied class names, configure day buttons and dropdowns, and compose DayPicker sub-components."]
|
|
49
|
+
// CIL[DOC-CONTEXT module="calendar" layer="ui" related_files=".framework/src/components/ui/button.tsx,.framework/src/components/ui/calendar.tsx,.framework/src/lib/utils.ts"]
|
|
50
|
+
// CIL[DOC-CONTRACT inputs="className, classNames, showOutsideDays, captionLayout, buttonVariant, locale, formatters, components, and DayPicker props" outputs="JSX DayPicker element with custom classNames and components" errors="none" side_effects="none"]
|
|
51
|
+
// CIL[DOC-MICRO logic_summary="Wraps react-day-picker DayPicker, merges default Tailwind classNames, customizes Root/Chevron/DayButton/WeekNumber, and spreads remaining props." notable_decisions="[]"]
|
|
52
|
+
// CIL[DOC-CONFIDENCE pass="second" score="0.90" flags="none"]
|
|
53
|
+
// CIL[DOC-STABILITY stability="stable"]
|
|
48
54
|
function Calendar({
|
|
49
55
|
className,
|
|
50
56
|
classNames,
|
|
@@ -184,6 +190,8 @@ function Calendar({
|
|
|
184
190
|
)
|
|
185
191
|
}
|
|
186
192
|
|
|
193
|
+
|
|
194
|
+
|
|
187
195
|
if (orientation === "right") {
|
|
188
196
|
return (
|
|
189
197
|
<ChevronRightIcon className={cn("size-4", className)} {...props} />
|
|
@@ -212,21 +220,22 @@ function Calendar({
|
|
|
212
220
|
/>
|
|
213
221
|
)
|
|
214
222
|
}
|
|
215
|
-
// CIL[
|
|
216
|
-
// CIL[
|
|
217
|
-
// CIL[DOC-
|
|
218
|
-
// CIL[DOC-
|
|
219
|
-
// CIL[DOC-CONTEXT module="ui.calendar" layer="component" related_files="[\"custom/apps/portal/pages/ContentPage.tsx\",\"custom/apps/cortex/functions/custom_cil-embeddings.ts\",\"custom/apps/cortex/pages/operations/OperationsDashboard.tsx\",\".framework/src/pages/admin/RolesPage.tsx\",\"\\\"]"]
|
|
220
|
-
// CIL[DOC-CONTRACT inputs="none" outputs="styled button component" errors="none" side_effects="renders DOM, manages focus"]
|
|
221
|
-
// CIL[DOC-MICRO logic_summary="Handles focus management, applies complex selection styling with data attributes" notable_decisions="['focus management', 'complex selection states', 'data attribute patterns']"]
|
|
222
|
-
// CIL[DOC-CONFIDENCE pass="second" score="0.95" flags="none"]
|
|
223
|
-
// CIL[DOC-STABILITY stability="stable"]
|
|
224
|
-
// 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/functions/custom_cil-embeddings.ts, custom/apps/cortex/pages/operations/OperationsDashboard.tsx, .framework/src/pages/admin/RolesPage.tsx, \."]
|
|
225
|
-
// CIL[DOC-VECTOR type="blast_radius" content="Direct callers: 0. Total affected: 0."]
|
|
226
|
-
// CIL[DOC-VECTOR type="configuration" content="No configuration dependencies."]
|
|
227
|
-
// CIL[DOC-VECTOR type="constraint" content="No test paths identified."]
|
|
223
|
+
// CIL[DOC-VECTOR type="context" content="purpose='Renders a styled date picker calendar using react-day-picker with Tailwind class names and custom sub-components.'; No verified external callers; imports: .framework/src/lib/utils.ts,.framework/src/components/ui/button.tsx"]
|
|
224
|
+
// CIL[DOC-VECTOR type="blast_radius" content="No direct caller data from CIL graph; local impact only"]
|
|
225
|
+
// CIL[DOC-VECTOR type="configuration" content="No environment or build configuration dependencies identified"]
|
|
226
|
+
// CIL[DOC-VECTOR type="constraint" content="Standard runtime; no special invariants documented"]
|
|
228
227
|
// CIL[DOC-VECTOR type="implementation_pattern" content="" status="pending_human_input"]
|
|
229
228
|
// CIL[DOC-VECTOR type="user_journey" content="" status="pending_human_input"]
|
|
229
|
+
// CIL[END stable_id="~/.framework/src/components/ui/calendar.tsx:Calendar:component"]
|
|
230
|
+
|
|
231
|
+
// CIL[BEGIN stable_id="~/.framework/src/components/ui/calendar.tsx:CalendarDayButton:component" type="component" identity="CalendarDayButton" parent=""]
|
|
232
|
+
// CIL[DOC-MACRO purpose="Renders an individual day button for the calendar with focus, selection, and range state styling."]
|
|
233
|
+
// CIL[DOC-RESPONSIBILITY responsibility="Render a single day cell button, manage focus for the focused modifier, and apply range/selection class names."]
|
|
234
|
+
// CIL[DOC-CONTEXT module="calendar" layer="ui" related_files=".framework/src/components/ui/button.tsx,.framework/src/components/ui/calendar.tsx,.framework/src/lib/utils.ts"]
|
|
235
|
+
// CIL[DOC-CONTRACT inputs="className, day, modifiers, locale, ...props" outputs="JSX Button with data attributes and merged class names" errors="none" side_effects="focuses the button when modifiers.focused is true"]
|
|
236
|
+
// CIL[DOC-MICRO logic_summary="Uses a React ref and useEffect to focus when the day is focused, applies default classNames and range/selected data attributes." notable_decisions="[]"]
|
|
237
|
+
// CIL[DOC-CONFIDENCE pass="second" score="0.90" flags="none"]
|
|
238
|
+
// CIL[DOC-STABILITY stability="stable"]
|
|
230
239
|
function CalendarDayButton({
|
|
231
240
|
className,
|
|
232
241
|
day,
|
|
@@ -265,20 +274,26 @@ function CalendarDayButton({
|
|
|
265
274
|
/>
|
|
266
275
|
)
|
|
267
276
|
}
|
|
268
|
-
// CIL[
|
|
269
|
-
// CIL[
|
|
270
|
-
// CIL[DOC-
|
|
271
|
-
// CIL[DOC-
|
|
272
|
-
// CIL[DOC-CONTEXT module="ui.calendar" layer="component" related_files="[\".framework/src/components/layout/Sidebar.tsx\",\".framework/src/components/ui/dialog.tsx\",\".framework/src/pages/admin/TypeDetailPage.tsx\",\".framework/functions/_shared/principal.ts\",\"custom/apps/cortex/pages/operations/OperationsDashboard.tsx\",\"\\\"]"]
|
|
273
|
-
// CIL[DOC-CONTRACT inputs="none" outputs="Calendar and CalendarDayButton components" errors="none" side_effects="module exports"]
|
|
274
|
-
// CIL[DOC-MICRO logic_summary="Exports main calendar components for consumption" notable_decisions="['named exports pattern', 'component library interface']"]
|
|
275
|
-
// CIL[DOC-CONFIDENCE pass="second" score="0.95" flags="none"]
|
|
276
|
-
// CIL[DOC-STABILITY stability="stable"]
|
|
277
|
-
// CIL[DOC-VECTOR type="context" content="Layer: component. Direct callers: 0. Direct calls: 0. Related files: .framework/src/components/layout/Sidebar.tsx, .framework/src/components/ui/dialog.tsx, .framework/src/pages/admin/TypeDetailPage.tsx, .framework/functions/_shared/principal.ts, custom/apps/cortex/pages/operations/OperationsDashboard.tsx, \."]
|
|
278
|
-
// CIL[DOC-VECTOR type="blast_radius" content="Direct callers: 0. Total affected: 0."]
|
|
279
|
-
// CIL[DOC-VECTOR type="configuration" content="No configuration dependencies."]
|
|
280
|
-
// CIL[DOC-VECTOR type="constraint" content="No test paths identified."]
|
|
277
|
+
// CIL[DOC-VECTOR type="context" content="purpose='Renders an individual day button for the calendar with focus, selection, and range state styling.'; No verified external callers; imports: .framework/src/lib/utils.ts,.framework/src/components/ui/button.tsx"]
|
|
278
|
+
// CIL[DOC-VECTOR type="blast_radius" content="No direct caller data from CIL graph; local impact only"]
|
|
279
|
+
// CIL[DOC-VECTOR type="configuration" content="No environment or build configuration dependencies identified"]
|
|
280
|
+
// CIL[DOC-VECTOR type="constraint" content="Standard runtime; no special invariants documented"]
|
|
281
281
|
// CIL[DOC-VECTOR type="implementation_pattern" content="" status="pending_human_input"]
|
|
282
282
|
// CIL[DOC-VECTOR type="user_journey" content="" status="pending_human_input"]
|
|
283
|
+
// CIL[END stable_id="~/.framework/src/components/ui/calendar.tsx:CalendarDayButton:component"]
|
|
284
|
+
// CIL[BEGIN stable_id="~/.framework/src/components/ui/calendar.tsx:module_exports:module_exports" type="module_exports" identity="module_exports" parent=""]
|
|
285
|
+
// CIL[DOC-MACRO purpose="Exports the Calendar and CalendarDayButton components for consumers."]
|
|
286
|
+
// CIL[DOC-RESPONSIBILITY responsibility="Expose Calendar and CalendarDayButton from this module."]
|
|
287
|
+
// CIL[DOC-CONTEXT module="calendar" layer="ui" related_files=".framework/src/components/ui/button.tsx,.framework/src/components/ui/calendar.tsx,.framework/src/lib/utils.ts"]
|
|
288
|
+
// CIL[DOC-CONTRACT inputs="none" outputs="named exports Calendar and CalendarDayButton" errors="none" side_effects="none"]
|
|
289
|
+
// CIL[DOC-MICRO logic_summary="Named export of the two calendar components." notable_decisions="[]"]
|
|
290
|
+
// CIL[DOC-CONFIDENCE pass="second" score="0.90" flags="none"]
|
|
291
|
+
// CIL[DOC-STABILITY stability="stable"]
|
|
283
292
|
export { Calendar, CalendarDayButton }
|
|
284
|
-
// CIL[
|
|
293
|
+
// CIL[DOC-VECTOR type="context" content="purpose='Exports the Calendar and CalendarDayButton components for consumers.'; No verified external callers; imports: .framework/src/lib/utils.ts,.framework/src/components/ui/button.tsx"]
|
|
294
|
+
// CIL[DOC-VECTOR type="blast_radius" content="No direct caller data from CIL graph; local impact only"]
|
|
295
|
+
// CIL[DOC-VECTOR type="configuration" content="No environment or build configuration dependencies identified"]
|
|
296
|
+
// CIL[DOC-VECTOR type="constraint" content="Standard runtime; no special invariants documented"]
|
|
297
|
+
// CIL[DOC-VECTOR type="implementation_pattern" content="" status="pending_human_input"]
|
|
298
|
+
// CIL[DOC-VECTOR type="user_journey" content="" status="pending_human_input"]
|
|
299
|
+
// CIL[END stable_id="~/.framework/src/components/ui/calendar.tsx:module_exports:module_exports"]
|