spine-framework 0.3.145 → 0.4.1
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
- package/.env.example +76 -0
- package/.framework/.spine-manifest.json +19 -0
- package/.framework/cli/commands/agents.ts +61 -33
- package/.framework/cli/commands/auth.ts +60 -28
- package/.framework/cli/commands/create-app.ts +212 -80
- package/.framework/cli/commands/dev.ts +184 -68
- package/.framework/cli/commands/doctor.ts +324 -152
- package/.framework/cli/commands/generate.ts +119 -68
- package/.framework/cli/commands/init.ts +141 -242
- package/.framework/cli/commands/install-app.ts +1336 -314
- package/.framework/cli/commands/items.ts +31 -29
- package/.framework/cli/commands/migrate.ts +299 -156
- package/.framework/cli/commands/migrations.ts +62 -30
- package/.framework/cli/commands/pipelines.ts +31 -29
- package/.framework/cli/commands/status.ts +105 -45
- package/.framework/cli/commands/system.ts +47 -42
- package/.framework/cli/commands/test.ts +161 -102
- package/.framework/cli/commands/upgrade.ts +260 -0
- package/.framework/cli/commands/validate-app.ts +517 -161
- package/.framework/cli/context.ts +117 -85
- package/.framework/cli/env-loader.ts +74 -43
- package/.framework/cli/index.ts +70 -46
- package/.framework/cli/lib/project-files.ts +404 -0
- package/.framework/docs/guides/testing-guide.md +1 -1
- package/.framework/docs/runtime-types.md +72 -72
- package/.framework/functions/_shared/access.ts +84 -0
- package/.framework/functions/_shared/agent-runner.ts +5067 -1026
- package/.framework/functions/_shared/app-manifest.ts +214 -94
- package/.framework/functions/_shared/ast.ts +214 -0
- package/.framework/functions/_shared/audit.ts +91 -55
- package/.framework/functions/_shared/cil.ts +368 -127
- package/.framework/functions/_shared/db.ts +337 -68
- package/.framework/functions/_shared/funnel.ts +228 -0
- package/.framework/functions/_shared/geo.ts +105 -0
- package/.framework/functions/_shared/hash-api-key.ts +94 -17
- package/.framework/functions/_shared/index.ts +22 -224
- package/.framework/functions/_shared/kb.ts +832 -58
- package/.framework/functions/_shared/llm.ts +118 -18
- package/.framework/functions/_shared/logging.ts +317 -19
- package/.framework/functions/_shared/middleware.ts +701 -131
- package/.framework/functions/_shared/notify.ts +70 -0
- package/.framework/functions/_shared/outcomes.ts +34 -19
- package/.framework/functions/_shared/permissions.ts +501 -315
- package/.framework/functions/_shared/pipeline-runner.ts +704 -155
- package/.framework/functions/_shared/principal.ts +436 -263
- package/.framework/functions/_shared/rate-limit.ts +233 -0
- package/.framework/functions/_shared/resolve-credentials.ts +86 -19
- package/.framework/functions/_shared/resolve-ids.ts +203 -139
- package/.framework/functions/_shared/retry-deliveries.ts +51 -16
- package/.framework/functions/_shared/schema-utils.ts +602 -521
- package/.framework/functions/_shared/security.ts +345 -0
- package/.framework/functions/_shared/testing.ts +197 -172
- package/.framework/functions/_shared/tracing.ts +351 -21
- package/.framework/functions/_shared/trigger-engine.ts +425 -136
- package/.framework/functions/_shared/webhook-registration.ts +71 -70
- package/.framework/functions/_shared/webhook-registry.ts +126 -83
- package/.framework/functions/account-nodes.ts +30 -30
- package/.framework/functions/adapters/generic-webhook-inbound.ts +49 -16
- package/.framework/functions/adapters/generic-webhook-outbound.ts +17 -17
- package/.framework/functions/adapters/openai-outbound.ts +15 -16
- package/.framework/functions/admin-data.ts +596 -173
- package/.framework/functions/admin-funnel.ts +64 -60
- package/.framework/functions/admin-install-funnel.ts +84 -66
- package/.framework/functions/admin-signals.ts +69 -51
- package/.framework/functions/ai-agents.ts +431 -106
- package/.framework/functions/ai-interactions.ts +186 -112
- package/.framework/functions/api-keys.ts +107 -107
- package/.framework/functions/apps.ts +154 -136
- package/.framework/functions/auth.ts +83 -65
- package/.framework/functions/cil-agent-ingest.ts +189 -232
- package/.framework/functions/cil-agent.ts +433 -177
- package/.framework/functions/cil-callmap.ts +642 -430
- package/.framework/functions/cil-config.ts +139 -135
- package/.framework/functions/cil-context.ts +214 -127
- package/.framework/functions/cil-doc.ts +587 -458
- package/.framework/functions/cil-embeddings.ts +453 -364
- package/.framework/functions/cil-graph.ts +427 -142
- package/.framework/functions/cil-ingest.ts +1418 -1154
- package/.framework/functions/cil-pipeline.ts +276 -21
- package/.framework/functions/cil-project.ts +659 -132
- package/.framework/functions/cil-validate.ts +198 -164
- package/.framework/functions/debug-auth.ts +57 -55
- package/.framework/functions/deliveries.ts +80 -21
- package/.framework/functions/embeddings.ts +1023 -318
- package/.framework/functions/eval-harness.ts +146 -108
- package/.framework/functions/integration-outbound.ts +205 -75
- package/.framework/functions/integration-routes.ts +128 -23
- package/.framework/functions/integrations.ts +125 -100
- package/.framework/functions/invites.ts +1095 -460
- package/.framework/functions/item-progress.ts +158 -102
- package/.framework/functions/kb.ts +34 -10
- package/.framework/functions/logs.ts +133 -133
- package/.framework/functions/observability.ts +152 -122
- package/.framework/functions/pipeline-executions.ts +147 -132
- package/.framework/functions/pipelines.ts +134 -119
- package/.framework/functions/prompt-configs.ts +96 -80
- package/.framework/functions/roles.ts +112 -82
- package/.framework/functions/security.ts +450 -0
- package/.framework/functions/system-cron.ts +117 -80
- package/.framework/functions/system.ts +158 -98
- package/.framework/functions/tests.ts +29 -29
- package/.framework/functions/timers.ts +94 -95
- package/.framework/functions/trigger-scheduler.ts +10 -0
- package/.framework/functions/triggers.ts +179 -149
- package/.framework/functions/types.ts +137 -125
- package/.framework/mcp/index.ts +133 -0
- package/.framework/mcp/load-env.ts +60 -0
- package/.framework/mcp/shared/app-manifest.ts +275 -0
- package/.framework/mcp/shared/db.ts +477 -0
- package/.framework/mcp/shared/kb.ts +118 -0
- package/.framework/mcp/tools/architect.ts +431 -0
- package/.framework/mcp/tools/cil/context.ts +345 -0
- package/.framework/mcp/tools/cil/graph.ts +242 -0
- package/.framework/mcp/tools/cil/ingest.ts +1217 -0
- package/.framework/mcp/tools/cil/pipeline-orchestrator.ts +693 -0
- package/.framework/mcp/tools/cil/pipeline.ts +767 -0
- package/.framework/mcp/tools/cil/project.ts +791 -0
- package/.framework/mcp/tools/cil/retrieval.ts +336 -0
- package/.framework/mcp/tools/cil/search-core.ts +454 -0
- package/.framework/mcp/tools/cil/search.ts +97 -0
- package/.framework/mcp/tools/cil/suggest.ts +186 -0
- package/.framework/mcp/tools/cil/validate.ts +1369 -0
- package/.framework/mcp/tools/kb/delete.ts +139 -0
- package/.framework/mcp/tools/kb/index.ts +52 -0
- package/.framework/mcp/tools/kb/ingest.ts +84 -0
- package/.framework/mcp/tools/kb/list-types.ts +102 -0
- package/.framework/mcp/tools/kb/publish.ts +100 -0
- package/.framework/mcp/tools/kb/reindex.ts +86 -0
- package/.framework/mcp/tools/kb/revoke.ts +85 -0
- package/.framework/mcp/tools/kb/search.ts +101 -0
- package/.framework/mcp/tools/kb/upsert.ts +125 -0
- package/.framework/mcp/tools/observability.ts +510 -0
- package/.framework/migrations/001_core_schema.sql +15 -0
- package/.framework/migrations/002_core_rls_and_functions.sql +15 -0
- package/.framework/migrations/003_core_system_data.sql +16 -1
- package/.framework/migrations/004_core_rpc_and_broker.sql +17 -1
- package/.framework/migrations/005_core_observability.sql +17 -1
- package/.framework/migrations/006_security_hardening_rls.sql +15 -0
- package/.framework/migrations/007_kb_article_list.sql +17 -1
- package/.framework/migrations/008_items_target.sql +15 -0
- package/.framework/migrations/009_roles_slug_unique.sql +15 -0
- package/.framework/migrations/010_auth_user_trigger.sql +15 -0
- package/.framework/migrations/011_spine_system_account.sql +16 -0
- package/.framework/migrations/012_service_role_grants.sql +16 -0
- package/.framework/migrations/013_get_account_apps_role_filter.sql +15 -0
- package/.framework/migrations/014_apps_required_roles.sql +16 -0
- package/.framework/migrations/015_types_kind_slug_unique.sql +15 -0
- package/.framework/migrations/016_cil_types.sql +281 -0
- package/.framework/migrations/017_cil_stable_ids.sql +37 -0
- package/.framework/migrations/018_runtime_tables.sql +129 -0
- package/.framework/migrations/019_agent_prompt_columns.sql +56 -0
- package/.framework/migrations/020_schema_reconciliation.sql +67 -0
- package/.framework/migrations/021_kb_embedding_lifecycle.sql +31 -0
- package/.framework/migrations/032_cil_status_migration.sql +73 -0
- package/.framework/migrations/033_cil_versioning.sql +73 -0
- package/.framework/migrations/034_match_embeddings_knn.sql +115 -0
- package/.framework/migrations/035_rate_limits.sql +55 -0
- package/.framework/migrations/036_demo_record_flags.sql +72 -0
- package/.framework/migrations/037_kb_types_canonical.sql +244 -0
- package/.framework/migrations/038_drop_demo_record_flags.sql +38 -0
- package/.framework/migrations/042_registration_hierarchy.sql +309 -0
- package/.framework/migrations/043_policy_actor_cleanup.sql +39 -0
- package/.framework/migrations/044_match_embeddings_filtered_knn.sql +151 -0
- package/.framework/migrations/045_security_critical_rls.sql +139 -0
- package/.framework/migrations/046_security_missing_rls.sql +79 -0
- package/.framework/migrations/047_people_updated_by.sql +27 -0
- package/.framework/migrations/048_watcher_last_seen_at.sql +24 -0
- package/.framework/migrations/049_security_blocklist.sql +148 -0
- package/.framework/migrations/050_notifications.sql +49 -0
- package/.framework/migrations/051_message_agent_fields.sql +74 -0
- package/.framework/migrations/052_registration_security.sql +421 -0
- package/.framework/migrations/053_builtin_action_seeds.sql +66 -0
- package/.framework/migrations/054_kb_ingest_lease.sql +157 -0
- package/.framework/migrations/055_type_id_drift_reconciliation.sql +33 -0
- package/.framework/migrations/056_slug_column_reconciliation.sql +38 -0
- package/.framework/migrations/057_pipelines_slug_identity.sql +14 -0
- package/.framework/migrations/058_account_data_field_declarations.sql +53 -0
- package/.framework/migrations/059_registration_placement_fixes.sql +269 -0
- package/.framework/migrations/060_account_person_record_permissions.sql +38 -0
- package/.framework/migrations/061_fk_dedup.sql +32 -0
- package/.framework/public/spine-logo.svg +10 -3
- package/.framework/scripts/app-install-cli.ts +190 -93
- package/.framework/scripts/assemble-frontend.sh +127 -44
- package/.framework/scripts/assemble-functions.sh +128 -30
- package/.framework/scripts/boundary-check.sh +6 -2
- package/.framework/scripts/build-manifest.sh +24 -68
- package/.framework/scripts/check-core-integrity.sh +15 -76
- package/.framework/scripts/checksum-manifest.mts +343 -0
- package/.framework/scripts/cil-migrate-markers.ts +403 -0
- package/.framework/scripts/fix-cil-markers.mjs +176 -0
- package/.framework/scripts/verify-integrity.sh +21 -57
- package/.framework/scripts/verify-manifest.mts +305 -0
- package/.framework/seeds/types/funnel_signal_use.json +74 -21
- package/.framework/seeds/types/spine_instance.json +73 -21
- package/.framework/src/App.tsx +118 -72
- package/.framework/src/apps/admin/index.tsx +855 -58
- package/.framework/src/components/AppWrapper.tsx +43 -45
- package/.framework/src/components/CustomAppLoader.tsx +160 -116
- package/.framework/src/components/admin/AdminListPage.tsx +46 -44
- package/.framework/src/components/admin/AdminSidebar.tsx +57 -47
- package/.framework/src/components/admin/AdminStatsCard.tsx +46 -44
- package/.framework/src/components/admin/PageInstructions.tsx +98 -2
- package/.framework/src/components/admin/SortableTableHeader.tsx +44 -45
- package/.framework/src/components/app-shell/GenericAppShell.tsx +64 -65
- package/.framework/src/components/app-shell/GenericDetailPage.tsx +44 -47
- package/.framework/src/components/app-shell/GenericListPage.tsx +45 -49
- package/.framework/src/components/app-sidebar.tsx +42 -45
- package/.framework/src/components/auth/ProtectedRoute.tsx +48 -41
- package/.framework/src/components/auth/TurnstileWidget.tsx +27 -0
- package/.framework/src/components/kb/KBArticleEditor.tsx +231 -22
- package/.framework/src/components/kb/KBArticleList.tsx +251 -10
- package/.framework/src/components/layout/AppShell.tsx +51 -45
- package/.framework/src/components/layout/Header.tsx +42 -43
- package/.framework/src/components/layout/Layout.tsx +46 -46
- package/.framework/src/components/layout/Sidebar.tsx +196 -96
- package/.framework/src/components/runtime/DataDetailHeader.tsx +55 -30
- package/.framework/src/components/runtime/DataDetailPage.tsx +31 -269
- package/.framework/src/components/runtime/DataFilters.tsx +49 -74
- package/.framework/src/components/runtime/DataHeader.tsx +53 -32
- package/.framework/src/components/runtime/DataListPage.tsx +51 -155
- package/.framework/src/components/runtime/DataStats.tsx +66 -44
- package/.framework/src/components/runtime/DataTable.tsx +49 -149
- package/.framework/src/components/runtime/SchemaDetailForm.tsx +45 -75
- package/.framework/src/components/runtime/index.ts +119 -16
- package/.framework/src/components/search-form.tsx +46 -29
- package/.framework/src/components/shared/AgentView.tsx +65 -48
- package/.framework/src/components/shared/FieldRenderer.tsx +144 -50
- package/.framework/src/components/shared/InviteManager.tsx +207 -97
- package/.framework/src/components/shared/MemberList.tsx +97 -0
- package/.framework/src/components/shared/SchemaFields.tsx +107 -86
- package/.framework/src/components/ui/DataTable.tsx +80 -68
- package/.framework/src/components/ui/Form.tsx +157 -146
- package/.framework/src/components/ui/ItemCard.tsx +74 -67
- package/.framework/src/components/ui/ItemListView.tsx +73 -68
- package/.framework/src/components/ui/LoadingSpinner.tsx +43 -48
- package/.framework/src/components/ui/Modal.tsx +78 -68
- package/.framework/src/components/ui/RichTextEditor.tsx +89 -69
- package/.framework/src/components/ui/accordion.tsx +85 -86
- package/.framework/src/components/ui/alert-dialog.tsx +197 -184
- package/.framework/src/components/ui/alert.tsx +105 -94
- package/.framework/src/components/ui/aspect-ratio.tsx +57 -43
- package/.framework/src/components/ui/avatar.tsx +122 -107
- package/.framework/src/components/ui/badge.tsx +60 -55
- package/.framework/src/components/ui/breadcrumb.tsx +127 -128
- package/.framework/src/components/ui/button-group.tsx +86 -72
- package/.framework/src/components/ui/button.tsx +71 -50
- package/.framework/src/components/ui/calendar.tsx +72 -57
- package/.framework/src/components/ui/card.tsx +136 -129
- package/.framework/src/components/ui/carousel.tsx +226 -107
- package/.framework/src/components/ui/chart.tsx +252 -147
- package/.framework/src/components/ui/checkbox.tsx +43 -44
- package/.framework/src/components/ui/collapsible.tsx +86 -71
- package/.framework/src/components/ui/combobox.tsx +282 -249
- package/.framework/src/components/ui/command.tsx +158 -146
- package/.framework/src/components/ui/context-menu.tsx +239 -240
- package/.framework/src/components/ui/dialog.tsx +174 -157
- package/.framework/src/components/ui/direction.tsx +72 -56
- package/.framework/src/components/ui/drawer.tsx +168 -169
- package/.framework/src/components/ui/dropdown-menu.tsx +254 -223
- package/.framework/src/components/ui/empty.tsx +131 -120
- package/.framework/src/components/ui/field.tsx +205 -173
- package/.framework/src/components/ui/hover-card.tsx +71 -72
- package/.framework/src/components/ui/input-group.tsx +148 -133
- package/.framework/src/components/ui/input-otp.tsx +99 -86
- package/.framework/src/components/ui/input.tsx +43 -41
- package/.framework/src/components/ui/item.tsx +207 -185
- package/.framework/src/components/ui/kbd.tsx +57 -56
- package/.framework/src/components/ui/label.tsx +45 -41
- package/.framework/src/components/ui/menubar.tsx +268 -236
- package/.framework/src/components/ui/native-select.tsx +85 -86
- package/.framework/src/components/ui/navigation-menu.tsx +166 -156
- package/.framework/src/components/ui/pagination.tsx +131 -141
- package/.framework/src/components/ui/popover.tsx +125 -128
- package/.framework/src/components/ui/progress.tsx +47 -44
- package/.framework/src/components/ui/radio-group.tsx +60 -55
- package/.framework/src/components/ui/resizable.tsx +85 -72
- package/.framework/src/components/ui/scroll-area.tsx +57 -58
- package/.framework/src/components/ui/select.tsx +182 -169
- package/.framework/src/components/ui/separator.tsx +42 -43
- package/.framework/src/components/ui/sheet.tsx +170 -159
- package/.framework/src/components/ui/sidebar.tsx +395 -398
- package/.framework/src/components/ui/skeleton.tsx +42 -43
- package/.framework/src/components/ui/slider.tsx +61 -44
- package/.framework/src/components/ui/sonner.tsx +44 -44
- package/.framework/src/components/ui/spinner.tsx +47 -42
- package/.framework/src/components/ui/switch.tsx +56 -42
- package/.framework/src/components/ui/table-primitives.tsx +272 -132
- package/.framework/src/components/ui/table.tsx +140 -142
- package/.framework/src/components/ui/tabs.tsx +110 -93
- package/.framework/src/components/ui/textarea.tsx +43 -44
- package/.framework/src/components/ui/toggle-group.tsx +87 -71
- package/.framework/src/components/ui/toggle.tsx +56 -56
- package/.framework/src/components/ui/tooltip.tsx +99 -85
- package/.framework/src/contexts/AppContext.tsx +166 -114
- package/.framework/src/contexts/AuthContext.tsx +232 -137
- package/.framework/src/hooks/use-mobile.ts +43 -44
- package/.framework/src/hooks/useApi.ts +185 -172
- package/.framework/src/hooks/useAppPath.ts +31 -29
- package/.framework/src/hooks/useApps.ts +77 -42
- package/.framework/src/hooks/useEntityList.ts +66 -29
- package/.framework/src/hooks/useEntityRecord.ts +76 -32
- package/.framework/src/hooks/useForm.ts +62 -30
- package/.framework/src/hooks/useListSchema.ts +60 -43
- package/.framework/src/hooks/useSchemaRecord.ts +115 -95
- package/.framework/src/lib/api.ts +258 -134
- package/.framework/src/lib/registration.ts +181 -0
- package/.framework/src/lib/supabase.ts +118 -81
- package/.framework/src/lib/utils.ts +266 -266
- package/.framework/src/main.tsx +43 -44
- package/.framework/src/pages/DashboardPage.tsx +44 -43
- package/.framework/src/pages/NoAppPage.tsx +50 -0
- package/.framework/src/pages/NotFoundPage.tsx +32 -29
- package/.framework/src/pages/SetupPage.tsx +34 -33
- package/.framework/src/pages/admin/AIAgentDetailPage.tsx +69 -58
- package/.framework/src/pages/admin/AIAgentsPage.tsx +43 -40
- package/.framework/src/pages/admin/APIKeyDetailPage.tsx +63 -55
- package/.framework/src/pages/admin/APIKeysPage.tsx +44 -42
- package/.framework/src/pages/admin/AlertsConfigPage.tsx +117 -94
- package/.framework/src/pages/admin/AppDetailPage.tsx +48 -42
- package/.framework/src/pages/admin/AppsPage.tsx +45 -42
- package/.framework/src/pages/admin/DeliveriesPage.tsx +49 -17
- package/.framework/src/pages/admin/DesignedPage.tsx +31 -30
- package/.framework/src/pages/admin/EmbeddingDetailPage.tsx +58 -0
- package/.framework/src/pages/admin/EmbeddingsPage.tsx +49 -0
- package/.framework/src/pages/admin/ExtendedShadcnTestPage.tsx +31 -29
- package/.framework/src/pages/admin/IncrementalShadcnTestPage.tsx +46 -29
- package/.framework/src/pages/admin/IntegratedDashboard.tsx +32 -29
- package/.framework/src/pages/admin/IntegrationDetailPage.tsx +68 -55
- package/.framework/src/pages/admin/IntegrationsPage.tsx +45 -42
- package/.framework/src/pages/admin/InvitesPage.tsx +60 -44
- package/.framework/src/pages/admin/LogsPage.tsx +87 -137
- package/.framework/src/pages/admin/MinimalShadcnTestPage.tsx +31 -29
- package/.framework/src/pages/admin/ObservabilityDashboard.tsx +150 -89
- package/.framework/src/pages/admin/PipelineDetailPage.tsx +77 -104
- package/.framework/src/pages/admin/PipelineExecutionsPage.tsx +44 -43
- package/.framework/src/pages/admin/PipelinesPage.tsx +59 -145
- package/.framework/src/pages/admin/PromptConfigDetailPage.tsx +53 -42
- package/.framework/src/pages/admin/PromptConfigsPage.tsx +47 -117
- package/.framework/src/pages/admin/ProperlyDesignedPage.tsx +31 -44
- package/.framework/src/pages/admin/RoleDetailPage.tsx +49 -92
- package/.framework/src/pages/admin/RolesPage.tsx +47 -164
- package/.framework/src/pages/admin/SecurityPage.tsx +310 -0
- package/.framework/src/pages/admin/SelectTestPage.tsx +30 -32
- package/.framework/src/pages/admin/ShadcnTestPage.tsx +37 -44
- package/.framework/src/pages/admin/SimpleDashboard.tsx +32 -44
- package/.framework/src/pages/admin/TestRunDetailPage.tsx +97 -44
- package/.framework/src/pages/admin/TestingDashboard.tsx +126 -71
- package/.framework/src/pages/admin/TimerDetailPage.tsx +67 -55
- package/.framework/src/pages/admin/TimersPage.tsx +44 -42
- package/.framework/src/pages/admin/TriggerDetailPage.tsx +47 -42
- package/.framework/src/pages/admin/TriggersPage.tsx +58 -57
- package/.framework/src/pages/admin/TypeDetailPage.tsx +91 -55
- package/.framework/src/pages/admin/TypesPage.tsx +45 -42
- package/.framework/src/pages/admin/cil/CILAgentPage.tsx +258 -128
- package/.framework/src/pages/admin/cil/CILChunkDetailPage.tsx +127 -123
- package/.framework/src/pages/admin/cil/CILDashboardPage.tsx +308 -235
- package/.framework/src/pages/admin/cil/CILFileListPage.tsx +159 -110
- package/.framework/src/pages/admin/cil/CILFileSelectPage.tsx +432 -0
- package/.framework/src/pages/admin/cil/CILGraphPage.tsx +200 -178
- package/.framework/src/pages/admin/cil/CILIngestionPage.tsx +286 -239
- package/.framework/src/pages/admin/cil/CILProjectsPage.tsx +211 -90
- package/.framework/src/pages/admin/cil/CILSearchPage.tsx +156 -143
- package/.framework/src/pages/admin/cil/CILSuggestionsPage.tsx +379 -0
- package/.framework/src/pages/admin/cil/CILVersionsPage.tsx +337 -0
- package/.framework/src/pages/admin/cil/FlexiblePipelinePage.tsx +219 -214
- package/.framework/src/pages/admin/kb/KBAdminPage.tsx +64 -0
- package/.framework/src/pages/auth/AuthConfirmPage.tsx +135 -65
- package/.framework/src/pages/auth/ForgotPasswordPage.tsx +39 -31
- package/.framework/src/pages/auth/LoginPage.tsx +38 -32
- package/.framework/src/pages/auth/PendingApprovalPage.tsx +31 -28
- package/.framework/src/pages/auth/RegisterPage.tsx +429 -155
- package/.framework/src/pages/spine-framework/APIPage.tsx +33 -30
- package/.framework/src/pages/spine-framework/CLIPage.tsx +32 -30
- package/.framework/src/types/auth.ts +101 -93
- package/.framework/src/types/types.ts +283 -262
- package/.framework/templates/project.json +87 -0
- package/.framework/templates/spine.config.neutral.json +7 -0
- package/.framework/tests/api/api-surface.test.ts +381 -0
- package/.framework/tests/fixtures/seed.ts +427 -0
- package/.framework/tests/fixtures/teardown.ts +228 -0
- package/.framework/tests/reporter.ts +351 -0
- package/.framework/tests/setup.ts +135 -0
- package/.framework/tests/ui/ui-sweep.ts +278 -0
- package/.framework/tests/unit/admin-data-logger.test.ts +310 -0
- package/.framework/tests/unit/agent-runner.test.ts +2389 -0
- package/.framework/tests/unit/ai-interactions.test.ts +81 -0
- package/.framework/tests/unit/app-manifest.test.ts +359 -0
- package/.framework/tests/unit/assembly-scripts.test.ts +172 -0
- package/.framework/tests/unit/cil-determinism.test.ts +85 -0
- package/.framework/tests/unit/core-isolation.test.ts +153 -0
- package/.framework/tests/unit/funnel-signals.test.ts +135 -0
- package/.framework/tests/unit/install-app.test.ts +1759 -0
- package/.framework/tests/unit/invites-security.test.ts +572 -0
- package/.framework/tests/unit/kb-ingest-lease.test.ts +287 -0
- package/.framework/tests/unit/kb-search.test.ts +119 -0
- package/.framework/tests/unit/migrate.test.ts +509 -0
- package/.framework/tests/unit/notify.test.ts +136 -0
- package/.framework/tests/unit/permissions.test.ts +269 -0
- package/.framework/tests/unit/pipeline-runner.test.ts +755 -0
- package/.framework/tests/unit/principal-cache.test.ts +138 -0
- package/.framework/tests/unit/retrieval-golden.test.ts +520 -0
- package/.framework/tests/unit/runtime-isolation.test.ts +642 -0
- package/.framework/tests/unit/schema-utils.test.ts +225 -0
- package/.framework/tests/unit/trigger-engine.test.ts +513 -0
- package/.framework/tests/unit/validate-app.test.ts +527 -0
- package/README.md +34 -3
- package/bin/spine-framework.cjs +1 -0
- package/config/tailwind.config.cjs +7 -0
- package/config/tsconfig.functions.json +42 -0
- package/config/tsconfig.json +37 -9
- package/config/vite.config.ts +31 -2
- package/netlify.toml +31 -3
- package/package.json +46 -29
- package/scripts/assemble-frontend.sh +127 -44
- package/scripts/assemble-functions.sh +127 -29
- package/scripts/boundary-check.sh +6 -2
- package/scripts/build-manifest.sh +24 -68
- package/scripts/checksum-manifest.mts +345 -0
- package/scripts/dev-clean.sh +86 -0
- package/scripts/dev-netlify.sh +49 -0
- package/scripts/netlify-dev-wrapper.sh +2 -0
- package/scripts/verify-install.ts +358 -0
- package/scripts/verify-integrity.sh +21 -57
- package/scripts/verify-manifest.mts +305 -0
- package/templates/project/gitignore +45 -0
- package/{config → templates/project}/package-lock.json +22335 -9366
- package/vitest.config.ts +46 -0
- package/.framework/public/spine.config.json +0 -91
- package/config/deno.lock +0 -108
- package/config/tsconfig.node.tsbuildinfo +0 -1
- package/config/tsconfig.tsbuildinfo +0 -1
- package/config/vite.config.d.ts +0 -2
- package/custom/.devin/AGENT.md +0 -357
- package/custom/.devin/skills/install-app/SKILL.md +0 -39
- package/custom/.devin/skills/spine-workbench-discovery/SKILL.md +0 -39
- package/custom/.devin/skills/spine-workbench-idea/SKILL.md +0 -36
- package/custom/.devin/skills/spine-workbench-implement/SKILL.md +0 -46
- package/custom/.devin/skills/spine-workbench-initiative/SKILL.md +0 -28
- package/custom/.devin/skills/spine-workbench-plan/SKILL.md +0 -38
- package/custom/.devin/workflows/app-install.yaml +0 -83
- package/custom/README.md +0 -79
- package/docs/README.md +0 -15
- package/scripts/app-install-cli.ts +0 -286
- package/scripts/check-core-integrity.sh +0 -82
- package/scripts/ingest-chunks.cjs +0 -202
- package/scripts/kb-chunk-parser.cjs +0 -312
- package/scripts/kb-chunk-parser.ts +0 -330
- package/scripts/kb-ingest-docs.ts +0 -203
- package/scripts/load-test-app-install.ts +0 -484
- package/scripts/test-login.js +0 -33
- package/spine.config.json +0 -91
|
@@ -1,3 +1,19 @@
|
|
|
1
|
+
// CIL[BEGIN stable_id="~/.framework/src/components/ui/field.tsx:use_client:constant" type="constant" identity="use_client" parent="~/.framework/src/components/ui/field.tsx"]
|
|
2
|
+
// CIL[DOC-MACRO purpose="Declare this module as a Next.js client component"]
|
|
3
|
+
// CIL[DOC-RESPONSIBILITY responsibility="Mark the file for client-side React execution"]
|
|
4
|
+
// CIL[DOC-CONTEXT module=".framework/src/components/ui/field.tsx" layer="ui" related_files=".framework/src/components/ui/field.tsx,.framework/src/components/ui/label.tsx,.framework/src/components/ui/separator.tsx,.framework/src/lib/utils.ts"]
|
|
5
|
+
// CIL[DOC-CONTRACT inputs="none" outputs="use client directive" errors="none" side_effects="none"]
|
|
6
|
+
// CIL[DOC-MICRO logic_summary="String directive placed at the top of the file to enable client rendering" notable_decisions="[]"]
|
|
7
|
+
// CIL[DOC-CONFIDENCE pass="second" score="0.90" flags="none"]
|
|
8
|
+
// CIL[DOC-STABILITY stable]
|
|
9
|
+
"use client"
|
|
10
|
+
// CIL[DOC-VECTOR type="context" content="purpose='Declare this module as a Next.js client component'; No verified external callers; imports: .framework/src/lib/utils.ts,.framework/src/components/ui/label.tsx,.framework/src/components/ui/separator.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"]
|
|
14
|
+
// CIL[DOC-VECTOR type="implementation_pattern" content="" status="pending_human_input"]
|
|
15
|
+
// CIL[DOC-VECTOR type="user_journey" content="" status="pending_human_input"]
|
|
16
|
+
// CIL[END stable_id="~/.framework/src/components/ui/field.tsx:use_client:constant"]
|
|
1
17
|
|
|
2
18
|
|
|
3
19
|
|
|
@@ -11,42 +27,39 @@
|
|
|
11
27
|
|
|
12
28
|
|
|
13
29
|
|
|
14
|
-
|
|
15
|
-
|
|
16
|
-
|
|
17
|
-
// CIL[
|
|
18
|
-
// CIL[DOC-
|
|
19
|
-
// CIL[DOC-
|
|
20
|
-
// CIL[DOC-
|
|
21
|
-
// CIL[DOC-
|
|
22
|
-
// CIL[DOC-
|
|
23
|
-
// CIL[DOC-
|
|
24
|
-
// CIL[DOC-
|
|
25
|
-
// CIL[DOC-
|
|
26
|
-
// CIL[DOC-VECTOR type="constraint" content="No test paths identified."]
|
|
27
|
-
// CIL[DOC-VECTOR type="implementation_pattern" content="" status="pending_human_input"]
|
|
28
|
-
// CIL[DOC-VECTOR type="user_journey" content="" status="pending_human_input"]
|
|
29
|
-
"use client"
|
|
30
|
+
|
|
31
|
+
|
|
32
|
+
|
|
33
|
+
// CIL[BEGIN stable_id="~/.framework/src/components/ui/field.tsx:module_header:module_header" type="module_header" identity="module_header" parent="~/.framework/src/components/ui/field.tsx"]
|
|
34
|
+
// CIL[DOC-MACRO purpose="Import dependencies for the field UI component module"]
|
|
35
|
+
// CIL[DOC-RESPONSIBILITY responsibility="Provide React, CVA, and local UI utilities to the field subcomponents"]
|
|
36
|
+
// CIL[DOC-CONTEXT module=".framework/src/components/ui/field.tsx" layer="ui" related_files=".framework/src/components/ui/label.tsx,.framework/src/components/ui/separator.tsx,.framework/src/lib/utils.ts"]
|
|
37
|
+
// CIL[DOC-CONTRACT inputs="none" outputs="imported bindings available to the module" errors="none" side_effects="none"]
|
|
38
|
+
// CIL[DOC-MICRO logic_summary="Imports useMemo, cva, cn, Label, and Separator for use by the field components" notable_decisions="[]"]
|
|
39
|
+
// CIL[DOC-CONFIDENCE pass="second" score="0.90" flags="none"]
|
|
40
|
+
// CIL[DOC-STABILITY stable]
|
|
41
|
+
// CIL[DOC-AUDIENCE audience="developers"]
|
|
30
42
|
import { useMemo } from "react"
|
|
31
43
|
import { cva, type VariantProps } from "class-variance-authority"
|
|
32
44
|
import { cn } from "@/lib/utils"
|
|
33
45
|
import { Label } from "@/components/ui/label"
|
|
34
46
|
import { Separator } from "@/components/ui/separator"
|
|
35
|
-
// CIL[
|
|
36
|
-
// CIL[
|
|
37
|
-
// CIL[DOC-
|
|
38
|
-
// CIL[DOC-
|
|
39
|
-
// CIL[DOC-CONTEXT module="field" layer="ui" related_files="[\".framework/src/pages/admin/TypeDetailPage.tsx\",\".framework/functions/_shared/principal.ts\",\"custom/apps/cortex/pages/operations/OperationsDashboard.tsx\",\".framework/functions/_shared/schema-utils.ts\",\"custom/apps/portal/pages/ContentPage.tsx\",\"\\\"]"]
|
|
40
|
-
// CIL[DOC-CONTRACT inputs="none" outputs="styled fieldset element" errors="none" side_effects="renders DOM"]
|
|
41
|
-
// CIL[DOC-MICRO logic_summary="Creates flex column fieldset with conditional gap spacing" notable_decisions="[]"]
|
|
42
|
-
// CIL[DOC-CONFIDENCE pass="second" score="0.95" flags="none"]
|
|
43
|
-
// CIL[DOC-STABILITY stability="stable"]
|
|
44
|
-
// CIL[DOC-VECTOR type="context" content="Layer: ui. Direct callers: 0. Direct calls: 0. Related files: .framework/src/pages/admin/TypeDetailPage.tsx, .framework/functions/_shared/principal.ts, custom/apps/cortex/pages/operations/OperationsDashboard.tsx, .framework/functions/_shared/schema-utils.ts, custom/apps/portal/pages/ContentPage.tsx, \."]
|
|
45
|
-
// CIL[DOC-VECTOR type="blast_radius" content="Direct callers: 0. Total affected: 0."]
|
|
46
|
-
// CIL[DOC-VECTOR type="configuration" content="No configuration dependencies."]
|
|
47
|
-
// CIL[DOC-VECTOR type="constraint" content="No test paths identified."]
|
|
47
|
+
// CIL[DOC-VECTOR type="context" content="purpose='Import dependencies for the field UI component module'; No verified external callers; imports: .framework/src/lib/utils.ts,.framework/src/components/ui/label.tsx,.framework/src/components/ui/separator.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"]
|
|
48
51
|
// CIL[DOC-VECTOR type="implementation_pattern" content="" status="pending_human_input"]
|
|
49
52
|
// CIL[DOC-VECTOR type="user_journey" content="" status="pending_human_input"]
|
|
53
|
+
// CIL[END stable_id="~/.framework/src/components/ui/field.tsx:module_header:module_header"]
|
|
54
|
+
|
|
55
|
+
// CIL[BEGIN stable_id="~/.framework/src/components/ui/field.tsx:FieldSet:component" type="component" identity="FieldSet" parent="~/.framework/src/components/ui/field.tsx"]
|
|
56
|
+
// CIL[DOC-MACRO purpose="Render a fieldset wrapper for grouped form controls"]
|
|
57
|
+
// CIL[DOC-RESPONSIBILITY responsibility="Provide a flex column layout for field sets with reduced gaps for checkbox and radio groups"]
|
|
58
|
+
// CIL[DOC-CONTEXT module=".framework/src/components/ui/field.tsx" layer="ui" related_files=".framework/src/components/ui/field.tsx,.framework/src/components/ui/label.tsx,.framework/src/components/ui/separator.tsx,.framework/src/lib/utils.ts"]
|
|
59
|
+
// CIL[DOC-CONTRACT inputs="className: string, ...props: React.ComponentProps<fieldset>" outputs="JSX.Element" errors="none" side_effects="none"]
|
|
60
|
+
// CIL[DOC-MICRO logic_summary="Spreads props onto a fieldset with data-slot and a responsive flex gap using cn class merging" notable_decisions="[]"]
|
|
61
|
+
// CIL[DOC-CONFIDENCE pass="second" score="0.90" flags="none"]
|
|
62
|
+
// CIL[DOC-STABILITY stable]
|
|
50
63
|
function FieldSet({ className, ...props }: React.ComponentProps<"fieldset">) {
|
|
51
64
|
return (
|
|
52
65
|
<fieldset
|
|
@@ -59,21 +72,22 @@ function FieldSet({ className, ...props }: React.ComponentProps<"fieldset">) {
|
|
|
59
72
|
/>
|
|
60
73
|
)
|
|
61
74
|
}
|
|
62
|
-
// CIL[
|
|
63
|
-
// CIL[
|
|
64
|
-
// CIL[DOC-
|
|
65
|
-
// CIL[DOC-
|
|
66
|
-
// CIL[DOC-CONTEXT module="field" layer="ui" related_files="[\".framework/src/components/ui/dialog.tsx\",\".framework/src/components/ui/table-primitives.tsx\",\"custom/apps/portal/pages/ContentPage.tsx\",\".framework/src/pages/admin/TypeDetailPage.tsx\",\"\\\"]"]
|
|
67
|
-
// CIL[DOC-CONTRACT inputs="none" outputs="styled legend element" errors="none" side_effects="renders DOM"]
|
|
68
|
-
// CIL[DOC-MICRO logic_summary="Creates legend with conditional styling based on variant type" notable_decisions="[]"]
|
|
69
|
-
// CIL[DOC-CONFIDENCE pass="second" score="0.95" flags="none"]
|
|
70
|
-
// CIL[DOC-STABILITY stability="stable"]
|
|
71
|
-
// CIL[DOC-VECTOR type="context" content="Layer: ui. Direct callers: 0. Direct calls: 0. Related files: .framework/src/components/ui/dialog.tsx, .framework/src/components/ui/table-primitives.tsx, custom/apps/portal/pages/ContentPage.tsx, .framework/src/pages/admin/TypeDetailPage.tsx, \."]
|
|
72
|
-
// CIL[DOC-VECTOR type="blast_radius" content="Direct callers: 0. Total affected: 0."]
|
|
73
|
-
// CIL[DOC-VECTOR type="configuration" content="No configuration dependencies."]
|
|
74
|
-
// CIL[DOC-VECTOR type="constraint" content="No test paths identified."]
|
|
75
|
+
// CIL[DOC-VECTOR type="context" content="purpose='Render a fieldset wrapper for grouped form controls'; No verified external callers; imports: .framework/src/lib/utils.ts,.framework/src/components/ui/label.tsx,.framework/src/components/ui/separator.tsx"]
|
|
76
|
+
// CIL[DOC-VECTOR type="blast_radius" content="No direct caller data from CIL graph; local impact only"]
|
|
77
|
+
// CIL[DOC-VECTOR type="configuration" content="No environment or build configuration dependencies identified"]
|
|
78
|
+
// CIL[DOC-VECTOR type="constraint" content="Standard runtime; no special invariants documented"]
|
|
75
79
|
// CIL[DOC-VECTOR type="implementation_pattern" content="" status="pending_human_input"]
|
|
76
80
|
// CIL[DOC-VECTOR type="user_journey" content="" status="pending_human_input"]
|
|
81
|
+
// CIL[END stable_id="~/.framework/src/components/ui/field.tsx:FieldSet:component"]
|
|
82
|
+
|
|
83
|
+
// CIL[BEGIN stable_id="~/.framework/src/components/ui/field.tsx:FieldLegend:component" type="component" identity="FieldLegend" parent="~/.framework/src/components/ui/field.tsx"]
|
|
84
|
+
// CIL[DOC-MACRO purpose="Render a styled legend or label variant for field groups"]
|
|
85
|
+
// CIL[DOC-RESPONSIBILITY responsibility="Display a field legend with optional label styling"]
|
|
86
|
+
// CIL[DOC-CONTEXT module=".framework/src/components/ui/field.tsx" layer="ui" related_files=".framework/src/components/ui/field.tsx,.framework/src/components/ui/label.tsx,.framework/src/components/ui/separator.tsx,.framework/src/lib/utils.ts"]
|
|
87
|
+
// CIL[DOC-CONTRACT inputs="className: string, variant: 'legend' | 'label', ...props: React.ComponentProps<legend>" outputs="JSX.Element" errors="none" side_effects="none"]
|
|
88
|
+
// CIL[DOC-MICRO logic_summary="Renders a legend with data-variant and conditional text sizing classes" notable_decisions="[]"]
|
|
89
|
+
// CIL[DOC-CONFIDENCE pass="second" score="0.90" flags="none"]
|
|
90
|
+
// CIL[DOC-STABILITY stable]
|
|
77
91
|
function FieldLegend({
|
|
78
92
|
className,
|
|
79
93
|
variant = "legend",
|
|
@@ -91,21 +105,22 @@ function FieldLegend({
|
|
|
91
105
|
/>
|
|
92
106
|
)
|
|
93
107
|
}
|
|
94
|
-
// CIL[
|
|
95
|
-
// CIL[
|
|
96
|
-
// CIL[DOC-
|
|
97
|
-
// CIL[DOC-
|
|
98
|
-
// CIL[DOC-CONTEXT module="field" layer="ui" related_files="[\".framework/src/pages/admin/TypeDetailPage.tsx\",\".framework/functions/_shared/schema-utils.ts\",\".framework/functions/_shared/principal.ts\",\".framework/functions/_shared/db.ts\",\"custom/apps/cortex/pages/operations/OperationsDashboard.tsx\",\"\\\"]"]
|
|
99
|
-
// CIL[DOC-CONTRACT inputs="none" outputs="styled group div" errors="none" side_effects="renders DOM"]
|
|
100
|
-
// CIL[DOC-MICRO logic_summary="Creates container query aware flex column with conditional spacing" notable_decisions="[]"]
|
|
101
|
-
// CIL[DOC-CONFIDENCE pass="second" score="0.95" flags="none"]
|
|
102
|
-
// CIL[DOC-STABILITY stability="stable"]
|
|
103
|
-
// CIL[DOC-VECTOR type="context" content="Layer: ui. Direct callers: 0. Direct calls: 0. Related files: .framework/src/pages/admin/TypeDetailPage.tsx, .framework/functions/_shared/schema-utils.ts, .framework/functions/_shared/principal.ts, .framework/functions/_shared/db.ts, custom/apps/cortex/pages/operations/OperationsDashboard.tsx, \."]
|
|
104
|
-
// CIL[DOC-VECTOR type="blast_radius" content="Direct callers: 0. Total affected: 0."]
|
|
105
|
-
// CIL[DOC-VECTOR type="configuration" content="No configuration dependencies."]
|
|
106
|
-
// CIL[DOC-VECTOR type="constraint" content="No test paths identified."]
|
|
108
|
+
// CIL[DOC-VECTOR type="context" content="purpose='Render a styled legend or label variant for field groups'; No verified external callers; imports: .framework/src/lib/utils.ts,.framework/src/components/ui/label.tsx,.framework/src/components/ui/separator.tsx"]
|
|
109
|
+
// CIL[DOC-VECTOR type="blast_radius" content="No direct caller data from CIL graph; local impact only"]
|
|
110
|
+
// CIL[DOC-VECTOR type="configuration" content="No environment or build configuration dependencies identified"]
|
|
111
|
+
// CIL[DOC-VECTOR type="constraint" content="Standard runtime; no special invariants documented"]
|
|
107
112
|
// CIL[DOC-VECTOR type="implementation_pattern" content="" status="pending_human_input"]
|
|
108
113
|
// CIL[DOC-VECTOR type="user_journey" content="" status="pending_human_input"]
|
|
114
|
+
// CIL[END stable_id="~/.framework/src/components/ui/field.tsx:FieldLegend:component"]
|
|
115
|
+
|
|
116
|
+
// CIL[BEGIN stable_id="~/.framework/src/components/ui/field.tsx:FieldGroup:component" type="component" identity="FieldGroup" parent="~/.framework/src/components/ui/field.tsx"]
|
|
117
|
+
// CIL[DOC-MACRO purpose="Render a full-width container for grouped fields"]
|
|
118
|
+
// CIL[DOC-RESPONSIBILITY responsibility="Provide a responsive, container-aware field group wrapper"]
|
|
119
|
+
// CIL[DOC-CONTEXT module=".framework/src/components/ui/field.tsx" layer="ui" related_files=".framework/src/components/ui/field.tsx,.framework/src/components/ui/label.tsx,.framework/src/components/ui/separator.tsx,.framework/src/lib/utils.ts"]
|
|
120
|
+
// CIL[DOC-CONTRACT inputs="className: string, ...props: React.ComponentProps<div>" outputs="JSX.Element" errors="none" side_effects="none"]
|
|
121
|
+
// CIL[DOC-MICRO logic_summary="Applies data-slot and container query classes for vertical spacing between nested field groups" notable_decisions="[]"]
|
|
122
|
+
// CIL[DOC-CONFIDENCE pass="second" score="0.90" flags="none"]
|
|
123
|
+
// CIL[DOC-STABILITY stable]
|
|
109
124
|
function FieldGroup({ className, ...props }: React.ComponentProps<"div">) {
|
|
110
125
|
return (
|
|
111
126
|
<div
|
|
@@ -118,21 +133,23 @@ function FieldGroup({ className, ...props }: React.ComponentProps<"div">) {
|
|
|
118
133
|
/>
|
|
119
134
|
)
|
|
120
135
|
}
|
|
121
|
-
// CIL[
|
|
122
|
-
// CIL[
|
|
123
|
-
// CIL[DOC-
|
|
124
|
-
// CIL[DOC-
|
|
125
|
-
// CIL[DOC-CONTEXT module="field" layer="ui" related_files="[]"]
|
|
126
|
-
// CIL[DOC-CONTRACT inputs="none" outputs="CSS class names" errors="none" side_effects="none"]
|
|
127
|
-
// CIL[DOC-MICRO logic_summary="CVA configuration for vertical, horizontal, and responsive layouts" notable_decisions="[]"]
|
|
128
|
-
// CIL[DOC-CONFIDENCE pass="second" score="0.95" flags="none"]
|
|
129
|
-
// CIL[DOC-STABILITY stability="stable"]
|
|
130
|
-
// CIL[DOC-VECTOR type="context" content="Layer: ui. Direct callers: 0. Direct calls: 0. Related files: none."]
|
|
131
|
-
// CIL[DOC-VECTOR type="blast_radius" content="Direct callers: 0. Total affected: 0."]
|
|
132
|
-
// CIL[DOC-VECTOR type="configuration" content="No configuration dependencies."]
|
|
133
|
-
// CIL[DOC-VECTOR type="constraint" content="No test paths identified."]
|
|
136
|
+
// CIL[DOC-VECTOR type="context" content="purpose='Render a full-width container for grouped fields'; No verified external callers; imports: .framework/src/lib/utils.ts,.framework/src/components/ui/label.tsx,.framework/src/components/ui/separator.tsx"]
|
|
137
|
+
// CIL[DOC-VECTOR type="blast_radius" content="No direct caller data from CIL graph; local impact only"]
|
|
138
|
+
// CIL[DOC-VECTOR type="configuration" content="No environment or build configuration dependencies identified"]
|
|
139
|
+
// CIL[DOC-VECTOR type="constraint" content="Standard runtime; no special invariants documented"]
|
|
134
140
|
// CIL[DOC-VECTOR type="implementation_pattern" content="" status="pending_human_input"]
|
|
135
141
|
// CIL[DOC-VECTOR type="user_journey" content="" status="pending_human_input"]
|
|
142
|
+
// CIL[END stable_id="~/.framework/src/components/ui/field.tsx:FieldGroup:component"]
|
|
143
|
+
|
|
144
|
+
|
|
145
|
+
// CIL[BEGIN stable_id="~/.framework/src/components/ui/field.tsx:fieldVariants:constant" type="constant" identity="fieldVariants" parent="~/.framework/src/components/ui/field.tsx"]
|
|
146
|
+
// CIL[DOC-MACRO purpose="Define CVA style variants for field layout orientation"]
|
|
147
|
+
// CIL[DOC-RESPONSIBILITY responsibility="Supply flex-orientation classes for vertical, horizontal, and responsive field layouts"]
|
|
148
|
+
// CIL[DOC-CONTEXT module=".framework/src/components/ui/field.tsx" layer="ui" related_files=".framework/src/components/ui/field.tsx,.framework/src/components/ui/label.tsx,.framework/src/components/ui/separator.tsx,.framework/src/lib/utils.ts"]
|
|
149
|
+
// CIL[DOC-CONTRACT inputs="orientation: 'vertical' | 'horizontal' | 'responsive'" outputs="merged className string" errors="none" side_effects="none"]
|
|
150
|
+
// CIL[DOC-MICRO logic_summary="Uses class-variance-authority to combine base, orientation, and default variant classes" notable_decisions="[]"]
|
|
151
|
+
// CIL[DOC-CONFIDENCE pass="second" score="0.90" flags="none"]
|
|
152
|
+
// CIL[DOC-STABILITY stable]
|
|
136
153
|
const fieldVariants = cva(
|
|
137
154
|
"group/field flex w-full gap-2 data-[invalid=true]:text-destructive",
|
|
138
155
|
{
|
|
@@ -150,21 +167,23 @@ const fieldVariants = cva(
|
|
|
150
167
|
},
|
|
151
168
|
}
|
|
152
169
|
)
|
|
153
|
-
// CIL[
|
|
154
|
-
// CIL[
|
|
155
|
-
// CIL[DOC-
|
|
156
|
-
// CIL[DOC-
|
|
157
|
-
// CIL[DOC-CONTEXT module="field" layer="ui" related_files="[]"]
|
|
158
|
-
// CIL[DOC-CONTRACT inputs="none" outputs="styled field div" errors="none" side_effects="renders DOM"]
|
|
159
|
-
// CIL[DOC-MICRO logic_summary="Creates group role container with orientation-based styling" notable_decisions="[]"]
|
|
160
|
-
// CIL[DOC-CONFIDENCE pass="second" score="0.95" flags="none"]
|
|
161
|
-
// CIL[DOC-STABILITY stability="stable"]
|
|
162
|
-
// CIL[DOC-VECTOR type="context" content="Layer: ui. Direct callers: 0. Direct calls: 0. Related files: none."]
|
|
163
|
-
// CIL[DOC-VECTOR type="blast_radius" content="Direct callers: 0. Total affected: 0."]
|
|
164
|
-
// CIL[DOC-VECTOR type="configuration" content="No configuration dependencies."]
|
|
165
|
-
// CIL[DOC-VECTOR type="constraint" content="No test paths identified."]
|
|
170
|
+
// CIL[DOC-VECTOR type="context" content="purpose='Define CVA style variants for field layout orientation'; No verified external callers; imports: .framework/src/lib/utils.ts,.framework/src/components/ui/label.tsx,.framework/src/components/ui/separator.tsx"]
|
|
171
|
+
// CIL[DOC-VECTOR type="blast_radius" content="No direct caller data from CIL graph; local impact only"]
|
|
172
|
+
// CIL[DOC-VECTOR type="configuration" content="No environment or build configuration dependencies identified"]
|
|
173
|
+
// CIL[DOC-VECTOR type="constraint" content="Standard runtime; no special invariants documented"]
|
|
166
174
|
// CIL[DOC-VECTOR type="implementation_pattern" content="" status="pending_human_input"]
|
|
167
175
|
// CIL[DOC-VECTOR type="user_journey" content="" status="pending_human_input"]
|
|
176
|
+
// CIL[END stable_id="~/.framework/src/components/ui/field.tsx:fieldVariants:constant"]
|
|
177
|
+
|
|
178
|
+
|
|
179
|
+
// CIL[BEGIN stable_id="~/.framework/src/components/ui/field.tsx:Field:component" type="component" identity="Field" parent="~/.framework/src/components/ui/field.tsx"]
|
|
180
|
+
// CIL[DOC-MACRO purpose="Render the root field container with orientation variants"]
|
|
181
|
+
// CIL[DOC-RESPONSIBILITY responsibility="Compose the field wrapper and apply the selected field variant"]
|
|
182
|
+
// CIL[DOC-CONTEXT module=".framework/src/components/ui/field.tsx" layer="ui" related_files=".framework/src/components/ui/field.tsx,.framework/src/components/ui/label.tsx,.framework/src/components/ui/separator.tsx,.framework/src/lib/utils.ts"]
|
|
183
|
+
// CIL[DOC-CONTRACT inputs="className: string, orientation: 'vertical' | 'horizontal' | 'responsive', ...props: React.ComponentProps<div>" outputs="JSX.Element" errors="none" side_effects="none"]
|
|
184
|
+
// CIL[DOC-MICRO logic_summary="Renders a div with role group, data-slot, and applies fieldVariants output with className" notable_decisions="[]"]
|
|
185
|
+
// CIL[DOC-CONFIDENCE pass="second" score="0.90" flags="none"]
|
|
186
|
+
// CIL[DOC-STABILITY stable]
|
|
168
187
|
function Field({
|
|
169
188
|
className,
|
|
170
189
|
orientation = "vertical",
|
|
@@ -180,21 +199,23 @@ function Field({
|
|
|
180
199
|
/>
|
|
181
200
|
)
|
|
182
201
|
}
|
|
183
|
-
// CIL[
|
|
184
|
-
// CIL[
|
|
185
|
-
// CIL[DOC-
|
|
186
|
-
// CIL[DOC-
|
|
187
|
-
// CIL[DOC-CONTEXT module="field" layer="ui" related_files="[]"]
|
|
188
|
-
// CIL[DOC-CONTRACT inputs="none" outputs="styled content div" errors="none" side_effects="renders DOM"]
|
|
189
|
-
// CIL[DOC-MICRO logic_summary="Creates flex column container with tight spacing for inputs" notable_decisions="[]"]
|
|
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: ui. Direct callers: 0. Direct calls: 0. Related files: none."]
|
|
193
|
-
// CIL[DOC-VECTOR type="blast_radius" content="Direct callers: 0. Total affected: 0."]
|
|
194
|
-
// CIL[DOC-VECTOR type="configuration" content="No configuration dependencies."]
|
|
195
|
-
// CIL[DOC-VECTOR type="constraint" content="No test paths identified."]
|
|
202
|
+
// CIL[DOC-VECTOR type="context" content="purpose='Render the root field container with orientation variants'; No verified external callers; imports: .framework/src/lib/utils.ts,.framework/src/components/ui/label.tsx,.framework/src/components/ui/separator.tsx"]
|
|
203
|
+
// CIL[DOC-VECTOR type="blast_radius" content="No direct caller data from CIL graph; local impact only"]
|
|
204
|
+
// CIL[DOC-VECTOR type="configuration" content="No environment or build configuration dependencies identified"]
|
|
205
|
+
// CIL[DOC-VECTOR type="constraint" content="Standard runtime; no special invariants documented"]
|
|
196
206
|
// CIL[DOC-VECTOR type="implementation_pattern" content="" status="pending_human_input"]
|
|
197
207
|
// CIL[DOC-VECTOR type="user_journey" content="" status="pending_human_input"]
|
|
208
|
+
// CIL[END stable_id="~/.framework/src/components/ui/field.tsx:Field:component"]
|
|
209
|
+
|
|
210
|
+
|
|
211
|
+
// CIL[BEGIN stable_id="~/.framework/src/components/ui/field.tsx:FieldContent:component" type="component" identity="FieldContent" parent="~/.framework/src/components/ui/field.tsx"]
|
|
212
|
+
// CIL[DOC-MACRO purpose="Render the content area inside a field"]
|
|
213
|
+
// CIL[DOC-RESPONSIBILITY responsibility="Hold the control and description within a field"]
|
|
214
|
+
// CIL[DOC-CONTEXT module=".framework/src/components/ui/field.tsx" layer="ui" related_files=".framework/src/components/ui/field.tsx,.framework/src/components/ui/label.tsx,.framework/src/components/ui/separator.tsx,.framework/src/lib/utils.ts"]
|
|
215
|
+
// CIL[DOC-CONTRACT inputs="className: string, ...props: React.ComponentProps<div>" outputs="JSX.Element" errors="none" side_effects="none"]
|
|
216
|
+
// CIL[DOC-MICRO logic_summary="Renders a div with data-slot, flex-1, and a tight vertical gap for field content" notable_decisions="[]"]
|
|
217
|
+
// CIL[DOC-CONFIDENCE pass="second" score="0.90" flags="none"]
|
|
218
|
+
// CIL[DOC-STABILITY stable]
|
|
198
219
|
function FieldContent({ className, ...props }: React.ComponentProps<"div">) {
|
|
199
220
|
return (
|
|
200
221
|
<div
|
|
@@ -207,21 +228,22 @@ function FieldContent({ className, ...props }: React.ComponentProps<"div">) {
|
|
|
207
228
|
/>
|
|
208
229
|
)
|
|
209
230
|
}
|
|
210
|
-
// CIL[
|
|
211
|
-
// CIL[
|
|
212
|
-
// CIL[DOC-
|
|
213
|
-
// CIL[DOC-
|
|
214
|
-
// CIL[DOC-CONTEXT module="field" layer="ui" related_files="[]"]
|
|
215
|
-
// CIL[DOC-CONTRACT inputs="none" outputs="styled Label component" errors="none" side_effects="renders DOM"]
|
|
216
|
-
// CIL[DOC-MICRO logic_summary="Creates label with conditional styling and responsive layout" notable_decisions="[]"]
|
|
217
|
-
// CIL[DOC-CONFIDENCE pass="second" score="0.95" flags="none"]
|
|
218
|
-
// CIL[DOC-STABILITY stability="stable"]
|
|
219
|
-
// CIL[DOC-VECTOR type="context" content="Layer: ui. Direct callers: 0. Direct calls: 0. Related files: none."]
|
|
220
|
-
// CIL[DOC-VECTOR type="blast_radius" content="Direct callers: 0. Total affected: 0."]
|
|
221
|
-
// CIL[DOC-VECTOR type="configuration" content="No configuration dependencies."]
|
|
222
|
-
// CIL[DOC-VECTOR type="constraint" content="No test paths identified."]
|
|
231
|
+
// CIL[DOC-VECTOR type="context" content="purpose='Render the content area inside a field'; No verified external callers; imports: .framework/src/lib/utils.ts,.framework/src/components/ui/label.tsx,.framework/src/components/ui/separator.tsx"]
|
|
232
|
+
// CIL[DOC-VECTOR type="blast_radius" content="No direct caller data from CIL graph; local impact only"]
|
|
233
|
+
// CIL[DOC-VECTOR type="configuration" content="No environment or build configuration dependencies identified"]
|
|
234
|
+
// CIL[DOC-VECTOR type="constraint" content="Standard runtime; no special invariants documented"]
|
|
223
235
|
// CIL[DOC-VECTOR type="implementation_pattern" content="" status="pending_human_input"]
|
|
224
236
|
// CIL[DOC-VECTOR type="user_journey" content="" status="pending_human_input"]
|
|
237
|
+
// CIL[END stable_id="~/.framework/src/components/ui/field.tsx:FieldContent:component"]
|
|
238
|
+
|
|
239
|
+
// CIL[BEGIN stable_id="~/.framework/src/components/ui/field.tsx:FieldLabel:component" type="component" identity="FieldLabel" parent="~/.framework/src/components/ui/field.tsx"]
|
|
240
|
+
// CIL[DOC-MACRO purpose="Render a label for a field using the shared Label component"]
|
|
241
|
+
// CIL[DOC-RESPONSIBILITY responsibility="Provide a styled, interactive-aware label wrapper"]
|
|
242
|
+
// CIL[DOC-CONTEXT module=".framework/src/components/ui/field.tsx" layer="ui" related_files=".framework/src/components/ui/field.tsx,.framework/src/components/ui/label.tsx,.framework/src/components/ui/separator.tsx,.framework/src/lib/utils.ts"]
|
|
243
|
+
// CIL[DOC-CONTRACT inputs="className: string, ...props: React.ComponentProps<typeof Label>" outputs="JSX.Element" errors="none" side_effects="none"]
|
|
244
|
+
// CIL[DOC-MICRO logic_summary="Wraps the imported Label with data-slot and peer/state-aware background and border classes" notable_decisions="[]"]
|
|
245
|
+
// CIL[DOC-CONFIDENCE pass="second" score="0.90" flags="none"]
|
|
246
|
+
// CIL[DOC-STABILITY stable]
|
|
225
247
|
function FieldLabel({
|
|
226
248
|
className,
|
|
227
249
|
...props
|
|
@@ -238,21 +260,22 @@ function FieldLabel({
|
|
|
238
260
|
/>
|
|
239
261
|
)
|
|
240
262
|
}
|
|
241
|
-
// CIL[
|
|
242
|
-
// CIL[
|
|
243
|
-
// CIL[DOC-
|
|
244
|
-
// CIL[DOC-
|
|
245
|
-
// CIL[DOC-CONTEXT module="field" layer="ui" related_files="[]"]
|
|
246
|
-
// CIL[DOC-CONTRACT inputs="none" outputs="styled title div" errors="none" side_effects="renders DOM"]
|
|
247
|
-
// CIL[DOC-MICRO logic_summary="Creates small, medium-weight title with disabled state styling" notable_decisions="[]"]
|
|
248
|
-
// CIL[DOC-CONFIDENCE pass="second" score="0.95" flags="none"]
|
|
249
|
-
// CIL[DOC-STABILITY stability="stable"]
|
|
250
|
-
// CIL[DOC-VECTOR type="context" content="Layer: ui. Direct callers: 0. Direct calls: 0. Related files: none."]
|
|
251
|
-
// CIL[DOC-VECTOR type="blast_radius" content="Direct callers: 0. Total affected: 0."]
|
|
252
|
-
// CIL[DOC-VECTOR type="configuration" content="No configuration dependencies."]
|
|
253
|
-
// CIL[DOC-VECTOR type="constraint" content="No test paths identified."]
|
|
263
|
+
// CIL[DOC-VECTOR type="context" content="purpose='Render a label for a field using the shared Label component'; No verified external callers; imports: .framework/src/lib/utils.ts,.framework/src/components/ui/label.tsx,.framework/src/components/ui/separator.tsx"]
|
|
264
|
+
// CIL[DOC-VECTOR type="blast_radius" content="No direct caller data from CIL graph; local impact only"]
|
|
265
|
+
// CIL[DOC-VECTOR type="configuration" content="No environment or build configuration dependencies identified"]
|
|
266
|
+
// CIL[DOC-VECTOR type="constraint" content="Standard runtime; no special invariants documented"]
|
|
254
267
|
// CIL[DOC-VECTOR type="implementation_pattern" content="" status="pending_human_input"]
|
|
255
268
|
// CIL[DOC-VECTOR type="user_journey" content="" status="pending_human_input"]
|
|
269
|
+
// CIL[END stable_id="~/.framework/src/components/ui/field.tsx:FieldLabel:component"]
|
|
270
|
+
|
|
271
|
+
// CIL[BEGIN stable_id="~/.framework/src/components/ui/field.tsx:FieldTitle:component" type="component" identity="FieldTitle" parent="~/.framework/src/components/ui/field.tsx"]
|
|
272
|
+
// CIL[DOC-MACRO purpose="Render a small field title inside a label"]
|
|
273
|
+
// CIL[DOC-RESPONSIBILITY responsibility="Display a concise title for field labels"]
|
|
274
|
+
// CIL[DOC-CONTEXT module=".framework/src/components/ui/field.tsx" layer="ui" related_files=".framework/src/components/ui/field.tsx,.framework/src/components/ui/label.tsx,.framework/src/components/ui/separator.tsx,.framework/src/lib/utils.ts"]
|
|
275
|
+
// CIL[DOC-CONTRACT inputs="className: string, ...props: React.ComponentProps<div>" outputs="JSX.Element" errors="none" side_effects="none"]
|
|
276
|
+
// CIL[DOC-MICRO logic_summary="Renders a div with data-slot and small medium text styling" notable_decisions="[]"]
|
|
277
|
+
// CIL[DOC-CONFIDENCE pass="second" score="0.90" flags="none"]
|
|
278
|
+
// CIL[DOC-STABILITY stable]
|
|
256
279
|
function FieldTitle({ className, ...props }: React.ComponentProps<"div">) {
|
|
257
280
|
return (
|
|
258
281
|
<div
|
|
@@ -265,21 +288,22 @@ function FieldTitle({ className, ...props }: React.ComponentProps<"div">) {
|
|
|
265
288
|
/>
|
|
266
289
|
)
|
|
267
290
|
}
|
|
268
|
-
// CIL[
|
|
269
|
-
// CIL[
|
|
270
|
-
// CIL[DOC-
|
|
271
|
-
// CIL[DOC-
|
|
272
|
-
// CIL[DOC-CONTEXT module="field" layer="ui" related_files="[]"]
|
|
273
|
-
// CIL[DOC-CONTRACT inputs="none" outputs="styled description p" errors="none" side_effects="renders DOM"]
|
|
274
|
-
// CIL[DOC-MICRO logic_summary="Creates muted text with conditional spacing and link styling" notable_decisions="[]"]
|
|
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: ui. Direct callers: 0. Direct calls: 0. Related files: none."]
|
|
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."]
|
|
291
|
+
// CIL[DOC-VECTOR type="context" content="purpose='Render a small field title inside a label'; No verified external callers; imports: .framework/src/lib/utils.ts,.framework/src/components/ui/label.tsx,.framework/src/components/ui/separator.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"]
|
|
281
295
|
// CIL[DOC-VECTOR type="implementation_pattern" content="" status="pending_human_input"]
|
|
282
296
|
// CIL[DOC-VECTOR type="user_journey" content="" status="pending_human_input"]
|
|
297
|
+
// CIL[END stable_id="~/.framework/src/components/ui/field.tsx:FieldTitle:component"]
|
|
298
|
+
|
|
299
|
+
// CIL[BEGIN stable_id="~/.framework/src/components/ui/field.tsx:FieldDescription:component" type="component" identity="FieldDescription" parent="~/.framework/src/components/ui/field.tsx"]
|
|
300
|
+
// CIL[DOC-MACRO purpose="Render descriptive helper text for a field"]
|
|
301
|
+
// CIL[DOC-RESPONSIBILITY responsibility="Show muted helper or hint text with link styling"]
|
|
302
|
+
// CIL[DOC-CONTEXT module=".framework/src/components/ui/field.tsx" layer="ui" related_files=".framework/src/components/ui/field.tsx,.framework/src/components/ui/label.tsx,.framework/src/components/ui/separator.tsx,.framework/src/lib/utils.ts"]
|
|
303
|
+
// CIL[DOC-CONTRACT inputs="className: string, ...props: React.ComponentProps<p>" outputs="JSX.Element" errors="none" side_effects="none"]
|
|
304
|
+
// CIL[DOC-MICRO logic_summary="Renders a p with data-slot, muted color, and underline styles for nested links" notable_decisions="[]"]
|
|
305
|
+
// CIL[DOC-CONFIDENCE pass="second" score="0.90" flags="none"]
|
|
306
|
+
// CIL[DOC-STABILITY stable]
|
|
283
307
|
function FieldDescription({ className, ...props }: React.ComponentProps<"p">) {
|
|
284
308
|
return (
|
|
285
309
|
<p
|
|
@@ -294,21 +318,22 @@ function FieldDescription({ className, ...props }: React.ComponentProps<"p">) {
|
|
|
294
318
|
/>
|
|
295
319
|
)
|
|
296
320
|
}
|
|
297
|
-
// CIL[
|
|
298
|
-
// CIL[
|
|
299
|
-
// CIL[DOC-
|
|
300
|
-
// CIL[DOC-
|
|
301
|
-
// CIL[DOC-CONTEXT module="field" layer="ui" related_files="[]"]
|
|
302
|
-
// CIL[DOC-CONTRACT inputs="none" outputs="styled separator div" errors="none" side_effects="renders DOM"]
|
|
303
|
-
// CIL[DOC-MICRO logic_summary="Creates horizontal line with centered content overlay" notable_decisions="[]"]
|
|
304
|
-
// CIL[DOC-CONFIDENCE pass="second" score="0.95" flags="none"]
|
|
305
|
-
// CIL[DOC-STABILITY stability="stable"]
|
|
306
|
-
// CIL[DOC-VECTOR type="context" content="Layer: ui. Direct callers: 0. Direct calls: 0. Related files: none."]
|
|
307
|
-
// CIL[DOC-VECTOR type="blast_radius" content="Direct callers: 0. Total affected: 0."]
|
|
308
|
-
// CIL[DOC-VECTOR type="configuration" content="No configuration dependencies."]
|
|
309
|
-
// CIL[DOC-VECTOR type="constraint" content="No test paths identified."]
|
|
321
|
+
// CIL[DOC-VECTOR type="context" content="purpose='Render descriptive helper text for a field'; No verified external callers; imports: .framework/src/lib/utils.ts,.framework/src/components/ui/label.tsx,.framework/src/components/ui/separator.tsx"]
|
|
322
|
+
// CIL[DOC-VECTOR type="blast_radius" content="No direct caller data from CIL graph; local impact only"]
|
|
323
|
+
// CIL[DOC-VECTOR type="configuration" content="No environment or build configuration dependencies identified"]
|
|
324
|
+
// CIL[DOC-VECTOR type="constraint" content="Standard runtime; no special invariants documented"]
|
|
310
325
|
// CIL[DOC-VECTOR type="implementation_pattern" content="" status="pending_human_input"]
|
|
311
326
|
// CIL[DOC-VECTOR type="user_journey" content="" status="pending_human_input"]
|
|
327
|
+
// CIL[END stable_id="~/.framework/src/components/ui/field.tsx:FieldDescription:component"]
|
|
328
|
+
|
|
329
|
+
// CIL[BEGIN stable_id="~/.framework/src/components/ui/field.tsx:FieldSeparator:component" type="component" identity="FieldSeparator" parent="~/.framework/src/components/ui/field.tsx"]
|
|
330
|
+
// CIL[DOC-MACRO purpose="Render a visual separator with optional centered content"]
|
|
331
|
+
// CIL[DOC-RESPONSIBILITY responsibility="Display a horizontal separator with an optional label"]
|
|
332
|
+
// CIL[DOC-CONTEXT module=".framework/src/components/ui/field.tsx" layer="ui" related_files=".framework/src/components/ui/field.tsx,.framework/src/components/ui/label.tsx,.framework/src/components/ui/separator.tsx,.framework/src/lib/utils.ts"]
|
|
333
|
+
// CIL[DOC-CONTRACT inputs="className: string, children: React.ReactNode, ...props: React.ComponentProps<div>" outputs="JSX.Element" errors="none" side_effects="none"]
|
|
334
|
+
// CIL[DOC-MICRO logic_summary="Renders a relative div with the Separator primitive and centered text when children are present" notable_decisions="[]"]
|
|
335
|
+
// CIL[DOC-CONFIDENCE pass="second" score="0.90" flags="none"]
|
|
336
|
+
// CIL[DOC-STABILITY stable]
|
|
312
337
|
function FieldSeparator({
|
|
313
338
|
children,
|
|
314
339
|
className,
|
|
@@ -338,21 +363,22 @@ function FieldSeparator({
|
|
|
338
363
|
</div>
|
|
339
364
|
)
|
|
340
365
|
}
|
|
341
|
-
// CIL[
|
|
342
|
-
// CIL[
|
|
343
|
-
// CIL[DOC-
|
|
344
|
-
// CIL[DOC-
|
|
345
|
-
// CIL[DOC-CONTEXT module="field" layer="ui" related_files="[]"]
|
|
346
|
-
// CIL[DOC-CONTRACT inputs="none" outputs="error display div" errors="none" side_effects="renders DOM"]
|
|
347
|
-
// CIL[DOC-MICRO logic_summary="Processes error array with deduplication and conditional rendering" notable_decisions="[]"]
|
|
348
|
-
// CIL[DOC-CONFIDENCE pass="second" score="0.95" flags="none"]
|
|
349
|
-
// CIL[DOC-STABILITY stability="stable"]
|
|
350
|
-
// CIL[DOC-VECTOR type="context" content="Layer: ui. Direct callers: 0. Direct calls: 0. Related files: none."]
|
|
351
|
-
// CIL[DOC-VECTOR type="blast_radius" content="Direct callers: 0. Total affected: 0."]
|
|
352
|
-
// CIL[DOC-VECTOR type="configuration" content="No configuration dependencies."]
|
|
353
|
-
// CIL[DOC-VECTOR type="constraint" content="No test paths identified."]
|
|
366
|
+
// CIL[DOC-VECTOR type="context" content="purpose='Render a visual separator with optional centered content'; No verified external callers; imports: .framework/src/lib/utils.ts,.framework/src/components/ui/label.tsx,.framework/src/components/ui/separator.tsx"]
|
|
367
|
+
// CIL[DOC-VECTOR type="blast_radius" content="No direct caller data from CIL graph; local impact only"]
|
|
368
|
+
// CIL[DOC-VECTOR type="configuration" content="No environment or build configuration dependencies identified"]
|
|
369
|
+
// CIL[DOC-VECTOR type="constraint" content="Standard runtime; no special invariants documented"]
|
|
354
370
|
// CIL[DOC-VECTOR type="implementation_pattern" content="" status="pending_human_input"]
|
|
355
371
|
// CIL[DOC-VECTOR type="user_journey" content="" status="pending_human_input"]
|
|
372
|
+
// CIL[END stable_id="~/.framework/src/components/ui/field.tsx:FieldSeparator:component"]
|
|
373
|
+
|
|
374
|
+
// CIL[BEGIN stable_id="~/.framework/src/components/ui/field.tsx:FieldError:component" type="component" identity="FieldError" parent="~/.framework/src/components/ui/field.tsx"]
|
|
375
|
+
// CIL[DOC-MACRO purpose="Render validation errors for a field"]
|
|
376
|
+
// CIL[DOC-RESPONSIBILITY responsibility="Format and display field-level errors or children"]
|
|
377
|
+
// CIL[DOC-CONTEXT module=".framework/src/components/ui/field.tsx" layer="ui" related_files=".framework/src/components/ui/field.tsx,.framework/src/components/ui/label.tsx,.framework/src/components/ui/separator.tsx,.framework/src/lib/utils.ts"]
|
|
378
|
+
// CIL[DOC-CONTRACT inputs="className: string, children: React.ReactNode, errors: Array<{message?: string} | undefined>, ...props: React.ComponentProps<div>" outputs="JSX.Element | null" errors="none" side_effects="none"]
|
|
379
|
+
// CIL[DOC-MICRO logic_summary="Deduplicates error messages with useMemo and renders a single message or bullet list" notable_decisions="[]"]
|
|
380
|
+
// CIL[DOC-CONFIDENCE pass="second" score="0.90" flags="none"]
|
|
381
|
+
// CIL[DOC-STABILITY stable]
|
|
356
382
|
function FieldError({
|
|
357
383
|
className,
|
|
358
384
|
children,
|
|
@@ -403,21 +429,21 @@ function FieldError({
|
|
|
403
429
|
</div>
|
|
404
430
|
)
|
|
405
431
|
}
|
|
406
|
-
// CIL[
|
|
407
|
-
// CIL[
|
|
408
|
-
// CIL[DOC-
|
|
409
|
-
// CIL[DOC-
|
|
410
|
-
// CIL[DOC-CONTEXT module="field" layer="ui" related_files="[]"]
|
|
411
|
-
// CIL[DOC-CONTRACT inputs="none" outputs="component exports" errors="none" side_effects="module exports"]
|
|
412
|
-
// CIL[DOC-MICRO logic_summary="Exports all field form components for external usage" notable_decisions="[]"]
|
|
413
|
-
// CIL[DOC-CONFIDENCE pass="second" score="0.95" flags="none"]
|
|
414
|
-
// CIL[DOC-STABILITY stability="stable"]
|
|
415
|
-
// CIL[DOC-VECTOR type="context" content="Layer: ui. Direct callers: 0. Direct calls: 0. Related files: none."]
|
|
416
|
-
// CIL[DOC-VECTOR type="blast_radius" content="Direct callers: 0. Total affected: 0."]
|
|
417
|
-
// CIL[DOC-VECTOR type="configuration" content="No configuration dependencies."]
|
|
418
|
-
// CIL[DOC-VECTOR type="constraint" content="No test paths identified."]
|
|
432
|
+
// CIL[DOC-VECTOR type="context" content="purpose='Render validation errors for a field'; No verified external callers; imports: .framework/src/lib/utils.ts,.framework/src/components/ui/label.tsx,.framework/src/components/ui/separator.tsx"]
|
|
433
|
+
// CIL[DOC-VECTOR type="blast_radius" content="No direct caller data from CIL graph; local impact only"]
|
|
434
|
+
// CIL[DOC-VECTOR type="configuration" content="No environment or build configuration dependencies identified"]
|
|
435
|
+
// CIL[DOC-VECTOR type="constraint" content="Standard runtime; no special invariants documented"]
|
|
419
436
|
// CIL[DOC-VECTOR type="implementation_pattern" content="" status="pending_human_input"]
|
|
420
437
|
// CIL[DOC-VECTOR type="user_journey" content="" status="pending_human_input"]
|
|
438
|
+
// CIL[END stable_id="~/.framework/src/components/ui/field.tsx:FieldError:component"]
|
|
439
|
+
// CIL[BEGIN stable_id="~/.framework/src/components/ui/field.tsx:exports:variable" type="variable" identity="exports" parent="~/.framework/src/components/ui/field.tsx"]
|
|
440
|
+
// CIL[DOC-MACRO purpose="Public exports of the field UI primitives"]
|
|
441
|
+
// CIL[DOC-RESPONSIBILITY responsibility="Re-export all field component symbols for module consumers"]
|
|
442
|
+
// CIL[DOC-CONTEXT module=".framework/src/components/ui/field.tsx" layer="ui" related_files=".framework/src/components/ui/field.tsx,.framework/src/components/ui/label.tsx,.framework/src/components/ui/separator.tsx,.framework/src/lib/utils.ts"]
|
|
443
|
+
// CIL[DOC-CONTRACT inputs="none" outputs="named field component exports" errors="none" side_effects="none"]
|
|
444
|
+
// CIL[DOC-MICRO logic_summary="Named export block exposing Field, FieldLabel, FieldDescription, FieldError, FieldGroup, FieldLegend, FieldSeparator, FieldSet, FieldContent, FieldTitle" notable_decisions="[]"]
|
|
445
|
+
// CIL[DOC-CONFIDENCE pass="second" score="0.90" flags="none"]
|
|
446
|
+
// CIL[DOC-STABILITY stable]
|
|
421
447
|
export {
|
|
422
448
|
Field,
|
|
423
449
|
FieldLabel,
|
|
@@ -430,4 +456,10 @@ export {
|
|
|
430
456
|
FieldContent,
|
|
431
457
|
FieldTitle,
|
|
432
458
|
}
|
|
433
|
-
// CIL[
|
|
459
|
+
// CIL[DOC-VECTOR type="context" content="purpose='Public exports of the field UI primitives'; No verified external callers; imports: .framework/src/lib/utils.ts,.framework/src/components/ui/label.tsx,.framework/src/components/ui/separator.tsx"]
|
|
460
|
+
// CIL[DOC-VECTOR type="blast_radius" content="No direct caller data from CIL graph; local impact only"]
|
|
461
|
+
// CIL[DOC-VECTOR type="configuration" content="No environment or build configuration dependencies identified"]
|
|
462
|
+
// CIL[DOC-VECTOR type="constraint" content="Standard runtime; no special invariants documented"]
|
|
463
|
+
// CIL[DOC-VECTOR type="implementation_pattern" content="" status="pending_human_input"]
|
|
464
|
+
// CIL[DOC-VECTOR type="user_journey" content="" status="pending_human_input"]
|
|
465
|
+
// CIL[END stable_id="~/.framework/src/components/ui/field.tsx:exports:variable"]
|