@alexgorbatchev/shadcn 0.0.23 → 0.0.25
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/dist/{chunk-x1z72h7w.js → chunk-0eqk27kc.js} +1 -1
- package/dist/{chunk-ryvvtyjq.js → chunk-0p3jnj86.js} +1 -1
- package/dist/{chunk-seeed8a2.js → chunk-0v2xjev7.js} +1 -1
- package/dist/{chunk-zbm0xcq3.js → chunk-12cghfb8.js} +1 -1
- package/dist/{chunk-2tmvz090.js → chunk-1akzryj1.js} +1 -1
- package/dist/{chunk-e0gcczqk.js → chunk-1ask024n.js} +1 -1
- package/dist/{chunk-ge705y2w.js → chunk-1j834gzz.js} +1 -1
- package/dist/{chunk-5r99spxq.js → chunk-1te71te7.js} +1 -1
- package/dist/{chunk-m2ct74my.js → chunk-1yzgj2f3.js} +1 -1
- package/dist/{chunk-f307aaa6.js → chunk-2j8qna99.js} +2 -2
- package/dist/{chunk-s83v0taa.js → chunk-2jgpjz76.js} +1 -1
- package/dist/{chunk-tetvt0c3.js → chunk-2kekr0w0.js} +2 -2
- package/dist/{chunk-e59sfvpe.js → chunk-2rexmqbv.js} +1 -1
- package/dist/{chunk-w1w71edg.js → chunk-2z603ebe.js} +1 -1
- package/dist/{chunk-m0e0an33.js → chunk-34y9y8gj.js} +1 -1
- package/dist/{chunk-7ppfbxdh.js → chunk-3ct523v1.js} +1 -1
- package/dist/{chunk-nkw2vsf3.js → chunk-4k6mrxg7.js} +1 -1
- package/dist/{chunk-41wmtqkq.js → chunk-4wzr5pcs.js} +1 -1
- package/dist/{chunk-0vgs0ebx.js → chunk-50en3zdr.js} +1 -1
- package/dist/{chunk-a6kyjjfk.js → chunk-553hk2j3.js} +2 -2
- package/dist/{chunk-02qymemz.js → chunk-5gzdqj2y.js} +1 -1
- package/dist/{chunk-vq8nc5xa.js → chunk-5jcy5td1.js} +2 -2
- package/dist/{chunk-vxera95d.js → chunk-5mwbjeg6.js} +1 -1
- package/dist/{chunk-vs1n47pw.js → chunk-5xhpp4er.js} +1 -1
- package/dist/{chunk-qgjjcmpa.js → chunk-5yagsnc8.js} +1 -1
- package/dist/{chunk-g03nphs1.js → chunk-61ngfnp5.js} +2 -2
- package/dist/{chunk-3qqdfft7.js → chunk-69wkq8ez.js} +1 -1
- package/dist/{chunk-1c5jjkhw.js → chunk-6chyagqx.js} +1 -1
- package/dist/{chunk-jba22682.js → chunk-6hhsm369.js} +3 -3
- package/dist/{chunk-24pefkd5.js → chunk-6jwvd1q3.js} +2 -2
- package/dist/{chunk-qcsxnn16.js → chunk-6njgm8rp.js} +1 -1
- package/dist/{chunk-1p7pend8.js → chunk-6zvcgbw0.js} +3 -3
- package/dist/{chunk-y4gbweym.js → chunk-70mtpeme.js} +1 -1
- package/dist/{chunk-f4c0tg2x.js → chunk-7mhje7ps.js} +1 -1
- package/dist/{chunk-8a15x4a8.js → chunk-7n3fv64d.js} +1 -1
- package/dist/{chunk-dq7kr5y0.js → chunk-82wxsc8p.js} +7 -3
- package/dist/{chunk-dgkj6442.js → chunk-87f2y2t4.js} +1 -1
- package/dist/{chunk-ef04mmf4.js → chunk-8vnnqhxa.js} +2 -2
- package/dist/{chunk-dnvb9r71.js → chunk-8xsqfwxr.js} +1 -1
- package/dist/{chunk-1jeg5z55.js → chunk-8zhqkj8r.js} +1 -1
- package/dist/{chunk-bcpy6gpz.js → chunk-9s9sqz92.js} +1 -1
- package/dist/{chunk-3d9v39ga.js → chunk-9wawqspa.js} +2 -2
- package/dist/{chunk-72qr0gqe.js → chunk-9y9py6dq.js} +1 -1
- package/dist/{chunk-tynbgc30.js → chunk-a49zznxv.js} +2 -2
- package/dist/{chunk-tx19w12r.js → chunk-a4y5e1cm.js} +1 -1
- package/dist/{chunk-548kkcx4.js → chunk-ach9vxze.js} +1 -1
- package/dist/{chunk-ep057ccn.js → chunk-apv9pgkz.js} +1 -1
- package/dist/{chunk-j9d304dz.js → chunk-aw4w72j3.js} +1 -1
- package/dist/{chunk-2tn2pg48.js → chunk-b2g9ddvx.js} +1 -1
- package/dist/{chunk-nkx7ncf1.js → chunk-b74w8860.js} +1 -1
- package/dist/{chunk-yp12vs0s.js → chunk-bcw9x5wy.js} +1 -1
- package/dist/{chunk-gkkbg7rq.js → chunk-bk0ar3x2.js} +1 -1
- package/dist/{chunk-73rkr9ct.js → chunk-btz12z1j.js} +1 -0
- package/dist/{chunk-rc9kpszb.js → chunk-bv2w14vr.js} +1 -1
- package/dist/{chunk-aehkndxh.js → chunk-c2kt288z.js} +1 -1
- package/dist/{chunk-ynh7v8n7.js → chunk-dvk7mx0q.js} +1 -1
- package/dist/{chunk-djm7qq62.js → chunk-e1qbnvm0.js} +2 -2
- package/dist/{chunk-xkvyk2qf.js → chunk-e86g3dpe.js} +1 -1
- package/dist/{chunk-5ayp2vkw.js → chunk-f3kqqnr1.js} +1 -1
- package/dist/{chunk-1tgrhacr.js → chunk-fb0jkkvq.js} +1 -1
- package/dist/{chunk-3t4dphfj.js → chunk-fkcw3t7k.js} +1 -1
- package/dist/{chunk-smdxxnb8.js → chunk-g3eshdaf.js} +1 -1
- package/dist/{chunk-e6tx49rb.js → chunk-gkhv7nze.js} +1 -1
- package/dist/{chunk-ff8bpz3p.js → chunk-gxfdfxet.js} +1 -1
- package/dist/{chunk-zp1emfpq.js → chunk-h3ezg4sw.js} +1 -1
- package/dist/{chunk-ttyqqw3y.js → chunk-h6660c6j.js} +1 -1
- package/dist/{chunk-b2jkgq4n.js → chunk-h8fz1tbr.js} +1 -1
- package/dist/{chunk-zj06vvcz.js → chunk-hanf12ka.js} +1 -1
- package/dist/{chunk-vjtbpkht.js → chunk-hcgfqetz.js} +3 -3
- package/dist/{chunk-pkegpb49.js → chunk-hcwwnj9p.js} +1 -1
- package/dist/{chunk-f25bby84.js → chunk-hm1mmdqa.js} +1 -1
- package/dist/{chunk-gg39sggp.js → chunk-hyq4nwg2.js} +1 -1
- package/dist/{chunk-493ghkkr.js → chunk-j3ncv76v.js} +1 -1
- package/dist/{chunk-d3ad53et.js → chunk-j777f8b2.js} +8 -8
- package/dist/{chunk-mznfmtt8.js → chunk-jcmbn82d.js} +1 -1
- package/dist/{chunk-wbj4frbk.js → chunk-jfc7fwn1.js} +1 -1
- package/dist/{chunk-jpamrhdk.js → chunk-jmr8c2ek.js} +1 -1
- package/dist/{chunk-bt5ksk3z.js → chunk-jq22e0sq.js} +1 -1
- package/dist/{chunk-9dqspkha.js → chunk-jzy3z4mb.js} +2 -2
- package/dist/{chunk-8g1npthk.js → chunk-kmx0nmsj.js} +1 -1
- package/dist/{chunk-q4264v6h.js → chunk-kx617qt6.js} +2 -2
- package/dist/{chunk-k8v9y2dw.js → chunk-m1f0s5j7.js} +1 -1
- package/dist/{chunk-wwyzwptb.js → chunk-mjfdfmg7.js} +3 -3
- package/dist/{chunk-6krk6rjd.js → chunk-n8r5dkve.js} +1 -1
- package/dist/{chunk-djrb64cg.js → chunk-nb6aye6j.js} +1 -1
- package/dist/{chunk-kbg2e95b.js → chunk-nx21zbg9.js} +1 -1
- package/dist/{chunk-zve48bc0.js → chunk-nx51fh7f.js} +1 -1
- package/dist/{chunk-xjxhnvcc.js → chunk-nxerwfyv.js} +1 -1
- package/dist/{chunk-nz2e73h2.js → chunk-p3byyeva.js} +1 -1
- package/dist/{chunk-m1hr3w94.js → chunk-p8z3ekmf.js} +1 -1
- package/dist/{chunk-ve9gpkxd.js → chunk-pch7thbg.js} +1 -1
- package/dist/{chunk-ds65prb9.js → chunk-qadvww75.js} +1 -1
- package/dist/{chunk-a3r74mbf.js → chunk-qbm35ft9.js} +1 -1
- package/dist/{chunk-74aknkhq.js → chunk-qcvhjbrj.js} +1 -1
- package/dist/{chunk-83cckb23.js → chunk-qvp46ymf.js} +1 -1
- package/dist/{chunk-ghmkxqn5.js → chunk-r0097h0v.js} +2 -2
- package/dist/{chunk-gc0s6z4e.js → chunk-r1qydj1b.js} +1 -1
- package/dist/{chunk-70vndezn.js → chunk-rg7c7wxt.js} +1 -1
- package/dist/{chunk-gdtrt9dz.js → chunk-rzh23c9y.js} +1 -1
- package/dist/{chunk-67dkgsm3.js → chunk-tfqpraqf.js} +1 -1
- package/dist/{chunk-0nmj2qb8.js → chunk-tpa8ffve.js} +1 -1
- package/dist/{chunk-wkpf4bv7.js → chunk-tpk1251s.js} +1 -1
- package/dist/{chunk-23ey5ek0.js → chunk-v354xm3e.js} +1 -1
- package/dist/{chunk-5wemmqv5.js → chunk-vt6qq24c.js} +1 -1
- package/dist/{chunk-qk167mcx.js → chunk-w6axtxge.js} +1 -1
- package/dist/{chunk-41vczcvf.js → chunk-w6h0cvrg.js} +2 -2
- package/dist/{chunk-f9ha76ap.js → chunk-w86hc7zw.js} +4 -4
- package/dist/{chunk-eqmptn43.js → chunk-w8903thr.js} +1 -1
- package/dist/{chunk-k4qz4q7r.js → chunk-wbqdq9ap.js} +1 -1
- package/dist/{chunk-0w6rxpr5.js → chunk-wpfjpa27.js} +1 -1
- package/dist/{chunk-n94jf71r.js → chunk-x2d6pk16.js} +1 -1
- package/dist/{chunk-6f3qpy7v.js → chunk-xfcn631v.js} +1 -1
- package/dist/{chunk-8799zv5c.js → chunk-xfqy8t06.js} +1 -1
- package/dist/{chunk-3kp7kvdb.js → chunk-xtsvx1rv.js} +2 -2
- package/dist/{chunk-s29j7505.js → chunk-xvd0mw2e.js} +1 -1
- package/dist/{chunk-az81pc04.js → chunk-xw24jh9z.js} +8 -8
- package/dist/{chunk-zjbk25js.js → chunk-yeb2p173.js} +1 -1
- package/dist/{chunk-d2z4gebj.js → chunk-yecmha03.js} +1 -1
- package/dist/{chunk-wy701sqv.js → chunk-yxxw9m8m.js} +1 -1
- package/dist/{chunk-2y5f271v.js → chunk-yz8txs66.js} +2 -2
- package/dist/{chunk-21wbz345.js → chunk-z1dkx9dm.js} +1 -1
- package/dist/{chunk-m9zsppp2.js → chunk-zb83vq43.js} +3 -3
- package/dist/{chunk-tea1nrwn.js → chunk-zxap8db1.js} +2 -2
- package/dist/components/Avatar.d.ts +1 -1
- package/dist/components/Button.d.ts +1 -1
- package/dist/components/ButtonGroup.d.ts +2 -1
- package/dist/components/LayoutGuard.d.ts +4 -0
- package/dist/components/ScrollGuard.d.ts +2 -4
- package/dist/components/assistant-ui/elements/AgentCard.js +2 -2
- package/dist/components/assistant-ui/elements/ApprovalCard.js +2 -2
- package/dist/components/assistant-ui/elements/ArtifactCard.js +2 -2
- package/dist/components/assistant-ui/elements/AudioPlayer.js +2 -2
- package/dist/components/assistant-ui/elements/BackgroundInbox.js +2 -2
- package/dist/components/assistant-ui/elements/CanvasSplit.js +2 -2
- package/dist/components/assistant-ui/elements/ChatPanel.js +3 -3
- package/dist/components/assistant-ui/elements/CheckpointHistory.js +2 -2
- package/dist/components/assistant-ui/elements/Citation.js +2 -2
- package/dist/components/assistant-ui/elements/CodeRunner.js +2 -2
- package/dist/components/assistant-ui/elements/CommandPalette.js +5 -5
- package/dist/components/assistant-ui/elements/ComposerAttachButton.js +2 -2
- package/dist/components/assistant-ui/elements/ComposerAttachmentChip.js +2 -2
- package/dist/components/assistant-ui/elements/ComposerAttachments.js +3 -3
- package/dist/components/assistant-ui/elements/ComposerBar.js +3 -3
- package/dist/components/assistant-ui/elements/ComposerCommandItem.js +3 -3
- package/dist/components/assistant-ui/elements/ComposerContext.js +2 -2
- package/dist/components/assistant-ui/elements/ComposerInput.js +3 -3
- package/dist/components/assistant-ui/elements/ComposerMenuItem.js +2 -2
- package/dist/components/assistant-ui/elements/ComposerModelItem.js +3 -3
- package/dist/components/assistant-ui/elements/ComposerModelTrigger.js +2 -2
- package/dist/components/assistant-ui/elements/ComposerPersonItem.js +3 -3
- package/dist/components/assistant-ui/elements/ComposerSend.js +2 -2
- package/dist/components/assistant-ui/elements/ComposerToolbar.js +3 -3
- package/dist/components/assistant-ui/elements/ComposerVoiceButton.js +2 -2
- package/dist/components/assistant-ui/elements/ConnectionState.js +2 -2
- package/dist/components/assistant-ui/elements/ConversationSearch.js +3 -3
- package/dist/components/assistant-ui/elements/DataTable.js +2 -2
- package/dist/components/assistant-ui/elements/Diagram.js +2 -2
- package/dist/components/assistant-ui/elements/DiffViewer.js +3 -3
- package/dist/components/assistant-ui/elements/DiffViewerHeader.js +2 -2
- package/dist/components/assistant-ui/elements/DocumentReference.js +2 -2
- package/dist/components/assistant-ui/elements/DraftRestore.js +2 -2
- package/dist/components/assistant-ui/elements/EditMessage.js +2 -2
- package/dist/components/assistant-ui/elements/ElicitationForm.js +2 -2
- package/dist/components/assistant-ui/elements/EmptyStateComposer.js +3 -3
- package/dist/components/assistant-ui/elements/EmptyStateSuggestion.js +2 -2
- package/dist/components/assistant-ui/elements/ErrorState.js +2 -2
- package/dist/components/assistant-ui/elements/EveAskQuestion.js +3 -3
- package/dist/components/assistant-ui/elements/FeedbackDialog.js +2 -2
- package/dist/components/assistant-ui/elements/File.js +3 -3
- package/dist/components/assistant-ui/elements/GenerativeUi.js +6 -6
- package/dist/components/assistant-ui/elements/GeoMap.js +2 -2
- package/dist/components/assistant-ui/elements/GuardrailNotice.js +2 -2
- package/dist/components/assistant-ui/elements/Image.js +3 -3
- package/dist/components/assistant-ui/elements/ImageGallery.js +3 -3
- package/dist/components/assistant-ui/elements/ImageGeneration.js +2 -2
- package/dist/components/assistant-ui/elements/JobProgress.js +2 -2
- package/dist/components/assistant-ui/elements/LauncherBubble.js +2 -2
- package/dist/components/assistant-ui/elements/MapAnswer.js +2 -2
- package/dist/components/assistant-ui/elements/MarkdownText.js +3 -3
- package/dist/components/assistant-ui/elements/McpServerPanel.js +2 -2
- package/dist/components/assistant-ui/elements/MemoryChips.js +2 -2
- package/dist/components/assistant-ui/elements/MermaidDiagram.js +4 -4
- package/dist/components/assistant-ui/elements/MermaidZoom.js +3 -3
- package/dist/components/assistant-ui/elements/MessageActions.js +2 -2
- package/dist/components/assistant-ui/elements/MessageAttachments.js +2 -2
- package/dist/components/assistant-ui/elements/MessageBranches.js +2 -2
- package/dist/components/assistant-ui/elements/MessagePair.js +2 -2
- package/dist/components/assistant-ui/elements/MessageQueue.js +2 -2
- package/dist/components/assistant-ui/elements/MobileComposer.js +3 -3
- package/dist/components/assistant-ui/elements/ModelSelector.js +11 -11
- package/dist/components/assistant-ui/elements/ModelSelectorContent.js +10 -10
- package/dist/components/assistant-ui/elements/ModelSelectorEmpty.js +5 -5
- package/dist/components/assistant-ui/elements/ModelSelectorFocusAnchor.js +5 -5
- package/dist/components/assistant-ui/elements/ModelSelectorGroup.js +5 -5
- package/dist/components/assistant-ui/elements/ModelSelectorItem.js +5 -5
- package/dist/components/assistant-ui/elements/ModelSelectorList.js +7 -7
- package/dist/components/assistant-ui/elements/ModelSelectorSearch.js +5 -5
- package/dist/components/assistant-ui/elements/ModelSelectorSeparator.js +5 -5
- package/dist/components/assistant-ui/elements/Onboarding.js +2 -2
- package/dist/components/assistant-ui/elements/OptionList.js +2 -2
- package/dist/components/assistant-ui/elements/PermissionGrant.js +2 -2
- package/dist/components/assistant-ui/elements/PromptLibrary.js +3 -3
- package/dist/components/assistant-ui/elements/QuestionFlow.js +3 -3
- package/dist/components/assistant-ui/elements/QuotaBanner.js +2 -2
- package/dist/components/assistant-ui/elements/QuoteReply.js +2 -2
- package/dist/components/assistant-ui/elements/ReadAloud.js +2 -2
- package/dist/components/assistant-ui/elements/RecommendationCard.js +2 -2
- package/dist/components/assistant-ui/elements/RegenerateMenu.js +2 -2
- package/dist/components/assistant-ui/elements/ReviewableDiff.js +2 -2
- package/dist/components/assistant-ui/elements/SettingsPanel.js +2 -2
- package/dist/components/assistant-ui/elements/SharedConversation.js +2 -2
- package/dist/components/assistant-ui/elements/StoppedRun.js +2 -2
- package/dist/components/assistant-ui/elements/Suggestions.js +2 -2
- package/dist/components/assistant-ui/elements/TaskCard.js +2 -2
- package/dist/components/assistant-ui/elements/TerminalBlock.js +2 -2
- package/dist/components/assistant-ui/elements/ThreadList.js +2 -2
- package/dist/components/assistant-ui/elements/ThreadSearch.js +3 -3
- package/dist/components/assistant-ui/elements/TodoList.js +2 -2
- package/dist/components/assistant-ui/elements/ToolError.js +2 -2
- package/dist/components/assistant-ui/elements/ToolGroup.js +2 -2
- package/dist/components/assistant-ui/elements/TooltipIconButton.js +2 -2
- package/dist/components/assistant-ui/elements/VoiceConversation.js +2 -2
- package/dist/components/assistant-ui/elements/WebPreview.js +2 -2
- package/dist/components/assistant-ui/eveAskQuestionToolkit.js +4 -4
- package/dist/components/assistant-ui/index.js +101 -101
- package/dist/components/assistant-ui/native/AssistantModal.js +14 -14
- package/dist/components/assistant-ui/native/AssistantSidebar.js +13 -13
- package/dist/components/assistant-ui/native/AttachmentPreview.js +5 -5
- package/dist/components/assistant-ui/native/McpConfigDialog.js +3 -3
- package/dist/components/assistant-ui/native/MermaidDiagram.js +5 -5
- package/dist/components/assistant-ui/native/ModelSelector.js +13 -13
- package/dist/components/assistant-ui/native/Reasoning.js +4 -4
- package/dist/components/assistant-ui/native/TaskCard.js +6 -6
- package/dist/components/assistant-ui/native/TaskGroup.js +7 -7
- package/dist/components/assistant-ui/native/Thread.js +12 -12
- package/dist/components/assistant-ui/native/ThreadList.d.ts +1 -1
- package/dist/components/assistant-ui/native/ThreadList.js +2 -2
- package/dist/components/assistant-ui/native/ThreadListSidebar.js +4 -4
- package/dist/components/assistant-ui/native/ToolFallbackRoot.js +2 -2
- package/dist/components/assistant-ui/native/VoiceConnectButton.js +2 -2
- package/dist/components/assistant-ui/native/VoiceControl.js +6 -6
- package/dist/components/assistant-ui/native/VoiceConversation.js +3 -3
- package/dist/components/assistant-ui/native/VoiceDisconnectButton.js +3 -3
- package/dist/components/assistant-ui/native/VoiceMuteButton.js +3 -3
- package/dist/components/assistant-ui/native/index.js +41 -41
- package/dist/components/calendar/index.js +2 -2
- package/dist/components/carousel/index.js +1 -1
- package/dist/components/command/index.js +4 -4
- package/dist/components/data-grid/index.js +1 -1
- package/dist/components/editor/index.js +2 -2
- package/dist/components/event-calendar/index.js +1 -1
- package/dist/components/file-upload/index.js +1 -1
- package/dist/components/gantt/index.js +2 -2
- package/dist/components/message-scroller/index.js +1 -1
- package/dist/components/persian-calendar/index.js +2 -2
- package/dist/components/questionnaire/index.js +1 -1
- package/dist/components/sonner/index.js +1 -1
- package/dist/components/tree/TreeItem.d.ts +1 -1
- package/dist/components/tree/index.js +22 -5
- package/dist/hooks/useDocumentGuard.d.ts +8 -0
- package/dist/index.d.ts +4 -0
- package/dist/index.js +257 -69
- package/dist/utils/collectLayoutViolations.d.ts +13 -0
- package/dist/utils/getLayoutAnimations.d.ts +2 -0
- package/dist/utils/observeLayoutChanges.d.ts +2 -0
- package/dist/utils/observeLayoutGuards.d.ts +2 -0
- package/dist/utils/observeScrollGuards.d.ts +0 -1
- package/llms/components/actions/Button.md +17 -1
- package/llms/components/actions/ButtonGroup.md +15 -0
- package/llms/components/data-display/Avatar.md +14 -1
- package/llms/components/navigation/Sidebar.md +44 -4
- package/llms/components/navigation/Tree.md +10 -0
- package/llms/components/providers/LayoutGuard.md +24 -0
- package/llms.txt +1 -0
- package/package.json +1 -1
|
@@ -0,0 +1,24 @@
|
|
|
1
|
+
# LayoutGuard
|
|
2
|
+
|
|
3
|
+
ThemeProvider installs LayoutGuard in development. Mark a surface with data-layout-boundary="" to check both axes, or "x" / "y" for one axis. collectLayoutViolations(root, tolerance = 1) returns elements, edges, pixel overflow, and diagnostic messages for browser assertions. Checks include text ranges and clipped controls. Native scroll viewports permit displacement on their scrolling axes. Hidden/inert content and screen-reader labels are excluded; ellipsis text is allowed. Use data-layout-exclude="reason" only for intentional escape such as an edge-mounted resize rail. Portals are independent: mark their own surfaces. Finite layout animations settle before development errors; production installs no observer. Check every meaningful interaction state in tests. Axis-aligned DOM geometry does not measure shadows, pseudo-elements, or painted SVG paths.
|
|
4
|
+
|
|
5
|
+
Story: @alexgorbatchev/shadcn/components/providers/LayoutGuard
|
|
6
|
+
Source: src/components/stories/providers/LayoutGuard.stories.tsx
|
|
7
|
+
|
|
8
|
+
[Full source and local helpers](https://github.com/alexgorbatchev/shadcn/blob/main/src/components/stories/providers/LayoutGuard.stories.tsx)
|
|
9
|
+
|
|
10
|
+
## Public imports
|
|
11
|
+
|
|
12
|
+
```tsx
|
|
13
|
+
import { LayoutGuard } from "@alexgorbatchev/shadcn";
|
|
14
|
+
```
|
|
15
|
+
|
|
16
|
+
## Default component
|
|
17
|
+
|
|
18
|
+
```tsx
|
|
19
|
+
LayoutGuard
|
|
20
|
+
```
|
|
21
|
+
|
|
22
|
+
## Examples
|
|
23
|
+
|
|
24
|
+
Storybook CSF excerpts. Default args and render apply unless overridden. Local helpers, fixtures, decorators, and providers may be required; these are reference excerpts, not standalone consumer modules. Interaction tests are omitted.
|
package/llms.txt
CHANGED
|
@@ -457,6 +457,7 @@ Generated from the public package exports and Storybook sources.
|
|
|
457
457
|
|
|
458
458
|
- [DensityProvider](./llms/components/providers/DensityProvider.md)
|
|
459
459
|
- [DirectionProvider](./llms/components/providers/DirectionProvider.md)
|
|
460
|
+
- [LayoutGuard](./llms/components/providers/LayoutGuard.md): ThemeProvider installs LayoutGuard in development. Mark a surface with data-layout-boundary="" to check both axes, or "x" / "y" for one axis. collectLayoutViolations(root, tolerance = 1) returns elements, edges, pixel overflow, and diagnostic messages for browser assertions. Checks include text ranges and clipped controls. Native scroll viewports permit displacement on their scrolling axes. Hidden/inert content and screen-reader labels are excluded; ellipsis text is allowed. Use data-layout-exclude="reason" only for intentional escape such as an edge-mounted resize rail. Portals are independent: mark their own surfaces. Finite layout animations settle before development errors; production installs no observer. Check every meaningful interaction state in tests. Axis-aligned DOM geometry does not measure shadows, pseudo-elements, or painted SVG paths.
|
|
460
461
|
- [PortalProvider](./llms/components/providers/PortalProvider.md)
|
|
461
462
|
- [ScrollGuard](./llms/components/providers/ScrollGuard.md): ThemeProvider mounts ScrollGuard automatically in development. Mark any HTML element with data-scroll="none" to reject accidental scrolling on that element. Place intentional scrolling in a nested ScrollArea or native scroll viewport. Errors identify the offending element and axis. Production builds install no observers.
|
|
462
463
|
- [ThemeProvider](./llms/components/providers/ThemeProvider.md): The preview decorator owns one document-wide ThemeProvider. These controls change its persisted preference. The theme toolbar can force a palette on any other story.
|