spine-framework 0.3.124 → 0.3.126
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/.framework/cli/commands/agents.ts +35 -37
- package/.framework/cli/commands/auth.ts +35 -34
- package/.framework/cli/commands/create-app.ts +104 -40
- package/.framework/cli/commands/dev.ts +104 -69
- package/.framework/cli/commands/doctor.ts +179 -69
- package/.framework/cli/commands/generate.ts +83 -143
- package/.framework/cli/commands/init.ts +72 -34
- package/.framework/cli/commands/install-app.ts +260 -125
- package/.framework/cli/commands/items.ts +33 -44
- package/.framework/cli/commands/migrate.ts +122 -40
- package/.framework/cli/commands/migrations.ts +33 -40
- package/.framework/cli/commands/pipelines.ts +31 -39
- package/.framework/cli/commands/status.ts +47 -23
- package/.framework/cli/commands/system.ts +47 -37
- package/.framework/cli/commands/test.ts +112 -68
- package/.framework/cli/commands/validate-app.ts +215 -121
- package/.framework/cli/context.ts +112 -130
- package/.framework/cli/env-loader.ts +47 -18
- package/.framework/cli/index.ts +81 -42
- package/.framework/docs/runtime-types.md +1024 -0
- package/.framework/functions/_shared/agent-runner.ts +1296 -961
- package/.framework/functions/_shared/app-manifest.ts +82 -68
- package/.framework/functions/_shared/audit.ts +135 -83
- package/.framework/functions/_shared/{cil-state.ts → cil.ts} +158 -56
- package/.framework/functions/_shared/db.ts +80 -126
- package/.framework/functions/_shared/hash-api-key.ts +63 -0
- package/.framework/functions/_shared/index.ts +224 -335
- package/.framework/functions/_shared/kb.ts +319 -0
- package/.framework/functions/_shared/llm.ts +92 -0
- package/.framework/functions/_shared/logging.ts +288 -0
- package/.framework/functions/_shared/middleware.ts +329 -365
- package/.framework/functions/_shared/outcomes.ts +36 -0
- package/.framework/functions/_shared/permissions.ts +359 -643
- package/.framework/functions/_shared/pipeline-runner.ts +243 -316
- package/.framework/functions/_shared/principal.ts +376 -468
- package/.framework/functions/_shared/resolve-credentials.ts +102 -0
- package/.framework/functions/_shared/resolve-ids.ts +188 -16
- package/.framework/functions/_shared/retry-deliveries.ts +104 -0
- package/.framework/functions/_shared/schema-utils.ts +611 -373
- package/.framework/functions/_shared/testing.ts +207 -137
- package/.framework/functions/_shared/tracing.ts +276 -0
- package/.framework/functions/_shared/trigger-engine.ts +159 -211
- package/.framework/functions/_shared/webhook-registration.ts +95 -81
- package/.framework/functions/_shared/webhook-registry.ts +153 -75
- package/.framework/functions/account-nodes.ts +31 -53
- package/.framework/functions/adapters/generic-webhook-inbound.ts +56 -0
- package/.framework/functions/adapters/generic-webhook-outbound.ts +43 -0
- package/.framework/functions/adapters/openai-outbound.ts +40 -0
- package/.framework/functions/admin-data.ts +685 -537
- package/.framework/functions/admin-funnel.ts +31 -20
- package/.framework/functions/admin-install-funnel.ts +47 -28
- package/.framework/functions/admin-signals.ts +47 -29
- package/.framework/functions/ai-agents.ts +122 -147
- package/.framework/functions/ai-interactions.ts +180 -90
- package/.framework/functions/api-keys.ts +250 -192
- package/.framework/functions/apps.ts +203 -197
- package/.framework/functions/auth.ts +98 -91
- package/.framework/functions/cil-agent-ingest.ts +773 -0
- package/.framework/functions/cil-agent.ts +592 -0
- package/.framework/functions/cil-callmap.ts +1227 -0
- package/.framework/functions/cil-config.ts +583 -0
- package/.framework/functions/cil-context.ts +445 -0
- package/.framework/functions/cil-doc.ts +1752 -0
- package/.framework/functions/cil-embeddings.ts +1202 -0
- package/.framework/functions/cil-graph.ts +585 -0
- package/.framework/functions/cil-ingest.ts +2416 -0
- package/.framework/functions/cil-pipeline.ts +318 -0
- package/.framework/functions/cil-project.ts +499 -0
- package/.framework/functions/cil-validate.ts +469 -0
- package/.framework/functions/debug-auth.ts +73 -53
- package/.framework/functions/deliveries.ts +117 -0
- package/.framework/functions/embeddings.ts +528 -516
- package/.framework/functions/eval-harness.ts +158 -106
- package/.framework/functions/integration-outbound.ts +311 -0
- package/.framework/functions/integration-routes.ts +240 -466
- package/.framework/functions/integrations.ts +132 -140
- package/.framework/functions/invites.ts +401 -201
- package/.framework/functions/item-progress.ts +113 -53
- package/.framework/functions/kb.ts +28 -0
- package/.framework/functions/logs.ts +239 -222
- package/.framework/functions/observability.ts +308 -259
- package/.framework/functions/pipeline-executions.ts +179 -235
- package/.framework/functions/pipelines.ts +163 -205
- package/.framework/functions/prompt-configs.ts +109 -156
- package/.framework/functions/roles.ts +97 -147
- package/.framework/functions/system-cron.ts +132 -218
- package/.framework/functions/system.ts +112 -52
- package/.framework/functions/tests.ts +32 -28
- package/.framework/functions/timers.ts +162 -210
- package/.framework/functions/triggers.ts +282 -346
- package/.framework/functions/types.ts +283 -400
- package/.framework/migrations/001_core_schema.sql +630 -0
- package/.framework/migrations/002_core_rls_and_functions.sql +532 -0
- package/.framework/migrations/{003_system_data.sql → 003_core_system_data.sql} +26 -153
- package/.framework/migrations/004_core_rpc_and_broker.sql +421 -0
- package/.framework/migrations/005_core_observability.sql +598 -0
- package/.framework/migrations/006_security_hardening_rls.sql +97 -0
- package/.framework/migrations/007_kb_article_list.sql +237 -0
- package/.framework/migrations/008_items_target.sql +8 -0
- package/.framework/migrations/009_roles_slug_unique.sql +11 -0
- package/.framework/public/spine.config.json +91 -0
- package/.framework/scripts/app-install-cli.ts +112 -98
- package/.framework/src/App.tsx +67 -20
- package/.framework/src/apps/admin/index.tsx +97 -27
- package/.framework/src/components/AppWrapper.tsx +50 -11
- package/.framework/src/components/CustomAppLoader.tsx +131 -22
- package/.framework/src/components/admin/AdminListPage.tsx +75 -8
- package/.framework/src/components/admin/AdminSidebar.tsx +148 -36
- package/.framework/src/components/admin/AdminStatsCard.tsx +48 -29
- package/.framework/src/components/admin/PageInstructions.tsx +49 -0
- package/.framework/src/components/admin/SortableTableHeader.tsx +49 -2
- package/.framework/src/components/app-shell/GenericAppShell.tsx +69 -11
- package/.framework/src/components/app-shell/GenericDetailPage.tsx +55 -10
- package/.framework/src/components/app-shell/GenericListPage.tsx +76 -9
- package/.framework/src/components/app-sidebar.tsx +50 -3
- package/.framework/src/components/auth/ProtectedRoute.tsx +53 -45
- package/.framework/src/components/kb/KBArticleEditor.tsx +409 -0
- package/.framework/src/components/kb/KBArticleList.tsx +557 -0
- package/.framework/src/components/layout/AppShell.tsx +54 -16
- package/.framework/src/components/layout/Header.tsx +50 -38
- package/.framework/src/components/layout/Layout.tsx +48 -32
- package/.framework/src/components/layout/Sidebar.tsx +167 -16
- package/.framework/src/components/runtime/DataDetailHeader.tsx +33 -1
- package/.framework/src/components/runtime/DataDetailPage.tsx +289 -4
- package/.framework/src/components/runtime/DataFilters.tsx +78 -1
- package/.framework/src/components/runtime/DataHeader.tsx +32 -29
- package/.framework/src/components/runtime/DataListPage.tsx +161 -2
- package/.framework/src/components/runtime/DataStats.tsx +48 -1
- package/.framework/src/components/runtime/DataTable.tsx +153 -1
- package/.framework/src/components/runtime/SchemaDetailForm.tsx +77 -46
- package/.framework/src/components/runtime/index.ts +16 -9
- package/.framework/src/components/search-form.tsx +33 -1
- package/.framework/src/components/shared/AgentView.tsx +48 -51
- package/.framework/src/components/shared/FieldRenderer.tsx +84 -67
- package/.framework/src/components/shared/InviteManager.tsx +113 -52
- package/.framework/src/components/shared/MemberList.tsx +182 -0
- package/.framework/src/components/shared/SchemaFields.tsx +96 -78
- package/.framework/src/components/ui/DataTable.tsx +86 -56
- package/.framework/src/components/ui/Form.tsx +188 -109
- package/.framework/src/components/ui/ItemCard.tsx +86 -58
- package/.framework/src/components/ui/ItemListView.tsx +88 -61
- package/.framework/src/components/ui/LoadingSpinner.tsx +52 -27
- package/.framework/src/components/ui/Modal.tsx +81 -4
- package/.framework/src/components/ui/RichTextEditor.tsx +101 -9
- package/.framework/src/components/ui/accordion.tsx +97 -5
- package/.framework/src/components/ui/alert-dialog.tsx +225 -13
- package/.framework/src/components/ui/alert.tsx +113 -6
- package/.framework/src/components/ui/aspect-ratio.tsx +49 -2
- package/.framework/src/components/ui/avatar.tsx +129 -7
- package/.framework/src/components/ui/badge.tsx +65 -3
- package/.framework/src/components/ui/breadcrumb.tsx +145 -8
- package/.framework/src/components/ui/button-group.tsx +81 -4
- package/.framework/src/components/ui/button.tsx +49 -2
- package/.framework/src/components/ui/calendar.tsx +65 -3
- package/.framework/src/components/ui/card.tsx +145 -8
- package/.framework/src/components/ui/carousel.tsx +129 -7
- package/.framework/src/components/ui/chart.tsx +161 -10
- package/.framework/src/components/ui/checkbox.tsx +49 -2
- package/.framework/src/components/ui/collapsible.tsx +81 -5
- package/.framework/src/components/ui/combobox.tsx +305 -20
- package/.framework/src/components/ui/command.tsx +177 -11
- package/.framework/src/components/ui/context-menu.tsx +273 -17
- package/.framework/src/components/ui/dialog.tsx +209 -27
- package/.framework/src/components/ui/direction.tsx +64 -4
- package/.framework/src/components/ui/drawer.tsx +193 -12
- package/.framework/src/components/ui/dropdown-menu.tsx +273 -18
- package/.framework/src/components/ui/empty.tsx +145 -9
- package/.framework/src/components/ui/field.tsx +209 -14
- package/.framework/src/components/ui/hover-card.tsx +81 -4
- package/.framework/src/components/ui/input-group.tsx +162 -10
- package/.framework/src/components/ui/input-otp.tsx +98 -5
- package/.framework/src/components/ui/input.tsx +49 -2
- package/.framework/src/components/ui/item.tsx +225 -13
- package/.framework/src/components/ui/kbd.tsx +65 -3
- package/.framework/src/components/ui/label.tsx +49 -2
- package/.framework/src/components/ui/menubar.tsx +289 -17
- package/.framework/src/components/ui/native-select.tsx +97 -5
- package/.framework/src/components/ui/navigation-menu.tsx +177 -10
- package/.framework/src/components/ui/pagination.tsx +161 -9
- package/.framework/src/components/ui/popover.tsx +145 -8
- package/.framework/src/components/ui/progress.tsx +49 -2
- package/.framework/src/components/ui/radio-group.tsx +65 -3
- package/.framework/src/components/ui/resizable.tsx +82 -4
- package/.framework/src/components/ui/scroll-area.tsx +65 -3
- package/.framework/src/components/ui/select.tsx +193 -11
- package/.framework/src/components/ui/separator.tsx +49 -2
- package/.framework/src/components/ui/sheet.tsx +193 -11
- package/.framework/src/components/ui/sidebar.tsx +481 -38
- package/.framework/src/components/ui/skeleton.tsx +49 -2
- package/.framework/src/components/ui/slider.tsx +49 -2
- package/.framework/src/components/ui/sonner.tsx +49 -2
- package/.framework/src/components/ui/spinner.tsx +49 -2
- package/.framework/src/components/ui/switch.tsx +49 -2
- package/.framework/src/components/ui/table-primitives.tsx +160 -33
- package/.framework/src/components/ui/table.tsx +161 -9
- package/.framework/src/components/ui/tabs.tsx +113 -6
- package/.framework/src/components/ui/textarea.tsx +49 -2
- package/.framework/src/components/ui/toggle-group.tsx +81 -4
- package/.framework/src/components/ui/toggle.tsx +65 -3
- package/.framework/src/components/ui/tooltip.tsx +97 -5
- package/.framework/src/contexts/AppContext.tsx +129 -45
- package/.framework/src/contexts/AuthContext.tsx +187 -144
- package/.framework/src/hooks/use-mobile.ts +48 -2
- package/.framework/src/hooks/useApi.ts +208 -159
- package/.framework/src/hooks/useAppPath.ts +32 -23
- package/.framework/src/hooks/useApps.ts +51 -20
- package/.framework/src/hooks/useEntityList.ts +32 -78
- package/.framework/src/hooks/useEntityRecord.ts +35 -96
- package/.framework/src/hooks/useForm.ts +32 -92
- package/.framework/src/hooks/useListSchema.ts +49 -78
- package/.framework/src/hooks/useSchemaRecord.ts +114 -105
- package/.framework/src/lib/api.ts +195 -116
- package/.framework/src/lib/supabase.ts +98 -64
- package/.framework/src/lib/utils.ts +287 -151
- package/.framework/src/main.tsx +49 -3
- package/.framework/src/pages/DashboardPage.tsx +52 -29
- package/.framework/src/pages/NotFoundPage.tsx +32 -10
- package/.framework/src/pages/SetupPage.tsx +32 -12
- package/.framework/src/pages/admin/AIAgentDetailPage.tsx +119 -10
- package/.framework/src/pages/admin/AIAgentsPage.tsx +48 -19
- package/.framework/src/pages/admin/APIKeyDetailPage.tsx +187 -17
- package/.framework/src/pages/admin/APIKeysPage.tsx +98 -22
- package/.framework/src/pages/admin/AlertsConfigPage.tsx +113 -26
- package/.framework/src/pages/admin/AppDetailPage.tsx +125 -8
- package/.framework/src/pages/admin/AppsPage.tsx +49 -2
- package/.framework/src/pages/admin/DeliveriesPage.tsx +196 -0
- package/.framework/src/pages/admin/DesignedPage.tsx +32 -18
- package/.framework/src/pages/admin/EmbeddingDetailPage.tsx +215 -484
- package/.framework/src/pages/admin/EmbeddingsPage.tsx +116 -319
- package/.framework/src/pages/admin/ExtendedShadcnTestPage.tsx +34 -9
- package/.framework/src/pages/admin/IncrementalShadcnTestPage.tsx +34 -9
- package/.framework/src/pages/admin/IntegratedDashboard.tsx +32 -16
- package/.framework/src/pages/admin/IntegrationDetailPage.tsx +183 -26
- package/.framework/src/pages/admin/IntegrationsPage.tsx +48 -19
- package/.framework/src/pages/admin/InvitesPage.tsx +48 -14
- package/.framework/src/pages/admin/LogsPage.tsx +422 -75
- package/.framework/src/pages/admin/MinimalShadcnTestPage.tsx +34 -9
- package/.framework/src/pages/admin/ObservabilityDashboard.tsx +113 -24
- package/.framework/src/pages/admin/PipelineDetailPage.tsx +206 -34
- package/.framework/src/pages/admin/PipelineExecutionsPage.tsx +50 -17
- package/.framework/src/pages/admin/PipelinesPage.tsx +160 -21
- package/.framework/src/pages/admin/PromptConfigDetailPage.tsx +378 -88
- package/.framework/src/pages/admin/PromptConfigsPage.tsx +125 -16
- package/.framework/src/pages/admin/ProperlyDesignedPage.tsx +49 -10
- package/.framework/src/pages/admin/RoleDetailPage.tsx +130 -10
- package/.framework/src/pages/admin/RolesPage.tsx +171 -18
- package/.framework/src/pages/admin/SelectTestPage.tsx +34 -9
- package/.framework/src/pages/admin/ShadcnTestPage.tsx +49 -11
- package/.framework/src/pages/admin/SimpleDashboard.tsx +49 -10
- package/.framework/src/pages/admin/TestRunDetailPage.tsx +49 -4
- package/.framework/src/pages/admin/TestingDashboard.tsx +98 -28
- package/.framework/src/pages/admin/TimerDetailPage.tsx +143 -33
- package/.framework/src/pages/admin/TimersPage.tsx +48 -20
- package/.framework/src/pages/admin/TriggerDetailPage.tsx +118 -30
- package/.framework/src/pages/admin/TriggersPage.tsx +64 -19
- package/.framework/src/pages/admin/TypeDetailPage.tsx +138 -15
- package/.framework/src/pages/admin/TypesPage.tsx +48 -20
- package/.framework/src/pages/admin/cil/CILAgentPage.tsx +465 -0
- package/.framework/src/pages/admin/cil/CILChunkDetailPage.tsx +787 -0
- package/.framework/src/pages/admin/cil/CILDashboardPage.tsx +699 -0
- package/.framework/src/pages/admin/cil/CILFileListPage.tsx +647 -0
- package/.framework/src/pages/admin/cil/CILGraphPage.tsx +616 -0
- package/.framework/src/pages/admin/cil/CILIngestionPage.tsx +1402 -0
- package/.framework/src/pages/admin/cil/CILProjectsPage.tsx +614 -0
- package/.framework/src/pages/admin/cil/CILSearchPage.tsx +571 -0
- package/.framework/src/pages/admin/cil/FlexiblePipelinePage.tsx +731 -0
- package/.framework/src/pages/admin/kb/KBAdminPage.tsx +64 -0
- package/.framework/src/pages/auth/AuthConfirmPage.tsx +52 -51
- package/.framework/src/pages/auth/ForgotPasswordPage.tsx +31 -22
- package/.framework/src/pages/auth/LoginPage.tsx +50 -23
- package/.framework/src/pages/auth/PendingApprovalPage.tsx +31 -15
- package/.framework/src/pages/auth/RegisterPage.tsx +281 -317
- package/.framework/src/pages/spine-framework/APIPage.tsx +33 -0
- package/.framework/src/pages/spine-framework/CLIPage.tsx +33 -0
- package/.framework/src/types/auth.ts +128 -71
- package/.framework/src/types/types.ts +373 -157
- package/custom/.devin/skills/spine-workbench-discovery/SKILL.md +39 -0
- package/custom/.devin/skills/spine-workbench-idea/SKILL.md +36 -0
- package/custom/.devin/skills/spine-workbench-implement/SKILL.md +46 -0
- package/custom/.devin/skills/spine-workbench-initiative/SKILL.md +28 -0
- package/custom/.devin/skills/spine-workbench-plan/SKILL.md +38 -0
- package/docs/README.md +9 -130
- package/netlify.toml +5 -2
- package/package.json +13 -25
- package/scripts/kb-ingest-docs.ts +203 -0
- package/spine.config.json +65 -4
- package/.framework/migrations/001_schema.sql +0 -425
- package/.framework/migrations/002_rls_and_functions.sql +0 -763
- package/.framework/migrations/004_enhancements.sql +0 -43
- package/.framework/migrations/005_auth_user_trigger.sql +0 -105
- package/.framework/migrations/006_fix_current_actor_id.sql +0 -21
- package/.framework/migrations/016_invites.sql +0 -27
- package/.framework/migrations/017_fix_get_account_apps.sql +0 -78
- package/.framework/migrations/018_apps_required_roles.sql +0 -17
- package/.framework/migrations/019_triggers_unique_constraint.sql +0 -13
- package/.framework/migrations/020_get_account_apps_role_filter.sql +0 -117
- package/.framework/migrations/021_app_domains.sql +0 -112
- package/.framework/migrations/022_route_prefix_domain_unique.sql +0 -21
- package/.framework/migrations/023_match_embeddings_rpc.sql +0 -78
- package/.framework/migrations/024_messages_account_id.sql +0 -9
- package/.framework/migrations/025_retype_threads_messages.sql +0 -240
- package/.framework/migrations/026_fix_rls_policies.sql +0 -47
- package/.framework/migrations/027_embedding_lifecycle.sql +0 -176
- package/.framework/migrations/028_fix_message_data_permissions.sql +0 -49
- package/.framework/migrations/029_tighten_support_triage_prompt.sql +0 -41
- package/.framework/migrations/030_messages_updated_by.sql +0 -6
- package/.framework/migrations/031_seed_upsert_constraints.sql +0 -35
- package/docs/APPS.md +0 -232
- package/docs/ARCHITECTURE.md +0 -246
- package/docs/INSTALL.md +0 -155
- package/docs/design-schema-spec.md +0 -1837
- package/docs/dev-guides/01-create-an-app.md +0 -183
- package/docs/dev-guides/02-create-a-function.md +0 -178
- package/docs/dev-guides/03-create-a-component.md +0 -178
- package/docs/dev-guides/04-webhook-handlers.md +0 -129
- package/docs/dev-guides/05-testing.md +0 -168
- package/docs/dev-guides/README.md +0 -40
- package/docs/npm-packages-plan.md +0 -288
- package/docs/spine-core--api-reference.md +0 -822
|
@@ -1,3 +1,48 @@
|
|
|
1
|
+
|
|
2
|
+
|
|
3
|
+
|
|
4
|
+
|
|
5
|
+
|
|
6
|
+
|
|
7
|
+
|
|
8
|
+
|
|
9
|
+
|
|
10
|
+
|
|
11
|
+
|
|
12
|
+
|
|
13
|
+
|
|
14
|
+
|
|
15
|
+
|
|
16
|
+
|
|
17
|
+
|
|
18
|
+
|
|
19
|
+
|
|
20
|
+
|
|
21
|
+
|
|
22
|
+
|
|
23
|
+
|
|
24
|
+
|
|
25
|
+
|
|
26
|
+
|
|
27
|
+
|
|
28
|
+
|
|
29
|
+
|
|
30
|
+
|
|
31
|
+
// CIL[BEGIN chunk_id="sidebar_module_header_1783758409" type="module_header" identity="imports" parent="none"]
|
|
32
|
+
// CIL[DOC-MACRO purpose="Import dependencies for sidebar component library"]
|
|
33
|
+
// CIL[DOC-RESPONSIBILITY responsibility="Import external React UI primitives and utilities"]
|
|
34
|
+
// CIL[DOC-CONTEXT module="sidebar" layer="ui_components" related_files="[\".framework/src/components/layout/Sidebar.tsx\",\".framework/src/components/ui/dialog.tsx\",\"custom/apps/cortex/pages/operations/OperationsDashboard.tsx\",\"custom/apps/portal/pages/ContentPage.tsx\",\"custom/apps/portal/pages/CoursesPage.tsx\",\"\\\"]"]
|
|
35
|
+
// CIL[DOC-CONTRACT inputs="none" outputs="React, CVA, hooks, UI components, icons" errors="none" side_effects="Module imports"]
|
|
36
|
+
// CIL[DOC-MICRO logic_summary="Imports React, CVA, hooks, UI components and icons for sidebar functionality" notable_decisions="[]"]
|
|
37
|
+
// CIL[DOC-CONFIDENCE pass="second" score="0.95" flags="none"]
|
|
38
|
+
// CIL[DOC-STABILITY stability="stable"]
|
|
39
|
+
// CIL[DOC-AUDIENCE audience="developer"]
|
|
40
|
+
// CIL[DOC-VECTOR type="context" content="Layer: ui_components. Direct callers: 0. Direct calls: 0. Related files: .framework/src/components/layout/Sidebar.tsx, .framework/src/components/ui/dialog.tsx, custom/apps/cortex/pages/operations/OperationsDashboard.tsx, custom/apps/portal/pages/ContentPage.tsx, custom/apps/portal/pages/CoursesPage.tsx, \."]
|
|
41
|
+
// CIL[DOC-VECTOR type="blast_radius" content="Direct callers: 0. Total affected: 0."]
|
|
42
|
+
// CIL[DOC-VECTOR type="configuration" content="No configuration dependencies."]
|
|
43
|
+
// CIL[DOC-VECTOR type="constraint" content="No test paths identified."]
|
|
44
|
+
// CIL[DOC-VECTOR type="implementation_pattern" content="" status="pending_human_input"]
|
|
45
|
+
// CIL[DOC-VECTOR type="user_journey" content="" status="pending_human_input"]
|
|
1
46
|
import * as React from "react"
|
|
2
47
|
import { cva, type VariantProps } from "class-variance-authority"
|
|
3
48
|
import { Slot } from "radix-ui"
|
|
@@ -21,14 +66,42 @@ import {
|
|
|
21
66
|
TooltipTrigger,
|
|
22
67
|
} from "@/components/ui/tooltip"
|
|
23
68
|
import { PanelLeftIcon } from "lucide-react"
|
|
24
|
-
|
|
69
|
+
// CIL[END chunk_id="sidebar_module_header_1783758409"]
|
|
70
|
+
// CIL[BEGIN chunk_id="sidebar_constants_1783758409" type="constants" identity="constants" parent="none"]
|
|
71
|
+
// CIL[DOC-MACRO purpose="Define sidebar configuration constants"]
|
|
72
|
+
// CIL[DOC-RESPONSIBILITY responsibility="Provide sidebar state and styling configuration values"]
|
|
73
|
+
// CIL[DOC-CONTEXT module="sidebar" layer="ui_components" related_files="[\".framework/src/components/layout/Sidebar.tsx\",\".framework/src/pages/admin/IntegrationsPage.tsx\",\".framework/functions/_shared/principal.ts\",\".framework/functions/_shared/schema-utils.ts\",\"custom/apps/cortex/pages/operations/OperationsDashboard.tsx\",\"\\\"]"]
|
|
74
|
+
// CIL[DOC-CONTRACT inputs="none" outputs="Constants" errors="none" side_effects="Constants definition"]
|
|
75
|
+
// CIL[DOC-MICRO logic_summary="Defines cookie name, max age, width values and keyboard shortcut for sidebar" notable_decisions="[]"]
|
|
76
|
+
// CIL[DOC-CONFIDENCE pass="second" score="0.95" flags="none"]
|
|
77
|
+
// CIL[DOC-STABILITY stability="stable"]
|
|
78
|
+
// CIL[DOC-VECTOR type="context" content="Layer: ui_components. Direct callers: 0. Direct calls: 0. Related files: .framework/src/components/layout/Sidebar.tsx, .framework/src/pages/admin/IntegrationsPage.tsx, .framework/functions/_shared/principal.ts, .framework/functions/_shared/schema-utils.ts, custom/apps/cortex/pages/operations/OperationsDashboard.tsx, \."]
|
|
79
|
+
// CIL[DOC-VECTOR type="blast_radius" content="Direct callers: 0. Total affected: 0."]
|
|
80
|
+
// CIL[DOC-VECTOR type="configuration" content="No configuration dependencies."]
|
|
81
|
+
// CIL[DOC-VECTOR type="constraint" content="No test paths identified."]
|
|
82
|
+
// CIL[DOC-VECTOR type="implementation_pattern" content="" status="pending_human_input"]
|
|
83
|
+
// CIL[DOC-VECTOR type="user_journey" content="" status="pending_human_input"]
|
|
25
84
|
const SIDEBAR_COOKIE_NAME = "sidebar_state"
|
|
26
85
|
const SIDEBAR_COOKIE_MAX_AGE = 60 * 60 * 24 * 7
|
|
27
86
|
const SIDEBAR_WIDTH = "16rem"
|
|
28
87
|
const SIDEBAR_WIDTH_MOBILE = "18rem"
|
|
29
88
|
const SIDEBAR_WIDTH_ICON = "3rem"
|
|
30
89
|
const SIDEBAR_KEYBOARD_SHORTCUT = "b"
|
|
31
|
-
|
|
90
|
+
// CIL[END chunk_id="sidebar_constants_1783758409"]
|
|
91
|
+
// CIL[BEGIN chunk_id="sidebar_types_1783758409" type="types" identity="SidebarContextProps" parent="none"]
|
|
92
|
+
// CIL[DOC-MACRO purpose="Define sidebar context interface"]
|
|
93
|
+
// CIL[DOC-RESPONSIBILITY responsibility="Provide TypeScript interface for sidebar context"]
|
|
94
|
+
// CIL[DOC-CONTEXT module="sidebar" layer="ui_components" related_files="[\".framework/src/components/layout/Sidebar.tsx\",\".framework/functions/_shared/schema-utils.ts\",\".framework/src/pages/admin/IntegrationsPage.tsx\",\".framework/functions/_shared/principal.ts\",\"custom/apps/cortex/pages/operations/OperationsDashboard.tsx\",\"\\\"]"]
|
|
95
|
+
// CIL[DOC-CONTRACT inputs="none" outputs="TypeScript interface" errors="none" side_effects="Type definition"]
|
|
96
|
+
// CIL[DOC-MICRO logic_summary="Defines interface with state, open/close functions, mobile detection and toggle" notable_decisions="[]"]
|
|
97
|
+
// CIL[DOC-CONFIDENCE pass="second" score="0.95" flags="none"]
|
|
98
|
+
// CIL[DOC-STABILITY stability="stable"]
|
|
99
|
+
// CIL[DOC-VECTOR type="context" content="Layer: ui_components. Direct callers: 0. Direct calls: 0. Related files: .framework/src/components/layout/Sidebar.tsx, .framework/functions/_shared/schema-utils.ts, .framework/src/pages/admin/IntegrationsPage.tsx, .framework/functions/_shared/principal.ts, custom/apps/cortex/pages/operations/OperationsDashboard.tsx, \."]
|
|
100
|
+
// CIL[DOC-VECTOR type="blast_radius" content="Direct callers: 0. Total affected: 0."]
|
|
101
|
+
// CIL[DOC-VECTOR type="configuration" content="No configuration dependencies."]
|
|
102
|
+
// CIL[DOC-VECTOR type="constraint" content="No test paths identified."]
|
|
103
|
+
// CIL[DOC-VECTOR type="implementation_pattern" content="" status="pending_human_input"]
|
|
104
|
+
// CIL[DOC-VECTOR type="user_journey" content="" status="pending_human_input"]
|
|
32
105
|
type SidebarContextProps = {
|
|
33
106
|
state: "expanded" | "collapsed"
|
|
34
107
|
open: boolean
|
|
@@ -38,9 +111,37 @@ type SidebarContextProps = {
|
|
|
38
111
|
isMobile: boolean
|
|
39
112
|
toggleSidebar: () => void
|
|
40
113
|
}
|
|
41
|
-
|
|
114
|
+
// CIL[END chunk_id="sidebar_types_1783758409"]
|
|
115
|
+
// CIL[BEGIN chunk_id="sidebar_context_1783758409" type="context" identity="SidebarContext" parent="none"]
|
|
116
|
+
// CIL[DOC-MACRO purpose="Create React context for sidebar state"]
|
|
117
|
+
// CIL[DOC-RESPONSIBILITY responsibility="Provide context for sharing sidebar state across components"]
|
|
118
|
+
// CIL[DOC-CONTEXT module="sidebar" layer="ui_components" related_files="[\".framework/src/components/layout/Sidebar.tsx\",\".framework/src/pages/admin/TypeDetailPage.tsx\",\"custom/apps/portal/pages/ContentPage.tsx\",\"custom/apps/portal/pages/CoursesPage.tsx\",\"custom/apps/cortex/pages/operations/OperationsDashboard.tsx\",\"\\\"]"]
|
|
119
|
+
// CIL[DOC-CONTRACT inputs="none" outputs="React Context" errors="none" side_effects="React context creation"]
|
|
120
|
+
// CIL[DOC-MICRO logic_summary="Creates React context with SidebarContextProps type and null default" notable_decisions="[]"]
|
|
121
|
+
// CIL[DOC-CONFIDENCE pass="second" score="0.95" flags="none"]
|
|
122
|
+
// CIL[DOC-STABILITY stability="stable"]
|
|
123
|
+
// CIL[DOC-VECTOR type="context" content="Layer: ui_components. Direct callers: 0. Direct calls: 0. Related files: .framework/src/components/layout/Sidebar.tsx, .framework/src/pages/admin/TypeDetailPage.tsx, custom/apps/portal/pages/ContentPage.tsx, custom/apps/portal/pages/CoursesPage.tsx, custom/apps/cortex/pages/operations/OperationsDashboard.tsx, \."]
|
|
124
|
+
// CIL[DOC-VECTOR type="blast_radius" content="Direct callers: 0. Total affected: 0."]
|
|
125
|
+
// CIL[DOC-VECTOR type="configuration" content="No configuration dependencies."]
|
|
126
|
+
// CIL[DOC-VECTOR type="constraint" content="No test paths identified."]
|
|
127
|
+
// CIL[DOC-VECTOR type="implementation_pattern" content="" status="pending_human_input"]
|
|
128
|
+
// CIL[DOC-VECTOR type="user_journey" content="" status="pending_human_input"]
|
|
42
129
|
const SidebarContext = React.createContext<SidebarContextProps | null>(null)
|
|
43
|
-
|
|
130
|
+
// CIL[END chunk_id="sidebar_context_1783758409"]
|
|
131
|
+
// CIL[BEGIN chunk_id="sidebar_usesidebar_1783758409" type="function" identity="useSidebar" parent="none"]
|
|
132
|
+
// CIL[DOC-MACRO purpose="Hook to access sidebar context"]
|
|
133
|
+
// CIL[DOC-RESPONSIBILITY responsibility="Provide safe access to sidebar context with error handling"]
|
|
134
|
+
// CIL[DOC-CONTEXT module="sidebar" layer="ui_components" related_files="[]"]
|
|
135
|
+
// CIL[DOC-CONTRACT inputs="none" outputs="SidebarContextProps" errors="Throws if context missing" side_effects="React context access"]
|
|
136
|
+
// CIL[DOC-MICRO logic_summary="Accesses React context with error throwing for missing provider" notable_decisions="[]"]
|
|
137
|
+
// CIL[DOC-CONFIDENCE pass="second" score="0.95" flags="none"]
|
|
138
|
+
// CIL[DOC-STABILITY stability="stable"]
|
|
139
|
+
// CIL[DOC-VECTOR type="context" content="Layer: ui_components. Direct callers: 0. Direct calls: 0. Related files: none."]
|
|
140
|
+
// CIL[DOC-VECTOR type="blast_radius" content="Direct callers: 0. Total affected: 0."]
|
|
141
|
+
// CIL[DOC-VECTOR type="configuration" content="No configuration dependencies."]
|
|
142
|
+
// CIL[DOC-VECTOR type="constraint" content="No test paths identified."]
|
|
143
|
+
// CIL[DOC-VECTOR type="implementation_pattern" content="" status="pending_human_input"]
|
|
144
|
+
// CIL[DOC-VECTOR type="user_journey" content="" status="pending_human_input"]
|
|
44
145
|
function useSidebar() {
|
|
45
146
|
const context = React.useContext(SidebarContext)
|
|
46
147
|
if (!context) {
|
|
@@ -49,7 +150,21 @@ function useSidebar() {
|
|
|
49
150
|
|
|
50
151
|
return context
|
|
51
152
|
}
|
|
52
|
-
|
|
153
|
+
// CIL[END chunk_id="sidebar_usesidebar_1783758409"]
|
|
154
|
+
// CIL[BEGIN chunk_id="sidebar_sidebarprovider_1783758409" type="function" identity="SidebarProvider" parent="none"]
|
|
155
|
+
// CIL[DOC-MACRO purpose="Provider component for sidebar state management"]
|
|
156
|
+
// CIL[DOC-RESPONSIBILITY responsibility="Manage sidebar state, persistence, keyboard shortcuts and mobile detection"]
|
|
157
|
+
// CIL[DOC-CONTEXT module="sidebar" layer="ui_components" related_files="[]"]
|
|
158
|
+
// CIL[DOC-CONTRACT inputs="none" outputs="Context provider" errors="none" side_effects="State management, cookie storage, keyboard events"]
|
|
159
|
+
// CIL[DOC-MICRO logic_summary="Manages sidebar state with cookie persistence, keyboard shortcuts, mobile detection and context provision" notable_decisions="[]"]
|
|
160
|
+
// CIL[DOC-CONFIDENCE pass="second" score="0.95" flags="none"]
|
|
161
|
+
// CIL[DOC-STABILITY stability="stable"]
|
|
162
|
+
// CIL[DOC-VECTOR type="context" content="Layer: ui_components. Direct callers: 0. Direct calls: 0. Related files: none."]
|
|
163
|
+
// CIL[DOC-VECTOR type="blast_radius" content="Direct callers: 0. Total affected: 0."]
|
|
164
|
+
// CIL[DOC-VECTOR type="configuration" content="No configuration dependencies."]
|
|
165
|
+
// CIL[DOC-VECTOR type="constraint" content="No test paths identified."]
|
|
166
|
+
// CIL[DOC-VECTOR type="implementation_pattern" content="" status="pending_human_input"]
|
|
167
|
+
// CIL[DOC-VECTOR type="user_journey" content="" status="pending_human_input"]
|
|
53
168
|
function SidebarProvider({
|
|
54
169
|
defaultOpen = true,
|
|
55
170
|
open: openProp,
|
|
@@ -66,8 +181,6 @@ function SidebarProvider({
|
|
|
66
181
|
const isMobile = useIsMobile()
|
|
67
182
|
const [openMobile, setOpenMobile] = React.useState(false)
|
|
68
183
|
|
|
69
|
-
// This is the internal state of the sidebar.
|
|
70
|
-
// We use openProp and setOpenProp for control from outside the component.
|
|
71
184
|
const [_open, _setOpen] = React.useState(defaultOpen)
|
|
72
185
|
const open = openProp ?? _open
|
|
73
186
|
const setOpen = React.useCallback(
|
|
@@ -79,18 +192,15 @@ function SidebarProvider({
|
|
|
79
192
|
_setOpen(openState)
|
|
80
193
|
}
|
|
81
194
|
|
|
82
|
-
// This sets the cookie to keep the sidebar state.
|
|
83
195
|
document.cookie = `${SIDEBAR_COOKIE_NAME}=${openState}; path=/; max-age=${SIDEBAR_COOKIE_MAX_AGE}`
|
|
84
196
|
},
|
|
85
197
|
[setOpenProp, open]
|
|
86
198
|
)
|
|
87
199
|
|
|
88
|
-
// Helper to toggle the sidebar.
|
|
89
200
|
const toggleSidebar = React.useCallback(() => {
|
|
90
201
|
return isMobile ? setOpenMobile((open) => !open) : setOpen((open) => !open)
|
|
91
202
|
}, [isMobile, setOpen, setOpenMobile])
|
|
92
203
|
|
|
93
|
-
// Adds a keyboard shortcut to toggle the sidebar.
|
|
94
204
|
React.useEffect(() => {
|
|
95
205
|
const handleKeyDown = (event: KeyboardEvent) => {
|
|
96
206
|
if (
|
|
@@ -106,8 +216,6 @@ function SidebarProvider({
|
|
|
106
216
|
return () => window.removeEventListener("keydown", handleKeyDown)
|
|
107
217
|
}, [toggleSidebar])
|
|
108
218
|
|
|
109
|
-
// We add a state so that we can do data-state="expanded" or "collapsed".
|
|
110
|
-
// This makes it easier to style the sidebar with Tailwind classes.
|
|
111
219
|
const state = open ? "expanded" : "collapsed"
|
|
112
220
|
|
|
113
221
|
const contextValue = React.useMemo<SidebarContextProps>(
|
|
@@ -145,7 +253,21 @@ function SidebarProvider({
|
|
|
145
253
|
</SidebarContext.Provider>
|
|
146
254
|
)
|
|
147
255
|
}
|
|
148
|
-
|
|
256
|
+
// CIL[END chunk_id="sidebar_sidebarprovider_1783758409"]
|
|
257
|
+
// CIL[BEGIN chunk_id="sidebar_sidebar_1783758409" type="function" identity="Sidebar" parent="none"]
|
|
258
|
+
// CIL[DOC-MACRO purpose="Main sidebar component with responsive behavior"]
|
|
259
|
+
// CIL[DOC-RESPONSIBILITY responsibility="Render sidebar panel with mobile/desktop variants and positioning"]
|
|
260
|
+
// CIL[DOC-CONTEXT module="sidebar" layer="ui_components" related_files="[]"]
|
|
261
|
+
// CIL[DOC-CONTRACT inputs="none" outputs="Styled sidebar panel" errors="none" side_effects="DOM rendering"]
|
|
262
|
+
// CIL[DOC-MICRO logic_summary="Creates responsive sidebar with mobile sheet, desktop panel, gap handling and animations" notable_decisions="[]"]
|
|
263
|
+
// CIL[DOC-CONFIDENCE pass="second" score="0.95" flags="none"]
|
|
264
|
+
// CIL[DOC-STABILITY stability="stable"]
|
|
265
|
+
// CIL[DOC-VECTOR type="context" content="Layer: ui_components. Direct callers: 0. Direct calls: 0. Related files: none."]
|
|
266
|
+
// CIL[DOC-VECTOR type="blast_radius" content="Direct callers: 0. Total affected: 0."]
|
|
267
|
+
// CIL[DOC-VECTOR type="configuration" content="No configuration dependencies."]
|
|
268
|
+
// CIL[DOC-VECTOR type="constraint" content="No test paths identified."]
|
|
269
|
+
// CIL[DOC-VECTOR type="implementation_pattern" content="" status="pending_human_input"]
|
|
270
|
+
// CIL[DOC-VECTOR type="user_journey" content="" status="pending_human_input"]
|
|
149
271
|
function Sidebar({
|
|
150
272
|
side = "left",
|
|
151
273
|
variant = "sidebar",
|
|
@@ -228,7 +350,6 @@ function Sidebar({
|
|
|
228
350
|
data-side={side}
|
|
229
351
|
className={cn(
|
|
230
352
|
"fixed inset-y-0 z-10 hidden h-svh w-(--sidebar-width) transition-[left,right,width] duration-200 ease-linear data-[side=left]:left-0 data-[side=left]:group-data-[collapsible=offcanvas]:left-[calc(var(--sidebar-width)*-1)] data-[side=right]:right-0 data-[side=right]:group-data-[collapsible=offcanvas]:right-[calc(var(--sidebar-width)*-1)] md:flex",
|
|
231
|
-
// Adjust the padding for floating and inset variants.
|
|
232
353
|
variant === "floating" || variant === "inset"
|
|
233
354
|
? "p-2 group-data-[collapsible=icon]:w-[calc(var(--sidebar-width-icon)+(--spacing(4))+2px)]"
|
|
234
355
|
: "group-data-[collapsible=icon]:w-(--sidebar-width-icon) group-data-[side=left]:border-r group-data-[side=right]:border-l",
|
|
@@ -247,7 +368,21 @@ function Sidebar({
|
|
|
247
368
|
</div>
|
|
248
369
|
)
|
|
249
370
|
}
|
|
250
|
-
|
|
371
|
+
// CIL[END chunk_id="sidebar_sidebar_1783758409"]
|
|
372
|
+
// CIL[BEGIN chunk_id="sidebar_sidebartrigger_1783758409" type="function" identity="SidebarTrigger" parent="none"]
|
|
373
|
+
// CIL[DOC-MACRO purpose="Button to toggle sidebar open/closed state"]
|
|
374
|
+
// CIL[DOC-RESPONSIBILITY responsibility="Handle sidebar toggle with button styling and icon"]
|
|
375
|
+
// CIL[DOC-CONTEXT module="sidebar" layer="ui_components" related_files="[]"]
|
|
376
|
+
// CIL[DOC-CONTRACT inputs="none" outputs="Toggle button" errors="none" side_effects="State change, DOM events"]
|
|
377
|
+
// CIL[DOC-MICRO logic_summary="Creates button with PanelLeftIcon that toggles sidebar state on click" notable_decisions="[]"]
|
|
378
|
+
// CIL[DOC-CONFIDENCE pass="second" score="0.95" flags="none"]
|
|
379
|
+
// CIL[DOC-STABILITY stability="stable"]
|
|
380
|
+
// CIL[DOC-VECTOR type="context" content="Layer: ui_components. Direct callers: 0. Direct calls: 0. Related files: none."]
|
|
381
|
+
// CIL[DOC-VECTOR type="blast_radius" content="Direct callers: 0. Total affected: 0."]
|
|
382
|
+
// CIL[DOC-VECTOR type="configuration" content="No configuration dependencies."]
|
|
383
|
+
// CIL[DOC-VECTOR type="constraint" content="No test paths identified."]
|
|
384
|
+
// CIL[DOC-VECTOR type="implementation_pattern" content="" status="pending_human_input"]
|
|
385
|
+
// CIL[DOC-VECTOR type="user_journey" content="" status="pending_human_input"]
|
|
251
386
|
function SidebarTrigger({
|
|
252
387
|
className,
|
|
253
388
|
onClick,
|
|
@@ -273,7 +408,21 @@ function SidebarTrigger({
|
|
|
273
408
|
</Button>
|
|
274
409
|
)
|
|
275
410
|
}
|
|
276
|
-
|
|
411
|
+
// CIL[END chunk_id="sidebar_sidebartrigger_1783758409"]
|
|
412
|
+
// CIL[BEGIN chunk_id="sidebar_sidebarrail_1783758409" type="function" identity="SidebarRail" parent="none"]
|
|
413
|
+
// CIL[DOC-MACRO purpose="Rail handle for manual sidebar resizing"]
|
|
414
|
+
// CIL[DOC-RESPONSIBILITY responsibility="Provide draggable rail with resize cursor and visual feedback"]
|
|
415
|
+
// CIL[DOC-CONTEXT module="sidebar" layer="ui_components" related_files="[]"]
|
|
416
|
+
// CIL[DOC-CONTRACT inputs="none" outputs="Rail button" errors="none" side_effects="DOM events"]
|
|
417
|
+
// CIL[DOC-MICRO logic_summary="Creates draggable rail with resize cursor, hover states and visual divider" notable_decisions="[]"]
|
|
418
|
+
// CIL[DOC-CONFIDENCE pass="second" score="0.95" flags="none"]
|
|
419
|
+
// CIL[DOC-STABILITY stability="stable"]
|
|
420
|
+
// CIL[DOC-VECTOR type="context" content="Layer: ui_components. Direct callers: 0. Direct calls: 0. Related files: none."]
|
|
421
|
+
// CIL[DOC-VECTOR type="blast_radius" content="Direct callers: 0. Total affected: 0."]
|
|
422
|
+
// CIL[DOC-VECTOR type="configuration" content="No configuration dependencies."]
|
|
423
|
+
// CIL[DOC-VECTOR type="constraint" content="No test paths identified."]
|
|
424
|
+
// CIL[DOC-VECTOR type="implementation_pattern" content="" status="pending_human_input"]
|
|
425
|
+
// CIL[DOC-VECTOR type="user_journey" content="" status="pending_human_input"]
|
|
277
426
|
function SidebarRail({ className, ...props }: React.ComponentProps<"button">) {
|
|
278
427
|
const { toggleSidebar } = useSidebar()
|
|
279
428
|
|
|
@@ -298,7 +447,21 @@ function SidebarRail({ className, ...props }: React.ComponentProps<"button">) {
|
|
|
298
447
|
/>
|
|
299
448
|
)
|
|
300
449
|
}
|
|
301
|
-
|
|
450
|
+
// CIL[END chunk_id="sidebar_sidebarrail_1783758409"]
|
|
451
|
+
// CIL[BEGIN chunk_id="sidebar_sidebarinset_1783758409" type="function" identity="SidebarInset" parent="none"]
|
|
452
|
+
// CIL[DOC-MACRO purpose="Main content area with sidebar inset spacing"]
|
|
453
|
+
// CIL[DOC-RESPONSIBILITY responsibility="Provide main container with responsive margin for sidebar"]
|
|
454
|
+
// CIL[DOC-CONTEXT module="sidebar" layer="ui_components" related_files="[]"]
|
|
455
|
+
// CIL[DOC-CONTRACT inputs="none" outputs="Main content area" errors="none" side_effects="DOM rendering"]
|
|
456
|
+
// CIL[DOC-MICRO logic_summary="Creates main content area with responsive margins when sidebar is present" notable_decisions="[]"]
|
|
457
|
+
// CIL[DOC-CONFIDENCE pass="second" score="0.95" flags="none"]
|
|
458
|
+
// CIL[DOC-STABILITY stability="stable"]
|
|
459
|
+
// CIL[DOC-VECTOR type="context" content="Layer: ui_components. Direct callers: 0. Direct calls: 0. Related files: none."]
|
|
460
|
+
// CIL[DOC-VECTOR type="blast_radius" content="Direct callers: 0. Total affected: 0."]
|
|
461
|
+
// CIL[DOC-VECTOR type="configuration" content="No configuration dependencies."]
|
|
462
|
+
// CIL[DOC-VECTOR type="constraint" content="No test paths identified."]
|
|
463
|
+
// CIL[DOC-VECTOR type="implementation_pattern" content="" status="pending_human_input"]
|
|
464
|
+
// CIL[DOC-VECTOR type="user_journey" content="" status="pending_human_input"]
|
|
302
465
|
function SidebarInset({ className, ...props }: React.ComponentProps<"main">) {
|
|
303
466
|
return (
|
|
304
467
|
<main
|
|
@@ -311,7 +474,21 @@ function SidebarInset({ className, ...props }: React.ComponentProps<"main">) {
|
|
|
311
474
|
/>
|
|
312
475
|
)
|
|
313
476
|
}
|
|
314
|
-
|
|
477
|
+
// CIL[END chunk_id="sidebar_sidebarinset_1783758409"]
|
|
478
|
+
// CIL[BEGIN chunk_id="sidebar_sidebarinput_1783758409" type="function" identity="SidebarInput" parent="none"]
|
|
479
|
+
// CIL[DOC-MACRO purpose="Input field styled for sidebar context"]
|
|
480
|
+
// CIL[DOC-RESPONSIBILITY responsibility="Provide styled input with sidebar-specific styling"]
|
|
481
|
+
// CIL[DOC-CONTEXT module="sidebar" layer="ui_components" related_files="[]"]
|
|
482
|
+
// CIL[DOC-CONTRACT inputs="none" outputs="Styled input" errors="none" side_effects="DOM rendering"]
|
|
483
|
+
// CIL[DOC-MICRO logic_summary="Creates input with fixed height, background color and sidebar styling" notable_decisions="[]"]
|
|
484
|
+
// CIL[DOC-CONFIDENCE pass="second" score="0.95" flags="none"]
|
|
485
|
+
// CIL[DOC-STABILITY stability="stable"]
|
|
486
|
+
// CIL[DOC-VECTOR type="context" content="Layer: ui_components. Direct callers: 0. Direct calls: 0. Related files: none."]
|
|
487
|
+
// CIL[DOC-VECTOR type="blast_radius" content="Direct callers: 0. Total affected: 0."]
|
|
488
|
+
// CIL[DOC-VECTOR type="configuration" content="No configuration dependencies."]
|
|
489
|
+
// CIL[DOC-VECTOR type="constraint" content="No test paths identified."]
|
|
490
|
+
// CIL[DOC-VECTOR type="implementation_pattern" content="" status="pending_human_input"]
|
|
491
|
+
// CIL[DOC-VECTOR type="user_journey" content="" status="pending_human_input"]
|
|
315
492
|
function SidebarInput({
|
|
316
493
|
className,
|
|
317
494
|
...props
|
|
@@ -328,7 +505,21 @@ function SidebarInput({
|
|
|
328
505
|
/>
|
|
329
506
|
)
|
|
330
507
|
}
|
|
331
|
-
|
|
508
|
+
// CIL[END chunk_id="sidebar_sidebarinput_1783758409"]
|
|
509
|
+
// CIL[BEGIN chunk_id="sidebar_sidebarheader_1783758409" type="function" identity="SidebarHeader" parent="none"]
|
|
510
|
+
// CIL[DOC-MACRO purpose="Header section container for sidebar"]
|
|
511
|
+
// CIL[DOC-RESPONSIBILITY responsibility="Provide styled header container with spacing"]
|
|
512
|
+
// CIL[DOC-CONTEXT module="sidebar" layer="ui_components" related_files="[]"]
|
|
513
|
+
// CIL[DOC-CONTRACT inputs="none" outputs="Styled header div" errors="none" side_effects="DOM rendering"]
|
|
514
|
+
// CIL[DOC-MICRO logic_summary="Creates flex column header with gap and padding using Tailwind classes" notable_decisions="[]"]
|
|
515
|
+
// CIL[DOC-CONFIDENCE pass="second" score="0.95" flags="none"]
|
|
516
|
+
// CIL[DOC-STABILITY stability="stable"]
|
|
517
|
+
// CIL[DOC-VECTOR type="context" content="Layer: ui_components. Direct callers: 0. Direct calls: 0. Related files: none."]
|
|
518
|
+
// CIL[DOC-VECTOR type="blast_radius" content="Direct callers: 0. Total affected: 0."]
|
|
519
|
+
// CIL[DOC-VECTOR type="configuration" content="No configuration dependencies."]
|
|
520
|
+
// CIL[DOC-VECTOR type="constraint" content="No test paths identified."]
|
|
521
|
+
// CIL[DOC-VECTOR type="implementation_pattern" content="" status="pending_human_input"]
|
|
522
|
+
// CIL[DOC-VECTOR type="user_journey" content="" status="pending_human_input"]
|
|
332
523
|
function SidebarHeader({ className, ...props }: React.ComponentProps<"div">) {
|
|
333
524
|
return (
|
|
334
525
|
<div
|
|
@@ -339,7 +530,21 @@ function SidebarHeader({ className, ...props }: React.ComponentProps<"div">) {
|
|
|
339
530
|
/>
|
|
340
531
|
)
|
|
341
532
|
}
|
|
342
|
-
|
|
533
|
+
// CIL[END chunk_id="sidebar_sidebarheader_1783758409"]
|
|
534
|
+
// CIL[BEGIN chunk_id="sidebar_sidebarfooter_1783758409" type="function" identity="SidebarFooter" parent="none"]
|
|
535
|
+
// CIL[DOC-MACRO purpose="Footer section container for sidebar"]
|
|
536
|
+
// CIL[DOC-RESPONSIBILITY responsibility="Provide styled footer container with auto margin"]
|
|
537
|
+
// CIL[DOC-CONTEXT module="sidebar" layer="ui_components" related_files="[]"]
|
|
538
|
+
// CIL[DOC-CONTRACT inputs="none" outputs="Styled footer div" errors="none" side_effects="DOM rendering"]
|
|
539
|
+
// CIL[DOC-MICRO logic_summary="Creates flex column footer with auto margin, gap and padding using Tailwind" notable_decisions="[]"]
|
|
540
|
+
// CIL[DOC-CONFIDENCE pass="second" score="0.95" flags="none"]
|
|
541
|
+
// CIL[DOC-STABILITY stability="stable"]
|
|
542
|
+
// CIL[DOC-VECTOR type="context" content="Layer: ui_components. Direct callers: 0. Direct calls: 0. Related files: none."]
|
|
543
|
+
// CIL[DOC-VECTOR type="blast_radius" content="Direct callers: 0. Total affected: 0."]
|
|
544
|
+
// CIL[DOC-VECTOR type="configuration" content="No configuration dependencies."]
|
|
545
|
+
// CIL[DOC-VECTOR type="constraint" content="No test paths identified."]
|
|
546
|
+
// CIL[DOC-VECTOR type="implementation_pattern" content="" status="pending_human_input"]
|
|
547
|
+
// CIL[DOC-VECTOR type="user_journey" content="" status="pending_human_input"]
|
|
343
548
|
function SidebarFooter({ className, ...props }: React.ComponentProps<"div">) {
|
|
344
549
|
return (
|
|
345
550
|
<div
|
|
@@ -350,7 +555,21 @@ function SidebarFooter({ className, ...props }: React.ComponentProps<"div">) {
|
|
|
350
555
|
/>
|
|
351
556
|
)
|
|
352
557
|
}
|
|
353
|
-
|
|
558
|
+
// CIL[END chunk_id="sidebar_sidebarfooter_1783758409"]
|
|
559
|
+
// CIL[BEGIN chunk_id="sidebar_sidebarseparator_1783758409" type="function" identity="SidebarSeparator" parent="none"]
|
|
560
|
+
// CIL[DOC-MACRO purpose="Visual separator for sidebar content"]
|
|
561
|
+
// CIL[DOC-RESPONSIBILITY responsibility="Provide styled horizontal divider for sidebar sections"]
|
|
562
|
+
// CIL[DOC-CONTEXT module="sidebar" layer="ui_components" related_files="[]"]
|
|
563
|
+
// CIL[DOC-CONTRACT inputs="none" outputs="Styled separator" errors="none" side_effects="DOM rendering"]
|
|
564
|
+
// CIL[DOC-MICRO logic_summary="Creates horizontal divider with border color and negative margins" notable_decisions="[]"]
|
|
565
|
+
// CIL[DOC-CONFIDENCE pass="second" score="0.95" flags="none"]
|
|
566
|
+
// CIL[DOC-STABILITY stability="stable"]
|
|
567
|
+
// CIL[DOC-VECTOR type="context" content="Layer: ui_components. Direct callers: 0. Direct calls: 0. Related files: none."]
|
|
568
|
+
// CIL[DOC-VECTOR type="blast_radius" content="Direct callers: 0. Total affected: 0."]
|
|
569
|
+
// CIL[DOC-VECTOR type="configuration" content="No configuration dependencies."]
|
|
570
|
+
// CIL[DOC-VECTOR type="constraint" content="No test paths identified."]
|
|
571
|
+
// CIL[DOC-VECTOR type="implementation_pattern" content="" status="pending_human_input"]
|
|
572
|
+
// CIL[DOC-VECTOR type="user_journey" content="" status="pending_human_input"]
|
|
354
573
|
function SidebarSeparator({
|
|
355
574
|
className,
|
|
356
575
|
...props
|
|
@@ -364,7 +583,21 @@ function SidebarSeparator({
|
|
|
364
583
|
/>
|
|
365
584
|
)
|
|
366
585
|
}
|
|
367
|
-
|
|
586
|
+
// CIL[END chunk_id="sidebar_sidebarseparator_1783758409"]
|
|
587
|
+
// CIL[BEGIN chunk_id="sidebar_sidebarcontent_1783758409" type="function" identity="SidebarContent" parent="none"]
|
|
588
|
+
// CIL[DOC-MACRO purpose="Main content area for sidebar items"]
|
|
589
|
+
// CIL[DOC-RESPONSIBILITY responsibility="Handle SidebarContent"]
|
|
590
|
+
// CIL[DOC-CONTEXT module="sidebar" layer="ui_components" related_files="[]"]
|
|
591
|
+
// CIL[DOC-CONTRACT inputs="none" outputs="Scrollable content area" errors="none" side_effects="DOM rendering"]
|
|
592
|
+
// CIL[DOC-MICRO logic_summary="Creates scrollable flex column container with overflow handling" notable_decisions="[]"]
|
|
593
|
+
// CIL[DOC-CONFIDENCE pass="second" score="0.95" flags="none"]
|
|
594
|
+
// CIL[DOC-STABILITY stability="stable"]
|
|
595
|
+
// CIL[DOC-VECTOR type="context" content="Layer: ui_components. Direct callers: 0. Direct calls: 0. Related files: none."]
|
|
596
|
+
// CIL[DOC-VECTOR type="blast_radius" content="Direct callers: 0. Total affected: 0."]
|
|
597
|
+
// CIL[DOC-VECTOR type="configuration" content="No configuration dependencies."]
|
|
598
|
+
// CIL[DOC-VECTOR type="constraint" content="No test paths identified."]
|
|
599
|
+
// CIL[DOC-VECTOR type="implementation_pattern" content="" status="pending_human_input"]
|
|
600
|
+
// CIL[DOC-VECTOR type="user_journey" content="" status="pending_human_input"]
|
|
368
601
|
function SidebarContent({ className, ...props }: React.ComponentProps<"div">) {
|
|
369
602
|
return (
|
|
370
603
|
<div
|
|
@@ -378,7 +611,21 @@ function SidebarContent({ className, ...props }: React.ComponentProps<"div">) {
|
|
|
378
611
|
/>
|
|
379
612
|
)
|
|
380
613
|
}
|
|
381
|
-
|
|
614
|
+
// CIL[END chunk_id="sidebar_sidebarcontent_1783758409"]
|
|
615
|
+
// CIL[BEGIN chunk_id="sidebar_sidebargroup_1783758409" type="function" identity="SidebarGroup" parent="none"]
|
|
616
|
+
// CIL[DOC-MACRO purpose="Group container for sidebar items"]
|
|
617
|
+
// CIL[DOC-RESPONSIBILITY responsibility="Provide styled container for grouping sidebar content"]
|
|
618
|
+
// CIL[DOC-CONTEXT module="sidebar" layer="ui_components" related_files="[]"]
|
|
619
|
+
// CIL[DOC-CONTRACT inputs="none" outputs="Styled group container" errors="none" side_effects="DOM rendering"]
|
|
620
|
+
// CIL[DOC-MICRO logic_summary="Creates flex column container with min-width and padding for sidebar groups" notable_decisions="[]"]
|
|
621
|
+
// CIL[DOC-CONFIDENCE pass="second" score="0.95" flags="none"]
|
|
622
|
+
// CIL[DOC-STABILITY stability="stable"]
|
|
623
|
+
// CIL[DOC-VECTOR type="context" content="Layer: ui_components. Direct callers: 0. Direct calls: 0. Related files: none."]
|
|
624
|
+
// CIL[DOC-VECTOR type="blast_radius" content="Direct callers: 0. Total affected: 0."]
|
|
625
|
+
// CIL[DOC-VECTOR type="configuration" content="No configuration dependencies."]
|
|
626
|
+
// CIL[DOC-VECTOR type="constraint" content="No test paths identified."]
|
|
627
|
+
// CIL[DOC-VECTOR type="implementation_pattern" content="" status="pending_human_input"]
|
|
628
|
+
// CIL[DOC-VECTOR type="user_journey" content="" status="pending_human_input"]
|
|
382
629
|
function SidebarGroup({ className, ...props }: React.ComponentProps<"div">) {
|
|
383
630
|
return (
|
|
384
631
|
<div
|
|
@@ -392,7 +639,21 @@ function SidebarGroup({ className, ...props }: React.ComponentProps<"div">) {
|
|
|
392
639
|
/>
|
|
393
640
|
)
|
|
394
641
|
}
|
|
395
|
-
|
|
642
|
+
// CIL[END chunk_id="sidebar_sidebargroup_1783758409"]
|
|
643
|
+
// CIL[BEGIN chunk_id="sidebar_sidebargrouplabel_1783758409" type="function" identity="SidebarGroupLabel" parent="none"]
|
|
644
|
+
// CIL[DOC-MACRO purpose="Label for sidebar groups"]
|
|
645
|
+
// CIL[DOC-RESPONSIBILITY responsibility="Provide styled label with optional slot rendering"]
|
|
646
|
+
// CIL[DOC-CONTEXT module="sidebar" layer="ui_components" related_files="[]"]
|
|
647
|
+
// CIL[DOC-CONTRACT inputs="none" outputs="Styled label" errors="none" side_effects="DOM rendering"]
|
|
648
|
+
// CIL[DOC-MICRO logic_summary="Creates label with optional slot rendering, styling and collapse behavior" notable_decisions="[]"]
|
|
649
|
+
// CIL[DOC-CONFIDENCE pass="second" score="0.95" flags="none"]
|
|
650
|
+
// CIL[DOC-STABILITY stability="stable"]
|
|
651
|
+
// CIL[DOC-VECTOR type="context" content="Layer: ui_components. Direct callers: 0. Direct calls: 0. Related files: none."]
|
|
652
|
+
// CIL[DOC-VECTOR type="blast_radius" content="Direct callers: 0. Total affected: 0."]
|
|
653
|
+
// CIL[DOC-VECTOR type="configuration" content="No configuration dependencies."]
|
|
654
|
+
// CIL[DOC-VECTOR type="constraint" content="No test paths identified."]
|
|
655
|
+
// CIL[DOC-VECTOR type="implementation_pattern" content="" status="pending_human_input"]
|
|
656
|
+
// CIL[DOC-VECTOR type="user_journey" content="" status="pending_human_input"]
|
|
396
657
|
function SidebarGroupLabel({
|
|
397
658
|
className,
|
|
398
659
|
asChild = false,
|
|
@@ -412,7 +673,21 @@ function SidebarGroupLabel({
|
|
|
412
673
|
/>
|
|
413
674
|
)
|
|
414
675
|
}
|
|
415
|
-
|
|
676
|
+
// CIL[END chunk_id="sidebar_sidebargrouplabel_1783758409"]
|
|
677
|
+
// CIL[BEGIN chunk_id="sidebar_sidebargroupaction_1783758409" type="function" identity="SidebarGroupAction" parent="none"]
|
|
678
|
+
// CIL[DOC-MACRO purpose="Action button for sidebar groups"]
|
|
679
|
+
// CIL[DOC-RESPONSIBILITY responsibility="Provide styled action button with optional slot rendering"]
|
|
680
|
+
// CIL[DOC-CONTEXT module="sidebar" layer="ui_components" related_files="[]"]
|
|
681
|
+
// CIL[DOC-CONTRACT inputs="none" outputs="Styled action button" errors="none" side_effects="DOM events"]
|
|
682
|
+
// CIL[DOC-MICRO logic_summary="Creates action button with optional slot rendering and hover states" notable_decisions="[]"]
|
|
683
|
+
// CIL[DOC-CONFIDENCE pass="second" score="0.95" flags="none"]
|
|
684
|
+
// CIL[DOC-STABILITY stability="stable"]
|
|
685
|
+
// CIL[DOC-VECTOR type="context" content="Layer: ui_components. Direct callers: 0. Direct calls: 0. Related files: none."]
|
|
686
|
+
// CIL[DOC-VECTOR type="blast_radius" content="Direct callers: 0. Total affected: 0."]
|
|
687
|
+
// CIL[DOC-VECTOR type="configuration" content="No configuration dependencies."]
|
|
688
|
+
// CIL[DOC-VECTOR type="constraint" content="No test paths identified."]
|
|
689
|
+
// CIL[DOC-VECTOR type="implementation_pattern" content="" status="pending_human_input"]
|
|
690
|
+
// CIL[DOC-VECTOR type="user_journey" content="" status="pending_human_input"]
|
|
416
691
|
function SidebarGroupAction({
|
|
417
692
|
className,
|
|
418
693
|
asChild = false,
|
|
@@ -432,7 +707,21 @@ function SidebarGroupAction({
|
|
|
432
707
|
/>
|
|
433
708
|
)
|
|
434
709
|
}
|
|
435
|
-
|
|
710
|
+
// CIL[END chunk_id="sidebar_sidebargroupaction_1783758409"]
|
|
711
|
+
// CIL[BEGIN chunk_id="sidebar_sidebargroupcontent_1783758409" type="function" identity="SidebarGroupContent" parent="none"]
|
|
712
|
+
// CIL[DOC-MACRO purpose="Content area for sidebar groups"]
|
|
713
|
+
// CIL[DOC-RESPONSIBILITY responsibility="Provide styled container for group content items"]
|
|
714
|
+
// CIL[DOC-CONTEXT module="sidebar" layer="ui_components" related_files="[]"]
|
|
715
|
+
// CIL[DOC-CONTRACT inputs="none" outputs="Styled content container" errors="none" side_effects="DOM rendering"]
|
|
716
|
+
// CIL[DOC-MICRO logic_summary="Creates flex column container with full width and small text styling" notable_decisions="[]"]
|
|
717
|
+
// CIL[DOC-CONFIDENCE pass="second" score="0.95" flags="none"]
|
|
718
|
+
// CIL[DOC-STABILITY stability="stable"]
|
|
719
|
+
// CIL[DOC-VECTOR type="context" content="Layer: ui_components. Direct callers: 0. Direct calls: 0. Related files: none."]
|
|
720
|
+
// CIL[DOC-VECTOR type="blast_radius" content="Direct callers: 0. Total affected: 0."]
|
|
721
|
+
// CIL[DOC-VECTOR type="configuration" content="No configuration dependencies."]
|
|
722
|
+
// CIL[DOC-VECTOR type="constraint" content="No test paths identified."]
|
|
723
|
+
// CIL[DOC-VECTOR type="implementation_pattern" content="" status="pending_human_input"]
|
|
724
|
+
// CIL[DOC-VECTOR type="user_journey" content="" status="pending_human_input"]
|
|
436
725
|
function SidebarGroupContent({
|
|
437
726
|
className,
|
|
438
727
|
...props
|
|
@@ -446,7 +735,21 @@ function SidebarGroupContent({
|
|
|
446
735
|
/>
|
|
447
736
|
)
|
|
448
737
|
}
|
|
449
|
-
|
|
738
|
+
// CIL[END chunk_id="sidebar_sidebargroupcontent_1783758409"]
|
|
739
|
+
// CIL[BEGIN chunk_id="sidebar_sidebarmenu_1783758409" type="function" identity="SidebarMenu" parent="none"]
|
|
740
|
+
// CIL[DOC-MACRO purpose="Menu container for sidebar navigation"]
|
|
741
|
+
// CIL[DOC-RESPONSIBILITY responsibility="Provide styled list container for menu items"]
|
|
742
|
+
// CIL[DOC-CONTEXT module="sidebar" layer="ui_components" related_files="[]"]
|
|
743
|
+
// CIL[DOC-CONTRACT inputs="none" outputs="Styled menu list" errors="none" side_effects="DOM rendering"]
|
|
744
|
+
// CIL[DOC-MICRO logic_summary="Creates flex column list with full width and gap between items" notable_decisions="[]"]
|
|
745
|
+
// CIL[DOC-CONFIDENCE pass="second" score="0.95" flags="none"]
|
|
746
|
+
// CIL[DOC-STABILITY stability="stable"]
|
|
747
|
+
// CIL[DOC-VECTOR type="context" content="Layer: ui_components. Direct callers: 0. Direct calls: 0. Related files: none."]
|
|
748
|
+
// CIL[DOC-VECTOR type="blast_radius" content="Direct callers: 0. Total affected: 0."]
|
|
749
|
+
// CIL[DOC-VECTOR type="configuration" content="No configuration dependencies."]
|
|
750
|
+
// CIL[DOC-VECTOR type="constraint" content="No test paths identified."]
|
|
751
|
+
// CIL[DOC-VECTOR type="implementation_pattern" content="" status="pending_human_input"]
|
|
752
|
+
// CIL[DOC-VECTOR type="user_journey" content="" status="pending_human_input"]
|
|
450
753
|
function SidebarMenu({ className, ...props }: React.ComponentProps<"ul">) {
|
|
451
754
|
return (
|
|
452
755
|
<ul
|
|
@@ -457,7 +760,21 @@ function SidebarMenu({ className, ...props }: React.ComponentProps<"ul">) {
|
|
|
457
760
|
/>
|
|
458
761
|
)
|
|
459
762
|
}
|
|
460
|
-
|
|
763
|
+
// CIL[END chunk_id="sidebar_sidebarmenu_1783758409"]
|
|
764
|
+
// CIL[BEGIN chunk_id="sidebar_sidebarmenuitem_1783758409" type="function" identity="SidebarMenuItem" parent="none"]
|
|
765
|
+
// CIL[DOC-MACRO purpose="Menu item container for sidebar navigation"]
|
|
766
|
+
// CIL[DOC-RESPONSIBILITY responsibility="Provide styled list item for menu entries"]
|
|
767
|
+
// CIL[DOC-CONTEXT module="sidebar" layer="ui_components" related_files="[]"]
|
|
768
|
+
// CIL[DOC-CONTRACT inputs="none" outputs="Styled menu item" errors="none" side_effects="DOM rendering"]
|
|
769
|
+
// CIL[DOC-MICRO logic_summary="Creates list item with relative positioning and group styling" notable_decisions="[]"]
|
|
770
|
+
// CIL[DOC-CONFIDENCE pass="second" score="0.95" flags="none"]
|
|
771
|
+
// CIL[DOC-STABILITY stability="stable"]
|
|
772
|
+
// CIL[DOC-VECTOR type="context" content="Layer: ui_components. Direct callers: 0. Direct calls: 0. Related files: none."]
|
|
773
|
+
// CIL[DOC-VECTOR type="blast_radius" content="Direct callers: 0. Total affected: 0."]
|
|
774
|
+
// CIL[DOC-VECTOR type="configuration" content="No configuration dependencies."]
|
|
775
|
+
// CIL[DOC-VECTOR type="constraint" content="No test paths identified."]
|
|
776
|
+
// CIL[DOC-VECTOR type="implementation_pattern" content="" status="pending_human_input"]
|
|
777
|
+
// CIL[DOC-VECTOR type="user_journey" content="" status="pending_human_input"]
|
|
461
778
|
function SidebarMenuItem({ className, ...props }: React.ComponentProps<"li">) {
|
|
462
779
|
return (
|
|
463
780
|
<li
|
|
@@ -468,7 +785,21 @@ function SidebarMenuItem({ className, ...props }: React.ComponentProps<"li">) {
|
|
|
468
785
|
/>
|
|
469
786
|
)
|
|
470
787
|
}
|
|
471
|
-
|
|
788
|
+
// CIL[END chunk_id="sidebar_sidebarmenuitem_1783758409"]
|
|
789
|
+
// CIL[BEGIN chunk_id="sidebar_sidebarmenubuttonvariants_1783758409" type="variants" identity="sidebarMenuButtonVariants" parent="none"]
|
|
790
|
+
// CIL[DOC-MACRO purpose="Define variants for sidebar menu button styling"]
|
|
791
|
+
// CIL[DOC-RESPONSIBILITY responsibility="Provide CVA configuration for menu button variants"]
|
|
792
|
+
// CIL[DOC-CONTEXT module="sidebar" layer="ui_components" related_files="[]"]
|
|
793
|
+
// CIL[DOC-CONTRACT inputs="none" outputs="CVA variants" errors="none" side_effects="Variant definition"]
|
|
794
|
+
// CIL[DOC-MICRO logic_summary="Defines base styles and variants for outline/default and size options" notable_decisions="[]"]
|
|
795
|
+
// CIL[DOC-CONFIDENCE pass="second" score="0.95" flags="none"]
|
|
796
|
+
// CIL[DOC-STABILITY stability="stable"]
|
|
797
|
+
// CIL[DOC-VECTOR type="context" content="Layer: ui_components. Direct callers: 0. Direct calls: 0. Related files: none."]
|
|
798
|
+
// CIL[DOC-VECTOR type="blast_radius" content="Direct callers: 0. Total affected: 0."]
|
|
799
|
+
// CIL[DOC-VECTOR type="configuration" content="No configuration dependencies."]
|
|
800
|
+
// CIL[DOC-VECTOR type="constraint" content="No test paths identified."]
|
|
801
|
+
// CIL[DOC-VECTOR type="implementation_pattern" content="" status="pending_human_input"]
|
|
802
|
+
// CIL[DOC-VECTOR type="user_journey" content="" status="pending_human_input"]
|
|
472
803
|
const sidebarMenuButtonVariants = cva(
|
|
473
804
|
"peer/menu-button group/menu-button flex w-full items-center gap-2 overflow-hidden rounded-[calc(var(--radius-sm)+2px)] p-2 text-left text-xs ring-sidebar-ring outline-hidden transition-[width,height,padding] group-has-data-[sidebar=menu-action]/menu-item:pr-8 group-data-[collapsible=icon]:size-8! group-data-[collapsible=icon]:p-2! hover:bg-sidebar-accent hover:text-sidebar-accent-foreground focus-visible:ring-2 active:bg-sidebar-accent active:text-sidebar-accent-foreground disabled:pointer-events-none disabled:opacity-50 aria-disabled:pointer-events-none aria-disabled:opacity-50 data-open:hover:bg-sidebar-accent data-open:hover:text-sidebar-accent-foreground data-active:bg-sidebar-accent data-active:font-medium data-active:text-sidebar-accent-foreground [&_svg]:size-4 [&_svg]:shrink-0 [&>span:last-child]:truncate",
|
|
474
805
|
{
|
|
@@ -490,7 +821,21 @@ const sidebarMenuButtonVariants = cva(
|
|
|
490
821
|
},
|
|
491
822
|
}
|
|
492
823
|
)
|
|
493
|
-
|
|
824
|
+
// CIL[END chunk_id="sidebar_sidebarmenubuttonvariants_1783758409"]
|
|
825
|
+
// CIL[BEGIN chunk_id="sidebar_sidebarmenubutton_1783758409" type="function" identity="SidebarMenuButton" parent="none"]
|
|
826
|
+
// CIL[DOC-MACRO purpose="Menu button with tooltip support for sidebar"]
|
|
827
|
+
// CIL[DOC-RESPONSIBILITY responsibility="Provide styled menu button with optional tooltip and variants"]
|
|
828
|
+
// CIL[DOC-CONTEXT module="sidebar" layer="ui_components" related_files="[]"]
|
|
829
|
+
// CIL[DOC-CONTRACT inputs="none" outputs="Styled menu button" errors="none" side_effects="DOM events"]
|
|
830
|
+
// CIL[DOC-MICRO logic_summary="Creates menu button with variants, tooltip support and responsive styling" notable_decisions="[]"]
|
|
831
|
+
// CIL[DOC-CONFIDENCE pass="second" score="0.95" flags="none"]
|
|
832
|
+
// CIL[DOC-STABILITY stability="stable"]
|
|
833
|
+
// CIL[DOC-VECTOR type="context" content="Layer: ui_components. Direct callers: 0. Direct calls: 0. Related files: none."]
|
|
834
|
+
// CIL[DOC-VECTOR type="blast_radius" content="Direct callers: 0. Total affected: 0."]
|
|
835
|
+
// CIL[DOC-VECTOR type="configuration" content="No configuration dependencies."]
|
|
836
|
+
// CIL[DOC-VECTOR type="constraint" content="No test paths identified."]
|
|
837
|
+
// CIL[DOC-VECTOR type="implementation_pattern" content="" status="pending_human_input"]
|
|
838
|
+
// CIL[DOC-VECTOR type="user_journey" content="" status="pending_human_input"]
|
|
494
839
|
function SidebarMenuButton({
|
|
495
840
|
asChild = false,
|
|
496
841
|
isActive = false,
|
|
@@ -540,7 +885,21 @@ function SidebarMenuButton({
|
|
|
540
885
|
</Tooltip>
|
|
541
886
|
)
|
|
542
887
|
}
|
|
543
|
-
|
|
888
|
+
// CIL[END chunk_id="sidebar_sidebarmenubutton_1783758409"]
|
|
889
|
+
// CIL[BEGIN chunk_id="sidebar_sidebarmenuaction_1783758409" type="function" identity="SidebarMenuAction" parent="none"]
|
|
890
|
+
// CIL[DOC-MACRO purpose="Action button for sidebar menu items"]
|
|
891
|
+
// CIL[DOC-RESPONSIBILITY responsibility="Provide styled action button with optional slot rendering"]
|
|
892
|
+
// CIL[DOC-CONTEXT module="sidebar" layer="ui_components" related_files="[]"]
|
|
893
|
+
// CIL[DOC-CONTRACT inputs="none" outputs="Styled action button" errors="none" side_effects="DOM events"]
|
|
894
|
+
// CIL[DOC-MICRO logic_summary="Creates action button with optional slot rendering and hover visibility" notable_decisions="[]"]
|
|
895
|
+
// CIL[DOC-CONFIDENCE pass="second" score="0.95" flags="none"]
|
|
896
|
+
// CIL[DOC-STABILITY stability="stable"]
|
|
897
|
+
// CIL[DOC-VECTOR type="context" content="Layer: ui_components. Direct callers: 0. Direct calls: 0. Related files: none."]
|
|
898
|
+
// CIL[DOC-VECTOR type="blast_radius" content="Direct callers: 0. Total affected: 0."]
|
|
899
|
+
// CIL[DOC-VECTOR type="configuration" content="No configuration dependencies."]
|
|
900
|
+
// CIL[DOC-VECTOR type="constraint" content="No test paths identified."]
|
|
901
|
+
// CIL[DOC-VECTOR type="implementation_pattern" content="" status="pending_human_input"]
|
|
902
|
+
// CIL[DOC-VECTOR type="user_journey" content="" status="pending_human_input"]
|
|
544
903
|
function SidebarMenuAction({
|
|
545
904
|
className,
|
|
546
905
|
asChild = false,
|
|
@@ -566,7 +925,21 @@ function SidebarMenuAction({
|
|
|
566
925
|
/>
|
|
567
926
|
)
|
|
568
927
|
}
|
|
569
|
-
|
|
928
|
+
// CIL[END chunk_id="sidebar_sidebarmenuaction_1783758409"]
|
|
929
|
+
// CIL[BEGIN chunk_id="sidebar_sidebarmenubadge_1783758409" type="function" identity="SidebarMenuBadge" parent="none"]
|
|
930
|
+
// CIL[DOC-MACRO purpose="Badge indicator for sidebar menu items"]
|
|
931
|
+
// CIL[DOC-RESPONSIBILITY responsibility="Provide styled badge with positioning and styling"]
|
|
932
|
+
// CIL[DOC-CONTEXT module="sidebar" layer="ui_components" related_files="[]"]
|
|
933
|
+
// CIL[DOC-CONTRACT inputs="none" outputs="Styled badge" errors="none" side_effects="DOM rendering"]
|
|
934
|
+
// CIL[DOC-MICRO logic_summary="Creates badge with absolute positioning, size and tabular number styling" notable_decisions="[]"]
|
|
935
|
+
// CIL[DOC-CONFIDENCE pass="second" score="0.95" flags="none"]
|
|
936
|
+
// CIL[DOC-STABILITY stability="stable"]
|
|
937
|
+
// CIL[DOC-VECTOR type="context" content="Layer: ui_components. Direct callers: 0. Direct calls: 0. Related files: none."]
|
|
938
|
+
// CIL[DOC-VECTOR type="blast_radius" content="Direct callers: 0. Total affected: 0."]
|
|
939
|
+
// CIL[DOC-VECTOR type="configuration" content="No configuration dependencies."]
|
|
940
|
+
// CIL[DOC-VECTOR type="constraint" content="No test paths identified."]
|
|
941
|
+
// CIL[DOC-VECTOR type="implementation_pattern" content="" status="pending_human_input"]
|
|
942
|
+
// CIL[DOC-VECTOR type="user_journey" content="" status="pending_human_input"]
|
|
570
943
|
function SidebarMenuBadge({
|
|
571
944
|
className,
|
|
572
945
|
...props
|
|
@@ -583,7 +956,21 @@ function SidebarMenuBadge({
|
|
|
583
956
|
/>
|
|
584
957
|
)
|
|
585
958
|
}
|
|
586
|
-
|
|
959
|
+
// CIL[END chunk_id="sidebar_sidebarmenubadge_1783758409"]
|
|
960
|
+
// CIL[BEGIN chunk_id="sidebar_sidebarmenuskeleton_1783758409" type="function" identity="SidebarMenuSkeleton" parent="none"]
|
|
961
|
+
// CIL[DOC-MACRO purpose="Skeleton loader for sidebar menu items"]
|
|
962
|
+
// CIL[DOC-RESPONSIBILITY responsibility="Provide styled skeleton with optional icon and random width"]
|
|
963
|
+
// CIL[DOC-CONTEXT module="sidebar" layer="ui_components" related_files="[]"]
|
|
964
|
+
// CIL[DOC-CONTRACT inputs="none" outputs="Styled skeleton" errors="none" side_effects="DOM rendering"]
|
|
965
|
+
// CIL[DOC-MICRO logic_summary="Creates skeleton with optional icon and random width between 50-90%" notable_decisions="[]"]
|
|
966
|
+
// CIL[DOC-CONFIDENCE pass="second" score="0.95" flags="none"]
|
|
967
|
+
// CIL[DOC-STABILITY stability="stable"]
|
|
968
|
+
// CIL[DOC-VECTOR type="context" content="Layer: ui_components. Direct callers: 0. Direct calls: 0. Related files: none."]
|
|
969
|
+
// CIL[DOC-VECTOR type="blast_radius" content="Direct callers: 0. Total affected: 0."]
|
|
970
|
+
// CIL[DOC-VECTOR type="configuration" content="No configuration dependencies."]
|
|
971
|
+
// CIL[DOC-VECTOR type="constraint" content="No test paths identified."]
|
|
972
|
+
// CIL[DOC-VECTOR type="implementation_pattern" content="" status="pending_human_input"]
|
|
973
|
+
// CIL[DOC-VECTOR type="user_journey" content="" status="pending_human_input"]
|
|
587
974
|
function SidebarMenuSkeleton({
|
|
588
975
|
className,
|
|
589
976
|
showIcon = false,
|
|
@@ -591,7 +978,6 @@ function SidebarMenuSkeleton({
|
|
|
591
978
|
}: React.ComponentProps<"div"> & {
|
|
592
979
|
showIcon?: boolean
|
|
593
980
|
}) {
|
|
594
|
-
// Random width between 50 to 90%.
|
|
595
981
|
const [width] = React.useState(() => {
|
|
596
982
|
return `${Math.floor(Math.random() * 40) + 50}%`
|
|
597
983
|
})
|
|
@@ -621,7 +1007,21 @@ function SidebarMenuSkeleton({
|
|
|
621
1007
|
</div>
|
|
622
1008
|
)
|
|
623
1009
|
}
|
|
624
|
-
|
|
1010
|
+
// CIL[END chunk_id="sidebar_sidebarmenuskeleton_1783758409"]
|
|
1011
|
+
// CIL[BEGIN chunk_id="sidebar_sidebarmenusub_1783758409" type="function" identity="SidebarMenuSub" parent="none"]
|
|
1012
|
+
// CIL[DOC-MACRO purpose="Sub-menu container for nested sidebar navigation"]
|
|
1013
|
+
// CIL[DOC-RESPONSIBILITY responsibility="Provide styled sub-menu with border and indentation"]
|
|
1014
|
+
// CIL[DOC-CONTEXT module="sidebar" layer="ui_components" related_files="[]"]
|
|
1015
|
+
// CIL[DOC-CONTRACT inputs="none" outputs="Styled sub-menu" errors="none" side_effects="DOM rendering"]
|
|
1016
|
+
// CIL[DOC-MICRO logic_summary="Creates sub-menu with left border, padding and collapsed visibility" notable_decisions="[]"]
|
|
1017
|
+
// CIL[DOC-CONFIDENCE pass="second" score="0.95" flags="none"]
|
|
1018
|
+
// CIL[DOC-STABILITY stability="stable"]
|
|
1019
|
+
// CIL[DOC-VECTOR type="context" content="Layer: ui_components. Direct callers: 0. Direct calls: 0. Related files: none."]
|
|
1020
|
+
// CIL[DOC-VECTOR type="blast_radius" content="Direct callers: 0. Total affected: 0."]
|
|
1021
|
+
// CIL[DOC-VECTOR type="configuration" content="No configuration dependencies."]
|
|
1022
|
+
// CIL[DOC-VECTOR type="constraint" content="No test paths identified."]
|
|
1023
|
+
// CIL[DOC-VECTOR type="implementation_pattern" content="" status="pending_human_input"]
|
|
1024
|
+
// CIL[DOC-VECTOR type="user_journey" content="" status="pending_human_input"]
|
|
625
1025
|
function SidebarMenuSub({ className, ...props }: React.ComponentProps<"ul">) {
|
|
626
1026
|
return (
|
|
627
1027
|
<ul
|
|
@@ -635,7 +1035,21 @@ function SidebarMenuSub({ className, ...props }: React.ComponentProps<"ul">) {
|
|
|
635
1035
|
/>
|
|
636
1036
|
)
|
|
637
1037
|
}
|
|
638
|
-
|
|
1038
|
+
// CIL[END chunk_id="sidebar_sidebarmenusub_1783758409"]
|
|
1039
|
+
// CIL[BEGIN chunk_id="sidebar_sidebarmenusubitem_1783758409" type="function" identity="SidebarMenuSubItem" parent="none"]
|
|
1040
|
+
// CIL[DOC-MACRO purpose="Sub-menu item container for nested navigation"]
|
|
1041
|
+
// CIL[DOC-RESPONSIBILITY responsibility="Provide styled list item for sub-menu entries"]
|
|
1042
|
+
// CIL[DOC-CONTEXT module="sidebar" layer="ui_components" related_files="[]"]
|
|
1043
|
+
// CIL[DOC-CONTRACT inputs="none" outputs="Styled sub-menu item" errors="none" side_effects="DOM rendering"]
|
|
1044
|
+
// CIL[DOC-MICRO logic_summary="Creates list item with relative positioning and sub-menu styling" notable_decisions="[]"]
|
|
1045
|
+
// CIL[DOC-CONFIDENCE pass="second" score="0.95" flags="none"]
|
|
1046
|
+
// CIL[DOC-STABILITY stability="stable"]
|
|
1047
|
+
// CIL[DOC-VECTOR type="context" content="Layer: ui_components. Direct callers: 0. Direct calls: 0. Related files: none."]
|
|
1048
|
+
// CIL[DOC-VECTOR type="blast_radius" content="Direct callers: 0. Total affected: 0."]
|
|
1049
|
+
// CIL[DOC-VECTOR type="configuration" content="No configuration dependencies."]
|
|
1050
|
+
// CIL[DOC-VECTOR type="constraint" content="No test paths identified."]
|
|
1051
|
+
// CIL[DOC-VECTOR type="implementation_pattern" content="" status="pending_human_input"]
|
|
1052
|
+
// CIL[DOC-VECTOR type="user_journey" content="" status="pending_human_input"]
|
|
639
1053
|
function SidebarMenuSubItem({
|
|
640
1054
|
className,
|
|
641
1055
|
...props
|
|
@@ -649,7 +1063,21 @@ function SidebarMenuSubItem({
|
|
|
649
1063
|
/>
|
|
650
1064
|
)
|
|
651
1065
|
}
|
|
652
|
-
|
|
1066
|
+
// CIL[END chunk_id="sidebar_sidebarmenusubitem_1783758409"]
|
|
1067
|
+
// CIL[BEGIN chunk_id="sidebar_sidebarmenusubbutton_1783758409" type="function" identity="SidebarMenuSubButton" parent="none"]
|
|
1068
|
+
// CIL[DOC-MACRO purpose="Sub-menu button for nested sidebar navigation"]
|
|
1069
|
+
// CIL[DOC-RESPONSIBILITY responsibility="Provide styled sub-menu button with size and active states"]
|
|
1070
|
+
// CIL[DOC-CONTEXT module="sidebar" layer="ui_components" related_files="[]"]
|
|
1071
|
+
// CIL[DOC-CONTRACT inputs="none" outputs="Styled sub-menu button" errors="none" side_effects="DOM events"]
|
|
1072
|
+
// CIL[DOC-MICRO logic_summary="Creates sub-menu button with size variants, active states and responsive styling" notable_decisions="[]"]
|
|
1073
|
+
// CIL[DOC-CONFIDENCE pass="second" score="0.95" flags="none"]
|
|
1074
|
+
// CIL[DOC-STABILITY stability="stable"]
|
|
1075
|
+
// CIL[DOC-VECTOR type="context" content="Layer: ui_components. Direct callers: 0. Direct calls: 0. Related files: none."]
|
|
1076
|
+
// CIL[DOC-VECTOR type="blast_radius" content="Direct callers: 0. Total affected: 0."]
|
|
1077
|
+
// CIL[DOC-VECTOR type="configuration" content="No configuration dependencies."]
|
|
1078
|
+
// CIL[DOC-VECTOR type="constraint" content="No test paths identified."]
|
|
1079
|
+
// CIL[DOC-VECTOR type="implementation_pattern" content="" status="pending_human_input"]
|
|
1080
|
+
// CIL[DOC-VECTOR type="user_journey" content="" status="pending_human_input"]
|
|
653
1081
|
function SidebarMenuSubButton({
|
|
654
1082
|
asChild = false,
|
|
655
1083
|
size = "md",
|
|
@@ -677,7 +1105,21 @@ function SidebarMenuSubButton({
|
|
|
677
1105
|
/>
|
|
678
1106
|
)
|
|
679
1107
|
}
|
|
680
|
-
|
|
1108
|
+
// CIL[END chunk_id="sidebar_sidebarmenusubbutton_1783758409"]
|
|
1109
|
+
// CIL[BEGIN chunk_id="sidebar_exports_1783758409" type="exports" identity="exports" parent="none"]
|
|
1110
|
+
// CIL[DOC-MACRO purpose="Export all sidebar components for public API"]
|
|
1111
|
+
// CIL[DOC-RESPONSIBILITY responsibility="Provide module exports for sidebar component library"]
|
|
1112
|
+
// CIL[DOC-CONTEXT module="sidebar" layer="ui_components" related_files="[]"]
|
|
1113
|
+
// CIL[DOC-CONTRACT inputs="none" outputs="Component exports" errors="none" side_effects="Module exports"]
|
|
1114
|
+
// CIL[DOC-MICRO logic_summary="Exports all sidebar components: Sidebar, SidebarContent, SidebarFooter, SidebarGroup, SidebarGroupAction, SidebarGroupContent, SidebarGroupLabel, SidebarHeader, SidebarInput, SidebarInset, SidebarMenu, SidebarMenuAction, SidebarMenuBadge, SidebarMenuButton, SidebarMenuItem, SidebarMenuSkeleton, SidebarMenuSub, SidebarMenuSubButton, SidebarMenuSubItem, SidebarProvider, SidebarRail, SidebarSeparator, SidebarTrigger, useSidebar" notable_decisions="[]"]
|
|
1115
|
+
// CIL[DOC-CONFIDENCE pass="second" score="0.95" flags="none"]
|
|
1116
|
+
// CIL[DOC-STABILITY stability="stable"]
|
|
1117
|
+
// CIL[DOC-VECTOR type="context" content="Layer: ui_components. Direct callers: 0. Direct calls: 0. Related files: none."]
|
|
1118
|
+
// CIL[DOC-VECTOR type="blast_radius" content="Direct callers: 0. Total affected: 0."]
|
|
1119
|
+
// CIL[DOC-VECTOR type="configuration" content="No configuration dependencies."]
|
|
1120
|
+
// CIL[DOC-VECTOR type="constraint" content="No test paths identified."]
|
|
1121
|
+
// CIL[DOC-VECTOR type="implementation_pattern" content="" status="pending_human_input"]
|
|
1122
|
+
// CIL[DOC-VECTOR type="user_journey" content="" status="pending_human_input"]
|
|
681
1123
|
export {
|
|
682
1124
|
Sidebar,
|
|
683
1125
|
SidebarContent,
|
|
@@ -704,3 +1146,4 @@ export {
|
|
|
704
1146
|
SidebarTrigger,
|
|
705
1147
|
useSidebar,
|
|
706
1148
|
}
|
|
1149
|
+
// CIL[END chunk_id="sidebar_exports_1783758409"]
|