@alexgorbatchev/shadcn 0.0.0-stage → 0.0.16
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/LICENSE +21 -0
- package/README.md +353 -2
- package/THIRD_PARTY_NOTICES.md +157 -0
- package/assistant-ui-catalog.json +2861 -0
- package/dist/assistant-ui/geo-map.css +75 -0
- package/dist/assistant-ui/markdown.css +47 -0
- package/dist/assistant-ui.css +146 -0
- package/dist/chunk-06c2d8rd.js +35 -0
- package/dist/chunk-0nmj2qb8.js +107 -0
- package/dist/chunk-0qkdp68h.js +38 -0
- package/dist/chunk-0vgs0ebx.js +39 -0
- package/dist/chunk-0xrvhezs.js +465 -0
- package/dist/chunk-0y0kqaqj.js +103 -0
- package/dist/chunk-0yqwq0ev.js +88 -0
- package/dist/chunk-19441s27.js +125 -0
- package/dist/chunk-1akz4hf3.js +16 -0
- package/dist/chunk-1apg76a7.js +537 -0
- package/dist/chunk-1hbge1cb.js +17 -0
- package/dist/chunk-1j2hz3w9.js +16 -0
- package/dist/chunk-1jeg5z55.js +111 -0
- package/dist/chunk-1s7af44v.js +78 -0
- package/dist/chunk-1wz92wgg.js +8 -0
- package/dist/chunk-1x2ch0xc.js +42 -0
- package/dist/chunk-22678d2t.js +546 -0
- package/dist/chunk-23ey5ek0.js +117 -0
- package/dist/chunk-24d68cjp.js +23 -0
- package/dist/chunk-299wvwy8.js +336 -0
- package/dist/chunk-2b9agdrf.js +82 -0
- package/dist/chunk-2ewx9qdn.js +45 -0
- package/dist/chunk-2g0zzx6f.js +102 -0
- package/dist/chunk-2gten6a1.js +19 -0
- package/dist/chunk-2m0zpzbm.js +90 -0
- package/dist/chunk-2tn2pg48.js +15 -0
- package/dist/chunk-2y5f271v.js +196 -0
- package/dist/chunk-2ye8evra.js +94 -0
- package/dist/chunk-34ndz1gf.js +35 -0
- package/dist/chunk-3552jz55.js +128 -0
- package/dist/chunk-3bzbwhda.js +104 -0
- package/dist/chunk-3c7tvhtx.js +39 -0
- package/dist/chunk-3esarnmt.js +248 -0
- package/dist/chunk-3g8p9apn.js +24 -0
- package/dist/chunk-3hvpcsb4.js +184 -0
- package/dist/chunk-3kp7kvdb.js +100 -0
- package/dist/chunk-3ptcdy6g.js +99 -0
- package/dist/chunk-3t4dphfj.js +98 -0
- package/dist/chunk-3xw5sdfk.js +65 -0
- package/dist/chunk-41vczcvf.js +195 -0
- package/dist/chunk-41wmtqkq.js +142 -0
- package/dist/chunk-41wykzq3.js +104 -0
- package/dist/chunk-47xfhw4f.js +114 -0
- package/dist/chunk-48b1ya7g.js +21 -0
- package/dist/chunk-490byd18.js +38 -0
- package/dist/chunk-493ghkkr.js +36 -0
- package/dist/chunk-4bjqbky7.js +19 -0
- package/dist/chunk-4c2sqyrp.js +14 -0
- package/dist/chunk-4gby2v61.js +133 -0
- package/dist/chunk-4k2jzddw.js +64 -0
- package/dist/chunk-4mmxn1c3.js +20 -0
- package/dist/chunk-4pae2b1z.js +16 -0
- package/dist/chunk-53cmv2aj.js +64 -0
- package/dist/chunk-53q730zs.js +53 -0
- package/dist/chunk-548kkcx4.js +28 -0
- package/dist/chunk-550z7s64.js +33 -0
- package/dist/chunk-55bcw5ff.js +74 -0
- package/dist/chunk-58resytq.js +112 -0
- package/dist/chunk-59p19t57.js +18 -0
- package/dist/chunk-5fg2ns3n.js +16 -0
- package/dist/chunk-5h6m9dsm.js +86 -0
- package/dist/chunk-5h7vkgvz.js +85 -0
- package/dist/chunk-5j39rehg.js +63 -0
- package/dist/chunk-5ntb7p4q.js +1005 -0
- package/dist/chunk-5r99spxq.js +64 -0
- package/dist/chunk-5s6r4g8w.js +16 -0
- package/dist/chunk-5wemmqv5.js +117 -0
- package/dist/chunk-63gvcckp.js +84 -0
- package/dist/chunk-644cnngf.js +54 -0
- package/dist/chunk-64564z9p.js +8 -0
- package/dist/chunk-6hbx647r.js +35 -0
- package/dist/chunk-6jpz5geq.js +150 -0
- package/dist/chunk-6krk6rjd.js +99 -0
- package/dist/chunk-6synj4j9.js +36 -0
- package/dist/chunk-6xr41wyr.js +33 -0
- package/dist/chunk-71efbr5n.js +24 -0
- package/dist/chunk-73rkr9ct.js +66 -0
- package/dist/chunk-74aknkhq.js +75 -0
- package/dist/chunk-7b3n0ftm.js +80 -0
- package/dist/chunk-7g1dx0bn.js +32 -0
- package/dist/chunk-7g39g3h8.js +104 -0
- package/dist/chunk-7ppfbxdh.js +101 -0
- package/dist/chunk-82e7fbmq.js +278 -0
- package/dist/chunk-86211e5a.js +19 -0
- package/dist/chunk-8799zv5c.js +25 -0
- package/dist/chunk-8g1npthk.js +92 -0
- package/dist/chunk-8k1y6w5k.js +141 -0
- package/dist/chunk-8r57zwqg.js +16 -0
- package/dist/chunk-8ye0k6z7.js +22 -0
- package/dist/chunk-97kagey4.js +105 -0
- package/dist/chunk-9de1htr5.js +69 -0
- package/dist/chunk-9dw4dyzq.js +89 -0
- package/dist/chunk-9msk1t9e.js +99 -0
- package/dist/chunk-9vm8fks0.js +397 -0
- package/dist/chunk-9zyam2cn.js +127 -0
- package/dist/chunk-a3r74mbf.js +65 -0
- package/dist/chunk-a6e11wj6.js +85 -0
- package/dist/chunk-aehkndxh.js +100 -0
- package/dist/chunk-aexby8h3.js +92 -0
- package/dist/chunk-ag6xpy6q.js +189 -0
- package/dist/chunk-avrh238b.js +117 -0
- package/dist/chunk-b06rfrfz.js +128 -0
- package/dist/chunk-b12s32e3.js +61 -0
- package/dist/chunk-b2jkgq4n.js +22 -0
- package/dist/chunk-b3b2tvkg.js +41 -0
- package/dist/chunk-bhejvd5q.js +76 -0
- package/dist/chunk-bnaejcfx.js +43 -0
- package/dist/chunk-bt5ksk3z.js +76 -0
- package/dist/chunk-c2vcrwjp.js +70 -0
- package/dist/chunk-cn1ns1xj.js +98 -0
- package/dist/chunk-cp2m7y7v.js +26 -0
- package/dist/chunk-czg9p52v.js +74 -0
- package/dist/chunk-d70rcwk7.js +16 -0
- package/dist/chunk-dd53t01w.js +14 -0
- package/dist/chunk-dg14mg3y.js +56 -0
- package/dist/chunk-djrb64cg.js +141 -0
- package/dist/chunk-dnja1pz5.js +18 -0
- package/dist/chunk-dnvb9r71.js +96 -0
- package/dist/chunk-ds65prb9.js +229 -0
- package/dist/chunk-dtkw8m6d.js +18 -0
- package/dist/chunk-e50068hn.js +51 -0
- package/dist/chunk-e59sfvpe.js +78 -0
- package/dist/chunk-e6hk39ev.js +14 -0
- package/dist/chunk-e6tx49rb.js +55 -0
- package/dist/chunk-ed49y20r.js +109 -0
- package/dist/chunk-eehfrrdz.js +37 -0
- package/dist/chunk-ef04mmf4.js +284 -0
- package/dist/chunk-emasqc8x.js +19 -0
- package/dist/chunk-ep057ccn.js +19 -0
- package/dist/chunk-eqmptn43.js +96 -0
- package/dist/chunk-erpzgt57.js +87 -0
- package/dist/chunk-ets9h67e.js +26 -0
- package/dist/chunk-f1mdtq5p.js +11 -0
- package/dist/chunk-f25bby84.js +96 -0
- package/dist/chunk-f307aaa6.js +299 -0
- package/dist/chunk-f3f76m3p.js +14 -0
- package/dist/chunk-f63f8w58.js +44 -0
- package/dist/chunk-f8zc8ceg.js +5 -0
- package/dist/chunk-ff8bpz3p.js +86 -0
- package/dist/chunk-fgfaarep.js +37 -0
- package/dist/chunk-fgmcbtyt.js +23 -0
- package/dist/chunk-fh3nme7f.js +45 -0
- package/dist/chunk-fq8taatb.js +85 -0
- package/dist/chunk-fqekyjkh.js +65 -0
- package/dist/chunk-fvg93469.js +42 -0
- package/dist/chunk-fy1jbp97.js +47 -0
- package/dist/chunk-gc0s6z4e.js +83 -0
- package/dist/chunk-gdtrt9dz.js +83 -0
- package/dist/chunk-ge705y2w.js +26 -0
- package/dist/chunk-gfm2arhj.js +165 -0
- package/dist/chunk-gg39sggp.js +59 -0
- package/dist/chunk-gknaq8ep.js +86 -0
- package/dist/chunk-gt8m0zeq.js +112 -0
- package/dist/chunk-gyg2s982.js +143 -0
- package/dist/chunk-h0g7qkya.js +265 -0
- package/dist/chunk-h51gnkz8.js +99 -0
- package/dist/chunk-h561m2ae.js +75 -0
- package/dist/chunk-h6kcqtzf.js +121 -0
- package/dist/chunk-h77yk9sn.js +148 -0
- package/dist/chunk-h8awhm19.js +52 -0
- package/dist/chunk-ha24sd50.js +78 -0
- package/dist/chunk-hhvp5352.js +19 -0
- package/dist/chunk-hpmvzsnv.js +258 -0
- package/dist/chunk-hxctrrkh.js +68 -0
- package/dist/chunk-hz9azhzx.js +16 -0
- package/dist/chunk-j5wk4ffj.js +251 -0
- package/dist/chunk-j89xg1ak.js +14 -0
- package/dist/chunk-j9d304dz.js +203 -0
- package/dist/chunk-jacxpetf.js +45 -0
- package/dist/chunk-jcxxjkqx.js +17 -0
- package/dist/chunk-jhw9q2eq.js +57 -0
- package/dist/chunk-jpvw9xqy.js +4 -0
- package/dist/chunk-jq6tc65r.js +86 -0
- package/dist/chunk-jwajmmfb.js +14 -0
- package/dist/chunk-jxwfkmdh.js +35 -0
- package/dist/chunk-jy57625a.js +19 -0
- package/dist/chunk-jy6nfnbx.js +94 -0
- package/dist/chunk-k01gpm23.js +22 -0
- package/dist/chunk-k3hjzpvz.js +67 -0
- package/dist/chunk-k6hfm259.js +37 -0
- package/dist/chunk-k99h6evz.js +11 -0
- package/dist/chunk-kbcprevc.js +17 -0
- package/dist/chunk-khgrv6k6.js +56 -0
- package/dist/chunk-khkdgmvm.js +95 -0
- package/dist/chunk-kjx7n6a7.js +20 -0
- package/dist/chunk-kp3jgjng.js +20 -0
- package/dist/chunk-kz9np152.js +43 -0
- package/dist/chunk-m0e0an33.js +78 -0
- package/dist/chunk-m1a9e1py.js +27 -0
- package/dist/chunk-m1hr3w94.js +35 -0
- package/dist/chunk-m54kq3he.js +59 -0
- package/dist/chunk-m99hfsps.js +63 -0
- package/dist/chunk-mammcx1w.js +33 -0
- package/dist/chunk-mfx3kkk3.js +38 -0
- package/dist/chunk-mjpc4qf7.js +322 -0
- package/dist/chunk-msave608.js +139 -0
- package/dist/chunk-mx21wpq0.js +204 -0
- package/dist/chunk-mznfmtt8.js +78 -0
- package/dist/chunk-n94jf71r.js +101 -0
- package/dist/chunk-njzam0hx.js +101 -0
- package/dist/chunk-nkx7ncf1.js +92 -0
- package/dist/chunk-nz2e73h2.js +132 -0
- package/dist/chunk-nzas8r5v.js +22 -0
- package/dist/chunk-p9aqek06.js +68 -0
- package/dist/chunk-pa07b92f.js +20 -0
- package/dist/chunk-pb8tsrdf.js +26 -0
- package/dist/chunk-pe1vvkp7.js +33 -0
- package/dist/chunk-pkegpb49.js +364 -0
- package/dist/chunk-q2ewq67a.js +171 -0
- package/dist/chunk-q40gqpwh.js +41 -0
- package/dist/chunk-q4264v6h.js +123 -0
- package/dist/chunk-q7zc22qp.js +77 -0
- package/dist/chunk-q9qm7skj.js +132 -0
- package/dist/chunk-qk167mcx.js +87 -0
- package/dist/chunk-qxt0fx4f.js +93 -0
- package/dist/chunk-r07v9c4f.js +65 -0
- package/dist/chunk-r6p7982y.js +64 -0
- package/dist/chunk-r7fy89jq.js +33 -0
- package/dist/chunk-r9mng3ws.js +27 -0
- package/dist/chunk-rajgnfbr.js +24 -0
- package/dist/chunk-rc9kpszb.js +144 -0
- package/dist/chunk-rrd9fsz6.js +68 -0
- package/dist/chunk-ryvvtyjq.js +117 -0
- package/dist/chunk-s29j7505.js +147 -0
- package/dist/chunk-s3wqwhxc.js +15 -0
- package/dist/chunk-sbrpnv8s.js +117 -0
- package/dist/chunk-serw27sv.js +146 -0
- package/dist/chunk-smdxxnb8.js +19 -0
- package/dist/chunk-smzhep9f.js +245 -0
- package/dist/chunk-tetvt0c3.js +161 -0
- package/dist/chunk-tsekdy3w.js +449 -0
- package/dist/chunk-ttdeyjvj.js +88 -0
- package/dist/chunk-ttyqqw3y.js +93 -0
- package/dist/chunk-tx19w12r.js +36 -0
- package/dist/chunk-tzred534.js +16 -0
- package/dist/chunk-v00z8h0n.js +52 -0
- package/dist/chunk-v0pj5b4g.js +11 -0
- package/dist/chunk-v8ks0cfq.js +32 -0
- package/dist/chunk-v9r6zprz.js +91 -0
- package/dist/chunk-vfhztmet.js +114 -0
- package/dist/chunk-vnxy5dtp.js +16 -0
- package/dist/chunk-vs1n47pw.js +60 -0
- package/dist/chunk-vx7c2xhq.js +33 -0
- package/dist/chunk-vxera95d.js +19 -0
- package/dist/chunk-vxvaaptq.js +36 -0
- package/dist/chunk-vygzdvrk.js +16 -0
- package/dist/chunk-vyve5wf3.js +24 -0
- package/dist/chunk-wbj4frbk.js +26 -0
- package/dist/chunk-wf5cnpdg.js +33 -0
- package/dist/chunk-wgxs6b5t.js +44 -0
- package/dist/chunk-wjx6zf94.js +41 -0
- package/dist/chunk-wkg0rssg.js +37 -0
- package/dist/chunk-wndqbss9.js +34 -0
- package/dist/chunk-wnyxdfzd.js +41 -0
- package/dist/chunk-wwfj7ga3.js +221 -0
- package/dist/chunk-wy701sqv.js +19 -0
- package/dist/chunk-x1z72h7w.js +92 -0
- package/dist/chunk-x7z9jzyf.js +84 -0
- package/dist/chunk-xhtsnwnb.js +29 -0
- package/dist/chunk-xjxhnvcc.js +36 -0
- package/dist/chunk-xkvyk2qf.js +27 -0
- package/dist/chunk-xqn8mef3.js +117 -0
- package/dist/chunk-xvgp05yg.js +23 -0
- package/dist/chunk-xvs5y4v7.js +706 -0
- package/dist/chunk-xxk0akfn.js +12 -0
- package/dist/chunk-y4gbweym.js +84 -0
- package/dist/chunk-yabr2qx9.js +66 -0
- package/dist/chunk-ybypybsb.js +43 -0
- package/dist/chunk-ydfsxbrn.js +48 -0
- package/dist/chunk-ydfx8r6d.js +15 -0
- package/dist/chunk-yn3e9w1j.js +74 -0
- package/dist/chunk-yncp9nsv.js +106 -0
- package/dist/chunk-ynh7v8n7.js +146 -0
- package/dist/chunk-ynkpdpn0.js +60 -0
- package/dist/chunk-yp12vs0s.js +862 -0
- package/dist/chunk-yqs310vg.js +49 -0
- package/dist/chunk-z1fy613d.js +64 -0
- package/dist/chunk-zbm0xcq3.js +86 -0
- package/dist/chunk-zc60zhz7.js +16 -0
- package/dist/chunk-zcwynyr0.js +54 -0
- package/dist/chunk-zgpdhtkw.js +35 -0
- package/dist/chunk-zhnwybhq.js +143 -0
- package/dist/chunk-zj30cfgx.js +20 -0
- package/dist/chunk-zjbk25js.js +88 -0
- package/dist/chunk-zp1emfpq.js +83 -0
- package/dist/chunk-zpcxr2r4.js +98 -0
- package/dist/chunk-zve48bc0.js +88 -0
- package/dist/components/Accordion.d.ts +12 -0
- package/dist/components/Alert.d.ts +15 -0
- package/dist/components/AlertDialog.d.ts +28 -0
- package/dist/components/AspectRatio.d.ts +5 -0
- package/dist/components/Attachment.d.ts +36 -0
- package/dist/components/Avatar.d.ts +19 -0
- package/dist/components/Badge.d.ts +15 -0
- package/dist/components/Breadcrumb.d.ts +18 -0
- package/dist/components/Bubble.d.ts +25 -0
- package/dist/components/Button.d.ts +14 -0
- package/dist/components/ButtonGroup.d.ts +14 -0
- package/dist/components/Card.d.ts +19 -0
- package/dist/components/Checkbox.d.ts +6 -0
- package/dist/components/Collapsible.d.ts +6 -0
- package/dist/components/Combobox.d.ts +39 -0
- package/dist/components/ConfirmationDialog.d.ts +11 -0
- package/dist/components/ContextMenu.d.ts +24 -0
- package/dist/components/DensityProvider.d.ts +7 -0
- package/dist/components/Dialog.d.ts +25 -0
- package/dist/components/DirectionProvider.d.ts +1 -0
- package/dist/components/DragDropPreview.d.ts +7 -0
- package/dist/components/DragDropProvider.d.ts +6 -0
- package/dist/components/DragSource.d.ts +10 -0
- package/dist/components/Drawer.d.ts +25 -0
- package/dist/components/DropTarget.d.ts +11 -0
- package/dist/components/DropdownMenu.d.ts +26 -0
- package/dist/components/Empty.d.ts +19 -0
- package/dist/components/EmptyState.d.ts +8 -0
- package/dist/components/Field.d.ts +36 -0
- package/dist/components/HoverCard.d.ts +8 -0
- package/dist/components/ImagePicker.d.ts +11 -0
- package/dist/components/InlineEdit.d.ts +14 -0
- package/dist/components/Input.d.ts +6 -0
- package/dist/components/InputGroup.d.ts +26 -0
- package/dist/components/Item.d.ts +32 -0
- package/dist/components/JsonViewer.d.ts +8 -0
- package/dist/components/Kbd.d.ts +7 -0
- package/dist/components/Label.d.ts +5 -0
- package/dist/components/Marker.d.ts +19 -0
- package/dist/components/Menubar.d.ts +29 -0
- package/dist/components/Message.d.ts +17 -0
- package/dist/components/NativeSelect.d.ts +11 -0
- package/dist/components/NavigationMenu.d.ts +21 -0
- package/dist/components/PageMessage.d.ts +9 -0
- package/dist/components/Pagination.d.ts +21 -0
- package/dist/components/Popover.d.ts +14 -0
- package/dist/components/PortalProvider.d.ts +7 -0
- package/dist/components/Progress.d.ts +17 -0
- package/dist/components/RadioGroup.d.ts +9 -0
- package/dist/components/ScrollArea.d.ts +10 -0
- package/dist/components/Select.d.ts +25 -0
- package/dist/components/Separator.d.ts +8 -0
- package/dist/components/Sheet.d.ts +20 -0
- package/dist/components/Sidebar.d.ts +60 -0
- package/dist/components/Skeleton.d.ts +5 -0
- package/dist/components/Slider.d.ts +6 -0
- package/dist/components/Spinner.d.ts +5 -0
- package/dist/components/StarRating.d.ts +10 -0
- package/dist/components/Switch.d.ts +8 -0
- package/dist/components/Table.d.ts +28 -0
- package/dist/components/Tabs.d.ts +16 -0
- package/dist/components/Textarea.d.ts +5 -0
- package/dist/components/ThemeProvider.d.ts +10 -0
- package/dist/components/Toast.d.ts +18 -0
- package/dist/components/Toggle.d.ts +11 -0
- package/dist/components/ToggleGroup.d.ts +12 -0
- package/dist/components/Tooltip.d.ts +9 -0
- package/dist/components/assistant-ui/conversationMap/types.d.ts +20 -0
- package/dist/components/assistant-ui/elements/ActivityGraph.d.ts +11 -0
- package/dist/components/assistant-ui/elements/ActivityGraph.js +8 -0
- package/dist/components/assistant-ui/elements/AgentCard.d.ts +19 -0
- package/dist/components/assistant-ui/elements/AgentCard.js +8 -0
- package/dist/components/assistant-ui/elements/AgentHandoff.d.ts +11 -0
- package/dist/components/assistant-ui/elements/AgentHandoff.js +7 -0
- package/dist/components/assistant-ui/elements/AgentPlan.d.ts +14 -0
- package/dist/components/assistant-ui/elements/AgentPlan.js +8 -0
- package/dist/components/assistant-ui/elements/AgentStatus.d.ts +11 -0
- package/dist/components/assistant-ui/elements/AgentStatus.js +7 -0
- package/dist/components/assistant-ui/elements/ApprovalCard.d.ts +21 -0
- package/dist/components/assistant-ui/elements/ApprovalCard.js +9 -0
- package/dist/components/assistant-ui/elements/ArtifactCard.d.ts +10 -0
- package/dist/components/assistant-ui/elements/ArtifactCard.js +9 -0
- package/dist/components/assistant-ui/elements/AudioPlayer.d.ts +9 -0
- package/dist/components/assistant-ui/elements/AudioPlayer.js +9 -0
- package/dist/components/assistant-ui/elements/BackgroundInbox.d.ts +15 -0
- package/dist/components/assistant-ui/elements/BackgroundInbox.js +9 -0
- package/dist/components/assistant-ui/elements/CanvasSplit.d.ts +29 -0
- package/dist/components/assistant-ui/elements/CanvasSplit.js +20 -0
- package/dist/components/assistant-ui/elements/Chart.d.ts +14 -0
- package/dist/components/assistant-ui/elements/Chart.js +11 -0
- package/dist/components/assistant-ui/elements/ChatPanel.d.ts +20 -0
- package/dist/components/assistant-ui/elements/ChatPanel.js +21 -0
- package/dist/components/assistant-ui/elements/CheckpointHistory.d.ts +15 -0
- package/dist/components/assistant-ui/elements/CheckpointHistory.js +8 -0
- package/dist/components/assistant-ui/elements/Citation.d.ts +16 -0
- package/dist/components/assistant-ui/elements/Citation.js +11 -0
- package/dist/components/assistant-ui/elements/ClaudeLogo.d.ts +6 -0
- package/dist/components/assistant-ui/elements/ClaudeLogo.js +6 -0
- package/dist/components/assistant-ui/elements/CodeDiff.d.ts +16 -0
- package/dist/components/assistant-ui/elements/CodeDiff.js +8 -0
- package/dist/components/assistant-ui/elements/CodeRunner.d.ts +13 -0
- package/dist/components/assistant-ui/elements/CodeRunner.js +8 -0
- package/dist/components/assistant-ui/elements/CommandPalette.d.ts +17 -0
- package/dist/components/assistant-ui/elements/CommandPalette.js +16 -0
- package/dist/components/assistant-ui/elements/ComparisonCard.d.ts +16 -0
- package/dist/components/assistant-ui/elements/ComparisonCard.js +7 -0
- package/dist/components/assistant-ui/elements/Composer.d.ts +5 -0
- package/dist/components/assistant-ui/elements/Composer.js +7 -0
- package/dist/components/assistant-ui/elements/ComposerActions.d.ts +5 -0
- package/dist/components/assistant-ui/elements/ComposerActions.js +7 -0
- package/dist/components/assistant-ui/elements/ComposerAttachButton.d.ts +5 -0
- package/dist/components/assistant-ui/elements/ComposerAttachButton.js +8 -0
- package/dist/components/assistant-ui/elements/ComposerAttachmentChip.d.ts +9 -0
- package/dist/components/assistant-ui/elements/ComposerAttachmentChip.js +9 -0
- package/dist/components/assistant-ui/elements/ComposerAttachments.d.ts +5 -0
- package/dist/components/assistant-ui/elements/ComposerAttachments.js +11 -0
- package/dist/components/assistant-ui/elements/ComposerBar.d.ts +7 -0
- package/dist/components/assistant-ui/elements/ComposerBar.js +11 -0
- package/dist/components/assistant-ui/elements/ComposerCommandItem.d.ts +9 -0
- package/dist/components/assistant-ui/elements/ComposerCommandItem.js +10 -0
- package/dist/components/assistant-ui/elements/ComposerContext.d.ts +7 -0
- package/dist/components/assistant-ui/elements/ComposerContext.js +13 -0
- package/dist/components/assistant-ui/elements/ComposerInput.d.ts +7 -0
- package/dist/components/assistant-ui/elements/ComposerInput.js +11 -0
- package/dist/components/assistant-ui/elements/ComposerMenu.d.ts +7 -0
- package/dist/components/assistant-ui/elements/ComposerMenu.js +7 -0
- package/dist/components/assistant-ui/elements/ComposerMenuItem.d.ts +8 -0
- package/dist/components/assistant-ui/elements/ComposerMenuItem.js +9 -0
- package/dist/components/assistant-ui/elements/ComposerModelItem.d.ts +9 -0
- package/dist/components/assistant-ui/elements/ComposerModelItem.js +10 -0
- package/dist/components/assistant-ui/elements/ComposerModelTrigger.d.ts +8 -0
- package/dist/components/assistant-ui/elements/ComposerModelTrigger.js +8 -0
- package/dist/components/assistant-ui/elements/ComposerPersonItem.d.ts +9 -0
- package/dist/components/assistant-ui/elements/ComposerPersonItem.js +10 -0
- package/dist/components/assistant-ui/elements/ComposerSend.d.ts +8 -0
- package/dist/components/assistant-ui/elements/ComposerSend.js +8 -0
- package/dist/components/assistant-ui/elements/ComposerToolbar.d.ts +5 -0
- package/dist/components/assistant-ui/elements/ComposerToolbar.js +11 -0
- package/dist/components/assistant-ui/elements/ComposerVoice.d.ts +9 -0
- package/dist/components/assistant-ui/elements/ComposerVoice.js +8 -0
- package/dist/components/assistant-ui/elements/ComposerVoiceButton.d.ts +7 -0
- package/dist/components/assistant-ui/elements/ComposerVoiceButton.js +8 -0
- package/dist/components/assistant-ui/elements/ComputerUse.d.ts +17 -0
- package/dist/components/assistant-ui/elements/ComputerUse.js +7 -0
- package/dist/components/assistant-ui/elements/ConfidenceMarker.d.ts +16 -0
- package/dist/components/assistant-ui/elements/ConfidenceMarker.js +7 -0
- package/dist/components/assistant-ui/elements/ConnectionState.d.ts +10 -0
- package/dist/components/assistant-ui/elements/ConnectionState.js +8 -0
- package/dist/components/assistant-ui/elements/ContextBreakdown.d.ts +15 -0
- package/dist/components/assistant-ui/elements/ContextBreakdown.js +8 -0
- package/dist/components/assistant-ui/elements/ContextDisplay.d.ts +15 -0
- package/dist/components/assistant-ui/elements/ContextDisplay.js +20 -0
- package/dist/components/assistant-ui/elements/ContextDisplayBar.d.ts +3 -0
- package/dist/components/assistant-ui/elements/ContextDisplayBar.js +17 -0
- package/dist/components/assistant-ui/elements/ContextDisplayContent.d.ts +6 -0
- package/dist/components/assistant-ui/elements/ContextDisplayContent.js +13 -0
- package/dist/components/assistant-ui/elements/ContextDisplayRing.d.ts +3 -0
- package/dist/components/assistant-ui/elements/ContextDisplayRing.js +17 -0
- package/dist/components/assistant-ui/elements/ContextDisplayRoot.d.ts +15 -0
- package/dist/components/assistant-ui/elements/ContextDisplayRoot.js +11 -0
- package/dist/components/assistant-ui/elements/ContextDisplayText.d.ts +3 -0
- package/dist/components/assistant-ui/elements/ContextDisplayText.js +17 -0
- package/dist/components/assistant-ui/elements/ContextDisplayTrigger.d.ts +4 -0
- package/dist/components/assistant-ui/elements/ContextDisplayTrigger.js +10 -0
- package/dist/components/assistant-ui/elements/ContextDisplayValue.d.ts +6 -0
- package/dist/components/assistant-ui/elements/ContextDisplayValue.js +9 -0
- package/dist/components/assistant-ui/elements/ConversationMap.d.ts +16 -0
- package/dist/components/assistant-ui/elements/ConversationMap.js +10 -0
- package/dist/components/assistant-ui/elements/ConversationSearch.d.ts +18 -0
- package/dist/components/assistant-ui/elements/ConversationSearch.js +11 -0
- package/dist/components/assistant-ui/elements/CostMeter.d.ts +16 -0
- package/dist/components/assistant-ui/elements/CostMeter.js +8 -0
- package/dist/components/assistant-ui/elements/DataTable.d.ts +4 -0
- package/dist/components/assistant-ui/elements/DataTable.js +12 -0
- package/dist/components/assistant-ui/elements/DataTableValueCell.d.ts +10 -0
- package/dist/components/assistant-ui/elements/DaySeparator.d.ts +14 -0
- package/dist/components/assistant-ui/elements/DaySeparator.js +7 -0
- package/dist/components/assistant-ui/elements/Diagram.d.ts +13 -0
- package/dist/components/assistant-ui/elements/Diagram.js +8 -0
- package/dist/components/assistant-ui/elements/DiffViewer.d.ts +18 -0
- package/dist/components/assistant-ui/elements/DiffViewer.js +19 -0
- package/dist/components/assistant-ui/elements/DiffViewerContent.d.ts +3 -0
- package/dist/components/assistant-ui/elements/DiffViewerContent.js +7 -0
- package/dist/components/assistant-ui/elements/DiffViewerFile.d.ts +3 -0
- package/dist/components/assistant-ui/elements/DiffViewerFile.js +7 -0
- package/dist/components/assistant-ui/elements/DiffViewerFileBadge.d.ts +6 -0
- package/dist/components/assistant-ui/elements/DiffViewerFileBadge.js +8 -0
- package/dist/components/assistant-ui/elements/DiffViewerFileContent.d.ts +14 -0
- package/dist/components/assistant-ui/elements/DiffViewerHeader.d.ts +14 -0
- package/dist/components/assistant-ui/elements/DiffViewerHeader.js +12 -0
- package/dist/components/assistant-ui/elements/DiffViewerLine.d.ts +9 -0
- package/dist/components/assistant-ui/elements/DiffViewerLine.js +8 -0
- package/dist/components/assistant-ui/elements/DiffViewerSplitLine.d.ts +9 -0
- package/dist/components/assistant-ui/elements/DiffViewerSplitLine.js +8 -0
- package/dist/components/assistant-ui/elements/DiffViewerStats.d.ts +6 -0
- package/dist/components/assistant-ui/elements/DiffViewerStats.js +8 -0
- package/dist/components/assistant-ui/elements/DiffViewerText.d.ts +6 -0
- package/dist/components/assistant-ui/elements/DirectiveText.d.ts +25 -0
- package/dist/components/assistant-ui/elements/DirectiveText.js +8 -0
- package/dist/components/assistant-ui/elements/DocumentReference.d.ts +15 -0
- package/dist/components/assistant-ui/elements/DocumentReference.js +8 -0
- package/dist/components/assistant-ui/elements/DotMatrix.d.ts +9 -0
- package/dist/components/assistant-ui/elements/DotMatrix.js +8 -0
- package/dist/components/assistant-ui/elements/DraftRestore.d.ts +10 -0
- package/dist/components/assistant-ui/elements/DraftRestore.js +8 -0
- package/dist/components/assistant-ui/elements/EditMessage.d.ts +12 -0
- package/dist/components/assistant-ui/elements/EditMessage.js +14 -0
- package/dist/components/assistant-ui/elements/ElicitationForm.d.ts +21 -0
- package/dist/components/assistant-ui/elements/ElicitationForm.js +16 -0
- package/dist/components/assistant-ui/elements/EmptyState.d.ts +5 -0
- package/dist/components/assistant-ui/elements/EmptyState.js +8 -0
- package/dist/components/assistant-ui/elements/EmptyStateComposer.d.ts +10 -0
- package/dist/components/assistant-ui/elements/EmptyStateComposer.js +11 -0
- package/dist/components/assistant-ui/elements/EmptyStateGreeting.d.ts +4 -0
- package/dist/components/assistant-ui/elements/EmptyStateGreeting.js +7 -0
- package/dist/components/assistant-ui/elements/EmptyStateSuggestion.d.ts +7 -0
- package/dist/components/assistant-ui/elements/EmptyStateSuggestion.js +8 -0
- package/dist/components/assistant-ui/elements/EmptyStateSuggestions.d.ts +4 -0
- package/dist/components/assistant-ui/elements/EmptyStateSuggestions.js +7 -0
- package/dist/components/assistant-ui/elements/ErrorState.d.ts +9 -0
- package/dist/components/assistant-ui/elements/ErrorState.js +9 -0
- package/dist/components/assistant-ui/elements/EveAskQuestion.d.ts +4 -0
- package/dist/components/assistant-ui/elements/EveAskQuestion.js +11 -0
- package/dist/components/assistant-ui/elements/FeedbackDialog.d.ts +12 -0
- package/dist/components/assistant-ui/elements/FeedbackDialog.js +14 -0
- package/dist/components/assistant-ui/elements/File.d.ts +36 -0
- package/dist/components/assistant-ui/elements/File.js +23 -0
- package/dist/components/assistant-ui/elements/FileTree.d.ts +17 -0
- package/dist/components/assistant-ui/elements/FileTree.js +8 -0
- package/dist/components/assistant-ui/elements/FlowGraph.d.ts +21 -0
- package/dist/components/assistant-ui/elements/FlowGraph.js +8 -0
- package/dist/components/assistant-ui/elements/Frac.d.ts +7 -0
- package/dist/components/assistant-ui/elements/Frac.js +6 -0
- package/dist/components/assistant-ui/elements/GeminiLogo.d.ts +3 -0
- package/dist/components/assistant-ui/elements/GeminiLogo.js +6 -0
- package/dist/components/assistant-ui/elements/GenerationLoader.d.ts +9 -0
- package/dist/components/assistant-ui/elements/GenerationLoader.js +8 -0
- package/dist/components/assistant-ui/elements/GenerativeUi.d.ts +9 -0
- package/dist/components/assistant-ui/elements/GenerativeUi.js +17 -0
- package/dist/components/assistant-ui/elements/GeoMap.d.ts +26 -0
- package/dist/components/assistant-ui/elements/GeoMap.js +8 -0
- package/dist/components/assistant-ui/elements/GitHubIcon.d.ts +6 -0
- package/dist/components/assistant-ui/elements/GitHubIcon.js +6 -0
- package/dist/components/assistant-ui/elements/GuardrailNotice.d.ts +11 -0
- package/dist/components/assistant-ui/elements/GuardrailNotice.js +9 -0
- package/dist/components/assistant-ui/elements/HeatGraph.d.ts +11 -0
- package/dist/components/assistant-ui/elements/HeatGraph.js +7 -0
- package/dist/components/assistant-ui/elements/Image.d.ts +45 -0
- package/dist/components/assistant-ui/elements/Image.js +29 -0
- package/dist/components/assistant-ui/elements/ImageGallery.d.ts +20 -0
- package/dist/components/assistant-ui/elements/ImageGallery.js +11 -0
- package/dist/components/assistant-ui/elements/ImageGeneration.d.ts +10 -0
- package/dist/components/assistant-ui/elements/ImageGeneration.js +9 -0
- package/dist/components/assistant-ui/elements/InlineCitation.d.ts +4 -0
- package/dist/components/assistant-ui/elements/InlineCitation.js +7 -0
- package/dist/components/assistant-ui/elements/JobProgress.d.ts +24 -0
- package/dist/components/assistant-ui/elements/JobProgress.js +9 -0
- package/dist/components/assistant-ui/elements/LauncherBubble.d.ts +13 -0
- package/dist/components/assistant-ui/elements/LauncherBubble.js +9 -0
- package/dist/components/assistant-ui/elements/LinkPreview.d.ts +13 -0
- package/dist/components/assistant-ui/elements/LinkPreview.js +7 -0
- package/dist/components/assistant-ui/elements/MapAnswer.d.ts +17 -0
- package/dist/components/assistant-ui/elements/MapAnswer.js +8 -0
- package/dist/components/assistant-ui/elements/MarkdownText.d.ts +12 -0
- package/dist/components/assistant-ui/elements/MarkdownText.js +18 -0
- package/dist/components/assistant-ui/elements/MathBlock.d.ts +13 -0
- package/dist/components/assistant-ui/elements/MathBlock.js +7 -0
- package/dist/components/assistant-ui/elements/McpServerPanel.d.ts +17 -0
- package/dist/components/assistant-ui/elements/McpServerPanel.js +11 -0
- package/dist/components/assistant-ui/elements/MemoryChips.d.ts +14 -0
- package/dist/components/assistant-ui/elements/MemoryChips.js +8 -0
- package/dist/components/assistant-ui/elements/MermaidDiagram.d.ts +6 -0
- package/dist/components/assistant-ui/elements/MermaidDiagram.js +13 -0
- package/dist/components/assistant-ui/elements/MermaidSvg.d.ts +7 -0
- package/dist/components/assistant-ui/elements/MermaidZoom.d.ts +7 -0
- package/dist/components/assistant-ui/elements/MermaidZoom.js +11 -0
- package/dist/components/assistant-ui/elements/MessageActions.d.ts +12 -0
- package/dist/components/assistant-ui/elements/MessageActions.js +9 -0
- package/dist/components/assistant-ui/elements/MessageAttachments.d.ts +16 -0
- package/dist/components/assistant-ui/elements/MessageAttachments.js +8 -0
- package/dist/components/assistant-ui/elements/MessageBranches.d.ts +8 -0
- package/dist/components/assistant-ui/elements/MessageBranches.js +8 -0
- package/dist/components/assistant-ui/elements/MessagePair.d.ts +12 -0
- package/dist/components/assistant-ui/elements/MessagePair.js +8 -0
- package/dist/components/assistant-ui/elements/MessageQueue.d.ts +13 -0
- package/dist/components/assistant-ui/elements/MessageQueue.js +8 -0
- package/dist/components/assistant-ui/elements/MessageTiming.d.ts +10 -0
- package/dist/components/assistant-ui/elements/MessageTiming.js +7 -0
- package/dist/components/assistant-ui/elements/MobileComposer.d.ts +15 -0
- package/dist/components/assistant-ui/elements/MobileComposer.js +11 -0
- package/dist/components/assistant-ui/elements/ModelPicker.d.ts +16 -0
- package/dist/components/assistant-ui/elements/ModelPicker.js +13 -0
- package/dist/components/assistant-ui/elements/ModelSelector.d.ts +9 -0
- package/dist/components/assistant-ui/elements/ModelSelector.js +28 -0
- package/dist/components/assistant-ui/elements/ModelSelectorContent.d.ts +6 -0
- package/dist/components/assistant-ui/elements/ModelSelectorContent.js +24 -0
- package/dist/components/assistant-ui/elements/ModelSelectorEffort.d.ts +5 -0
- package/dist/components/assistant-ui/elements/ModelSelectorEffort.js +8 -0
- package/dist/components/assistant-ui/elements/ModelSelectorEmpty.d.ts +3 -0
- package/dist/components/assistant-ui/elements/ModelSelectorEmpty.js +15 -0
- package/dist/components/assistant-ui/elements/ModelSelectorFocusAnchor.d.ts +2 -0
- package/dist/components/assistant-ui/elements/ModelSelectorFocusAnchor.js +15 -0
- package/dist/components/assistant-ui/elements/ModelSelectorGroup.d.ts +3 -0
- package/dist/components/assistant-ui/elements/ModelSelectorGroup.js +15 -0
- package/dist/components/assistant-ui/elements/ModelSelectorItem.d.ts +7 -0
- package/dist/components/assistant-ui/elements/ModelSelectorItem.js +17 -0
- package/dist/components/assistant-ui/elements/ModelSelectorList.d.ts +3 -0
- package/dist/components/assistant-ui/elements/ModelSelectorList.js +19 -0
- package/dist/components/assistant-ui/elements/ModelSelectorRoot.d.ts +16 -0
- package/dist/components/assistant-ui/elements/ModelSelectorRoot.js +11 -0
- package/dist/components/assistant-ui/elements/ModelSelectorSearch.d.ts +3 -0
- package/dist/components/assistant-ui/elements/ModelSelectorSearch.js +15 -0
- package/dist/components/assistant-ui/elements/ModelSelectorSeparator.d.ts +3 -0
- package/dist/components/assistant-ui/elements/ModelSelectorSeparator.js +15 -0
- package/dist/components/assistant-ui/elements/ModelSelectorTrigger.d.ts +6 -0
- package/dist/components/assistant-ui/elements/ModelSelectorTrigger.js +13 -0
- package/dist/components/assistant-ui/elements/ModelSelectorValue.d.ts +6 -0
- package/dist/components/assistant-ui/elements/ModelSelectorValue.js +8 -0
- package/dist/components/assistant-ui/elements/NumberRoll.d.ts +13 -0
- package/dist/components/assistant-ui/elements/NumberRoll.js +8 -0
- package/dist/components/assistant-ui/elements/NumberRollDigit.d.ts +8 -0
- package/dist/components/assistant-ui/elements/NumberRollPart.d.ts +9 -0
- package/dist/components/assistant-ui/elements/NumberTicker.d.ts +8 -0
- package/dist/components/assistant-ui/elements/NumberTicker.js +7 -0
- package/dist/components/assistant-ui/elements/Onboarding.d.ts +15 -0
- package/dist/components/assistant-ui/elements/Onboarding.js +8 -0
- package/dist/components/assistant-ui/elements/OpenAILogo.d.ts +3 -0
- package/dist/components/assistant-ui/elements/OpenAILogo.js +6 -0
- package/dist/components/assistant-ui/elements/OptionList.d.ts +15 -0
- package/dist/components/assistant-ui/elements/OptionList.js +11 -0
- package/dist/components/assistant-ui/elements/OptionText.d.ts +8 -0
- package/dist/components/assistant-ui/elements/OptionText.js +7 -0
- package/dist/components/assistant-ui/elements/PermissionGrant.d.ts +12 -0
- package/dist/components/assistant-ui/elements/PermissionGrant.js +9 -0
- package/dist/components/assistant-ui/elements/PromptLibrary.d.ts +18 -0
- package/dist/components/assistant-ui/elements/PromptLibrary.js +11 -0
- package/dist/components/assistant-ui/elements/QuestionFlow.d.ts +11 -0
- package/dist/components/assistant-ui/elements/QuestionFlow.js +12 -0
- package/dist/components/assistant-ui/elements/QuotaBanner.d.ts +12 -0
- package/dist/components/assistant-ui/elements/QuotaBanner.js +9 -0
- package/dist/components/assistant-ui/elements/QuoteReply.d.ts +18 -0
- package/dist/components/assistant-ui/elements/QuoteReply.js +8 -0
- package/dist/components/assistant-ui/elements/ReadAloud.d.ts +14 -0
- package/dist/components/assistant-ui/elements/ReadAloud.js +9 -0
- package/dist/components/assistant-ui/elements/ReasoningContent.d.ts +4 -0
- package/dist/components/assistant-ui/elements/ReasoningContent.js +10 -0
- package/dist/components/assistant-ui/elements/ReasoningEffort.d.ts +15 -0
- package/dist/components/assistant-ui/elements/ReasoningEffort.js +9 -0
- package/dist/components/assistant-ui/elements/ReasoningFade.d.ts +7 -0
- package/dist/components/assistant-ui/elements/ReasoningFade.js +7 -0
- package/dist/components/assistant-ui/elements/ReasoningPanel.d.ts +15 -0
- package/dist/components/assistant-ui/elements/ReasoningPanel.js +11 -0
- package/dist/components/assistant-ui/elements/ReasoningRoot.d.ts +25 -0
- package/dist/components/assistant-ui/elements/ReasoningRoot.js +10 -0
- package/dist/components/assistant-ui/elements/ReasoningText.d.ts +5 -0
- package/dist/components/assistant-ui/elements/ReasoningText.js +8 -0
- package/dist/components/assistant-ui/elements/ReasoningTrigger.d.ts +9 -0
- package/dist/components/assistant-ui/elements/ReasoningTrigger.js +8 -0
- package/dist/components/assistant-ui/elements/RecommendationCard.d.ts +15 -0
- package/dist/components/assistant-ui/elements/RecommendationCard.js +9 -0
- package/dist/components/assistant-ui/elements/RegenerateMenu.d.ts +16 -0
- package/dist/components/assistant-ui/elements/RegenerateMenu.js +12 -0
- package/dist/components/assistant-ui/elements/ResearchReport.d.ts +17 -0
- package/dist/components/assistant-ui/elements/ResearchReport.js +7 -0
- package/dist/components/assistant-ui/elements/RetrievalChunks.d.ts +17 -0
- package/dist/components/assistant-ui/elements/RetrievalChunks.js +9 -0
- package/dist/components/assistant-ui/elements/ReviewableDiff.d.ts +19 -0
- package/dist/components/assistant-ui/elements/ReviewableDiff.js +8 -0
- package/dist/components/assistant-ui/elements/RunActivity.d.ts +23 -0
- package/dist/components/assistant-ui/elements/RunActivity.js +8 -0
- package/dist/components/assistant-ui/elements/ScheduleCard.d.ts +17 -0
- package/dist/components/assistant-ui/elements/ScheduleCard.js +8 -0
- package/dist/components/assistant-ui/elements/ScoreBreakdown.d.ts +17 -0
- package/dist/components/assistant-ui/elements/ScoreBreakdown.js +9 -0
- package/dist/components/assistant-ui/elements/ScrollAnchor.d.ts +13 -0
- package/dist/components/assistant-ui/elements/ScrollAnchor.js +7 -0
- package/dist/components/assistant-ui/elements/SettingsPanel.d.ts +21 -0
- package/dist/components/assistant-ui/elements/SettingsPanel.js +11 -0
- package/dist/components/assistant-ui/elements/ShareMeter.d.ts +10 -0
- package/dist/components/assistant-ui/elements/ShareMeter.js +6 -0
- package/dist/components/assistant-ui/elements/SharedConversation.d.ts +13 -0
- package/dist/components/assistant-ui/elements/SharedConversation.js +8 -0
- package/dist/components/assistant-ui/elements/ShikiHighlighter.d.ts +24 -0
- package/dist/components/assistant-ui/elements/ShikiHighlighter.js +7 -0
- package/dist/components/assistant-ui/elements/ShimmerLabel.d.ts +6 -0
- package/dist/components/assistant-ui/elements/ShimmerLabel.js +7 -0
- package/dist/components/assistant-ui/elements/SourceGlyph.d.ts +6 -0
- package/dist/components/assistant-ui/elements/SourceGlyph.js +6 -0
- package/dist/components/assistant-ui/elements/Sources.d.ts +18 -0
- package/dist/components/assistant-ui/elements/Sources.js +9 -0
- package/dist/components/assistant-ui/elements/SpeakerIdentity.d.ts +15 -0
- package/dist/components/assistant-ui/elements/SpeakerIdentity.js +7 -0
- package/dist/components/assistant-ui/elements/SpecSheet.d.ts +15 -0
- package/dist/components/assistant-ui/elements/SpecSheet.js +7 -0
- package/dist/components/assistant-ui/elements/StoppedRun.d.ts +10 -0
- package/dist/components/assistant-ui/elements/StoppedRun.js +8 -0
- package/dist/components/assistant-ui/elements/StreamingText.d.ts +13 -0
- package/dist/components/assistant-ui/elements/StreamingText.js +7 -0
- package/dist/components/assistant-ui/elements/Sub.d.ts +2 -0
- package/dist/components/assistant-ui/elements/Sub.js +6 -0
- package/dist/components/assistant-ui/elements/SubagentList.d.ts +15 -0
- package/dist/components/assistant-ui/elements/SubagentList.js +8 -0
- package/dist/components/assistant-ui/elements/Suggestions.d.ts +10 -0
- package/dist/components/assistant-ui/elements/Suggestions.js +8 -0
- package/dist/components/assistant-ui/elements/Sup.d.ts +2 -0
- package/dist/components/assistant-ui/elements/Sup.js +6 -0
- package/dist/components/assistant-ui/elements/SwapLabel.d.ts +7 -0
- package/dist/components/assistant-ui/elements/SwapLabel.js +8 -0
- package/dist/components/assistant-ui/elements/SyntaxHighlighter.d.ts +3 -0
- package/dist/components/assistant-ui/elements/SyntaxHighlighter.js +6 -0
- package/dist/components/assistant-ui/elements/TaskCard.d.ts +16 -0
- package/dist/components/assistant-ui/elements/TaskCard.js +9 -0
- package/dist/components/assistant-ui/elements/TaskStateIcon.d.ts +7 -0
- package/dist/components/assistant-ui/elements/TaskStateIcon.js +7 -0
- package/dist/components/assistant-ui/elements/TerminalAnsiFragment.d.ts +7 -0
- package/dist/components/assistant-ui/elements/TerminalBlock.d.ts +17 -0
- package/dist/components/assistant-ui/elements/TerminalBlock.js +9 -0
- package/dist/components/assistant-ui/elements/ThinkingIndicator.d.ts +8 -0
- package/dist/components/assistant-ui/elements/ThinkingIndicator.js +8 -0
- package/dist/components/assistant-ui/elements/ThreadList.d.ts +17 -0
- package/dist/components/assistant-ui/elements/ThreadList.js +8 -0
- package/dist/components/assistant-ui/elements/ThreadSearch.d.ts +25 -0
- package/dist/components/assistant-ui/elements/ThreadSearch.js +11 -0
- package/dist/components/assistant-ui/elements/Timeline.d.ts +16 -0
- package/dist/components/assistant-ui/elements/Timeline.js +7 -0
- package/dist/components/assistant-ui/elements/TodoList.d.ts +19 -0
- package/dist/components/assistant-ui/elements/TodoList.js +8 -0
- package/dist/components/assistant-ui/elements/ToolCall.d.ts +12 -0
- package/dist/components/assistant-ui/elements/ToolCall.js +11 -0
- package/dist/components/assistant-ui/elements/ToolError.d.ts +14 -0
- package/dist/components/assistant-ui/elements/ToolError.js +8 -0
- package/dist/components/assistant-ui/elements/ToolGroup.d.ts +18 -0
- package/dist/components/assistant-ui/elements/ToolGroup.js +8 -0
- package/dist/components/assistant-ui/elements/ToolTimeline.d.ts +24 -0
- package/dist/components/assistant-ui/elements/ToolTimeline.js +11 -0
- package/dist/components/assistant-ui/elements/TooltipIconButton.d.ts +9 -0
- package/dist/components/assistant-ui/elements/TooltipIconButton.js +12 -0
- package/dist/components/assistant-ui/elements/TraceWaterfall.d.ts +18 -0
- package/dist/components/assistant-ui/elements/TraceWaterfall.js +7 -0
- package/dist/components/assistant-ui/elements/TypingIndicator.d.ts +7 -0
- package/dist/components/assistant-ui/elements/TypingIndicator.js +7 -0
- package/dist/components/assistant-ui/elements/VideoPlayer.d.ts +9 -0
- package/dist/components/assistant-ui/elements/VideoPlayer.js +8 -0
- package/dist/components/assistant-ui/elements/VoiceConversation.d.ts +16 -0
- package/dist/components/assistant-ui/elements/VoiceConversation.js +8 -0
- package/dist/components/assistant-ui/elements/VoiceOrb.d.ts +8 -0
- package/dist/components/assistant-ui/elements/VoiceOrb.js +9 -0
- package/dist/components/assistant-ui/elements/WebPreview.d.ts +17 -0
- package/dist/components/assistant-ui/elements/WebPreview.js +9 -0
- package/dist/components/assistant-ui/elements/WebSearch.d.ts +15 -0
- package/dist/components/assistant-ui/elements/WebSearch.js +8 -0
- package/dist/components/assistant-ui/elements/composer/types.d.ts +27 -0
- package/dist/components/assistant-ui/elements/constants.d.ts +14 -0
- package/dist/components/assistant-ui/elements/types.d.ts +24 -0
- package/dist/components/assistant-ui/eveAskQuestionToolkit.d.ts +8 -0
- package/dist/components/assistant-ui/eveAskQuestionToolkit.js +12 -0
- package/dist/components/assistant-ui/hooks/useAttachmentSrc.d.ts +1 -0
- package/dist/components/assistant-ui/hooks/useContextDisplay.d.ts +2 -0
- package/dist/components/assistant-ui/hooks/useControllableState.d.ts +8 -0
- package/dist/components/assistant-ui/hooks/useConversationMapViewport.d.ts +10 -0
- package/dist/components/assistant-ui/hooks/useConversationProjection.d.ts +3 -0
- package/dist/components/assistant-ui/hooks/useCopyToClipboard.d.ts +9 -0
- package/dist/components/assistant-ui/hooks/useCustomServersSection.d.ts +11 -0
- package/dist/components/assistant-ui/hooks/useFitInComposer.d.ts +9 -0
- package/dist/components/assistant-ui/hooks/useIsomorphicLayoutEffect.d.ts +2 -0
- package/dist/components/assistant-ui/hooks/useMediaDuration.d.ts +7 -0
- package/dist/components/assistant-ui/hooks/useModalSize.d.ts +13 -0
- package/dist/components/assistant-ui/hooks/useModelSelectorContext.d.ts +2 -0
- package/dist/components/assistant-ui/hooks/useModelSelectorEfforts.d.ts +8 -0
- package/dist/components/assistant-ui/hooks/usePrefersReducedMotion.d.ts +1 -0
- package/dist/components/assistant-ui/hooks/useReceiptFocus.d.ts +8 -0
- package/dist/components/assistant-ui/hooks/useResolvedPortalContainer.d.ts +6 -0
- package/dist/components/assistant-ui/hooks/useServerActionFocus.d.ts +7 -0
- package/dist/components/assistant-ui/hooks/useServerAnnouncement.d.ts +1 -0
- package/dist/components/assistant-ui/hooks/useStartOfToday.d.ts +1 -0
- package/dist/components/assistant-ui/hooks/useTaskElapsed.d.ts +2 -0
- package/dist/components/assistant-ui/hooks/useTaskSummary.d.ts +2 -0
- package/dist/components/assistant-ui/hooks/useThreadListGroups.d.ts +2 -0
- package/dist/components/assistant-ui/hooks/useVoiceTranscript.d.ts +2 -0
- package/dist/components/assistant-ui/index.d.ts +363 -0
- package/dist/components/assistant-ui/index.js +865 -0
- package/dist/components/assistant-ui/native/AgentStatus.d.ts +6 -0
- package/dist/components/assistant-ui/native/AgentStatus.js +10 -0
- package/dist/components/assistant-ui/native/AssistantModal.d.ts +2 -0
- package/dist/components/assistant-ui/native/AssistantModal.js +41 -0
- package/dist/components/assistant-ui/native/AssistantSidebar.d.ts +3 -0
- package/dist/components/assistant-ui/native/AssistantSidebar.js +40 -0
- package/dist/components/assistant-ui/native/AttachmentPreview.d.ts +4 -0
- package/dist/components/assistant-ui/native/AttachmentPreview.js +19 -0
- package/dist/components/assistant-ui/native/ComposerQuotePreview.d.ts +19 -0
- package/dist/components/assistant-ui/native/ComposerQuotePreview.js +14 -0
- package/dist/components/assistant-ui/native/ComposerTriggerPopover.d.ts +47 -0
- package/dist/components/assistant-ui/native/ComposerTriggerPopover.js +7 -0
- package/dist/components/assistant-ui/native/ContextDisplay.d.ts +15 -0
- package/dist/components/assistant-ui/native/ContextDisplay.js +22 -0
- package/dist/components/assistant-ui/native/ContextDisplayBar.d.ts +3 -0
- package/dist/components/assistant-ui/native/ContextDisplayBar.js +19 -0
- package/dist/components/assistant-ui/native/ContextDisplayRing.d.ts +3 -0
- package/dist/components/assistant-ui/native/ContextDisplayRing.js +19 -0
- package/dist/components/assistant-ui/native/ContextDisplayRoot.d.ts +8 -0
- package/dist/components/assistant-ui/native/ContextDisplayRoot.js +13 -0
- package/dist/components/assistant-ui/native/ContextDisplayRuntimeRoot.d.ts +3 -0
- package/dist/components/assistant-ui/native/ContextDisplayRuntimeRoot.js +12 -0
- package/dist/components/assistant-ui/native/ContextDisplayText.d.ts +3 -0
- package/dist/components/assistant-ui/native/ContextDisplayText.js +19 -0
- package/dist/components/assistant-ui/native/ConversationMapAui.d.ts +7 -0
- package/dist/components/assistant-ui/native/ConversationMapAui.js +12 -0
- package/dist/components/assistant-ui/native/DirectiveText.d.ts +3 -0
- package/dist/components/assistant-ui/native/DirectiveText.js +9 -0
- package/dist/components/assistant-ui/native/FollowupSuggestionsRow.d.ts +2 -0
- package/dist/components/assistant-ui/native/FollowupSuggestionsRow.js +6 -0
- package/dist/components/assistant-ui/native/McpConfigDialog.d.ts +27 -0
- package/dist/components/assistant-ui/native/McpConfigDialog.js +15 -0
- package/dist/components/assistant-ui/native/MermaidDiagram.d.ts +28 -0
- package/dist/components/assistant-ui/native/MermaidDiagram.js +14 -0
- package/dist/components/assistant-ui/native/MessageTiming.d.ts +25 -0
- package/dist/components/assistant-ui/native/MessageTiming.js +10 -0
- package/dist/components/assistant-ui/native/ModelSelector.d.ts +30 -0
- package/dist/components/assistant-ui/native/ModelSelector.js +30 -0
- package/dist/components/assistant-ui/native/QuoteBlock.d.ts +16 -0
- package/dist/components/assistant-ui/native/QuoteBlock.js +12 -0
- package/dist/components/assistant-ui/native/Reasoning.d.ts +30 -0
- package/dist/components/assistant-ui/native/Reasoning.js +27 -0
- package/dist/components/assistant-ui/native/SelectionToolbar.d.ts +19 -0
- package/dist/components/assistant-ui/native/SelectionToolbar.js +10 -0
- package/dist/components/assistant-ui/native/Sources.d.ts +46 -0
- package/dist/components/assistant-ui/native/Sources.js +16 -0
- package/dist/components/assistant-ui/native/SyntaxHighlighter.d.ts +28 -0
- package/dist/components/assistant-ui/native/SyntaxHighlighter.js +8 -0
- package/dist/components/assistant-ui/native/TaskCard.d.ts +11 -0
- package/dist/components/assistant-ui/native/TaskCard.js +21 -0
- package/dist/components/assistant-ui/native/TaskGroup.d.ts +8 -0
- package/dist/components/assistant-ui/native/TaskGroup.js +22 -0
- package/dist/components/assistant-ui/native/TaskTray.d.ts +3 -0
- package/dist/components/assistant-ui/native/TaskTray.js +14 -0
- package/dist/components/assistant-ui/native/Thread.d.ts +34 -0
- package/dist/components/assistant-ui/native/Thread.js +38 -0
- package/dist/components/assistant-ui/native/ThreadList.d.ts +24 -0
- package/dist/components/assistant-ui/native/ThreadList.js +23 -0
- package/dist/components/assistant-ui/native/ThreadListSidebar.d.ts +3 -0
- package/dist/components/assistant-ui/native/ThreadListSidebar.js +19 -0
- package/dist/components/assistant-ui/native/ToolFallbackRoot.d.ts +71 -0
- package/dist/components/assistant-ui/native/ToolFallbackRoot.js +28 -0
- package/dist/components/assistant-ui/native/ToolGroup.d.ts +38 -0
- package/dist/components/assistant-ui/native/ToolGroup.js +14 -0
- package/dist/components/assistant-ui/native/VoiceConnectButton.d.ts +2 -0
- package/dist/components/assistant-ui/native/VoiceConnectButton.js +8 -0
- package/dist/components/assistant-ui/native/VoiceControl.d.ts +2 -0
- package/dist/components/assistant-ui/native/VoiceControl.js +17 -0
- package/dist/components/assistant-ui/native/VoiceConversation.d.ts +3 -0
- package/dist/components/assistant-ui/native/VoiceConversation.js +9 -0
- package/dist/components/assistant-ui/native/VoiceDisconnectButton.d.ts +2 -0
- package/dist/components/assistant-ui/native/VoiceDisconnectButton.js +13 -0
- package/dist/components/assistant-ui/native/VoiceMuteButton.d.ts +2 -0
- package/dist/components/assistant-ui/native/VoiceMuteButton.js +13 -0
- package/dist/components/assistant-ui/native/VoiceOrb.d.ts +7 -0
- package/dist/components/assistant-ui/native/VoiceOrb.js +10 -0
- package/dist/components/assistant-ui/native/VoiceStatusDot.d.ts +2 -0
- package/dist/components/assistant-ui/native/VoiceStatusDot.js +7 -0
- package/dist/components/assistant-ui/native/constants.d.ts +3 -0
- package/dist/components/assistant-ui/native/index.d.ts +92 -0
- package/dist/components/assistant-ui/native/index.js +312 -0
- package/dist/components/assistant-ui/threadList/types.d.ts +11 -0
- package/dist/components/assistant-ui/utils/askQuestion.d.ts +14 -0
- package/dist/components/assistant-ui/utils/contextDisplayContext.d.ts +8 -0
- package/dist/components/assistant-ui/utils/contextUsage.d.ts +16 -0
- package/dist/components/assistant-ui/utils/dataTable/constants.d.ts +2 -0
- package/dist/components/assistant-ui/utils/dataTable/types.d.ts +66 -0
- package/dist/components/assistant-ui/utils/dataTableUtils.d.ts +20 -0
- package/dist/components/assistant-ui/utils/deriveVoiceOrbState.d.ts +3 -0
- package/dist/components/assistant-ui/utils/diffViewer/computeDiff.d.ts +2 -0
- package/dist/components/assistant-ui/utils/diffViewer/constants.d.ts +10 -0
- package/dist/components/assistant-ui/utils/diffViewer/formatUnifiedDiff.d.ts +2 -0
- package/dist/components/assistant-ui/utils/diffViewer/pairLinesForSplit.d.ts +2 -0
- package/dist/components/assistant-ui/utils/diffViewer/parsePatch.d.ts +2 -0
- package/dist/components/assistant-ui/utils/diffViewer/types.d.ts +33 -0
- package/dist/components/assistant-ui/utils/fileUtils.d.ts +10 -0
- package/dist/components/assistant-ui/utils/formatJobElapsed.d.ts +6 -0
- package/dist/components/assistant-ui/utils/formatMediaDuration.d.ts +1 -0
- package/dist/components/assistant-ui/utils/geoMap.d.ts +4 -0
- package/dist/components/assistant-ui/utils/getDotMatrixPattern.d.ts +151 -0
- package/dist/components/assistant-ui/utils/getNumberRollParts.d.ts +6 -0
- package/dist/components/assistant-ui/utils/groupThreads.d.ts +2 -0
- package/dist/components/assistant-ui/utils/href.d.ts +15 -0
- package/dist/components/assistant-ui/utils/imageUtils.d.ts +4 -0
- package/dist/components/assistant-ui/utils/isTaskPart.d.ts +6 -0
- package/dist/components/assistant-ui/utils/mcpConfigState.d.ts +6 -0
- package/dist/components/assistant-ui/utils/modelSelection.d.ts +34 -0
- package/dist/components/assistant-ui/utils/numberRollTypes.d.ts +17 -0
- package/dist/components/assistant-ui/utils/parseTerminalLine.d.ts +17 -0
- package/dist/components/assistant-ui/utils/prepareMermaidSvg.d.ts +1 -0
- package/dist/components/assistant-ui/utils/projectConversation.d.ts +3 -0
- package/dist/components/assistant-ui/utils/range.d.ts +32 -0
- package/dist/components/assistant-ui/utils/readTerminalBackground.d.ts +2 -0
- package/dist/components/assistant-ui/utils/readableTerminalForeground.d.ts +2 -0
- package/dist/components/assistant-ui/utils/reasoningPreviewContext.d.ts +1 -0
- package/dist/components/assistant-ui/utils/stripTerminalControls.d.ts +2 -0
- package/dist/components/assistant-ui/utils/taskSummary/types.d.ts +8 -0
- package/dist/components/assistant-ui/utils/taskSummaryUtils.d.ts +6 -0
- package/dist/components/assistant-ui/utils/taskUtils.d.ts +11 -0
- package/dist/components/assistant-ui/utils/tokens.d.ts +8 -0
- package/dist/components/calendar/Calendar.d.ts +6 -0
- package/dist/components/calendar/getCalendarClassNames.d.ts +3 -0
- package/dist/components/calendar/index.d.ts +1 -0
- package/dist/components/calendar/index.js +10 -0
- package/dist/components/calendar/types.d.ts +9 -0
- package/dist/components/carousel/Carousel.d.ts +9 -0
- package/dist/components/carousel/CarouselContext.d.ts +2 -0
- package/dist/components/carousel/hooks/useCarousel.d.ts +2 -0
- package/dist/components/carousel/index.d.ts +3 -0
- package/dist/components/carousel/index.js +207 -0
- package/dist/components/carousel/types.d.ts +23 -0
- package/dist/components/chart/Chart.d.ts +10 -0
- package/dist/components/chart/ChartContext.d.ts +2 -0
- package/dist/components/chart/ChartStyle.d.ts +3 -0
- package/dist/components/chart/getPayloadConfigFromPayload.d.ts +2 -0
- package/dist/components/chart/hooks/useChart.d.ts +2 -0
- package/dist/components/chart/index.d.ts +3 -0
- package/dist/components/chart/index.js +22 -0
- package/dist/components/chart/types.d.ts +50 -0
- package/dist/components/command/Command.d.ts +21 -0
- package/dist/components/command/index.d.ts +1 -0
- package/dist/components/command/index.js +30 -0
- package/dist/components/input-otp/InputOTP.d.ts +12 -0
- package/dist/components/input-otp/index.d.ts +1 -0
- package/dist/components/input-otp/index.js +303 -0
- package/dist/components/message-scroller/MessageScroller.d.ts +16 -0
- package/dist/components/message-scroller/hooks/useMessageScroller.d.ts +1 -0
- package/dist/components/message-scroller/hooks/useMessageScrollerScrollable.d.ts +1 -0
- package/dist/components/message-scroller/hooks/useMessageScrollerVisibility.d.ts +1 -0
- package/dist/components/message-scroller/index.d.ts +5 -0
- package/dist/components/message-scroller/index.js +600 -0
- package/dist/components/persian-calendar/PersianCalendar.d.ts +6 -0
- package/dist/components/persian-calendar/index.d.ts +1 -0
- package/dist/components/persian-calendar/index.js +36 -0
- package/dist/components/questionnaire/Questionnaire.d.ts +20 -0
- package/dist/components/questionnaire/index.d.ts +2 -0
- package/dist/components/questionnaire/index.js +747 -0
- package/dist/components/resizable/Resizable.d.ts +10 -0
- package/dist/components/resizable/SplitView.d.ts +14 -0
- package/dist/components/resizable/index.d.ts +2 -0
- package/dist/components/resizable/index.js +105 -0
- package/dist/components/sonner/Sonner.d.ts +7 -0
- package/dist/components/sonner/hooks/useSonner.d.ts +1 -0
- package/dist/components/sonner/index.d.ts +2 -0
- package/dist/components/sonner/index.js +1273 -0
- package/dist/density/DensityContext.d.ts +2 -0
- package/dist/density/types.d.ts +4 -0
- package/dist/drag-drop/DragDropContext.d.ts +2 -0
- package/dist/drag-drop/types.d.ts +45 -0
- package/dist/drawer/DrawerContext.d.ts +2 -0
- package/dist/drawer/types.d.ts +7 -0
- package/dist/fonts.css +1 -0
- package/dist/generative-ui.css +1578 -0
- package/dist/hooks/useComboboxAnchor.d.ts +2 -0
- package/dist/hooks/useDensity.d.ts +2 -0
- package/dist/hooks/useDragDrop.d.ts +2 -0
- package/dist/hooks/useDragSource.d.ts +2 -0
- package/dist/hooks/useDrawer.d.ts +2 -0
- package/dist/hooks/useDropTarget.d.ts +2 -0
- package/dist/hooks/useMediaQuery.d.ts +1 -0
- package/dist/hooks/useObjectURL.d.ts +1 -0
- package/dist/hooks/usePortalContainer.d.ts +2 -0
- package/dist/hooks/useSidebar.d.ts +2 -0
- package/dist/hooks/useTheme.d.ts +2 -0
- package/dist/hooks/useToastManager.d.ts +2 -0
- package/dist/index.d.ts +87 -0
- package/dist/index.js +3339 -0
- package/dist/menu/types.d.ts +14 -0
- package/dist/message/MessageContext.d.ts +2 -0
- package/dist/message/types.d.ts +7 -0
- package/dist/options/types.d.ts +5 -0
- package/dist/portal/PortalContext.d.ts +1 -0
- package/dist/portal/types.d.ts +3 -0
- package/dist/sidebar/SidebarContext.d.ts +2 -0
- package/dist/sidebar/types.d.ts +32 -0
- package/dist/theme/ThemeContext.d.ts +2 -0
- package/dist/theme/types.d.ts +8 -0
- package/dist/theme.css +454 -0
- package/dist/toggle-group/ToggleGroupContext.d.ts +2 -0
- package/dist/toggle-group/types.d.ts +5 -0
- package/dist/typeset.css +444 -0
- package/dist/utils/cn.d.ts +2 -0
- package/package.json +1222 -4
package/dist/index.js
ADDED
|
@@ -0,0 +1,3339 @@
|
|
|
1
|
+
import {
|
|
2
|
+
cn2
|
|
3
|
+
} from "./chunk-cp2m7y7v.js";
|
|
4
|
+
import {
|
|
5
|
+
buttonVariants2,
|
|
6
|
+
Button2
|
|
7
|
+
} from "./chunk-73rkr9ct.js";
|
|
8
|
+
import {
|
|
9
|
+
DensityContext,
|
|
10
|
+
useDensity
|
|
11
|
+
} from "./chunk-e6hk39ev.js";
|
|
12
|
+
import {
|
|
13
|
+
PortalContext,
|
|
14
|
+
usePortalContainer2
|
|
15
|
+
} from "./chunk-j89xg1ak.js";
|
|
16
|
+
import {
|
|
17
|
+
DirectionProvider2,
|
|
18
|
+
useDirection2
|
|
19
|
+
} from "./chunk-jpvw9xqy.js";
|
|
20
|
+
import {
|
|
21
|
+
DropdownMenu2,
|
|
22
|
+
DropdownMenuPortal2,
|
|
23
|
+
DropdownMenuTrigger2,
|
|
24
|
+
DropdownMenuContent2,
|
|
25
|
+
DropdownMenuGroup2,
|
|
26
|
+
DropdownMenuLabel2,
|
|
27
|
+
DropdownMenuItem2,
|
|
28
|
+
DropdownMenuSub2,
|
|
29
|
+
DropdownMenuSubTrigger2,
|
|
30
|
+
DropdownMenuSubContent2,
|
|
31
|
+
DropdownMenuCheckboxItem2,
|
|
32
|
+
DropdownMenuRadioGroup2,
|
|
33
|
+
DropdownMenuRadioItem2,
|
|
34
|
+
DropdownMenuSeparator2,
|
|
35
|
+
DropdownMenuShortcut2
|
|
36
|
+
} from "./chunk-mx21wpq0.js";
|
|
37
|
+
import {
|
|
38
|
+
Popover2,
|
|
39
|
+
PopoverTrigger2,
|
|
40
|
+
PopoverContent2,
|
|
41
|
+
PopoverHeader2,
|
|
42
|
+
PopoverTitle2,
|
|
43
|
+
PopoverDescription2
|
|
44
|
+
} from "./chunk-x7z9jzyf.js";
|
|
45
|
+
import {
|
|
46
|
+
Skeleton2
|
|
47
|
+
} from "./chunk-d70rcwk7.js";
|
|
48
|
+
import {
|
|
49
|
+
Input2
|
|
50
|
+
} from "./chunk-59p19t57.js";
|
|
51
|
+
import {
|
|
52
|
+
Label2
|
|
53
|
+
} from "./chunk-jcxxjkqx.js";
|
|
54
|
+
import {
|
|
55
|
+
Separator2
|
|
56
|
+
} from "./chunk-rajgnfbr.js";
|
|
57
|
+
import {
|
|
58
|
+
FieldSet2,
|
|
59
|
+
FieldLegend2,
|
|
60
|
+
FieldGroup2,
|
|
61
|
+
Field2,
|
|
62
|
+
FieldContent2,
|
|
63
|
+
FieldLabel2,
|
|
64
|
+
FieldTitle2,
|
|
65
|
+
FieldDescription2,
|
|
66
|
+
FieldSeparator2,
|
|
67
|
+
FieldError2
|
|
68
|
+
} from "./chunk-6jpz5geq.js";
|
|
69
|
+
import {
|
|
70
|
+
Dialog2,
|
|
71
|
+
DialogTrigger2,
|
|
72
|
+
DialogPortal2,
|
|
73
|
+
DialogClose2,
|
|
74
|
+
DialogOverlay2,
|
|
75
|
+
DialogContent2,
|
|
76
|
+
DialogHeader2,
|
|
77
|
+
DialogFooter2,
|
|
78
|
+
DialogTitle2,
|
|
79
|
+
DialogDescription2
|
|
80
|
+
} from "./chunk-zhnwybhq.js";
|
|
81
|
+
import {
|
|
82
|
+
Slider2
|
|
83
|
+
} from "./chunk-644cnngf.js";
|
|
84
|
+
import {
|
|
85
|
+
Switch2
|
|
86
|
+
} from "./chunk-8ye0k6z7.js";
|
|
87
|
+
import {
|
|
88
|
+
Textarea2
|
|
89
|
+
} from "./chunk-hz9azhzx.js";
|
|
90
|
+
import {
|
|
91
|
+
TooltipProvider2,
|
|
92
|
+
Tooltip2,
|
|
93
|
+
TooltipTrigger2,
|
|
94
|
+
TooltipContent2
|
|
95
|
+
} from "./chunk-czg9p52v.js";
|
|
96
|
+
import {
|
|
97
|
+
RadioGroup2,
|
|
98
|
+
RadioGroupItem2
|
|
99
|
+
} from "./chunk-wndqbss9.js";
|
|
100
|
+
import {
|
|
101
|
+
Card2,
|
|
102
|
+
CardHeader2,
|
|
103
|
+
CardTitle2,
|
|
104
|
+
CardDescription2,
|
|
105
|
+
CardAction2,
|
|
106
|
+
CardContent2,
|
|
107
|
+
CardFooter2
|
|
108
|
+
} from "./chunk-fqekyjkh.js";
|
|
109
|
+
import {
|
|
110
|
+
InputGroup2,
|
|
111
|
+
InputGroupAddon2,
|
|
112
|
+
InputGroupButton2,
|
|
113
|
+
InputGroupText2,
|
|
114
|
+
InputGroupInput2,
|
|
115
|
+
InputGroupTextarea2
|
|
116
|
+
} from "./chunk-1jeg5z55.js";
|
|
117
|
+
import {
|
|
118
|
+
badgeVariants2,
|
|
119
|
+
Badge2
|
|
120
|
+
} from "./chunk-wjx6zf94.js";
|
|
121
|
+
import {
|
|
122
|
+
Empty2,
|
|
123
|
+
EmptyHeader2,
|
|
124
|
+
EmptyMedia2,
|
|
125
|
+
EmptyTitle2,
|
|
126
|
+
EmptyDescription2,
|
|
127
|
+
EmptyContent2
|
|
128
|
+
} from "./chunk-9de1htr5.js";
|
|
129
|
+
import {
|
|
130
|
+
Checkbox2,
|
|
131
|
+
Spinner2
|
|
132
|
+
} from "./chunk-eehfrrdz.js";
|
|
133
|
+
import {
|
|
134
|
+
ThemeContext,
|
|
135
|
+
useTheme2
|
|
136
|
+
} from "./chunk-1j2hz3w9.js";
|
|
137
|
+
import {
|
|
138
|
+
useMediaQuery
|
|
139
|
+
} from "./chunk-k99h6evz.js";
|
|
140
|
+
import {
|
|
141
|
+
toggleVariants2,
|
|
142
|
+
Toggle2,
|
|
143
|
+
ToggleGroup2,
|
|
144
|
+
ToggleGroupItem2
|
|
145
|
+
} from "./chunk-aexby8h3.js";
|
|
146
|
+
import {
|
|
147
|
+
Alert2,
|
|
148
|
+
AlertTitle2,
|
|
149
|
+
AlertDescription2,
|
|
150
|
+
AlertAction2
|
|
151
|
+
} from "./chunk-53q730zs.js";
|
|
152
|
+
import {
|
|
153
|
+
Avatar2,
|
|
154
|
+
AvatarImage2,
|
|
155
|
+
AvatarFallback2,
|
|
156
|
+
AvatarBadge2,
|
|
157
|
+
AvatarGroup2,
|
|
158
|
+
AvatarGroupCount2
|
|
159
|
+
} from "./chunk-gg39sggp.js";
|
|
160
|
+
import {
|
|
161
|
+
Progress2,
|
|
162
|
+
ProgressTrack2,
|
|
163
|
+
ProgressIndicator2,
|
|
164
|
+
ProgressLabel2,
|
|
165
|
+
ProgressValue2
|
|
166
|
+
} from "./chunk-5j39rehg.js";
|
|
167
|
+
import {
|
|
168
|
+
Collapsible2,
|
|
169
|
+
CollapsibleTrigger2,
|
|
170
|
+
CollapsibleContent2
|
|
171
|
+
} from "./chunk-24d68cjp.js";
|
|
172
|
+
import {
|
|
173
|
+
Table2,
|
|
174
|
+
TableHeader2,
|
|
175
|
+
TableBody2,
|
|
176
|
+
TableFooter2,
|
|
177
|
+
TableRow2,
|
|
178
|
+
TableHead2,
|
|
179
|
+
TableCell2,
|
|
180
|
+
TableCaption2
|
|
181
|
+
} from "./chunk-0y0kqaqj.js";
|
|
182
|
+
import {
|
|
183
|
+
Kbd2,
|
|
184
|
+
KbdGroup2
|
|
185
|
+
} from "./chunk-vyve5wf3.js";
|
|
186
|
+
import {
|
|
187
|
+
HoverCard2,
|
|
188
|
+
HoverCardTrigger2,
|
|
189
|
+
HoverCardContent2
|
|
190
|
+
} from "./chunk-m54kq3he.js";
|
|
191
|
+
import {
|
|
192
|
+
Sheet2,
|
|
193
|
+
SheetTrigger2,
|
|
194
|
+
SheetClose2,
|
|
195
|
+
SheetContent2,
|
|
196
|
+
SheetHeader2,
|
|
197
|
+
SheetFooter2,
|
|
198
|
+
SheetTitle2,
|
|
199
|
+
SheetDescription2,
|
|
200
|
+
useSidebar2,
|
|
201
|
+
SidebarProvider2,
|
|
202
|
+
Sidebar2,
|
|
203
|
+
SidebarTrigger2,
|
|
204
|
+
SidebarRail2,
|
|
205
|
+
SidebarInset2,
|
|
206
|
+
SidebarInput2,
|
|
207
|
+
SidebarHeader2,
|
|
208
|
+
SidebarFooter2,
|
|
209
|
+
SidebarSeparator2,
|
|
210
|
+
SidebarContent2,
|
|
211
|
+
SidebarGroup2,
|
|
212
|
+
SidebarGroupLabel2,
|
|
213
|
+
SidebarGroupAction2,
|
|
214
|
+
SidebarGroupContent2,
|
|
215
|
+
SidebarMenu2,
|
|
216
|
+
SidebarMenuItem2,
|
|
217
|
+
SidebarMenuButton2,
|
|
218
|
+
SidebarMenuAction2,
|
|
219
|
+
SidebarMenuBadge2,
|
|
220
|
+
SidebarMenuSkeleton2,
|
|
221
|
+
SidebarMenuSub2,
|
|
222
|
+
SidebarMenuSubItem2,
|
|
223
|
+
SidebarMenuSubButton2
|
|
224
|
+
} from "./chunk-xvs5y4v7.js";
|
|
225
|
+
// src/components/Accordion.tsx
|
|
226
|
+
import { Accordion as AccordionPrimitive } from "@base-ui/react/accordion";
|
|
227
|
+
import { ChevronDownIcon, ChevronUpIcon } from "lucide-react";
|
|
228
|
+
import { jsx, jsxs } from "react/jsx-runtime";
|
|
229
|
+
function Accordion({ density, className, ...props }) {
|
|
230
|
+
return /* @__PURE__ */ jsx(AccordionPrimitive.Root, {
|
|
231
|
+
"data-density": density,
|
|
232
|
+
"data-slot": "accordion",
|
|
233
|
+
className: (state) => cn2("flex w-full flex-col", typeof className === "function" ? className(state) : className),
|
|
234
|
+
...props
|
|
235
|
+
});
|
|
236
|
+
}
|
|
237
|
+
function AccordionItem({ density, className, ...props }) {
|
|
238
|
+
return /* @__PURE__ */ jsx(AccordionPrimitive.Item, {
|
|
239
|
+
"data-density": density,
|
|
240
|
+
"data-slot": "accordion-item",
|
|
241
|
+
className: (state) => cn2("not-last:border-b", typeof className === "function" ? className(state) : className),
|
|
242
|
+
...props
|
|
243
|
+
});
|
|
244
|
+
}
|
|
245
|
+
function AccordionTrigger({ density, className, children, ...props }) {
|
|
246
|
+
return /* @__PURE__ */ jsx(AccordionPrimitive.Header, {
|
|
247
|
+
className: "flex",
|
|
248
|
+
children: /* @__PURE__ */ jsxs(AccordionPrimitive.Trigger, {
|
|
249
|
+
"data-density": density,
|
|
250
|
+
"data-slot": "accordion-trigger",
|
|
251
|
+
className: (state) => cn2("group/accordion-trigger relative flex flex-1 items-start justify-between rounded-sm border border-transparent py-2.5 text-start text-sm font-medium transition-colors outline-none hover:underline focus-visible:border-ring focus-visible:ring-1 focus-visible:ring-ring focus-visible:after:border-ring aria-disabled:pointer-events-none aria-disabled:opacity-50 **:data-[slot=accordion-trigger-icon]:ms-auto **:data-[slot=accordion-trigger-icon]:size-4 **:data-[slot=accordion-trigger-icon]:text-muted-foreground", typeof className === "function" ? className(state) : className),
|
|
252
|
+
...props,
|
|
253
|
+
children: [
|
|
254
|
+
children,
|
|
255
|
+
/* @__PURE__ */ jsx(ChevronDownIcon, {
|
|
256
|
+
"data-slot": "accordion-trigger-icon",
|
|
257
|
+
className: "pointer-events-none shrink-0 group-aria-expanded/accordion-trigger:hidden"
|
|
258
|
+
}),
|
|
259
|
+
/* @__PURE__ */ jsx(ChevronUpIcon, {
|
|
260
|
+
"data-slot": "accordion-trigger-icon",
|
|
261
|
+
className: "pointer-events-none hidden shrink-0 group-aria-expanded/accordion-trigger:inline"
|
|
262
|
+
})
|
|
263
|
+
]
|
|
264
|
+
})
|
|
265
|
+
});
|
|
266
|
+
}
|
|
267
|
+
function AccordionContent({ density, className, children, ...props }) {
|
|
268
|
+
return /* @__PURE__ */ jsx(AccordionPrimitive.Panel, {
|
|
269
|
+
"data-density": density,
|
|
270
|
+
"data-slot": "accordion-content",
|
|
271
|
+
className: (state) => cn2("h-(--accordion-panel-height) overflow-hidden text-sm transition-[height] duration-200 ease-out data-ending-style:h-0 data-starting-style:h-0", typeof className === "function" ? className(state) : className),
|
|
272
|
+
...props,
|
|
273
|
+
children: /* @__PURE__ */ jsx("div", {
|
|
274
|
+
className: "pt-0 pb-2.5 [&_a]:underline [&_a]:underline-offset-3 [&_a]:hover:text-foreground [&_p:not(:last-child)]:mb-4",
|
|
275
|
+
children
|
|
276
|
+
})
|
|
277
|
+
});
|
|
278
|
+
}
|
|
279
|
+
// src/components/Combobox.tsx
|
|
280
|
+
import { useDirection } from "@base-ui/react/direction-provider";
|
|
281
|
+
import { Combobox as ComboboxPrimitive } from "@base-ui/react/combobox";
|
|
282
|
+
import { ChevronDownIcon as ChevronDownIcon2, XIcon, CheckIcon } from "lucide-react";
|
|
283
|
+
import { jsx as jsx2, jsxs as jsxs2 } from "react/jsx-runtime";
|
|
284
|
+
var Combobox = ComboboxPrimitive.Root;
|
|
285
|
+
function ComboboxValue({ ...props }) {
|
|
286
|
+
return /* @__PURE__ */ jsx2(ComboboxPrimitive.Value, {
|
|
287
|
+
...props
|
|
288
|
+
});
|
|
289
|
+
}
|
|
290
|
+
function ComboboxTrigger({ density, className, children, ...props }) {
|
|
291
|
+
return /* @__PURE__ */ jsxs2(ComboboxPrimitive.Trigger, {
|
|
292
|
+
"data-density": density,
|
|
293
|
+
"data-slot": "combobox-trigger",
|
|
294
|
+
className: (state) => cn2("[&_svg:not([class*='size-'])]:size-4", typeof className === "function" ? className(state) : className),
|
|
295
|
+
...props,
|
|
296
|
+
children: [
|
|
297
|
+
children,
|
|
298
|
+
/* @__PURE__ */ jsx2(ChevronDownIcon2, {
|
|
299
|
+
className: "pointer-events-none size-4 text-muted-foreground"
|
|
300
|
+
})
|
|
301
|
+
]
|
|
302
|
+
});
|
|
303
|
+
}
|
|
304
|
+
function ComboboxClear({ density, className, ...props }) {
|
|
305
|
+
return /* @__PURE__ */ jsx2(ComboboxPrimitive.Clear, {
|
|
306
|
+
"data-density": density,
|
|
307
|
+
"data-slot": "combobox-clear",
|
|
308
|
+
render: /* @__PURE__ */ jsx2(InputGroupButton2, {
|
|
309
|
+
variant: "ghost",
|
|
310
|
+
size: "icon-xs"
|
|
311
|
+
}),
|
|
312
|
+
className: (state) => cn2(typeof className === "function" ? className(state) : className),
|
|
313
|
+
...props,
|
|
314
|
+
children: /* @__PURE__ */ jsx2(XIcon, {
|
|
315
|
+
className: "pointer-events-none"
|
|
316
|
+
})
|
|
317
|
+
});
|
|
318
|
+
}
|
|
319
|
+
function ComboboxInput({
|
|
320
|
+
density,
|
|
321
|
+
className,
|
|
322
|
+
children,
|
|
323
|
+
disabled = false,
|
|
324
|
+
showTrigger = true,
|
|
325
|
+
showClear = false,
|
|
326
|
+
frameClassName,
|
|
327
|
+
triggerLabel = "Open popup",
|
|
328
|
+
clearLabel = "Clear selection",
|
|
329
|
+
...props
|
|
330
|
+
}) {
|
|
331
|
+
return /* @__PURE__ */ jsxs2(InputGroup2, {
|
|
332
|
+
density,
|
|
333
|
+
className: cn2("w-auto", frameClassName),
|
|
334
|
+
children: [
|
|
335
|
+
/* @__PURE__ */ jsx2(ComboboxPrimitive.Input, {
|
|
336
|
+
disabled,
|
|
337
|
+
className,
|
|
338
|
+
render: /* @__PURE__ */ jsx2(InputGroupInput2, {}),
|
|
339
|
+
...props
|
|
340
|
+
}),
|
|
341
|
+
/* @__PURE__ */ jsxs2(InputGroupAddon2, {
|
|
342
|
+
align: "inline-end",
|
|
343
|
+
children: [
|
|
344
|
+
showTrigger && /* @__PURE__ */ jsx2(InputGroupButton2, {
|
|
345
|
+
size: "icon-xs",
|
|
346
|
+
variant: "ghost",
|
|
347
|
+
render: /* @__PURE__ */ jsx2(ComboboxTrigger, {}),
|
|
348
|
+
"aria-label": triggerLabel,
|
|
349
|
+
"data-density": density,
|
|
350
|
+
"data-slot": "input-group-button",
|
|
351
|
+
className: "group-has-data-[slot=combobox-clear]/input-group:hidden data-pressed:bg-transparent",
|
|
352
|
+
disabled
|
|
353
|
+
}),
|
|
354
|
+
showClear && /* @__PURE__ */ jsx2(ComboboxClear, {
|
|
355
|
+
disabled,
|
|
356
|
+
"aria-label": clearLabel
|
|
357
|
+
})
|
|
358
|
+
]
|
|
359
|
+
}),
|
|
360
|
+
children
|
|
361
|
+
]
|
|
362
|
+
});
|
|
363
|
+
}
|
|
364
|
+
function ComboboxContent({
|
|
365
|
+
density,
|
|
366
|
+
className,
|
|
367
|
+
side = "bottom",
|
|
368
|
+
sideOffset = 6,
|
|
369
|
+
align = "start",
|
|
370
|
+
alignOffset = 0,
|
|
371
|
+
anchor,
|
|
372
|
+
...props
|
|
373
|
+
}) {
|
|
374
|
+
const resolvedDensity = useDensity(density);
|
|
375
|
+
const direction = useDirection();
|
|
376
|
+
const container = usePortalContainer2();
|
|
377
|
+
return /* @__PURE__ */ jsx2(ComboboxPrimitive.Portal, {
|
|
378
|
+
container,
|
|
379
|
+
children: /* @__PURE__ */ jsx2(ComboboxPrimitive.Positioner, {
|
|
380
|
+
side,
|
|
381
|
+
sideOffset,
|
|
382
|
+
align,
|
|
383
|
+
alignOffset,
|
|
384
|
+
anchor,
|
|
385
|
+
className: "isolate ",
|
|
386
|
+
children: /* @__PURE__ */ jsx2(ComboboxPrimitive.Popup, {
|
|
387
|
+
dir: direction,
|
|
388
|
+
"data-density": resolvedDensity,
|
|
389
|
+
"data-slot": "combobox-content",
|
|
390
|
+
"data-chips": !!anchor,
|
|
391
|
+
className: (state) => cn2("group/combobox-content relative max-h-(--available-height) w-(--anchor-width) max-w-(--available-width) min-w-[calc(var(--anchor-width)+--spacing(7))] origin-(--transform-origin) overflow-hidden rounded-md bg-popover text-popover-foreground border border-frame-edge shadow-frame duration-120 data-[chips=true]:min-w-(--anchor-width) *:data-[slot=input-group]:m-1 *:data-[slot=input-group]:mb-0 *:data-[slot=input-group]:h-control *:data-[slot=input-group]:border-input/30 *:data-[slot=input-group]:bg-input/30 *:data-[slot=input-group]:shadow-none data-open:animate-in data-open:fade-in-0 data-closed:animate-out data-closed:fade-out-0 motion-reduce:data-open:animate-none motion-reduce:data-closed:animate-none", typeof className === "function" ? className(state) : className),
|
|
392
|
+
...props
|
|
393
|
+
})
|
|
394
|
+
})
|
|
395
|
+
});
|
|
396
|
+
}
|
|
397
|
+
function ComboboxList({ density, className, ...props }) {
|
|
398
|
+
return /* @__PURE__ */ jsx2(ComboboxPrimitive.List, {
|
|
399
|
+
"data-density": density,
|
|
400
|
+
"data-slot": "combobox-list",
|
|
401
|
+
className: (state) => cn2("no-scrollbar max-h-[min(calc(--spacing(72)---spacing(9)),calc(var(--available-height)---spacing(9)))] scroll-py-1 overflow-y-auto overscroll-contain p-1 data-empty:p-0", typeof className === "function" ? className(state) : className),
|
|
402
|
+
...props
|
|
403
|
+
});
|
|
404
|
+
}
|
|
405
|
+
function ComboboxItem({ density, className, children, ...props }) {
|
|
406
|
+
return /* @__PURE__ */ jsxs2(ComboboxPrimitive.Item, {
|
|
407
|
+
"data-density": density,
|
|
408
|
+
"data-slot": "combobox-item",
|
|
409
|
+
className: (state) => cn2("relative flex w-full cursor-default items-center gap-2 rounded-md py-1 pe-8 ps-1.5 text-sm outline-hidden select-none data-highlighted:bg-accent data-highlighted:text-accent-foreground not-data-[variant=destructive]:data-highlighted:**:text-accent-foreground data-disabled:pointer-events-none data-disabled:opacity-50 [&_svg]:pointer-events-none [&_svg]:shrink-0 [&_svg:not([class*='size-'])]:size-4", typeof className === "function" ? className(state) : className),
|
|
410
|
+
...props,
|
|
411
|
+
children: [
|
|
412
|
+
children,
|
|
413
|
+
/* @__PURE__ */ jsx2(ComboboxPrimitive.ItemIndicator, {
|
|
414
|
+
render: /* @__PURE__ */ jsx2("span", {
|
|
415
|
+
className: "pointer-events-none absolute end-2 flex size-4 items-center justify-center"
|
|
416
|
+
}),
|
|
417
|
+
children: /* @__PURE__ */ jsx2(CheckIcon, {
|
|
418
|
+
className: "pointer-events-none"
|
|
419
|
+
})
|
|
420
|
+
})
|
|
421
|
+
]
|
|
422
|
+
});
|
|
423
|
+
}
|
|
424
|
+
function ComboboxGroup({ density, className, ...props }) {
|
|
425
|
+
return /* @__PURE__ */ jsx2(ComboboxPrimitive.Group, {
|
|
426
|
+
"data-density": density,
|
|
427
|
+
"data-slot": "combobox-group",
|
|
428
|
+
className: (state) => cn2(typeof className === "function" ? className(state) : className),
|
|
429
|
+
...props
|
|
430
|
+
});
|
|
431
|
+
}
|
|
432
|
+
function ComboboxLabel({ density, className, ...props }) {
|
|
433
|
+
return /* @__PURE__ */ jsx2(ComboboxPrimitive.GroupLabel, {
|
|
434
|
+
"data-density": density,
|
|
435
|
+
"data-slot": "combobox-label",
|
|
436
|
+
className: (state) => cn2("px-2 py-1.5 text-xs text-muted-foreground", typeof className === "function" ? className(state) : className),
|
|
437
|
+
...props
|
|
438
|
+
});
|
|
439
|
+
}
|
|
440
|
+
function ComboboxCollection({ ...props }) {
|
|
441
|
+
return /* @__PURE__ */ jsx2(ComboboxPrimitive.Collection, {
|
|
442
|
+
...props
|
|
443
|
+
});
|
|
444
|
+
}
|
|
445
|
+
function ComboboxEmpty({ density, className, ...props }) {
|
|
446
|
+
return /* @__PURE__ */ jsx2(ComboboxPrimitive.Empty, {
|
|
447
|
+
"data-density": density,
|
|
448
|
+
"data-slot": "combobox-empty",
|
|
449
|
+
className: (state) => cn2("flex w-full justify-center py-2 empty:p-0 text-center text-sm text-muted-foreground", typeof className === "function" ? className(state) : className),
|
|
450
|
+
...props
|
|
451
|
+
});
|
|
452
|
+
}
|
|
453
|
+
function ComboboxSeparator({ density, className, ...props }) {
|
|
454
|
+
return /* @__PURE__ */ jsx2(ComboboxPrimitive.Separator, {
|
|
455
|
+
"data-density": density,
|
|
456
|
+
"data-slot": "combobox-separator",
|
|
457
|
+
className: (state) => cn2("-mx-1 my-1 h-px bg-border", typeof className === "function" ? className(state) : className),
|
|
458
|
+
...props
|
|
459
|
+
});
|
|
460
|
+
}
|
|
461
|
+
function ComboboxChips({ density, className, ...props }) {
|
|
462
|
+
return /* @__PURE__ */ jsx2(ComboboxPrimitive.Chips, {
|
|
463
|
+
"data-density": density,
|
|
464
|
+
"data-slot": "combobox-chips",
|
|
465
|
+
className: (state) => cn2("flex min-h-control flex-wrap items-center gap-1 rounded-sm border border-input bg-transparent bg-clip-padding px-control-x py-px text-sm transition-colors focus-within:border-ring focus-within:ring-1 focus-within:ring-ring has-aria-invalid:border-destructive has-aria-invalid:ring-3 has-aria-invalid:ring-destructive has-data-[slot=combobox-chip]:px-1", typeof className === "function" ? className(state) : className),
|
|
466
|
+
...props
|
|
467
|
+
});
|
|
468
|
+
}
|
|
469
|
+
function ComboboxChip({ density, className, children, showRemove = true, ...props }) {
|
|
470
|
+
return /* @__PURE__ */ jsxs2(ComboboxPrimitive.Chip, {
|
|
471
|
+
"data-density": density,
|
|
472
|
+
"data-slot": "combobox-chip",
|
|
473
|
+
className: (state) => cn2("flex h-tag w-fit items-center justify-center gap-1 rounded-sm bg-muted px-1.5 text-xs font-medium whitespace-nowrap text-foreground has-disabled:pointer-events-none has-disabled:cursor-not-allowed has-disabled:opacity-50 has-data-[slot=combobox-chip-remove]:pe-0", typeof className === "function" ? className(state) : className),
|
|
474
|
+
...props,
|
|
475
|
+
children: [
|
|
476
|
+
children,
|
|
477
|
+
showRemove && /* @__PURE__ */ jsx2(ComboboxPrimitive.ChipRemove, {
|
|
478
|
+
render: /* @__PURE__ */ jsx2(Button2, {
|
|
479
|
+
variant: "ghost",
|
|
480
|
+
size: "icon-xs"
|
|
481
|
+
}),
|
|
482
|
+
className: "size-tag -ms-1 opacity-50 hover:opacity-100",
|
|
483
|
+
"data-slot": "combobox-chip-remove",
|
|
484
|
+
"aria-label": "Remove item",
|
|
485
|
+
children: /* @__PURE__ */ jsx2(XIcon, {
|
|
486
|
+
className: "pointer-events-none"
|
|
487
|
+
})
|
|
488
|
+
})
|
|
489
|
+
]
|
|
490
|
+
});
|
|
491
|
+
}
|
|
492
|
+
function ComboboxChipsInput({ density, className, ...props }) {
|
|
493
|
+
return /* @__PURE__ */ jsx2(ComboboxPrimitive.Input, {
|
|
494
|
+
"data-density": density,
|
|
495
|
+
"data-slot": "combobox-chip-input",
|
|
496
|
+
className: (state) => cn2("h-tag min-w-16 flex-1 py-0 text-sm leading-none outline-none", typeof className === "function" ? className(state) : className),
|
|
497
|
+
...props
|
|
498
|
+
});
|
|
499
|
+
}
|
|
500
|
+
// src/components/Tabs.tsx
|
|
501
|
+
import { Tabs as TabsPrimitive } from "@base-ui/react/tabs";
|
|
502
|
+
import { cva } from "class-variance-authority";
|
|
503
|
+
import { jsx as jsx3 } from "react/jsx-runtime";
|
|
504
|
+
function Tabs({ density, className, orientation = "horizontal", ...props }) {
|
|
505
|
+
return /* @__PURE__ */ jsx3(TabsPrimitive.Root, {
|
|
506
|
+
"data-density": density,
|
|
507
|
+
"data-slot": "tabs",
|
|
508
|
+
orientation,
|
|
509
|
+
className: (state) => cn2("group/tabs flex gap-2 data-[orientation=horizontal]:flex-col", typeof className === "function" ? className(state) : className),
|
|
510
|
+
...props
|
|
511
|
+
});
|
|
512
|
+
}
|
|
513
|
+
var tabsListVariants = cva("group/tabs-list inline-flex w-fit items-center justify-center rounded-sm p-px text-muted-foreground group-data-[orientation=horizontal]/tabs:h-control group-data-[orientation=vertical]/tabs:h-fit group-data-[orientation=vertical]/tabs:flex-col data-[variant=line]:rounded-none", {
|
|
514
|
+
variants: {
|
|
515
|
+
variant: {
|
|
516
|
+
default: "bg-muted",
|
|
517
|
+
line: "gap-1 bg-transparent"
|
|
518
|
+
}
|
|
519
|
+
},
|
|
520
|
+
defaultVariants: {
|
|
521
|
+
variant: "default"
|
|
522
|
+
}
|
|
523
|
+
});
|
|
524
|
+
function TabsList({ density, className, variant = "default", ...props }) {
|
|
525
|
+
return /* @__PURE__ */ jsx3(TabsPrimitive.List, {
|
|
526
|
+
"data-density": density,
|
|
527
|
+
"data-slot": "tabs-list",
|
|
528
|
+
"data-variant": variant,
|
|
529
|
+
className: (state) => cn2(tabsListVariants({ variant }), typeof className === "function" ? className(state) : className),
|
|
530
|
+
...props
|
|
531
|
+
});
|
|
532
|
+
}
|
|
533
|
+
function TabsTrigger({ density, className, ...props }) {
|
|
534
|
+
return /* @__PURE__ */ jsx3(TabsPrimitive.Tab, {
|
|
535
|
+
"data-density": density,
|
|
536
|
+
"data-slot": "tabs-trigger",
|
|
537
|
+
className: (state) => cn2("relative inline-flex h-full flex-1 items-center justify-center gap-control-gap rounded-md border border-transparent px-1.5 py-0.5 text-sm font-medium whitespace-nowrap text-foreground/60 transition-colors group-data-[orientation=vertical]/tabs:w-full group-data-[orientation=vertical]/tabs:justify-start hover:text-foreground focus-visible:border-ring focus-visible:ring-1 focus-visible:ring-ring focus-visible:outline-1 focus-visible:outline-ring disabled:pointer-events-none disabled:opacity-50 has-data-[icon=inline-end]:pe-1 has-data-[icon=inline-start]:ps-1 aria-disabled:pointer-events-none aria-disabled:opacity-50 group-data-[variant=default]/tabs-list:data-active:shadow-sm group-data-[variant=line]/tabs-list:data-active:shadow-none [&_svg]:pointer-events-none [&_svg]:shrink-0 [&_svg:not([class*='size-'])]:size-4", "group-data-[variant=line]/tabs-list:bg-transparent group-data-[variant=line]/tabs-list:data-active:bg-transparent", "data-active:bg-background data-active:text-foreground", "after:absolute after:bg-foreground after:opacity-0 after:transition-opacity group-data-[orientation=horizontal]/tabs:after:inset-x-0 group-data-[orientation=horizontal]/tabs:after:bottom-[-5px] group-data-[orientation=horizontal]/tabs:after:h-0.5 group-data-[orientation=vertical]/tabs:after:inset-y-0 group-data-[orientation=vertical]/tabs:after:-end-1 group-data-[orientation=vertical]/tabs:after:w-0.5 group-data-[variant=line]/tabs-list:data-active:after:opacity-100", typeof className === "function" ? className(state) : className),
|
|
538
|
+
...props
|
|
539
|
+
});
|
|
540
|
+
}
|
|
541
|
+
function TabsContent({ density, className, ...props }) {
|
|
542
|
+
return /* @__PURE__ */ jsx3(TabsPrimitive.Panel, {
|
|
543
|
+
"data-density": density,
|
|
544
|
+
"data-slot": "tabs-content",
|
|
545
|
+
className: (state) => cn2("flex-1 text-sm outline-none", typeof className === "function" ? className(state) : className),
|
|
546
|
+
...props
|
|
547
|
+
});
|
|
548
|
+
}
|
|
549
|
+
// src/components/DragDropProvider.tsx
|
|
550
|
+
import { useCallback, useEffect, useRef, useState } from "react";
|
|
551
|
+
import { flushSync } from "react-dom";
|
|
552
|
+
|
|
553
|
+
// src/drag-drop/DragDropContext.ts
|
|
554
|
+
import { createContext } from "react";
|
|
555
|
+
var DragDropContext = createContext(null);
|
|
556
|
+
|
|
557
|
+
// src/components/DragDropPreview.tsx
|
|
558
|
+
import { jsx as jsx4, jsxs as jsxs3 } from "react/jsx-runtime";
|
|
559
|
+
function DragDropPreview({ labels, maxItems = 5 }) {
|
|
560
|
+
const limit = Math.max(1, Math.floor(maxItems));
|
|
561
|
+
return /* @__PURE__ */ jsxs3("div", {
|
|
562
|
+
"data-slot": "drag-drop-preview",
|
|
563
|
+
className: "flex w-max max-w-64 flex-col items-start gap-1",
|
|
564
|
+
children: [
|
|
565
|
+
labels.slice(0, limit).map((label, index) => /* @__PURE__ */ jsx4(Badge2, {
|
|
566
|
+
variant: "secondary",
|
|
567
|
+
density: "compact",
|
|
568
|
+
children: /* @__PURE__ */ jsx4("span", {
|
|
569
|
+
className: "max-w-60 truncate",
|
|
570
|
+
children: label
|
|
571
|
+
})
|
|
572
|
+
}, `${index}:${label}`)),
|
|
573
|
+
labels.length > limit && /* @__PURE__ */ jsxs3(Badge2, {
|
|
574
|
+
variant: "secondary",
|
|
575
|
+
density: "compact",
|
|
576
|
+
children: [
|
|
577
|
+
"+",
|
|
578
|
+
labels.length - limit,
|
|
579
|
+
" more…"
|
|
580
|
+
]
|
|
581
|
+
})
|
|
582
|
+
]
|
|
583
|
+
});
|
|
584
|
+
}
|
|
585
|
+
|
|
586
|
+
// src/components/DragDropProvider.tsx
|
|
587
|
+
import { jsx as jsx5, jsxs as jsxs4 } from "react/jsx-runtime";
|
|
588
|
+
function DragDropProvider({ children, maxPreviewItems = 5 }) {
|
|
589
|
+
const [active, setActive] = useState(null);
|
|
590
|
+
const [over, setOver] = useState(null);
|
|
591
|
+
const preview = useRef(null);
|
|
592
|
+
const end = useCallback(() => {
|
|
593
|
+
setActive(null);
|
|
594
|
+
setOver(null);
|
|
595
|
+
}, []);
|
|
596
|
+
useEffect(() => {
|
|
597
|
+
window.addEventListener("dragend", end);
|
|
598
|
+
window.addEventListener("drop", end);
|
|
599
|
+
return () => {
|
|
600
|
+
window.removeEventListener("dragend", end);
|
|
601
|
+
window.removeEventListener("drop", end);
|
|
602
|
+
};
|
|
603
|
+
}, [end]);
|
|
604
|
+
const start = (event, item, effect) => {
|
|
605
|
+
event.dataTransfer.effectAllowed = effect;
|
|
606
|
+
event.dataTransfer.setData(item.type, JSON.stringify(item.data) ?? "null");
|
|
607
|
+
event.dataTransfer.setData("text/plain", item.labels.join(`
|
|
608
|
+
`));
|
|
609
|
+
flushSync(() => {
|
|
610
|
+
setActive(item);
|
|
611
|
+
setOver(null);
|
|
612
|
+
});
|
|
613
|
+
if (preview.current)
|
|
614
|
+
event.dataTransfer.setDragImage(preview.current, 12, 12);
|
|
615
|
+
};
|
|
616
|
+
const enter = (next) => setOver((current) => current?.id === next.id && current.type === next.type && current.isAlt === next.isAlt && current.effect === next.effect ? current : next);
|
|
617
|
+
const leave = (id) => setOver((current) => current?.id === id ? null : current);
|
|
618
|
+
return /* @__PURE__ */ jsxs4(DragDropContext, {
|
|
619
|
+
value: { active, over, start, end, enter, leave },
|
|
620
|
+
children: [
|
|
621
|
+
children,
|
|
622
|
+
/* @__PURE__ */ jsx5("div", {
|
|
623
|
+
ref: preview,
|
|
624
|
+
"aria-hidden": "true",
|
|
625
|
+
className: "pointer-events-none fixed -left-[10000px] top-0 w-max",
|
|
626
|
+
children: /* @__PURE__ */ jsx5(DragDropPreview, {
|
|
627
|
+
labels: active?.labels ?? [],
|
|
628
|
+
maxItems: maxPreviewItems
|
|
629
|
+
})
|
|
630
|
+
}),
|
|
631
|
+
/* @__PURE__ */ jsx5("span", {
|
|
632
|
+
role: "status",
|
|
633
|
+
"aria-label": "Drag status",
|
|
634
|
+
className: "sr-only",
|
|
635
|
+
children: active && `${active.labels.length} ${active.labels.length === 1 ? "item" : "items"} being dragged`
|
|
636
|
+
})
|
|
637
|
+
]
|
|
638
|
+
});
|
|
639
|
+
}
|
|
640
|
+
// src/components/DragSource.tsx
|
|
641
|
+
import { useRender } from "@base-ui/react/use-render";
|
|
642
|
+
import { mergeProps } from "@base-ui/react/merge-props";
|
|
643
|
+
|
|
644
|
+
// src/hooks/useDragSource.ts
|
|
645
|
+
import { useId } from "react";
|
|
646
|
+
|
|
647
|
+
// src/hooks/useDragDrop.ts
|
|
648
|
+
import { useContext } from "react";
|
|
649
|
+
function useDragDrop() {
|
|
650
|
+
const context = useContext(DragDropContext);
|
|
651
|
+
if (!context)
|
|
652
|
+
throw new Error("Drag and drop requires DragDropProvider.");
|
|
653
|
+
return context;
|
|
654
|
+
}
|
|
655
|
+
|
|
656
|
+
// src/hooks/useDragSource.ts
|
|
657
|
+
function useDragSource({
|
|
658
|
+
type,
|
|
659
|
+
data,
|
|
660
|
+
labels,
|
|
661
|
+
effectAllowed = "copyMove",
|
|
662
|
+
disabled = false
|
|
663
|
+
}) {
|
|
664
|
+
const { active, start, end } = useDragDrop();
|
|
665
|
+
const sourceId = useId();
|
|
666
|
+
return {
|
|
667
|
+
isDragging: active?.sourceId === sourceId,
|
|
668
|
+
props: {
|
|
669
|
+
draggable: !disabled,
|
|
670
|
+
onDragStart: (event) => {
|
|
671
|
+
if (event.defaultPrevented)
|
|
672
|
+
return;
|
|
673
|
+
event.stopPropagation();
|
|
674
|
+
if (disabled || labels.length === 0) {
|
|
675
|
+
event.preventDefault();
|
|
676
|
+
return;
|
|
677
|
+
}
|
|
678
|
+
start(event, { sourceId, type, data, labels }, effectAllowed);
|
|
679
|
+
},
|
|
680
|
+
onDragEnd: end
|
|
681
|
+
}
|
|
682
|
+
};
|
|
683
|
+
}
|
|
684
|
+
|
|
685
|
+
// src/components/DragSource.tsx
|
|
686
|
+
function DragSource({
|
|
687
|
+
type,
|
|
688
|
+
data,
|
|
689
|
+
labels,
|
|
690
|
+
effectAllowed,
|
|
691
|
+
disabled,
|
|
692
|
+
render,
|
|
693
|
+
...props
|
|
694
|
+
}) {
|
|
695
|
+
const source = useDragSource({ type, data, labels, effectAllowed, disabled });
|
|
696
|
+
return useRender({
|
|
697
|
+
defaultTagName: "div",
|
|
698
|
+
render,
|
|
699
|
+
props: mergeProps(props, source.props),
|
|
700
|
+
state: { slot: "drag-source", dragging: source.isDragging }
|
|
701
|
+
});
|
|
702
|
+
}
|
|
703
|
+
// src/components/DropTarget.tsx
|
|
704
|
+
import { useRender as useRender2 } from "@base-ui/react/use-render";
|
|
705
|
+
import { mergeProps as mergeProps2 } from "@base-ui/react/merge-props";
|
|
706
|
+
|
|
707
|
+
// src/hooks/useDropTarget.ts
|
|
708
|
+
import { useId as useId2, useState as useState2 } from "react";
|
|
709
|
+
function useDropTarget({ accept, canDrop, getDropEffect, onDrop }) {
|
|
710
|
+
const { active, over, enter, leave, end } = useDragDrop();
|
|
711
|
+
const id = useId2();
|
|
712
|
+
const [feedback, setFeedback] = useState2(null);
|
|
713
|
+
return {
|
|
714
|
+
feedback,
|
|
715
|
+
type: over?.id === id ? over.type : null,
|
|
716
|
+
isOver: over?.id === id,
|
|
717
|
+
isAlt: over?.id === id && over.isAlt,
|
|
718
|
+
effect: over?.id === id ? over.effect : "none",
|
|
719
|
+
props: {
|
|
720
|
+
onDragOver: (event) => {
|
|
721
|
+
const type = accept.find((type) => event.dataTransfer.types.includes(type));
|
|
722
|
+
if (!type)
|
|
723
|
+
return;
|
|
724
|
+
event.stopPropagation();
|
|
725
|
+
const item = active?.type === type ? active : null;
|
|
726
|
+
const effect = item && canDrop && !canDrop(item) ? "none" : getDropEffect?.(item, event) ?? "move";
|
|
727
|
+
event.dataTransfer.dropEffect = effect;
|
|
728
|
+
if (effect === "none") {
|
|
729
|
+
leave(id);
|
|
730
|
+
return;
|
|
731
|
+
}
|
|
732
|
+
event.preventDefault();
|
|
733
|
+
setFeedback((current) => current?.type === type && current.isAlt === event.altKey && current.effect === effect ? current : { type, isAlt: event.altKey, effect });
|
|
734
|
+
enter({ id, type, isAlt: event.altKey, effect });
|
|
735
|
+
},
|
|
736
|
+
onDragLeave: (event) => {
|
|
737
|
+
if (!(event.relatedTarget instanceof Node) || !event.currentTarget.contains(event.relatedTarget))
|
|
738
|
+
leave(id);
|
|
739
|
+
},
|
|
740
|
+
onDrop: (event) => {
|
|
741
|
+
const type = accept.find((type) => event.dataTransfer.types.includes(type));
|
|
742
|
+
if (!type)
|
|
743
|
+
return;
|
|
744
|
+
event.stopPropagation();
|
|
745
|
+
event.preventDefault();
|
|
746
|
+
const raw = event.dataTransfer.getData(type);
|
|
747
|
+
let data;
|
|
748
|
+
try {
|
|
749
|
+
data = JSON.parse(raw);
|
|
750
|
+
} catch {
|
|
751
|
+
data = raw;
|
|
752
|
+
}
|
|
753
|
+
const item = { type, data, labels: active?.labels ?? [] };
|
|
754
|
+
leave(id);
|
|
755
|
+
end();
|
|
756
|
+
if (!canDrop || canDrop(item))
|
|
757
|
+
onDrop(item, event);
|
|
758
|
+
}
|
|
759
|
+
}
|
|
760
|
+
};
|
|
761
|
+
}
|
|
762
|
+
|
|
763
|
+
// src/components/DropTarget.tsx
|
|
764
|
+
function DropTarget({
|
|
765
|
+
accept,
|
|
766
|
+
canDrop,
|
|
767
|
+
getDropEffect,
|
|
768
|
+
onDrop,
|
|
769
|
+
render,
|
|
770
|
+
...props
|
|
771
|
+
}) {
|
|
772
|
+
const target = useDropTarget({ accept, canDrop, getDropEffect, onDrop });
|
|
773
|
+
return useRender2({
|
|
774
|
+
defaultTagName: "div",
|
|
775
|
+
render,
|
|
776
|
+
props: mergeProps2(props, target.props),
|
|
777
|
+
state: { slot: "drop-target", over: target.isOver, effect: target.effect }
|
|
778
|
+
});
|
|
779
|
+
}
|
|
780
|
+
// src/components/EmptyState.tsx
|
|
781
|
+
import { jsx as jsx6, jsxs as jsxs5 } from "react/jsx-runtime";
|
|
782
|
+
function EmptyState({ title, description, children }) {
|
|
783
|
+
return /* @__PURE__ */ jsxs5(Empty2, {
|
|
784
|
+
children: [
|
|
785
|
+
/* @__PURE__ */ jsxs5(EmptyHeader2, {
|
|
786
|
+
children: [
|
|
787
|
+
/* @__PURE__ */ jsx6(EmptyTitle2, {
|
|
788
|
+
children: title
|
|
789
|
+
}),
|
|
790
|
+
/* @__PURE__ */ jsx6(EmptyDescription2, {
|
|
791
|
+
children: description
|
|
792
|
+
})
|
|
793
|
+
]
|
|
794
|
+
}),
|
|
795
|
+
children && /* @__PURE__ */ jsx6(EmptyContent2, {
|
|
796
|
+
children
|
|
797
|
+
})
|
|
798
|
+
]
|
|
799
|
+
});
|
|
800
|
+
}
|
|
801
|
+
// src/components/PageMessage.tsx
|
|
802
|
+
import { useId as useId3 } from "react";
|
|
803
|
+
import { jsx as jsx7, jsxs as jsxs6 } from "react/jsx-runtime";
|
|
804
|
+
function PageMessage({ title, description, children }) {
|
|
805
|
+
const titleId = useId3();
|
|
806
|
+
const descriptionId = useId3();
|
|
807
|
+
return /* @__PURE__ */ jsx7("main", {
|
|
808
|
+
"aria-labelledby": titleId,
|
|
809
|
+
"aria-describedby": description == null ? undefined : descriptionId,
|
|
810
|
+
className: "grid min-h-dvh w-full place-items-center bg-background text-foreground",
|
|
811
|
+
children: /* @__PURE__ */ jsxs6(Empty2, {
|
|
812
|
+
children: [
|
|
813
|
+
/* @__PURE__ */ jsxs6(EmptyHeader2, {
|
|
814
|
+
children: [
|
|
815
|
+
/* @__PURE__ */ jsx7(EmptyTitle2, {
|
|
816
|
+
children: /* @__PURE__ */ jsx7("h1", {
|
|
817
|
+
id: titleId,
|
|
818
|
+
children: title
|
|
819
|
+
})
|
|
820
|
+
}),
|
|
821
|
+
description != null && /* @__PURE__ */ jsx7(EmptyDescription2, {
|
|
822
|
+
id: descriptionId,
|
|
823
|
+
children: description
|
|
824
|
+
})
|
|
825
|
+
]
|
|
826
|
+
}),
|
|
827
|
+
children != null && /* @__PURE__ */ jsx7(EmptyContent2, {
|
|
828
|
+
children
|
|
829
|
+
})
|
|
830
|
+
]
|
|
831
|
+
})
|
|
832
|
+
});
|
|
833
|
+
}
|
|
834
|
+
// src/components/JsonViewer.tsx
|
|
835
|
+
import { jsx as jsx8 } from "react/jsx-runtime";
|
|
836
|
+
function JsonViewer({ value, label = "JSON", rows = 12 }) {
|
|
837
|
+
return /* @__PURE__ */ jsx8(Textarea2, {
|
|
838
|
+
readOnly: true,
|
|
839
|
+
rows,
|
|
840
|
+
"aria-label": label,
|
|
841
|
+
value: JSON.stringify(value ?? null, null, 2) ?? "null"
|
|
842
|
+
});
|
|
843
|
+
}
|
|
844
|
+
// src/components/AlertDialog.tsx
|
|
845
|
+
import { AlertDialog as AlertDialogPrimitive } from "@base-ui/react/alert-dialog";
|
|
846
|
+
import { useDirection as useDirection3 } from "@base-ui/react/direction-provider";
|
|
847
|
+
import { jsx as jsx9, jsxs as jsxs7 } from "react/jsx-runtime";
|
|
848
|
+
"use client";
|
|
849
|
+
function AlertDialog({ ...props }) {
|
|
850
|
+
return /* @__PURE__ */ jsx9(AlertDialogPrimitive.Root, {
|
|
851
|
+
"data-slot": "alert-dialog",
|
|
852
|
+
...props
|
|
853
|
+
});
|
|
854
|
+
}
|
|
855
|
+
function AlertDialogTrigger({ ...props }) {
|
|
856
|
+
return /* @__PURE__ */ jsx9(AlertDialogPrimitive.Trigger, {
|
|
857
|
+
"data-slot": "alert-dialog-trigger",
|
|
858
|
+
...props
|
|
859
|
+
});
|
|
860
|
+
}
|
|
861
|
+
function AlertDialogPortal({ container, ...props }) {
|
|
862
|
+
const resolvedContainer = usePortalContainer2(container);
|
|
863
|
+
return /* @__PURE__ */ jsx9(AlertDialogPrimitive.Portal, {
|
|
864
|
+
"data-slot": "alert-dialog-portal",
|
|
865
|
+
container: resolvedContainer,
|
|
866
|
+
...props
|
|
867
|
+
});
|
|
868
|
+
}
|
|
869
|
+
function AlertDialogOverlay({ density, className, ...props }) {
|
|
870
|
+
const resolvedDensity = useDensity(density);
|
|
871
|
+
return /* @__PURE__ */ jsx9(AlertDialogPrimitive.Backdrop, {
|
|
872
|
+
"data-density": resolvedDensity,
|
|
873
|
+
"data-slot": "alert-dialog-overlay",
|
|
874
|
+
className: (state) => cn2("fixed inset-0 isolate bg-backdrop duration-120 data-open:animate-in data-open:fade-in-0 data-closed:animate-out data-closed:fade-out-0 motion-reduce:data-open:animate-none motion-reduce:data-closed:animate-none", typeof className === "function" ? className(state) : className),
|
|
875
|
+
...props
|
|
876
|
+
});
|
|
877
|
+
}
|
|
878
|
+
function AlertDialogContent({ density, className, size = "default", ...props }) {
|
|
879
|
+
const resolvedDensity = useDensity(density);
|
|
880
|
+
const direction = useDirection3();
|
|
881
|
+
return /* @__PURE__ */ jsxs7(AlertDialogPortal, {
|
|
882
|
+
children: [
|
|
883
|
+
/* @__PURE__ */ jsx9(AlertDialogOverlay, {}),
|
|
884
|
+
/* @__PURE__ */ jsx9(AlertDialogPrimitive.Popup, {
|
|
885
|
+
dir: direction,
|
|
886
|
+
"data-density": resolvedDensity,
|
|
887
|
+
"data-slot": "alert-dialog-content",
|
|
888
|
+
"data-size": size,
|
|
889
|
+
className: (state) => cn2("group/alert-dialog-content fixed top-1/2 left-1/2 grid w-full -translate-x-1/2 -translate-y-1/2 gap-panel rounded-md bg-popover p-panel text-popover-foreground border border-frame-edge shadow-frame duration-120 outline-none data-[size=default]:max-w-xs data-[size=sm]:max-w-xs data-[size=default]:sm:max-w-sm data-open:animate-in data-open:fade-in-0 data-closed:animate-out data-closed:fade-out-0 motion-reduce:data-open:animate-none motion-reduce:data-closed:animate-none", typeof className === "function" ? className(state) : className),
|
|
890
|
+
...props
|
|
891
|
+
})
|
|
892
|
+
]
|
|
893
|
+
});
|
|
894
|
+
}
|
|
895
|
+
function AlertDialogHeader({ density, className, ...props }) {
|
|
896
|
+
return /* @__PURE__ */ jsx9("div", {
|
|
897
|
+
"data-density": density,
|
|
898
|
+
"data-slot": "alert-dialog-header",
|
|
899
|
+
className: cn2("grid grid-rows-[auto_1fr] place-items-center gap-control-gap text-center has-data-[slot=alert-dialog-media]:grid-rows-[auto_auto_1fr] has-data-[slot=alert-dialog-media]:gap-x-4 sm:group-data-[size=default]/alert-dialog-content:place-items-start sm:group-data-[size=default]/alert-dialog-content:text-start sm:group-data-[size=default]/alert-dialog-content:has-data-[slot=alert-dialog-media]:grid-rows-[auto_1fr]", className),
|
|
900
|
+
...props
|
|
901
|
+
});
|
|
902
|
+
}
|
|
903
|
+
function AlertDialogFooter({ density, className, ...props }) {
|
|
904
|
+
return /* @__PURE__ */ jsx9("div", {
|
|
905
|
+
"data-density": density,
|
|
906
|
+
"data-slot": "alert-dialog-footer",
|
|
907
|
+
className: cn2("-mx-panel -mb-panel flex flex-col-reverse gap-2 rounded-b-md border-t bg-muted/50 p-panel group-data-[size=sm]/alert-dialog-content:grid group-data-[size=sm]/alert-dialog-content:grid-cols-2 sm:flex-row sm:justify-end", className),
|
|
908
|
+
...props
|
|
909
|
+
});
|
|
910
|
+
}
|
|
911
|
+
function AlertDialogMedia({ density, className, ...props }) {
|
|
912
|
+
return /* @__PURE__ */ jsx9("div", {
|
|
913
|
+
"data-density": density,
|
|
914
|
+
"data-slot": "alert-dialog-media",
|
|
915
|
+
className: cn2("mb-2 inline-flex size-10 items-center justify-center rounded-md bg-muted sm:group-data-[size=default]/alert-dialog-content:row-span-2 *:[svg:not([class*='size-'])]:size-control-xs", className),
|
|
916
|
+
...props
|
|
917
|
+
});
|
|
918
|
+
}
|
|
919
|
+
function AlertDialogTitle({ density, className, ...props }) {
|
|
920
|
+
return /* @__PURE__ */ jsx9(AlertDialogPrimitive.Title, {
|
|
921
|
+
"data-density": density,
|
|
922
|
+
"data-slot": "alert-dialog-title",
|
|
923
|
+
className: (state) => cn2("text-base font-medium sm:group-data-[size=default]/alert-dialog-content:group-has-data-[slot=alert-dialog-media]/alert-dialog-content:col-start-2", typeof className === "function" ? className(state) : className),
|
|
924
|
+
...props
|
|
925
|
+
});
|
|
926
|
+
}
|
|
927
|
+
function AlertDialogDescription({ density, className, ...props }) {
|
|
928
|
+
return /* @__PURE__ */ jsx9(AlertDialogPrimitive.Description, {
|
|
929
|
+
"data-density": density,
|
|
930
|
+
"data-slot": "alert-dialog-description",
|
|
931
|
+
className: (state) => cn2("text-sm text-balance text-muted-foreground md:text-pretty *:[a]:underline *:[a]:underline-offset-3 *:[a]:hover:text-foreground", typeof className === "function" ? className(state) : className),
|
|
932
|
+
...props
|
|
933
|
+
});
|
|
934
|
+
}
|
|
935
|
+
function AlertDialogAction({ density, className, ...props }) {
|
|
936
|
+
return /* @__PURE__ */ jsx9(Button2, {
|
|
937
|
+
"data-density": density,
|
|
938
|
+
"data-slot": "alert-dialog-action",
|
|
939
|
+
className,
|
|
940
|
+
...props
|
|
941
|
+
});
|
|
942
|
+
}
|
|
943
|
+
function AlertDialogCancel({
|
|
944
|
+
density,
|
|
945
|
+
className,
|
|
946
|
+
variant = "outline",
|
|
947
|
+
size = "default",
|
|
948
|
+
...props
|
|
949
|
+
}) {
|
|
950
|
+
return /* @__PURE__ */ jsx9(AlertDialogPrimitive.Close, {
|
|
951
|
+
"data-density": density,
|
|
952
|
+
"data-slot": "alert-dialog-cancel",
|
|
953
|
+
className,
|
|
954
|
+
render: /* @__PURE__ */ jsx9(Button2, {
|
|
955
|
+
variant,
|
|
956
|
+
size
|
|
957
|
+
}),
|
|
958
|
+
...props
|
|
959
|
+
});
|
|
960
|
+
}
|
|
961
|
+
// src/components/Select.tsx
|
|
962
|
+
import { Select as SelectPrimitive } from "@base-ui/react/select";
|
|
963
|
+
import { useDirection as useDirection4 } from "@base-ui/react/direction-provider";
|
|
964
|
+
import { ChevronDownIcon as ChevronDownIcon3, CheckIcon as CheckIcon2, ChevronUpIcon as ChevronUpIcon2 } from "lucide-react";
|
|
965
|
+
import { jsx as jsx10, jsxs as jsxs8 } from "react/jsx-runtime";
|
|
966
|
+
"use client";
|
|
967
|
+
var Select = SelectPrimitive.Root;
|
|
968
|
+
function SelectGroup({ density, className, ...props }) {
|
|
969
|
+
return /* @__PURE__ */ jsx10(SelectPrimitive.Group, {
|
|
970
|
+
"data-density": density,
|
|
971
|
+
"data-slot": "select-group",
|
|
972
|
+
className: (state) => cn2("scroll-my-1 p-1", typeof className === "function" ? className(state) : className),
|
|
973
|
+
...props
|
|
974
|
+
});
|
|
975
|
+
}
|
|
976
|
+
function SelectValue({ density, className, ...props }) {
|
|
977
|
+
return /* @__PURE__ */ jsx10(SelectPrimitive.Value, {
|
|
978
|
+
"data-density": density,
|
|
979
|
+
"data-slot": "select-value",
|
|
980
|
+
className: (state) => cn2("flex flex-1 text-start", typeof className === "function" ? className(state) : className),
|
|
981
|
+
...props
|
|
982
|
+
});
|
|
983
|
+
}
|
|
984
|
+
function SelectTrigger({ density, className, size = "default", children, ...props }) {
|
|
985
|
+
return /* @__PURE__ */ jsxs8(SelectPrimitive.Trigger, {
|
|
986
|
+
"data-density": density,
|
|
987
|
+
"data-slot": "select-trigger",
|
|
988
|
+
"data-size": size,
|
|
989
|
+
className: (state) => cn2("flex w-fit items-center justify-between gap-control-gap rounded-sm border border-input bg-transparent py-2 pe-2 ps-2.5 text-sm whitespace-nowrap transition-colors outline-none select-none focus-visible:border-ring focus-visible:ring-1 focus-visible:ring-ring disabled:cursor-not-allowed disabled:opacity-50 aria-invalid:border-destructive aria-invalid:ring-3 aria-invalid:ring-destructive data-placeholder:text-muted-foreground data-[size=default]:h-control data-[size=sm]:h-control-sm data-[size=sm]:rounded-sm *:data-[slot=select-value]:line-clamp-1 *:data-[slot=select-value]:flex *:data-[slot=select-value]:items-center *:data-[slot=select-value]:gap-control-gap [&_svg]:pointer-events-none [&_svg]:shrink-0 [&_svg:not([class*='size-'])]:size-4", typeof className === "function" ? className(state) : className),
|
|
990
|
+
...props,
|
|
991
|
+
children: [
|
|
992
|
+
children,
|
|
993
|
+
/* @__PURE__ */ jsx10(SelectPrimitive.Icon, {
|
|
994
|
+
render: /* @__PURE__ */ jsx10(ChevronDownIcon3, {
|
|
995
|
+
className: "pointer-events-none size-4 text-muted-foreground"
|
|
996
|
+
})
|
|
997
|
+
})
|
|
998
|
+
]
|
|
999
|
+
});
|
|
1000
|
+
}
|
|
1001
|
+
function SelectContent({
|
|
1002
|
+
density,
|
|
1003
|
+
className,
|
|
1004
|
+
children,
|
|
1005
|
+
side = "bottom",
|
|
1006
|
+
sideOffset = 4,
|
|
1007
|
+
align = "center",
|
|
1008
|
+
alignOffset = 0,
|
|
1009
|
+
alignItemWithTrigger = true,
|
|
1010
|
+
...props
|
|
1011
|
+
}) {
|
|
1012
|
+
const resolvedDensity = useDensity(density);
|
|
1013
|
+
const direction = useDirection4();
|
|
1014
|
+
const container = usePortalContainer2();
|
|
1015
|
+
return /* @__PURE__ */ jsx10(SelectPrimitive.Portal, {
|
|
1016
|
+
container,
|
|
1017
|
+
children: /* @__PURE__ */ jsx10(SelectPrimitive.Positioner, {
|
|
1018
|
+
side,
|
|
1019
|
+
sideOffset,
|
|
1020
|
+
align,
|
|
1021
|
+
alignOffset,
|
|
1022
|
+
alignItemWithTrigger,
|
|
1023
|
+
className: "isolate ",
|
|
1024
|
+
children: /* @__PURE__ */ jsxs8(SelectPrimitive.Popup, {
|
|
1025
|
+
dir: direction,
|
|
1026
|
+
"data-density": resolvedDensity,
|
|
1027
|
+
"data-slot": "select-content",
|
|
1028
|
+
"data-align-trigger": alignItemWithTrigger,
|
|
1029
|
+
className: (state) => cn2("relative isolate max-h-(--available-height) w-(--anchor-width) min-w-36 origin-(--transform-origin) overflow-x-hidden overflow-y-auto rounded-md bg-popover text-popover-foreground border border-frame-edge shadow-frame duration-120 data-[align-trigger=true]:animate-none data-open:animate-in data-open:fade-in-0 data-closed:animate-out data-closed:fade-out-0 motion-reduce:animate-none", typeof className === "function" ? className(state) : className),
|
|
1030
|
+
...props,
|
|
1031
|
+
children: [
|
|
1032
|
+
/* @__PURE__ */ jsx10(SelectScrollUpButton, {}),
|
|
1033
|
+
/* @__PURE__ */ jsx10(SelectPrimitive.List, {
|
|
1034
|
+
children
|
|
1035
|
+
}),
|
|
1036
|
+
/* @__PURE__ */ jsx10(SelectScrollDownButton, {})
|
|
1037
|
+
]
|
|
1038
|
+
})
|
|
1039
|
+
})
|
|
1040
|
+
});
|
|
1041
|
+
}
|
|
1042
|
+
function SelectLabel({ density, className, ...props }) {
|
|
1043
|
+
return /* @__PURE__ */ jsx10(SelectPrimitive.GroupLabel, {
|
|
1044
|
+
"data-density": density,
|
|
1045
|
+
"data-slot": "select-label",
|
|
1046
|
+
className: (state) => cn2("px-1.5 py-1 text-xs text-muted-foreground", typeof className === "function" ? className(state) : className),
|
|
1047
|
+
...props
|
|
1048
|
+
});
|
|
1049
|
+
}
|
|
1050
|
+
function SelectItem({ density, className, children, ...props }) {
|
|
1051
|
+
return /* @__PURE__ */ jsxs8(SelectPrimitive.Item, {
|
|
1052
|
+
"data-density": density,
|
|
1053
|
+
"data-slot": "select-item",
|
|
1054
|
+
className: (state) => cn2("relative flex w-full cursor-default items-center gap-control-gap rounded-md py-1 pe-8 ps-1.5 text-sm outline-hidden select-none focus:bg-accent focus:text-accent-foreground not-data-[variant=destructive]:focus:**:text-accent-foreground data-disabled:pointer-events-none data-disabled:opacity-50 [&_svg]:pointer-events-none [&_svg]:shrink-0 [&_svg:not([class*='size-'])]:size-4 *:[span]:last:flex *:[span]:last:items-center *:[span]:last:gap-2", typeof className === "function" ? className(state) : className),
|
|
1055
|
+
...props,
|
|
1056
|
+
children: [
|
|
1057
|
+
/* @__PURE__ */ jsx10(SelectPrimitive.ItemText, {
|
|
1058
|
+
className: "flex flex-1 shrink-0 gap-2 whitespace-nowrap",
|
|
1059
|
+
children
|
|
1060
|
+
}),
|
|
1061
|
+
/* @__PURE__ */ jsx10(SelectPrimitive.ItemIndicator, {
|
|
1062
|
+
render: /* @__PURE__ */ jsx10("span", {
|
|
1063
|
+
className: "pointer-events-none absolute end-2 flex size-4 items-center justify-center"
|
|
1064
|
+
}),
|
|
1065
|
+
children: /* @__PURE__ */ jsx10(CheckIcon2, {
|
|
1066
|
+
className: "pointer-events-none"
|
|
1067
|
+
})
|
|
1068
|
+
})
|
|
1069
|
+
]
|
|
1070
|
+
});
|
|
1071
|
+
}
|
|
1072
|
+
function SelectSeparator({ density, className, ...props }) {
|
|
1073
|
+
return /* @__PURE__ */ jsx10(SelectPrimitive.Separator, {
|
|
1074
|
+
"data-density": density,
|
|
1075
|
+
"data-slot": "select-separator",
|
|
1076
|
+
className: (state) => cn2("pointer-events-none -mx-1 my-1 h-px bg-border", typeof className === "function" ? className(state) : className),
|
|
1077
|
+
...props
|
|
1078
|
+
});
|
|
1079
|
+
}
|
|
1080
|
+
function SelectScrollUpButton({ density, className, ...props }) {
|
|
1081
|
+
return /* @__PURE__ */ jsx10(SelectPrimitive.ScrollUpArrow, {
|
|
1082
|
+
"data-density": density,
|
|
1083
|
+
"data-slot": "select-scroll-up-button",
|
|
1084
|
+
className: (state) => cn2("top-0 flex w-full cursor-default items-center justify-center bg-popover py-1 [&_svg:not([class*='size-'])]:size-4", typeof className === "function" ? className(state) : className),
|
|
1085
|
+
...props,
|
|
1086
|
+
children: /* @__PURE__ */ jsx10(ChevronUpIcon2, {})
|
|
1087
|
+
});
|
|
1088
|
+
}
|
|
1089
|
+
function SelectScrollDownButton({ density, className, ...props }) {
|
|
1090
|
+
return /* @__PURE__ */ jsx10(SelectPrimitive.ScrollDownArrow, {
|
|
1091
|
+
"data-density": density,
|
|
1092
|
+
"data-slot": "select-scroll-down-button",
|
|
1093
|
+
className: (state) => cn2("bottom-0 flex w-full cursor-default items-center justify-center bg-popover py-1 [&_svg:not([class*='size-'])]:size-4", typeof className === "function" ? className(state) : className),
|
|
1094
|
+
...props,
|
|
1095
|
+
children: /* @__PURE__ */ jsx10(ChevronDownIcon3, {})
|
|
1096
|
+
});
|
|
1097
|
+
}
|
|
1098
|
+
// src/components/DensityProvider.tsx
|
|
1099
|
+
import { jsx as jsx11 } from "react/jsx-runtime";
|
|
1100
|
+
function DensityProvider({ children, density = "comfortable" }) {
|
|
1101
|
+
return /* @__PURE__ */ jsx11(DensityContext.Provider, {
|
|
1102
|
+
value: density,
|
|
1103
|
+
children: /* @__PURE__ */ jsx11("div", {
|
|
1104
|
+
"data-density": density,
|
|
1105
|
+
className: "font-sans text-base leading-(--ag-leading)",
|
|
1106
|
+
children
|
|
1107
|
+
})
|
|
1108
|
+
});
|
|
1109
|
+
}
|
|
1110
|
+
// src/components/ThemeProvider.tsx
|
|
1111
|
+
import { useMemo } from "react";
|
|
1112
|
+
import { useIsomorphicLayoutEffect, useTernaryDarkMode } from "usehooks-ts";
|
|
1113
|
+
import { jsx as jsx12 } from "react/jsx-runtime";
|
|
1114
|
+
function StoredThemeProvider({
|
|
1115
|
+
children,
|
|
1116
|
+
defaultTheme = "system",
|
|
1117
|
+
storageKey = "shadcn-alexgorbatchev-theme",
|
|
1118
|
+
forcedTheme
|
|
1119
|
+
}) {
|
|
1120
|
+
const { isDarkMode, ternaryDarkMode, setTernaryDarkMode } = useTernaryDarkMode({
|
|
1121
|
+
defaultValue: defaultTheme,
|
|
1122
|
+
localStorageKey: storageKey
|
|
1123
|
+
});
|
|
1124
|
+
return /* @__PURE__ */ jsx12(ThemePalette, {
|
|
1125
|
+
theme: forcedTheme ?? ternaryDarkMode,
|
|
1126
|
+
resolvedTheme: forcedTheme ?? (isDarkMode ? "dark" : "light"),
|
|
1127
|
+
setTheme: setTernaryDarkMode,
|
|
1128
|
+
children
|
|
1129
|
+
});
|
|
1130
|
+
}
|
|
1131
|
+
function ThemePalette({
|
|
1132
|
+
children,
|
|
1133
|
+
theme,
|
|
1134
|
+
resolvedTheme,
|
|
1135
|
+
setTheme
|
|
1136
|
+
}) {
|
|
1137
|
+
useIsomorphicLayoutEffect(() => {
|
|
1138
|
+
document.documentElement.dataset.theme = resolvedTheme;
|
|
1139
|
+
document.documentElement.style.colorScheme = resolvedTheme;
|
|
1140
|
+
}, [resolvedTheme]);
|
|
1141
|
+
const value = useMemo(() => ({ theme, resolvedTheme, setTheme }), [theme, resolvedTheme, setTheme]);
|
|
1142
|
+
return /* @__PURE__ */ jsx12(ThemeContext.Provider, {
|
|
1143
|
+
value,
|
|
1144
|
+
children
|
|
1145
|
+
});
|
|
1146
|
+
}
|
|
1147
|
+
function ControlledThemeProvider({
|
|
1148
|
+
children,
|
|
1149
|
+
controlledTheme,
|
|
1150
|
+
forcedTheme
|
|
1151
|
+
}) {
|
|
1152
|
+
const isDark = useMediaQuery("(prefers-color-scheme: dark)");
|
|
1153
|
+
const { theme, setTheme } = controlledTheme;
|
|
1154
|
+
const resolvedTheme = forcedTheme ?? (theme === "system" ? isDark ? "dark" : "light" : theme);
|
|
1155
|
+
return /* @__PURE__ */ jsx12(ThemePalette, {
|
|
1156
|
+
theme: forcedTheme ?? theme,
|
|
1157
|
+
resolvedTheme,
|
|
1158
|
+
setTheme,
|
|
1159
|
+
children
|
|
1160
|
+
});
|
|
1161
|
+
}
|
|
1162
|
+
function ThemeProvider(props) {
|
|
1163
|
+
if (props.controlledTheme)
|
|
1164
|
+
return /* @__PURE__ */ jsx12(ControlledThemeProvider, {
|
|
1165
|
+
...props,
|
|
1166
|
+
controlledTheme: props.controlledTheme
|
|
1167
|
+
});
|
|
1168
|
+
return /* @__PURE__ */ jsx12(StoredThemeProvider, {
|
|
1169
|
+
...props
|
|
1170
|
+
});
|
|
1171
|
+
}
|
|
1172
|
+
// src/hooks/useComboboxAnchor.ts
|
|
1173
|
+
import { useRef as useRef2 } from "react";
|
|
1174
|
+
function useComboboxAnchor() {
|
|
1175
|
+
return useRef2(null);
|
|
1176
|
+
}
|
|
1177
|
+
// src/components/AspectRatio.tsx
|
|
1178
|
+
import { jsx as jsx13 } from "react/jsx-runtime";
|
|
1179
|
+
function AspectRatio({ ratio, className, style, ...props }) {
|
|
1180
|
+
return /* @__PURE__ */ jsx13("div", {
|
|
1181
|
+
"data-slot": "aspect-ratio",
|
|
1182
|
+
className: cn2("relative", className),
|
|
1183
|
+
style: { aspectRatio: ratio, ...style },
|
|
1184
|
+
...props
|
|
1185
|
+
});
|
|
1186
|
+
}
|
|
1187
|
+
// src/components/Breadcrumb.tsx
|
|
1188
|
+
import { ChevronRightIcon, MoreHorizontalIcon } from "lucide-react";
|
|
1189
|
+
import { mergeProps as mergeProps3 } from "@base-ui/react/merge-props";
|
|
1190
|
+
import { useRender as useRender3 } from "@base-ui/react/use-render";
|
|
1191
|
+
import { jsx as jsx14, jsxs as jsxs9 } from "react/jsx-runtime";
|
|
1192
|
+
function Breadcrumb({ density, className, ...props }) {
|
|
1193
|
+
return /* @__PURE__ */ jsx14("nav", {
|
|
1194
|
+
"aria-label": "breadcrumb",
|
|
1195
|
+
"data-density": density,
|
|
1196
|
+
"data-slot": "breadcrumb",
|
|
1197
|
+
className: cn2(className),
|
|
1198
|
+
...props
|
|
1199
|
+
});
|
|
1200
|
+
}
|
|
1201
|
+
function BreadcrumbList({ density, className, ...props }) {
|
|
1202
|
+
return /* @__PURE__ */ jsx14("ol", {
|
|
1203
|
+
"data-density": density,
|
|
1204
|
+
"data-slot": "breadcrumb-list",
|
|
1205
|
+
className: cn2("flex flex-wrap items-center gap-control-gap text-sm wrap-break-word text-muted-foreground", className),
|
|
1206
|
+
...props
|
|
1207
|
+
});
|
|
1208
|
+
}
|
|
1209
|
+
function BreadcrumbItem({ density, className, ...props }) {
|
|
1210
|
+
return /* @__PURE__ */ jsx14("li", {
|
|
1211
|
+
"data-density": density,
|
|
1212
|
+
"data-slot": "breadcrumb-item",
|
|
1213
|
+
className: cn2("inline-flex items-center gap-1", className),
|
|
1214
|
+
...props
|
|
1215
|
+
});
|
|
1216
|
+
}
|
|
1217
|
+
function BreadcrumbLink({ density, className, render, ...props }) {
|
|
1218
|
+
return useRender3({
|
|
1219
|
+
defaultTagName: "a",
|
|
1220
|
+
props: mergeProps3({
|
|
1221
|
+
className: cn2("transition-colors hover:text-foreground", className)
|
|
1222
|
+
}, props),
|
|
1223
|
+
render,
|
|
1224
|
+
state: {
|
|
1225
|
+
density,
|
|
1226
|
+
slot: "breadcrumb-link"
|
|
1227
|
+
}
|
|
1228
|
+
});
|
|
1229
|
+
}
|
|
1230
|
+
function BreadcrumbPage({ density, className, ...props }) {
|
|
1231
|
+
return /* @__PURE__ */ jsx14("span", {
|
|
1232
|
+
"data-density": density,
|
|
1233
|
+
"data-slot": "breadcrumb-page",
|
|
1234
|
+
role: "link",
|
|
1235
|
+
"aria-disabled": "true",
|
|
1236
|
+
"aria-current": "page",
|
|
1237
|
+
className: cn2("font-normal text-foreground", className),
|
|
1238
|
+
...props
|
|
1239
|
+
});
|
|
1240
|
+
}
|
|
1241
|
+
function BreadcrumbSeparator({ density, children, className, ...props }) {
|
|
1242
|
+
return /* @__PURE__ */ jsx14("li", {
|
|
1243
|
+
"data-density": density,
|
|
1244
|
+
"data-slot": "breadcrumb-separator",
|
|
1245
|
+
role: "presentation",
|
|
1246
|
+
"aria-hidden": "true",
|
|
1247
|
+
className: cn2("[&>svg]:size-3.5", className),
|
|
1248
|
+
...props,
|
|
1249
|
+
children: children ?? /* @__PURE__ */ jsx14(ChevronRightIcon, {
|
|
1250
|
+
className: "rtl:rotate-180"
|
|
1251
|
+
})
|
|
1252
|
+
});
|
|
1253
|
+
}
|
|
1254
|
+
function BreadcrumbEllipsis({ density, className, ...props }) {
|
|
1255
|
+
return /* @__PURE__ */ jsxs9("span", {
|
|
1256
|
+
"data-density": density,
|
|
1257
|
+
"data-slot": "breadcrumb-ellipsis",
|
|
1258
|
+
role: "presentation",
|
|
1259
|
+
"aria-hidden": "true",
|
|
1260
|
+
className: cn2("flex size-5 items-center justify-center [&>svg]:size-4", className),
|
|
1261
|
+
...props,
|
|
1262
|
+
children: [
|
|
1263
|
+
/* @__PURE__ */ jsx14(MoreHorizontalIcon, {}),
|
|
1264
|
+
/* @__PURE__ */ jsx14("span", {
|
|
1265
|
+
className: "sr-only",
|
|
1266
|
+
children: "More"
|
|
1267
|
+
})
|
|
1268
|
+
]
|
|
1269
|
+
});
|
|
1270
|
+
}
|
|
1271
|
+
// src/components/ButtonGroup.tsx
|
|
1272
|
+
import { mergeProps as mergeProps4 } from "@base-ui/react/merge-props";
|
|
1273
|
+
import { useRender as useRender4 } from "@base-ui/react/use-render";
|
|
1274
|
+
import { cva as cva2 } from "class-variance-authority";
|
|
1275
|
+
import { jsx as jsx15 } from "react/jsx-runtime";
|
|
1276
|
+
var buttonGroupVariants = cva2("flex w-fit items-stretch *:focus-visible:relative *:focus-visible:z-10 has-[>[data-slot=button-group]]:gap-2 has-[select[aria-hidden=true]:last-child]:[&>[data-slot=select-trigger]:last-of-type]:rounded-e-sm [&>[data-slot=select-trigger]:not([class*='w-'])]:w-fit [&>input]:flex-1", {
|
|
1277
|
+
variants: {
|
|
1278
|
+
orientation: {
|
|
1279
|
+
horizontal: "*:data-slot:rounded-e-none [&>[data-slot]:not(:has(~[data-slot]))]:rounded-e-sm! [&>[data-slot]~[data-slot]]:rounded-s-none [&>[data-slot]~[data-slot]]:border-s-0",
|
|
1280
|
+
vertical: "flex-col *:data-slot:rounded-b-none [&>[data-slot]:not(:has(~[data-slot]))]:rounded-b-sm! [&>[data-slot]~[data-slot]]:rounded-t-none [&>[data-slot]~[data-slot]]:border-t-0"
|
|
1281
|
+
}
|
|
1282
|
+
},
|
|
1283
|
+
defaultVariants: {
|
|
1284
|
+
orientation: "horizontal"
|
|
1285
|
+
}
|
|
1286
|
+
});
|
|
1287
|
+
function ButtonGroup({ density, className, orientation, ...props }) {
|
|
1288
|
+
return /* @__PURE__ */ jsx15("div", {
|
|
1289
|
+
role: "group",
|
|
1290
|
+
"data-density": density,
|
|
1291
|
+
"data-slot": "button-group",
|
|
1292
|
+
"data-orientation": orientation,
|
|
1293
|
+
className: cn2(buttonGroupVariants({ orientation }), className),
|
|
1294
|
+
...props
|
|
1295
|
+
});
|
|
1296
|
+
}
|
|
1297
|
+
function ButtonGroupText({ density, className, render, ...props }) {
|
|
1298
|
+
return useRender4({
|
|
1299
|
+
defaultTagName: "div",
|
|
1300
|
+
props: mergeProps4({
|
|
1301
|
+
className: cn2("flex items-center gap-2 rounded-sm border bg-muted px-control-x text-sm font-medium [&_svg]:pointer-events-none [&_svg:not([class*='size-'])]:size-4", className)
|
|
1302
|
+
}, props),
|
|
1303
|
+
render,
|
|
1304
|
+
state: {
|
|
1305
|
+
density,
|
|
1306
|
+
slot: "button-group-text"
|
|
1307
|
+
}
|
|
1308
|
+
});
|
|
1309
|
+
}
|
|
1310
|
+
function ButtonGroupSeparator({
|
|
1311
|
+
density,
|
|
1312
|
+
className,
|
|
1313
|
+
orientation = "vertical",
|
|
1314
|
+
...props
|
|
1315
|
+
}) {
|
|
1316
|
+
return /* @__PURE__ */ jsx15(Separator2, {
|
|
1317
|
+
"data-density": density,
|
|
1318
|
+
"data-slot": "button-group-separator",
|
|
1319
|
+
orientation,
|
|
1320
|
+
className: (state) => cn2("relative self-stretch bg-input data-[orientation=horizontal]:mx-px data-[orientation=horizontal]:w-auto data-[orientation=vertical]:my-px data-[orientation=vertical]:h-auto", typeof className === "function" ? className(state) : className),
|
|
1321
|
+
...props
|
|
1322
|
+
});
|
|
1323
|
+
}
|
|
1324
|
+
// src/components/NativeSelect.tsx
|
|
1325
|
+
import { ChevronDownIcon as ChevronDownIcon4 } from "lucide-react";
|
|
1326
|
+
import { jsx as jsx16, jsxs as jsxs10 } from "react/jsx-runtime";
|
|
1327
|
+
function NativeSelect({
|
|
1328
|
+
density,
|
|
1329
|
+
className,
|
|
1330
|
+
dir,
|
|
1331
|
+
size = "default",
|
|
1332
|
+
...props
|
|
1333
|
+
}) {
|
|
1334
|
+
return /* @__PURE__ */ jsxs10("div", {
|
|
1335
|
+
dir,
|
|
1336
|
+
className: cn2("group/native-select relative w-fit has-[select:disabled]:opacity-50", className),
|
|
1337
|
+
"data-density": density,
|
|
1338
|
+
"data-slot": "native-select-wrapper",
|
|
1339
|
+
"data-size": size,
|
|
1340
|
+
children: [
|
|
1341
|
+
/* @__PURE__ */ jsx16("select", {
|
|
1342
|
+
dir,
|
|
1343
|
+
"data-slot": "native-select",
|
|
1344
|
+
"data-size": size,
|
|
1345
|
+
className: "h-control w-full min-w-0 appearance-none rounded-sm border border-input bg-secondary py-1 pe-8 ps-2.5 text-sm transition-colors outline-none select-none selection:bg-primary selection:text-primary-foreground placeholder:text-muted-foreground focus-visible:border-ring focus-visible:ring-1 focus-visible:ring-ring disabled:pointer-events-none disabled:cursor-not-allowed aria-invalid:border-destructive aria-invalid:ring-3 aria-invalid:ring-destructive data-[size=sm]:h-control-sm data-[size=sm]:rounded-sm data-[size=sm]:py-0.5",
|
|
1346
|
+
...props
|
|
1347
|
+
}),
|
|
1348
|
+
/* @__PURE__ */ jsx16(ChevronDownIcon4, {
|
|
1349
|
+
className: "pointer-events-none absolute top-1/2 end-2.5 size-4 -translate-y-1/2 text-muted-foreground select-none",
|
|
1350
|
+
"aria-hidden": "true",
|
|
1351
|
+
"data-slot": "native-select-icon"
|
|
1352
|
+
})
|
|
1353
|
+
]
|
|
1354
|
+
});
|
|
1355
|
+
}
|
|
1356
|
+
function NativeSelectOption({ density, className, ...props }) {
|
|
1357
|
+
return /* @__PURE__ */ jsx16("option", {
|
|
1358
|
+
"data-density": density,
|
|
1359
|
+
"data-slot": "native-select-option",
|
|
1360
|
+
className: cn2("bg-[Canvas] text-[CanvasText]", className),
|
|
1361
|
+
...props
|
|
1362
|
+
});
|
|
1363
|
+
}
|
|
1364
|
+
function NativeSelectOptGroup({ density, className, ...props }) {
|
|
1365
|
+
return /* @__PURE__ */ jsx16("optgroup", {
|
|
1366
|
+
"data-density": density,
|
|
1367
|
+
"data-slot": "native-select-optgroup",
|
|
1368
|
+
className: cn2("bg-[Canvas] text-[CanvasText]", className),
|
|
1369
|
+
...props
|
|
1370
|
+
});
|
|
1371
|
+
}
|
|
1372
|
+
// src/components/Item.tsx
|
|
1373
|
+
import { mergeProps as mergeProps5 } from "@base-ui/react/merge-props";
|
|
1374
|
+
import { useRender as useRender5 } from "@base-ui/react/use-render";
|
|
1375
|
+
import { cva as cva3 } from "class-variance-authority";
|
|
1376
|
+
import { jsx as jsx17 } from "react/jsx-runtime";
|
|
1377
|
+
function ItemGroup({ density, className, ...props }) {
|
|
1378
|
+
return /* @__PURE__ */ jsx17("div", {
|
|
1379
|
+
role: "list",
|
|
1380
|
+
"data-density": density,
|
|
1381
|
+
"data-slot": "item-group",
|
|
1382
|
+
className: cn2("group/item-group flex w-full flex-col gap-4 has-data-[size=sm]:gap-2.5 has-data-[size=xs]:gap-2", className),
|
|
1383
|
+
...props
|
|
1384
|
+
});
|
|
1385
|
+
}
|
|
1386
|
+
function ItemSeparator({ density, className, ...props }) {
|
|
1387
|
+
return /* @__PURE__ */ jsx17(Separator2, {
|
|
1388
|
+
"data-density": density,
|
|
1389
|
+
"data-slot": "item-separator",
|
|
1390
|
+
orientation: "horizontal",
|
|
1391
|
+
className: (state) => cn2("my-2", typeof className === "function" ? className(state) : className),
|
|
1392
|
+
...props
|
|
1393
|
+
});
|
|
1394
|
+
}
|
|
1395
|
+
var itemVariants = cva3("group/item flex w-full flex-wrap items-center rounded-sm border text-sm transition-colors duration-100 outline-none focus-visible:border-ring focus-visible:ring-1 focus-visible:ring-ring [a]:transition-colors [a]:hover:bg-muted", {
|
|
1396
|
+
variants: {
|
|
1397
|
+
variant: {
|
|
1398
|
+
default: "border-transparent",
|
|
1399
|
+
outline: "border-border",
|
|
1400
|
+
muted: "border-transparent bg-muted/50"
|
|
1401
|
+
},
|
|
1402
|
+
size: {
|
|
1403
|
+
default: "gap-panel p-panel",
|
|
1404
|
+
sm: "gap-panel p-panel",
|
|
1405
|
+
xs: "gap-2 px-control-x py-2 in-data-[slot=dropdown-menu-content]:p-0"
|
|
1406
|
+
}
|
|
1407
|
+
},
|
|
1408
|
+
defaultVariants: {
|
|
1409
|
+
variant: "default",
|
|
1410
|
+
size: "default"
|
|
1411
|
+
}
|
|
1412
|
+
});
|
|
1413
|
+
function Item({
|
|
1414
|
+
density,
|
|
1415
|
+
className,
|
|
1416
|
+
variant = "default",
|
|
1417
|
+
size = "default",
|
|
1418
|
+
render,
|
|
1419
|
+
...props
|
|
1420
|
+
}) {
|
|
1421
|
+
return useRender5({
|
|
1422
|
+
defaultTagName: "div",
|
|
1423
|
+
props: mergeProps5({
|
|
1424
|
+
className: cn2(itemVariants({ variant, size, className }))
|
|
1425
|
+
}, props),
|
|
1426
|
+
render,
|
|
1427
|
+
state: {
|
|
1428
|
+
density,
|
|
1429
|
+
slot: "item",
|
|
1430
|
+
variant,
|
|
1431
|
+
size
|
|
1432
|
+
}
|
|
1433
|
+
});
|
|
1434
|
+
}
|
|
1435
|
+
var itemMediaVariants = cva3("flex shrink-0 items-center justify-center gap-2 group-has-data-[slot=item-description]/item:translate-y-0.5 group-has-data-[slot=item-description]/item:self-start [&_svg]:pointer-events-none", {
|
|
1436
|
+
variants: {
|
|
1437
|
+
variant: {
|
|
1438
|
+
default: "bg-transparent",
|
|
1439
|
+
icon: "[&_svg:not([class*='size-'])]:size-4",
|
|
1440
|
+
image: "size-10 overflow-hidden rounded-sm group-data-[size=sm]/item:size-8 group-data-[size=xs]/item:size-6 [&_img]:size-full [&_img]:object-cover"
|
|
1441
|
+
}
|
|
1442
|
+
},
|
|
1443
|
+
defaultVariants: {
|
|
1444
|
+
variant: "default"
|
|
1445
|
+
}
|
|
1446
|
+
});
|
|
1447
|
+
function ItemMedia({ density, className, variant = "default", ...props }) {
|
|
1448
|
+
return /* @__PURE__ */ jsx17("div", {
|
|
1449
|
+
"data-density": density,
|
|
1450
|
+
"data-slot": "item-media",
|
|
1451
|
+
"data-variant": variant,
|
|
1452
|
+
className: cn2(itemMediaVariants({ variant, className })),
|
|
1453
|
+
...props
|
|
1454
|
+
});
|
|
1455
|
+
}
|
|
1456
|
+
function ItemContent({ density, className, ...props }) {
|
|
1457
|
+
return /* @__PURE__ */ jsx17("div", {
|
|
1458
|
+
"data-density": density,
|
|
1459
|
+
"data-slot": "item-content",
|
|
1460
|
+
className: cn2("flex flex-1 flex-col gap-1 group-data-[size=xs]/item:gap-0 [&+[data-slot=item-content]]:flex-none", className),
|
|
1461
|
+
...props
|
|
1462
|
+
});
|
|
1463
|
+
}
|
|
1464
|
+
function ItemTitle({ density, className, ...props }) {
|
|
1465
|
+
return /* @__PURE__ */ jsx17("div", {
|
|
1466
|
+
"data-density": density,
|
|
1467
|
+
"data-slot": "item-title",
|
|
1468
|
+
className: cn2("line-clamp-1 flex w-fit items-center gap-2 text-sm leading-snug font-medium underline-offset-4", className),
|
|
1469
|
+
...props
|
|
1470
|
+
});
|
|
1471
|
+
}
|
|
1472
|
+
function ItemDescription({ density, className, ...props }) {
|
|
1473
|
+
return /* @__PURE__ */ jsx17("p", {
|
|
1474
|
+
"data-density": density,
|
|
1475
|
+
"data-slot": "item-description",
|
|
1476
|
+
className: cn2("line-clamp-2 text-start text-sm leading-normal font-normal text-muted-foreground group-data-[size=xs]/item:text-xs [&>a]:underline [&>a]:underline-offset-4 [&>a:hover]:text-primary", className),
|
|
1477
|
+
...props
|
|
1478
|
+
});
|
|
1479
|
+
}
|
|
1480
|
+
function ItemActions({ density, className, ...props }) {
|
|
1481
|
+
return /* @__PURE__ */ jsx17("div", {
|
|
1482
|
+
"data-density": density,
|
|
1483
|
+
"data-slot": "item-actions",
|
|
1484
|
+
className: cn2("flex items-center gap-2", className),
|
|
1485
|
+
...props
|
|
1486
|
+
});
|
|
1487
|
+
}
|
|
1488
|
+
function ItemHeader({ density, className, ...props }) {
|
|
1489
|
+
return /* @__PURE__ */ jsx17("div", {
|
|
1490
|
+
"data-density": density,
|
|
1491
|
+
"data-slot": "item-header",
|
|
1492
|
+
className: cn2("flex basis-full items-center justify-between gap-2", className),
|
|
1493
|
+
...props
|
|
1494
|
+
});
|
|
1495
|
+
}
|
|
1496
|
+
function ItemFooter({ density, className, ...props }) {
|
|
1497
|
+
return /* @__PURE__ */ jsx17("div", {
|
|
1498
|
+
"data-density": density,
|
|
1499
|
+
"data-slot": "item-footer",
|
|
1500
|
+
className: cn2("flex basis-full items-center justify-between gap-2", className),
|
|
1501
|
+
...props
|
|
1502
|
+
});
|
|
1503
|
+
}
|
|
1504
|
+
// src/components/Pagination.tsx
|
|
1505
|
+
import { ChevronLeftIcon, ChevronRightIcon as ChevronRightIcon2, MoreHorizontalIcon as MoreHorizontalIcon2 } from "lucide-react";
|
|
1506
|
+
import { jsx as jsx18, jsxs as jsxs11 } from "react/jsx-runtime";
|
|
1507
|
+
function Pagination({ density, className, ...props }) {
|
|
1508
|
+
return /* @__PURE__ */ jsx18("nav", {
|
|
1509
|
+
role: "navigation",
|
|
1510
|
+
"aria-label": "pagination",
|
|
1511
|
+
"data-density": density,
|
|
1512
|
+
"data-slot": "pagination",
|
|
1513
|
+
className: cn2("mx-auto flex w-full justify-center", className),
|
|
1514
|
+
...props
|
|
1515
|
+
});
|
|
1516
|
+
}
|
|
1517
|
+
function PaginationContent({ density, className, ...props }) {
|
|
1518
|
+
return /* @__PURE__ */ jsx18("ul", {
|
|
1519
|
+
"data-density": density,
|
|
1520
|
+
"data-slot": "pagination-content",
|
|
1521
|
+
className: cn2("flex items-center gap-0.5", className),
|
|
1522
|
+
...props
|
|
1523
|
+
});
|
|
1524
|
+
}
|
|
1525
|
+
function PaginationItem({ ...props }) {
|
|
1526
|
+
return /* @__PURE__ */ jsx18("li", {
|
|
1527
|
+
"data-slot": "pagination-item",
|
|
1528
|
+
...props
|
|
1529
|
+
});
|
|
1530
|
+
}
|
|
1531
|
+
function PaginationLink({
|
|
1532
|
+
density,
|
|
1533
|
+
className,
|
|
1534
|
+
isActive,
|
|
1535
|
+
size = "icon",
|
|
1536
|
+
...props
|
|
1537
|
+
}) {
|
|
1538
|
+
return /* @__PURE__ */ jsx18("a", {
|
|
1539
|
+
"data-density": density,
|
|
1540
|
+
className: cn2(buttonVariants2({ variant: isActive ? "outline" : "ghost", size }), className),
|
|
1541
|
+
"aria-current": isActive ? "page" : undefined,
|
|
1542
|
+
"data-slot": "pagination-link",
|
|
1543
|
+
"data-active": isActive,
|
|
1544
|
+
...props
|
|
1545
|
+
});
|
|
1546
|
+
}
|
|
1547
|
+
function PaginationPrevious({
|
|
1548
|
+
density,
|
|
1549
|
+
className,
|
|
1550
|
+
text = "Previous",
|
|
1551
|
+
...props
|
|
1552
|
+
}) {
|
|
1553
|
+
return /* @__PURE__ */ jsxs11(PaginationLink, {
|
|
1554
|
+
density,
|
|
1555
|
+
"aria-label": "Go to previous page",
|
|
1556
|
+
size: "default",
|
|
1557
|
+
className: cn2("ps-1.5!", className),
|
|
1558
|
+
...props,
|
|
1559
|
+
children: [
|
|
1560
|
+
/* @__PURE__ */ jsx18(ChevronLeftIcon, {
|
|
1561
|
+
"data-icon": "inline-start",
|
|
1562
|
+
className: "rtl:rotate-180"
|
|
1563
|
+
}),
|
|
1564
|
+
/* @__PURE__ */ jsx18("span", {
|
|
1565
|
+
className: "hidden sm:block",
|
|
1566
|
+
children: text
|
|
1567
|
+
})
|
|
1568
|
+
]
|
|
1569
|
+
});
|
|
1570
|
+
}
|
|
1571
|
+
function PaginationNext({ density, className, text = "Next", ...props }) {
|
|
1572
|
+
return /* @__PURE__ */ jsxs11(PaginationLink, {
|
|
1573
|
+
density,
|
|
1574
|
+
"aria-label": "Go to next page",
|
|
1575
|
+
size: "default",
|
|
1576
|
+
className: cn2("pe-1.5!", className),
|
|
1577
|
+
...props,
|
|
1578
|
+
children: [
|
|
1579
|
+
/* @__PURE__ */ jsx18("span", {
|
|
1580
|
+
className: "hidden sm:block",
|
|
1581
|
+
children: text
|
|
1582
|
+
}),
|
|
1583
|
+
/* @__PURE__ */ jsx18(ChevronRightIcon2, {
|
|
1584
|
+
"data-icon": "inline-end",
|
|
1585
|
+
className: "rtl:rotate-180"
|
|
1586
|
+
})
|
|
1587
|
+
]
|
|
1588
|
+
});
|
|
1589
|
+
}
|
|
1590
|
+
function PaginationEllipsis({ density, className, ...props }) {
|
|
1591
|
+
return /* @__PURE__ */ jsxs11("span", {
|
|
1592
|
+
"aria-hidden": true,
|
|
1593
|
+
"data-density": density,
|
|
1594
|
+
"data-slot": "pagination-ellipsis",
|
|
1595
|
+
className: cn2("flex size-control items-center justify-center [&_svg:not([class*='size-'])]:size-4", className),
|
|
1596
|
+
...props,
|
|
1597
|
+
children: [
|
|
1598
|
+
/* @__PURE__ */ jsx18(MoreHorizontalIcon2, {}),
|
|
1599
|
+
/* @__PURE__ */ jsx18("span", {
|
|
1600
|
+
className: "sr-only",
|
|
1601
|
+
children: "More pages"
|
|
1602
|
+
})
|
|
1603
|
+
]
|
|
1604
|
+
});
|
|
1605
|
+
}
|
|
1606
|
+
// src/components/ScrollArea.tsx
|
|
1607
|
+
import { ScrollArea as ScrollAreaPrimitive } from "@base-ui/react/scroll-area";
|
|
1608
|
+
import { jsx as jsx19, jsxs as jsxs12 } from "react/jsx-runtime";
|
|
1609
|
+
function ScrollArea({
|
|
1610
|
+
density,
|
|
1611
|
+
className,
|
|
1612
|
+
children,
|
|
1613
|
+
scrollbars = /* @__PURE__ */ jsx19(ScrollBar, {}),
|
|
1614
|
+
...props
|
|
1615
|
+
}) {
|
|
1616
|
+
return /* @__PURE__ */ jsxs12(ScrollAreaPrimitive.Root, {
|
|
1617
|
+
"data-density": density,
|
|
1618
|
+
"data-slot": "scroll-area",
|
|
1619
|
+
className: (state) => cn2("relative", typeof className === "function" ? className(state) : className),
|
|
1620
|
+
...props,
|
|
1621
|
+
children: [
|
|
1622
|
+
/* @__PURE__ */ jsx19(ScrollAreaPrimitive.Viewport, {
|
|
1623
|
+
"data-slot": "scroll-area-viewport",
|
|
1624
|
+
className: "size-full rounded-[inherit] transition-[color,box-shadow] outline-none focus-visible:ring-1 focus-visible:ring-ring focus-visible:outline-1",
|
|
1625
|
+
children
|
|
1626
|
+
}),
|
|
1627
|
+
scrollbars,
|
|
1628
|
+
/* @__PURE__ */ jsx19(ScrollAreaPrimitive.Corner, {})
|
|
1629
|
+
]
|
|
1630
|
+
});
|
|
1631
|
+
}
|
|
1632
|
+
function ScrollBar({ density, className, orientation = "vertical", ...props }) {
|
|
1633
|
+
return /* @__PURE__ */ jsx19(ScrollAreaPrimitive.Scrollbar, {
|
|
1634
|
+
"data-density": density,
|
|
1635
|
+
"data-slot": "scroll-area-scrollbar",
|
|
1636
|
+
"data-orientation": orientation,
|
|
1637
|
+
orientation,
|
|
1638
|
+
className: (state) => cn2("flex touch-none p-px transition-colors select-none data-[orientation=horizontal]:h-2.5 data-[orientation=horizontal]:flex-col data-[orientation=horizontal]:border-t data-[orientation=horizontal]:border-t-transparent data-[orientation=vertical]:w-2.5 data-[orientation=vertical]:border-s data-[orientation=vertical]:border-s-transparent", typeof className === "function" ? className(state) : className),
|
|
1639
|
+
...props,
|
|
1640
|
+
children: /* @__PURE__ */ jsx19(ScrollAreaPrimitive.Thumb, {
|
|
1641
|
+
"data-slot": "scroll-area-thumb",
|
|
1642
|
+
className: "relative flex-1 rounded-full bg-border"
|
|
1643
|
+
})
|
|
1644
|
+
});
|
|
1645
|
+
}
|
|
1646
|
+
// src/components/Drawer.tsx
|
|
1647
|
+
import { useMemo as useMemo2 } from "react";
|
|
1648
|
+
|
|
1649
|
+
// src/drawer/DrawerContext.ts
|
|
1650
|
+
import { createContext as createContext2 } from "react";
|
|
1651
|
+
var DrawerContext = createContext2(null);
|
|
1652
|
+
|
|
1653
|
+
// src/hooks/useDrawer.ts
|
|
1654
|
+
import { useContext as useContext2 } from "react";
|
|
1655
|
+
function useDrawer() {
|
|
1656
|
+
const context = useContext2(DrawerContext);
|
|
1657
|
+
if (!context) {
|
|
1658
|
+
throw new Error("useDrawer must be used within a Drawer.");
|
|
1659
|
+
}
|
|
1660
|
+
return context;
|
|
1661
|
+
}
|
|
1662
|
+
|
|
1663
|
+
// src/components/Drawer.tsx
|
|
1664
|
+
import { Drawer as DrawerPrimitive } from "@base-ui/react/drawer";
|
|
1665
|
+
import { jsx as jsx20, jsxs as jsxs13 } from "react/jsx-runtime";
|
|
1666
|
+
function Drawer({
|
|
1667
|
+
modal = true,
|
|
1668
|
+
showSwipeHandle = false,
|
|
1669
|
+
snapPoints,
|
|
1670
|
+
swipeDirection = "down",
|
|
1671
|
+
...props
|
|
1672
|
+
}) {
|
|
1673
|
+
const hasSnapPoints = snapPoints != null && snapPoints.length > 0;
|
|
1674
|
+
const contextValue = useMemo2(() => ({ hasSnapPoints, modal, showSwipeHandle, swipeDirection }), [hasSnapPoints, modal, showSwipeHandle, swipeDirection]);
|
|
1675
|
+
return /* @__PURE__ */ jsx20(DrawerContext.Provider, {
|
|
1676
|
+
value: contextValue,
|
|
1677
|
+
children: /* @__PURE__ */ jsx20(DrawerPrimitive.Root, {
|
|
1678
|
+
"data-slot": "drawer",
|
|
1679
|
+
modal,
|
|
1680
|
+
snapPoints,
|
|
1681
|
+
swipeDirection,
|
|
1682
|
+
...props
|
|
1683
|
+
})
|
|
1684
|
+
});
|
|
1685
|
+
}
|
|
1686
|
+
function DrawerTrigger({ ...props }) {
|
|
1687
|
+
return /* @__PURE__ */ jsx20(DrawerPrimitive.Trigger, {
|
|
1688
|
+
"data-slot": "drawer-trigger",
|
|
1689
|
+
...props
|
|
1690
|
+
});
|
|
1691
|
+
}
|
|
1692
|
+
function DrawerPortal({ container, ...props }) {
|
|
1693
|
+
const resolvedContainer = usePortalContainer2(container);
|
|
1694
|
+
return /* @__PURE__ */ jsx20(DrawerPrimitive.Portal, {
|
|
1695
|
+
"data-slot": "drawer-portal",
|
|
1696
|
+
container: resolvedContainer,
|
|
1697
|
+
...props
|
|
1698
|
+
});
|
|
1699
|
+
}
|
|
1700
|
+
function DrawerClose({ ...props }) {
|
|
1701
|
+
return /* @__PURE__ */ jsx20(DrawerPrimitive.Close, {
|
|
1702
|
+
"data-slot": "drawer-close",
|
|
1703
|
+
...props
|
|
1704
|
+
});
|
|
1705
|
+
}
|
|
1706
|
+
function DrawerOverlay({ density, className, ...props }) {
|
|
1707
|
+
const resolvedDensity = useDensity(density);
|
|
1708
|
+
return /* @__PURE__ */ jsx20(DrawerPrimitive.Backdrop, {
|
|
1709
|
+
"data-density": resolvedDensity,
|
|
1710
|
+
"data-slot": "drawer-overlay",
|
|
1711
|
+
className: (state) => cn2("fixed inset-0 min-h-dvh bg-backdrop opacity-[max(var(--drawer-overlay-min-opacity,0),calc(1-var(--drawer-swipe-progress)))] transition-opacity duration-450 ease-[cubic-bezier(0.32,0.72,0,1)] select-none data-ending-style:pointer-events-none data-ending-style:opacity-0 data-ending-style:duration-[calc(var(--drawer-swipe-strength)*400ms)] data-snap-points:[--drawer-overlay-min-opacity:0.5] data-starting-style:opacity-0 data-swiping:duration-0 supports-[-webkit-touch-callout:none]:absolute", typeof className === "function" ? className(state) : className),
|
|
1712
|
+
...props
|
|
1713
|
+
});
|
|
1714
|
+
}
|
|
1715
|
+
function DrawerSwipeHandle({ density, className, ...props }) {
|
|
1716
|
+
return /* @__PURE__ */ jsx20("div", {
|
|
1717
|
+
"data-density": density,
|
|
1718
|
+
"data-slot": "drawer-swipe-handle",
|
|
1719
|
+
"aria-hidden": "true",
|
|
1720
|
+
className: cn2("relative flex shrink-0 cursor-grab transition-opacity duration-200 group-data-nested-drawer-open/drawer-popup:opacity-0 group-data-nested-drawer-swiping/drawer-popup:opacity-100 group-data-[swipe-axis=x]/drawer-popup:h-full group-data-[swipe-axis=x]/drawer-popup:w-3 group-data-[swipe-axis=x]/drawer-popup:items-center group-data-[swipe-axis=y]/drawer-popup:h-3 group-data-[swipe-axis=y]/drawer-popup:w-full group-data-[swipe-axis=y]/drawer-popup:justify-center group-data-[swipe-direction=down]/drawer-popup:items-end group-data-[swipe-direction=left]/drawer-popup:order-last group-data-[swipe-direction=left]/drawer-popup:justify-start group-data-[swipe-direction=right]/drawer-popup:justify-end group-data-[swipe-direction=up]/drawer-popup:order-last group-data-[swipe-direction=up]/drawer-popup:items-start after:block after:shrink-0 after:rounded-full after:bg-muted group-data-[swipe-axis=x]/drawer-popup:after:h-24 group-data-[swipe-axis=x]/drawer-popup:after:w-1 group-data-[swipe-axis=y]/drawer-popup:after:h-1 group-data-[swipe-axis=y]/drawer-popup:after:w-24 active:cursor-grabbing", className),
|
|
1721
|
+
...props
|
|
1722
|
+
});
|
|
1723
|
+
}
|
|
1724
|
+
function DrawerContent({ density, className, children, ...props }) {
|
|
1725
|
+
const resolvedDensity = useDensity(density);
|
|
1726
|
+
const direction = useDirection2();
|
|
1727
|
+
const { hasSnapPoints, modal, showSwipeHandle, swipeDirection } = useDrawer();
|
|
1728
|
+
const swipeAxis = swipeDirection === "down" || swipeDirection === "up" ? "y" : "x";
|
|
1729
|
+
return /* @__PURE__ */ jsxs13(DrawerPortal, {
|
|
1730
|
+
"data-slot": "drawer-portal",
|
|
1731
|
+
children: [
|
|
1732
|
+
modal === true && /* @__PURE__ */ jsx20(DrawerOverlay, {
|
|
1733
|
+
"data-snap-points": hasSnapPoints ? "" : undefined
|
|
1734
|
+
}),
|
|
1735
|
+
/* @__PURE__ */ jsx20(DrawerPrimitive.Viewport, {
|
|
1736
|
+
dir: direction,
|
|
1737
|
+
"data-slot": "drawer-viewport",
|
|
1738
|
+
"data-modal": modal,
|
|
1739
|
+
className: "pointer-events-none fixed inset-0 select-none data-[modal=true]:pointer-events-auto",
|
|
1740
|
+
children: /* @__PURE__ */ jsxs13(DrawerPrimitive.Popup, {
|
|
1741
|
+
"data-density": resolvedDensity,
|
|
1742
|
+
"data-slot": "drawer-popup",
|
|
1743
|
+
"data-swipe-axis": swipeAxis,
|
|
1744
|
+
"data-snap-points": hasSnapPoints ? "" : undefined,
|
|
1745
|
+
className: (state) => cn2("group/drawer-popup pointer-events-auto fixed m-(--drawer-inset,0px) flex h-(--drawer-content-height) max-h-(--drawer-content-max-height,none) min-h-0 w-(--drawer-content-width,auto) transform-[translate3d(var(--translate-x,0px),var(--translate-y,0px),0)] flex-col border border-frame-edge shadow-frame bg-popover text-sm text-popover-foreground transition-[transform,height,opacity,filter] duration-450 ease-[cubic-bezier(0.22,1,0.36,1)] will-change-transform outline-none select-none [interpolate-size:allow-keywords] data-[swipe-direction=down]:rounded-t-md data-[swipe-direction=down]:border-t data-[swipe-direction=left]:rounded-r-md data-[swipe-direction=left]:border-r data-[swipe-direction=right]:rounded-l-md data-[swipe-direction=right]:border-l data-[swipe-direction=up]:rounded-b-md data-[swipe-direction=up]:border-b", "data-nested-drawer-open:overflow-hidden data-nested-drawer-open:brightness-95", "after:pointer-events-none after:absolute after:bg-(--drawer-bleed-background,var(--color-popover)) data-[swipe-axis=x]:after:inset-y-0 data-[swipe-axis=x]:after:w-(--bleed) data-[swipe-axis=y]:after:inset-x-0 data-[swipe-axis=y]:after:h-(--bleed) data-[swipe-direction=down]:after:top-full data-[swipe-direction=left]:after:right-full data-[swipe-direction=right]:after:left-full data-[swipe-direction=up]:after:bottom-full", "[--drawer-content-height:var(--drawer-height,auto)] data-[swipe-axis=x]:[--drawer-content-width:75%] data-[swipe-axis=y]:[--drawer-content-max-height:calc(100dvh-6rem)] data-[swipe-axis=y]:data-snap-points:[--drawer-content-height:100dvh] data-[swipe-axis=x]:sm:[--drawer-content-width:24rem]", "[--bleed:3rem] [--peek:1rem] [--stack-height:var(--drawer-frontmost-height,var(--drawer-height,0px))] [--stack-peek-offset:max(0px,calc((var(--nested-drawers)-var(--stack-progress))*var(--peek)))] [--stack-progress:clamp(0,var(--drawer-swipe-progress),1)] [--stack-shrink:0]", "data-ending-style:transform-(--closed-transform) data-ending-style:opacity-[0.9999] data-ending-style:duration-[calc(var(--drawer-swipe-strength)*400ms)] data-nested-drawer-swiping:duration-0 data-ending-style:data-nested-drawer-swiping:duration-[calc(var(--drawer-swipe-strength)*400ms)] data-starting-style:transform-(--closed-transform) data-swiping:duration-0 data-ending-style:data-swiping:duration-[calc(var(--drawer-swipe-strength)*400ms)]", "data-[swipe-axis=y]:inset-x-0 data-[swipe-axis=y]:data-nested-drawer-open:h-(--stack-height)", "data-[swipe-axis=x]:inset-y-0 data-[swipe-axis=x]:flex-row", "data-[swipe-direction=down]:bottom-0 data-[swipe-direction=down]:origin-bottom data-[swipe-direction=down]:[--closed-transform:translate3d(0,calc(100%+var(--drawer-inset,0px)+2px),0)] data-[swipe-direction=down]:[--translate-y:calc(var(--drawer-snap-point-offset,0px)+var(--drawer-swipe-movement-y)-var(--stack-peek-offset)-(var(--stack-shrink)*var(--stack-height)))]", "data-[swipe-direction=up]:top-0 data-[swipe-direction=up]:origin-top data-[swipe-direction=up]:[--closed-transform:translate3d(0,calc(-100%-var(--drawer-inset,0px)-2px),0)] data-[swipe-direction=up]:[--translate-y:calc(var(--drawer-snap-point-offset,0px)+var(--drawer-swipe-movement-y)+var(--stack-peek-offset)+(var(--stack-shrink)*var(--stack-height)))]", "data-[swipe-direction=left]:left-0 data-[swipe-direction=left]:origin-left data-[swipe-direction=left]:[--closed-transform:translate3d(calc(-100%-var(--drawer-inset,0px)-2px),0,0)] data-[swipe-direction=left]:[--translate-x:calc(var(--drawer-swipe-movement-x)+var(--stack-peek-offset)+(var(--stack-shrink)*100%))]", "data-[swipe-direction=right]:right-0 data-[swipe-direction=right]:origin-right data-[swipe-direction=right]:[--closed-transform:translate3d(calc(100%+var(--drawer-inset,0px)+2px),0,0)] data-[swipe-direction=right]:[--translate-x:calc(var(--drawer-swipe-movement-x)-var(--stack-peek-offset)-(var(--stack-shrink)*100%))]", typeof className === "function" ? className(state) : className),
|
|
1746
|
+
...props,
|
|
1747
|
+
children: [
|
|
1748
|
+
showSwipeHandle && /* @__PURE__ */ jsx20(DrawerSwipeHandle, {}),
|
|
1749
|
+
/* @__PURE__ */ jsx20(DrawerPrimitive.Content, {
|
|
1750
|
+
"data-slot": "drawer-content",
|
|
1751
|
+
className: "flex min-h-0 flex-1 flex-col overflow-hidden overscroll-contain rounded-[inherit] transition-opacity duration-300 ease-out select-text group-data-nested-drawer-open/drawer-popup:opacity-0 group-data-nested-drawer-swiping/drawer-popup:opacity-100 group-data-swiping/drawer-popup:select-none",
|
|
1752
|
+
children
|
|
1753
|
+
})
|
|
1754
|
+
]
|
|
1755
|
+
})
|
|
1756
|
+
})
|
|
1757
|
+
]
|
|
1758
|
+
});
|
|
1759
|
+
}
|
|
1760
|
+
function DrawerHeader({ density, className, ...props }) {
|
|
1761
|
+
return /* @__PURE__ */ jsx20("div", {
|
|
1762
|
+
"data-density": density,
|
|
1763
|
+
"data-slot": "drawer-header",
|
|
1764
|
+
className: cn2("flex shrink-0 flex-col gap-0.5 p-panel pb-0 group-data-[swipe-axis=y]/drawer-popup:text-center md:gap-0.5 md:text-start md:group-data-[swipe-axis=y]/drawer-popup:text-start", className),
|
|
1765
|
+
...props
|
|
1766
|
+
});
|
|
1767
|
+
}
|
|
1768
|
+
function DrawerFooter({ density, className, ...props }) {
|
|
1769
|
+
return /* @__PURE__ */ jsx20("div", {
|
|
1770
|
+
"data-density": density,
|
|
1771
|
+
"data-slot": "drawer-footer",
|
|
1772
|
+
className: cn2("mt-auto flex shrink-0 flex-col gap-2 p-panel pt-0", className),
|
|
1773
|
+
...props
|
|
1774
|
+
});
|
|
1775
|
+
}
|
|
1776
|
+
function DrawerTitle({ density, className, ...props }) {
|
|
1777
|
+
return /* @__PURE__ */ jsx20(DrawerPrimitive.Title, {
|
|
1778
|
+
"data-density": density,
|
|
1779
|
+
"data-slot": "drawer-title",
|
|
1780
|
+
className: (state) => cn2(" text-base font-medium text-foreground", typeof className === "function" ? className(state) : className),
|
|
1781
|
+
...props
|
|
1782
|
+
});
|
|
1783
|
+
}
|
|
1784
|
+
function DrawerDescription({ density, className, ...props }) {
|
|
1785
|
+
return /* @__PURE__ */ jsx20(DrawerPrimitive.Description, {
|
|
1786
|
+
"data-density": density,
|
|
1787
|
+
"data-slot": "drawer-description",
|
|
1788
|
+
className: (state) => cn2("text-sm text-balance text-muted-foreground", typeof className === "function" ? className(state) : className),
|
|
1789
|
+
...props
|
|
1790
|
+
});
|
|
1791
|
+
}
|
|
1792
|
+
// src/components/ContextMenu.tsx
|
|
1793
|
+
import { ChevronRightIcon as ChevronRightIcon3, CheckIcon as CheckIcon3 } from "lucide-react";
|
|
1794
|
+
import { useDirection as useDirection5 } from "@base-ui/react/direction-provider";
|
|
1795
|
+
import { ContextMenu as ContextMenuPrimitive } from "@base-ui/react/context-menu";
|
|
1796
|
+
import { jsx as jsx21, jsxs as jsxs14 } from "react/jsx-runtime";
|
|
1797
|
+
function ContextMenu({ ...props }) {
|
|
1798
|
+
return /* @__PURE__ */ jsx21(ContextMenuPrimitive.Root, {
|
|
1799
|
+
"data-slot": "context-menu",
|
|
1800
|
+
...props
|
|
1801
|
+
});
|
|
1802
|
+
}
|
|
1803
|
+
function ContextMenuPortal({ container, ...props }) {
|
|
1804
|
+
const resolvedContainer = usePortalContainer2(container);
|
|
1805
|
+
return /* @__PURE__ */ jsx21(ContextMenuPrimitive.Portal, {
|
|
1806
|
+
"data-slot": "context-menu-portal",
|
|
1807
|
+
container: resolvedContainer,
|
|
1808
|
+
...props
|
|
1809
|
+
});
|
|
1810
|
+
}
|
|
1811
|
+
function ContextMenuTrigger({ density, className, ...props }) {
|
|
1812
|
+
return /* @__PURE__ */ jsx21(ContextMenuPrimitive.Trigger, {
|
|
1813
|
+
"data-density": density,
|
|
1814
|
+
"data-slot": "context-menu-trigger",
|
|
1815
|
+
className: (state) => cn2("select-none", typeof className === "function" ? className(state) : className),
|
|
1816
|
+
...props
|
|
1817
|
+
});
|
|
1818
|
+
}
|
|
1819
|
+
function ContextMenuContent({
|
|
1820
|
+
density,
|
|
1821
|
+
className,
|
|
1822
|
+
align = "start",
|
|
1823
|
+
alignOffset = 4,
|
|
1824
|
+
side = "right",
|
|
1825
|
+
sideOffset = 0,
|
|
1826
|
+
...props
|
|
1827
|
+
}) {
|
|
1828
|
+
const resolvedDensity = useDensity(density);
|
|
1829
|
+
const direction = useDirection5();
|
|
1830
|
+
return /* @__PURE__ */ jsx21(ContextMenuPortal, {
|
|
1831
|
+
children: /* @__PURE__ */ jsx21(ContextMenuPrimitive.Positioner, {
|
|
1832
|
+
dir: direction,
|
|
1833
|
+
className: "isolate outline-none",
|
|
1834
|
+
align,
|
|
1835
|
+
alignOffset,
|
|
1836
|
+
side,
|
|
1837
|
+
sideOffset,
|
|
1838
|
+
children: /* @__PURE__ */ jsx21(ContextMenuPrimitive.Popup, {
|
|
1839
|
+
dir: direction,
|
|
1840
|
+
"data-density": resolvedDensity,
|
|
1841
|
+
"data-slot": "context-menu-content",
|
|
1842
|
+
className: (state) => cn2(" max-h-(--available-height) min-w-36 origin-(--transform-origin) overflow-x-hidden overflow-y-auto rounded-sm bg-popover p-1 text-popover-foreground border border-frame-edge shadow-frame duration-100 outline-none data-open:animate-in data-open:fade-in-0 data-closed:animate-out data-closed:fade-out-0 motion-reduce:data-open:animate-none motion-reduce:data-closed:animate-none ", typeof className === "function" ? className(state) : className),
|
|
1843
|
+
...props
|
|
1844
|
+
})
|
|
1845
|
+
})
|
|
1846
|
+
});
|
|
1847
|
+
}
|
|
1848
|
+
function ContextMenuGroup({ ...props }) {
|
|
1849
|
+
return /* @__PURE__ */ jsx21(ContextMenuPrimitive.Group, {
|
|
1850
|
+
"data-slot": "context-menu-group",
|
|
1851
|
+
...props
|
|
1852
|
+
});
|
|
1853
|
+
}
|
|
1854
|
+
function ContextMenuLabel({ density, className, inset, ...props }) {
|
|
1855
|
+
return /* @__PURE__ */ jsx21(ContextMenuPrimitive.GroupLabel, {
|
|
1856
|
+
"data-density": density,
|
|
1857
|
+
"data-slot": "context-menu-label",
|
|
1858
|
+
"data-inset": inset,
|
|
1859
|
+
className: (state) => cn2("px-1.5 py-1 text-xs font-medium text-muted-foreground data-inset:ps-7", typeof className === "function" ? className(state) : className),
|
|
1860
|
+
...props
|
|
1861
|
+
});
|
|
1862
|
+
}
|
|
1863
|
+
function ContextMenuItem({ density, className, inset, variant = "default", ...props }) {
|
|
1864
|
+
return /* @__PURE__ */ jsx21(ContextMenuPrimitive.Item, {
|
|
1865
|
+
"data-density": density,
|
|
1866
|
+
"data-slot": "context-menu-item",
|
|
1867
|
+
"data-inset": inset,
|
|
1868
|
+
"data-variant": variant,
|
|
1869
|
+
className: (state) => cn2("group/context-menu-item relative flex cursor-default items-center gap-control-gap rounded-md px-1.5 py-1 text-sm outline-hidden select-none focus:bg-accent focus:text-accent-foreground data-inset:ps-7 data-[variant=destructive]:text-destructive data-[variant=destructive]:focus:bg-destructive/10 data-[variant=destructive]:focus:text-destructive data-disabled:pointer-events-none data-disabled:opacity-50 [&_svg]:pointer-events-none [&_svg]:shrink-0 [&_svg:not([class*='size-'])]:size-4 focus:*:[svg]:text-accent-foreground data-[variant=destructive]:*:[svg]:text-destructive", typeof className === "function" ? className(state) : className),
|
|
1870
|
+
...props
|
|
1871
|
+
});
|
|
1872
|
+
}
|
|
1873
|
+
function ContextMenuSub({ ...props }) {
|
|
1874
|
+
return /* @__PURE__ */ jsx21(ContextMenuPrimitive.SubmenuRoot, {
|
|
1875
|
+
"data-slot": "context-menu-sub",
|
|
1876
|
+
...props
|
|
1877
|
+
});
|
|
1878
|
+
}
|
|
1879
|
+
function ContextMenuSubTrigger({ density, className, inset, children, ...props }) {
|
|
1880
|
+
return /* @__PURE__ */ jsxs14(ContextMenuPrimitive.SubmenuTrigger, {
|
|
1881
|
+
"data-density": density,
|
|
1882
|
+
"data-slot": "context-menu-sub-trigger",
|
|
1883
|
+
"data-inset": inset,
|
|
1884
|
+
className: (state) => cn2("flex cursor-default items-center gap-control-gap rounded-md px-1.5 py-1 text-sm outline-hidden select-none focus:bg-accent focus:text-accent-foreground data-inset:ps-7 data-open:bg-accent data-open:text-accent-foreground [&_svg]:pointer-events-none [&_svg]:shrink-0 [&_svg:not([class*='size-'])]:size-4", typeof className === "function" ? className(state) : className),
|
|
1885
|
+
...props,
|
|
1886
|
+
children: [
|
|
1887
|
+
children,
|
|
1888
|
+
/* @__PURE__ */ jsx21(ChevronRightIcon3, {
|
|
1889
|
+
className: "rtl:rotate-180 ms-auto"
|
|
1890
|
+
})
|
|
1891
|
+
]
|
|
1892
|
+
});
|
|
1893
|
+
}
|
|
1894
|
+
function ContextMenuSubContent({ ...props }) {
|
|
1895
|
+
return /* @__PURE__ */ jsx21(ContextMenuContent, {
|
|
1896
|
+
"data-slot": "context-menu-sub-content",
|
|
1897
|
+
className: " shadow-frame border border-frame-edge",
|
|
1898
|
+
side: "inline-end",
|
|
1899
|
+
...props
|
|
1900
|
+
});
|
|
1901
|
+
}
|
|
1902
|
+
function ContextMenuCheckboxItem({
|
|
1903
|
+
density,
|
|
1904
|
+
className,
|
|
1905
|
+
children,
|
|
1906
|
+
checked,
|
|
1907
|
+
inset,
|
|
1908
|
+
...props
|
|
1909
|
+
}) {
|
|
1910
|
+
return /* @__PURE__ */ jsxs14(ContextMenuPrimitive.CheckboxItem, {
|
|
1911
|
+
"data-density": density,
|
|
1912
|
+
"data-slot": "context-menu-checkbox-item",
|
|
1913
|
+
"data-inset": inset,
|
|
1914
|
+
className: (state) => cn2("relative flex cursor-default items-center gap-control-gap rounded-md py-1 pe-8 ps-1.5 text-sm outline-hidden select-none focus:bg-accent focus:text-accent-foreground data-inset:ps-7 data-disabled:pointer-events-none data-disabled:opacity-50 [&_svg]:pointer-events-none [&_svg]:shrink-0 [&_svg:not([class*='size-'])]:size-4", typeof className === "function" ? className(state) : className),
|
|
1915
|
+
checked,
|
|
1916
|
+
...props,
|
|
1917
|
+
children: [
|
|
1918
|
+
/* @__PURE__ */ jsx21("span", {
|
|
1919
|
+
className: "pointer-events-none absolute end-2",
|
|
1920
|
+
children: /* @__PURE__ */ jsx21(ContextMenuPrimitive.CheckboxItemIndicator, {
|
|
1921
|
+
children: /* @__PURE__ */ jsx21(CheckIcon3, {})
|
|
1922
|
+
})
|
|
1923
|
+
}),
|
|
1924
|
+
children
|
|
1925
|
+
]
|
|
1926
|
+
});
|
|
1927
|
+
}
|
|
1928
|
+
function ContextMenuRadioGroup({ ...props }) {
|
|
1929
|
+
return /* @__PURE__ */ jsx21(ContextMenuPrimitive.RadioGroup, {
|
|
1930
|
+
"data-slot": "context-menu-radio-group",
|
|
1931
|
+
...props
|
|
1932
|
+
});
|
|
1933
|
+
}
|
|
1934
|
+
function ContextMenuRadioItem({ density, className, children, inset, ...props }) {
|
|
1935
|
+
return /* @__PURE__ */ jsxs14(ContextMenuPrimitive.RadioItem, {
|
|
1936
|
+
"data-density": density,
|
|
1937
|
+
"data-slot": "context-menu-radio-item",
|
|
1938
|
+
"data-inset": inset,
|
|
1939
|
+
className: (state) => cn2("relative flex cursor-default items-center gap-control-gap rounded-md py-1 pe-8 ps-1.5 text-sm outline-hidden select-none focus:bg-accent focus:text-accent-foreground data-inset:ps-7 data-disabled:pointer-events-none data-disabled:opacity-50 [&_svg]:pointer-events-none [&_svg]:shrink-0 [&_svg:not([class*='size-'])]:size-4", typeof className === "function" ? className(state) : className),
|
|
1940
|
+
...props,
|
|
1941
|
+
children: [
|
|
1942
|
+
/* @__PURE__ */ jsx21("span", {
|
|
1943
|
+
className: "pointer-events-none absolute end-2",
|
|
1944
|
+
children: /* @__PURE__ */ jsx21(ContextMenuPrimitive.RadioItemIndicator, {
|
|
1945
|
+
children: /* @__PURE__ */ jsx21(CheckIcon3, {})
|
|
1946
|
+
})
|
|
1947
|
+
}),
|
|
1948
|
+
children
|
|
1949
|
+
]
|
|
1950
|
+
});
|
|
1951
|
+
}
|
|
1952
|
+
function ContextMenuSeparator({ density, className, ...props }) {
|
|
1953
|
+
return /* @__PURE__ */ jsx21(ContextMenuPrimitive.Separator, {
|
|
1954
|
+
"data-density": density,
|
|
1955
|
+
"data-slot": "context-menu-separator",
|
|
1956
|
+
className: (state) => cn2("-mx-1 my-1 h-px bg-border", typeof className === "function" ? className(state) : className),
|
|
1957
|
+
...props
|
|
1958
|
+
});
|
|
1959
|
+
}
|
|
1960
|
+
function ContextMenuShortcut({ density, className, ...props }) {
|
|
1961
|
+
return /* @__PURE__ */ jsx21("span", {
|
|
1962
|
+
"data-density": density,
|
|
1963
|
+
"data-slot": "context-menu-shortcut",
|
|
1964
|
+
className: cn2("ms-auto text-xs tracking-widest text-muted-foreground group-focus/context-menu-item:text-accent-foreground", className),
|
|
1965
|
+
...props
|
|
1966
|
+
});
|
|
1967
|
+
}
|
|
1968
|
+
// src/components/Menubar.tsx
|
|
1969
|
+
import { CheckIcon as CheckIcon4 } from "lucide-react";
|
|
1970
|
+
import { Menu as MenuPrimitive } from "@base-ui/react/menu";
|
|
1971
|
+
import { Menubar as MenubarPrimitive } from "@base-ui/react/menubar";
|
|
1972
|
+
import { jsx as jsx22, jsxs as jsxs15 } from "react/jsx-runtime";
|
|
1973
|
+
function Menubar({ density, className, ...props }) {
|
|
1974
|
+
return /* @__PURE__ */ jsx22(MenubarPrimitive, {
|
|
1975
|
+
"data-density": density,
|
|
1976
|
+
"data-slot": "menubar",
|
|
1977
|
+
className: (state) => cn2("flex h-control items-center gap-0.5 rounded-sm border p-px", typeof className === "function" ? className(state) : className),
|
|
1978
|
+
...props
|
|
1979
|
+
});
|
|
1980
|
+
}
|
|
1981
|
+
function MenubarMenu({ ...props }) {
|
|
1982
|
+
return /* @__PURE__ */ jsx22(DropdownMenu2, {
|
|
1983
|
+
"data-slot": "menubar-menu",
|
|
1984
|
+
...props
|
|
1985
|
+
});
|
|
1986
|
+
}
|
|
1987
|
+
function MenubarGroup({ ...props }) {
|
|
1988
|
+
return /* @__PURE__ */ jsx22(DropdownMenuGroup2, {
|
|
1989
|
+
"data-slot": "menubar-group",
|
|
1990
|
+
...props
|
|
1991
|
+
});
|
|
1992
|
+
}
|
|
1993
|
+
function MenubarPortal({ ...props }) {
|
|
1994
|
+
return /* @__PURE__ */ jsx22(DropdownMenuPortal2, {
|
|
1995
|
+
"data-slot": "menubar-portal",
|
|
1996
|
+
...props
|
|
1997
|
+
});
|
|
1998
|
+
}
|
|
1999
|
+
function MenubarTrigger({ density, className, ...props }) {
|
|
2000
|
+
return /* @__PURE__ */ jsx22(DropdownMenuTrigger2, {
|
|
2001
|
+
"data-density": density,
|
|
2002
|
+
"data-slot": "menubar-trigger",
|
|
2003
|
+
className: (state) => cn2("flex h-full items-center rounded-sm px-control-x text-sm leading-none font-medium outline-hidden select-none hover:bg-muted aria-expanded:bg-muted", typeof className === "function" ? className(state) : className),
|
|
2004
|
+
...props
|
|
2005
|
+
});
|
|
2006
|
+
}
|
|
2007
|
+
function MenubarContent({
|
|
2008
|
+
density,
|
|
2009
|
+
className,
|
|
2010
|
+
align = "start",
|
|
2011
|
+
alignOffset = -4,
|
|
2012
|
+
sideOffset = 8,
|
|
2013
|
+
...props
|
|
2014
|
+
}) {
|
|
2015
|
+
return /* @__PURE__ */ jsx22(DropdownMenuContent2, {
|
|
2016
|
+
density,
|
|
2017
|
+
"data-slot": "menubar-content",
|
|
2018
|
+
align,
|
|
2019
|
+
alignOffset,
|
|
2020
|
+
sideOffset,
|
|
2021
|
+
className: (state) => cn2(" min-w-36 rounded-sm bg-popover p-1 text-popover-foreground border border-frame-edge shadow-frame duration-100 data-open:animate-in data-open:fade-in-0 ", typeof className === "function" ? className(state) : className),
|
|
2022
|
+
...props
|
|
2023
|
+
});
|
|
2024
|
+
}
|
|
2025
|
+
function MenubarItem({ density, className, inset, variant = "default", ...props }) {
|
|
2026
|
+
return /* @__PURE__ */ jsx22(DropdownMenuItem2, {
|
|
2027
|
+
density,
|
|
2028
|
+
"data-slot": "menubar-item",
|
|
2029
|
+
inset,
|
|
2030
|
+
variant,
|
|
2031
|
+
className: (state) => cn2("group/menubar-item gap-control-gap rounded-md px-1.5 py-1 text-sm focus:bg-accent focus:text-accent-foreground not-data-[variant=destructive]:focus:**:text-accent-foreground data-inset:ps-7 data-[variant=destructive]:text-destructive data-[variant=destructive]:focus:bg-destructive/10 data-[variant=destructive]:focus:text-destructive data-disabled:opacity-50 [&_svg:not([class*='size-'])]:size-4 data-[variant=destructive]:*:[svg]:text-destructive!", typeof className === "function" ? className(state) : className),
|
|
2032
|
+
...props
|
|
2033
|
+
});
|
|
2034
|
+
}
|
|
2035
|
+
function MenubarCheckboxItem({
|
|
2036
|
+
density,
|
|
2037
|
+
className,
|
|
2038
|
+
children,
|
|
2039
|
+
checked,
|
|
2040
|
+
inset,
|
|
2041
|
+
...props
|
|
2042
|
+
}) {
|
|
2043
|
+
return /* @__PURE__ */ jsxs15(MenuPrimitive.CheckboxItem, {
|
|
2044
|
+
"data-density": density,
|
|
2045
|
+
"data-slot": "menubar-checkbox-item",
|
|
2046
|
+
"data-inset": inset,
|
|
2047
|
+
className: (state) => cn2("relative flex cursor-default items-center gap-control-gap rounded-md py-1 pe-1.5 ps-7 text-sm outline-hidden select-none focus:bg-accent focus:text-accent-foreground focus:**:text-accent-foreground data-inset:ps-7 data-disabled:pointer-events-none data-disabled:opacity-50 [&_svg]:pointer-events-none [&_svg]:shrink-0", typeof className === "function" ? className(state) : className),
|
|
2048
|
+
checked,
|
|
2049
|
+
...props,
|
|
2050
|
+
children: [
|
|
2051
|
+
/* @__PURE__ */ jsx22("span", {
|
|
2052
|
+
className: "pointer-events-none absolute start-1.5 flex size-4 items-center justify-center [&_svg:not([class*='size-'])]:size-4",
|
|
2053
|
+
children: /* @__PURE__ */ jsx22(MenuPrimitive.CheckboxItemIndicator, {
|
|
2054
|
+
children: /* @__PURE__ */ jsx22(CheckIcon4, {})
|
|
2055
|
+
})
|
|
2056
|
+
}),
|
|
2057
|
+
children
|
|
2058
|
+
]
|
|
2059
|
+
});
|
|
2060
|
+
}
|
|
2061
|
+
function MenubarRadioGroup({ ...props }) {
|
|
2062
|
+
return /* @__PURE__ */ jsx22(DropdownMenuRadioGroup2, {
|
|
2063
|
+
"data-slot": "menubar-radio-group",
|
|
2064
|
+
...props
|
|
2065
|
+
});
|
|
2066
|
+
}
|
|
2067
|
+
function MenubarRadioItem({ density, className, children, inset, ...props }) {
|
|
2068
|
+
return /* @__PURE__ */ jsxs15(MenuPrimitive.RadioItem, {
|
|
2069
|
+
"data-density": density,
|
|
2070
|
+
"data-slot": "menubar-radio-item",
|
|
2071
|
+
"data-inset": inset,
|
|
2072
|
+
className: (state) => cn2("relative flex cursor-default items-center gap-control-gap rounded-md py-1 pe-1.5 ps-7 text-sm outline-hidden select-none focus:bg-accent focus:text-accent-foreground focus:**:text-accent-foreground data-inset:ps-7 data-disabled:pointer-events-none data-disabled:opacity-50 [&_svg]:pointer-events-none [&_svg]:shrink-0 [&_svg:not([class*='size-'])]:size-4", typeof className === "function" ? className(state) : className),
|
|
2073
|
+
...props,
|
|
2074
|
+
children: [
|
|
2075
|
+
/* @__PURE__ */ jsx22("span", {
|
|
2076
|
+
className: "pointer-events-none absolute start-1.5 flex size-4 items-center justify-center [&_svg:not([class*='size-'])]:size-4",
|
|
2077
|
+
children: /* @__PURE__ */ jsx22(MenuPrimitive.RadioItemIndicator, {
|
|
2078
|
+
children: /* @__PURE__ */ jsx22(CheckIcon4, {})
|
|
2079
|
+
})
|
|
2080
|
+
}),
|
|
2081
|
+
children
|
|
2082
|
+
]
|
|
2083
|
+
});
|
|
2084
|
+
}
|
|
2085
|
+
function MenubarLabel({ density, className, inset, ...props }) {
|
|
2086
|
+
return /* @__PURE__ */ jsx22(DropdownMenuLabel2, {
|
|
2087
|
+
density,
|
|
2088
|
+
"data-slot": "menubar-label",
|
|
2089
|
+
inset,
|
|
2090
|
+
className: (state) => cn2("px-1.5 py-1 text-sm font-medium data-inset:ps-7", typeof className === "function" ? className(state) : className),
|
|
2091
|
+
...props
|
|
2092
|
+
});
|
|
2093
|
+
}
|
|
2094
|
+
function MenubarSeparator({ density, className, ...props }) {
|
|
2095
|
+
return /* @__PURE__ */ jsx22(DropdownMenuSeparator2, {
|
|
2096
|
+
density,
|
|
2097
|
+
"data-slot": "menubar-separator",
|
|
2098
|
+
className: (state) => cn2("-mx-1 my-1 h-px bg-border", typeof className === "function" ? className(state) : className),
|
|
2099
|
+
...props
|
|
2100
|
+
});
|
|
2101
|
+
}
|
|
2102
|
+
function MenubarShortcut({ density, className, ...props }) {
|
|
2103
|
+
return /* @__PURE__ */ jsx22(DropdownMenuShortcut2, {
|
|
2104
|
+
"data-density": density,
|
|
2105
|
+
"data-slot": "menubar-shortcut",
|
|
2106
|
+
className: cn2("ms-auto text-xs tracking-widest text-muted-foreground group-focus/menubar-item:text-accent-foreground", className),
|
|
2107
|
+
...props
|
|
2108
|
+
});
|
|
2109
|
+
}
|
|
2110
|
+
function MenubarSub({ ...props }) {
|
|
2111
|
+
return /* @__PURE__ */ jsx22(DropdownMenuSub2, {
|
|
2112
|
+
"data-slot": "menubar-sub",
|
|
2113
|
+
...props
|
|
2114
|
+
});
|
|
2115
|
+
}
|
|
2116
|
+
function MenubarSubTrigger({ density, className, inset, ...props }) {
|
|
2117
|
+
return /* @__PURE__ */ jsx22(DropdownMenuSubTrigger2, {
|
|
2118
|
+
density,
|
|
2119
|
+
"data-slot": "menubar-sub-trigger",
|
|
2120
|
+
inset,
|
|
2121
|
+
className: (state) => cn2("gap-control-gap rounded-md px-1.5 py-1 text-sm focus:bg-accent focus:text-accent-foreground data-inset:ps-7 data-open:bg-accent data-open:text-accent-foreground [&_svg:not([class*='size-'])]:size-4", typeof className === "function" ? className(state) : className),
|
|
2122
|
+
...props
|
|
2123
|
+
});
|
|
2124
|
+
}
|
|
2125
|
+
function MenubarSubContent({ density, className, ...props }) {
|
|
2126
|
+
return /* @__PURE__ */ jsx22(DropdownMenuSubContent2, {
|
|
2127
|
+
density,
|
|
2128
|
+
"data-slot": "menubar-sub-content",
|
|
2129
|
+
className: (state) => cn2(" min-w-32 rounded-sm bg-popover p-1 text-popover-foreground shadow-frame border border-frame-edge border border-frame-edge shadow-frame duration-100 data-open:animate-in data-open:fade-in-0 data-closed:animate-out data-closed:fade-out-0 ", typeof className === "function" ? className(state) : className),
|
|
2130
|
+
...props
|
|
2131
|
+
});
|
|
2132
|
+
}
|
|
2133
|
+
// src/components/NavigationMenu.tsx
|
|
2134
|
+
import { ChevronDownIcon as ChevronDownIcon5 } from "lucide-react";
|
|
2135
|
+
import { NavigationMenu as NavigationMenuPrimitive } from "@base-ui/react/navigation-menu";
|
|
2136
|
+
import { cva as cva4 } from "class-variance-authority";
|
|
2137
|
+
import { jsx as jsx23, jsxs as jsxs16 } from "react/jsx-runtime";
|
|
2138
|
+
function NavigationMenu({
|
|
2139
|
+
density,
|
|
2140
|
+
align = "start",
|
|
2141
|
+
className,
|
|
2142
|
+
children,
|
|
2143
|
+
...props
|
|
2144
|
+
}) {
|
|
2145
|
+
const resolvedDensity = useDensity(density);
|
|
2146
|
+
return /* @__PURE__ */ jsxs16(NavigationMenuPrimitive.Root, {
|
|
2147
|
+
"data-density": resolvedDensity,
|
|
2148
|
+
"data-slot": "navigation-menu",
|
|
2149
|
+
className: (state) => cn2("group/navigation-menu relative flex max-w-max flex-1 items-center justify-center", typeof className === "function" ? className(state) : className),
|
|
2150
|
+
...props,
|
|
2151
|
+
children: [
|
|
2152
|
+
children,
|
|
2153
|
+
/* @__PURE__ */ jsx23(NavigationMenuPositioner, {
|
|
2154
|
+
density: resolvedDensity,
|
|
2155
|
+
align
|
|
2156
|
+
})
|
|
2157
|
+
]
|
|
2158
|
+
});
|
|
2159
|
+
}
|
|
2160
|
+
function NavigationMenuList({ density, className, ...props }) {
|
|
2161
|
+
return /* @__PURE__ */ jsx23(NavigationMenuPrimitive.List, {
|
|
2162
|
+
"data-density": density,
|
|
2163
|
+
"data-slot": "navigation-menu-list",
|
|
2164
|
+
className: (state) => cn2("group flex flex-1 list-none items-center justify-center gap-0", typeof className === "function" ? className(state) : className),
|
|
2165
|
+
...props
|
|
2166
|
+
});
|
|
2167
|
+
}
|
|
2168
|
+
function NavigationMenuItem({ density, className, ...props }) {
|
|
2169
|
+
return /* @__PURE__ */ jsx23(NavigationMenuPrimitive.Item, {
|
|
2170
|
+
"data-density": density,
|
|
2171
|
+
"data-slot": "navigation-menu-item",
|
|
2172
|
+
className: (state) => cn2("relative", typeof className === "function" ? className(state) : className),
|
|
2173
|
+
...props
|
|
2174
|
+
});
|
|
2175
|
+
}
|
|
2176
|
+
var navigationMenuTriggerStyle = cva4("group/navigation-menu-trigger inline-flex h-control-lg w-max items-center justify-center rounded-sm px-control-x py-1.5 text-sm font-medium transition-colors outline-none hover:bg-muted focus:bg-muted focus-visible:ring-1 focus-visible:ring-ring focus-visible:outline-1 disabled:pointer-events-none disabled:opacity-50 data-popup-open:bg-muted/50 data-popup-open:hover:bg-muted data-open:bg-muted/50 data-open:hover:bg-muted data-open:focus:bg-muted");
|
|
2177
|
+
function NavigationMenuTrigger({ density, className, children, ...props }) {
|
|
2178
|
+
return /* @__PURE__ */ jsxs16(NavigationMenuPrimitive.Trigger, {
|
|
2179
|
+
"data-density": density,
|
|
2180
|
+
"data-slot": "navigation-menu-trigger",
|
|
2181
|
+
className: (state) => cn2(navigationMenuTriggerStyle(), "group", typeof className === "function" ? className(state) : className),
|
|
2182
|
+
...props,
|
|
2183
|
+
children: [
|
|
2184
|
+
children,
|
|
2185
|
+
" ",
|
|
2186
|
+
/* @__PURE__ */ jsx23(NavigationMenuIndicator, {})
|
|
2187
|
+
]
|
|
2188
|
+
});
|
|
2189
|
+
}
|
|
2190
|
+
function NavigationMenuContent({ density, className, ...props }) {
|
|
2191
|
+
return /* @__PURE__ */ jsx23(NavigationMenuPrimitive.Content, {
|
|
2192
|
+
"data-density": density,
|
|
2193
|
+
"data-slot": "navigation-menu-content",
|
|
2194
|
+
className: (state) => cn2("data-ending-style:data-activation-direction=left:translate-x-[50%] data-ending-style:data-activation-direction=right:translate-x-[-50%] data-starting-style:data-activation-direction=left:translate-x-[-50%] data-starting-style:data-activation-direction=right:translate-x-[50%] h-full w-auto p-1 transition-[opacity,transform,translate] duration-[0.35s] ease-[cubic-bezier(0.22,1,0.36,1)] data-ending-style:opacity-0 data-starting-style:opacity-0 ", typeof className === "function" ? className(state) : className),
|
|
2195
|
+
...props
|
|
2196
|
+
});
|
|
2197
|
+
}
|
|
2198
|
+
function NavigationMenuPositioner({
|
|
2199
|
+
density,
|
|
2200
|
+
className,
|
|
2201
|
+
side = "bottom",
|
|
2202
|
+
sideOffset = 8,
|
|
2203
|
+
align = "start",
|
|
2204
|
+
alignOffset = 0,
|
|
2205
|
+
...props
|
|
2206
|
+
}) {
|
|
2207
|
+
const resolvedDensity = useDensity(density);
|
|
2208
|
+
const direction = useDirection2();
|
|
2209
|
+
const container = usePortalContainer2();
|
|
2210
|
+
return /* @__PURE__ */ jsx23(NavigationMenuPrimitive.Portal, {
|
|
2211
|
+
container,
|
|
2212
|
+
children: /* @__PURE__ */ jsx23(NavigationMenuPrimitive.Positioner, {
|
|
2213
|
+
dir: direction,
|
|
2214
|
+
side,
|
|
2215
|
+
sideOffset,
|
|
2216
|
+
align,
|
|
2217
|
+
alignOffset,
|
|
2218
|
+
className: (state) => cn2("isolate h-(--positioner-height) w-(--positioner-width) max-w-(--available-width) transition-[top,left,right,bottom] duration-[0.35s] ease-[cubic-bezier(0.22,1,0.36,1)] data-instant:transition-none data-[side=bottom]:before:top-[-10px] data-[side=bottom]:before:right-0 data-[side=bottom]:before:left-0", typeof className === "function" ? className(state) : className),
|
|
2219
|
+
...props,
|
|
2220
|
+
children: /* @__PURE__ */ jsx23(NavigationMenuPrimitive.Popup, {
|
|
2221
|
+
"data-density": resolvedDensity,
|
|
2222
|
+
"data-slot": "navigation-menu-popup",
|
|
2223
|
+
className: "data-[ending-style]:easing-[ease] xs:w-(--popup-width) relative h-(--popup-height) w-(--popup-width) origin-(--transform-origin) rounded-sm bg-popover text-popover-foreground border border-frame-edge shadow-frame transition-[opacity,transform,width,height,translate] duration-[0.35s] ease-[cubic-bezier(0.22,1,0.36,1)] outline-none data-ending-style:opacity-0 data-ending-style:duration-150 data-starting-style:opacity-0",
|
|
2224
|
+
children: /* @__PURE__ */ jsx23(NavigationMenuPrimitive.Viewport, {
|
|
2225
|
+
className: "relative size-full overflow-hidden"
|
|
2226
|
+
})
|
|
2227
|
+
})
|
|
2228
|
+
})
|
|
2229
|
+
});
|
|
2230
|
+
}
|
|
2231
|
+
function NavigationMenuLink({ density, className, ...props }) {
|
|
2232
|
+
return /* @__PURE__ */ jsx23(NavigationMenuPrimitive.Link, {
|
|
2233
|
+
"data-density": density,
|
|
2234
|
+
"data-slot": "navigation-menu-link",
|
|
2235
|
+
className: (state) => cn2("flex items-center gap-2 rounded-sm p-2 text-sm transition-colors outline-none hover:bg-muted focus:bg-muted focus-visible:ring-1 focus-visible:ring-ring focus-visible:outline-1 in-data-[slot=navigation-menu-content]:rounded-md data-active:bg-muted/50 data-active:hover:bg-muted data-active:focus:bg-muted [&_svg:not([class*='size-'])]:size-4", typeof className === "function" ? className(state) : className),
|
|
2236
|
+
...props
|
|
2237
|
+
});
|
|
2238
|
+
}
|
|
2239
|
+
function NavigationMenuIndicator({
|
|
2240
|
+
density,
|
|
2241
|
+
className,
|
|
2242
|
+
children,
|
|
2243
|
+
...props
|
|
2244
|
+
}) {
|
|
2245
|
+
return /* @__PURE__ */ jsx23(NavigationMenuPrimitive.Icon, {
|
|
2246
|
+
"data-density": density,
|
|
2247
|
+
"data-slot": "navigation-menu-indicator",
|
|
2248
|
+
className: (state) => cn2("ms-1 inline-flex size-3 shrink-0 items-center justify-center transition-transform duration-120 data-popup-open:rotate-180 [&_svg]:size-full", typeof className === "function" ? className(state) : className),
|
|
2249
|
+
...props,
|
|
2250
|
+
children: children ?? /* @__PURE__ */ jsx23(ChevronDownIcon5, {})
|
|
2251
|
+
});
|
|
2252
|
+
}
|
|
2253
|
+
// src/components/Toast.tsx
|
|
2254
|
+
import { Toast as ToastPrimitive } from "@base-ui/react/toast";
|
|
2255
|
+
import { CircleCheckIcon, InfoIcon, TriangleAlertIcon, OctagonXIcon, LoaderCircleIcon, XIcon as XIcon2 } from "lucide-react";
|
|
2256
|
+
import { jsx as jsx24, jsxs as jsxs17, Fragment } from "react/jsx-runtime";
|
|
2257
|
+
function ToastProvider(props) {
|
|
2258
|
+
return /* @__PURE__ */ jsx24(ToastPrimitive.Provider, {
|
|
2259
|
+
...props
|
|
2260
|
+
});
|
|
2261
|
+
}
|
|
2262
|
+
function ToastPortal({ container, ...props }) {
|
|
2263
|
+
const resolvedContainer = usePortalContainer2(container);
|
|
2264
|
+
return /* @__PURE__ */ jsx24(ToastPrimitive.Portal, {
|
|
2265
|
+
"data-slot": "toast-portal",
|
|
2266
|
+
container: resolvedContainer,
|
|
2267
|
+
...props
|
|
2268
|
+
});
|
|
2269
|
+
}
|
|
2270
|
+
function ToastViewport({ density, dir, className, ...props }) {
|
|
2271
|
+
const resolvedDensity = useDensity(density);
|
|
2272
|
+
const inheritedDirection = useDirection2();
|
|
2273
|
+
return /* @__PURE__ */ jsx24(ToastPrimitive.Viewport, {
|
|
2274
|
+
dir: dir ?? inheritedDirection,
|
|
2275
|
+
"data-density": resolvedDensity,
|
|
2276
|
+
"data-slot": "toast-viewport",
|
|
2277
|
+
className: (state) => cn2("pointer-events-none fixed inset-x-4 bottom-4 isolate mx-auto max-w-sm outline-none sm:right-4 sm:left-auto sm:mx-0 sm:w-full", typeof className === "function" ? className(state) : className),
|
|
2278
|
+
...props
|
|
2279
|
+
});
|
|
2280
|
+
}
|
|
2281
|
+
function Toast({ density, className, ...props }) {
|
|
2282
|
+
return /* @__PURE__ */ jsx24(ToastPrimitive.Root, {
|
|
2283
|
+
"data-density": density,
|
|
2284
|
+
"data-slot": "toast",
|
|
2285
|
+
className: (state) => cn2("group/toast pointer-events-auto absolute right-0 bottom-0 w-full rounded-md border border-frame-edge bg-popover text-popover-foreground shadow-frame outline-none select-none focus-visible:ring-1 focus-visible:ring-ring [--offset-y:calc(var(--toast-offset-y)*-1-var(--toast-index)*var(--spacing-panel))] [transform:translateX(var(--toast-swipe-movement-x))_translateY(calc(var(--offset-y)+var(--toast-swipe-movement-y)))] transition-[transform,opacity] duration-120 ease-out data-limited:opacity-0 data-starting-style:opacity-0 data-ending-style:opacity-0 motion-reduce:transition-none", typeof className === "function" ? className(state) : className),
|
|
2286
|
+
...props
|
|
2287
|
+
});
|
|
2288
|
+
}
|
|
2289
|
+
function ToastContent({ className, ...props }) {
|
|
2290
|
+
return /* @__PURE__ */ jsx24(ToastPrimitive.Content, {
|
|
2291
|
+
"data-slot": "toast-content",
|
|
2292
|
+
className: (state) => cn2("flex items-center gap-control-gap p-panel", typeof className === "function" ? className(state) : className),
|
|
2293
|
+
...props
|
|
2294
|
+
});
|
|
2295
|
+
}
|
|
2296
|
+
function ToastTitle({ className, ...props }) {
|
|
2297
|
+
return /* @__PURE__ */ jsx24(ToastPrimitive.Title, {
|
|
2298
|
+
"data-slot": "toast-title",
|
|
2299
|
+
className: (state) => cn2("text-sm font-medium", typeof className === "function" ? className(state) : className),
|
|
2300
|
+
...props
|
|
2301
|
+
});
|
|
2302
|
+
}
|
|
2303
|
+
function ToastDescription({ className, ...props }) {
|
|
2304
|
+
return /* @__PURE__ */ jsx24(ToastPrimitive.Description, {
|
|
2305
|
+
"data-slot": "toast-description",
|
|
2306
|
+
className: (state) => cn2("text-sm text-muted-foreground", typeof className === "function" ? className(state) : className),
|
|
2307
|
+
...props
|
|
2308
|
+
});
|
|
2309
|
+
}
|
|
2310
|
+
function ToastAction({
|
|
2311
|
+
className,
|
|
2312
|
+
render = /* @__PURE__ */ jsx24(Button2, {
|
|
2313
|
+
variant: "outline",
|
|
2314
|
+
size: "sm"
|
|
2315
|
+
}),
|
|
2316
|
+
...props
|
|
2317
|
+
}) {
|
|
2318
|
+
return /* @__PURE__ */ jsx24(ToastPrimitive.Action, {
|
|
2319
|
+
"data-slot": "toast-action",
|
|
2320
|
+
render,
|
|
2321
|
+
className: (state) => cn2("shrink-0", typeof className === "function" ? className(state) : className),
|
|
2322
|
+
...props
|
|
2323
|
+
});
|
|
2324
|
+
}
|
|
2325
|
+
function ToastClose({
|
|
2326
|
+
className,
|
|
2327
|
+
children,
|
|
2328
|
+
render = /* @__PURE__ */ jsx24(Button2, {
|
|
2329
|
+
variant: "ghost",
|
|
2330
|
+
size: "icon-sm"
|
|
2331
|
+
}),
|
|
2332
|
+
...props
|
|
2333
|
+
}) {
|
|
2334
|
+
return /* @__PURE__ */ jsx24(ToastPrimitive.Close, {
|
|
2335
|
+
"data-slot": "toast-close",
|
|
2336
|
+
"aria-label": "Close toast",
|
|
2337
|
+
render,
|
|
2338
|
+
className: (state) => cn2("relative shrink-0 text-muted-foreground hover:text-foreground", typeof className === "function" ? className(state) : className),
|
|
2339
|
+
...props,
|
|
2340
|
+
children: children ?? /* @__PURE__ */ jsx24(XIcon2, {
|
|
2341
|
+
"aria-hidden": "true"
|
|
2342
|
+
})
|
|
2343
|
+
});
|
|
2344
|
+
}
|
|
2345
|
+
function ToastIcon({ type }) {
|
|
2346
|
+
switch (type) {
|
|
2347
|
+
case "success":
|
|
2348
|
+
return /* @__PURE__ */ jsx24(CircleCheckIcon, {
|
|
2349
|
+
"aria-hidden": "true"
|
|
2350
|
+
});
|
|
2351
|
+
case "info":
|
|
2352
|
+
return /* @__PURE__ */ jsx24(InfoIcon, {
|
|
2353
|
+
"aria-hidden": "true"
|
|
2354
|
+
});
|
|
2355
|
+
case "warning":
|
|
2356
|
+
return /* @__PURE__ */ jsx24(TriangleAlertIcon, {
|
|
2357
|
+
"aria-hidden": "true"
|
|
2358
|
+
});
|
|
2359
|
+
case "error":
|
|
2360
|
+
return /* @__PURE__ */ jsx24(OctagonXIcon, {
|
|
2361
|
+
"aria-hidden": "true",
|
|
2362
|
+
className: "text-destructive"
|
|
2363
|
+
});
|
|
2364
|
+
case "loading":
|
|
2365
|
+
return /* @__PURE__ */ jsx24(LoaderCircleIcon, {
|
|
2366
|
+
"aria-hidden": "true",
|
|
2367
|
+
className: "animate-spin motion-reduce:animate-none"
|
|
2368
|
+
});
|
|
2369
|
+
default:
|
|
2370
|
+
return null;
|
|
2371
|
+
}
|
|
2372
|
+
}
|
|
2373
|
+
function ToastList() {
|
|
2374
|
+
const { toasts } = ToastPrimitive.useToastManager();
|
|
2375
|
+
return /* @__PURE__ */ jsx24(Fragment, {
|
|
2376
|
+
children: toasts.map((toastItem) => /* @__PURE__ */ jsx24(Toast, {
|
|
2377
|
+
toast: toastItem,
|
|
2378
|
+
children: /* @__PURE__ */ jsxs17(ToastContent, {
|
|
2379
|
+
children: [
|
|
2380
|
+
/* @__PURE__ */ jsx24("span", {
|
|
2381
|
+
"data-slot": "toast-icon",
|
|
2382
|
+
className: "shrink-0 empty:hidden [&_svg]:size-4",
|
|
2383
|
+
children: /* @__PURE__ */ jsx24(ToastIcon, {
|
|
2384
|
+
type: toastItem.type
|
|
2385
|
+
})
|
|
2386
|
+
}),
|
|
2387
|
+
/* @__PURE__ */ jsxs17("div", {
|
|
2388
|
+
className: "flex min-w-0 flex-1 flex-col gap-1",
|
|
2389
|
+
children: [
|
|
2390
|
+
/* @__PURE__ */ jsx24(ToastTitle, {}),
|
|
2391
|
+
/* @__PURE__ */ jsx24(ToastDescription, {})
|
|
2392
|
+
]
|
|
2393
|
+
}),
|
|
2394
|
+
/* @__PURE__ */ jsx24(ToastAction, {}),
|
|
2395
|
+
/* @__PURE__ */ jsx24(ToastClose, {})
|
|
2396
|
+
]
|
|
2397
|
+
})
|
|
2398
|
+
}, toastItem.id))
|
|
2399
|
+
});
|
|
2400
|
+
}
|
|
2401
|
+
function ToastToaster({ children, density, ...props }) {
|
|
2402
|
+
return /* @__PURE__ */ jsxs17(ToastProvider, {
|
|
2403
|
+
...props,
|
|
2404
|
+
children: [
|
|
2405
|
+
children,
|
|
2406
|
+
/* @__PURE__ */ jsx24(ToastPortal, {
|
|
2407
|
+
children: /* @__PURE__ */ jsx24(ToastViewport, {
|
|
2408
|
+
density,
|
|
2409
|
+
children: /* @__PURE__ */ jsx24(ToastList, {})
|
|
2410
|
+
})
|
|
2411
|
+
})
|
|
2412
|
+
]
|
|
2413
|
+
});
|
|
2414
|
+
}
|
|
2415
|
+
var createToastManager = ToastPrimitive.createToastManager;
|
|
2416
|
+
// src/hooks/useToastManager.ts
|
|
2417
|
+
import { Toast as Toast2 } from "@base-ui/react/toast";
|
|
2418
|
+
function useToastManager() {
|
|
2419
|
+
return Toast2.useToastManager();
|
|
2420
|
+
}
|
|
2421
|
+
// src/components/Marker.tsx
|
|
2422
|
+
import { mergeProps as mergeProps6 } from "@base-ui/react/merge-props";
|
|
2423
|
+
import { useRender as useRender6 } from "@base-ui/react/use-render";
|
|
2424
|
+
import { cva as cva5 } from "class-variance-authority";
|
|
2425
|
+
import { jsx as jsx25 } from "react/jsx-runtime";
|
|
2426
|
+
var markerVariants = cva5("group/marker relative flex min-h-4 w-full items-center gap-control-gap text-start text-sm text-muted-foreground [&_svg:not([class*='size-'])]:size-4 [a]:underline [a]:underline-offset-3 [a]:hover:text-foreground [&:is(a,button)]:outline-none [&:is(a,button)]:focus-visible:outline-1 [&:is(a,button)]:focus-visible:outline-ring", {
|
|
2427
|
+
variants: {
|
|
2428
|
+
variant: {
|
|
2429
|
+
default: "",
|
|
2430
|
+
separator: "before:me-1 before:h-px before:min-w-0 before:flex-1 before:bg-border after:ms-1 after:h-px after:min-w-0 after:flex-1 after:bg-border",
|
|
2431
|
+
border: "border-b border-border pb-control-gap"
|
|
2432
|
+
}
|
|
2433
|
+
}
|
|
2434
|
+
});
|
|
2435
|
+
function Marker({ density, className, variant = "default", render, ...props }) {
|
|
2436
|
+
return useRender6({
|
|
2437
|
+
defaultTagName: "div",
|
|
2438
|
+
props: mergeProps6({ className: cn2(markerVariants({ variant, className })) }, props),
|
|
2439
|
+
render,
|
|
2440
|
+
state: { slot: "marker", variant, density }
|
|
2441
|
+
});
|
|
2442
|
+
}
|
|
2443
|
+
function MarkerIcon({ density, className, ...props }) {
|
|
2444
|
+
return /* @__PURE__ */ jsx25("span", {
|
|
2445
|
+
"data-density": density,
|
|
2446
|
+
"data-slot": "marker-icon",
|
|
2447
|
+
"aria-hidden": "true",
|
|
2448
|
+
className: cn2("size-4 shrink-0 [&_svg:not([class*='size-'])]:size-4", className),
|
|
2449
|
+
...props
|
|
2450
|
+
});
|
|
2451
|
+
}
|
|
2452
|
+
function MarkerContent({ density, className, ...props }) {
|
|
2453
|
+
return /* @__PURE__ */ jsx25("span", {
|
|
2454
|
+
"data-density": density,
|
|
2455
|
+
"data-slot": "marker-content",
|
|
2456
|
+
className: cn2("min-w-0 wrap-break-word group-data-[variant=separator]/marker:text-center [&>a]:underline [&>a]:underline-offset-3 [&>a:hover]:text-foreground", className),
|
|
2457
|
+
...props
|
|
2458
|
+
});
|
|
2459
|
+
}
|
|
2460
|
+
// src/components/Bubble.tsx
|
|
2461
|
+
import { mergeProps as mergeProps7 } from "@base-ui/react/merge-props";
|
|
2462
|
+
import { useRender as useRender7 } from "@base-ui/react/use-render";
|
|
2463
|
+
import { cva as cva6 } from "class-variance-authority";
|
|
2464
|
+
import { jsx as jsx26 } from "react/jsx-runtime";
|
|
2465
|
+
function BubbleGroup({ density, className, ...props }) {
|
|
2466
|
+
return /* @__PURE__ */ jsx26("div", {
|
|
2467
|
+
"data-density": density,
|
|
2468
|
+
"data-slot": "bubble-group",
|
|
2469
|
+
className: cn2("flex min-w-0 flex-col gap-control-gap", className),
|
|
2470
|
+
...props
|
|
2471
|
+
});
|
|
2472
|
+
}
|
|
2473
|
+
var bubbleVariants = cva6("group/bubble relative flex w-fit max-w-[80%] min-w-0 flex-col gap-1 group-data-[align=end]/message:self-end data-[align=end]:self-end data-[variant=ghost]:max-w-full", {
|
|
2474
|
+
variants: {
|
|
2475
|
+
variant: {
|
|
2476
|
+
default: "*:data-[slot=bubble-content]:bg-primary *:data-[slot=bubble-content]:text-primary-foreground [&>[data-slot=bubble-content]:is(button,a):hover]:bg-primary/80",
|
|
2477
|
+
secondary: "*:data-[slot=bubble-content]:bg-secondary *:data-[slot=bubble-content]:text-secondary-foreground [&>[data-slot=bubble-content]:is(button,a):hover]:bg-[color-mix(in_oklch,var(--secondary),var(--foreground)_5%)]",
|
|
2478
|
+
muted: "*:data-[slot=bubble-content]:bg-muted [&>[data-slot=bubble-content]:is(button,a):hover]:bg-[color-mix(in_oklch,var(--muted),var(--foreground)_5%)]",
|
|
2479
|
+
tinted: "*:data-[slot=bubble-content]:bg-primary/10 *:data-[slot=bubble-content]:text-foreground [&>[data-slot=bubble-content]:is(button,a):hover]:bg-primary/20",
|
|
2480
|
+
outline: "*:data-[slot=bubble-content]:border-border *:data-[slot=bubble-content]:bg-background [&>[data-slot=bubble-content]:is(button,a):hover]:bg-muted [&>[data-slot=bubble-content]:is(button,a):hover]:text-foreground",
|
|
2481
|
+
ghost: "border-none *:data-[slot=bubble-content]:rounded-none *:data-[slot=bubble-content]:bg-transparent *:data-[slot=bubble-content]:p-0 [&>[data-slot=bubble-content]:is(button,a):hover]:bg-muted [&>[data-slot=bubble-content]:is(button,a):hover]:text-foreground",
|
|
2482
|
+
destructive: "*:data-[slot=bubble-content]:bg-destructive/10 *:data-[slot=bubble-content]:text-destructive [&>[data-slot=bubble-content]:is(button,a):hover]:bg-destructive/20"
|
|
2483
|
+
}
|
|
2484
|
+
},
|
|
2485
|
+
defaultVariants: { variant: "default" }
|
|
2486
|
+
});
|
|
2487
|
+
function Bubble({ density, variant = "default", align = "start", className, ...props }) {
|
|
2488
|
+
return /* @__PURE__ */ jsx26("div", {
|
|
2489
|
+
"data-density": density,
|
|
2490
|
+
"data-slot": "bubble",
|
|
2491
|
+
"data-variant": variant,
|
|
2492
|
+
"data-align": align,
|
|
2493
|
+
className: cn2(bubbleVariants({ variant }), className),
|
|
2494
|
+
...props
|
|
2495
|
+
});
|
|
2496
|
+
}
|
|
2497
|
+
function BubbleContent({ density, className, render, ...props }) {
|
|
2498
|
+
return useRender7({
|
|
2499
|
+
defaultTagName: "div",
|
|
2500
|
+
props: mergeProps7({
|
|
2501
|
+
className: cn2("w-fit max-w-full min-w-0 overflow-hidden rounded-sm border border-transparent px-control-x py-control-gap text-sm leading-relaxed wrap-break-word group-data-[align=end]/bubble:self-end [&:is(button)]:text-start [&:is(button,a)]:transition-colors motion-reduce:transition-none [&:is(button,a)]:outline-none [&:is(button,a)]:focus-visible:border-ring [&:is(button,a)]:focus-visible:ring-1 [&:is(button,a)]:focus-visible:ring-ring", className)
|
|
2502
|
+
}, props),
|
|
2503
|
+
render,
|
|
2504
|
+
state: { slot: "bubble-content", density }
|
|
2505
|
+
});
|
|
2506
|
+
}
|
|
2507
|
+
var bubbleReactionsVariants = cva6("absolute z-10 flex w-fit shrink-0 items-center justify-center gap-1 rounded-sm border border-border bg-muted px-1.5 py-0.5 text-sm ring-2 ring-card has-[button]:p-0", {
|
|
2508
|
+
variants: {
|
|
2509
|
+
side: { top: "top-0 -translate-y-3/4", bottom: "bottom-0 translate-y-3/4" },
|
|
2510
|
+
align: { start: "start-3", end: "end-3" }
|
|
2511
|
+
},
|
|
2512
|
+
defaultVariants: { side: "bottom", align: "end" }
|
|
2513
|
+
});
|
|
2514
|
+
function BubbleReactions({
|
|
2515
|
+
density,
|
|
2516
|
+
side = "bottom",
|
|
2517
|
+
align = "end",
|
|
2518
|
+
className,
|
|
2519
|
+
...props
|
|
2520
|
+
}) {
|
|
2521
|
+
return /* @__PURE__ */ jsx26("div", {
|
|
2522
|
+
"data-density": density,
|
|
2523
|
+
"data-slot": "bubble-reactions",
|
|
2524
|
+
"data-align": align,
|
|
2525
|
+
"data-side": side,
|
|
2526
|
+
className: cn2(bubbleReactionsVariants({ side, align }), className),
|
|
2527
|
+
...props
|
|
2528
|
+
});
|
|
2529
|
+
}
|
|
2530
|
+
// src/components/Message.tsx
|
|
2531
|
+
import { useContext as useContext3, useLayoutEffect, useMemo as useMemo3, useRef as useRef3, useState as useState3 } from "react";
|
|
2532
|
+
import { useRender as useRender8 } from "@base-ui/react/use-render";
|
|
2533
|
+
|
|
2534
|
+
// src/message/MessageContext.ts
|
|
2535
|
+
import { createContext as createContext3 } from "react";
|
|
2536
|
+
var MessageContext = createContext3(null);
|
|
2537
|
+
|
|
2538
|
+
// src/components/Message.tsx
|
|
2539
|
+
import { jsx as jsx27 } from "react/jsx-runtime";
|
|
2540
|
+
function MessageGroup({ density, className, ...props }) {
|
|
2541
|
+
return /* @__PURE__ */ jsx27("div", {
|
|
2542
|
+
"data-density": density,
|
|
2543
|
+
"data-slot": "message-group",
|
|
2544
|
+
className: cn2("flex min-w-0 flex-col gap-control-gap", className),
|
|
2545
|
+
...props
|
|
2546
|
+
});
|
|
2547
|
+
}
|
|
2548
|
+
function Message({ density, className, align = "start", style, ...props }) {
|
|
2549
|
+
const [footerOffset, setFooterOffset] = useState3(0);
|
|
2550
|
+
const context = useMemo3(() => ({ setFooterOffset }), []);
|
|
2551
|
+
const messageStyle = { ...style, "--message-footer-offset": `${footerOffset}px` };
|
|
2552
|
+
return /* @__PURE__ */ jsx27(MessageContext.Provider, {
|
|
2553
|
+
value: context,
|
|
2554
|
+
children: /* @__PURE__ */ jsx27("div", {
|
|
2555
|
+
"data-density": density,
|
|
2556
|
+
"data-slot": "message",
|
|
2557
|
+
"data-align": align,
|
|
2558
|
+
style: messageStyle,
|
|
2559
|
+
className: cn2("group/message relative flex w-full min-w-0 items-end gap-control-gap text-sm data-[align=end]:flex-row-reverse", className),
|
|
2560
|
+
...props
|
|
2561
|
+
})
|
|
2562
|
+
});
|
|
2563
|
+
}
|
|
2564
|
+
function MessageAvatar({ density, className, ...props }) {
|
|
2565
|
+
return /* @__PURE__ */ jsx27("div", {
|
|
2566
|
+
"data-density": density,
|
|
2567
|
+
"data-slot": "message-avatar",
|
|
2568
|
+
className: cn2("flex w-fit min-w-8 shrink-0 items-center justify-center self-end overflow-hidden rounded-full bg-muted group-has-data-[slot=message-footer]/message:-translate-y-(--message-footer-offset)", className),
|
|
2569
|
+
...props
|
|
2570
|
+
});
|
|
2571
|
+
}
|
|
2572
|
+
function MessageContent({ density, className, ...props }) {
|
|
2573
|
+
return /* @__PURE__ */ jsx27("div", {
|
|
2574
|
+
"data-density": density,
|
|
2575
|
+
"data-slot": "message-content",
|
|
2576
|
+
className: cn2("flex w-full min-w-0 flex-col gap-control-gap wrap-break-word group-data-[align=end]/message:[&>[data-slot]:not([data-slot=message-header])]:self-end", className),
|
|
2577
|
+
...props
|
|
2578
|
+
});
|
|
2579
|
+
}
|
|
2580
|
+
function MessageHeader({ density, className, ...props }) {
|
|
2581
|
+
return /* @__PURE__ */ jsx27("div", {
|
|
2582
|
+
"data-density": density,
|
|
2583
|
+
"data-slot": "message-header",
|
|
2584
|
+
className: cn2("flex max-w-full min-w-0 items-center px-control-x text-xs font-medium text-muted-foreground group-has-data-[variant=ghost]/message:px-0", className),
|
|
2585
|
+
...props
|
|
2586
|
+
});
|
|
2587
|
+
}
|
|
2588
|
+
function MessageFooter({ density, className, ...props }) {
|
|
2589
|
+
const context = useContext3(MessageContext);
|
|
2590
|
+
const footerRef = useRef3(null);
|
|
2591
|
+
useLayoutEffect(() => {
|
|
2592
|
+
const footer = footerRef.current;
|
|
2593
|
+
const content = footer?.parentElement;
|
|
2594
|
+
if (!context || !footer || !content)
|
|
2595
|
+
return;
|
|
2596
|
+
const measure = () => {
|
|
2597
|
+
const surface = footer.previousElementSibling;
|
|
2598
|
+
context.setFooterOffset(surface ? content.getBoundingClientRect().bottom - surface.getBoundingClientRect().bottom : 0);
|
|
2599
|
+
};
|
|
2600
|
+
measure();
|
|
2601
|
+
const observer = new ResizeObserver(measure);
|
|
2602
|
+
observer.observe(footer, { box: "border-box" });
|
|
2603
|
+
observer.observe(content, { box: "border-box" });
|
|
2604
|
+
return () => {
|
|
2605
|
+
observer.disconnect();
|
|
2606
|
+
context.setFooterOffset(0);
|
|
2607
|
+
};
|
|
2608
|
+
}, [context]);
|
|
2609
|
+
return useRender8({
|
|
2610
|
+
defaultTagName: "div",
|
|
2611
|
+
ref: footerRef,
|
|
2612
|
+
state: { slot: "message-footer", density },
|
|
2613
|
+
props: {
|
|
2614
|
+
...props,
|
|
2615
|
+
className: cn2("flex max-w-full min-w-0 items-center px-control-x text-xs font-medium text-muted-foreground group-has-data-[variant=ghost]/message:px-0 group-data-[align=end]/message:justify-end", className)
|
|
2616
|
+
}
|
|
2617
|
+
});
|
|
2618
|
+
}
|
|
2619
|
+
// src/components/Attachment.tsx
|
|
2620
|
+
import { mergeProps as mergeProps8 } from "@base-ui/react/merge-props";
|
|
2621
|
+
import { useRender as useRender9 } from "@base-ui/react/use-render";
|
|
2622
|
+
import { cva as cva7 } from "class-variance-authority";
|
|
2623
|
+
import { jsx as jsx28 } from "react/jsx-runtime";
|
|
2624
|
+
var attachmentVariants = cva7("group/attachment relative flex w-fit max-w-full min-w-0 shrink-0 flex-wrap rounded-md border bg-card text-card-foreground transition-colors motion-reduce:transition-none focus-within:ring-1 focus-within:ring-ring has-[>a,>button]:hover:bg-muted/50 data-[state=error]:border-destructive data-[state=idle]:border-dashed", {
|
|
2625
|
+
variants: {
|
|
2626
|
+
size: {
|
|
2627
|
+
default: "gap-control-gap text-sm has-data-[slot=attachment-content]:px-control-x has-data-[slot=attachment-content]:py-control-gap has-data-[slot=attachment-media]:p-control-gap",
|
|
2628
|
+
sm: "gap-control-gap text-xs has-data-[slot=attachment-content]:px-2 has-data-[slot=attachment-content]:py-1.5 has-data-[slot=attachment-media]:p-1.5",
|
|
2629
|
+
xs: "gap-1.5 text-xs has-data-[slot=attachment-content]:px-1.5 has-data-[slot=attachment-content]:py-1 has-data-[slot=attachment-media]:p-1"
|
|
2630
|
+
},
|
|
2631
|
+
orientation: {
|
|
2632
|
+
horizontal: "min-w-40 items-center",
|
|
2633
|
+
vertical: "w-24 flex-col has-data-[slot=attachment-content]:w-30"
|
|
2634
|
+
}
|
|
2635
|
+
}
|
|
2636
|
+
});
|
|
2637
|
+
function Attachment({
|
|
2638
|
+
density,
|
|
2639
|
+
className,
|
|
2640
|
+
state = "done",
|
|
2641
|
+
size = "default",
|
|
2642
|
+
orientation = "horizontal",
|
|
2643
|
+
...props
|
|
2644
|
+
}) {
|
|
2645
|
+
return /* @__PURE__ */ jsx28("div", {
|
|
2646
|
+
"data-slot": "attachment",
|
|
2647
|
+
"data-density": density,
|
|
2648
|
+
"data-state": state,
|
|
2649
|
+
"data-size": size,
|
|
2650
|
+
"data-orientation": orientation,
|
|
2651
|
+
className: cn2(attachmentVariants({ size, orientation }), className),
|
|
2652
|
+
...props
|
|
2653
|
+
});
|
|
2654
|
+
}
|
|
2655
|
+
var attachmentMediaVariants = cva7("relative flex aspect-square w-10 shrink-0 items-center justify-center overflow-hidden rounded-sm bg-muted text-foreground group-data-[orientation=vertical]/attachment:w-full group-data-[orientation=horizontal]/attachment:group-data-[size=sm]/attachment:w-8 group-data-[orientation=horizontal]/attachment:group-data-[size=xs]/attachment:w-7 group-data-[state=error]/attachment:bg-destructive/10 group-data-[state=error]/attachment:text-destructive group-data-[orientation=vertical]/attachment:*:data-[slot=spinner]:size-6! [&_svg]:pointer-events-none [&_svg:not([class*='size-'])]:size-4 group-data-[orientation=vertical]/attachment:[&_svg:not([class*='size-'])]:size-6 group-data-[size=xs]/attachment:[&_svg:not([class*='size-'])]:size-3.5", {
|
|
2656
|
+
variants: {
|
|
2657
|
+
variant: {
|
|
2658
|
+
icon: "",
|
|
2659
|
+
image: "opacity-60 group-data-[state=done]/attachment:opacity-100 group-data-[state=idle]/attachment:opacity-100 *:[img]:aspect-square *:[img]:w-full *:[img]:object-cover"
|
|
2660
|
+
}
|
|
2661
|
+
},
|
|
2662
|
+
defaultVariants: { variant: "icon" }
|
|
2663
|
+
});
|
|
2664
|
+
function AttachmentMedia({ density, className, variant = "icon", ...props }) {
|
|
2665
|
+
return /* @__PURE__ */ jsx28("div", {
|
|
2666
|
+
"data-slot": "attachment-media",
|
|
2667
|
+
"data-density": density,
|
|
2668
|
+
"data-variant": variant,
|
|
2669
|
+
className: cn2(attachmentMediaVariants({ variant }), className),
|
|
2670
|
+
...props
|
|
2671
|
+
});
|
|
2672
|
+
}
|
|
2673
|
+
function AttachmentContent({ density, className, ...props }) {
|
|
2674
|
+
return /* @__PURE__ */ jsx28("div", {
|
|
2675
|
+
"data-slot": "attachment-content",
|
|
2676
|
+
"data-density": density,
|
|
2677
|
+
className: cn2("max-w-full min-w-0 flex-1 leading-tight group-data-[orientation=vertical]/attachment:px-1", className),
|
|
2678
|
+
...props
|
|
2679
|
+
});
|
|
2680
|
+
}
|
|
2681
|
+
function AttachmentTitle({ density, className, ...props }) {
|
|
2682
|
+
return /* @__PURE__ */ jsx28("span", {
|
|
2683
|
+
"data-slot": "attachment-title",
|
|
2684
|
+
"data-density": density,
|
|
2685
|
+
className: cn2("block max-w-full min-w-0 truncate font-medium group-data-[state=processing]/attachment:shimmer group-data-[state=uploading]/attachment:shimmer", className),
|
|
2686
|
+
...props
|
|
2687
|
+
});
|
|
2688
|
+
}
|
|
2689
|
+
function AttachmentDescription({ density, className, ...props }) {
|
|
2690
|
+
return /* @__PURE__ */ jsx28("span", {
|
|
2691
|
+
"data-slot": "attachment-description",
|
|
2692
|
+
"data-density": density,
|
|
2693
|
+
className: cn2("mt-0.5 block max-w-full min-w-0 truncate text-xs text-muted-foreground group-data-[state=error]/attachment:text-destructive", className),
|
|
2694
|
+
...props
|
|
2695
|
+
});
|
|
2696
|
+
}
|
|
2697
|
+
function AttachmentActions({ density, className, ...props }) {
|
|
2698
|
+
return /* @__PURE__ */ jsx28("div", {
|
|
2699
|
+
"data-slot": "attachment-actions",
|
|
2700
|
+
"data-density": density,
|
|
2701
|
+
className: cn2("relative z-20 flex shrink-0 items-center group-data-[orientation=vertical]/attachment:absolute group-data-[orientation=vertical]/attachment:top-3 group-data-[orientation=vertical]/attachment:end-3 group-data-[orientation=vertical]/attachment:gap-1", className),
|
|
2702
|
+
...props
|
|
2703
|
+
});
|
|
2704
|
+
}
|
|
2705
|
+
function AttachmentAction({
|
|
2706
|
+
className,
|
|
2707
|
+
variant = "ghost",
|
|
2708
|
+
size = "icon-xs",
|
|
2709
|
+
...props
|
|
2710
|
+
}) {
|
|
2711
|
+
return /* @__PURE__ */ jsx28(Button2, {
|
|
2712
|
+
"data-slot": "attachment-action",
|
|
2713
|
+
variant,
|
|
2714
|
+
size,
|
|
2715
|
+
className,
|
|
2716
|
+
...props
|
|
2717
|
+
});
|
|
2718
|
+
}
|
|
2719
|
+
function AttachmentTrigger({ density, className, render, type, ...props }) {
|
|
2720
|
+
return useRender9({
|
|
2721
|
+
defaultTagName: "button",
|
|
2722
|
+
props: mergeProps8({ type: render ? type : type ?? "button", className: cn2("absolute inset-0 z-10 outline-none", className) }, props),
|
|
2723
|
+
render,
|
|
2724
|
+
state: { slot: "attachment-trigger", density }
|
|
2725
|
+
});
|
|
2726
|
+
}
|
|
2727
|
+
function AttachmentGroup({ density, className, ...props }) {
|
|
2728
|
+
return /* @__PURE__ */ jsx28("div", {
|
|
2729
|
+
"data-slot": "attachment-group",
|
|
2730
|
+
"data-density": density,
|
|
2731
|
+
className: cn2("flex min-w-0 scroll-fade-x snap-x snap-mandatory scroll-px-1 no-scrollbar gap-3 overflow-x-auto overscroll-x-contain py-1 *:data-[slot=attachment]:flex-none *:data-[slot=attachment]:snap-start", className),
|
|
2732
|
+
...props
|
|
2733
|
+
});
|
|
2734
|
+
}
|
|
2735
|
+
// src/components/InlineEdit.tsx
|
|
2736
|
+
import { useEffect as useEffect2, useRef as useRef4, useState as useState4 } from "react";
|
|
2737
|
+
import { jsx as jsx29, jsxs as jsxs18 } from "react/jsx-runtime";
|
|
2738
|
+
function InlineEdit({
|
|
2739
|
+
label,
|
|
2740
|
+
value,
|
|
2741
|
+
density,
|
|
2742
|
+
isDisabled = false,
|
|
2743
|
+
shouldSelectOnMount = true,
|
|
2744
|
+
onValueChange,
|
|
2745
|
+
onCommit,
|
|
2746
|
+
onCancel
|
|
2747
|
+
}) {
|
|
2748
|
+
const input = useRef4(null);
|
|
2749
|
+
const isFinished = useRef4(false);
|
|
2750
|
+
const [isSaving, setSaving] = useState4(false);
|
|
2751
|
+
const [error, setError] = useState4("");
|
|
2752
|
+
useEffect2(() => {
|
|
2753
|
+
input.current?.focus();
|
|
2754
|
+
if (shouldSelectOnMount)
|
|
2755
|
+
input.current?.select();
|
|
2756
|
+
}, [shouldSelectOnMount]);
|
|
2757
|
+
const save = async () => {
|
|
2758
|
+
if (isFinished.current || isDisabled)
|
|
2759
|
+
return;
|
|
2760
|
+
isFinished.current = true;
|
|
2761
|
+
setSaving(true);
|
|
2762
|
+
setError("");
|
|
2763
|
+
try {
|
|
2764
|
+
await onCommit(value);
|
|
2765
|
+
} catch (error) {
|
|
2766
|
+
isFinished.current = false;
|
|
2767
|
+
setError(error instanceof Error ? error.message : "Could not save this edit.");
|
|
2768
|
+
} finally {
|
|
2769
|
+
setSaving(false);
|
|
2770
|
+
}
|
|
2771
|
+
};
|
|
2772
|
+
return /* @__PURE__ */ jsxs18("form", {
|
|
2773
|
+
className: "flex min-w-0 flex-col gap-1",
|
|
2774
|
+
onSubmit: (event) => {
|
|
2775
|
+
event.preventDefault();
|
|
2776
|
+
save();
|
|
2777
|
+
},
|
|
2778
|
+
children: [
|
|
2779
|
+
/* @__PURE__ */ jsx29(Input2, {
|
|
2780
|
+
ref: input,
|
|
2781
|
+
density,
|
|
2782
|
+
"aria-label": label,
|
|
2783
|
+
"aria-invalid": Boolean(error),
|
|
2784
|
+
"aria-description": "Enter saves. Escape cancels.",
|
|
2785
|
+
value,
|
|
2786
|
+
disabled: isDisabled || isSaving,
|
|
2787
|
+
onChange: (event) => onValueChange(event.target.value),
|
|
2788
|
+
onBlur: () => {
|
|
2789
|
+
save();
|
|
2790
|
+
},
|
|
2791
|
+
onKeyDown: (event) => {
|
|
2792
|
+
if (event.key === "Escape") {
|
|
2793
|
+
event.preventDefault();
|
|
2794
|
+
event.stopPropagation();
|
|
2795
|
+
isFinished.current = true;
|
|
2796
|
+
onCancel();
|
|
2797
|
+
}
|
|
2798
|
+
}
|
|
2799
|
+
}),
|
|
2800
|
+
error && /* @__PURE__ */ jsx29("p", {
|
|
2801
|
+
role: "alert",
|
|
2802
|
+
className: "text-xs text-destructive",
|
|
2803
|
+
children: error
|
|
2804
|
+
})
|
|
2805
|
+
]
|
|
2806
|
+
});
|
|
2807
|
+
}
|
|
2808
|
+
// src/components/StarRating.tsx
|
|
2809
|
+
import { Radio } from "@base-ui/react/radio";
|
|
2810
|
+
import { RadioGroup } from "@base-ui/react/radio-group";
|
|
2811
|
+
import { StarIcon, CircleOffIcon } from "lucide-react";
|
|
2812
|
+
import { jsx as jsx30 } from "react/jsx-runtime";
|
|
2813
|
+
function StarRating({ label, value, disabled, density, onValueChange }) {
|
|
2814
|
+
return /* @__PURE__ */ jsx30(RadioGroup, {
|
|
2815
|
+
"aria-label": label,
|
|
2816
|
+
value,
|
|
2817
|
+
disabled,
|
|
2818
|
+
"data-density": density,
|
|
2819
|
+
className: "inline-flex w-fit shrink-0 items-center gap-0.5",
|
|
2820
|
+
onValueChange,
|
|
2821
|
+
children: [1, 2, 3, 4, 5, 0].map((star) => /* @__PURE__ */ jsx30(Radio.Root, {
|
|
2822
|
+
value: star,
|
|
2823
|
+
nativeButton: true,
|
|
2824
|
+
render: /* @__PURE__ */ jsx30("button", {
|
|
2825
|
+
type: "button"
|
|
2826
|
+
}),
|
|
2827
|
+
"aria-label": star === 0 ? "Unrated" : `${star} ${star === 1 ? "star" : "stars"}`,
|
|
2828
|
+
title: star === 0 ? "Clear rating" : `${star} stars`,
|
|
2829
|
+
className: "inline-flex size-5 shrink-0 items-center justify-center rounded-sm text-muted-foreground outline-none hover:text-primary focus-visible:ring-1 focus-visible:ring-ring data-disabled:cursor-not-allowed data-disabled:opacity-50",
|
|
2830
|
+
children: star === 0 ? /* @__PURE__ */ jsx30(CircleOffIcon, {
|
|
2831
|
+
"aria-hidden": "true",
|
|
2832
|
+
className: "size-3"
|
|
2833
|
+
}) : /* @__PURE__ */ jsx30(StarIcon, {
|
|
2834
|
+
"aria-hidden": "true",
|
|
2835
|
+
className: star <= value ? "size-3.5 fill-primary text-primary" : "size-3.5"
|
|
2836
|
+
})
|
|
2837
|
+
}, star))
|
|
2838
|
+
});
|
|
2839
|
+
}
|
|
2840
|
+
// src/components/ConfirmationDialog.tsx
|
|
2841
|
+
import { useState as useState5 } from "react";
|
|
2842
|
+
import { jsx as jsx31, jsxs as jsxs19 } from "react/jsx-runtime";
|
|
2843
|
+
function ConfirmationDialog({
|
|
2844
|
+
open,
|
|
2845
|
+
title,
|
|
2846
|
+
description,
|
|
2847
|
+
confirmLabel,
|
|
2848
|
+
onOpenChange,
|
|
2849
|
+
onConfirm
|
|
2850
|
+
}) {
|
|
2851
|
+
const [isPending, setPending] = useState5(false);
|
|
2852
|
+
const [error, setError] = useState5("");
|
|
2853
|
+
return /* @__PURE__ */ jsx31(AlertDialog, {
|
|
2854
|
+
open,
|
|
2855
|
+
onOpenChange: (next) => {
|
|
2856
|
+
if (!isPending) {
|
|
2857
|
+
setError("");
|
|
2858
|
+
onOpenChange(next);
|
|
2859
|
+
}
|
|
2860
|
+
},
|
|
2861
|
+
children: /* @__PURE__ */ jsxs19(AlertDialogContent, {
|
|
2862
|
+
children: [
|
|
2863
|
+
/* @__PURE__ */ jsxs19(AlertDialogHeader, {
|
|
2864
|
+
children: [
|
|
2865
|
+
/* @__PURE__ */ jsx31(AlertDialogTitle, {
|
|
2866
|
+
children: title
|
|
2867
|
+
}),
|
|
2868
|
+
/* @__PURE__ */ jsx31(AlertDialogDescription, {
|
|
2869
|
+
children: description
|
|
2870
|
+
})
|
|
2871
|
+
]
|
|
2872
|
+
}),
|
|
2873
|
+
error && /* @__PURE__ */ jsx31(Alert2, {
|
|
2874
|
+
variant: "destructive",
|
|
2875
|
+
children: /* @__PURE__ */ jsx31(AlertDescription2, {
|
|
2876
|
+
children: error
|
|
2877
|
+
})
|
|
2878
|
+
}),
|
|
2879
|
+
/* @__PURE__ */ jsxs19(AlertDialogFooter, {
|
|
2880
|
+
children: [
|
|
2881
|
+
/* @__PURE__ */ jsx31(AlertDialogCancel, {
|
|
2882
|
+
disabled: isPending,
|
|
2883
|
+
children: "Cancel"
|
|
2884
|
+
}),
|
|
2885
|
+
/* @__PURE__ */ jsx31(Button2, {
|
|
2886
|
+
variant: "destructive",
|
|
2887
|
+
disabled: isPending,
|
|
2888
|
+
onClick: async () => {
|
|
2889
|
+
setPending(true);
|
|
2890
|
+
setError("");
|
|
2891
|
+
try {
|
|
2892
|
+
await onConfirm();
|
|
2893
|
+
onOpenChange(false);
|
|
2894
|
+
} catch (error) {
|
|
2895
|
+
setError(error instanceof Error ? error.message : "The action could not be completed.");
|
|
2896
|
+
} finally {
|
|
2897
|
+
setPending(false);
|
|
2898
|
+
}
|
|
2899
|
+
},
|
|
2900
|
+
children: isPending ? "Working…" : confirmLabel
|
|
2901
|
+
})
|
|
2902
|
+
]
|
|
2903
|
+
})
|
|
2904
|
+
]
|
|
2905
|
+
})
|
|
2906
|
+
});
|
|
2907
|
+
}
|
|
2908
|
+
// src/components/ImagePicker.tsx
|
|
2909
|
+
import { useRef as useRef5 } from "react";
|
|
2910
|
+
import { ImageIcon, UploadIcon } from "lucide-react";
|
|
2911
|
+
|
|
2912
|
+
// src/hooks/useObjectURL.ts
|
|
2913
|
+
import { useEffect as useEffect3, useState as useState6 } from "react";
|
|
2914
|
+
function useObjectURL(file) {
|
|
2915
|
+
const [url, setURL] = useState6();
|
|
2916
|
+
useEffect3(() => {
|
|
2917
|
+
if (!file) {
|
|
2918
|
+
setURL(undefined);
|
|
2919
|
+
return;
|
|
2920
|
+
}
|
|
2921
|
+
const next = URL.createObjectURL(file);
|
|
2922
|
+
setURL(next);
|
|
2923
|
+
return () => URL.revokeObjectURL(next);
|
|
2924
|
+
}, [file]);
|
|
2925
|
+
return url;
|
|
2926
|
+
}
|
|
2927
|
+
|
|
2928
|
+
// src/components/ImagePicker.tsx
|
|
2929
|
+
import { jsx as jsx32, jsxs as jsxs20 } from "react/jsx-runtime";
|
|
2930
|
+
function ImagePicker({ src, file, label, disabled, onFileChange, onClear }) {
|
|
2931
|
+
const input = useRef5(null);
|
|
2932
|
+
const preview = useObjectURL(file);
|
|
2933
|
+
const image = file === null ? undefined : preview ?? src;
|
|
2934
|
+
return /* @__PURE__ */ jsxs20("figure", {
|
|
2935
|
+
className: "flex min-w-0 flex-col items-center gap-3",
|
|
2936
|
+
"aria-label": label,
|
|
2937
|
+
children: [
|
|
2938
|
+
/* @__PURE__ */ jsxs20(Avatar2, {
|
|
2939
|
+
size: "preview",
|
|
2940
|
+
shape: "square",
|
|
2941
|
+
children: [
|
|
2942
|
+
/* @__PURE__ */ jsx32(AvatarImage2, {
|
|
2943
|
+
src: image,
|
|
2944
|
+
alt: label
|
|
2945
|
+
}),
|
|
2946
|
+
/* @__PURE__ */ jsx32(AvatarFallback2, {
|
|
2947
|
+
children: /* @__PURE__ */ jsx32(ImageIcon, {
|
|
2948
|
+
className: "size-12",
|
|
2949
|
+
"aria-hidden": "true"
|
|
2950
|
+
})
|
|
2951
|
+
})
|
|
2952
|
+
]
|
|
2953
|
+
}),
|
|
2954
|
+
/* @__PURE__ */ jsx32("input", {
|
|
2955
|
+
ref: input,
|
|
2956
|
+
hidden: true,
|
|
2957
|
+
type: "file",
|
|
2958
|
+
accept: "image/png,image/jpeg,image/gif",
|
|
2959
|
+
"aria-label": "Choose image file",
|
|
2960
|
+
disabled,
|
|
2961
|
+
onChange: (event) => {
|
|
2962
|
+
const selected = event.currentTarget.files?.[0];
|
|
2963
|
+
if (selected)
|
|
2964
|
+
onFileChange(selected);
|
|
2965
|
+
event.currentTarget.value = "";
|
|
2966
|
+
}
|
|
2967
|
+
}),
|
|
2968
|
+
/* @__PURE__ */ jsxs20("div", {
|
|
2969
|
+
className: "flex flex-wrap justify-center gap-2",
|
|
2970
|
+
children: [
|
|
2971
|
+
/* @__PURE__ */ jsxs20(Button2, {
|
|
2972
|
+
type: "button",
|
|
2973
|
+
variant: "outline",
|
|
2974
|
+
disabled,
|
|
2975
|
+
onClick: () => input.current?.click(),
|
|
2976
|
+
children: [
|
|
2977
|
+
/* @__PURE__ */ jsx32(UploadIcon, {
|
|
2978
|
+
"data-icon": "inline-start"
|
|
2979
|
+
}),
|
|
2980
|
+
"Upload image"
|
|
2981
|
+
]
|
|
2982
|
+
}),
|
|
2983
|
+
/* @__PURE__ */ jsx32(Button2, {
|
|
2984
|
+
type: "button",
|
|
2985
|
+
variant: "outline",
|
|
2986
|
+
disabled: disabled || !image,
|
|
2987
|
+
onClick: onClear,
|
|
2988
|
+
children: "Unset image"
|
|
2989
|
+
})
|
|
2990
|
+
]
|
|
2991
|
+
})
|
|
2992
|
+
]
|
|
2993
|
+
});
|
|
2994
|
+
}
|
|
2995
|
+
// src/components/PortalProvider.tsx
|
|
2996
|
+
import { jsx as jsx33 } from "react/jsx-runtime";
|
|
2997
|
+
function PortalProvider({ container, children }) {
|
|
2998
|
+
return /* @__PURE__ */ jsx33(PortalContext.Provider, {
|
|
2999
|
+
value: container,
|
|
3000
|
+
children
|
|
3001
|
+
});
|
|
3002
|
+
}
|
|
3003
|
+
export {
|
|
3004
|
+
Accordion,
|
|
3005
|
+
AccordionContent,
|
|
3006
|
+
AccordionItem,
|
|
3007
|
+
AccordionTrigger,
|
|
3008
|
+
Alert2 as Alert,
|
|
3009
|
+
AlertAction2 as AlertAction,
|
|
3010
|
+
AlertDescription2 as AlertDescription,
|
|
3011
|
+
AlertDialog,
|
|
3012
|
+
AlertDialogAction,
|
|
3013
|
+
AlertDialogCancel,
|
|
3014
|
+
AlertDialogContent,
|
|
3015
|
+
AlertDialogDescription,
|
|
3016
|
+
AlertDialogFooter,
|
|
3017
|
+
AlertDialogHeader,
|
|
3018
|
+
AlertDialogMedia,
|
|
3019
|
+
AlertDialogOverlay,
|
|
3020
|
+
AlertDialogPortal,
|
|
3021
|
+
AlertDialogTitle,
|
|
3022
|
+
AlertDialogTrigger,
|
|
3023
|
+
AlertTitle2 as AlertTitle,
|
|
3024
|
+
AspectRatio,
|
|
3025
|
+
Attachment,
|
|
3026
|
+
AttachmentAction,
|
|
3027
|
+
AttachmentActions,
|
|
3028
|
+
AttachmentContent,
|
|
3029
|
+
AttachmentDescription,
|
|
3030
|
+
AttachmentGroup,
|
|
3031
|
+
AttachmentMedia,
|
|
3032
|
+
AttachmentTitle,
|
|
3033
|
+
AttachmentTrigger,
|
|
3034
|
+
Avatar2 as Avatar,
|
|
3035
|
+
AvatarBadge2 as AvatarBadge,
|
|
3036
|
+
AvatarFallback2 as AvatarFallback,
|
|
3037
|
+
AvatarGroup2 as AvatarGroup,
|
|
3038
|
+
AvatarGroupCount2 as AvatarGroupCount,
|
|
3039
|
+
AvatarImage2 as AvatarImage,
|
|
3040
|
+
Badge2 as Badge,
|
|
3041
|
+
Breadcrumb,
|
|
3042
|
+
BreadcrumbEllipsis,
|
|
3043
|
+
BreadcrumbItem,
|
|
3044
|
+
BreadcrumbLink,
|
|
3045
|
+
BreadcrumbList,
|
|
3046
|
+
BreadcrumbPage,
|
|
3047
|
+
BreadcrumbSeparator,
|
|
3048
|
+
Bubble,
|
|
3049
|
+
BubbleContent,
|
|
3050
|
+
BubbleGroup,
|
|
3051
|
+
BubbleReactions,
|
|
3052
|
+
Button2 as Button,
|
|
3053
|
+
ButtonGroup,
|
|
3054
|
+
ButtonGroupSeparator,
|
|
3055
|
+
ButtonGroupText,
|
|
3056
|
+
Card2 as Card,
|
|
3057
|
+
CardAction2 as CardAction,
|
|
3058
|
+
CardContent2 as CardContent,
|
|
3059
|
+
CardDescription2 as CardDescription,
|
|
3060
|
+
CardFooter2 as CardFooter,
|
|
3061
|
+
CardHeader2 as CardHeader,
|
|
3062
|
+
CardTitle2 as CardTitle,
|
|
3063
|
+
Checkbox2 as Checkbox,
|
|
3064
|
+
Collapsible2 as Collapsible,
|
|
3065
|
+
CollapsibleContent2 as CollapsibleContent,
|
|
3066
|
+
CollapsibleTrigger2 as CollapsibleTrigger,
|
|
3067
|
+
Combobox,
|
|
3068
|
+
ComboboxChip,
|
|
3069
|
+
ComboboxChips,
|
|
3070
|
+
ComboboxChipsInput,
|
|
3071
|
+
ComboboxCollection,
|
|
3072
|
+
ComboboxContent,
|
|
3073
|
+
ComboboxEmpty,
|
|
3074
|
+
ComboboxGroup,
|
|
3075
|
+
ComboboxInput,
|
|
3076
|
+
ComboboxItem,
|
|
3077
|
+
ComboboxLabel,
|
|
3078
|
+
ComboboxList,
|
|
3079
|
+
ComboboxSeparator,
|
|
3080
|
+
ComboboxTrigger,
|
|
3081
|
+
ComboboxValue,
|
|
3082
|
+
ConfirmationDialog,
|
|
3083
|
+
ContextMenu,
|
|
3084
|
+
ContextMenuCheckboxItem,
|
|
3085
|
+
ContextMenuContent,
|
|
3086
|
+
ContextMenuGroup,
|
|
3087
|
+
ContextMenuItem,
|
|
3088
|
+
ContextMenuLabel,
|
|
3089
|
+
ContextMenuPortal,
|
|
3090
|
+
ContextMenuRadioGroup,
|
|
3091
|
+
ContextMenuRadioItem,
|
|
3092
|
+
ContextMenuSeparator,
|
|
3093
|
+
ContextMenuShortcut,
|
|
3094
|
+
ContextMenuSub,
|
|
3095
|
+
ContextMenuSubContent,
|
|
3096
|
+
ContextMenuSubTrigger,
|
|
3097
|
+
ContextMenuTrigger,
|
|
3098
|
+
DensityProvider,
|
|
3099
|
+
Dialog2 as Dialog,
|
|
3100
|
+
DialogClose2 as DialogClose,
|
|
3101
|
+
DialogContent2 as DialogContent,
|
|
3102
|
+
DialogDescription2 as DialogDescription,
|
|
3103
|
+
DialogFooter2 as DialogFooter,
|
|
3104
|
+
DialogHeader2 as DialogHeader,
|
|
3105
|
+
DialogOverlay2 as DialogOverlay,
|
|
3106
|
+
DialogPortal2 as DialogPortal,
|
|
3107
|
+
DialogTitle2 as DialogTitle,
|
|
3108
|
+
DialogTrigger2 as DialogTrigger,
|
|
3109
|
+
DirectionProvider2 as DirectionProvider,
|
|
3110
|
+
DragDropPreview,
|
|
3111
|
+
DragDropProvider,
|
|
3112
|
+
DragSource,
|
|
3113
|
+
Drawer,
|
|
3114
|
+
DrawerClose,
|
|
3115
|
+
DrawerContent,
|
|
3116
|
+
DrawerDescription,
|
|
3117
|
+
DrawerFooter,
|
|
3118
|
+
DrawerHeader,
|
|
3119
|
+
DrawerOverlay,
|
|
3120
|
+
DrawerPortal,
|
|
3121
|
+
DrawerSwipeHandle,
|
|
3122
|
+
DrawerTitle,
|
|
3123
|
+
DrawerTrigger,
|
|
3124
|
+
DropTarget,
|
|
3125
|
+
DropdownMenu2 as DropdownMenu,
|
|
3126
|
+
DropdownMenuCheckboxItem2 as DropdownMenuCheckboxItem,
|
|
3127
|
+
DropdownMenuContent2 as DropdownMenuContent,
|
|
3128
|
+
DropdownMenuGroup2 as DropdownMenuGroup,
|
|
3129
|
+
DropdownMenuItem2 as DropdownMenuItem,
|
|
3130
|
+
DropdownMenuLabel2 as DropdownMenuLabel,
|
|
3131
|
+
DropdownMenuPortal2 as DropdownMenuPortal,
|
|
3132
|
+
DropdownMenuRadioGroup2 as DropdownMenuRadioGroup,
|
|
3133
|
+
DropdownMenuRadioItem2 as DropdownMenuRadioItem,
|
|
3134
|
+
DropdownMenuSeparator2 as DropdownMenuSeparator,
|
|
3135
|
+
DropdownMenuShortcut2 as DropdownMenuShortcut,
|
|
3136
|
+
DropdownMenuSub2 as DropdownMenuSub,
|
|
3137
|
+
DropdownMenuSubContent2 as DropdownMenuSubContent,
|
|
3138
|
+
DropdownMenuSubTrigger2 as DropdownMenuSubTrigger,
|
|
3139
|
+
DropdownMenuTrigger2 as DropdownMenuTrigger,
|
|
3140
|
+
Empty2 as Empty,
|
|
3141
|
+
EmptyContent2 as EmptyContent,
|
|
3142
|
+
EmptyDescription2 as EmptyDescription,
|
|
3143
|
+
EmptyHeader2 as EmptyHeader,
|
|
3144
|
+
EmptyMedia2 as EmptyMedia,
|
|
3145
|
+
EmptyState,
|
|
3146
|
+
EmptyTitle2 as EmptyTitle,
|
|
3147
|
+
Field2 as Field,
|
|
3148
|
+
FieldContent2 as FieldContent,
|
|
3149
|
+
FieldDescription2 as FieldDescription,
|
|
3150
|
+
FieldError2 as FieldError,
|
|
3151
|
+
FieldGroup2 as FieldGroup,
|
|
3152
|
+
FieldLabel2 as FieldLabel,
|
|
3153
|
+
FieldLegend2 as FieldLegend,
|
|
3154
|
+
FieldSeparator2 as FieldSeparator,
|
|
3155
|
+
FieldSet2 as FieldSet,
|
|
3156
|
+
FieldTitle2 as FieldTitle,
|
|
3157
|
+
HoverCard2 as HoverCard,
|
|
3158
|
+
HoverCardContent2 as HoverCardContent,
|
|
3159
|
+
HoverCardTrigger2 as HoverCardTrigger,
|
|
3160
|
+
ImagePicker,
|
|
3161
|
+
InlineEdit,
|
|
3162
|
+
Input2 as Input,
|
|
3163
|
+
InputGroup2 as InputGroup,
|
|
3164
|
+
InputGroupAddon2 as InputGroupAddon,
|
|
3165
|
+
InputGroupButton2 as InputGroupButton,
|
|
3166
|
+
InputGroupInput2 as InputGroupInput,
|
|
3167
|
+
InputGroupText2 as InputGroupText,
|
|
3168
|
+
InputGroupTextarea2 as InputGroupTextarea,
|
|
3169
|
+
Item,
|
|
3170
|
+
ItemActions,
|
|
3171
|
+
ItemContent,
|
|
3172
|
+
ItemDescription,
|
|
3173
|
+
ItemFooter,
|
|
3174
|
+
ItemGroup,
|
|
3175
|
+
ItemHeader,
|
|
3176
|
+
ItemMedia,
|
|
3177
|
+
ItemSeparator,
|
|
3178
|
+
ItemTitle,
|
|
3179
|
+
JsonViewer,
|
|
3180
|
+
Kbd2 as Kbd,
|
|
3181
|
+
KbdGroup2 as KbdGroup,
|
|
3182
|
+
Label2 as Label,
|
|
3183
|
+
Marker,
|
|
3184
|
+
MarkerContent,
|
|
3185
|
+
MarkerIcon,
|
|
3186
|
+
Menubar,
|
|
3187
|
+
MenubarCheckboxItem,
|
|
3188
|
+
MenubarContent,
|
|
3189
|
+
MenubarGroup,
|
|
3190
|
+
MenubarItem,
|
|
3191
|
+
MenubarLabel,
|
|
3192
|
+
MenubarMenu,
|
|
3193
|
+
MenubarPortal,
|
|
3194
|
+
MenubarRadioGroup,
|
|
3195
|
+
MenubarRadioItem,
|
|
3196
|
+
MenubarSeparator,
|
|
3197
|
+
MenubarShortcut,
|
|
3198
|
+
MenubarSub,
|
|
3199
|
+
MenubarSubContent,
|
|
3200
|
+
MenubarSubTrigger,
|
|
3201
|
+
MenubarTrigger,
|
|
3202
|
+
Message,
|
|
3203
|
+
MessageAvatar,
|
|
3204
|
+
MessageContent,
|
|
3205
|
+
MessageFooter,
|
|
3206
|
+
MessageGroup,
|
|
3207
|
+
MessageHeader,
|
|
3208
|
+
NativeSelect,
|
|
3209
|
+
NativeSelectOptGroup,
|
|
3210
|
+
NativeSelectOption,
|
|
3211
|
+
NavigationMenu,
|
|
3212
|
+
NavigationMenuContent,
|
|
3213
|
+
NavigationMenuIndicator,
|
|
3214
|
+
NavigationMenuItem,
|
|
3215
|
+
NavigationMenuLink,
|
|
3216
|
+
NavigationMenuList,
|
|
3217
|
+
NavigationMenuPositioner,
|
|
3218
|
+
NavigationMenuTrigger,
|
|
3219
|
+
PageMessage,
|
|
3220
|
+
Pagination,
|
|
3221
|
+
PaginationContent,
|
|
3222
|
+
PaginationEllipsis,
|
|
3223
|
+
PaginationItem,
|
|
3224
|
+
PaginationLink,
|
|
3225
|
+
PaginationNext,
|
|
3226
|
+
PaginationPrevious,
|
|
3227
|
+
Popover2 as Popover,
|
|
3228
|
+
PopoverContent2 as PopoverContent,
|
|
3229
|
+
PopoverDescription2 as PopoverDescription,
|
|
3230
|
+
PopoverHeader2 as PopoverHeader,
|
|
3231
|
+
PopoverTitle2 as PopoverTitle,
|
|
3232
|
+
PopoverTrigger2 as PopoverTrigger,
|
|
3233
|
+
PortalProvider,
|
|
3234
|
+
Progress2 as Progress,
|
|
3235
|
+
ProgressIndicator2 as ProgressIndicator,
|
|
3236
|
+
ProgressLabel2 as ProgressLabel,
|
|
3237
|
+
ProgressTrack2 as ProgressTrack,
|
|
3238
|
+
ProgressValue2 as ProgressValue,
|
|
3239
|
+
RadioGroup2 as RadioGroup,
|
|
3240
|
+
RadioGroupItem2 as RadioGroupItem,
|
|
3241
|
+
ScrollArea,
|
|
3242
|
+
ScrollBar,
|
|
3243
|
+
Select,
|
|
3244
|
+
SelectContent,
|
|
3245
|
+
SelectGroup,
|
|
3246
|
+
SelectItem,
|
|
3247
|
+
SelectLabel,
|
|
3248
|
+
SelectScrollDownButton,
|
|
3249
|
+
SelectScrollUpButton,
|
|
3250
|
+
SelectSeparator,
|
|
3251
|
+
SelectTrigger,
|
|
3252
|
+
SelectValue,
|
|
3253
|
+
Separator2 as Separator,
|
|
3254
|
+
Sheet2 as Sheet,
|
|
3255
|
+
SheetClose2 as SheetClose,
|
|
3256
|
+
SheetContent2 as SheetContent,
|
|
3257
|
+
SheetDescription2 as SheetDescription,
|
|
3258
|
+
SheetFooter2 as SheetFooter,
|
|
3259
|
+
SheetHeader2 as SheetHeader,
|
|
3260
|
+
SheetTitle2 as SheetTitle,
|
|
3261
|
+
SheetTrigger2 as SheetTrigger,
|
|
3262
|
+
Sidebar2 as Sidebar,
|
|
3263
|
+
SidebarContent2 as SidebarContent,
|
|
3264
|
+
SidebarFooter2 as SidebarFooter,
|
|
3265
|
+
SidebarGroup2 as SidebarGroup,
|
|
3266
|
+
SidebarGroupAction2 as SidebarGroupAction,
|
|
3267
|
+
SidebarGroupContent2 as SidebarGroupContent,
|
|
3268
|
+
SidebarGroupLabel2 as SidebarGroupLabel,
|
|
3269
|
+
SidebarHeader2 as SidebarHeader,
|
|
3270
|
+
SidebarInput2 as SidebarInput,
|
|
3271
|
+
SidebarInset2 as SidebarInset,
|
|
3272
|
+
SidebarMenu2 as SidebarMenu,
|
|
3273
|
+
SidebarMenuAction2 as SidebarMenuAction,
|
|
3274
|
+
SidebarMenuBadge2 as SidebarMenuBadge,
|
|
3275
|
+
SidebarMenuButton2 as SidebarMenuButton,
|
|
3276
|
+
SidebarMenuItem2 as SidebarMenuItem,
|
|
3277
|
+
SidebarMenuSkeleton2 as SidebarMenuSkeleton,
|
|
3278
|
+
SidebarMenuSub2 as SidebarMenuSub,
|
|
3279
|
+
SidebarMenuSubButton2 as SidebarMenuSubButton,
|
|
3280
|
+
SidebarMenuSubItem2 as SidebarMenuSubItem,
|
|
3281
|
+
SidebarProvider2 as SidebarProvider,
|
|
3282
|
+
SidebarRail2 as SidebarRail,
|
|
3283
|
+
SidebarSeparator2 as SidebarSeparator,
|
|
3284
|
+
SidebarTrigger2 as SidebarTrigger,
|
|
3285
|
+
Skeleton2 as Skeleton,
|
|
3286
|
+
Slider2 as Slider,
|
|
3287
|
+
Spinner2 as Spinner,
|
|
3288
|
+
StarRating,
|
|
3289
|
+
Switch2 as Switch,
|
|
3290
|
+
Table2 as Table,
|
|
3291
|
+
TableBody2 as TableBody,
|
|
3292
|
+
TableCaption2 as TableCaption,
|
|
3293
|
+
TableCell2 as TableCell,
|
|
3294
|
+
TableFooter2 as TableFooter,
|
|
3295
|
+
TableHead2 as TableHead,
|
|
3296
|
+
TableHeader2 as TableHeader,
|
|
3297
|
+
TableRow2 as TableRow,
|
|
3298
|
+
Tabs,
|
|
3299
|
+
TabsContent,
|
|
3300
|
+
TabsList,
|
|
3301
|
+
TabsTrigger,
|
|
3302
|
+
Textarea2 as Textarea,
|
|
3303
|
+
ThemeProvider,
|
|
3304
|
+
Toast,
|
|
3305
|
+
ToastAction,
|
|
3306
|
+
ToastClose,
|
|
3307
|
+
ToastContent,
|
|
3308
|
+
ToastDescription,
|
|
3309
|
+
ToastPortal,
|
|
3310
|
+
ToastProvider,
|
|
3311
|
+
ToastTitle,
|
|
3312
|
+
ToastToaster,
|
|
3313
|
+
ToastViewport,
|
|
3314
|
+
Toggle2 as Toggle,
|
|
3315
|
+
ToggleGroup2 as ToggleGroup,
|
|
3316
|
+
ToggleGroupItem2 as ToggleGroupItem,
|
|
3317
|
+
Tooltip2 as Tooltip,
|
|
3318
|
+
TooltipContent2 as TooltipContent,
|
|
3319
|
+
TooltipProvider2 as TooltipProvider,
|
|
3320
|
+
TooltipTrigger2 as TooltipTrigger,
|
|
3321
|
+
badgeVariants2 as badgeVariants,
|
|
3322
|
+
buttonGroupVariants,
|
|
3323
|
+
buttonVariants2 as buttonVariants,
|
|
3324
|
+
cn2 as cn,
|
|
3325
|
+
createToastManager,
|
|
3326
|
+
markerVariants,
|
|
3327
|
+
navigationMenuTriggerStyle,
|
|
3328
|
+
tabsListVariants,
|
|
3329
|
+
toggleVariants2 as toggleVariants,
|
|
3330
|
+
useComboboxAnchor,
|
|
3331
|
+
useDirection2 as useDirection,
|
|
3332
|
+
useDragDrop,
|
|
3333
|
+
useDragSource,
|
|
3334
|
+
useDropTarget,
|
|
3335
|
+
usePortalContainer2 as usePortalContainer,
|
|
3336
|
+
useSidebar2 as useSidebar,
|
|
3337
|
+
useTheme2 as useTheme,
|
|
3338
|
+
useToastManager
|
|
3339
|
+
};
|