admin-ui-starter-kit 0.7.0 → 0.7.1
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
- package/.agents/skills/component-library-rules/references/components/INDEX.json +1 -1
- package/.agents/skills/component-library-rules/references/components/layout__layout-containers.md +43 -1
- package/dist/_shared/containers-CclPUW7j.cjs +2 -0
- package/dist/_shared/containers-CclPUW7j.cjs.map +1 -0
- package/dist/_shared/containers-GDaJ3SOV.js +101 -0
- package/dist/_shared/containers-GDaJ3SOV.js.map +1 -0
- package/dist/_shared/data-display-0uNuZSN7.js +1878 -0
- package/dist/_shared/data-display-0uNuZSN7.js.map +1 -0
- package/dist/_shared/data-display-DRa39LH8.cjs +2 -0
- package/dist/_shared/data-display-DRa39LH8.cjs.map +1 -0
- package/dist/_shared/layout-DN8tzvlm.cjs +2 -0
- package/dist/_shared/layout-DN8tzvlm.cjs.map +1 -0
- package/dist/_shared/layout-DNrUkvzF.js +268 -0
- package/dist/_shared/layout-DNrUkvzF.js.map +1 -0
- package/dist/components/composed/ai/index.cjs +1 -1
- package/dist/components/composed/ai/index.js +1 -1
- package/dist/components/composed/cards/index.cjs +1 -1
- package/dist/components/composed/cards/index.js +1 -1
- package/dist/components/composed/commerce/index.cjs +1 -1
- package/dist/components/composed/commerce/index.js +1 -1
- package/dist/components/composed/dark-surfaces/index.cjs +1 -1
- package/dist/components/composed/dark-surfaces/index.js +1 -1
- package/dist/components/composed/data-display/index.cjs +1 -1
- package/dist/components/composed/data-display/index.js +1 -1
- package/dist/components/features/products/index.cjs +1 -1
- package/dist/components/features/products/index.js +1 -1
- package/dist/components/features/resource/index.cjs +1 -1
- package/dist/components/features/resource/index.js +1 -1
- package/dist/components/layout/containers/index.cjs +1 -1
- package/dist/components/layout/containers/index.d.ts +1 -0
- package/dist/components/layout/containers/index.d.ts.map +1 -1
- package/dist/components/layout/containers/index.js +2 -2
- package/dist/components/layout/containers/two-column-layout.d.ts +43 -0
- package/dist/components/layout/containers/two-column-layout.d.ts.map +1 -0
- package/dist/components/layout/index.cjs +1 -1
- package/dist/components/layout/index.js +8 -8
- package/dist/components/layout/page/index.cjs +1 -1
- package/dist/components/layout/page/index.js +1 -1
- package/dist/showcase/assets/AreaChart-D_z9eYQj.js +6 -0
- package/dist/showcase/assets/CompositeItem-BSVzIXzg.js +1 -0
- package/dist/showcase/assets/CompositeRoot-Ewl7bgm-.js +1 -0
- package/dist/showcase/assets/DialogTrigger-CD-DcY4b.js +1 -0
- package/dist/showcase/assets/LabelableContext-BdRVtvs6.js +1 -0
- package/dist/showcase/assets/MenuTrigger-B8Y7BUCN.js +1 -0
- package/dist/showcase/assets/PreviewLayout-CE0fmzoc.js +1 -0
- package/dist/showcase/assets/RadioGroup-Qaf-akL1.js +1 -0
- package/dist/showcase/assets/ScrollAreaCorner-BQR87jzh.js +1 -0
- package/dist/showcase/assets/Separator-Cymh2jzU.js +1 -0
- package/dist/showcase/assets/ToolbarRootContext-P5BSzPlo.js +1 -0
- package/dist/showcase/assets/accordion-BGUvdQ5Z.js +171 -0
- package/dist/showcase/assets/accordion-variants-B56z6tQI.js +1 -0
- package/dist/showcase/assets/action-menu-C3DOQfP4.js +1 -0
- package/dist/showcase/assets/actions-DHG4zJRu.js +38 -0
- package/dist/showcase/assets/actions-IxPK0biY.js +310 -0
- package/dist/showcase/assets/activities-TK5Lr8Wb.js +500 -0
- package/dist/showcase/assets/activities-feed-card-tgQKimyh.js +1 -0
- package/dist/showcase/assets/admin-BQrDKNJa.js +140 -0
- package/dist/showcase/assets/ai-artifact-Cv7LTw1V.js +2 -0
- package/dist/showcase/assets/ai-chat-Dmg2Tqf1.js +568 -0
- package/dist/showcase/assets/ai-elements-BmokxSCy.js +387 -0
- package/dist/showcase/assets/ai-tool-call-6qESA6We.js +1 -0
- package/dist/showcase/assets/ai-xShhEkrM.js +207 -0
- package/dist/showcase/assets/alert--MONSwFW.js +1 -0
- package/dist/showcase/assets/alert-BuMNu_BZ.js +62 -0
- package/dist/showcase/assets/alert-z1RP5MhA.js +93 -0
- package/dist/showcase/assets/api-key-list-BhmXUJty.js +73 -0
- package/dist/showcase/assets/api-key-list-hPTN6gwa.js +1 -0
- package/dist/showcase/assets/app-sidebar-CY-XpIu6.js +1 -0
- package/dist/showcase/assets/arrow-down-D0XbhSDi.js +1 -0
- package/dist/showcase/assets/arrow-left-DBxsWbzL.js +1 -0
- package/dist/showcase/assets/arrow-right-Dk80zKWl.js +1 -0
- package/dist/showcase/assets/arrow-up-BiZ_VvpP.js +1 -0
- package/dist/showcase/assets/arrow-up-right-OdmPQEwY.js +1 -0
- package/dist/showcase/assets/avatar-BThv_quW.js +1 -0
- package/dist/showcase/assets/avatar-Bcy2snIC.js +67 -0
- package/dist/showcase/assets/avatar-Ca3to6dB.js +57 -0
- package/dist/showcase/assets/avatar-Dba0yVei.js +1 -0
- package/dist/showcase/assets/badge-A1w2eIaM.js +31 -0
- package/dist/showcase/assets/badge-check-DyqZ9Ff8.js +1 -0
- package/dist/showcase/assets/bell-DyqsYdKK.js +1 -0
- package/dist/showcase/assets/boolean-indicator-gaFjXuY1.js +1 -0
- package/dist/showcase/assets/bot-BGQvS_p9.js +1 -0
- package/dist/showcase/assets/box-BoFEAPr6.js +1 -0
- package/dist/showcase/assets/braces-D88Ve7g-.js +1 -0
- package/dist/showcase/assets/brain-hIv2TdLu.js +1 -0
- package/dist/showcase/assets/brand-CiWM8HzB.js +36 -0
- package/dist/showcase/assets/breadcrumb-DlHNoCer.js +1 -0
- package/dist/showcase/assets/breadcrumb-Dy-UbgK5.js +52 -0
- package/dist/showcase/assets/breadcrumbs-BoXmoDHt.js +1 -0
- package/dist/showcase/assets/briefcase-BeN7dk_G.js +1 -0
- package/dist/showcase/assets/building-2-ICycTKXZ.js +1 -0
- package/dist/showcase/assets/button-BADo_inb.js +44 -0
- package/dist/showcase/assets/button-group-BGkXY3HC.js +1 -0
- package/dist/showcase/assets/buttons-3z50eWMp.js +272 -0
- package/dist/showcase/assets/calendar-BAfoc476.js +1 -0
- package/dist/showcase/assets/calendar-DNxQUmlO.js +16 -0
- package/dist/showcase/assets/calendar-days-D86Fv-vG.js +1 -0
- package/dist/showcase/assets/calendar-pjS8iCZE.js +1 -0
- package/dist/showcase/assets/camera-DxWfctRe.js +1 -0
- package/dist/showcase/assets/card-BazLaDA9.js +188 -0
- package/dist/showcase/assets/card-F8Ona144.js +1 -0
- package/dist/showcase/assets/card-checkbox-group-DtK7aVPU.js +1 -0
- package/dist/showcase/assets/card-primitives-DzqLvy5f.js +1 -0
- package/dist/showcase/assets/card-radio-group-EjPkSg-w.js +1 -0
- package/dist/showcase/assets/cards--V2D7Sft.js +354 -0
- package/dist/showcase/assets/carousel-BNmTHQiN.js +452 -0
- package/dist/showcase/assets/cell-renderers-BdpeNGHs.js +1 -0
- package/dist/showcase/assets/chart-column-CJx3qWPs.js +1 -0
- package/dist/showcase/assets/chart-p7dUP6Mo.js +358 -0
- package/dist/showcase/assets/checkbox-BBxn_hxI.js +1 -0
- package/dist/showcase/assets/checkbox-BEyESyQ2.js +1 -0
- package/dist/showcase/assets/chevron-down-mjLUdP6b.js +1 -0
- package/dist/showcase/assets/chevron-left-DOofVtEd.js +1 -0
- package/dist/showcase/assets/chevron-up-BJk6z8Fg.js +1 -0
- package/dist/showcase/assets/chevrons-up-down-C-9zUpl_.js +1 -0
- package/dist/showcase/assets/circle-OmLq29jq.js +1 -0
- package/dist/showcase/assets/circle-alert-DSpR2pdl.js +1 -0
- package/dist/showcase/assets/circle-check-BjuHEm7p.js +1 -0
- package/dist/showcase/assets/circle-check-big-BuYdgE3Q.js +1 -0
- package/dist/showcase/assets/circle-dot-DlYGMuaF.js +1 -0
- package/dist/showcase/assets/circle-question-mark-BlgRDDu3.js +1 -0
- package/dist/showcase/assets/circle-x-BavQ4wuc.js +1 -0
- package/dist/showcase/assets/clock-3-CzeN1Iwk.js +1 -0
- package/dist/showcase/assets/clock-CZYS08d1.js +1 -0
- package/dist/showcase/assets/code-xml-D4NwoTpD.js +1 -0
- package/dist/showcase/assets/collapsible-BtawbO_2.js +1 -0
- package/dist/showcase/assets/collapsible-CJXE3z1T.js +27 -0
- package/dist/showcase/assets/collapsible-ws3VKPg9.js +1 -0
- package/dist/showcase/assets/combobox-Btpk7-vH.js +685 -0
- package/dist/showcase/assets/command-CoiVI2_b.js +1 -0
- package/dist/showcase/assets/command-Dkn9XqF2.js +1 -0
- package/dist/showcase/assets/comment-composer-BNnVQo1O.js +1 -0
- package/dist/showcase/assets/comment-item-BiIgcrPQ.js +1 -0
- package/dist/showcase/assets/comments-CvzWz23L.js +357 -0
- package/dist/showcase/assets/commerce-CBHLQF8q.js +19 -0
- package/dist/showcase/assets/commerce-address-card-Bqm0FQkG.js +33 -0
- package/dist/showcase/assets/commerce-cart-summary-BtGCOEun.js +43 -0
- package/dist/showcase/assets/commerce-coupon-input-I3FY6pgV.js +11 -0
- package/dist/showcase/assets/commerce-discount-stack-CWqyobuL.js +17 -0
- package/dist/showcase/assets/commerce-inventory-section-rBtMNLTt.js +123 -0
- package/dist/showcase/assets/commerce-loyalty-points-ne7c2ObQ.js +19 -0
- package/dist/showcase/assets/commerce-order-status-eLtUC1iE.js +21 -0
- package/dist/showcase/assets/commerce-payment-method-B3yFyhpS.js +17 -0
- package/dist/showcase/assets/commerce-refund-status-C1pzTSus.js +17 -0
- package/dist/showcase/assets/commerce-seo-listing-CBk_c8ru.js +61 -0
- package/dist/showcase/assets/commerce-shipment-tracking-auiKGGyV.js +24 -0
- package/dist/showcase/assets/commerce-subscription-summary-BCX4WxbS.js +25 -0
- package/dist/showcase/assets/commerce-tax-breakdown-D4F5dOjL.js +19 -0
- package/dist/showcase/assets/commerce-upcoming-booking-qlWKp0kq.js +20 -0
- package/dist/showcase/assets/commerce-voucher-entry-CqCuoKHq.js +19 -0
- package/dist/showcase/assets/composite-DeYDU7hg.js +1 -0
- package/dist/showcase/assets/conditional-rendering-CFHxzngX.js +1 -0
- package/dist/showcase/assets/contact-card-CxVeuwp_.js +65 -0
- package/dist/showcase/assets/content-container-CJN01OtO.js +1 -0
- package/dist/showcase/assets/copyable-DajG-Sgx.js +1 -0
- package/dist/showcase/assets/copyable-zOzqOOBl.js +96 -0
- package/dist/showcase/assets/course-card-DO8z-KeM.js +77 -0
- package/dist/showcase/assets/cpu-C8IgjvoP.js +1 -0
- package/dist/showcase/assets/credit-card-XYEEHtzk.js +1 -0
- package/dist/showcase/assets/css-variables-BglvDaVO.js +1223 -0
- package/dist/showcase/assets/currency-Bso6kejw.js +148 -0
- package/dist/showcase/assets/dark-surfaces-5WTjzxYN.js +90 -0
- package/dist/showcase/assets/data-view-B7uRWXOO.js +4 -0
- package/dist/showcase/assets/data-view-C4bGuOlY.js +124 -0
- package/dist/showcase/assets/database-CZLgFKRy.js +1 -0
- package/dist/showcase/assets/date-block-BicWaKPj.js +1 -0
- package/dist/showcase/assets/date-block-yRFY8Ne5.js +1 -0
- package/dist/showcase/assets/date-picker-CskCoiwf.js +1 -0
- package/dist/showcase/assets/date-pickers-fcqdsvef.js +73 -0
- package/dist/showcase/assets/dense-info-Dg38xVsF.js +106 -0
- package/dist/showcase/assets/design-system-consistency-DFa3RNWm.js +264 -0
- package/dist/showcase/assets/dialog-C4fhqXD0.js +1 -0
- package/dist/showcase/assets/dialog-CN_gfVV2.js +1 -0
- package/dist/showcase/assets/dialog-CoJdLYZ8.js +1 -0
- package/dist/showcase/assets/display-utilities-DB0eXAdH.js +4 -0
- package/dist/showcase/assets/display-utilities.examples-ez3DfdgN.js +309 -0
- package/dist/showcase/assets/dist-5H2NtsLp.js +45 -0
- package/dist/showcase/assets/dist-SJMpFlRc.js +1 -0
- package/dist/showcase/assets/dollar-sign-LBLhl0Y2.js +1 -0
- package/dist/showcase/assets/download-BkOWnQEj.js +1 -0
- package/dist/showcase/assets/dropdown-menu-5yqchTEF.js +1 -0
- package/dist/showcase/assets/dropzone-CJHqIcHB.js +1 -0
- package/dist/showcase/assets/earth-BGrx2u2i.js +1 -0
- package/dist/showcase/assets/ellipsis-Dumpj4aE.js +1 -0
- package/dist/showcase/assets/ellipsis-vertical-h1O9pibc.js +1 -0
- package/dist/showcase/assets/empty-Cc8JP5--.js +1 -0
- package/dist/showcase/assets/empty-item-C-v-Akyi.js +49 -0
- package/dist/showcase/assets/empty-state-B7BQDoeL.js +1 -0
- package/dist/showcase/assets/empty-state-BSvZNFnQ.js +190 -0
- package/dist/showcase/assets/enhanced-activities-D7g7ZD9m.js +357 -0
- package/dist/showcase/assets/enhanced-combobox-4Olgu--e.js +1 -0
- package/dist/showcase/assets/esm-CFFDcW-Z.js +2 -0
- package/dist/showcase/assets/event-calendar-vdFWcI49.js +138 -0
- package/dist/showcase/assets/event-log-BbHM_3Ko.js +330 -0
- package/dist/showcase/assets/example-BsDQngs7.js +1 -0
- package/dist/showcase/assets/external-link-BvVwsJxR.js +1 -0
- package/dist/showcase/assets/eye-CAeo-GNe.js +1 -0
- package/dist/showcase/assets/feature-announcement-7hZGrJd6.js +34 -0
- package/dist/showcase/assets/file-D4d3b9bx.js +1 -0
- package/dist/showcase/assets/file-text-C59ToXmU.js +1 -0
- package/dist/showcase/assets/filter-layout-BjoG6qxP.js +1 -0
- package/dist/showcase/assets/filters-CrE_UGbo.js +139 -0
- package/dist/showcase/assets/fixtures-ClOCQD2a.js +1 -0
- package/dist/showcase/assets/flag-CuF52WEl.js +1 -0
- package/dist/showcase/assets/folder-open-BLLtgh4E.js +1 -0
- package/dist/showcase/assets/form-field-D5kwgD4P.js +1 -0
- package/dist/showcase/assets/format-LvvHefMj.js +1 -0
- package/dist/showcase/assets/forms-Ck6hPzLP.js +915 -0
- package/dist/showcase/assets/funnel-Bvp5cFZt.js +1 -0
- package/dist/showcase/assets/generic-Cownd_Wk.js +1 -0
- package/dist/showcase/assets/getPseudoElementBounds-CPnjAO3K.js +1 -0
- package/dist/showcase/assets/gift-BCQpmV33.js +1 -0
- package/dist/showcase/assets/giftcard-cards-B_78Meny.js +85 -0
- package/dist/showcase/assets/git-branch-r0dDGCKy.js +1 -0
- package/dist/showcase/assets/global-search-DD9cGOt5.js +1 -0
- package/dist/showcase/assets/global-search-fTKzzx8k.js +215 -0
- package/dist/showcase/assets/globe-RF5bwiar.js +1 -0
- package/dist/showcase/assets/gradient-card-BDJes3UK.js +58 -0
- package/dist/showcase/assets/grip-vertical-qqe2NqfZ.js +1 -0
- package/dist/showcase/assets/hash-D9_KYvHs.js +1 -0
- package/dist/showcase/assets/header-XNCAB6Rs.js +1 -0
- package/dist/showcase/assets/header-notifications-BdWsVoN3.js +1 -0
- package/dist/showcase/assets/heart-C56rAanb.js +1 -0
- package/dist/showcase/assets/hooks-fDydjf6M.js +220 -0
- package/dist/showcase/assets/house-DbYM6er_.js +1 -0
- package/dist/showcase/assets/icon-badge-DWQE6dAm.js +37 -0
- package/dist/showcase/assets/icon-badge-ruuI6tt0.js +1 -0
- package/dist/showcase/assets/image-DCpC2weW.js +1 -0
- package/dist/showcase/assets/inbox-cvR2MbZq.js +1 -0
- package/dist/showcase/assets/index-B4sKWDcN.js +10 -0
- package/dist/showcase/assets/index-Dy3INIq2.css +2 -0
- package/dist/showcase/assets/inertValue-DhXA8ytu.js +1 -0
- package/dist/showcase/assets/info-DXwnIz56.js +1 -0
- package/dist/showcase/assets/inline-stat-C9Syz6in.js +1 -0
- package/dist/showcase/assets/inline-stat-CDcWILUM.js +15 -0
- package/dist/showcase/assets/input-CLQIEOQ4.js +1 -0
- package/dist/showcase/assets/input-D70ed8oB.js +1 -0
- package/dist/showcase/assets/input-group-CMJ2yUuD.js +47 -0
- package/dist/showcase/assets/input-group-DwZov3Y6.js +1 -0
- package/dist/showcase/assets/inputs-DQWbPvC8.js +155 -0
- package/dist/showcase/assets/installation-B2BcSkJr.js +134 -0
- package/dist/showcase/assets/invoice-header-Ds4A6mLs.js +36 -0
- package/dist/showcase/assets/invoice-items-LFYeS0eR.js +36 -0
- package/dist/showcase/assets/invoice-mini-BMVm8x43.js +14 -0
- package/dist/showcase/assets/invoice-table-BVZ-PtSC.js +30 -0
- package/dist/showcase/assets/isSameDay-BYK9pmDX.js +1 -0
- package/dist/showcase/assets/isToday-B3-xb910.js +1 -0
- package/dist/showcase/assets/italic-CPSVPc63.js +1 -0
- package/dist/showcase/assets/item-KsGEgVjl.js +1 -0
- package/dist/showcase/assets/item-WOhHNpnr.js +1 -0
- package/dist/showcase/assets/item-avTNp1z7.js +140 -0
- package/dist/showcase/assets/kanban-DwVW3Lab.js +188 -0
- package/dist/showcase/assets/key-round-CNEqnMGG.js +1 -0
- package/dist/showcase/assets/label-BZzl85ev.js +1 -0
- package/dist/showcase/assets/languages-BWquWXSu.js +1 -0
- package/dist/showcase/assets/layers-hYbCFSpT.js +1 -0
- package/dist/showcase/assets/layout-app-shell-BRLO7lFp.js +608 -0
- package/dist/showcase/assets/layout-auth-ysobcsYs.js +790 -0
- package/dist/showcase/assets/layout-containers-BoVYkBOk.js +141 -0
- package/dist/showcase/assets/layout-header-BnkgzPgS.js +203 -0
- package/dist/showcase/assets/layout-page-CdzQQr2_.js +315 -0
- package/dist/showcase/assets/layout-primitives-BXP_nFQX.js +34 -0
- package/dist/showcase/assets/layout-sidebar-tPHppANn.js +224 -0
- package/dist/showcase/assets/layout-users-DgChX6ig.js +117 -0
- package/dist/showcase/assets/layout-workspace-u1kkLDCd.js +191 -0
- package/dist/showcase/assets/lib-VG1Lf4Lk.js +1 -0
- package/dist/showcase/assets/list-checks-CUXbiTmk.js +1 -0
- package/dist/showcase/assets/lock-BwI_fNQW.js +1 -0
- package/dist/showcase/assets/lock-keyhole-DKi16lNp.js +1 -0
- package/dist/showcase/assets/mail-BlH-8y33.js +1 -0
- package/dist/showcase/assets/mail-check-DrNT7RWT.js +1 -0
- package/dist/showcase/assets/map-BKztQq4-.js +124 -0
- package/dist/showcase/assets/map-pin-BwGJCGY8.js +1 -0
- package/dist/showcase/assets/media-library-CUI_IPkM.js +699 -0
- package/dist/showcase/assets/mention-inline-suggestions-BIIRKRpU.js +1 -0
- package/dist/showcase/assets/mentions-CTkcQNFc.js +138 -0
- package/dist/showcase/assets/menus-DilZRggQ.js +171 -0
- package/dist/showcase/assets/message-square-Cjuladix.js +1 -0
- package/dist/showcase/assets/metadata-list-C6CF85o9.js +1 -0
- package/dist/showcase/assets/metadata-list-PqngP9QU.js +286 -0
- package/dist/showcase/assets/metric-C5Wrr90_.js +1 -0
- package/dist/showcase/assets/metric-bar-CIesI_gw.js +1 -0
- package/dist/showcase/assets/metric-grid-FlL7atag.js +1 -0
- package/dist/showcase/assets/metric-trend-chip-DxTiaCTB.js +1 -0
- package/dist/showcase/assets/metrics-analytics-bar-YabnSIOP.js +44 -0
- package/dist/showcase/assets/metrics-analytics-cards-Buas8exV.js +50 -0
- package/dist/showcase/assets/metrics-comparison-Jx1WGPZL.js +76 -0
- package/dist/showcase/assets/metrics-heatmap-C5cB95P9.js +27 -0
- package/dist/showcase/assets/metrics-inline-badge-D7r40gFm.js +17 -0
- package/dist/showcase/assets/metrics-kpi-row-CweMAqSm.js +31 -0
- package/dist/showcase/assets/metrics-micro-grid-UUa2fUGF.js +42 -0
- package/dist/showcase/assets/metrics-overview-eGnNPvwF.js +192 -0
- package/dist/showcase/assets/metrics-stat-cards-CEcX0zqZ.js +54 -0
- package/dist/showcase/assets/minus-CVVsGq91.js +1 -0
- package/dist/showcase/assets/money-display-Chu4t6MY.js +1 -0
- package/dist/showcase/assets/money-display-DNs6PXCm.js +3 -0
- package/dist/showcase/assets/month-year-picker-B0odiuhf.js +1 -0
- package/dist/showcase/assets/navigation-CQwt1f4b.js +90 -0
- package/dist/showcase/assets/navigation-KQxXtiL6.js +231 -0
- package/dist/showcase/assets/navigation-extras-2uJbGPhJ.js +43 -0
- package/dist/showcase/assets/notification-banner-Cx1Qm0ij.js +1 -0
- package/dist/showcase/assets/onboarding-checklist-CAHajXzP.js +119 -0
- package/dist/showcase/assets/overflow-tab-bar-gNULx5Wr.js +1 -0
- package/dist/showcase/assets/overlays-CaSVa-L2.js +159 -0
- package/dist/showcase/assets/overlays-zjTanrAP.js +408 -0
- package/dist/showcase/assets/overview-EZ_RMkeD.js +184 -0
- package/dist/showcase/assets/package-CqQQqj6Y.js +1 -0
- package/dist/showcase/assets/package-check-Nqr5Lv95.js +1 -0
- package/dist/showcase/assets/page-BTXFFFwT.js +1 -0
- package/dist/showcase/assets/page-action-button-NJqE-qP0.js +1 -0
- package/dist/showcase/assets/page-header-AFTuoGVw.js +1 -0
- package/dist/showcase/assets/pagination-B1Ewc7Co.js +1 -0
- package/dist/showcase/assets/pagination-DOdLcTiT.js +42 -0
- package/dist/showcase/assets/paperclip-D0oBI19t.js +1 -0
- package/dist/showcase/assets/password-input-C5MrNrHm.js +1 -0
- package/dist/showcase/assets/pencil-DdCEPDLe.js +1 -0
- package/dist/showcase/assets/phone-BdGmQ_eI.js +1 -0
- package/dist/showcase/assets/placeholder-pattern-BnyJukU0.js +1 -0
- package/dist/showcase/assets/plus-Dp_nZNjk.js +1 -0
- package/dist/showcase/assets/popover-BP4R2w67.js +1 -0
- package/dist/showcase/assets/popover-DfGXC2pN.js +1 -0
- package/dist/showcase/assets/popover-menu-DGkCA4YC.js +1 -0
- package/dist/showcase/assets/product-empty-state-CKylTX_h.js +1 -0
- package/dist/showcase/assets/product-option-action-menu-vqslODBe.js +1 -0
- package/dist/showcase/assets/product-rows-CWy63Dk5.js +1 -0
- package/dist/showcase/assets/product-structure-card-EJY038tP.js +1 -0
- package/dist/showcase/assets/product-variant-action-menu-CnRJscP3.js +1 -0
- package/dist/showcase/assets/products-jpCjHLbZ.js +61 -0
- package/dist/showcase/assets/progress-D19PRprP.js +1 -0
- package/dist/showcase/assets/progress-UbtWRfF2.js +18 -0
- package/dist/showcase/assets/progress-twHfoY8k.js +1 -0
- package/dist/showcase/assets/props-table-aynAz90t.js +1 -0
- package/dist/showcase/assets/props.generated-IUhT2lh_.json +42950 -0
- package/dist/showcase/assets/qr-code-ywR6kVzD.js +1 -0
- package/dist/showcase/assets/quote-BFMPQa3L.js +1 -0
- package/dist/showcase/assets/receipt-CcTseXcy.js +1 -0
- package/dist/showcase/assets/receipt-text-C9BMAbTL.js +1 -0
- package/dist/showcase/assets/refinement-guide-lotMKye4.js +189 -0
- package/dist/showcase/assets/refresh-cw-DpfoVhbc.js +1 -0
- package/dist/showcase/assets/resolveValueLabel-mzTN-8j9.js +1 -0
- package/dist/showcase/assets/resource-CwHVDrOk.js +1 -0
- package/dist/showcase/assets/resource-kPziVtVy.js +139 -0
- package/dist/showcase/assets/resource-selector-card-xIysiHOg.js +43 -0
- package/dist/showcase/assets/rich-text-editor-Bi6stpAW.js +124 -0
- package/dist/showcase/assets/rich-text-editor-DggGI4Dj.js +143 -0
- package/dist/showcase/assets/rotate-ccw-Uau0Jm3_.js +1 -0
- package/dist/showcase/assets/route-Dj29lOBc.js +1 -0
- package/dist/showcase/assets/save-j-PKUm-B.js +1 -0
- package/dist/showcase/assets/schema-form-D4kfmM1o.js +327 -0
- package/dist/showcase/assets/scroll-area-CK1S6JpQ.js +1 -0
- package/dist/showcase/assets/scroll-area-Di7TDfFD.js +32 -0
- package/dist/showcase/assets/section-C_rLy6Zn.js +1 -0
- package/dist/showcase/assets/select-BRC14Sd3.js +1 -0
- package/dist/showcase/assets/select-J0hPSc5B.js +1 -0
- package/dist/showcase/assets/send-BnVbRsaN.js +1 -0
- package/dist/showcase/assets/separator-7gHhV7ed.js +1 -0
- package/dist/showcase/assets/separator-CjWigMul.js +1 -0
- package/dist/showcase/assets/separator-Dpo134G3.js +28 -0
- package/dist/showcase/assets/separator-JYQ5rY8E.js +1 -0
- package/dist/showcase/assets/settings-2-D06IRW2d.js +1 -0
- package/dist/showcase/assets/settings-YDwquOPS.js +1 -0
- package/dist/showcase/assets/sheet-O9T8bfRr.js +1 -0
- package/dist/showcase/assets/shield-Cebk5nXH.js +1 -0
- package/dist/showcase/assets/shield-alert-BldSpQ1t.js +1 -0
- package/dist/showcase/assets/shield-check-CNudpzdR.js +1 -0
- package/dist/showcase/assets/shopping-bag-BuHsmxnN.js +1 -0
- package/dist/showcase/assets/showcase-B1BPgzRP.js +132 -0
- package/dist/showcase/assets/sidebar-DPVgEwE0.js +1 -0
- package/dist/showcase/assets/sidebar.context-CYk51BQ5.js +1 -0
- package/dist/showcase/assets/skeleton-CrB6dGV4.js +29 -0
- package/dist/showcase/assets/skeleton-DMWrHdVi.js +1 -0
- package/dist/showcase/assets/skeleton-IBZSxxTq.js +1 -0
- package/dist/showcase/assets/skeleton-OK5SgmlA.js +1 -0
- package/dist/showcase/assets/slider-DMLIlQeO.js +1 -0
- package/dist/showcase/assets/smart-card-CwDYx0xj.js +1 -0
- package/dist/showcase/assets/sonner-Dpe1Nwfb.js +22 -0
- package/dist/showcase/assets/sortable.esm-BSC2lHxr.js +5 -0
- package/dist/showcase/assets/sparkles-BDnbTUMq.js +1 -0
- package/dist/showcase/assets/spinner-BZ0h-j9y.js +49 -0
- package/dist/showcase/assets/spinner-TNaSAQh7.js +30 -0
- package/dist/showcase/assets/spinner-k76a4i_M.js +1 -0
- package/dist/showcase/assets/square-pen-Cn-sFtCo.js +1 -0
- package/dist/showcase/assets/stacked-avatars-Ds8eV_Nx.js +1 -0
- package/dist/showcase/assets/star-BzQGhFDT.js +1 -0
- package/dist/showcase/assets/startOfDay-BfIUGWW-.js +1 -0
- package/dist/showcase/assets/styles-BleHZ-uX.js +1 -0
- package/dist/showcase/assets/suggestions-CsrJSY__.js +126 -0
- package/dist/showcase/assets/support-rail-C_fc_C1j.js +26 -0
- package/dist/showcase/assets/switch-BEfD8lic.js +1 -0
- package/dist/showcase/assets/switch-BOlIXIn9.js +1 -0
- package/dist/showcase/assets/switch-card-CCJ-MaRI.js +1 -0
- package/dist/showcase/assets/sync-vACCm2ND.js +124 -0
- package/dist/showcase/assets/table-CeZy8iT0.js +686 -0
- package/dist/showcase/assets/table-DPpHEvR_.js +1 -0
- package/dist/showcase/assets/table-actions-C9J5piiU.js +1 -0
- package/dist/showcase/assets/tabs-Ca6ldTWi.js +1 -0
- package/dist/showcase/assets/tabs-DGP5RvNm.js +19 -0
- package/dist/showcase/assets/tags-input-BOemEMZS.js +1 -0
- package/dist/showcase/assets/text-button-C8qZqcCy.js +1 -0
- package/dist/showcase/assets/text-link-BFYPeXTq.js +1 -0
- package/dist/showcase/assets/textarea-DcCHHuP-.js +1 -0
- package/dist/showcase/assets/textarea-RUqV9hNm.js +1 -0
- package/dist/showcase/assets/throttle-alert-Sf7FjTvh.js +1 -0
- package/dist/showcase/assets/timelines-nQ8shLIn.js +200 -0
- package/dist/showcase/assets/toggle-group-k5nqOfUW.js +1 -0
- package/dist/showcase/assets/toggles-E80ufOk5.js +71 -0
- package/dist/showcase/assets/toggles-group-vaJ63gg9.js +32 -0
- package/dist/showcase/assets/tooltip-DIvBe7hb.js +31 -0
- package/dist/showcase/assets/trash-2-C-6T17-B.js +1 -0
- package/dist/showcase/assets/trending-up-DRyRbFnA.js +1 -0
- package/dist/showcase/assets/truck-BE6OFjJs.js +1 -0
- package/dist/showcase/assets/typography-i6Zhj3TO.js +223 -0
- package/dist/showcase/assets/ui-badge-MBQsz2Mn.js +28 -0
- package/dist/showcase/assets/ui-card-jaEeRDe5.js +30 -0
- package/dist/showcase/assets/ui-table-CbmOEWVu.js +42 -0
- package/dist/showcase/assets/upload-tray-D4aE56cX.js +138 -0
- package/dist/showcase/assets/use-layout-link-DpqFiDf-.js +1 -0
- package/dist/showcase/assets/useAriaLabelledBy-DSKQpAlQ.js +1 -0
- package/dist/showcase/assets/useCollapsiblePanel-DL6IpVQS.js +1 -0
- package/dist/showcase/assets/useCompositeItem-jckozrpu.js +1 -0
- package/dist/showcase/assets/useCompositeListItem-Ce0eZtsp.js +1 -0
- package/dist/showcase/assets/useLabelableId-Bs8clfkJ.js +1 -0
- package/dist/showcase/assets/useOpenInteractionType-KBhpVaur.js +1 -0
- package/dist/showcase/assets/useRender-Bn5cjIfs.js +1 -0
- package/dist/showcase/assets/useTriggerFocusGuards-D5Cl055z.js +1 -0
- package/dist/showcase/assets/useValueChanged-B-czUWmg.js +1 -0
- package/dist/showcase/assets/user-C7ORJkSr.js +1 -0
- package/dist/showcase/assets/user-plus-O410ITvy.js +1 -0
- package/dist/showcase/assets/users-BlcUaVEY.js +1 -0
- package/dist/showcase/assets/variant-details-BJ0OtpeL.js +50 -0
- package/dist/showcase/assets/variant-management-pTZ83MM_.js +209 -0
- package/dist/showcase/assets/vendor-profile-F2EP-AGx.js +37 -0
- package/dist/showcase/assets/video-fYZEPex_.js +1 -0
- package/dist/showcase/assets/visually-hidden-C1KAHG63.js +1 -0
- package/dist/showcase/assets/weight-input-_wl5mPGA.js +1 -0
- package/dist/showcase/assets/wrench-BzqNpztP.js +1 -0
- package/dist/showcase/assets/x-C5_SzMQM.js +1 -0
- package/dist/showcase/assets/zap-DdInHaAD.js +1 -0
- package/dist/showcase/index.html +2 -2
- package/dist/style.css +1 -1
- package/package.json +1 -1
- package/dist/_shared/containers-8ryMAXNr.js +0 -48
- package/dist/_shared/containers-8ryMAXNr.js.map +0 -1
- package/dist/_shared/containers-BcrM8-22.cjs +0 -2
- package/dist/_shared/containers-BcrM8-22.cjs.map +0 -1
- package/dist/_shared/data-display-B9Lciun3.cjs +0 -2
- package/dist/_shared/data-display-B9Lciun3.cjs.map +0 -1
- package/dist/_shared/data-display-CYmwUdmU.js +0 -1878
- package/dist/_shared/data-display-CYmwUdmU.js.map +0 -1
- package/dist/_shared/layout-CZVEJ3p_.cjs +0 -2
- package/dist/_shared/layout-CZVEJ3p_.cjs.map +0 -1
- package/dist/_shared/layout-D75TJTaD.js +0 -268
- package/dist/_shared/layout-D75TJTaD.js.map +0 -1
- package/dist/showcase/assets/AreaChart-iGBzUSAV.js +0 -6
- package/dist/showcase/assets/CompositeItem-1e8qsdC5.js +0 -1
- package/dist/showcase/assets/CompositeRoot-DneCUh3i.js +0 -1
- package/dist/showcase/assets/DialogTrigger-CVhas4X-.js +0 -1
- package/dist/showcase/assets/LabelableContext-Bfc22fLa.js +0 -1
- package/dist/showcase/assets/MenuTrigger-WTiiOMpe.js +0 -1
- package/dist/showcase/assets/PreviewLayout-ClbLOtTa.js +0 -1
- package/dist/showcase/assets/RadioGroup-DEBYMgi5.js +0 -1
- package/dist/showcase/assets/ScrollAreaCorner-CilamsvS.js +0 -1
- package/dist/showcase/assets/Separator-DSecBOlo.js +0 -1
- package/dist/showcase/assets/ToolbarRootContext-BY_Czi0-.js +0 -1
- package/dist/showcase/assets/accordion-FV2cJ9V1.js +0 -171
- package/dist/showcase/assets/accordion-variants-DRNuXgFT.js +0 -1
- package/dist/showcase/assets/action-menu-uhMTzBIl.js +0 -1
- package/dist/showcase/assets/actions-C3kChFSc.js +0 -310
- package/dist/showcase/assets/actions-DizTzuf8.js +0 -38
- package/dist/showcase/assets/activities-DQ7u_XKr.js +0 -500
- package/dist/showcase/assets/activities-feed-card-DoxFXr20.js +0 -1
- package/dist/showcase/assets/admin-CRVq1bj-.js +0 -140
- package/dist/showcase/assets/ai-DMBh2BKA.js +0 -207
- package/dist/showcase/assets/ai-artifact-DnSz7Xj1.js +0 -2
- package/dist/showcase/assets/ai-chat-Ba60tj9x.js +0 -568
- package/dist/showcase/assets/ai-elements-CaMbMARm.js +0 -387
- package/dist/showcase/assets/ai-tool-call-Cg11pnXq.js +0 -1
- package/dist/showcase/assets/alert-AeDTPQQ5.js +0 -62
- package/dist/showcase/assets/alert-BQucj-0f.js +0 -1
- package/dist/showcase/assets/alert-DY0yMYc3.js +0 -93
- package/dist/showcase/assets/api-key-list-DZiVRCkz.js +0 -73
- package/dist/showcase/assets/api-key-list-DuoC5nyO.js +0 -1
- package/dist/showcase/assets/app-sidebar-D_RbOUZC.js +0 -1
- package/dist/showcase/assets/arrow-down-J_5dmfVv.js +0 -1
- package/dist/showcase/assets/arrow-left-DeKmFjyi.js +0 -1
- package/dist/showcase/assets/arrow-right-ztHj2bIY.js +0 -1
- package/dist/showcase/assets/arrow-up-CCenfeVW.js +0 -1
- package/dist/showcase/assets/arrow-up-right-URGvP7LF.js +0 -1
- package/dist/showcase/assets/avatar-CTFW3AQa.js +0 -1
- package/dist/showcase/assets/avatar-DH3vm33j.js +0 -1
- package/dist/showcase/assets/avatar-DRi6ZWB2.js +0 -67
- package/dist/showcase/assets/avatar-eEOgFI6D.js +0 -57
- package/dist/showcase/assets/badge-C9RqIyT7.js +0 -31
- package/dist/showcase/assets/badge-check-CRkt0WPY.js +0 -1
- package/dist/showcase/assets/bell-B-bFEx5I.js +0 -1
- package/dist/showcase/assets/boolean-indicator-CD3scHDz.js +0 -1
- package/dist/showcase/assets/bot-DbSsnrvR.js +0 -1
- package/dist/showcase/assets/box-BDLbaerX.js +0 -1
- package/dist/showcase/assets/braces-nP1Ffv07.js +0 -1
- package/dist/showcase/assets/brain-B69nRyRF.js +0 -1
- package/dist/showcase/assets/brand-WHRuwaVX.js +0 -36
- package/dist/showcase/assets/breadcrumb-CYxS57Ko.js +0 -1
- package/dist/showcase/assets/breadcrumb-viDsLdax.js +0 -52
- package/dist/showcase/assets/breadcrumbs-CX6eCwn4.js +0 -1
- package/dist/showcase/assets/briefcase-BCMmOuh2.js +0 -1
- package/dist/showcase/assets/building-2-DCSQxFoC.js +0 -1
- package/dist/showcase/assets/button-It_u4rRb.js +0 -44
- package/dist/showcase/assets/button-group-B2NgHAyn.js +0 -1
- package/dist/showcase/assets/buttons-ClK1qR3J.js +0 -272
- package/dist/showcase/assets/calendar-CX89JdTd.js +0 -16
- package/dist/showcase/assets/calendar-DV83xhzB.js +0 -1
- package/dist/showcase/assets/calendar-HrkenM2F.js +0 -1
- package/dist/showcase/assets/calendar-days-O55Ncg5j.js +0 -1
- package/dist/showcase/assets/camera-C6hO-Q3l.js +0 -1
- package/dist/showcase/assets/card-CXet5wLR.js +0 -1
- package/dist/showcase/assets/card-ChwovoeQ.js +0 -188
- package/dist/showcase/assets/card-checkbox-group-DN7Ui724.js +0 -1
- package/dist/showcase/assets/card-primitives-C5YmKK4H.js +0 -1
- package/dist/showcase/assets/card-radio-group-DaiWsziy.js +0 -1
- package/dist/showcase/assets/cards-CpYk7Lcz.js +0 -354
- package/dist/showcase/assets/carousel-CaoSMqW3.js +0 -452
- package/dist/showcase/assets/cell-renderers-BTLGZyvy.js +0 -1
- package/dist/showcase/assets/chart-DukdMlSE.js +0 -358
- package/dist/showcase/assets/chart-column-BqDA22mr.js +0 -1
- package/dist/showcase/assets/checkbox-CJg8G3-s.js +0 -1
- package/dist/showcase/assets/checkbox-DlOCnOfc.js +0 -1
- package/dist/showcase/assets/chevron-down-CjLLqYjs.js +0 -1
- package/dist/showcase/assets/chevron-left-lE5l5Y1q.js +0 -1
- package/dist/showcase/assets/chevron-up-WpyEPcvJ.js +0 -1
- package/dist/showcase/assets/chevrons-up-down-CPkjAe_j.js +0 -1
- package/dist/showcase/assets/circle-B9E-rFdh.js +0 -1
- package/dist/showcase/assets/circle-alert-DX4Q8Agf.js +0 -1
- package/dist/showcase/assets/circle-check-BdcUhuQ7.js +0 -1
- package/dist/showcase/assets/circle-check-big-CeaAGVP1.js +0 -1
- package/dist/showcase/assets/circle-dot-DoXkol-T.js +0 -1
- package/dist/showcase/assets/circle-question-mark-CYE6Hj4n.js +0 -1
- package/dist/showcase/assets/circle-x-BpB4A5gs.js +0 -1
- package/dist/showcase/assets/clock-3-B7Fa1qg-.js +0 -1
- package/dist/showcase/assets/clock-B1cuTZnL.js +0 -1
- package/dist/showcase/assets/code-xml-C_ICl6NY.js +0 -1
- package/dist/showcase/assets/collapsible-CtrQcEWW.js +0 -27
- package/dist/showcase/assets/collapsible-XZ4qRG4O.js +0 -1
- package/dist/showcase/assets/collapsible-ZP3Pv6SI.js +0 -1
- package/dist/showcase/assets/combobox-GMkDgk_z.js +0 -685
- package/dist/showcase/assets/command-BXhyoNX1.js +0 -1
- package/dist/showcase/assets/command-DNHjxTyl.js +0 -1
- package/dist/showcase/assets/comment-composer-BtE5Erp8.js +0 -1
- package/dist/showcase/assets/comment-item-TztxmXc7.js +0 -1
- package/dist/showcase/assets/comments-CEMkLRtb.js +0 -357
- package/dist/showcase/assets/commerce-BtvCQH0C.js +0 -19
- package/dist/showcase/assets/commerce-address-card-8PUGRwNW.js +0 -33
- package/dist/showcase/assets/commerce-cart-summary-nrO5v1O8.js +0 -43
- package/dist/showcase/assets/commerce-coupon-input-C-sT1FNq.js +0 -11
- package/dist/showcase/assets/commerce-discount-stack-BdGk8tbD.js +0 -17
- package/dist/showcase/assets/commerce-inventory-section-BnBu7wK5.js +0 -123
- package/dist/showcase/assets/commerce-loyalty-points-Bjei3EdW.js +0 -19
- package/dist/showcase/assets/commerce-order-status--TMOLhrS.js +0 -21
- package/dist/showcase/assets/commerce-payment-method-C8fVquyN.js +0 -17
- package/dist/showcase/assets/commerce-refund-status-Cs6dbewH.js +0 -17
- package/dist/showcase/assets/commerce-seo-listing-C4WvKFei.js +0 -61
- package/dist/showcase/assets/commerce-shipment-tracking-BcezyjSw.js +0 -24
- package/dist/showcase/assets/commerce-subscription-summary-BjhnmqOx.js +0 -25
- package/dist/showcase/assets/commerce-tax-breakdown-js8xMRDn.js +0 -19
- package/dist/showcase/assets/commerce-upcoming-booking-doggTqfA.js +0 -20
- package/dist/showcase/assets/commerce-voucher-entry-ByMZAiZO.js +0 -19
- package/dist/showcase/assets/composite-D2jjTQvZ.js +0 -1
- package/dist/showcase/assets/conditional-rendering-Cy3xN7KO.js +0 -1
- package/dist/showcase/assets/contact-card-BSH_KDbf.js +0 -65
- package/dist/showcase/assets/content-container-Q9Bp8aFE.js +0 -1
- package/dist/showcase/assets/copyable-8_0ImOB2.js +0 -1
- package/dist/showcase/assets/copyable-B3R9lXVu.js +0 -96
- package/dist/showcase/assets/course-card-zh8fH-6n.js +0 -77
- package/dist/showcase/assets/cpu-DlPQMchp.js +0 -1
- package/dist/showcase/assets/credit-card-DeuhwEKG.js +0 -1
- package/dist/showcase/assets/css-variables-BxE5DqUm.js +0 -1223
- package/dist/showcase/assets/currency-D3DomSfR.js +0 -148
- package/dist/showcase/assets/dark-surfaces-DYh199dt.js +0 -90
- package/dist/showcase/assets/data-view-HJme-PWk.js +0 -124
- package/dist/showcase/assets/data-view-s5TQvt4f.js +0 -4
- package/dist/showcase/assets/database-KGU1LGqB.js +0 -1
- package/dist/showcase/assets/date-block-CxFhNxK2.js +0 -1
- package/dist/showcase/assets/date-block-DmRDymLD.js +0 -1
- package/dist/showcase/assets/date-picker-CScVl5jV.js +0 -1
- package/dist/showcase/assets/date-pickers-D4EmH-RF.js +0 -73
- package/dist/showcase/assets/dense-info-DXbmG0Nf.js +0 -106
- package/dist/showcase/assets/design-system-consistency-D_j9P0qR.js +0 -264
- package/dist/showcase/assets/dialog-BHymSzYi.js +0 -1
- package/dist/showcase/assets/dialog-CGr-za_Y.js +0 -1
- package/dist/showcase/assets/dialog-DeXQn0Lm.js +0 -1
- package/dist/showcase/assets/display-utilities-Y1wtHZNJ.js +0 -4
- package/dist/showcase/assets/display-utilities.examples-BMKQv0ep.js +0 -309
- package/dist/showcase/assets/dist-DfpWey5P.js +0 -1
- package/dist/showcase/assets/dist-DrnHE1zU.js +0 -45
- package/dist/showcase/assets/dollar-sign-DzPcAVIr.js +0 -1
- package/dist/showcase/assets/download-YQyeAxpe.js +0 -1
- package/dist/showcase/assets/dropdown-menu-DijrdxTg.js +0 -1
- package/dist/showcase/assets/dropzone-CJQVfB6l.js +0 -1
- package/dist/showcase/assets/earth-CzKdl3sr.js +0 -1
- package/dist/showcase/assets/ellipsis-Bm3jOBg8.js +0 -1
- package/dist/showcase/assets/ellipsis-vertical-BfYWo5Lf.js +0 -1
- package/dist/showcase/assets/empty-BdJ7O2MX.js +0 -1
- package/dist/showcase/assets/empty-item-BQdBtp6f.js +0 -49
- package/dist/showcase/assets/empty-state-62UU8y5C.js +0 -1
- package/dist/showcase/assets/empty-state-CCL_J3tY.js +0 -190
- package/dist/showcase/assets/enhanced-activities-CC1UzTfz.js +0 -357
- package/dist/showcase/assets/enhanced-combobox-B9cjPsF6.js +0 -1
- package/dist/showcase/assets/esm-B-fRlXh3.js +0 -2
- package/dist/showcase/assets/event-calendar-Bhwxq8YS.js +0 -138
- package/dist/showcase/assets/event-log-CnKaX_Qy.js +0 -330
- package/dist/showcase/assets/example-DDhaO2UY.js +0 -1
- package/dist/showcase/assets/external-link-CANOM2jg.js +0 -1
- package/dist/showcase/assets/eye-Bipckkwy.js +0 -1
- package/dist/showcase/assets/feature-announcement-lwmHkJsA.js +0 -34
- package/dist/showcase/assets/file-D3AT65yE.js +0 -1
- package/dist/showcase/assets/file-text-BzM5AARd.js +0 -1
- package/dist/showcase/assets/filter-layout-Dcg6Bnrn.js +0 -1
- package/dist/showcase/assets/filters-CqlLV9PM.js +0 -139
- package/dist/showcase/assets/fixtures-yK2xR5Qs.js +0 -1
- package/dist/showcase/assets/flag-DwDsuNoj.js +0 -1
- package/dist/showcase/assets/folder-open-CU6X87LZ.js +0 -1
- package/dist/showcase/assets/form-field-CpRcKtwS.js +0 -1
- package/dist/showcase/assets/format-DmB3OvZa.js +0 -1
- package/dist/showcase/assets/forms-htLZTBP2.js +0 -915
- package/dist/showcase/assets/funnel-Dg-pRz2W.js +0 -1
- package/dist/showcase/assets/generic-C19aoW0F.js +0 -1
- package/dist/showcase/assets/getPseudoElementBounds-r_QLBIGn.js +0 -1
- package/dist/showcase/assets/gift-CpwvL7we.js +0 -1
- package/dist/showcase/assets/giftcard-cards-DHZQPc_n.js +0 -85
- package/dist/showcase/assets/git-branch-CZga8VLM.js +0 -1
- package/dist/showcase/assets/global-search-DqJo5jCc.js +0 -1
- package/dist/showcase/assets/global-search-_HODxZaU.js +0 -215
- package/dist/showcase/assets/globe-pWzZwcAv.js +0 -1
- package/dist/showcase/assets/gradient-card-D9fPawlx.js +0 -58
- package/dist/showcase/assets/grip-vertical-oqI1TI-N.js +0 -1
- package/dist/showcase/assets/hash-DQPCJKw8.js +0 -1
- package/dist/showcase/assets/header-DkCzYf6f.js +0 -1
- package/dist/showcase/assets/header-notifications-CPiuGNR5.js +0 -1
- package/dist/showcase/assets/heart-0z9BLROt.js +0 -1
- package/dist/showcase/assets/hooks-CXwg9TyF.js +0 -220
- package/dist/showcase/assets/house-Bg4YZsNF.js +0 -1
- package/dist/showcase/assets/icon-badge-CrSkFExw.js +0 -1
- package/dist/showcase/assets/icon-badge-D1fdev_s.js +0 -37
- package/dist/showcase/assets/image-BXWnqpeJ.js +0 -1
- package/dist/showcase/assets/inbox-CObYzZZR.js +0 -1
- package/dist/showcase/assets/index-DBheiRxz.css +0 -2
- package/dist/showcase/assets/index-DSBghWdd.js +0 -10
- package/dist/showcase/assets/inertValue-DOcq7b5x.js +0 -1
- package/dist/showcase/assets/info-wAcLD6Uj.js +0 -1
- package/dist/showcase/assets/inline-stat-CufTTte_.js +0 -1
- package/dist/showcase/assets/inline-stat-D4GrY6tT.js +0 -15
- package/dist/showcase/assets/input-Bq9vs-9_.js +0 -1
- package/dist/showcase/assets/input-DsP89oH1.js +0 -1
- package/dist/showcase/assets/input-group-CCaNByLp.js +0 -1
- package/dist/showcase/assets/input-group-m-swxf-o.js +0 -47
- package/dist/showcase/assets/inputs-BSEM9vfa.js +0 -155
- package/dist/showcase/assets/installation-uRaDUCjH.js +0 -134
- package/dist/showcase/assets/invoice-header-D48jDTWC.js +0 -36
- package/dist/showcase/assets/invoice-items-jRLo8FHu.js +0 -36
- package/dist/showcase/assets/invoice-mini-DLS8PQrl.js +0 -14
- package/dist/showcase/assets/invoice-table-D4y33M95.js +0 -30
- package/dist/showcase/assets/isSameDay-Cn7Vlp79.js +0 -1
- package/dist/showcase/assets/isToday-B0jKMww1.js +0 -1
- package/dist/showcase/assets/italic-BHsKu0Gj.js +0 -1
- package/dist/showcase/assets/item-BLXAOZLR.js +0 -1
- package/dist/showcase/assets/item-C8eCX4DH.js +0 -140
- package/dist/showcase/assets/item-D5xwkRvf.js +0 -1
- package/dist/showcase/assets/kanban-ujfZHhvd.js +0 -188
- package/dist/showcase/assets/key-round-B_fKEPa6.js +0 -1
- package/dist/showcase/assets/label-NSapdBaB.js +0 -1
- package/dist/showcase/assets/languages-TkdVe7-2.js +0 -1
- package/dist/showcase/assets/layers-1IEBbvoc.js +0 -1
- package/dist/showcase/assets/layout-app-shell-D4PFTEsD.js +0 -608
- package/dist/showcase/assets/layout-auth-BTriDNME.js +0 -790
- package/dist/showcase/assets/layout-containers-CLJfaL-J.js +0 -101
- package/dist/showcase/assets/layout-header-CsNPnQde.js +0 -203
- package/dist/showcase/assets/layout-page-CSejcBCR.js +0 -315
- package/dist/showcase/assets/layout-primitives-D1MJs2E3.js +0 -34
- package/dist/showcase/assets/layout-sidebar-CO8Hdnoh.js +0 -224
- package/dist/showcase/assets/layout-users-BgrXF4nn.js +0 -117
- package/dist/showcase/assets/layout-workspace-DLg1f_o-.js +0 -191
- package/dist/showcase/assets/lib-B7vzArq-.js +0 -1
- package/dist/showcase/assets/list-checks-tsvYcEx2.js +0 -1
- package/dist/showcase/assets/lock-CPztxP5s.js +0 -1
- package/dist/showcase/assets/lock-keyhole-BHaFzps8.js +0 -1
- package/dist/showcase/assets/mail-DFoR3rHO.js +0 -1
- package/dist/showcase/assets/mail-check-QV1zqP5D.js +0 -1
- package/dist/showcase/assets/map-BOo4UMER.js +0 -124
- package/dist/showcase/assets/map-pin-CEcA7jdk.js +0 -1
- package/dist/showcase/assets/media-library-CKR3NF1Y.js +0 -699
- package/dist/showcase/assets/mention-inline-suggestions-Chbuzkb7.js +0 -1
- package/dist/showcase/assets/mentions-syVuen0M.js +0 -138
- package/dist/showcase/assets/menus-COIxEKPm.js +0 -171
- package/dist/showcase/assets/message-square-CYSVV7nZ.js +0 -1
- package/dist/showcase/assets/metadata-list-BHIfOKD6.js +0 -1
- package/dist/showcase/assets/metadata-list-DLI17y0k.js +0 -286
- package/dist/showcase/assets/metric-bar-OTyaeNJY.js +0 -1
- package/dist/showcase/assets/metric-grid-BcjDZqHZ.js +0 -1
- package/dist/showcase/assets/metric-opI4qu4r.js +0 -1
- package/dist/showcase/assets/metric-trend-chip-BvhqlY9f.js +0 -1
- package/dist/showcase/assets/metrics-analytics-bar-Z8xY1Gwq.js +0 -44
- package/dist/showcase/assets/metrics-analytics-cards-DfzbV-8j.js +0 -50
- package/dist/showcase/assets/metrics-comparison-C71X-WeV.js +0 -76
- package/dist/showcase/assets/metrics-heatmap-Cs1ixWQX.js +0 -27
- package/dist/showcase/assets/metrics-inline-badge-DP1guaTx.js +0 -17
- package/dist/showcase/assets/metrics-kpi-row-CVwHH3rN.js +0 -31
- package/dist/showcase/assets/metrics-micro-grid-CQGKibEU.js +0 -42
- package/dist/showcase/assets/metrics-overview-DPGjh2Gi.js +0 -192
- package/dist/showcase/assets/metrics-stat-cards-C3k7Uyt1.js +0 -54
- package/dist/showcase/assets/minus-BTHZFjKs.js +0 -1
- package/dist/showcase/assets/money-display-B8BodAKb.js +0 -1
- package/dist/showcase/assets/money-display-C7TuSgzA.js +0 -3
- package/dist/showcase/assets/month-year-picker-DQcCIbM9.js +0 -1
- package/dist/showcase/assets/navigation-BjYK7JTx.js +0 -231
- package/dist/showcase/assets/navigation-DkkHPGFq.js +0 -90
- package/dist/showcase/assets/navigation-extras-drFz7Xmf.js +0 -43
- package/dist/showcase/assets/notification-banner-CATA6COT.js +0 -1
- package/dist/showcase/assets/onboarding-checklist-CjGo74ic.js +0 -119
- package/dist/showcase/assets/overflow-tab-bar-BYRykiZn.js +0 -1
- package/dist/showcase/assets/overlays-BtfkqYL1.js +0 -159
- package/dist/showcase/assets/overlays-CzmrvPNh.js +0 -408
- package/dist/showcase/assets/overview-B5ckb1et.js +0 -184
- package/dist/showcase/assets/package-Db-MTVUx.js +0 -1
- package/dist/showcase/assets/package-check-UP9srP8w.js +0 -1
- package/dist/showcase/assets/page-BFvDdpX3.js +0 -1
- package/dist/showcase/assets/page-action-button-CROlcZJb.js +0 -1
- package/dist/showcase/assets/page-header-B8xYCCzF.js +0 -1
- package/dist/showcase/assets/pagination-B7j6cJXU.js +0 -1
- package/dist/showcase/assets/pagination-B8LN9MT7.js +0 -42
- package/dist/showcase/assets/paperclip-CAcGOT6G.js +0 -1
- package/dist/showcase/assets/password-input-DzO1QEsL.js +0 -1
- package/dist/showcase/assets/pencil-Db0qlNpO.js +0 -1
- package/dist/showcase/assets/phone-BHkprQ5O.js +0 -1
- package/dist/showcase/assets/placeholder-pattern-Ba0rjJa5.js +0 -1
- package/dist/showcase/assets/plus-CaAfJIjc.js +0 -1
- package/dist/showcase/assets/popover-BZsIv1AP.js +0 -1
- package/dist/showcase/assets/popover-DCfeA2ZY.js +0 -1
- package/dist/showcase/assets/popover-menu-kjcHCICE.js +0 -1
- package/dist/showcase/assets/product-empty-state-CSdeHHZT.js +0 -1
- package/dist/showcase/assets/product-option-action-menu-FvgEaWA7.js +0 -1
- package/dist/showcase/assets/product-rows-Cb8gLOeV.js +0 -1
- package/dist/showcase/assets/product-structure-card-CFqufBoJ.js +0 -1
- package/dist/showcase/assets/product-variant-action-menu-BvSn7PuK.js +0 -1
- package/dist/showcase/assets/products-D1aG4KFi.js +0 -61
- package/dist/showcase/assets/progress-2NWkkA6x.js +0 -18
- package/dist/showcase/assets/progress-DECH8qUu.js +0 -1
- package/dist/showcase/assets/progress-DHsjY-V1.js +0 -1
- package/dist/showcase/assets/props-table-CzpevabQ.js +0 -1
- package/dist/showcase/assets/props.generated-CXbCZMUk.json +0 -42824
- package/dist/showcase/assets/qr-code-DLeRQu83.js +0 -1
- package/dist/showcase/assets/quote-eFsPYmD1.js +0 -1
- package/dist/showcase/assets/receipt-V9T3dONa.js +0 -1
- package/dist/showcase/assets/receipt-text-866Msgc2.js +0 -1
- package/dist/showcase/assets/refinement-guide-BoerkamA.js +0 -189
- package/dist/showcase/assets/refresh-cw-Crg4uqw8.js +0 -1
- package/dist/showcase/assets/resolveValueLabel-D8poX7JF.js +0 -1
- package/dist/showcase/assets/resource-Ca8tGlsX.js +0 -139
- package/dist/showcase/assets/resource-aE-LkpW8.js +0 -1
- package/dist/showcase/assets/resource-selector-card-DzDG2Wl6.js +0 -43
- package/dist/showcase/assets/rich-text-editor-BCTbpMcY.js +0 -143
- package/dist/showcase/assets/rich-text-editor-CdklzzLj.js +0 -124
- package/dist/showcase/assets/rotate-ccw-CCPhnEPA.js +0 -1
- package/dist/showcase/assets/route-CODe9_7c.js +0 -1
- package/dist/showcase/assets/save-B_ze9MC9.js +0 -1
- package/dist/showcase/assets/schema-form-CEmpu59s.js +0 -327
- package/dist/showcase/assets/scroll-area-BM0asGLD.js +0 -32
- package/dist/showcase/assets/scroll-area-zRw8lSrA.js +0 -1
- package/dist/showcase/assets/section-DLqBJGPH.js +0 -1
- package/dist/showcase/assets/select-B0ivd5pJ.js +0 -1
- package/dist/showcase/assets/select-BrPUZL6Z.js +0 -1
- package/dist/showcase/assets/send-B4jTMdd9.js +0 -1
- package/dist/showcase/assets/separator-7f_tdxB3.js +0 -28
- package/dist/showcase/assets/separator-BvhVS5L0.js +0 -1
- package/dist/showcase/assets/separator-DeMF0eCd.js +0 -1
- package/dist/showcase/assets/separator-Dsqit2yw.js +0 -1
- package/dist/showcase/assets/settings-2-DnZeyxSR.js +0 -1
- package/dist/showcase/assets/settings-GFwewlvm.js +0 -1
- package/dist/showcase/assets/sheet-B06fRKgl.js +0 -1
- package/dist/showcase/assets/shield-NNzIJA-o.js +0 -1
- package/dist/showcase/assets/shield-alert-dlgSUsVl.js +0 -1
- package/dist/showcase/assets/shield-check-CkqmRaJd.js +0 -1
- package/dist/showcase/assets/shopping-bag-x4S32KGc.js +0 -1
- package/dist/showcase/assets/showcase-CiXeaTrT.js +0 -132
- package/dist/showcase/assets/sidebar-BDOvomlZ.js +0 -1
- package/dist/showcase/assets/sidebar.context-M_w0AsBU.js +0 -1
- package/dist/showcase/assets/skeleton-C0-TGyFP.js +0 -29
- package/dist/showcase/assets/skeleton-ClY9N5IF.js +0 -1
- package/dist/showcase/assets/skeleton-CyCX3AHa.js +0 -1
- package/dist/showcase/assets/skeleton-JapnB0xo.js +0 -1
- package/dist/showcase/assets/slider-BagnbSUE.js +0 -1
- package/dist/showcase/assets/smart-card-BA097ZGN.js +0 -1
- package/dist/showcase/assets/sonner-bg55zTHJ.js +0 -22
- package/dist/showcase/assets/sortable.esm-DCj5rKPd.js +0 -5
- package/dist/showcase/assets/sparkles-a2TsduRv.js +0 -1
- package/dist/showcase/assets/spinner-BRTHJLPS.js +0 -49
- package/dist/showcase/assets/spinner-RQ5TsGWE.js +0 -30
- package/dist/showcase/assets/spinner-yQrc4KLG.js +0 -1
- package/dist/showcase/assets/square-pen-wg5I0K5c.js +0 -1
- package/dist/showcase/assets/stacked-avatars-BGpGV4Is.js +0 -1
- package/dist/showcase/assets/star-Ccv6TKPm.js +0 -1
- package/dist/showcase/assets/startOfDay-BslQvd9l.js +0 -1
- package/dist/showcase/assets/styles-CMmKOMCT.js +0 -1
- package/dist/showcase/assets/suggestions--A7bRqHY.js +0 -126
- package/dist/showcase/assets/support-rail-b2WhhyFB.js +0 -26
- package/dist/showcase/assets/switch-Cv_v9byU.js +0 -1
- package/dist/showcase/assets/switch-DY-b3cEd.js +0 -1
- package/dist/showcase/assets/switch-card-C-Q3eon2.js +0 -1
- package/dist/showcase/assets/sync-BmH6kK2e.js +0 -124
- package/dist/showcase/assets/table-DAil3SVn.js +0 -686
- package/dist/showcase/assets/table-DNimuqS6.js +0 -1
- package/dist/showcase/assets/table-actions-Bgp9_jhZ.js +0 -1
- package/dist/showcase/assets/tabs-DN23r2we.js +0 -1
- package/dist/showcase/assets/tabs-RbFeMoGk.js +0 -19
- package/dist/showcase/assets/tags-input-Cp-ikGn_.js +0 -1
- package/dist/showcase/assets/text-button-CPxfmks9.js +0 -1
- package/dist/showcase/assets/text-link-BBHsgNSW.js +0 -1
- package/dist/showcase/assets/textarea-BGe_VCrI.js +0 -1
- package/dist/showcase/assets/textarea-DAV6cQCw.js +0 -1
- package/dist/showcase/assets/throttle-alert-B85zpgs4.js +0 -1
- package/dist/showcase/assets/timelines-BptCi-0C.js +0 -200
- package/dist/showcase/assets/toggle-group-B4tIG940.js +0 -1
- package/dist/showcase/assets/toggles-BSkNLAjb.js +0 -71
- package/dist/showcase/assets/toggles-group-CQIwVA__.js +0 -32
- package/dist/showcase/assets/tooltip-DN6bKPgk.js +0 -31
- package/dist/showcase/assets/trash-2-DZ5FSAFb.js +0 -1
- package/dist/showcase/assets/trending-up-DtSjt9AO.js +0 -1
- package/dist/showcase/assets/truck-B0QFWMMH.js +0 -1
- package/dist/showcase/assets/typography-8sXlmgaD.js +0 -223
- package/dist/showcase/assets/ui-badge-C4odkkUK.js +0 -28
- package/dist/showcase/assets/ui-card-CU1Ga8J6.js +0 -30
- package/dist/showcase/assets/ui-table-Bp-MkWh5.js +0 -42
- package/dist/showcase/assets/upload-tray-DT0HesKW.js +0 -138
- package/dist/showcase/assets/use-layout-link-BsJvjSZp.js +0 -1
- package/dist/showcase/assets/useAriaLabelledBy-Bl2oGr7T.js +0 -1
- package/dist/showcase/assets/useCollapsiblePanel-C8-r9Srt.js +0 -1
- package/dist/showcase/assets/useCompositeItem-DVZX40q_.js +0 -1
- package/dist/showcase/assets/useCompositeListItem-DWggcwRs.js +0 -1
- package/dist/showcase/assets/useLabelableId-Dx_-xVBr.js +0 -1
- package/dist/showcase/assets/useOpenInteractionType-CKNY2kPx.js +0 -1
- package/dist/showcase/assets/useRender-Bk8pPQUW.js +0 -1
- package/dist/showcase/assets/useTriggerFocusGuards-D74GGv1k.js +0 -1
- package/dist/showcase/assets/useValueChanged-BjYsvuOC.js +0 -1
- package/dist/showcase/assets/user-DlFWtE-h.js +0 -1
- package/dist/showcase/assets/user-plus-NGAALkPS.js +0 -1
- package/dist/showcase/assets/users-DYPDZwd6.js +0 -1
- package/dist/showcase/assets/variant-details-DtdWm8Bt.js +0 -50
- package/dist/showcase/assets/variant-management-Dk_P-wBF.js +0 -209
- package/dist/showcase/assets/vendor-profile-Bf1kKKdO.js +0 -37
- package/dist/showcase/assets/video-BObmzTOM.js +0 -1
- package/dist/showcase/assets/visually-hidden-rJ25V2wc.js +0 -1
- package/dist/showcase/assets/weight-input-DpQ3yEQ3.js +0 -1
- package/dist/showcase/assets/wrench-Df-eIMsM.js +0 -1
- package/dist/showcase/assets/x-DVQ0XpIT.js +0 -1
- package/dist/showcase/assets/zap-_0WPgXWT.js +0 -1
|
@@ -0,0 +1,568 @@
|
|
|
1
|
+
import{n as e,r as t}from"./chunk-QTnfLwEv.js";import{t as n}from"./react-sKtkuLrH.js";import{f as r,n as i,o as a,p as o,t as s}from"./section-C_rLy6Zn.js";import{a as c,c as l,i as u,l as d,n as f,o as p,r as m,s as h,t as g,u as _}from"./ai-artifact-Cv7LTw1V.js";import{t as v}from"./arrow-down-D0XbhSDi.js";import{t as y}from"./arrow-up-BiZ_VvpP.js";import{t as b}from"./bot-BGQvS_p9.js";import{t as x}from"./chart-column-CJx3qWPs.js";import{Er as S,n as C,r as w,t as T}from"./example-BsDQngs7.js";import{t as E}from"./database-CZLgFKRy.js";import{t as D}from"./file-text-C59ToXmU.js";import{t as ee}from"./paperclip-D0oBI19t.js";import{t as O}from"./sparkles-BDnbTUMq.js";import{n as k,r as A,t as j}from"./ai-tool-call-6qESA6We.js";import{t as M}from"./x-C5_SzMQM.js";import{N,a as te,d as ne,l as re,n as P}from"./index-B4sKWDcN.js";import{t as F}from"./props-table-aynAz90t.js";import{t as ie}from"./icon-badge-ruuI6tt0.js";import{t as ae}from"./textarea-DcCHHuP-.js";var oe=re(`lightbulb`,[[`path`,{d:`M15 14c.2-1 .7-1.7 1.5-2.5 1-.9 1.5-2.2 1.5-3.5A6 6 0 0 0 6 8c0 1 .2 2.2 1.5 3.5.7.7 1.3 1.5 1.5 2.5`,key:`1gvzjb`}],[`path`,{d:`M9 18h6`,key:`x1upvd`}],[`path`,{d:`M10 22h4`,key:`ceow96`}]]),se=re(`square`,[[`rect`,{width:`18`,height:`18`,x:`3`,y:`3`,rx:`2`,key:`afitv7`}]]),ce={placeholder:`Ask anything…`,attachAria:`Attach files`,submitAria:`Send message`,stopAria:`Stop generating`,modelPickerAria:`Choose model`,hint:`Press {{submitKey}} to send · {{newlineKey}} for newline`},le={scrollToBottom:`Jump to latest`,scrollToBottomAria:`Scroll to bottom`},ue={header:`In queue`,cancelAria:`Remove from queue`,queuedLabel:`Queued`,runningLabel:`Running`},de={header:`Try`},fe={pending:`Thinking…`},pe={prompt:ce,conversation:le,queue:ue,suggestions:de,message:fe,emptyTitle:`Start a conversation`,emptyDescription:`Ask a question, share context, or attach a file to get going.`};function me(e,t){return e.replace(/\{\{\s*(\w+)\s*\}\}/g,(e,n)=>{let r=t[n];return r===void 0?e:String(r)})}var I=ne();function L({attachments:e,onRemove:t,onOpen:n,className:r}){return e.length===0?null:(0,I.jsx)(`div`,{className:P(`flex flex-wrap gap-2`,r),children:e.map(e=>(0,I.jsx)(l,{name:e.name,meta:e.meta,kind:e.kind,icon:e.icon,thumbnailUrl:e.thumbnailUrl,progress:e.progress,errored:e.errored,onOpen:n?()=>n(e):void 0,onRemove:t?()=>t(e.id):void 0},e.id))})}L.displayName=`AiChatAttachmentsStrip`;var R=t(n(),1);function z({threshold:e=80,dependency:t,disableAutoScroll:n=!1}={}){let r=(0,R.useRef)(null),i=(0,R.useRef)(null),[a,o]=(0,R.useState)(!0),s=(0,R.useCallback)((e=`smooth`)=>{i.current?.scrollIntoView({behavior:e,block:`end`})},[]);return(0,R.useEffect)(()=>{let t=r.current;if(!t)return;let n=()=>{o(t.scrollHeight-t.clientHeight-t.scrollTop<=e)};return n(),t.addEventListener(`scroll`,n,{passive:!0}),()=>t.removeEventListener(`scroll`,n)},[e]),(0,R.useEffect)(()=>{if(n||!a)return;let e=window.requestAnimationFrame(()=>s(`auto`));return()=>window.cancelAnimationFrame(e)},[t,n]),{containerRef:r,endRef:i,isAtBottom:a,scrollToBottom:s}}function B({messages:e,renderMessage:t,intro:n,footer:r,empty:i,disableAutoScroll:a,className:s,strings:c}){let l=N(le,c),{containerRef:u,endRef:d,isAtBottom:f,scrollToBottom:p}=z({dependency:e.length,disableAutoScroll:a}),m=e.length===0&&!n;return(0,I.jsxs)(`div`,{className:P(`relative flex h-full min-h-0 flex-col`,s),children:[(0,I.jsxs)(`div`,{ref:u,className:`flex-1 overflow-y-auto px-3 py-4 sm:px-4`,children:[!!n&&(0,I.jsx)(`div`,{className:`mb-4`,children:n}),m?i??(0,I.jsx)(`div`,{className:`flex h-full items-center justify-center px-6 py-12`,children:(0,I.jsx)(o,{type:`secondary`,children:`No messages yet.`})}):(0,I.jsx)(`ol`,{className:`space-y-4`,children:e.map((n,r)=>(0,I.jsx)(`li`,{children:t(n,{isLast:r===e.length-1,index:r})},n.id))}),!!r&&(0,I.jsx)(`div`,{className:`mt-4`,children:r}),(0,I.jsx)(`div`,{ref:d,"aria-hidden":!0,className:`h-px`})]}),!f&&(0,I.jsx)(`div`,{className:`pointer-events-none absolute bottom-3 left-1/2 -translate-x-1/2`,children:(0,I.jsxs)(w,{type:`button`,variant:`secondary`,buttonStyle:`solid`,"aria-label":l.scrollToBottomAria,onClick:()=>p(`smooth`),className:P(`pointer-events-auto rounded-full shadow-md`,`border border-border/60`),children:[(0,I.jsx)(v,{className:`size-3.5`}),l.scrollToBottom]})})]})}B.displayName=`AiChatConversation`;function V({title:e=`Start a conversation`,description:t,icon:n=O,below:i,className:a}){return(0,I.jsxs)(`div`,{className:P(`flex h-full flex-col items-center justify-center gap-3 px-4 py-10 text-center`,a),children:[(0,I.jsx)(ie,{icon:n,tone:`primary`,size:`default`,shape:`square`}),(0,I.jsxs)(`div`,{className:`max-w-md space-y-1`,children:[(0,I.jsx)(r,{tag:`h4`,children:e}),!!t&&(0,I.jsx)(o,{type:`secondary`,children:t})]}),!!i&&(0,I.jsx)(`div`,{className:`mt-4 w-full max-w-2xl`,children:i})]})}V.displayName=`AiChatEmptyState`;function H({message:e,onCopy:t,onRegenerate:n,onAttachmentOpen:r,className:i,strings:a}){let o=N(fe,a),s=[],c=[];for(let t of e.parts)t.type===`text`?s.push(t):c.push(t);let l=s.map(e=>e.type===`text`?e.plain??ge(e.content):``).filter(Boolean).join(`
|
|
2
|
+
`)||void 0,u=e.pending?(0,I.jsx)(_,{children:o.pending}):s.length===0&&c.length>0?null:(0,I.jsx)(`div`,{className:`space-y-2`,children:s.map((e,t)=>e.type===`text`?(0,I.jsx)(`div`,{className:`whitespace-pre-wrap`,children:e.content},t):null)});return(0,I.jsxs)(`div`,{className:P(`space-y-2`,i),children:[(u!==null||e.pending)&&(0,I.jsx)(k,{role:e.role,avatar:e.avatar,authorName:e.authorName,timestamp:e.timestamp,plainText:l,loading:e.loading,onCopy:l?t??(()=>void 0):void 0,onRegenerate:n,children:u}),c.length>0&&(0,I.jsx)(`div`,{className:P(`space-y-2`,e.role===`user`?`pr-9 sm:pl-12`:`pl-9 sm:pr-12`),children:c.map((e,t)=>(0,I.jsx)(he,{part:e,onAttachmentOpen:r},t))}),!!e.trailing&&(0,I.jsx)(`div`,{className:P(e.role===`user`?`pr-9 sm:pl-12`:`pl-9 sm:pr-12`),children:e.trailing})]})}H.displayName=`AiChatMessage`;function he({part:e,onAttachmentOpen:t}){switch(e.type){case`text`:return(0,I.jsx)(o,{children:e.content});case`reasoning`:return(0,I.jsx)(u,{streaming:e.streaming,durationSeconds:e.durationSeconds,children:e.content});case`chain-of-thought`:return(0,I.jsx)(m,{steps:e.steps,streaming:e.streaming});case`tool`:return(0,I.jsx)(j,{name:e.name,status:e.status,icon:e.icon,args:e.args,result:e.result,error:e.error,durationMs:e.durationMs,defaultExpanded:e.defaultExpanded});case`code`:return(0,I.jsx)(d,{code:e.code,language:e.language,filename:e.filename,showLineNumbers:e.showLineNumbers,highlightLines:e.highlightLines});case`attachments`:return(0,I.jsx)(L,{attachments:e.items,onOpen:t?e=>t(e.id):void 0});case`sources`:return(0,I.jsx)(c,{sources:e.items,variant:e.variant,defaultExpanded:e.defaultExpanded});case`task`:return(0,I.jsx)(f,{task:e.task});case`artifact`:return(0,I.jsx)(g,{title:e.title,subtitle:e.subtitle,icon:e.icon,copyText:e.copyText,actions:e.actions,onOpen:e.onOpen,onDownload:e.onDownload,children:e.body});case`confirmation`:return(0,I.jsx)(p,{title:e.title,description:e.description,tone:e.tone,status:e.status,details:e.details,onApprove:e.onApprove,onReject:e.onReject});case`custom`:return(0,I.jsx)(I.Fragment,{children:e.render()});default:return null}}function ge(e){return typeof e==`string`||typeof e==`number`?String(e):Array.isArray(e)?e.map(ge).join(``):``}function U({value:e,onChange:t,onSubmit:n,onStop:r,streaming:i=!1,disabled:a=!1,attachments:s=[],onRemoveAttachment:c,onAttach:l,showAttach:u,leadingActions:d,trailingActions:f,hideHint:p=!1,minRows:m=1,maxRows:h=8,autoFocus:g=!1,className:_,strings:v}){let b=N(ce,v),x=(0,R.useRef)(null),S=!i&&!a&&(e.trim().length>0||s.length>0),C=(0,R.useCallback)(()=>{S&&n?.({text:e,attachments:s})},[S,n,e,s]),T=(0,R.useCallback)(e=>{e.key===`Enter`&&!e.shiftKey&&!e.nativeEvent.isComposing&&(e.preventDefault(),C())},[C]),E=u??!!l,D=typeof navigator<`u`&&navigator.platform?.toLowerCase().includes(`mac`)?`⌘↩`:`↩`;return(0,I.jsxs)(`div`,{className:P(`rounded-xl border border-border bg-card transition-colors duration-150`,`focus-within:border-foreground/20 focus-within:ring-2 focus-within:ring-ring/30`,a&&`opacity-60 pointer-events-none`,_),children:[s.length>0&&(0,I.jsx)(`div`,{className:`border-b border-border/60 p-2`,children:(0,I.jsx)(L,{attachments:s,onRemove:c})}),(0,I.jsx)(ae,{ref:x,value:e,onChange:e=>t(e.target.value),onKeyDown:T,placeholder:b.placeholder,autoResize:!0,minRows:m,maxRows:h,autoFocus:g,disabled:a,className:P(`!border-0 !bg-transparent !shadow-none focus-visible:!ring-0 resize-none px-3 py-2.5`)}),(0,I.jsxs)(`div`,{className:`flex items-center gap-1 border-t border-border/60 px-2 py-1.5`,children:[d,E&&(0,I.jsx)(w,{type:`button`,variant:`secondary`,buttonStyle:`ghost`,size:`icon-small`,"aria-label":b.attachAria,onClick:l,disabled:a,children:(0,I.jsx)(ee,{className:`size-4`})}),(0,I.jsxs)(`div`,{className:`ml-auto flex items-center gap-1`,children:[f,i?(0,I.jsx)(w,{type:`button`,variant:`secondary`,buttonStyle:`solid`,size:`icon-small`,"aria-label":b.stopAria,onClick:r,children:(0,I.jsx)(se,{className:`size-3.5 fill-current`})}):(0,I.jsx)(w,{type:`button`,variant:`primary`,buttonStyle:`solid`,size:`icon-small`,"aria-label":b.submitAria,onClick:C,disabled:!S,children:(0,I.jsx)(y,{className:`size-4`})})]})]}),!p&&(0,I.jsx)(`div`,{className:`px-3 pb-2`,children:(0,I.jsx)(o,{size:`xs`,type:`discrete`,children:me(b.hint,{submitKey:D,newlineKey:`⇧↩`})})})]})}U.displayName=`AiChatPromptInput`;function _e({items:e,hideHeader:t=!1,onCancel:n,className:r,strings:i}){let s=N(ue,i);return e.length===0?null:(0,I.jsxs)(`div`,{className:P(`rounded-lg border border-border/60 bg-muted/20 px-2.5 py-2`,r),children:[!t&&(0,I.jsxs)(o,{size:`xs`,type:`secondary`,weight:`medium`,className:`mb-1.5 px-1 uppercase tracking-wider`,children:[s.header,` · `,e.length]}),(0,I.jsx)(`ul`,{className:`space-y-1`,children:e.map(e=>{let t=e.status??`queued`;return(0,I.jsxs)(`li`,{className:`flex items-center gap-2 rounded-md bg-card px-2 py-1.5`,children:[t===`running`?(0,I.jsx)(S,{className:`size-3.5 shrink-0 animate-spin text-primary`}):(0,I.jsx)(`span`,{"aria-hidden":!0,className:`size-2 shrink-0 rounded-full bg-muted-foreground/50`}),(0,I.jsx)(o,{size:`xs`,className:`flex-1 truncate`,children:e.label}),(0,I.jsx)(a,{variant:t===`running`?`primary`:`secondary`,children:t===`running`?s.runningLabel:s.queuedLabel}),(!!e.onCancel||!!n)&&(0,I.jsx)(w,{type:`button`,variant:`secondary`,buttonStyle:`ghost`,size:`icon-small`,"aria-label":s.cancelAria,onClick:()=>{e.onCancel?.(),n?.(e.id)},children:(0,I.jsx)(M,{className:`size-3.5`})})]},e.id)})})]})}_e.displayName=`AiChatQueue`;function ve({suggestions:e,onPick:t,hideHeader:n=!1,className:r,strings:i}){let a=N(de,i);return e.length===0?null:(0,I.jsxs)(`div`,{className:P(`flex items-center gap-2`,r),children:[!n&&(0,I.jsxs)(`div`,{className:`inline-flex shrink-0 items-center gap-1.5`,children:[(0,I.jsx)(O,{className:`size-3.5 text-muted-foreground`}),(0,I.jsx)(o,{size:`xs`,type:`secondary`,weight:`medium`,className:`uppercase tracking-wider`,children:a.header})]}),(0,I.jsx)(`div`,{className:`-mx-1 flex flex-1 items-center gap-1.5 overflow-x-auto px-1 py-0.5 [scrollbar-width:none] [&::-webkit-scrollbar]:hidden`,children:e.map(e=>{let n=e.icon;return(0,I.jsxs)(w,{type:`button`,variant:`secondary`,buttonStyle:`ghost`,size:`small`,onClick:()=>t?.(e),className:P(`h-auto shrink-0 gap-1.5 rounded-full border border-border/60 bg-card px-2.5 py-1`,`transition-[border-color,background] duration-150`,`hover:border-foreground/20 hover:bg-muted/40`),children:[!!n&&(0,I.jsx)(n,{className:`size-3 text-muted-foreground`}),(0,I.jsx)(o,{tag:`span`,size:`xs`,weight:`medium`,children:e.label})]},e.id)})})]})}ve.displayName=`AiChatSuggestionsRow`;function W({messages:e,inputValue:t,onInputChange:n,onSubmit:r,onStop:i,streaming:a=!1,disabled:s=!1,attachments:c=[],onRemoveAttachment:l,onAttach:u,showAttach:d,agent:f,headerActions:p,queue:m=[],onCancelQueueItem:g,suggestions:_=[],onPickSuggestion:v,onMessageCopy:y,onMessageRegenerate:b,onAttachmentOpen:x,disableAutoScroll:S,slots:C,strings:w,className:T}){let E=N(pe,w),[,D]=(0,R.useState)(0),ee=(0,R.useCallback)((e,t)=>C?.renderMessage?C.renderMessage(e,t):(0,I.jsx)(H,{className:`ai-chat-message--component`,message:e,strings:E.message,onCopy:y?()=>y(e):void 0,onRegenerate:b?()=>b(e):void 0,onAttachmentOpen:x?t=>x(e.id,t):void 0}),[x,y,b,C,E.message]),O=C?.header??(f?(0,I.jsxs)(`div`,{className:`flex items-center gap-3 border-b border-border bg-card px-3 py-2 sm:px-4`,children:[(0,I.jsx)(h,{name:f.name,icon:f.icon,avatar:f.avatar,subtitle:f.subtitle,tone:f.tone,status:f.status,variant:`inline`}),!!p&&(0,I.jsx)(`div`,{className:`ml-auto flex items-center gap-1`,children:p})]}):null),k=C?.empty??(e.length===0?(0,I.jsx)(V,{title:E.emptyTitle,description:E.emptyDescription}):null),A=C?.queue??(m.length>0?(0,I.jsx)(_e,{items:m,onCancel:g,strings:E.queue}):null),j=C?.suggestions??(_.length>0?(0,I.jsx)(ve,{suggestions:_,onPick:v,strings:E.suggestions}):null),M=C?.input??(0,I.jsx)(U,{value:t,onChange:n,onSubmit:e=>{r?.(e),D(e=>e+1)},onStop:i,streaming:a,disabled:s,attachments:c,onRemoveAttachment:l,onAttach:u,showAttach:d,strings:E.prompt});return(0,I.jsxs)(`div`,{className:P(`ai-chat--component flex h-full flex-col overflow-hidden rounded-xl border border-border bg-background`,T),children:[O,(0,I.jsx)(B,{messages:e,renderMessage:ee,intro:C?.intro,footer:C?.belowMessages,empty:k,disableAutoScroll:S,strings:E.conversation}),(A||j||M)&&(0,I.jsxs)(`div`,{className:`border-t border-border bg-card/60`,children:[A&&(0,I.jsx)(`div`,{className:`px-3 pb-2 pt-3 sm:px-4`,children:A}),j&&(0,I.jsx)(`div`,{className:P(`px-3 sm:px-4`,!A&&`pt-3`,`pb-2`),children:j}),M&&(0,I.jsx)(`div`,{className:`px-3 pb-3 pt-2 sm:px-4 sm:pb-4`,children:M})]}),s&&(0,I.jsx)(o,{className:`sr-only`,"aria-live":`polite`,children:`Chat is disabled`})]})}W.displayName=`AiChat`;var ye=e({Default:()=>q,Empty:()=>Y,Headless:()=>Z,Streaming:()=>J,WithSlots:()=>X}),G={name:`Atlas`,subtitle:`claude-4.7-1m · with tools`,icon:b,tone:`primary`,status:`idle`},be=`import { useState } from 'react';
|
|
3
|
+
|
|
4
|
+
export function Counter() {
|
|
5
|
+
const [count, setCount] = useState(0);
|
|
6
|
+
return (
|
|
7
|
+
<button onClick={() => setCount((c) => c + 1)}>
|
|
8
|
+
Count: {count}
|
|
9
|
+
</button>
|
|
10
|
+
);
|
|
11
|
+
}`,K=[{id:`m1`,role:`user`,authorName:`You`,timestamp:`14:31`,parts:[{type:`text`,content:`Can you summarise yesterday’s bookings and flag anything unusual?`},{type:`attachments`,items:[{id:`a1`,name:`bookings-2026-04-30.csv`,meta:`124 KB · CSV`,kind:`document`}]}]},{id:`m2`,role:`assistant`,authorName:`Atlas`,timestamp:`14:31`,parts:[{type:`reasoning`,durationSeconds:3.4,content:`Loading the CSV, grouping by date, computing totals and refund deltas. Spa package volume looked off so checked the prior 7-day baseline.`},{type:`tool`,name:`analytics.query`,status:`success`,durationMs:320,args:`{ "from": "2026-04-30", "to": "2026-04-30", "metric": "bookings" }`,result:`23 bookings · 4,820 USD · 2 refunds`},{type:`text`,content:`You had 23 bookings yesterday totalling 4,820 USD. Two refunds were processed (one cancellation, one duplicate). The Spa package saw 2× the usual demand.`},{type:`sources`,variant:`avatars`,items:[{id:`s1`,title:`bookings.csv`,publisher:`attached file`},{id:`s2`,title:`pricing.json`,publisher:`attached file`},{id:`s3`,title:`refunds.tsv`,publisher:`attached file`}]}],trailing:(0,I.jsx)(A,{onVote:()=>{},onSubmitComment:()=>{}})},{id:`m3`,role:`user`,authorName:`You`,timestamp:`14:33`,parts:[{type:`text`,content:`Generate a Counter.tsx demo and queue an npm install for the deps.`}]},{id:`m4`,role:`assistant`,authorName:`Atlas`,timestamp:`14:33`,parts:[{type:`chain-of-thought`,steps:[{id:`1`,title:`Pick a minimal example`,status:`completed`},{id:`2`,title:`Write the component`,status:`completed`},{id:`3`,title:`Verify dependencies`,status:`active`}]},{type:`artifact`,title:`Counter.tsx`,subtitle:`React component · 12 lines`,icon:D,copyText:be,body:(0,I.jsx)(d,{code:be,language:`tsx`,hideHeader:!0}),onDownload:()=>{},onOpen:()=>{}},{type:`confirmation`,title:`Run pnpm install in the workspace?`,description:`Atlas needs to install react-dom@19 to run the demo.`,tone:`info`,onApprove:()=>{},onReject:()=>{}}]}],xe=[{id:`kpi`,label:`KPI digest`,icon:x},{id:`invoice`,label:`Overdue reminder draft`,icon:D},{id:`lookup`,label:`Find similar customers`,icon:te},{id:`refund`,label:`Refund policy explainer`,icon:oe},{id:`analytics`,label:`Build a SQL query`,icon:E}];function q(){let[e,t]=(0,R.useState)(K),[n,r]=(0,R.useState)(``),[i,a]=(0,R.useState)(!1),[o,s]=(0,R.useState)([]);return(0,I.jsx)(`div`,{className:`h-160`,children:(0,I.jsx)(W,{agent:G,messages:e,inputValue:n,onInputChange:r,onSubmit:(0,R.useCallback)(e=>{if(!e.text.trim()&&e.attachments.length===0)return;let n={id:`u-${Date.now()}`,role:`user`,authorName:`You`,timestamp:new Date().toLocaleTimeString([],{hour:`2-digit`,minute:`2-digit`}),parts:[...e.text.trim()?[{type:`text`,content:e.text}]:[],...e.attachments.length>0?[{type:`attachments`,items:e.attachments}]:[]]},i={id:`a-${Date.now()}`,role:`assistant`,authorName:`Atlas`,pending:!0,parts:[]};t(e=>[...e,n,i]),r(``),s([]),a(!0),window.setTimeout(()=>{t(e=>e.map(e=>e.id===i.id?{...e,pending:!1,parts:[{type:`text`,content:"Got it. (This is a demo — wire `onSubmit` to your model API in production.)"}]}:e)),a(!1)},1200)},[]),onStop:()=>a(!1),streaming:i,attachments:o,onRemoveAttachment:e=>s(t=>t.filter(t=>t.id!==e)),onAttach:()=>s(e=>[...e,{id:`att-${Date.now()}`,name:`sample-spec.md`,meta:`32 KB · Markdown`,kind:`document`}]),suggestions:xe,onPickSuggestion:e=>r(typeof e.label==`string`?e.label:``),onMessageRegenerate:()=>{},onMessageCopy:()=>{}})})}function J(){return(0,I.jsx)(`div`,{className:`h-105`,children:(0,I.jsx)(W,{agent:G,messages:[{id:`u`,role:`user`,authorName:`You`,timestamp:`15:02`,parts:[{type:`text`,content:`Draft a refund email for ORD-A219.`}]},{id:`a`,role:`assistant`,authorName:`Atlas`,pending:!0,parts:[]}],inputValue:``,onInputChange:()=>{},streaming:!0,onStop:()=>{}})})}function Y(){let[e,t]=(0,R.useState)(``);return(0,I.jsx)(`div`,{className:`h-105`,children:(0,I.jsx)(W,{agent:G,messages:[],inputValue:e,onInputChange:t,suggestions:xe,onPickSuggestion:e=>t(typeof e.label==`string`?e.label:``),strings:{emptyTitle:`Start a conversation`,emptyDescription:`Ask Atlas about bookings, refunds, KPIs, or paste a spec to review.`}})})}function X(){let[e,t]=(0,R.useState)(``),[n,r]=(0,R.useState)([{id:`q1`,label:`Generate weekly KPI digest`,status:`running`},{id:`q2`,label:`Draft refund email to customer #2941`,status:`queued`}]);return(0,I.jsx)(`div`,{className:`h-130`,children:(0,I.jsx)(W,{messages:K.slice(0,2),inputValue:e,onInputChange:t,queue:n,onCancelQueueItem:e=>r(t=>t.filter(t=>t.id!==e)),slots:{header:(0,I.jsxs)(`div`,{className:`flex items-center justify-between border-b border-border bg-card px-4 py-2.5`,children:[(0,I.jsx)(o,{weight:`semibold`,children:`Atlas · workspace assistant`}),(0,I.jsx)(w,{buttonStyle:`ghost`,size:`small`,children:`Settings`})]}),belowMessages:(0,I.jsx)(`div`,{className:`border-t border-border bg-muted/30 px-4 py-2`,children:(0,I.jsx)(o,{size:`xs`,type:`secondary`,children:`Replies are generated; double-check anything before acting.`})})}})})}function Z(){let[e,t]=(0,R.useState)(``),[n,r]=(0,R.useState)(K.slice(0,2)),{containerRef:i,endRef:a,isAtBottom:s,scrollToBottom:c}=z({dependency:n.length});return(0,I.jsxs)(`div`,{className:`flex h-130 flex-col overflow-hidden rounded-xl border border-border bg-background`,children:[(0,I.jsxs)(`div`,{className:`flex items-center justify-between border-b border-border px-4 py-2`,children:[(0,I.jsx)(o,{weight:`semibold`,children:`Custom shell — built from partials`}),!s&&(0,I.jsx)(w,{buttonStyle:`ghost`,size:`small`,onClick:()=>c(),children:`Jump to latest`})]}),(0,I.jsxs)(`div`,{ref:i,className:`flex-1 overflow-y-auto px-4 py-3`,children:[n.length===0?(0,I.jsx)(V,{title:`Nothing yet`,description:`Send a message to begin.`}):(0,I.jsx)(B,{messages:n,renderMessage:e=>(0,I.jsxs)(`div`,{className:`rounded-md border border-border bg-card/60 p-3`,children:[(0,I.jsxs)(o,{size:`xs`,type:`secondary`,children:[e.authorName,` · `,e.role]}),e.parts.map((e,t)=>e.type===`text`?(0,I.jsx)(o,{className:`mt-1`,children:e.content},t):null)]}),disableAutoScroll:!0}),(0,I.jsx)(`div`,{ref:a})]}),(0,I.jsx)(`div`,{className:`border-t border-border px-4 py-3`,children:(0,I.jsx)(U,{value:e,onChange:t,onSubmit:e=>{e.text.trim()&&(r(t=>[...t,{id:`u-${Date.now()}`,role:`user`,authorName:`You`,parts:[{type:`text`,content:e.text}]}]),t(``))}})})]})}var Q=`import { useCallback, useState } from 'react';
|
|
12
|
+
import {
|
|
13
|
+
BarChart3,
|
|
14
|
+
Bot,
|
|
15
|
+
Database,
|
|
16
|
+
FileText,
|
|
17
|
+
Lightbulb,
|
|
18
|
+
Search,
|
|
19
|
+
} from 'lucide-react';
|
|
20
|
+
|
|
21
|
+
import {
|
|
22
|
+
AiChat,
|
|
23
|
+
AiChatConversation,
|
|
24
|
+
AiChatEmptyState,
|
|
25
|
+
AiChatPromptInput,
|
|
26
|
+
useAiChatScroll,
|
|
27
|
+
type AiChatAttachment,
|
|
28
|
+
type AiChatMessage,
|
|
29
|
+
type AiChatQueueItem,
|
|
30
|
+
type AiChatSubmitValues,
|
|
31
|
+
type AiChatSuggestion,
|
|
32
|
+
} from '@/components/features/ai-chat';
|
|
33
|
+
import { AiCodeBlock } from '@/components/composed/ai/ai-code-block';
|
|
34
|
+
import { AiFeedback } from '@/components/composed/ai/ai-feedback';
|
|
35
|
+
import { Button } from '@/components/base/buttons';
|
|
36
|
+
import { Text } from '@/components/typography';
|
|
37
|
+
|
|
38
|
+
/* ------------------------------------------------------------------ */
|
|
39
|
+
/* Shared seed data */
|
|
40
|
+
/* ------------------------------------------------------------------ */
|
|
41
|
+
|
|
42
|
+
const AGENT = {
|
|
43
|
+
name: 'Atlas',
|
|
44
|
+
subtitle: 'claude-4.7-1m · with tools',
|
|
45
|
+
icon: Bot,
|
|
46
|
+
tone: 'primary' as const,
|
|
47
|
+
status: 'idle' as const,
|
|
48
|
+
};
|
|
49
|
+
|
|
50
|
+
const SAMPLE_CODE = \`import { useState } from 'react';
|
|
51
|
+
|
|
52
|
+
export function Counter() {
|
|
53
|
+
const [count, setCount] = useState(0);
|
|
54
|
+
return (
|
|
55
|
+
<button onClick={() => setCount((c) => c + 1)}>
|
|
56
|
+
Count: {count}
|
|
57
|
+
</button>
|
|
58
|
+
);
|
|
59
|
+
}\`;
|
|
60
|
+
|
|
61
|
+
const SEED_MESSAGES: AiChatMessage[] = [
|
|
62
|
+
{
|
|
63
|
+
id: 'm1',
|
|
64
|
+
role: 'user',
|
|
65
|
+
authorName: 'You',
|
|
66
|
+
timestamp: '14:31',
|
|
67
|
+
parts: [
|
|
68
|
+
{
|
|
69
|
+
type: 'text',
|
|
70
|
+
content:
|
|
71
|
+
'Can you summarise yesterday’s bookings and flag anything unusual?',
|
|
72
|
+
},
|
|
73
|
+
{
|
|
74
|
+
type: 'attachments',
|
|
75
|
+
items: [
|
|
76
|
+
{
|
|
77
|
+
id: 'a1',
|
|
78
|
+
name: 'bookings-2026-04-30.csv',
|
|
79
|
+
meta: '124 KB · CSV',
|
|
80
|
+
kind: 'document',
|
|
81
|
+
},
|
|
82
|
+
],
|
|
83
|
+
},
|
|
84
|
+
],
|
|
85
|
+
},
|
|
86
|
+
{
|
|
87
|
+
id: 'm2',
|
|
88
|
+
role: 'assistant',
|
|
89
|
+
authorName: 'Atlas',
|
|
90
|
+
timestamp: '14:31',
|
|
91
|
+
parts: [
|
|
92
|
+
{
|
|
93
|
+
type: 'reasoning',
|
|
94
|
+
durationSeconds: 3.4,
|
|
95
|
+
content:
|
|
96
|
+
'Loading the CSV, grouping by date, computing totals and refund deltas. Spa package volume looked off so checked the prior 7-day baseline.',
|
|
97
|
+
},
|
|
98
|
+
{
|
|
99
|
+
type: 'tool',
|
|
100
|
+
name: 'analytics.query',
|
|
101
|
+
status: 'success',
|
|
102
|
+
durationMs: 320,
|
|
103
|
+
args: '{ "from": "2026-04-30", "to": "2026-04-30", "metric": "bookings" }',
|
|
104
|
+
result: '23 bookings · 4,820 USD · 2 refunds',
|
|
105
|
+
},
|
|
106
|
+
{
|
|
107
|
+
type: 'text',
|
|
108
|
+
content:
|
|
109
|
+
'You had 23 bookings yesterday totalling 4,820 USD. Two refunds were processed (one cancellation, one duplicate). The Spa package saw 2× the usual demand.',
|
|
110
|
+
},
|
|
111
|
+
{
|
|
112
|
+
type: 'sources',
|
|
113
|
+
variant: 'avatars',
|
|
114
|
+
items: [
|
|
115
|
+
{ id: 's1', title: 'bookings.csv', publisher: 'attached file' },
|
|
116
|
+
{ id: 's2', title: 'pricing.json', publisher: 'attached file' },
|
|
117
|
+
{ id: 's3', title: 'refunds.tsv', publisher: 'attached file' },
|
|
118
|
+
],
|
|
119
|
+
},
|
|
120
|
+
],
|
|
121
|
+
trailing: <AiFeedback onVote={() => {}} onSubmitComment={() => {}} />,
|
|
122
|
+
},
|
|
123
|
+
{
|
|
124
|
+
id: 'm3',
|
|
125
|
+
role: 'user',
|
|
126
|
+
authorName: 'You',
|
|
127
|
+
timestamp: '14:33',
|
|
128
|
+
parts: [
|
|
129
|
+
{
|
|
130
|
+
type: 'text',
|
|
131
|
+
content:
|
|
132
|
+
'Generate a Counter.tsx demo and queue an npm install for the deps.',
|
|
133
|
+
},
|
|
134
|
+
],
|
|
135
|
+
},
|
|
136
|
+
{
|
|
137
|
+
id: 'm4',
|
|
138
|
+
role: 'assistant',
|
|
139
|
+
authorName: 'Atlas',
|
|
140
|
+
timestamp: '14:33',
|
|
141
|
+
parts: [
|
|
142
|
+
{
|
|
143
|
+
type: 'chain-of-thought',
|
|
144
|
+
steps: [
|
|
145
|
+
{ id: '1', title: 'Pick a minimal example', status: 'completed' },
|
|
146
|
+
{ id: '2', title: 'Write the component', status: 'completed' },
|
|
147
|
+
{ id: '3', title: 'Verify dependencies', status: 'active' },
|
|
148
|
+
],
|
|
149
|
+
},
|
|
150
|
+
{
|
|
151
|
+
type: 'artifact',
|
|
152
|
+
title: 'Counter.tsx',
|
|
153
|
+
subtitle: 'React component · 12 lines',
|
|
154
|
+
icon: FileText,
|
|
155
|
+
copyText: SAMPLE_CODE,
|
|
156
|
+
body: <AiCodeBlock code={SAMPLE_CODE} language="tsx" hideHeader />,
|
|
157
|
+
onDownload: () => {},
|
|
158
|
+
onOpen: () => {},
|
|
159
|
+
},
|
|
160
|
+
{
|
|
161
|
+
type: 'confirmation',
|
|
162
|
+
title: 'Run pnpm install in the workspace?',
|
|
163
|
+
description: 'Atlas needs to install react-dom@19 to run the demo.',
|
|
164
|
+
tone: 'info',
|
|
165
|
+
onApprove: () => {},
|
|
166
|
+
onReject: () => {},
|
|
167
|
+
},
|
|
168
|
+
],
|
|
169
|
+
},
|
|
170
|
+
];
|
|
171
|
+
|
|
172
|
+
const SUGGESTIONS: AiChatSuggestion[] = [
|
|
173
|
+
{ id: 'kpi', label: 'KPI digest', icon: BarChart3 },
|
|
174
|
+
{ id: 'invoice', label: 'Overdue reminder draft', icon: FileText },
|
|
175
|
+
{ id: 'lookup', label: 'Find similar customers', icon: Search },
|
|
176
|
+
{ id: 'refund', label: 'Refund policy explainer', icon: Lightbulb },
|
|
177
|
+
{ id: 'analytics', label: 'Build a SQL query', icon: Database },
|
|
178
|
+
];
|
|
179
|
+
|
|
180
|
+
/* ------------------------------------------------------------------ */
|
|
181
|
+
/* 1. Default conversation */
|
|
182
|
+
/* ------------------------------------------------------------------ */
|
|
183
|
+
|
|
184
|
+
export function Default() {
|
|
185
|
+
const [messages, setMessages] = useState<AiChatMessage[]>(SEED_MESSAGES);
|
|
186
|
+
const [input, setInput] = useState('');
|
|
187
|
+
const [streaming, setStreaming] = useState(false);
|
|
188
|
+
const [attachments, setAttachments] = useState<AiChatAttachment[]>([]);
|
|
189
|
+
|
|
190
|
+
const handleSubmit = useCallback((values: AiChatSubmitValues) => {
|
|
191
|
+
if (!values.text.trim() && values.attachments.length === 0) return;
|
|
192
|
+
const userMsg: AiChatMessage = {
|
|
193
|
+
id: \`u-\${Date.now()}\`,
|
|
194
|
+
role: 'user',
|
|
195
|
+
authorName: 'You',
|
|
196
|
+
timestamp: new Date().toLocaleTimeString([], {
|
|
197
|
+
hour: '2-digit',
|
|
198
|
+
minute: '2-digit',
|
|
199
|
+
}),
|
|
200
|
+
parts: [
|
|
201
|
+
...(values.text.trim()
|
|
202
|
+
? [{ type: 'text' as const, content: values.text }]
|
|
203
|
+
: []),
|
|
204
|
+
...(values.attachments.length > 0
|
|
205
|
+
? [{ type: 'attachments' as const, items: values.attachments }]
|
|
206
|
+
: []),
|
|
207
|
+
],
|
|
208
|
+
};
|
|
209
|
+
const assistantPlaceholder: AiChatMessage = {
|
|
210
|
+
id: \`a-\${Date.now()}\`,
|
|
211
|
+
role: 'assistant',
|
|
212
|
+
authorName: 'Atlas',
|
|
213
|
+
pending: true,
|
|
214
|
+
parts: [],
|
|
215
|
+
};
|
|
216
|
+
setMessages((prev) => [...prev, userMsg, assistantPlaceholder]);
|
|
217
|
+
setInput('');
|
|
218
|
+
setAttachments([]);
|
|
219
|
+
setStreaming(true);
|
|
220
|
+
window.setTimeout(() => {
|
|
221
|
+
setMessages((prev) =>
|
|
222
|
+
prev.map((m) =>
|
|
223
|
+
m.id === assistantPlaceholder.id
|
|
224
|
+
? {
|
|
225
|
+
...m,
|
|
226
|
+
pending: false,
|
|
227
|
+
parts: [
|
|
228
|
+
{
|
|
229
|
+
type: 'text',
|
|
230
|
+
content:
|
|
231
|
+
'Got it. (This is a demo — wire \`onSubmit\` to your model API in production.)',
|
|
232
|
+
},
|
|
233
|
+
],
|
|
234
|
+
}
|
|
235
|
+
: m,
|
|
236
|
+
),
|
|
237
|
+
);
|
|
238
|
+
setStreaming(false);
|
|
239
|
+
}, 1200);
|
|
240
|
+
}, []);
|
|
241
|
+
|
|
242
|
+
return (
|
|
243
|
+
<div className="h-160">
|
|
244
|
+
<AiChat
|
|
245
|
+
agent={AGENT}
|
|
246
|
+
messages={messages}
|
|
247
|
+
inputValue={input}
|
|
248
|
+
onInputChange={setInput}
|
|
249
|
+
onSubmit={handleSubmit}
|
|
250
|
+
onStop={() => setStreaming(false)}
|
|
251
|
+
streaming={streaming}
|
|
252
|
+
attachments={attachments}
|
|
253
|
+
onRemoveAttachment={(id) =>
|
|
254
|
+
setAttachments((prev) => prev.filter((a) => a.id !== id))
|
|
255
|
+
}
|
|
256
|
+
onAttach={() =>
|
|
257
|
+
setAttachments((prev) => [
|
|
258
|
+
...prev,
|
|
259
|
+
{
|
|
260
|
+
id: \`att-\${Date.now()}\`,
|
|
261
|
+
name: 'sample-spec.md',
|
|
262
|
+
meta: '32 KB · Markdown',
|
|
263
|
+
kind: 'document',
|
|
264
|
+
},
|
|
265
|
+
])
|
|
266
|
+
}
|
|
267
|
+
suggestions={SUGGESTIONS}
|
|
268
|
+
onPickSuggestion={(s) =>
|
|
269
|
+
setInput(typeof s.label === 'string' ? s.label : '')
|
|
270
|
+
}
|
|
271
|
+
onMessageRegenerate={() => {}}
|
|
272
|
+
onMessageCopy={() => {}}
|
|
273
|
+
/>
|
|
274
|
+
</div>
|
|
275
|
+
);
|
|
276
|
+
}
|
|
277
|
+
|
|
278
|
+
/* ------------------------------------------------------------------ */
|
|
279
|
+
/* 2. Streaming / pending assistant message */
|
|
280
|
+
/* ------------------------------------------------------------------ */
|
|
281
|
+
|
|
282
|
+
export function Streaming() {
|
|
283
|
+
const messages: AiChatMessage[] = [
|
|
284
|
+
{
|
|
285
|
+
id: 'u',
|
|
286
|
+
role: 'user',
|
|
287
|
+
authorName: 'You',
|
|
288
|
+
timestamp: '15:02',
|
|
289
|
+
parts: [{ type: 'text', content: 'Draft a refund email for ORD-A219.' }],
|
|
290
|
+
},
|
|
291
|
+
{
|
|
292
|
+
id: 'a',
|
|
293
|
+
role: 'assistant',
|
|
294
|
+
authorName: 'Atlas',
|
|
295
|
+
pending: true,
|
|
296
|
+
parts: [],
|
|
297
|
+
},
|
|
298
|
+
];
|
|
299
|
+
return (
|
|
300
|
+
<div className="h-105">
|
|
301
|
+
<AiChat
|
|
302
|
+
agent={AGENT}
|
|
303
|
+
messages={messages}
|
|
304
|
+
inputValue=""
|
|
305
|
+
onInputChange={() => {}}
|
|
306
|
+
streaming
|
|
307
|
+
onStop={() => {}}
|
|
308
|
+
/>
|
|
309
|
+
</div>
|
|
310
|
+
);
|
|
311
|
+
}
|
|
312
|
+
|
|
313
|
+
/* ------------------------------------------------------------------ */
|
|
314
|
+
/* 3. Empty state */
|
|
315
|
+
/* ------------------------------------------------------------------ */
|
|
316
|
+
|
|
317
|
+
export function Empty() {
|
|
318
|
+
const [input, setInput] = useState('');
|
|
319
|
+
return (
|
|
320
|
+
<div className="h-105">
|
|
321
|
+
<AiChat
|
|
322
|
+
agent={AGENT}
|
|
323
|
+
messages={[]}
|
|
324
|
+
inputValue={input}
|
|
325
|
+
onInputChange={setInput}
|
|
326
|
+
suggestions={SUGGESTIONS}
|
|
327
|
+
onPickSuggestion={(s) =>
|
|
328
|
+
setInput(typeof s.label === 'string' ? s.label : '')
|
|
329
|
+
}
|
|
330
|
+
strings={{
|
|
331
|
+
emptyTitle: 'Start a conversation',
|
|
332
|
+
emptyDescription:
|
|
333
|
+
'Ask Atlas about bookings, refunds, KPIs, or paste a spec to review.',
|
|
334
|
+
}}
|
|
335
|
+
/>
|
|
336
|
+
</div>
|
|
337
|
+
);
|
|
338
|
+
}
|
|
339
|
+
|
|
340
|
+
/* ------------------------------------------------------------------ */
|
|
341
|
+
/* 4. Slots — custom header, intro, queue */
|
|
342
|
+
/* ------------------------------------------------------------------ */
|
|
343
|
+
|
|
344
|
+
export function WithSlots() {
|
|
345
|
+
const [input, setInput] = useState('');
|
|
346
|
+
const [queue, setQueue] = useState<AiChatQueueItem[]>([
|
|
347
|
+
{ id: 'q1', label: 'Generate weekly KPI digest', status: 'running' },
|
|
348
|
+
{ id: 'q2', label: 'Draft refund email to customer #2941', status: 'queued' },
|
|
349
|
+
]);
|
|
350
|
+
return (
|
|
351
|
+
<div className="h-130">
|
|
352
|
+
<AiChat
|
|
353
|
+
messages={SEED_MESSAGES.slice(0, 2)}
|
|
354
|
+
inputValue={input}
|
|
355
|
+
onInputChange={setInput}
|
|
356
|
+
queue={queue}
|
|
357
|
+
onCancelQueueItem={(id) =>
|
|
358
|
+
setQueue((prev) => prev.filter((q) => q.id !== id))
|
|
359
|
+
}
|
|
360
|
+
slots={{
|
|
361
|
+
header: (
|
|
362
|
+
<div className="flex items-center justify-between border-b border-border bg-card px-4 py-2.5">
|
|
363
|
+
<Text weight="semibold">Atlas · workspace assistant</Text>
|
|
364
|
+
<Button buttonStyle="ghost" size="small">
|
|
365
|
+
Settings
|
|
366
|
+
</Button>
|
|
367
|
+
</div>
|
|
368
|
+
),
|
|
369
|
+
belowMessages: (
|
|
370
|
+
<div className="border-t border-border bg-muted/30 px-4 py-2">
|
|
371
|
+
<Text size="xs" type="secondary">
|
|
372
|
+
Replies are generated; double-check anything before acting.
|
|
373
|
+
</Text>
|
|
374
|
+
</div>
|
|
375
|
+
),
|
|
376
|
+
}}
|
|
377
|
+
/>
|
|
378
|
+
</div>
|
|
379
|
+
);
|
|
380
|
+
}
|
|
381
|
+
|
|
382
|
+
/* ------------------------------------------------------------------ */
|
|
383
|
+
/* 5. Headless — useAiChatScroll + custom layout */
|
|
384
|
+
/* ------------------------------------------------------------------ */
|
|
385
|
+
|
|
386
|
+
export function Headless() {
|
|
387
|
+
const [input, setInput] = useState('');
|
|
388
|
+
const [messages, setMessages] = useState<AiChatMessage[]>(
|
|
389
|
+
SEED_MESSAGES.slice(0, 2),
|
|
390
|
+
);
|
|
391
|
+
const { containerRef, endRef, isAtBottom, scrollToBottom } = useAiChatScroll({
|
|
392
|
+
dependency: messages.length,
|
|
393
|
+
});
|
|
394
|
+
|
|
395
|
+
return (
|
|
396
|
+
<div className="flex h-130 flex-col overflow-hidden rounded-xl border border-border bg-background">
|
|
397
|
+
<div className="flex items-center justify-between border-b border-border px-4 py-2">
|
|
398
|
+
<Text weight="semibold">Custom shell — built from partials</Text>
|
|
399
|
+
{!isAtBottom && (
|
|
400
|
+
<Button
|
|
401
|
+
buttonStyle="ghost"
|
|
402
|
+
size="small"
|
|
403
|
+
onClick={() => scrollToBottom()}
|
|
404
|
+
>
|
|
405
|
+
Jump to latest
|
|
406
|
+
</Button>
|
|
407
|
+
)}
|
|
408
|
+
</div>
|
|
409
|
+
<div
|
|
410
|
+
ref={containerRef}
|
|
411
|
+
className="flex-1 overflow-y-auto px-4 py-3"
|
|
412
|
+
>
|
|
413
|
+
{messages.length === 0 ? (
|
|
414
|
+
<AiChatEmptyState
|
|
415
|
+
title="Nothing yet"
|
|
416
|
+
description="Send a message to begin."
|
|
417
|
+
/>
|
|
418
|
+
) : (
|
|
419
|
+
<AiChatConversation
|
|
420
|
+
messages={messages}
|
|
421
|
+
renderMessage={(m) => (
|
|
422
|
+
<div className="rounded-md border border-border bg-card/60 p-3">
|
|
423
|
+
<Text size="xs" type="secondary">
|
|
424
|
+
{m.authorName} · {m.role}
|
|
425
|
+
</Text>
|
|
426
|
+
{m.parts.map((part, i) =>
|
|
427
|
+
part.type === 'text' ? (
|
|
428
|
+
<Text key={i} className="mt-1">
|
|
429
|
+
{part.content}
|
|
430
|
+
</Text>
|
|
431
|
+
) : null,
|
|
432
|
+
)}
|
|
433
|
+
</div>
|
|
434
|
+
)}
|
|
435
|
+
disableAutoScroll
|
|
436
|
+
/>
|
|
437
|
+
)}
|
|
438
|
+
<div ref={endRef} />
|
|
439
|
+
</div>
|
|
440
|
+
<div className="border-t border-border px-4 py-3">
|
|
441
|
+
<AiChatPromptInput
|
|
442
|
+
value={input}
|
|
443
|
+
onChange={setInput}
|
|
444
|
+
onSubmit={(values) => {
|
|
445
|
+
if (!values.text.trim()) return;
|
|
446
|
+
setMessages((prev) => [
|
|
447
|
+
...prev,
|
|
448
|
+
{
|
|
449
|
+
id: \`u-\${Date.now()}\`,
|
|
450
|
+
role: 'user',
|
|
451
|
+
authorName: 'You',
|
|
452
|
+
parts: [{ type: 'text', content: values.text }],
|
|
453
|
+
},
|
|
454
|
+
]);
|
|
455
|
+
setInput('');
|
|
456
|
+
}}
|
|
457
|
+
/>
|
|
458
|
+
</div>
|
|
459
|
+
</div>
|
|
460
|
+
);
|
|
461
|
+
}
|
|
462
|
+
`;function Se(e){let t={code:`code`,h4:`h4`,li:`li`,p:`p`,strong:`strong`,ul:`ul`,...e.components};return ye||$(`Examples`,!1),q||$(`Examples.Default`,!0),Y||$(`Examples.Empty`,!0),Z||$(`Examples.Headless`,!0),J||$(`Examples.Streaming`,!0),X||$(`Examples.WithSlots`,!0),(0,I.jsxs)(i,{title:`AI Chat`,description:`Framework-agnostic AI chat surface. Ties together prompt input, conversation, message renderer, queue, and the full composed/ai/* palette (reasoning, tool calls, attachments, artifacts, confirmations).`,layer:`features`,status:`ready`,sourcePath:`src/components/features/ai-chat`,children:[(0,I.jsxs)(s,{title:`Overview`,id:`overview`,children:[(0,I.jsxs)(t.p,{children:[(0,I.jsx)(t.code,{children:`AiChat`}),` is a controlled chat shell. The library does `,(0,I.jsx)(t.strong,{children:`not`}),` call any
|
|
463
|
+
LLM, fetch any data, or wire any router — every piece of state flows in
|
|
464
|
+
as a prop and every action exits through a callback. That is what makes
|
|
465
|
+
it portable across Inertia, Next.js, Remix, plain Vite, and friends.`]}),(0,I.jsx)(t.p,{children:`The consumer wires:`}),(0,I.jsxs)(t.ul,{children:[`
|
|
466
|
+
`,(0,I.jsxs)(t.li,{children:[(0,I.jsx)(t.code,{children:`messages`}),` — the controlled message list (you append on submit, you
|
|
467
|
+
flip `,(0,I.jsx)(t.code,{children:`pending`}),` off when the assistant turn completes).`]}),`
|
|
468
|
+
`,(0,I.jsxs)(t.li,{children:[(0,I.jsx)(t.code,{children:`inputValue`}),` / `,(0,I.jsx)(t.code,{children:`onInputChange`}),` — controlled prompt input.`]}),`
|
|
469
|
+
`,(0,I.jsxs)(t.li,{children:[(0,I.jsx)(t.code,{children:`onSubmit(values)`}),` — fires on Enter / send. Hook this to your model
|
|
470
|
+
endpoint, tRPC mutation, queue producer, etc.`]}),`
|
|
471
|
+
`,(0,I.jsxs)(t.li,{children:[(0,I.jsx)(t.code,{children:`onStop`}),` — fires when the user clicks the stop button while
|
|
472
|
+
`,(0,I.jsx)(t.code,{children:`streaming`}),` is true.`]}),`
|
|
473
|
+
`,(0,I.jsxs)(t.li,{children:[(0,I.jsx)(t.code,{children:`attachments`}),` + `,(0,I.jsx)(t.code,{children:`onAttach`}),` / `,(0,I.jsx)(t.code,{children:`onRemoveAttachment`}),` — staged composer
|
|
474
|
+
attachments. The library never touches storage.`]}),`
|
|
475
|
+
`,(0,I.jsxs)(t.li,{children:[(0,I.jsx)(t.code,{children:`queue`}),`, `,(0,I.jsx)(t.code,{children:`suggestions`}),`, `,(0,I.jsx)(t.code,{children:`onMessageRegenerate`}),`, `,(0,I.jsx)(t.code,{children:`onMessageCopy`}),` —
|
|
476
|
+
optional callbacks for the surrounding surfaces.`]}),`
|
|
477
|
+
`]})]}),(0,I.jsxs)(s,{title:`How to use`,id:`how-to-use`,children:[(0,I.jsxs)(t.p,{children:[`The canonical mount: controlled state, callback-driven submission, no
|
|
478
|
+
framework SDKs. Drop this in any consumer app and wire `,(0,I.jsx)(t.code,{children:`onSubmit`}),` to
|
|
479
|
+
whatever produces assistant messages.`]}),(0,I.jsx)(C,{language:`tsx`,code:`import { useState } from 'react';
|
|
480
|
+
import { Bot } from 'lucide-react';
|
|
481
|
+
import {
|
|
482
|
+
AiChat,
|
|
483
|
+
type AiChatMessage,
|
|
484
|
+
type AiChatSubmitValues,
|
|
485
|
+
} from '@/components/features/ai-chat';
|
|
486
|
+
|
|
487
|
+
export function MyAssistant() {
|
|
488
|
+
const [messages, setMessages] = useState<AiChatMessage[]>([]);
|
|
489
|
+
const [input, setInput] = useState('');
|
|
490
|
+
const [streaming, setStreaming] = useState(false);
|
|
491
|
+
|
|
492
|
+
async function onSubmit(values: AiChatSubmitValues) {
|
|
493
|
+
if (!values.text.trim()) return;
|
|
494
|
+
const userMsg: AiChatMessage = {
|
|
495
|
+
id: \`u-\${Date.now()}\`,
|
|
496
|
+
role: 'user',
|
|
497
|
+
authorName: 'You',
|
|
498
|
+
parts: [{ type: 'text', content: values.text }],
|
|
499
|
+
};
|
|
500
|
+
const placeholder: AiChatMessage = {
|
|
501
|
+
id: \`a-\${Date.now()}\`,
|
|
502
|
+
role: 'assistant',
|
|
503
|
+
pending: true,
|
|
504
|
+
parts: [],
|
|
505
|
+
};
|
|
506
|
+
setMessages((prev) => [...prev, userMsg, placeholder]);
|
|
507
|
+
setInput('');
|
|
508
|
+
setStreaming(true);
|
|
509
|
+
|
|
510
|
+
// Wire this to YOUR backend / model API.
|
|
511
|
+
const reply = await fetch('/api/chat', {
|
|
512
|
+
method: 'POST',
|
|
513
|
+
body: JSON.stringify({ text: values.text }),
|
|
514
|
+
}).then((r) => r.json());
|
|
515
|
+
|
|
516
|
+
setMessages((prev) =>
|
|
517
|
+
prev.map((m) =>
|
|
518
|
+
m.id === placeholder.id
|
|
519
|
+
? { ...m, pending: false, parts: [{ type: 'text', content: reply.text }] }
|
|
520
|
+
: m,
|
|
521
|
+
),
|
|
522
|
+
);
|
|
523
|
+
setStreaming(false);
|
|
524
|
+
}
|
|
525
|
+
|
|
526
|
+
return (
|
|
527
|
+
<AiChat
|
|
528
|
+
agent={{ name: 'Atlas', icon: Bot, tone: 'primary', status: 'idle' }}
|
|
529
|
+
messages={messages}
|
|
530
|
+
inputValue={input}
|
|
531
|
+
onInputChange={setInput}
|
|
532
|
+
onSubmit={onSubmit}
|
|
533
|
+
onStop={() => setStreaming(false)}
|
|
534
|
+
streaming={streaming}
|
|
535
|
+
/>
|
|
536
|
+
);
|
|
537
|
+
}`}),(0,I.jsxs)(t.p,{children:[(0,I.jsx)(t.strong,{children:`Slots.`}),` Every region is a slot via the `,(0,I.jsx)(t.code,{children:`slots`}),` prop: `,(0,I.jsx)(t.code,{children:`header`}),`,
|
|
538
|
+
`,(0,I.jsx)(t.code,{children:`intro`}),`, `,(0,I.jsx)(t.code,{children:`belowMessages`}),`, `,(0,I.jsx)(t.code,{children:`empty`}),`, `,(0,I.jsx)(t.code,{children:`queue`}),`, `,(0,I.jsx)(t.code,{children:`suggestions`}),`, `,(0,I.jsx)(t.code,{children:`input`}),`, plus
|
|
539
|
+
a `,(0,I.jsx)(t.code,{children:`renderMessage(message, ctx)`}),` render-prop for fully custom message
|
|
540
|
+
chrome. Anything you don't pass falls back to the library default.`]}),(0,I.jsxs)(t.p,{children:[(0,I.jsx)(t.strong,{children:`Strings.`}),` `,(0,I.jsx)(t.code,{children:`strings`}),` is a deep-partial of `,(0,I.jsx)(t.code,{children:`AiChatStrings`}),` covering
|
|
541
|
+
the conversation, prompt input, queue, suggestions, and per-message
|
|
542
|
+
copy (`,(0,I.jsx)(t.code,{children:`Copy`}),`, `,(0,I.jsx)(t.code,{children:`Regenerate`}),`, etc.). Map your i18n into it at the call
|
|
543
|
+
site — the library never reaches for a `,(0,I.jsx)(t.code,{children:`useI18n()`}),` hook.`]}),(0,I.jsxs)(t.p,{children:[(0,I.jsx)(t.strong,{children:`Headless mode.`}),` For a fully custom layout, build directly against
|
|
544
|
+
the partials (`,(0,I.jsx)(t.code,{children:`AiChatConversation`}),`, `,(0,I.jsx)(t.code,{children:`AiChatPromptInput`}),`,
|
|
545
|
+
`,(0,I.jsx)(t.code,{children:`AiChatEmptyState`}),`, …) and use the `,(0,I.jsx)(t.code,{children:`useAiChatScroll`}),` hook to keep the
|
|
546
|
+
auto-stick-to-bottom behaviour.`]})]}),(0,I.jsxs)(s,{title:`Examples`,id:`examples`,children:[(0,I.jsx)(T,{name:`Default`,source:Q,children:(0,I.jsx)(q,{})}),(0,I.jsx)(T,{name:`Streaming`,source:Q,children:(0,I.jsx)(J,{})}),(0,I.jsx)(T,{name:`Empty`,source:Q,children:(0,I.jsx)(Y,{})}),(0,I.jsx)(T,{name:`WithSlots`,source:Q,children:(0,I.jsx)(X,{})}),(0,I.jsx)(T,{name:`Headless`,source:Q,children:(0,I.jsx)(Z,{})})]}),(0,I.jsxs)(s,{title:`API`,id:`api`,children:[(0,I.jsx)(t.h4,{children:`AiChat`}),(0,I.jsx)(F,{component:`AiChat`}),(0,I.jsx)(t.h4,{children:`AiChatConversation`}),(0,I.jsx)(F,{component:`AiChatConversation`}),(0,I.jsx)(t.h4,{children:`AiChatMessage`}),(0,I.jsx)(F,{component:`AiChatMessage`}),(0,I.jsx)(t.h4,{children:`AiChatPromptInput`}),(0,I.jsx)(F,{component:`AiChatPromptInput`}),(0,I.jsx)(t.h4,{children:`AiChatEmptyState`}),(0,I.jsx)(F,{component:`AiChatEmptyState`}),(0,I.jsx)(t.h4,{children:`AiChatQueue`}),(0,I.jsx)(F,{component:`AiChatQueue`}),(0,I.jsx)(t.h4,{children:`AiChatSuggestionsRow`}),(0,I.jsx)(F,{component:`AiChatSuggestionsRow`}),(0,I.jsx)(t.h4,{children:`AiChatAttachmentsStrip`}),(0,I.jsx)(F,{component:`AiChatAttachmentsStrip`})]}),(0,I.jsx)(s,{title:`Notes`,id:`notes`,children:(0,I.jsxs)(t.ul,{children:[`
|
|
547
|
+
`,(0,I.jsxs)(t.li,{children:[(0,I.jsx)(t.strong,{children:`The library does NOT call any LLM.`}),` `,(0,I.jsx)(t.code,{children:`onSubmit`}),` is a callback —
|
|
548
|
+
hook it to your backend, your `,(0,I.jsx)(t.code,{children:`tRPC`}),` mutation, your worker queue,
|
|
549
|
+
whatever produces assistant messages. The library only renders.`]}),`
|
|
550
|
+
`,(0,I.jsxs)(t.li,{children:[(0,I.jsx)(t.strong,{children:`Messages are fully controlled.`}),` `,(0,I.jsx)(t.code,{children:`pending: true`}),` swaps the bubble
|
|
551
|
+
for the shimmer placeholder; flip it off and pass real `,(0,I.jsx)(t.code,{children:`parts`}),` when
|
|
552
|
+
the assistant turn lands.`]}),`
|
|
553
|
+
`,(0,I.jsxs)(t.li,{children:[(0,I.jsxs)(t.strong,{children:[`Use `,(0,I.jsx)(t.code,{children:`useAiChatScroll`}),` for headless layouts.`]}),` It exposes
|
|
554
|
+
`,(0,I.jsx)(t.code,{children:`containerRef`}),`, `,(0,I.jsx)(t.code,{children:`endRef`}),`, `,(0,I.jsx)(t.code,{children:`isAtBottom`}),`, and `,(0,I.jsx)(t.code,{children:`scrollToBottom`}),` so a
|
|
555
|
+
custom shell keeps the same auto-stick-to-bottom behaviour as
|
|
556
|
+
`,(0,I.jsx)(t.code,{children:`<AiChat>`}),`.`]}),`
|
|
557
|
+
`,(0,I.jsxs)(t.li,{children:[(0,I.jsxs)(t.strong,{children:[`Streaming UI is driven by the `,(0,I.jsx)(t.code,{children:`streaming`}),` prop`]}),`, not by message
|
|
558
|
+
state — toggle it around your network call so the prompt input
|
|
559
|
+
shows the stop button.`]}),`
|
|
560
|
+
`,(0,I.jsxs)(t.li,{children:[(0,I.jsx)(t.strong,{children:`Attachments are staged client-side.`}),` The library does not upload
|
|
561
|
+
anything; `,(0,I.jsx)(t.code,{children:`onAttach`}),` is your hook to open a file picker (or drop
|
|
562
|
+
zone) and update the controlled `,(0,I.jsx)(t.code,{children:`attachments`}),` array.`]}),`
|
|
563
|
+
`,(0,I.jsxs)(t.li,{children:[(0,I.jsx)(t.strong,{children:`Every partial is exported.`}),` If the default layout doesn't fit,
|
|
564
|
+
compose `,(0,I.jsx)(t.code,{children:`AiChatConversation`}),` / `,(0,I.jsx)(t.code,{children:`AiChatPromptInput`}),` /
|
|
565
|
+
`,(0,I.jsx)(t.code,{children:`AiChatEmptyState`}),` / `,(0,I.jsx)(t.code,{children:`AiChatQueue`}),` / `,(0,I.jsx)(t.code,{children:`AiChatSuggestionsRow`}),` /
|
|
566
|
+
`,(0,I.jsx)(t.code,{children:`AiChatAttachmentsStrip`}),` directly — same data shape, full control
|
|
567
|
+
over the chrome.`]}),`
|
|
568
|
+
`]})})]})}function Ce(e={}){let{wrapper:t}=e.components||{};return t?(0,I.jsx)(t,{...e,children:(0,I.jsx)(Se,{...e})}):Se(e)}function $(e,t){throw Error(`Expected `+(t?`component`:`object`)+" `"+e+"` to be defined: you likely forgot to import, pass, or provide it.")}export{Ce as default};
|