spine-framework 0.3.144 → 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.
Files changed (451) hide show
  1. package/.env.example +76 -0
  2. package/.framework/.spine-manifest.json +19 -0
  3. package/.framework/cli/commands/agents.ts +61 -33
  4. package/.framework/cli/commands/auth.ts +60 -28
  5. package/.framework/cli/commands/create-app.ts +212 -80
  6. package/.framework/cli/commands/dev.ts +184 -68
  7. package/.framework/cli/commands/doctor.ts +324 -152
  8. package/.framework/cli/commands/generate.ts +119 -68
  9. package/.framework/cli/commands/init.ts +141 -242
  10. package/.framework/cli/commands/install-app.ts +1336 -314
  11. package/.framework/cli/commands/items.ts +31 -29
  12. package/.framework/cli/commands/migrate.ts +299 -156
  13. package/.framework/cli/commands/migrations.ts +62 -30
  14. package/.framework/cli/commands/pipelines.ts +31 -29
  15. package/.framework/cli/commands/status.ts +105 -45
  16. package/.framework/cli/commands/system.ts +47 -42
  17. package/.framework/cli/commands/test.ts +161 -102
  18. package/.framework/cli/commands/upgrade.ts +260 -0
  19. package/.framework/cli/commands/validate-app.ts +517 -161
  20. package/.framework/cli/context.ts +117 -85
  21. package/.framework/cli/env-loader.ts +74 -43
  22. package/.framework/cli/index.ts +70 -46
  23. package/.framework/cli/lib/project-files.ts +404 -0
  24. package/.framework/docs/guides/testing-guide.md +1 -1
  25. package/.framework/docs/runtime-types.md +72 -72
  26. package/.framework/functions/_shared/access.ts +84 -0
  27. package/.framework/functions/_shared/agent-runner.ts +5051 -1026
  28. package/.framework/functions/_shared/app-manifest.ts +214 -94
  29. package/.framework/functions/_shared/ast.ts +214 -0
  30. package/.framework/functions/_shared/audit.ts +91 -55
  31. package/.framework/functions/_shared/cil.ts +368 -127
  32. package/.framework/functions/_shared/db.ts +337 -68
  33. package/.framework/functions/_shared/funnel.ts +228 -0
  34. package/.framework/functions/_shared/geo.ts +105 -0
  35. package/.framework/functions/_shared/hash-api-key.ts +94 -17
  36. package/.framework/functions/_shared/index.ts +22 -224
  37. package/.framework/functions/_shared/kb.ts +832 -58
  38. package/.framework/functions/_shared/llm.ts +118 -18
  39. package/.framework/functions/_shared/logging.ts +317 -19
  40. package/.framework/functions/_shared/middleware.ts +701 -131
  41. package/.framework/functions/_shared/notify.ts +70 -0
  42. package/.framework/functions/_shared/outcomes.ts +34 -19
  43. package/.framework/functions/_shared/permissions.ts +501 -315
  44. package/.framework/functions/_shared/pipeline-runner.ts +704 -155
  45. package/.framework/functions/_shared/principal.ts +436 -263
  46. package/.framework/functions/_shared/rate-limit.ts +233 -0
  47. package/.framework/functions/_shared/resolve-credentials.ts +86 -19
  48. package/.framework/functions/_shared/resolve-ids.ts +203 -139
  49. package/.framework/functions/_shared/retry-deliveries.ts +51 -16
  50. package/.framework/functions/_shared/schema-utils.ts +602 -521
  51. package/.framework/functions/_shared/security.ts +345 -0
  52. package/.framework/functions/_shared/testing.ts +197 -172
  53. package/.framework/functions/_shared/tracing.ts +351 -21
  54. package/.framework/functions/_shared/trigger-engine.ts +425 -136
  55. package/.framework/functions/_shared/webhook-registration.ts +71 -70
  56. package/.framework/functions/_shared/webhook-registry.ts +126 -83
  57. package/.framework/functions/account-nodes.ts +30 -30
  58. package/.framework/functions/adapters/generic-webhook-inbound.ts +49 -16
  59. package/.framework/functions/adapters/generic-webhook-outbound.ts +17 -17
  60. package/.framework/functions/adapters/openai-outbound.ts +15 -16
  61. package/.framework/functions/admin-data.ts +596 -173
  62. package/.framework/functions/admin-funnel.ts +64 -60
  63. package/.framework/functions/admin-install-funnel.ts +84 -66
  64. package/.framework/functions/admin-signals.ts +69 -51
  65. package/.framework/functions/ai-agents.ts +431 -106
  66. package/.framework/functions/ai-interactions.ts +186 -112
  67. package/.framework/functions/api-keys.ts +107 -107
  68. package/.framework/functions/apps.ts +154 -136
  69. package/.framework/functions/auth.ts +83 -65
  70. package/.framework/functions/cil-agent-ingest.ts +189 -232
  71. package/.framework/functions/cil-agent.ts +433 -177
  72. package/.framework/functions/cil-callmap.ts +642 -430
  73. package/.framework/functions/cil-config.ts +139 -135
  74. package/.framework/functions/cil-context.ts +214 -127
  75. package/.framework/functions/cil-doc.ts +587 -458
  76. package/.framework/functions/cil-embeddings.ts +453 -364
  77. package/.framework/functions/cil-graph.ts +427 -142
  78. package/.framework/functions/cil-ingest.ts +1418 -1154
  79. package/.framework/functions/cil-pipeline.ts +276 -21
  80. package/.framework/functions/cil-project.ts +659 -132
  81. package/.framework/functions/cil-validate.ts +198 -164
  82. package/.framework/functions/debug-auth.ts +57 -55
  83. package/.framework/functions/deliveries.ts +80 -21
  84. package/.framework/functions/embeddings.ts +1023 -318
  85. package/.framework/functions/eval-harness.ts +146 -108
  86. package/.framework/functions/integration-outbound.ts +205 -75
  87. package/.framework/functions/integration-routes.ts +128 -23
  88. package/.framework/functions/integrations.ts +125 -100
  89. package/.framework/functions/invites.ts +1095 -460
  90. package/.framework/functions/item-progress.ts +158 -102
  91. package/.framework/functions/kb.ts +34 -10
  92. package/.framework/functions/logs.ts +133 -133
  93. package/.framework/functions/observability.ts +152 -122
  94. package/.framework/functions/pipeline-executions.ts +147 -132
  95. package/.framework/functions/pipelines.ts +134 -119
  96. package/.framework/functions/prompt-configs.ts +96 -80
  97. package/.framework/functions/roles.ts +112 -82
  98. package/.framework/functions/security.ts +450 -0
  99. package/.framework/functions/system-cron.ts +117 -80
  100. package/.framework/functions/system.ts +158 -98
  101. package/.framework/functions/tests.ts +29 -29
  102. package/.framework/functions/timers.ts +94 -95
  103. package/.framework/functions/trigger-scheduler.ts +10 -0
  104. package/.framework/functions/triggers.ts +179 -149
  105. package/.framework/functions/types.ts +137 -125
  106. package/.framework/mcp/index.ts +133 -0
  107. package/.framework/mcp/load-env.ts +60 -0
  108. package/.framework/mcp/shared/app-manifest.ts +275 -0
  109. package/.framework/mcp/shared/db.ts +477 -0
  110. package/.framework/mcp/shared/kb.ts +118 -0
  111. package/.framework/mcp/tools/architect.ts +431 -0
  112. package/.framework/mcp/tools/cil/context.ts +345 -0
  113. package/.framework/mcp/tools/cil/graph.ts +242 -0
  114. package/.framework/mcp/tools/cil/ingest.ts +1217 -0
  115. package/.framework/mcp/tools/cil/pipeline-orchestrator.ts +693 -0
  116. package/.framework/mcp/tools/cil/pipeline.ts +767 -0
  117. package/.framework/mcp/tools/cil/project.ts +791 -0
  118. package/.framework/mcp/tools/cil/retrieval.ts +336 -0
  119. package/.framework/mcp/tools/cil/search-core.ts +454 -0
  120. package/.framework/mcp/tools/cil/search.ts +97 -0
  121. package/.framework/mcp/tools/cil/suggest.ts +186 -0
  122. package/.framework/mcp/tools/cil/validate.ts +1369 -0
  123. package/.framework/mcp/tools/kb/delete.ts +139 -0
  124. package/.framework/mcp/tools/kb/index.ts +52 -0
  125. package/.framework/mcp/tools/kb/ingest.ts +84 -0
  126. package/.framework/mcp/tools/kb/list-types.ts +102 -0
  127. package/.framework/mcp/tools/kb/publish.ts +100 -0
  128. package/.framework/mcp/tools/kb/reindex.ts +86 -0
  129. package/.framework/mcp/tools/kb/revoke.ts +85 -0
  130. package/.framework/mcp/tools/kb/search.ts +101 -0
  131. package/.framework/mcp/tools/kb/upsert.ts +125 -0
  132. package/.framework/mcp/tools/observability.ts +510 -0
  133. package/.framework/migrations/001_core_schema.sql +15 -0
  134. package/.framework/migrations/002_core_rls_and_functions.sql +15 -0
  135. package/.framework/migrations/003_core_system_data.sql +16 -1
  136. package/.framework/migrations/004_core_rpc_and_broker.sql +17 -1
  137. package/.framework/migrations/005_core_observability.sql +17 -1
  138. package/.framework/migrations/006_security_hardening_rls.sql +15 -0
  139. package/.framework/migrations/007_kb_article_list.sql +17 -1
  140. package/.framework/migrations/008_items_target.sql +15 -0
  141. package/.framework/migrations/009_roles_slug_unique.sql +15 -0
  142. package/.framework/migrations/010_auth_user_trigger.sql +15 -0
  143. package/.framework/migrations/011_spine_system_account.sql +16 -0
  144. package/.framework/migrations/012_service_role_grants.sql +16 -0
  145. package/.framework/migrations/013_get_account_apps_role_filter.sql +15 -0
  146. package/.framework/migrations/014_apps_required_roles.sql +16 -0
  147. package/.framework/migrations/015_types_kind_slug_unique.sql +20 -0
  148. package/.framework/migrations/016_cil_types.sql +281 -0
  149. package/.framework/migrations/017_cil_stable_ids.sql +37 -0
  150. package/.framework/migrations/018_runtime_tables.sql +129 -0
  151. package/.framework/migrations/019_agent_prompt_columns.sql +56 -0
  152. package/.framework/migrations/020_schema_reconciliation.sql +67 -0
  153. package/.framework/migrations/021_kb_embedding_lifecycle.sql +31 -0
  154. package/.framework/migrations/032_cil_status_migration.sql +73 -0
  155. package/.framework/migrations/033_cil_versioning.sql +73 -0
  156. package/.framework/migrations/034_match_embeddings_knn.sql +115 -0
  157. package/.framework/migrations/035_rate_limits.sql +55 -0
  158. package/.framework/migrations/036_demo_record_flags.sql +72 -0
  159. package/.framework/migrations/037_kb_types_canonical.sql +244 -0
  160. package/.framework/migrations/038_drop_demo_record_flags.sql +38 -0
  161. package/.framework/migrations/042_registration_hierarchy.sql +309 -0
  162. package/.framework/migrations/043_policy_actor_cleanup.sql +39 -0
  163. package/.framework/migrations/044_match_embeddings_filtered_knn.sql +151 -0
  164. package/.framework/migrations/045_security_critical_rls.sql +139 -0
  165. package/.framework/migrations/046_security_missing_rls.sql +79 -0
  166. package/.framework/migrations/047_people_updated_by.sql +27 -0
  167. package/.framework/migrations/048_watcher_last_seen_at.sql +24 -0
  168. package/.framework/migrations/049_security_blocklist.sql +148 -0
  169. package/.framework/migrations/050_notifications.sql +49 -0
  170. package/.framework/migrations/051_message_agent_fields.sql +74 -0
  171. package/.framework/migrations/052_registration_security.sql +421 -0
  172. package/.framework/migrations/053_builtin_action_seeds.sql +66 -0
  173. package/.framework/migrations/054_kb_ingest_lease.sql +157 -0
  174. package/.framework/migrations/055_type_id_drift_reconciliation.sql +33 -0
  175. package/.framework/migrations/056_slug_column_reconciliation.sql +38 -0
  176. package/.framework/migrations/057_pipelines_slug_identity.sql +14 -0
  177. package/.framework/migrations/058_account_data_field_declarations.sql +53 -0
  178. package/.framework/migrations/059_registration_placement_fixes.sql +269 -0
  179. package/.framework/migrations/060_account_person_record_permissions.sql +38 -0
  180. package/.framework/migrations/061_fk_dedup.sql +32 -0
  181. package/.framework/public/spine-logo.svg +10 -3
  182. package/.framework/scripts/app-install-cli.ts +190 -93
  183. package/.framework/scripts/assemble-frontend.sh +127 -44
  184. package/.framework/scripts/assemble-functions.sh +128 -30
  185. package/.framework/scripts/boundary-check.sh +6 -2
  186. package/.framework/scripts/build-manifest.sh +24 -68
  187. package/.framework/scripts/check-core-integrity.sh +15 -76
  188. package/.framework/scripts/checksum-manifest.mts +343 -0
  189. package/.framework/scripts/cil-migrate-markers.ts +403 -0
  190. package/.framework/scripts/fix-cil-markers.mjs +176 -0
  191. package/.framework/scripts/verify-integrity.sh +21 -57
  192. package/.framework/scripts/verify-manifest.mts +305 -0
  193. package/.framework/seeds/types/funnel_signal_use.json +74 -21
  194. package/.framework/seeds/types/spine_instance.json +73 -21
  195. package/.framework/src/App.tsx +118 -72
  196. package/.framework/src/apps/admin/index.tsx +855 -58
  197. package/.framework/src/components/AppWrapper.tsx +43 -45
  198. package/.framework/src/components/CustomAppLoader.tsx +160 -116
  199. package/.framework/src/components/admin/AdminListPage.tsx +46 -44
  200. package/.framework/src/components/admin/AdminSidebar.tsx +57 -47
  201. package/.framework/src/components/admin/AdminStatsCard.tsx +46 -44
  202. package/.framework/src/components/admin/PageInstructions.tsx +98 -2
  203. package/.framework/src/components/admin/SortableTableHeader.tsx +44 -45
  204. package/.framework/src/components/app-shell/GenericAppShell.tsx +64 -65
  205. package/.framework/src/components/app-shell/GenericDetailPage.tsx +44 -47
  206. package/.framework/src/components/app-shell/GenericListPage.tsx +45 -49
  207. package/.framework/src/components/app-sidebar.tsx +42 -45
  208. package/.framework/src/components/auth/ProtectedRoute.tsx +48 -41
  209. package/.framework/src/components/auth/TurnstileWidget.tsx +27 -0
  210. package/.framework/src/components/kb/KBArticleEditor.tsx +231 -22
  211. package/.framework/src/components/kb/KBArticleList.tsx +251 -10
  212. package/.framework/src/components/layout/AppShell.tsx +51 -45
  213. package/.framework/src/components/layout/Header.tsx +42 -43
  214. package/.framework/src/components/layout/Layout.tsx +46 -46
  215. package/.framework/src/components/layout/Sidebar.tsx +196 -96
  216. package/.framework/src/components/runtime/DataDetailHeader.tsx +55 -30
  217. package/.framework/src/components/runtime/DataDetailPage.tsx +31 -269
  218. package/.framework/src/components/runtime/DataFilters.tsx +49 -74
  219. package/.framework/src/components/runtime/DataHeader.tsx +53 -32
  220. package/.framework/src/components/runtime/DataListPage.tsx +51 -155
  221. package/.framework/src/components/runtime/DataStats.tsx +66 -44
  222. package/.framework/src/components/runtime/DataTable.tsx +49 -149
  223. package/.framework/src/components/runtime/SchemaDetailForm.tsx +45 -75
  224. package/.framework/src/components/runtime/index.ts +119 -16
  225. package/.framework/src/components/search-form.tsx +46 -29
  226. package/.framework/src/components/shared/AgentView.tsx +65 -48
  227. package/.framework/src/components/shared/FieldRenderer.tsx +144 -50
  228. package/.framework/src/components/shared/InviteManager.tsx +207 -97
  229. package/.framework/src/components/shared/MemberList.tsx +97 -0
  230. package/.framework/src/components/shared/SchemaFields.tsx +107 -86
  231. package/.framework/src/components/ui/DataTable.tsx +80 -68
  232. package/.framework/src/components/ui/Form.tsx +157 -146
  233. package/.framework/src/components/ui/ItemCard.tsx +74 -67
  234. package/.framework/src/components/ui/ItemListView.tsx +73 -68
  235. package/.framework/src/components/ui/LoadingSpinner.tsx +43 -48
  236. package/.framework/src/components/ui/Modal.tsx +78 -68
  237. package/.framework/src/components/ui/RichTextEditor.tsx +89 -69
  238. package/.framework/src/components/ui/accordion.tsx +85 -86
  239. package/.framework/src/components/ui/alert-dialog.tsx +197 -184
  240. package/.framework/src/components/ui/alert.tsx +105 -94
  241. package/.framework/src/components/ui/aspect-ratio.tsx +57 -43
  242. package/.framework/src/components/ui/avatar.tsx +122 -107
  243. package/.framework/src/components/ui/badge.tsx +60 -55
  244. package/.framework/src/components/ui/breadcrumb.tsx +127 -128
  245. package/.framework/src/components/ui/button-group.tsx +86 -72
  246. package/.framework/src/components/ui/button.tsx +71 -50
  247. package/.framework/src/components/ui/calendar.tsx +72 -57
  248. package/.framework/src/components/ui/card.tsx +136 -129
  249. package/.framework/src/components/ui/carousel.tsx +226 -107
  250. package/.framework/src/components/ui/chart.tsx +252 -147
  251. package/.framework/src/components/ui/checkbox.tsx +43 -44
  252. package/.framework/src/components/ui/collapsible.tsx +86 -71
  253. package/.framework/src/components/ui/combobox.tsx +282 -249
  254. package/.framework/src/components/ui/command.tsx +158 -146
  255. package/.framework/src/components/ui/context-menu.tsx +239 -240
  256. package/.framework/src/components/ui/dialog.tsx +174 -157
  257. package/.framework/src/components/ui/direction.tsx +72 -56
  258. package/.framework/src/components/ui/drawer.tsx +168 -169
  259. package/.framework/src/components/ui/dropdown-menu.tsx +254 -223
  260. package/.framework/src/components/ui/empty.tsx +131 -120
  261. package/.framework/src/components/ui/field.tsx +205 -173
  262. package/.framework/src/components/ui/hover-card.tsx +71 -72
  263. package/.framework/src/components/ui/input-group.tsx +148 -133
  264. package/.framework/src/components/ui/input-otp.tsx +99 -86
  265. package/.framework/src/components/ui/input.tsx +43 -41
  266. package/.framework/src/components/ui/item.tsx +207 -185
  267. package/.framework/src/components/ui/kbd.tsx +57 -56
  268. package/.framework/src/components/ui/label.tsx +45 -41
  269. package/.framework/src/components/ui/menubar.tsx +268 -236
  270. package/.framework/src/components/ui/native-select.tsx +85 -86
  271. package/.framework/src/components/ui/navigation-menu.tsx +166 -156
  272. package/.framework/src/components/ui/pagination.tsx +131 -141
  273. package/.framework/src/components/ui/popover.tsx +125 -128
  274. package/.framework/src/components/ui/progress.tsx +47 -44
  275. package/.framework/src/components/ui/radio-group.tsx +60 -55
  276. package/.framework/src/components/ui/resizable.tsx +85 -72
  277. package/.framework/src/components/ui/scroll-area.tsx +57 -58
  278. package/.framework/src/components/ui/select.tsx +182 -169
  279. package/.framework/src/components/ui/separator.tsx +42 -43
  280. package/.framework/src/components/ui/sheet.tsx +170 -159
  281. package/.framework/src/components/ui/sidebar.tsx +395 -398
  282. package/.framework/src/components/ui/skeleton.tsx +42 -43
  283. package/.framework/src/components/ui/slider.tsx +61 -44
  284. package/.framework/src/components/ui/sonner.tsx +44 -44
  285. package/.framework/src/components/ui/spinner.tsx +47 -42
  286. package/.framework/src/components/ui/switch.tsx +56 -42
  287. package/.framework/src/components/ui/table-primitives.tsx +272 -132
  288. package/.framework/src/components/ui/table.tsx +140 -142
  289. package/.framework/src/components/ui/tabs.tsx +110 -93
  290. package/.framework/src/components/ui/textarea.tsx +43 -44
  291. package/.framework/src/components/ui/toggle-group.tsx +87 -71
  292. package/.framework/src/components/ui/toggle.tsx +56 -56
  293. package/.framework/src/components/ui/tooltip.tsx +99 -85
  294. package/.framework/src/contexts/AppContext.tsx +166 -114
  295. package/.framework/src/contexts/AuthContext.tsx +232 -137
  296. package/.framework/src/hooks/use-mobile.ts +43 -44
  297. package/.framework/src/hooks/useApi.ts +185 -172
  298. package/.framework/src/hooks/useAppPath.ts +31 -29
  299. package/.framework/src/hooks/useApps.ts +77 -42
  300. package/.framework/src/hooks/useEntityList.ts +66 -29
  301. package/.framework/src/hooks/useEntityRecord.ts +76 -32
  302. package/.framework/src/hooks/useForm.ts +62 -30
  303. package/.framework/src/hooks/useListSchema.ts +60 -43
  304. package/.framework/src/hooks/useSchemaRecord.ts +115 -95
  305. package/.framework/src/lib/api.ts +258 -134
  306. package/.framework/src/lib/registration.ts +181 -0
  307. package/.framework/src/lib/supabase.ts +118 -81
  308. package/.framework/src/lib/utils.ts +266 -266
  309. package/.framework/src/main.tsx +43 -44
  310. package/.framework/src/pages/DashboardPage.tsx +44 -43
  311. package/.framework/src/pages/NoAppPage.tsx +50 -0
  312. package/.framework/src/pages/NotFoundPage.tsx +32 -29
  313. package/.framework/src/pages/SetupPage.tsx +34 -33
  314. package/.framework/src/pages/admin/AIAgentDetailPage.tsx +69 -58
  315. package/.framework/src/pages/admin/AIAgentsPage.tsx +43 -40
  316. package/.framework/src/pages/admin/APIKeyDetailPage.tsx +63 -55
  317. package/.framework/src/pages/admin/APIKeysPage.tsx +44 -42
  318. package/.framework/src/pages/admin/AlertsConfigPage.tsx +117 -94
  319. package/.framework/src/pages/admin/AppDetailPage.tsx +48 -42
  320. package/.framework/src/pages/admin/AppsPage.tsx +45 -42
  321. package/.framework/src/pages/admin/DeliveriesPage.tsx +49 -17
  322. package/.framework/src/pages/admin/DesignedPage.tsx +31 -30
  323. package/.framework/src/pages/admin/EmbeddingDetailPage.tsx +58 -0
  324. package/.framework/src/pages/admin/EmbeddingsPage.tsx +49 -0
  325. package/.framework/src/pages/admin/ExtendedShadcnTestPage.tsx +31 -29
  326. package/.framework/src/pages/admin/IncrementalShadcnTestPage.tsx +46 -29
  327. package/.framework/src/pages/admin/IntegratedDashboard.tsx +32 -29
  328. package/.framework/src/pages/admin/IntegrationDetailPage.tsx +68 -55
  329. package/.framework/src/pages/admin/IntegrationsPage.tsx +45 -42
  330. package/.framework/src/pages/admin/InvitesPage.tsx +60 -44
  331. package/.framework/src/pages/admin/LogsPage.tsx +87 -137
  332. package/.framework/src/pages/admin/MinimalShadcnTestPage.tsx +31 -29
  333. package/.framework/src/pages/admin/ObservabilityDashboard.tsx +150 -89
  334. package/.framework/src/pages/admin/PipelineDetailPage.tsx +77 -104
  335. package/.framework/src/pages/admin/PipelineExecutionsPage.tsx +44 -43
  336. package/.framework/src/pages/admin/PipelinesPage.tsx +59 -145
  337. package/.framework/src/pages/admin/PromptConfigDetailPage.tsx +53 -42
  338. package/.framework/src/pages/admin/PromptConfigsPage.tsx +47 -117
  339. package/.framework/src/pages/admin/ProperlyDesignedPage.tsx +31 -44
  340. package/.framework/src/pages/admin/RoleDetailPage.tsx +49 -92
  341. package/.framework/src/pages/admin/RolesPage.tsx +47 -164
  342. package/.framework/src/pages/admin/SecurityPage.tsx +310 -0
  343. package/.framework/src/pages/admin/SelectTestPage.tsx +30 -32
  344. package/.framework/src/pages/admin/ShadcnTestPage.tsx +37 -44
  345. package/.framework/src/pages/admin/SimpleDashboard.tsx +32 -44
  346. package/.framework/src/pages/admin/TestRunDetailPage.tsx +97 -44
  347. package/.framework/src/pages/admin/TestingDashboard.tsx +126 -71
  348. package/.framework/src/pages/admin/TimerDetailPage.tsx +67 -55
  349. package/.framework/src/pages/admin/TimersPage.tsx +44 -42
  350. package/.framework/src/pages/admin/TriggerDetailPage.tsx +47 -42
  351. package/.framework/src/pages/admin/TriggersPage.tsx +58 -57
  352. package/.framework/src/pages/admin/TypeDetailPage.tsx +91 -55
  353. package/.framework/src/pages/admin/TypesPage.tsx +45 -42
  354. package/.framework/src/pages/admin/cil/CILAgentPage.tsx +258 -128
  355. package/.framework/src/pages/admin/cil/CILChunkDetailPage.tsx +127 -123
  356. package/.framework/src/pages/admin/cil/CILDashboardPage.tsx +308 -235
  357. package/.framework/src/pages/admin/cil/CILFileListPage.tsx +159 -110
  358. package/.framework/src/pages/admin/cil/CILFileSelectPage.tsx +432 -0
  359. package/.framework/src/pages/admin/cil/CILGraphPage.tsx +200 -178
  360. package/.framework/src/pages/admin/cil/CILIngestionPage.tsx +286 -239
  361. package/.framework/src/pages/admin/cil/CILProjectsPage.tsx +211 -90
  362. package/.framework/src/pages/admin/cil/CILSearchPage.tsx +156 -143
  363. package/.framework/src/pages/admin/cil/CILSuggestionsPage.tsx +379 -0
  364. package/.framework/src/pages/admin/cil/CILVersionsPage.tsx +337 -0
  365. package/.framework/src/pages/admin/cil/FlexiblePipelinePage.tsx +219 -214
  366. package/.framework/src/pages/admin/kb/KBAdminPage.tsx +64 -0
  367. package/.framework/src/pages/auth/AuthConfirmPage.tsx +135 -65
  368. package/.framework/src/pages/auth/ForgotPasswordPage.tsx +39 -31
  369. package/.framework/src/pages/auth/LoginPage.tsx +38 -32
  370. package/.framework/src/pages/auth/PendingApprovalPage.tsx +31 -28
  371. package/.framework/src/pages/auth/RegisterPage.tsx +429 -155
  372. package/.framework/src/pages/spine-framework/APIPage.tsx +33 -30
  373. package/.framework/src/pages/spine-framework/CLIPage.tsx +32 -30
  374. package/.framework/src/types/auth.ts +101 -93
  375. package/.framework/src/types/types.ts +283 -262
  376. package/.framework/templates/project.json +87 -0
  377. package/.framework/templates/spine.config.neutral.json +7 -0
  378. package/.framework/tests/api/api-surface.test.ts +381 -0
  379. package/.framework/tests/fixtures/seed.ts +427 -0
  380. package/.framework/tests/fixtures/teardown.ts +228 -0
  381. package/.framework/tests/reporter.ts +351 -0
  382. package/.framework/tests/setup.ts +135 -0
  383. package/.framework/tests/ui/ui-sweep.ts +278 -0
  384. package/.framework/tests/unit/admin-data-logger.test.ts +310 -0
  385. package/.framework/tests/unit/agent-runner.test.ts +2389 -0
  386. package/.framework/tests/unit/ai-interactions.test.ts +81 -0
  387. package/.framework/tests/unit/app-manifest.test.ts +359 -0
  388. package/.framework/tests/unit/assembly-scripts.test.ts +172 -0
  389. package/.framework/tests/unit/cil-determinism.test.ts +85 -0
  390. package/.framework/tests/unit/core-isolation.test.ts +153 -0
  391. package/.framework/tests/unit/funnel-signals.test.ts +135 -0
  392. package/.framework/tests/unit/install-app.test.ts +1759 -0
  393. package/.framework/tests/unit/invites-security.test.ts +572 -0
  394. package/.framework/tests/unit/kb-ingest-lease.test.ts +287 -0
  395. package/.framework/tests/unit/kb-search.test.ts +119 -0
  396. package/.framework/tests/unit/migrate.test.ts +509 -0
  397. package/.framework/tests/unit/notify.test.ts +136 -0
  398. package/.framework/tests/unit/permissions.test.ts +269 -0
  399. package/.framework/tests/unit/pipeline-runner.test.ts +755 -0
  400. package/.framework/tests/unit/principal-cache.test.ts +138 -0
  401. package/.framework/tests/unit/retrieval-golden.test.ts +520 -0
  402. package/.framework/tests/unit/runtime-isolation.test.ts +642 -0
  403. package/.framework/tests/unit/schema-utils.test.ts +225 -0
  404. package/.framework/tests/unit/trigger-engine.test.ts +513 -0
  405. package/.framework/tests/unit/validate-app.test.ts +527 -0
  406. package/README.md +34 -3
  407. package/bin/spine-framework.cjs +1 -0
  408. package/config/tailwind.config.cjs +7 -0
  409. package/config/tsconfig.functions.json +42 -0
  410. package/config/tsconfig.json +37 -9
  411. package/config/vite.config.ts +31 -2
  412. package/netlify.toml +31 -3
  413. package/package.json +46 -29
  414. package/scripts/assemble-frontend.sh +127 -44
  415. package/scripts/assemble-functions.sh +127 -29
  416. package/scripts/boundary-check.sh +6 -2
  417. package/scripts/build-manifest.sh +24 -68
  418. package/scripts/checksum-manifest.mts +345 -0
  419. package/scripts/dev-clean.sh +86 -0
  420. package/scripts/dev-netlify.sh +49 -0
  421. package/scripts/netlify-dev-wrapper.sh +2 -0
  422. package/scripts/verify-install.ts +358 -0
  423. package/scripts/verify-integrity.sh +21 -57
  424. package/scripts/verify-manifest.mts +305 -0
  425. package/templates/project/gitignore +45 -0
  426. package/{config → templates/project}/package-lock.json +22335 -9366
  427. package/vitest.config.ts +46 -0
  428. package/.framework/public/spine.config.json +0 -91
  429. package/config/deno.lock +0 -108
  430. package/config/tsconfig.node.tsbuildinfo +0 -1
  431. package/config/tsconfig.tsbuildinfo +0 -1
  432. package/config/vite.config.d.ts +0 -2
  433. package/custom/.devin/AGENT.md +0 -357
  434. package/custom/.devin/skills/install-app/SKILL.md +0 -39
  435. package/custom/.devin/skills/spine-workbench-discovery/SKILL.md +0 -39
  436. package/custom/.devin/skills/spine-workbench-idea/SKILL.md +0 -36
  437. package/custom/.devin/skills/spine-workbench-implement/SKILL.md +0 -46
  438. package/custom/.devin/skills/spine-workbench-initiative/SKILL.md +0 -28
  439. package/custom/.devin/skills/spine-workbench-plan/SKILL.md +0 -38
  440. package/custom/.devin/workflows/app-install.yaml +0 -83
  441. package/custom/README.md +0 -79
  442. package/docs/README.md +0 -15
  443. package/scripts/app-install-cli.ts +0 -286
  444. package/scripts/check-core-integrity.sh +0 -82
  445. package/scripts/ingest-chunks.cjs +0 -202
  446. package/scripts/kb-chunk-parser.cjs +0 -312
  447. package/scripts/kb-chunk-parser.ts +0 -330
  448. package/scripts/kb-ingest-docs.ts +0 -203
  449. package/scripts/load-test-app-install.ts +0 -484
  450. package/scripts/test-login.js +0 -33
  451. package/spine.config.json +0 -91
@@ -1,40 +1,32 @@
1
-
2
-
3
-
4
- // CIL[BEGIN chunk_id="separator_module_header_1783758409" type="module_header" identity="imports" parent="none"]
5
- // CIL[DOC-MACRO purpose="Import dependencies for separator component library"]
6
- // CIL[DOC-RESPONSIBILITY responsibility="Import external React UI primitives and utilities"]
7
- // CIL[DOC-CONTEXT module="separator" layer="ui_components" related_files="[\".framework/src/components/layout/Sidebar.tsx\",\".framework/src/components/ui/dialog.tsx\",\"custom/apps/cortex/pages/operations/OperationsDashboard.tsx\",\"custom/apps/portal/pages/ContentPage.tsx\",\".framework/src/pages/admin/TypeDetailPage.tsx\",\"\\\"]"]
8
- // CIL[DOC-CONTRACT inputs="none" outputs="React, Separator primitive, utils" errors="none" side_effects="Module imports"]
9
- // CIL[DOC-MICRO logic_summary="Imports React, Radix UI Separator primitive and utility functions" notable_decisions="[]"]
10
- // CIL[DOC-CONFIDENCE pass="second" score="0.95" flags="none"]
1
+ // CIL[BEGIN stable_id="~/.framework/src/components/ui/separator.tsx:module_header:module_header" type="module_header" identity="module_header" parent="~/.framework/src/components/ui/separator.tsx"]
2
+ // CIL[DOC-MACRO purpose="Shared separator UI component module header and imports"]
3
+ // CIL[DOC-RESPONSIBILITY responsibility="Imports React, Radix UI Separator primitive, and the cn utility"]
4
+ // CIL[DOC-CONTEXT module="components/ui" layer="ui" related_files=".framework/src/lib/utils.ts"]
5
+ // CIL[DOC-CONTRACT inputs="none" outputs="none" errors="none" side_effects="none"]
6
+ // CIL[DOC-MICRO logic_summary="Module-level dependency imports for the Separator component" notable_decisions="[]"]
7
+ // CIL[DOC-CONFIDENCE pass="second" score="0.90" flags="none"]
11
8
  // CIL[DOC-STABILITY stability="stable"]
12
9
  // CIL[DOC-AUDIENCE audience="developer"]
13
- // CIL[DOC-VECTOR type="context" content="Layer: ui_components. Direct callers: 0. Direct calls: 0. Related files: .framework/src/components/layout/Sidebar.tsx, .framework/src/components/ui/dialog.tsx, custom/apps/cortex/pages/operations/OperationsDashboard.tsx, custom/apps/portal/pages/ContentPage.tsx, .framework/src/pages/admin/TypeDetailPage.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
10
  import * as React from "react"
20
11
  import { Separator as SeparatorPrimitive } from "radix-ui"
21
12
 
22
13
  import { cn } from "@/lib/utils"
23
- // CIL[END chunk_id="separator_module_header_1783758409"]
24
- // CIL[BEGIN chunk_id="separator_separator_1783758409" type="function" identity="Separator" parent="none"]
25
- // CIL[DOC-MACRO purpose="Visual separator with orientation support"]
26
- // CIL[DOC-RESPONSIBILITY responsibility="Render horizontal or vertical divider with styling"]
27
- // CIL[DOC-CONTEXT module="separator" layer="ui_components" related_files="[\".framework/functions/_shared/schema-utils.ts\",\".framework/src/components/ui/dialog.tsx\",\".framework/functions/_shared/principal.ts\",\".framework/src/pages/admin/TypeDetailPage.tsx\",\".framework/src/pages/admin/IntegrationsPage.tsx\",\"\\\"]"]
28
- // CIL[DOC-CONTRACT inputs="none" outputs="Styled separator" errors="none" side_effects="DOM rendering"]
29
- // CIL[DOC-MICRO logic_summary="Creates separator with orientation-based styling, decorative flag and border color" notable_decisions="[]"]
30
- // CIL[DOC-CONFIDENCE pass="second" score="0.95" flags="none"]
31
- // CIL[DOC-STABILITY stability="stable"]
32
- // CIL[DOC-VECTOR type="context" content="Layer: ui_components. Direct callers: 0. Direct calls: 0. Related files: .framework/functions/_shared/schema-utils.ts, .framework/src/components/ui/dialog.tsx, .framework/functions/_shared/principal.ts, .framework/src/pages/admin/TypeDetailPage.tsx, .framework/src/pages/admin/IntegrationsPage.tsx, \."]
33
- // CIL[DOC-VECTOR type="blast_radius" content="Direct callers: 0. Total affected: 0."]
34
- // CIL[DOC-VECTOR type="configuration" content="No configuration dependencies."]
35
- // CIL[DOC-VECTOR type="constraint" content="No test paths identified."]
14
+ // CIL[DOC-VECTOR type="context" content="purpose='Shared separator UI component module header and imports'; No verified external callers; imports: .framework/src/lib/utils.ts"]
15
+ // CIL[DOC-VECTOR type="blast_radius" content="No direct caller data from CIL graph; local impact only"]
16
+ // CIL[DOC-VECTOR type="configuration" content="No environment or build configuration dependencies identified"]
17
+ // CIL[DOC-VECTOR type="constraint" content="Standard runtime; no special invariants documented"]
36
18
  // CIL[DOC-VECTOR type="implementation_pattern" content="" status="pending_human_input"]
37
19
  // CIL[DOC-VECTOR type="user_journey" content="" status="pending_human_input"]
20
+ // CIL[END stable_id="~/.framework/src/components/ui/separator.tsx:module_header:module_header"]
21
+
22
+ // CIL[BEGIN stable_id="~/.framework/src/components/ui/separator.tsx:separator:function" type="function" identity="separator" parent="~/.framework/src/components/ui/separator.tsx"]
23
+ // CIL[DOC-MACRO purpose="Render a visual separator line with configurable orientation and styling"]
24
+ // CIL[DOC-RESPONSIBILITY responsibility="Provide a styled Separator component that wraps Radix UI's primitive, applying default horizontal and decorative behavior and merging CSS classes"]
25
+ // CIL[DOC-CONTEXT module="components/ui" layer="ui" related_files=".framework/src/components/ui/separator.tsx,.framework/src/lib/utils.ts"]
26
+ // CIL[DOC-CONTRACT inputs="className: string, orientation: 'horizontal'|'vertical', decorative: boolean, props: React.ComponentProps<typeof SeparatorPrimitive.Root>" outputs="JSX element rendering a Radix UI separator" errors="none" side_effects="none"]
27
+ // CIL[DOC-MICRO logic_summary="Applies Tailwind classes to render a one-pixel border; orientation defaults to horizontal and decorative to true; merges the optional className via cn" notable_decisions="[]"]
28
+ // CIL[DOC-CONFIDENCE pass="second" score="0.90" flags="none"]
29
+ // CIL[DOC-STABILITY stability="stable"]
38
30
  function Separator({
39
31
  className,
40
32
  orientation = "horizontal",
@@ -54,20 +46,27 @@ function Separator({
54
46
  />
55
47
  )
56
48
  }
57
- // CIL[END chunk_id="separator_separator_1783758409"]
58
- // CIL[BEGIN chunk_id="separator_exports_1783758409" type="exports" identity="exports" parent="none"]
59
- // CIL[DOC-MACRO purpose="Export separator component for public API"]
60
- // CIL[DOC-RESPONSIBILITY responsibility="Provide module export for separator component library"]
61
- // CIL[DOC-CONTEXT module="separator" layer="ui_components" related_files="[\".framework/src/components/layout/Sidebar.tsx\",\".framework/src/components/ui/dialog.tsx\",\"custom/apps/portal/pages/ContentPage.tsx\",\".framework/src/pages/admin/TypeDetailPage.tsx\",\".framework/src/pages/admin/RolesPage.tsx\",\"\\\"]"]
62
- // CIL[DOC-CONTRACT inputs="none" outputs="Component export" errors="none" side_effects="Module exports"]
63
- // CIL[DOC-MICRO logic_summary="Exports Separator component for visual divider functionality" notable_decisions="[]"]
64
- // CIL[DOC-CONFIDENCE pass="second" score="0.95" flags="none"]
65
- // CIL[DOC-STABILITY stability="stable"]
66
- // CIL[DOC-VECTOR type="context" content="Layer: ui_components. Direct callers: 0. Direct calls: 0. Related files: .framework/src/components/layout/Sidebar.tsx, .framework/src/components/ui/dialog.tsx, custom/apps/portal/pages/ContentPage.tsx, .framework/src/pages/admin/TypeDetailPage.tsx, .framework/src/pages/admin/RolesPage.tsx, \."]
67
- // CIL[DOC-VECTOR type="blast_radius" content="Direct callers: 0. Total affected: 0."]
68
- // CIL[DOC-VECTOR type="configuration" content="No configuration dependencies."]
69
- // CIL[DOC-VECTOR type="constraint" content="No test paths identified."]
49
+ // CIL[DOC-VECTOR type="context" content="purpose='Render a visual separator line with configurable orientation and styling'; No verified external callers; imports: .framework/src/lib/utils.ts"]
50
+ // CIL[DOC-VECTOR type="blast_radius" content="No direct caller data from CIL graph; local impact only"]
51
+ // CIL[DOC-VECTOR type="configuration" content="No environment or build configuration dependencies identified"]
52
+ // CIL[DOC-VECTOR type="constraint" content="Standard runtime; no special invariants documented"]
70
53
  // CIL[DOC-VECTOR type="implementation_pattern" content="" status="pending_human_input"]
71
54
  // CIL[DOC-VECTOR type="user_journey" content="" status="pending_human_input"]
55
+ // CIL[END stable_id="~/.framework/src/components/ui/separator.tsx:separator:function"]
56
+
57
+ // CIL[BEGIN stable_id="~/.framework/src/components/ui/separator.tsx:separator_exports:exports" type="exports" identity="separator_exports" parent="~/.framework/src/components/ui/separator.tsx"]
58
+ // CIL[DOC-MACRO purpose="Export the local Separator component for consumers"]
59
+ // CIL[DOC-RESPONSIBILITY responsibility="Expose the Separator function as a named export"]
60
+ // CIL[DOC-CONTEXT module="components/ui" layer="ui" related_files=".framework/src/components/ui/separator.tsx,.framework/src/lib/utils.ts"]
61
+ // CIL[DOC-CONTRACT inputs="none" outputs="named export Separator" errors="none" side_effects="none"]
62
+ // CIL[DOC-MICRO logic_summary="Named export of the Separator UI component" notable_decisions="[]"]
63
+ // CIL[DOC-CONFIDENCE pass="second" score="0.90" flags="none"]
64
+ // CIL[DOC-STABILITY stability="stable"]
72
65
  export { Separator }
73
- // CIL[END chunk_id="separator_exports_1783758409"]
66
+ // CIL[DOC-VECTOR type="context" content="purpose='Export the local Separator component for consumers'; No verified external callers; imports: .framework/src/lib/utils.ts"]
67
+ // CIL[DOC-VECTOR type="blast_radius" content="No direct caller data from CIL graph; local impact only"]
68
+ // CIL[DOC-VECTOR type="configuration" content="No environment or build configuration dependencies identified"]
69
+ // CIL[DOC-VECTOR type="constraint" content="Standard runtime; no special invariants documented"]
70
+ // CIL[DOC-VECTOR type="implementation_pattern" content="" status="pending_human_input"]
71
+ // CIL[DOC-VECTOR type="user_journey" content="" status="pending_human_input"]
72
+ // CIL[END stable_id="~/.framework/src/components/ui/separator.tsx:separator_exports:exports"]
@@ -1,3 +1,13 @@
1
+ // CIL[BEGIN stable_id="~/.framework/src/components/ui/sheet.tsx:module_header:module_header" type="module_header" identity="module_header" parent="~/.framework/src/components/ui/sheet.tsx"]
2
+ // CIL[DOC-MACRO purpose="shadcn/ui Sheet component module built on Radix UI Dialog primitives"]
3
+ // CIL[DOC-RESPONSIBILITY responsibility="Provides a styled shadcn/ui Sheet component built on Radix UI Dialog primitives"]
4
+ // CIL[DOC-CONTEXT module="components/ui" layer="ui" related_files=".framework/src/components/ui/button.tsx,.framework/src/lib/utils.ts"]
5
+ // CIL[DOC-CONTRACT inputs="none" outputs="module exports" errors="none" side_effects="none"]
6
+ // CIL[DOC-MICRO logic_summary="Imports dependencies and re-exports the Sheet subcomponent API" notable_decisions="[]"]
7
+ // CIL[DOC-CONFIDENCE pass="second" score="0.90" flags="none"]
8
+ // CIL[DOC-AUDIENCE audience="frontend"]
9
+ // CIL[DOC-STABILITY stability="stable"]
10
+
1
11
 
2
12
 
3
13
 
@@ -10,120 +20,110 @@
10
20
 
11
21
 
12
22
 
13
- // CIL[BEGIN chunk_id="sheet_module_header_1783758409" type="module_header" identity="imports" parent="none"]
14
- // CIL[DOC-MACRO purpose="Import dependencies for sheet component library"]
15
- // CIL[DOC-RESPONSIBILITY responsibility="Import external React UI primitives and utilities"]
16
- // CIL[DOC-CONTEXT module="sheet" layer="ui_components" related_files="[\".framework/src/components/ui/dialog.tsx\",\".framework/src/components/ui/table-primitives.tsx\",\"custom/apps/cortex/pages/operations/OperationsDashboard.tsx\",\"custom/apps/portal/pages/ContentPage.tsx\",\"\\\"]"]
17
- // CIL[DOC-CONTRACT inputs="none" outputs="React, Dialog primitive, utils, Button, XIcon" errors="none" side_effects="Module imports"]
18
- // CIL[DOC-MICRO logic_summary="Imports React, Radix UI Dialog primitive, utility functions, Button component and XIcon" notable_decisions="[]"]
19
- // CIL[DOC-CONFIDENCE pass="second" score="0.95" flags="none"]
20
- // CIL[DOC-STABILITY stability="stable"]
21
- // CIL[DOC-AUDIENCE audience="developer"]
22
- // CIL[DOC-VECTOR type="context" content="Layer: ui_components. Direct callers: 0. Direct calls: 0. Related files: .framework/src/components/ui/dialog.tsx, .framework/src/components/ui/table-primitives.tsx, custom/apps/cortex/pages/operations/OperationsDashboard.tsx, custom/apps/portal/pages/ContentPage.tsx, \."]
23
- // CIL[DOC-VECTOR type="blast_radius" content="Direct callers: 0. Total affected: 0."]
24
- // CIL[DOC-VECTOR type="configuration" content="No configuration dependencies."]
25
- // CIL[DOC-VECTOR type="constraint" content="No test paths identified."]
26
- // CIL[DOC-VECTOR type="implementation_pattern" content="" status="pending_human_input"]
27
- // CIL[DOC-VECTOR type="user_journey" content="" status="pending_human_input"]
28
23
  import * as React from "react"
29
24
  import { Dialog as SheetPrimitive } from "radix-ui"
30
25
 
31
26
  import { cn } from "@/lib/utils"
32
27
  import { Button } from "@/components/ui/button"
33
28
  import { XIcon } from "lucide-react"
34
- // CIL[END chunk_id="sheet_module_header_1783758409"]
35
- // CIL[BEGIN chunk_id="sheet_sheet_1783758409" type="function" identity="Sheet" parent="none"]
36
- // CIL[DOC-MACRO purpose="Root sheet component wrapper"]
37
- // CIL[DOC-RESPONSIBILITY responsibility="Provide sheet root container with data attributes"]
38
- // CIL[DOC-CONTEXT module="sheet" layer="ui_components" 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/RolesPage.tsx\",\"\\\"]"]
39
- // CIL[DOC-CONTRACT inputs="none" outputs="SheetPrimitive.Root" errors="none" side_effects="DOM rendering"]
40
- // CIL[DOC-MICRO logic_summary="Thin wrapper around Radix UI Dialog Root with data-slot attribute" notable_decisions="[]"]
41
- // CIL[DOC-CONFIDENCE pass="second" score="0.95" flags="none"]
42
- // CIL[DOC-STABILITY stability="stable"]
43
- // CIL[DOC-VECTOR type="context" content="Layer: ui_components. 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/RolesPage.tsx, \."]
44
- // CIL[DOC-VECTOR type="blast_radius" content="Direct callers: 0. Total affected: 0."]
45
- // CIL[DOC-VECTOR type="configuration" content="No configuration dependencies."]
46
- // CIL[DOC-VECTOR type="constraint" content="No test paths identified."]
29
+ // CIL[DOC-VECTOR type="context" content="purpose='shadcn/ui Sheet component module built on Radix UI Dialog primitives'; No verified external callers; imports: .framework/src/lib/utils.ts,.framework/src/components/ui/button.tsx"]
30
+ // CIL[DOC-VECTOR type="blast_radius" content="No direct caller data from CIL graph; local impact only"]
31
+ // CIL[DOC-VECTOR type="configuration" content="No environment or build configuration dependencies identified"]
32
+ // CIL[DOC-VECTOR type="constraint" content="Standard runtime; no special invariants documented"]
47
33
  // CIL[DOC-VECTOR type="implementation_pattern" content="" status="pending_human_input"]
48
34
  // CIL[DOC-VECTOR type="user_journey" content="" status="pending_human_input"]
35
+ // CIL[END stable_id="~/.framework/src/components/ui/sheet.tsx:module_header:module_header"]
36
+
37
+ // CIL[BEGIN stable_id="~/.framework/src/components/ui/sheet.tsx:Sheet:component" type="component" identity="Sheet" parent="~/.framework/src/components/ui/sheet.tsx"]
38
+ // CIL[DOC-MACRO purpose="Renders a styled Radix Sheet root wrapper"]
39
+ // CIL[DOC-RESPONSIBILITY responsibility="Renders the sheet root wrapper that controls the dialog open state"]
40
+ // CIL[DOC-CONTEXT module="components/ui" layer="ui" related_files=".framework/src/components/ui/button.tsx,.framework/src/components/ui/sheet.tsx,.framework/src/lib/utils.ts"]
41
+ // CIL[DOC-CONTRACT inputs="...props: React.ComponentProps<typeof SheetPrimitive.Root>" outputs="JSX.Element" side_effects="none" errors="none"]
42
+ // CIL[DOC-MICRO logic_summary="Spreads props onto SheetPrimitive.Root with a data-slot attribute for styling hooks" notable_decisions="Uses React.ComponentProps to inherit the Radix Dialog root prop types"]
43
+ // CIL[DOC-CONFIDENCE pass="second" score="0.90" flags="none"]
44
+ // CIL[DOC-STABILITY stability="stable"]
49
45
  function Sheet({ ...props }: React.ComponentProps<typeof SheetPrimitive.Root>) {
50
46
  return <SheetPrimitive.Root data-slot="sheet" {...props} />
51
47
  }
52
- // CIL[END chunk_id="sheet_sheet_1783758409"]
53
- // CIL[BEGIN chunk_id="sheet_sheettrigger_1783758409" type="function" identity="SheetTrigger" parent="none"]
54
- // CIL[DOC-MACRO purpose="Trigger component to open sheet"]
55
- // CIL[DOC-RESPONSIBILITY responsibility="Handle sheet opening trigger with data attributes"]
56
- // CIL[DOC-CONTEXT module="sheet" layer="ui_components" related_files="[\"custom/apps/portal/pages/ContentPage.tsx\",\".framework/src/components/ui/table-primitives.tsx\",\".framework/src/components/ui/dialog.tsx\",\"custom/apps/cortex/functions/custom_cil-embeddings.ts\",\"\\\"]"]
57
- // CIL[DOC-CONTRACT inputs="none" outputs="SheetPrimitive.Trigger" errors="none" side_effects="DOM event handling"]
58
- // CIL[DOC-MICRO logic_summary="Wrapper around Radix UI Dialog Trigger with data-slot attribute" notable_decisions="[]"]
59
- // CIL[DOC-CONFIDENCE pass="second" score="0.95" flags="none"]
60
- // CIL[DOC-STABILITY stability="stable"]
61
- // CIL[DOC-VECTOR type="context" content="Layer: ui_components. Direct callers: 0. Direct calls: 0. Related files: custom/apps/portal/pages/ContentPage.tsx, .framework/src/components/ui/table-primitives.tsx, .framework/src/components/ui/dialog.tsx, custom/apps/cortex/functions/custom_cil-embeddings.ts, \."]
62
- // CIL[DOC-VECTOR type="blast_radius" content="Direct callers: 0. Total affected: 0."]
63
- // CIL[DOC-VECTOR type="configuration" content="No configuration dependencies."]
64
- // CIL[DOC-VECTOR type="constraint" content="No test paths identified."]
48
+ // CIL[DOC-VECTOR type="context" content="purpose='Renders a styled Radix Sheet root wrapper'; No verified external callers; imports: .framework/src/lib/utils.ts,.framework/src/components/ui/button.tsx"]
49
+ // CIL[DOC-VECTOR type="blast_radius" content="No direct caller data from CIL graph; local impact only"]
50
+ // CIL[DOC-VECTOR type="configuration" content="No environment or build configuration dependencies identified"]
51
+ // CIL[DOC-VECTOR type="constraint" content="Standard runtime; no special invariants documented"]
65
52
  // CIL[DOC-VECTOR type="implementation_pattern" content="" status="pending_human_input"]
66
53
  // CIL[DOC-VECTOR type="user_journey" content="" status="pending_human_input"]
54
+ // CIL[END stable_id="~/.framework/src/components/ui/sheet.tsx:Sheet:component"]
55
+
56
+ // CIL[BEGIN stable_id="~/.framework/src/components/ui/sheet.tsx:SheetTrigger:component" type="component" identity="SheetTrigger" parent="~/.framework/src/components/ui/sheet.tsx"]
57
+ // CIL[DOC-MACRO purpose="Renders the trigger that opens the sheet"]
58
+ // CIL[DOC-RESPONSIBILITY responsibility="Renders the trigger element that opens the sheet"]
59
+ // CIL[DOC-CONTEXT module="components/ui" layer="ui" related_files=".framework/src/components/ui/button.tsx,.framework/src/components/ui/sheet.tsx,.framework/src/lib/utils.ts"]
60
+ // CIL[DOC-CONTRACT inputs="...props: React.ComponentProps<typeof SheetPrimitive.Trigger>" outputs="JSX.Element" side_effects="none" errors="none"]
61
+ // CIL[DOC-MICRO logic_summary="Spreads props onto SheetPrimitive.Trigger with a data-slot attribute for styling hooks" notable_decisions="[]"]
62
+ // CIL[DOC-CONFIDENCE pass="second" score="0.90" flags="none"]
63
+ // CIL[DOC-STABILITY stability="stable"]
67
64
  function SheetTrigger({
68
65
  ...props
69
66
  }: React.ComponentProps<typeof SheetPrimitive.Trigger>) {
70
67
  return <SheetPrimitive.Trigger data-slot="sheet-trigger" {...props} />
71
68
  }
72
- // CIL[END chunk_id="sheet_sheettrigger_1783758409"]
73
- // CIL[BEGIN chunk_id="sheet_sheetclose_1783758409" type="function" identity="SheetClose" parent="none"]
74
- // CIL[DOC-MACRO purpose="Close button component for sheet"]
75
- // CIL[DOC-RESPONSIBILITY responsibility="Handle sheet closing with data attributes"]
76
- // CIL[DOC-CONTEXT module="sheet" layer="ui_components" 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\",\"\\\"]"]
77
- // CIL[DOC-CONTRACT inputs="none" outputs="SheetPrimitive.Close" errors="none" side_effects="DOM event handling"]
78
- // CIL[DOC-MICRO logic_summary="Wrapper around Radix UI Dialog Close with data-slot attribute" notable_decisions="[]"]
79
- // CIL[DOC-CONFIDENCE pass="second" score="0.95" flags="none"]
80
- // CIL[DOC-STABILITY stability="stable"]
81
- // CIL[DOC-VECTOR type="context" content="Layer: ui_components. 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, \."]
82
- // CIL[DOC-VECTOR type="blast_radius" content="Direct callers: 0. Total affected: 0."]
83
- // CIL[DOC-VECTOR type="configuration" content="No configuration dependencies."]
84
- // CIL[DOC-VECTOR type="constraint" content="No test paths identified."]
69
+ // CIL[DOC-VECTOR type="context" content="purpose='Renders the trigger that opens the sheet'; No verified external callers; imports: .framework/src/lib/utils.ts,.framework/src/components/ui/button.tsx"]
70
+ // CIL[DOC-VECTOR type="blast_radius" content="No direct caller data from CIL graph; local impact only"]
71
+ // CIL[DOC-VECTOR type="configuration" content="No environment or build configuration dependencies identified"]
72
+ // CIL[DOC-VECTOR type="constraint" content="Standard runtime; no special invariants documented"]
85
73
  // CIL[DOC-VECTOR type="implementation_pattern" content="" status="pending_human_input"]
86
74
  // CIL[DOC-VECTOR type="user_journey" content="" status="pending_human_input"]
75
+ // CIL[END stable_id="~/.framework/src/components/ui/sheet.tsx:SheetTrigger:component"]
76
+
77
+ // CIL[BEGIN stable_id="~/.framework/src/components/ui/sheet.tsx:SheetClose:component" type="component" identity="SheetClose" parent="~/.framework/src/components/ui/sheet.tsx"]
78
+ // CIL[DOC-MACRO purpose="Renders the close button that dismisses the sheet"]
79
+ // CIL[DOC-RESPONSIBILITY responsibility="Renders the close button that dismisses the sheet"]
80
+ // CIL[DOC-CONTEXT module="components/ui" layer="ui" related_files=".framework/src/components/ui/button.tsx,.framework/src/components/ui/sheet.tsx,.framework/src/lib/utils.ts"]
81
+ // CIL[DOC-CONTRACT inputs="...props: React.ComponentProps<typeof SheetPrimitive.Close>" outputs="JSX.Element" side_effects="none" errors="none"]
82
+ // CIL[DOC-MICRO logic_summary="Spreads props onto SheetPrimitive.Close with a data-slot attribute for styling hooks" notable_decisions="[]"]
83
+ // CIL[DOC-CONFIDENCE pass="second" score="0.90" flags="none"]
84
+ // CIL[DOC-STABILITY stability="stable"]
87
85
  function SheetClose({
88
86
  ...props
89
87
  }: React.ComponentProps<typeof SheetPrimitive.Close>) {
90
88
  return <SheetPrimitive.Close data-slot="sheet-close" {...props} />
91
89
  }
92
- // CIL[END chunk_id="sheet_sheetclose_1783758409"]
93
- // CIL[BEGIN chunk_id="sheet_sheetportal_1783758409" type="function" identity="SheetPortal" parent="none"]
94
- // CIL[DOC-MACRO purpose="Portal container for sheet rendering"]
95
- // CIL[DOC-RESPONSIBILITY responsibility="Provide portal wrapper with data attributes"]
96
- // CIL[DOC-CONTEXT module="sheet" layer="ui_components" related_files="[\"custom/apps/portal/pages/ContentPage.tsx\",\".framework/src/pages/admin/TypeDetailPage.tsx\",\".framework/functions/_shared/principal.ts\",\"custom/apps/cortex/pages/operations/OperationsDashboard.tsx\",\".framework/functions/_shared/schema-utils.ts\"]"]
97
- // CIL[DOC-CONTRACT inputs="none" outputs="SheetPrimitive.Portal" errors="none" side_effects="DOM portal rendering"]
98
- // CIL[DOC-MICRO logic_summary="Wrapper around Radix UI Dialog Portal with data-slot attribute" notable_decisions="[]"]
99
- // CIL[DOC-CONFIDENCE pass="second" score="0.95" flags="none"]
100
- // CIL[DOC-STABILITY stability="stable"]
101
- // CIL[DOC-VECTOR type="context" content="Layer: ui_components. Direct callers: 0. Direct calls: 0. Related files: custom/apps/portal/pages/ContentPage.tsx, .framework/src/pages/admin/TypeDetailPage.tsx, .framework/functions/_shared/principal.ts, custom/apps/cortex/pages/operations/OperationsDashboard.tsx, .framework/functions/_shared/schema-utils.ts."]
102
- // CIL[DOC-VECTOR type="blast_radius" content="Direct callers: 0. Total affected: 0."]
103
- // CIL[DOC-VECTOR type="configuration" content="No configuration dependencies."]
104
- // CIL[DOC-VECTOR type="constraint" content="No test paths identified."]
90
+ // CIL[DOC-VECTOR type="context" content="purpose='Renders the close button that dismisses the sheet'; No verified external callers; imports: .framework/src/lib/utils.ts,.framework/src/components/ui/button.tsx"]
91
+ // CIL[DOC-VECTOR type="blast_radius" content="No direct caller data from CIL graph; local impact only"]
92
+ // CIL[DOC-VECTOR type="configuration" content="No environment or build configuration dependencies identified"]
93
+ // CIL[DOC-VECTOR type="constraint" content="Standard runtime; no special invariants documented"]
105
94
  // CIL[DOC-VECTOR type="implementation_pattern" content="" status="pending_human_input"]
106
95
  // CIL[DOC-VECTOR type="user_journey" content="" status="pending_human_input"]
96
+ // CIL[END stable_id="~/.framework/src/components/ui/sheet.tsx:SheetClose:component"]
97
+
98
+ // CIL[BEGIN stable_id="~/.framework/src/components/ui/sheet.tsx:SheetPortal:component" type="component" identity="SheetPortal" parent="~/.framework/src/components/ui/sheet.tsx"]
99
+ // CIL[DOC-MACRO purpose="Renders the portal that mounts sheet content in the document body"]
100
+ // CIL[DOC-RESPONSIBILITY responsibility="Renders the portal that mounts sheet content in the document body"]
101
+ // CIL[DOC-CONTEXT module="components/ui" layer="ui" related_files=".framework/src/components/ui/button.tsx,.framework/src/components/ui/sheet.tsx,.framework/src/lib/utils.ts"]
102
+ // CIL[DOC-CONTRACT inputs="...props: React.ComponentProps<typeof SheetPrimitive.Portal>" outputs="JSX.Element" side_effects="none" errors="none"]
103
+ // CIL[DOC-MICRO logic_summary="Spreads props onto SheetPrimitive.Portal with a data-slot attribute for styling hooks" notable_decisions="[]"]
104
+ // CIL[DOC-CONFIDENCE pass="second" score="0.90" flags="none"]
105
+ // CIL[DOC-STABILITY stability="stable"]
107
106
  function SheetPortal({
108
107
  ...props
109
108
  }: React.ComponentProps<typeof SheetPrimitive.Portal>) {
110
109
  return <SheetPrimitive.Portal data-slot="sheet-portal" {...props} />
111
110
  }
112
- // CIL[END chunk_id="sheet_sheetportal_1783758409"]
113
- // CIL[BEGIN chunk_id="sheet_sheetoverlay_1783758409" type="function" identity="SheetOverlay" parent="none"]
114
- // CIL[DOC-MACRO purpose="Background overlay for sheet modal"]
115
- // CIL[DOC-RESPONSIBILITY responsibility="Render semi-transparent backdrop with animations"]
116
- // CIL[DOC-CONTEXT module="sheet" layer="ui_components" related_files="[]"]
117
- // CIL[DOC-CONTRACT inputs="none" outputs="Styled overlay" errors="none" side_effects="DOM rendering"]
118
- // CIL[DOC-MICRO logic_summary="Creates fixed backdrop with blur and fade animations using Tailwind" notable_decisions="[]"]
119
- // CIL[DOC-CONFIDENCE pass="second" score="0.95" flags="none"]
120
- // CIL[DOC-STABILITY stability="stable"]
121
- // CIL[DOC-VECTOR type="context" content="Layer: ui_components. Direct callers: 0. Direct calls: 0. Related files: none."]
122
- // CIL[DOC-VECTOR type="blast_radius" content="Direct callers: 0. Total affected: 0."]
123
- // CIL[DOC-VECTOR type="configuration" content="No configuration dependencies."]
124
- // CIL[DOC-VECTOR type="constraint" content="No test paths identified."]
111
+ // CIL[DOC-VECTOR type="context" content="purpose='Renders the portal that mounts sheet content in the document body'; No verified external callers; imports: .framework/src/lib/utils.ts,.framework/src/components/ui/button.tsx"]
112
+ // CIL[DOC-VECTOR type="blast_radius" content="No direct caller data from CIL graph; local impact only"]
113
+ // CIL[DOC-VECTOR type="configuration" content="No environment or build configuration dependencies identified"]
114
+ // CIL[DOC-VECTOR type="constraint" content="Standard runtime; no special invariants documented"]
125
115
  // CIL[DOC-VECTOR type="implementation_pattern" content="" status="pending_human_input"]
126
116
  // CIL[DOC-VECTOR type="user_journey" content="" status="pending_human_input"]
117
+ // CIL[END stable_id="~/.framework/src/components/ui/sheet.tsx:SheetPortal:component"]
118
+
119
+ // CIL[BEGIN stable_id="~/.framework/src/components/ui/sheet.tsx:SheetOverlay:component" type="component" identity="SheetOverlay" parent="~/.framework/src/components/ui/sheet.tsx"]
120
+ // CIL[DOC-MACRO purpose="Renders the backdrop overlay behind the sheet"]
121
+ // CIL[DOC-RESPONSIBILITY responsibility="Renders the backdrop overlay behind the sheet"]
122
+ // CIL[DOC-CONTEXT module="components/ui" layer="ui" related_files=".framework/src/components/ui/button.tsx,.framework/src/components/ui/sheet.tsx,.framework/src/lib/utils.ts"]
123
+ // CIL[DOC-CONTRACT inputs="className: string, ...props: React.ComponentProps<typeof SheetPrimitive.Overlay>" outputs="JSX.Element" side_effects="none" errors="none"]
124
+ // CIL[DOC-MICRO logic_summary="Wraps SheetPrimitive.Overlay and applies a fixed black/80 backdrop with optional blur and open/close animations" notable_decisions="Uses cn to merge the provided className with Tailwind backdrop and animation utilities"]
125
+ // CIL[DOC-CONFIDENCE pass="second" score="0.90" flags="none"]
126
+ // CIL[DOC-STABILITY stability="stable"]
127
127
  function SheetOverlay({
128
128
  className,
129
129
  ...props
@@ -139,21 +139,22 @@ function SheetOverlay({
139
139
  />
140
140
  )
141
141
  }
142
- // CIL[END chunk_id="sheet_sheetoverlay_1783758409"]
143
- // CIL[BEGIN chunk_id="sheet_sheetcontent_1783758409" type="function" identity="SheetContent" parent="none"]
144
- // CIL[DOC-MACRO purpose="Main sheet content container with positioning"]
145
- // CIL[DOC-RESPONSIBILITY responsibility="Render sheet panel with side positioning and close button"]
146
- // CIL[DOC-CONTEXT module="sheet" layer="ui_components" related_files="[]"]
147
- // CIL[DOC-CONTRACT inputs="none" outputs="Styled sheet content" errors="none" side_effects="DOM rendering"]
148
- // CIL[DOC-MICRO logic_summary="Creates positioned sheet with portal, overlay, optional close button and animations" notable_decisions="[]"]
149
- // CIL[DOC-CONFIDENCE pass="second" score="0.95" flags="none"]
150
- // CIL[DOC-STABILITY stability="stable"]
151
- // CIL[DOC-VECTOR type="context" content="Layer: ui_components. Direct callers: 0. Direct calls: 0. Related files: none."]
152
- // CIL[DOC-VECTOR type="blast_radius" content="Direct callers: 0. Total affected: 0."]
153
- // CIL[DOC-VECTOR type="configuration" content="No configuration dependencies."]
154
- // CIL[DOC-VECTOR type="constraint" content="No test paths identified."]
142
+ // CIL[DOC-VECTOR type="context" content="purpose='Renders the backdrop overlay behind the sheet'; No verified external callers; imports: .framework/src/lib/utils.ts,.framework/src/components/ui/button.tsx"]
143
+ // CIL[DOC-VECTOR type="blast_radius" content="No direct caller data from CIL graph; local impact only"]
144
+ // CIL[DOC-VECTOR type="configuration" content="No environment or build configuration dependencies identified"]
145
+ // CIL[DOC-VECTOR type="constraint" content="Standard runtime; no special invariants documented"]
155
146
  // CIL[DOC-VECTOR type="implementation_pattern" content="" status="pending_human_input"]
156
147
  // CIL[DOC-VECTOR type="user_journey" content="" status="pending_human_input"]
148
+ // CIL[END stable_id="~/.framework/src/components/ui/sheet.tsx:SheetOverlay:component"]
149
+
150
+ // CIL[BEGIN stable_id="~/.framework/src/components/ui/sheet.tsx:SheetContent:component" type="component" identity="SheetContent" parent="~/.framework/src/components/ui/sheet.tsx"]
151
+ // CIL[DOC-MACRO purpose="Renders the main sheet panel with side positioning and an optional close button"]
152
+ // CIL[DOC-RESPONSIBILITY responsibility="Renders the main sheet panel with side positioning and an optional close button"]
153
+ // CIL[DOC-CONTEXT module="components/ui" layer="ui" related_files=".framework/src/components/ui/button.tsx,.framework/src/components/ui/sheet.tsx,.framework/src/lib/utils.ts"]
154
+ // CIL[DOC-CONTRACT inputs="className: string, children: ReactNode, side?: 'top'|'right'|'bottom'|'left', showCloseButton?: boolean, ...props: React.ComponentProps<typeof SheetPrimitive.Content>" outputs="JSX.Element" side_effects="none" errors="none"]
155
+ // CIL[DOC-MICRO logic_summary="Composes SheetPortal and SheetOverlay then renders SheetPrimitive.Content with side-aware Tailwind classes and an internal close button" notable_decisions="Defaults side to right and showCloseButton to true; uses data-side and data-open/data-closed attributes for animation hooks"]
156
+ // CIL[DOC-CONFIDENCE pass="second" score="0.90" flags="none"]
157
+ // CIL[DOC-STABILITY stability="stable"]
157
158
  function SheetContent({
158
159
  className,
159
160
  children,
@@ -194,21 +195,22 @@ function SheetContent({
194
195
  </SheetPortal>
195
196
  )
196
197
  }
197
- // CIL[END chunk_id="sheet_sheetcontent_1783758409"]
198
- // CIL[BEGIN chunk_id="sheet_sheetheader_1783758409" type="function" identity="SheetHeader" parent="none"]
199
- // CIL[DOC-MACRO purpose="Header section container for sheet"]
200
- // CIL[DOC-RESPONSIBILITY responsibility="Provide styled header container with spacing"]
201
- // CIL[DOC-CONTEXT module="sheet" layer="ui_components" related_files="[]"]
202
- // CIL[DOC-CONTRACT inputs="none" outputs="Styled header div" errors="none" side_effects="DOM rendering"]
203
- // CIL[DOC-MICRO logic_summary="Creates flex column header with gap and padding using Tailwind classes" notable_decisions="[]"]
204
- // CIL[DOC-CONFIDENCE pass="second" score="0.95" flags="none"]
205
- // CIL[DOC-STABILITY stability="stable"]
206
- // CIL[DOC-VECTOR type="context" content="Layer: ui_components. Direct callers: 0. Direct calls: 0. Related files: none."]
207
- // CIL[DOC-VECTOR type="blast_radius" content="Direct callers: 0. Total affected: 0."]
208
- // CIL[DOC-VECTOR type="configuration" content="No configuration dependencies."]
209
- // CIL[DOC-VECTOR type="constraint" content="No test paths identified."]
198
+ // CIL[DOC-VECTOR type="context" content="purpose='Renders the main sheet panel with side positioning and an optional close button'; No verified external callers; imports: .framework/src/lib/utils.ts,.framework/src/components/ui/button.tsx"]
199
+ // CIL[DOC-VECTOR type="blast_radius" content="No direct caller data from CIL graph; local impact only"]
200
+ // CIL[DOC-VECTOR type="configuration" content="No environment or build configuration dependencies identified"]
201
+ // CIL[DOC-VECTOR type="constraint" content="Standard runtime; no special invariants documented"]
210
202
  // CIL[DOC-VECTOR type="implementation_pattern" content="" status="pending_human_input"]
211
203
  // CIL[DOC-VECTOR type="user_journey" content="" status="pending_human_input"]
204
+ // CIL[END stable_id="~/.framework/src/components/ui/sheet.tsx:SheetContent:component"]
205
+
206
+ // CIL[BEGIN stable_id="~/.framework/src/components/ui/sheet.tsx:SheetHeader:component" type="component" identity="SheetHeader" parent="~/.framework/src/components/ui/sheet.tsx"]
207
+ // CIL[DOC-MACRO purpose="Renders the header area of a sheet panel"]
208
+ // CIL[DOC-RESPONSIBILITY responsibility="Renders the header area of a sheet panel"]
209
+ // CIL[DOC-CONTEXT module="components/ui" layer="ui" related_files=".framework/src/components/ui/button.tsx,.framework/src/components/ui/sheet.tsx,.framework/src/lib/utils.ts"]
210
+ // CIL[DOC-CONTRACT inputs="className: string, ...props: React.ComponentProps<'div'>" outputs="JSX.Element" side_effects="none" errors="none"]
211
+ // CIL[DOC-MICRO logic_summary="Renders a div with the sheet-header data slot and vertical flex gap padding" notable_decisions="Merges an optional className with base layout classes via cn"]
212
+ // CIL[DOC-CONFIDENCE pass="second" score="0.90" flags="none"]
213
+ // CIL[DOC-STABILITY stability="stable"]
212
214
  function SheetHeader({ className, ...props }: React.ComponentProps<"div">) {
213
215
  return (
214
216
  <div
@@ -218,21 +220,22 @@ function SheetHeader({ className, ...props }: React.ComponentProps<"div">) {
218
220
  />
219
221
  )
220
222
  }
221
- // CIL[END chunk_id="sheet_sheetheader_1783758409"]
222
- // CIL[BEGIN chunk_id="sheet_sheetfooter_1783758409" type="function" identity="SheetFooter" parent="none"]
223
- // CIL[DOC-MACRO purpose="Footer section container for sheet"]
224
- // CIL[DOC-RESPONSIBILITY responsibility="Provide styled footer container with auto margin"]
225
- // CIL[DOC-CONTEXT module="sheet" layer="ui_components" related_files="[]"]
226
- // CIL[DOC-CONTRACT inputs="none" outputs="Styled footer div" errors="none" side_effects="DOM rendering"]
227
- // CIL[DOC-MICRO logic_summary="Creates flex column footer with auto margin, gap and padding using Tailwind" notable_decisions="[]"]
228
- // CIL[DOC-CONFIDENCE pass="second" score="0.95" flags="none"]
229
- // CIL[DOC-STABILITY stability="stable"]
230
- // CIL[DOC-VECTOR type="context" content="Layer: ui_components. Direct callers: 0. Direct calls: 0. Related files: none."]
231
- // CIL[DOC-VECTOR type="blast_radius" content="Direct callers: 0. Total affected: 0."]
232
- // CIL[DOC-VECTOR type="configuration" content="No configuration dependencies."]
233
- // CIL[DOC-VECTOR type="constraint" content="No test paths identified."]
223
+ // CIL[DOC-VECTOR type="context" content="purpose='Renders the header area of a sheet panel'; 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"]
234
227
  // CIL[DOC-VECTOR type="implementation_pattern" content="" status="pending_human_input"]
235
228
  // CIL[DOC-VECTOR type="user_journey" content="" status="pending_human_input"]
229
+ // CIL[END stable_id="~/.framework/src/components/ui/sheet.tsx:SheetHeader:component"]
230
+
231
+ // CIL[BEGIN stable_id="~/.framework/src/components/ui/sheet.tsx:SheetFooter:component" type="component" identity="SheetFooter" parent="~/.framework/src/components/ui/sheet.tsx"]
232
+ // CIL[DOC-MACRO purpose="Renders the footer area of a sheet panel"]
233
+ // CIL[DOC-RESPONSIBILITY responsibility="Renders the footer area of a sheet panel"]
234
+ // CIL[DOC-CONTEXT module="components/ui" layer="ui" related_files=".framework/src/components/ui/button.tsx,.framework/src/components/ui/sheet.tsx,.framework/src/lib/utils.ts"]
235
+ // CIL[DOC-CONTRACT inputs="className: string, ...props: React.ComponentProps<'div'>" outputs="JSX.Element" side_effects="none" errors="none"]
236
+ // CIL[DOC-MICRO logic_summary="Renders a div with the sheet-footer data slot and bottom auto-margin padding" notable_decisions="Merges an optional className with base layout classes via cn"]
237
+ // CIL[DOC-CONFIDENCE pass="second" score="0.90" flags="none"]
238
+ // CIL[DOC-STABILITY stability="stable"]
236
239
  function SheetFooter({ className, ...props }: React.ComponentProps<"div">) {
237
240
  return (
238
241
  <div
@@ -242,21 +245,22 @@ function SheetFooter({ className, ...props }: React.ComponentProps<"div">) {
242
245
  />
243
246
  )
244
247
  }
245
- // CIL[END chunk_id="sheet_sheetfooter_1783758409"]
246
- // CIL[BEGIN chunk_id="sheet_sheettitle_1783758409" type="function" identity="SheetTitle" parent="none"]
247
- // CIL[DOC-MACRO purpose="Title component for sheet header"]
248
- // CIL[DOC-RESPONSIBILITY responsibility="Provide styled title with proper typography"]
249
- // CIL[DOC-CONTEXT module="sheet" layer="ui_components" related_files="[]"]
250
- // CIL[DOC-CONTRACT inputs="none" outputs="Styled title element" errors="none" side_effects="DOM rendering"]
251
- // CIL[DOC-MICRO logic_summary="Creates styled title using Radix UI Title with heading font and medium weight" notable_decisions="[]"]
252
- // CIL[DOC-CONFIDENCE pass="second" score="0.95" flags="none"]
253
- // CIL[DOC-STABILITY stability="stable"]
254
- // CIL[DOC-VECTOR type="context" content="Layer: ui_components. Direct callers: 0. Direct calls: 0. Related files: none."]
255
- // CIL[DOC-VECTOR type="blast_radius" content="Direct callers: 0. Total affected: 0."]
256
- // CIL[DOC-VECTOR type="configuration" content="No configuration dependencies."]
257
- // CIL[DOC-VECTOR type="constraint" content="No test paths identified."]
248
+ // CIL[DOC-VECTOR type="context" content="purpose='Renders the footer area of a sheet panel'; No verified external callers; imports: .framework/src/lib/utils.ts,.framework/src/components/ui/button.tsx"]
249
+ // CIL[DOC-VECTOR type="blast_radius" content="No direct caller data from CIL graph; local impact only"]
250
+ // CIL[DOC-VECTOR type="configuration" content="No environment or build configuration dependencies identified"]
251
+ // CIL[DOC-VECTOR type="constraint" content="Standard runtime; no special invariants documented"]
258
252
  // CIL[DOC-VECTOR type="implementation_pattern" content="" status="pending_human_input"]
259
253
  // CIL[DOC-VECTOR type="user_journey" content="" status="pending_human_input"]
254
+ // CIL[END stable_id="~/.framework/src/components/ui/sheet.tsx:SheetFooter:component"]
255
+
256
+ // CIL[BEGIN stable_id="~/.framework/src/components/ui/sheet.tsx:SheetTitle:component" type="component" identity="SheetTitle" parent="~/.framework/src/components/ui/sheet.tsx"]
257
+ // CIL[DOC-MACRO purpose="Renders the accessible title inside a sheet"]
258
+ // CIL[DOC-RESPONSIBILITY responsibility="Renders the accessible title inside a sheet"]
259
+ // CIL[DOC-CONTEXT module="components/ui" layer="ui" related_files=".framework/src/components/ui/button.tsx,.framework/src/components/ui/sheet.tsx,.framework/src/lib/utils.ts"]
260
+ // CIL[DOC-CONTRACT inputs="className: string, ...props: React.ComponentProps<typeof SheetPrimitive.Title>" outputs="JSX.Element" side_effects="none" errors="none"]
261
+ // CIL[DOC-MICRO logic_summary="Wraps SheetPrimitive.Title with a heading font and data-slot attribute" notable_decisions="Merges an optional className with base typography classes"]
262
+ // CIL[DOC-CONFIDENCE pass="second" score="0.90" flags="none"]
263
+ // CIL[DOC-STABILITY stability="stable"]
260
264
  function SheetTitle({
261
265
  className,
262
266
  ...props
@@ -272,21 +276,22 @@ function SheetTitle({
272
276
  />
273
277
  )
274
278
  }
275
- // CIL[END chunk_id="sheet_sheettitle_1783758409"]
276
- // CIL[BEGIN chunk_id="sheet_sheetdescription_1783758409" type="function" identity="SheetDescription" parent="none"]
277
- // CIL[DOC-MACRO purpose="Description component for sheet content"]
278
- // CIL[DOC-RESPONSIBILITY responsibility="Provide styled description with muted text styling"]
279
- // CIL[DOC-CONTEXT module="sheet" layer="ui_components" related_files="[]"]
280
- // CIL[DOC-CONTRACT inputs="none" outputs="Styled description element" errors="none" side_effects="DOM rendering"]
281
- // CIL[DOC-MICRO logic_summary="Creates styled description using Radix UI Description with muted text color" notable_decisions="[]"]
282
- // CIL[DOC-CONFIDENCE pass="second" score="0.95" flags="none"]
283
- // CIL[DOC-STABILITY stability="stable"]
284
- // CIL[DOC-VECTOR type="context" content="Layer: ui_components. Direct callers: 0. Direct calls: 0. Related files: none."]
285
- // CIL[DOC-VECTOR type="blast_radius" content="Direct callers: 0. Total affected: 0."]
286
- // CIL[DOC-VECTOR type="configuration" content="No configuration dependencies."]
287
- // CIL[DOC-VECTOR type="constraint" content="No test paths identified."]
279
+ // CIL[DOC-VECTOR type="context" content="purpose='Renders the accessible title inside a sheet'; No verified external callers; imports: .framework/src/lib/utils.ts,.framework/src/components/ui/button.tsx"]
280
+ // CIL[DOC-VECTOR type="blast_radius" content="No direct caller data from CIL graph; local impact only"]
281
+ // CIL[DOC-VECTOR type="configuration" content="No environment or build configuration dependencies identified"]
282
+ // CIL[DOC-VECTOR type="constraint" content="Standard runtime; no special invariants documented"]
288
283
  // CIL[DOC-VECTOR type="implementation_pattern" content="" status="pending_human_input"]
289
284
  // CIL[DOC-VECTOR type="user_journey" content="" status="pending_human_input"]
285
+ // CIL[END stable_id="~/.framework/src/components/ui/sheet.tsx:SheetTitle:component"]
286
+
287
+ // CIL[BEGIN stable_id="~/.framework/src/components/ui/sheet.tsx:SheetDescription:component" type="component" identity="SheetDescription" parent="~/.framework/src/components/ui/sheet.tsx"]
288
+ // CIL[DOC-MACRO purpose="Renders the accessible description inside a sheet"]
289
+ // CIL[DOC-RESPONSIBILITY responsibility="Renders the accessible description inside a sheet"]
290
+ // CIL[DOC-CONTEXT module="components/ui" layer="ui" related_files=".framework/src/components/ui/button.tsx,.framework/src/components/ui/sheet.tsx,.framework/src/lib/utils.ts"]
291
+ // CIL[DOC-CONTRACT inputs="className: string, ...props: React.ComponentProps<typeof SheetPrimitive.Description>" outputs="JSX.Element" side_effects="none" errors="none"]
292
+ // CIL[DOC-MICRO logic_summary="Wraps SheetPrimitive.Description with muted-foreground text styling" notable_decisions="Merges an optional className with base text classes"]
293
+ // CIL[DOC-CONFIDENCE pass="second" score="0.90" flags="none"]
294
+ // CIL[DOC-STABILITY stability="stable"]
290
295
  function SheetDescription({
291
296
  className,
292
297
  ...props
@@ -299,21 +304,21 @@ function SheetDescription({
299
304
  />
300
305
  )
301
306
  }
302
- // CIL[END chunk_id="sheet_sheetdescription_1783758409"]
303
- // CIL[BEGIN chunk_id="sheet_exports_1783758409" type="exports" identity="exports" parent="none"]
304
- // CIL[DOC-MACRO purpose="Export all sheet components for public API"]
305
- // CIL[DOC-RESPONSIBILITY responsibility="Provide module exports for sheet component library"]
306
- // CIL[DOC-CONTEXT module="sheet" layer="ui_components" related_files="[]"]
307
- // CIL[DOC-CONTRACT inputs="none" outputs="Component exports" errors="none" side_effects="Module exports"]
308
- // CIL[DOC-MICRO logic_summary="Exports all sheet components: Sheet, SheetTrigger, SheetClose, SheetContent, SheetHeader, SheetFooter, SheetTitle, SheetDescription" notable_decisions="[]"]
309
- // CIL[DOC-CONFIDENCE pass="second" score="0.95" flags="none"]
310
- // CIL[DOC-STABILITY stability="stable"]
311
- // CIL[DOC-VECTOR type="context" content="Layer: ui_components. Direct callers: 0. Direct calls: 0. Related files: none."]
312
- // CIL[DOC-VECTOR type="blast_radius" content="Direct callers: 0. Total affected: 0."]
313
- // CIL[DOC-VECTOR type="configuration" content="No configuration dependencies."]
314
- // CIL[DOC-VECTOR type="constraint" content="No test paths identified."]
307
+ // CIL[DOC-VECTOR type="context" content="purpose='Renders the accessible description inside a sheet'; No verified external callers; imports: .framework/src/lib/utils.ts,.framework/src/components/ui/button.tsx"]
308
+ // CIL[DOC-VECTOR type="blast_radius" content="No direct caller data from CIL graph; local impact only"]
309
+ // CIL[DOC-VECTOR type="configuration" content="No environment or build configuration dependencies identified"]
310
+ // CIL[DOC-VECTOR type="constraint" content="Standard runtime; no special invariants documented"]
315
311
  // CIL[DOC-VECTOR type="implementation_pattern" content="" status="pending_human_input"]
316
312
  // CIL[DOC-VECTOR type="user_journey" content="" status="pending_human_input"]
313
+ // CIL[END stable_id="~/.framework/src/components/ui/sheet.tsx:SheetDescription:component"]
314
+ // CIL[BEGIN stable_id="~/.framework/src/components/ui/sheet.tsx:exports:variable" type="variable" identity="exports" parent="~/.framework/src/components/ui/sheet.tsx"]
315
+ // CIL[DOC-MACRO purpose="Re-exports the Sheet subcomponents as the public API of the module"]
316
+ // CIL[DOC-RESPONSIBILITY responsibility="Re-exports the Sheet subcomponents as the public API of the module"]
317
+ // CIL[DOC-CONTEXT module="components/ui" layer="ui" related_files=".framework/src/components/ui/button.tsx,.framework/src/components/ui/sheet.tsx,.framework/src/lib/utils.ts"]
318
+ // CIL[DOC-CONTRACT inputs="none" outputs="named exports" side_effects="none" errors="none"]
319
+ // CIL[DOC-MICRO logic_summary="Named export list exposing all sheet primitives" notable_decisions="[]"]
320
+ // CIL[DOC-CONFIDENCE pass="second" score="0.90" flags="none"]
321
+ // CIL[DOC-STABILITY stability="stable"]
317
322
  export {
318
323
  Sheet,
319
324
  SheetTrigger,
@@ -324,4 +329,10 @@ export {
324
329
  SheetTitle,
325
330
  SheetDescription,
326
331
  }
327
- // CIL[END chunk_id="sheet_exports_1783758409"]
332
+ // CIL[DOC-VECTOR type="context" content="purpose='Re-exports the Sheet subcomponents as the public API of the module'; No verified external callers; imports: .framework/src/lib/utils.ts,.framework/src/components/ui/button.tsx"]
333
+ // CIL[DOC-VECTOR type="blast_radius" content="No direct caller data from CIL graph; local impact only"]
334
+ // CIL[DOC-VECTOR type="configuration" content="No environment or build configuration dependencies identified"]
335
+ // CIL[DOC-VECTOR type="constraint" content="Standard runtime; no special invariants documented"]
336
+ // CIL[DOC-VECTOR type="implementation_pattern" content="" status="pending_human_input"]
337
+ // CIL[DOC-VECTOR type="user_journey" content="" status="pending_human_input"]
338
+ // CIL[END stable_id="~/.framework/src/components/ui/sheet.tsx:exports:variable"]