admin-ui-starter-kit 0.6.4 → 0.6.5
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
- package/dist/_shared/auth-BZY91F5_.cjs +2 -0
- package/dist/_shared/auth-BZY91F5_.cjs.map +1 -0
- package/dist/_shared/auth-DcotjEbY.js +643 -0
- package/dist/_shared/auth-DcotjEbY.js.map +1 -0
- package/dist/_shared/cards-C1ythc0Q.js +354 -0
- package/dist/_shared/cards-C1ythc0Q.js.map +1 -0
- package/dist/_shared/cards-GSYfJ-oX.cjs +2 -0
- package/dist/_shared/cards-GSYfJ-oX.cjs.map +1 -0
- package/dist/_shared/comments-CmljtbAW.js +952 -0
- package/dist/_shared/comments-CmljtbAW.js.map +1 -0
- package/dist/_shared/comments-ColUq7eh.cjs +2 -0
- package/dist/_shared/comments-ColUq7eh.cjs.map +1 -0
- package/dist/_shared/containers-CB7zaAvN.cjs +2 -0
- package/dist/_shared/containers-CB7zaAvN.cjs.map +1 -0
- package/dist/_shared/containers-CLBmhGfs.js +48 -0
- package/dist/_shared/containers-CLBmhGfs.js.map +1 -0
- package/dist/_shared/data-display-BTsCY7A5.js +1873 -0
- package/dist/_shared/data-display-BTsCY7A5.js.map +1 -0
- package/dist/_shared/data-display-BdGQMXit.cjs +2 -0
- package/dist/_shared/data-display-BdGQMXit.cjs.map +1 -0
- package/dist/_shared/forms-CEE1te78.cjs +2 -0
- package/dist/_shared/forms-CEE1te78.cjs.map +1 -0
- package/dist/_shared/forms-CQoGvG7q.js +3533 -0
- package/dist/_shared/forms-CQoGvG7q.js.map +1 -0
- package/dist/_shared/header-B9IPDQRW.js +447 -0
- package/dist/_shared/header-B9IPDQRW.js.map +1 -0
- package/dist/_shared/header-C_1x4-rd.cjs +2 -0
- package/dist/_shared/header-C_1x4-rd.cjs.map +1 -0
- package/dist/_shared/hooks---vunGQ6.js +95 -0
- package/dist/_shared/hooks---vunGQ6.js.map +1 -0
- package/dist/_shared/hooks-CjVzmgvY.cjs +2 -0
- package/dist/_shared/hooks-CjVzmgvY.cjs.map +1 -0
- package/dist/_shared/layout-BXrQqUKq.js +262 -0
- package/dist/_shared/layout-BXrQqUKq.js.map +1 -0
- package/dist/_shared/layout-DWicdsPI.cjs +2 -0
- package/dist/_shared/layout-DWicdsPI.cjs.map +1 -0
- package/dist/_shared/layout.types-CXFAjJCj.cjs +2 -0
- package/dist/_shared/layout.types-CXFAjJCj.cjs.map +1 -0
- package/dist/_shared/layout.types-ip8BYRa7.js +28 -0
- package/dist/_shared/layout.types-ip8BYRa7.js.map +1 -0
- package/dist/_shared/settings-Bfr6PgSi.cjs +2 -0
- package/dist/_shared/settings-Bfr6PgSi.cjs.map +1 -0
- package/dist/_shared/settings-CrPaYr4A.js +143 -0
- package/dist/_shared/settings-CrPaYr4A.js.map +1 -0
- package/dist/_shared/sidebar-CDOLD8fN.js +548 -0
- package/dist/_shared/sidebar-CDOLD8fN.js.map +1 -0
- package/dist/_shared/sidebar-DcsxeNml.cjs +2 -0
- package/dist/_shared/sidebar-DcsxeNml.cjs.map +1 -0
- package/dist/_shared/workspace-C1twu23r.cjs +2 -0
- package/dist/_shared/workspace-C1twu23r.cjs.map +1 -0
- package/dist/_shared/workspace-CkOZLdcN.js +357 -0
- package/dist/_shared/workspace-CkOZLdcN.js.map +1 -0
- package/dist/components/base/cards/index.cjs +1 -1
- package/dist/components/base/cards/index.js +1 -1
- package/dist/components/base/cards/partials/card-primitives.d.ts.map +1 -1
- package/dist/components/base/forms/index.cjs +1 -1
- package/dist/components/base/forms/index.js +1 -1
- package/dist/components/composed/admin/index.cjs +1 -1
- package/dist/components/composed/admin/index.js +2 -2
- package/dist/components/composed/ai/index.cjs +1 -1
- package/dist/components/composed/ai/index.js +2 -2
- package/dist/components/composed/analytics/index.cjs +1 -1
- package/dist/components/composed/analytics/index.js +1 -1
- package/dist/components/composed/cards/index.cjs +1 -1
- package/dist/components/composed/cards/index.js +2 -2
- package/dist/components/composed/commerce/index.cjs +1 -1
- package/dist/components/composed/commerce/index.js +2 -2
- 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/composed/data-display/metadata/metadata-list.d.ts.map +1 -1
- package/dist/components/composed/navigation/index.cjs +1 -1
- package/dist/components/composed/navigation/index.js +1 -1
- package/dist/components/composed/timelines/index.cjs +1 -1
- package/dist/components/composed/timelines/index.js +1 -1
- package/dist/components/features/activities/index.cjs +1 -1
- package/dist/components/features/activities/index.js +1 -1
- package/dist/components/features/card/index.cjs +1 -1
- package/dist/components/features/card/index.js +1 -1
- package/dist/components/features/comments/index.cjs +1 -1
- package/dist/components/features/comments/index.js +1 -1
- package/dist/components/features/event-log/index.cjs +1 -1
- package/dist/components/features/event-log/index.js +2 -2
- package/dist/components/features/media-library/index.cjs +1 -1
- package/dist/components/features/media-library/index.js +1 -1
- package/dist/components/features/products/index.cjs +1 -1
- package/dist/components/features/products/index.js +3 -3
- package/dist/components/features/resource/index.cjs +1 -1
- package/dist/components/features/resource/index.js +2 -2
- package/dist/components/features/schema-form/index.cjs +1 -1
- package/dist/components/features/schema-form/index.js +2 -2
- package/dist/components/layout/auth/index.cjs +1 -1
- package/dist/components/layout/auth/index.js +1 -1
- package/dist/components/layout/containers/containers.types.d.ts +2 -2
- package/dist/components/layout/containers/containers.types.d.ts.map +1 -1
- package/dist/components/layout/containers/content-container.d.ts.map +1 -1
- package/dist/components/layout/containers/index.cjs +1 -1
- package/dist/components/layout/containers/index.js +1 -2
- package/dist/components/layout/header/index.cjs +1 -1
- package/dist/components/layout/header/index.js +1 -1
- package/dist/components/layout/hooks/index.cjs +1 -1
- package/dist/components/layout/hooks/index.js +1 -1
- package/dist/components/layout/index.cjs +1 -1
- package/dist/components/layout/index.js +10 -11
- package/dist/components/layout/layout.types.d.ts.map +1 -1
- package/dist/components/layout/page/index.cjs +1 -1
- package/dist/components/layout/page/index.js +2 -2
- package/dist/components/layout/settings/index.cjs +1 -1
- package/dist/components/layout/settings/index.js +1 -1
- package/dist/components/layout/sidebar/components/sidebar-grouped-navigation.d.ts.map +1 -1
- package/dist/components/layout/sidebar/index.cjs +1 -1
- package/dist/components/layout/sidebar/index.js +2 -2
- package/dist/components/layout/workspace/index.cjs +1 -1
- package/dist/components/layout/workspace/index.js +1 -1
- package/dist/showcase/assets/AreaChart-WJREayr9.js +6 -0
- package/dist/showcase/assets/CompositeItem-CY3XmFuI.js +1 -0
- package/dist/showcase/assets/CompositeRoot-BPMF0t1F.js +1 -0
- package/dist/showcase/assets/DialogTrigger-BzaF3YN8.js +1 -0
- package/dist/showcase/assets/LabelableContext-LKvvFFnV.js +1 -0
- package/dist/showcase/assets/PreviewLayout-B0n7l00P.js +1 -0
- package/dist/showcase/assets/RadioGroup-VBtGFETg.js +1 -0
- package/dist/showcase/assets/ScrollAreaCorner-BimGwdGs.js +1 -0
- package/dist/showcase/assets/Separator-BfKe0YiY.js +1 -0
- package/dist/showcase/assets/ToolbarRootContext-Cscyv1PN.js +1 -0
- package/dist/showcase/assets/accordion-BEN0VkL4.js +171 -0
- package/dist/showcase/assets/accordion-variants-QFG3H38z.js +1 -0
- package/dist/showcase/assets/action-menu-Bfw1tFqM.js +1 -0
- package/dist/showcase/assets/actions-CFpHs5IC.js +310 -0
- package/dist/showcase/assets/activities-CDxlaghU.js +500 -0
- package/dist/showcase/assets/activities-feed-card-BO1kcjRK.js +1 -0
- package/dist/showcase/assets/admin-DFpHXeuv.js +140 -0
- package/dist/showcase/assets/ai-DyO6VqQP.js +207 -0
- package/dist/showcase/assets/ai-artifact-MVA3ikv6.js +2 -0
- package/dist/showcase/assets/ai-chat-D-xcp6Jf.js +568 -0
- package/dist/showcase/assets/ai-elements-DlFqIOYp.js +387 -0
- package/dist/showcase/assets/ai-tool-call-DedG9TdK.js +1 -0
- package/dist/showcase/assets/alert-CmRK2lOe.js +1 -0
- package/dist/showcase/assets/alert-DCIVryEp.js +62 -0
- package/dist/showcase/assets/alert-DDP3Ktic.js +93 -0
- package/dist/showcase/assets/api-key-list-CWa997YX.js +1 -0
- package/dist/showcase/assets/api-key-list-mTPebHF3.js +73 -0
- package/dist/showcase/assets/app-sidebar-Cnfk9z5K.js +1 -0
- package/dist/showcase/assets/arrow-down-CCYWFimd.js +1 -0
- package/dist/showcase/assets/arrow-left-CrYjfZJ0.js +1 -0
- package/dist/showcase/assets/arrow-right-eLxbBrdm.js +1 -0
- package/dist/showcase/assets/arrow-up-kA33fcPv.js +1 -0
- package/dist/showcase/assets/arrow-up-right-BSWGQVDB.js +1 -0
- package/dist/showcase/assets/avatar-BDGhB3aA.js +57 -0
- package/dist/showcase/assets/avatar-CLBQvnYG.js +1 -0
- package/dist/showcase/assets/avatar-WUMW3Qjo.js +1 -0
- package/dist/showcase/assets/avatar-cKSNuTzf.js +67 -0
- package/dist/showcase/assets/badge--mqVg8Ry.js +31 -0
- package/dist/showcase/assets/badge-check-D7YjWqnm.js +1 -0
- package/dist/showcase/assets/bell-6YyocFK6.js +1 -0
- package/dist/showcase/assets/bot-BC4pGAB3.js +1 -0
- package/dist/showcase/assets/box-CPGIu4Nv.js +1 -0
- package/dist/showcase/assets/braces-9jywZtTA.js +1 -0
- package/dist/showcase/assets/brain-wf_S427C.js +1 -0
- package/dist/showcase/assets/brand-78lhbKSW.js +36 -0
- package/dist/showcase/assets/breadcrumb-6XHObtqO.js +1 -0
- package/dist/showcase/assets/breadcrumb-BVrrS53_.js +52 -0
- package/dist/showcase/assets/breadcrumbs-BwC3Iaae.js +1 -0
- package/dist/showcase/assets/briefcase-BViWYew9.js +1 -0
- package/dist/showcase/assets/building-2-CwR3gV1I.js +1 -0
- package/dist/showcase/assets/button-BWwsy37B.js +44 -0
- package/dist/showcase/assets/button-group-BTiMRQIO.js +1 -0
- package/dist/showcase/assets/buttons-D9pH8hPs.js +272 -0
- package/dist/showcase/assets/calendar-Bzl2i1lu.js +1 -0
- package/dist/showcase/assets/calendar-CNMlC7Fn.js +16 -0
- package/dist/showcase/assets/calendar-D5NdEmaD.js +1 -0
- package/dist/showcase/assets/calendar-days-j8QDBUc5.js +1 -0
- package/dist/showcase/assets/camera-Cwb84N8a.js +1 -0
- package/dist/showcase/assets/card-CX3vQ2Te.js +1 -0
- package/dist/showcase/assets/card-FLJkfdKP.js +188 -0
- package/dist/showcase/assets/card-primitives-C2s13Uvp.js +1 -0
- package/dist/showcase/assets/card-radio-group-BP27dErL.js +1 -0
- package/dist/showcase/assets/cards-DcdxRM9W.js +354 -0
- package/dist/showcase/assets/carousel-CTKyiHD2.js +449 -0
- package/dist/showcase/assets/cell-renderers-ouSypXTE.js +1 -0
- package/dist/showcase/assets/chart-CMsMyCah.js +358 -0
- package/dist/showcase/assets/chart-column-BrwpEFzy.js +1 -0
- package/dist/showcase/assets/checkbox-4qgEfnjv.js +1 -0
- package/dist/showcase/assets/checkbox-ratLYBAF.js +1 -0
- package/dist/showcase/assets/chevron-down-BInaIfd1.js +1 -0
- package/dist/showcase/assets/chevron-left-Bjy3FJ_M.js +1 -0
- package/dist/showcase/assets/chevron-up-Ufl6UEyV.js +1 -0
- package/dist/showcase/assets/chevrons-up-down-CrOH-P5z.js +1 -0
- package/dist/showcase/assets/circle-G0dEx2Ay.js +1 -0
- package/dist/showcase/assets/circle-alert-CiibDCe8.js +1 -0
- package/dist/showcase/assets/circle-check-Bqm54c03.js +1 -0
- package/dist/showcase/assets/circle-check-big-BfiY_qy_.js +1 -0
- package/dist/showcase/assets/circle-dot-VNm7CEgH.js +1 -0
- package/dist/showcase/assets/circle-question-mark-mM7PKy4G.js +1 -0
- package/dist/showcase/assets/circle-x-2tzzp_vB.js +1 -0
- package/dist/showcase/assets/clock-3-CfdZnMP2.js +1 -0
- package/dist/showcase/assets/clock-ByB7C11p.js +1 -0
- package/dist/showcase/assets/code-xml-D2fN-BaU.js +1 -0
- package/dist/showcase/assets/collapsible-B2lI_uVI.js +1 -0
- package/dist/showcase/assets/collapsible-Bs5YFx-M.js +27 -0
- package/dist/showcase/assets/combobox-BqNSwFaM.js +685 -0
- package/dist/showcase/assets/command-Dcbh_YP-.js +1 -0
- package/dist/showcase/assets/command-Mb30xkwq.js +1 -0
- package/dist/showcase/assets/comment-composer-DqTw0zIM.js +1 -0
- package/dist/showcase/assets/comment-item-DbQAZ3yP.js +1 -0
- package/dist/showcase/assets/comments-CGMOOi7k.js +357 -0
- package/dist/showcase/assets/commerce-bVpLHwpS.js +267 -0
- package/dist/showcase/assets/composite-CTpmYme_.js +1 -0
- package/dist/showcase/assets/contact-card-nuS10UKK.js +65 -0
- package/dist/showcase/assets/content-container-NexBp0FV.js +1 -0
- package/dist/showcase/assets/copyable-CNltkC2A.js +1 -0
- package/dist/showcase/assets/copyable-qr6--oJx.js +96 -0
- package/dist/showcase/assets/course-card-0kkl37FX.js +77 -0
- package/dist/showcase/assets/cpu-DSD9h0l5.js +1 -0
- package/dist/showcase/assets/credit-card-CN0E6FU8.js +1 -0
- package/dist/showcase/assets/css-variables-CzmmLWxt.js +1190 -0
- package/dist/showcase/assets/currency-BtofP745.js +149 -0
- package/dist/showcase/assets/dark-surfaces-BU7kfTIi.js +90 -0
- package/dist/showcase/assets/data-view-3W7_KBli.js +124 -0
- package/dist/showcase/assets/data-view-snL5QtHe.js +4 -0
- package/dist/showcase/assets/database-BarEYzaF.js +1 -0
- package/dist/showcase/assets/date-block-dTt9Rcfd.js +1 -0
- package/dist/showcase/assets/date-picker-BKzZeQGc.js +1 -0
- package/dist/showcase/assets/date-pickers-CYERVYRo.js +73 -0
- package/dist/showcase/assets/dense-info-hnKZfRnQ.js +106 -0
- package/dist/showcase/assets/design-system-consistency-D6qngflS.js +264 -0
- package/dist/showcase/assets/dialog-mO0FpHmT.js +1 -0
- package/dist/showcase/assets/dialog-xbuhPXmf.js +1 -0
- package/dist/showcase/assets/display-utilities-C4IflxoK.js +267 -0
- package/dist/showcase/assets/dist-BFChHTWK.js +45 -0
- package/dist/showcase/assets/dist-BkVfs5PY.js +1 -0
- package/dist/showcase/assets/dollar-sign-BES-Y4q8.js +1 -0
- package/dist/showcase/assets/download-CuEg-4DT.js +1 -0
- package/dist/showcase/assets/dropdown-menu-C4Fcfk9z.js +1 -0
- package/dist/showcase/assets/dropzone-CrJ_k9fJ.js +1 -0
- package/dist/showcase/assets/earth-Cmx-Axig.js +1 -0
- package/dist/showcase/assets/ellipsis-Co7iTzp_.js +1 -0
- package/dist/showcase/assets/ellipsis-vertical-DMYJFiqQ.js +1 -0
- package/dist/showcase/assets/empty-Dw4ozyll.js +1 -0
- package/dist/showcase/assets/empty-item-DQwAsl0J.js +49 -0
- package/dist/showcase/assets/empty-state-BKvbnAy1.js +1 -0
- package/dist/showcase/assets/empty-state-Dv6f2fmP.js +190 -0
- package/dist/showcase/assets/enhanced-activities-Ctmivg46.js +357 -0
- package/dist/showcase/assets/enhanced-combobox-D0AsPZ-b.js +1 -0
- package/dist/showcase/assets/esm-oZ6qcNoa.js +2 -0
- package/dist/showcase/assets/event-calendar-ChXdeehr.js +138 -0
- package/dist/showcase/assets/event-log-DeOCb2tT.js +330 -0
- package/dist/showcase/assets/example-CDvNeHNP.js +1 -0
- package/dist/showcase/assets/external-link-BaiCqIx3.js +1 -0
- package/dist/showcase/assets/eye-zG-fqYfd.js +1 -0
- package/dist/showcase/assets/feature-announcement-C2XGWNgI.js +34 -0
- package/dist/showcase/assets/file-sAbDfDuO.js +1 -0
- package/dist/showcase/assets/file-text-Boa9IOND.js +1 -0
- package/dist/showcase/assets/filter-layout-tZmZz-2B.js +1 -0
- package/dist/showcase/assets/filters-D8gEkDAE.js +139 -0
- package/dist/showcase/assets/flag-Cu20rcE4.js +1 -0
- package/dist/showcase/assets/folder-open-Cuk6KKLi.js +1 -0
- package/dist/showcase/assets/form-field-D8sL8tat.js +1 -0
- package/dist/showcase/assets/format-CaRklI--.js +1 -0
- package/dist/showcase/assets/forms-CNk2oX65.js +915 -0
- package/dist/showcase/assets/funnel-B2kBprKZ.js +1 -0
- package/dist/showcase/assets/generic-oWYKMvId.js +1 -0
- package/dist/showcase/assets/getPseudoElementBounds-GjucWEcD.js +1 -0
- package/dist/showcase/assets/gift-C_D_-5GL.js +1 -0
- package/dist/showcase/assets/giftcard-cards-B4DDGzdi.js +85 -0
- package/dist/showcase/assets/git-branch-DlTTLnjW.js +1 -0
- package/dist/showcase/assets/global-search-BjHAfaqS.js +215 -0
- package/dist/showcase/assets/global-search-hKQWHfrf.js +1 -0
- package/dist/showcase/assets/globe-D-gH7XQ2.js +1 -0
- package/dist/showcase/assets/gradient-card-jVxEisUP.js +58 -0
- package/dist/showcase/assets/hash-DySqEhph.js +1 -0
- package/dist/showcase/assets/header-B8hHkAVl.js +1 -0
- package/dist/showcase/assets/header-notifications-s180jNb1.js +1 -0
- package/dist/showcase/assets/heart-DDFCk8Tb.js +1 -0
- package/dist/showcase/assets/hooks-0A_FzYrt.js +220 -0
- package/dist/showcase/assets/house-BqE1X-Wf.js +1 -0
- package/dist/showcase/assets/icon-badge-CyiMjD7j.js +37 -0
- package/dist/showcase/assets/icon-badge-fJVhEHym.js +1 -0
- package/dist/showcase/assets/image-DCtwKHqe.js +1 -0
- package/dist/showcase/assets/inbox-DZA-pAGB.js +1 -0
- package/dist/showcase/assets/index-B37z19z3.js +10 -0
- package/dist/showcase/assets/index-CIsKgiSF.css +2 -0
- package/dist/showcase/assets/inertValue-SPYMBsOM.js +1 -0
- package/dist/showcase/assets/info-DrfDr3GT.js +1 -0
- package/dist/showcase/assets/inline-stat-BVJNx4xR.js +1 -0
- package/dist/showcase/assets/inline-stat-C3cWbSUK.js +15 -0
- package/dist/showcase/assets/input-CKTTGrnR.js +1 -0
- package/dist/showcase/assets/input-UHuWYPMF.js +1 -0
- package/dist/showcase/assets/input-group-BR_lU__a.js +1 -0
- package/dist/showcase/assets/input-group-iZaLbsTP.js +47 -0
- package/dist/showcase/assets/inputs-C7j8Xivm.js +155 -0
- package/dist/showcase/assets/installation-DYnTwaPR.js +134 -0
- package/dist/showcase/assets/invoice-header-D_0KvXQe.js +36 -0
- package/dist/showcase/assets/invoice-items-jcNb-sST.js +36 -0
- package/dist/showcase/assets/invoice-mini-DrZAbjPq.js +14 -0
- package/dist/showcase/assets/invoice-table-DlAw0U4U.js +30 -0
- package/dist/showcase/assets/isSameDay-Cl6v_syG.js +1 -0
- package/dist/showcase/assets/isToday-BBoFjSnJ.js +1 -0
- package/dist/showcase/assets/italic-j2U8krYa.js +1 -0
- package/dist/showcase/assets/item-B2WoC1SD.js +139 -0
- package/dist/showcase/assets/item-BMJ5hfT5.js +1 -0
- package/dist/showcase/assets/item-C_5-EHNK.js +1 -0
- package/dist/showcase/assets/kanban-Cv64Szxq.js +188 -0
- package/dist/showcase/assets/key-round-CORDYqE2.js +1 -0
- package/dist/showcase/assets/label-B0UjYqfw.js +1 -0
- package/dist/showcase/assets/languages-Njdo5y8i.js +1 -0
- package/dist/showcase/assets/layers-Dyew-8IP.js +1 -0
- package/dist/showcase/assets/layout-app-shell-DEZt0d84.js +608 -0
- package/dist/showcase/assets/layout-auth-BT84haSd.js +790 -0
- package/dist/showcase/assets/layout-containers-D6SP4vRB.js +101 -0
- package/dist/showcase/assets/layout-header-kLYjJnHz.js +203 -0
- package/dist/showcase/assets/layout-page-CmS4d8jw.js +314 -0
- package/dist/showcase/assets/layout-primitives-BW858Ymj.js +34 -0
- package/dist/showcase/assets/layout-sidebar-eIDEoyzV.js +224 -0
- package/dist/showcase/assets/layout-users-HyZHQIov.js +117 -0
- package/dist/showcase/assets/layout-workspace-BrDwVUvn.js +191 -0
- package/dist/showcase/assets/lib-Dhty05ZR.js +1 -0
- package/dist/showcase/assets/list-checks-CcWjdDq8.js +1 -0
- package/dist/showcase/assets/lock-CwH3bXx5.js +1 -0
- package/dist/showcase/assets/lock-keyhole-BdBxeIkW.js +1 -0
- package/dist/showcase/assets/mail-Cn94c8yp.js +1 -0
- package/dist/showcase/assets/mail-check-D-q_vPxD.js +1 -0
- package/dist/showcase/assets/map-BfUZMScw.js +124 -0
- package/dist/showcase/assets/map-pin-BZB9GUXP.js +1 -0
- package/dist/showcase/assets/media-library-DguE2q94.js +699 -0
- package/dist/showcase/assets/mention-inline-suggestions-CyGplHOl.js +1 -0
- package/dist/showcase/assets/mentions-lmr_XmfN.js +138 -0
- package/dist/showcase/assets/menus-D0qYbzKk.js +171 -0
- package/dist/showcase/assets/message-square-7VpiUwcS.js +1 -0
- package/dist/showcase/assets/metadata-list-B8O2ljIS.js +1 -0
- package/dist/showcase/assets/metadata-list-BcYg9Ru3.js +286 -0
- package/dist/showcase/assets/metric-HzQnjCpO.js +1 -0
- package/dist/showcase/assets/metric-bar-Fr1TDnSu.js +1 -0
- package/dist/showcase/assets/metric-grid-CM-P894v.js +1 -0
- package/dist/showcase/assets/metric-trend-chip-DqYH_U8e.js +1 -0
- package/dist/showcase/assets/metrics-analytics-bar-DKRLzyXq.js +44 -0
- package/dist/showcase/assets/metrics-analytics-cards-qMbAYBbk.js +50 -0
- package/dist/showcase/assets/metrics-comparison-GSWVebL_.js +76 -0
- package/dist/showcase/assets/metrics-heatmap-Fj5QZoO3.js +27 -0
- package/dist/showcase/assets/metrics-inline-badge-BuyhiYDl.js +17 -0
- package/dist/showcase/assets/metrics-kpi-row-xNn4bjZc.js +31 -0
- package/dist/showcase/assets/metrics-micro-grid-W_ZYCffp.js +42 -0
- package/dist/showcase/assets/metrics-overview-D-km110k.js +192 -0
- package/dist/showcase/assets/metrics-stat-cards-odVtufFY.js +54 -0
- package/dist/showcase/assets/minus-DZsXg5PW.js +1 -0
- package/dist/showcase/assets/money-display-C7Hp2pT3.js +1 -0
- package/dist/showcase/assets/month-year-picker-Dnr4J0mO.js +1 -0
- package/dist/showcase/assets/navigation-0nrtBP5O.js +90 -0
- package/dist/showcase/assets/navigation-BaWNq9oa.js +231 -0
- package/dist/showcase/assets/navigation-extras-B22W1Vkk.js +43 -0
- package/dist/showcase/assets/onboarding-checklist-BFj7rmdZ.js +119 -0
- package/dist/showcase/assets/overflow-tab-bar-D_rltswa.js +1 -0
- package/dist/showcase/assets/overlays-CNfiB-zF.js +408 -0
- package/dist/showcase/assets/overlays-CuxuFGC8.js +159 -0
- package/dist/showcase/assets/overview-CBmdAWO6.js +184 -0
- package/dist/showcase/assets/package-BwwfLMWb.js +1 -0
- package/dist/showcase/assets/package-check-BepTKJLy.js +1 -0
- package/dist/showcase/assets/page-_JDFUWqe.js +1 -0
- package/dist/showcase/assets/page-action-button-Cf34I-B2.js +1 -0
- package/dist/showcase/assets/page-header-pdHFvyTo.js +1 -0
- package/dist/showcase/assets/pagination-Db1WJvjK.js +42 -0
- package/dist/showcase/assets/pagination-s8_MGk9D.js +1 -0
- package/dist/showcase/assets/paperclip-B9HQ47_2.js +1 -0
- package/dist/showcase/assets/password-input-D-eZWMGX.js +1 -0
- package/dist/showcase/assets/pencil-Dm53P6Db.js +1 -0
- package/dist/showcase/assets/phone-a4Ja9xAp.js +1 -0
- package/dist/showcase/assets/plus-DbOlx2x0.js +1 -0
- package/dist/showcase/assets/popover-B8qrRgt3.js +1 -0
- package/dist/showcase/assets/popover-Bm5wETUP.js +1 -0
- package/dist/showcase/assets/popover-menu-EH4P-BuI.js +1 -0
- package/dist/showcase/assets/products-n6VBSMDh.js +423 -0
- package/dist/showcase/assets/progress-D9r6PSCF.js +1 -0
- package/dist/showcase/assets/progress-DVnMcpeq.js +18 -0
- package/dist/showcase/assets/props-table-udnF7Z46.js +1 -0
- package/dist/showcase/assets/quote-qVQF4JC7.js +1 -0
- package/dist/showcase/assets/receipt-DaC4l-Mr.js +1 -0
- package/dist/showcase/assets/receipt-text-BnwhWHdU.js +1 -0
- package/dist/showcase/assets/refinement-guide-zBbAE-vw.js +189 -0
- package/dist/showcase/assets/refresh-cw-CX6ghqEe.js +1 -0
- package/dist/showcase/assets/resolveValueLabel-Cjbd_80A.js +1 -0
- package/dist/showcase/assets/resource-D1fXD_Pt.js +139 -0
- package/dist/showcase/assets/resource-i2YV9aHL.js +1 -0
- package/dist/showcase/assets/resource-selector-card-CdQEPr9U.js +43 -0
- package/dist/showcase/assets/rich-text-editor-DJ2i03XV.js +143 -0
- package/dist/showcase/assets/rich-text-editor-Wh8r117d.js +124 -0
- package/dist/showcase/assets/rotate-ccw-2_FhUcdG.js +1 -0
- package/dist/showcase/assets/route-EGSdKgEp.js +1 -0
- package/dist/showcase/assets/save-nXKvyYEx.js +1 -0
- package/dist/showcase/assets/schema-form-D_9UkVBe.js +327 -0
- package/dist/showcase/assets/scroll-area-CB7X4JqZ.js +1 -0
- package/dist/showcase/assets/scroll-area-DCHN9iYj.js +32 -0
- package/dist/showcase/assets/section-C2ovQgbv.js +1 -0
- package/dist/showcase/assets/select-BTOraQSw.js +1 -0
- package/dist/showcase/assets/select-CE0BbUs7.js +1 -0
- package/dist/showcase/assets/send-CI0r12bX.js +1 -0
- package/dist/showcase/assets/separator-CmGfh7lI.js +1 -0
- package/dist/showcase/assets/separator-PhQTNRIB.js +28 -0
- package/dist/showcase/assets/settings-2-qkVb0lyz.js +1 -0
- package/dist/showcase/assets/settings-YXjlZ9zs.js +1 -0
- package/dist/showcase/assets/sheet-CFDUB2H1.js +1 -0
- package/dist/showcase/assets/shield-Dr_UeG6H.js +1 -0
- package/dist/showcase/assets/shield-alert-7rAVXg-K.js +1 -0
- package/dist/showcase/assets/shield-check-BbzHL-nM.js +1 -0
- package/dist/showcase/assets/shopping-bag-DeprN0fB.js +1 -0
- package/dist/showcase/assets/showcase-BU6Fvpg_.js +132 -0
- package/dist/showcase/assets/sidebar-CudnhnWN.js +1 -0
- package/dist/showcase/assets/sidebar.context-CZaDhRhh.js +1 -0
- package/dist/showcase/assets/skeleton-DD6VPVrv.js +1 -0
- package/dist/showcase/assets/skeleton-Dc5LvW7E.js +29 -0
- package/dist/showcase/assets/slider-BxvP9nxk.js +1 -0
- package/dist/showcase/assets/smart-card-B0Llbpiy.js +1 -0
- package/dist/showcase/assets/sonner-mszFoDWT.js +22 -0
- package/dist/showcase/assets/sortable.esm-J5bJPtH9.js +5 -0
- package/dist/showcase/assets/sparkles-CQSdl3Gw.js +1 -0
- package/dist/showcase/assets/spinner-BSxBn2qs.js +49 -0
- package/dist/showcase/assets/spinner-DJxoGJtq.js +30 -0
- package/dist/showcase/assets/spinner-DihTCcve.js +1 -0
- package/dist/showcase/assets/square-pen-CGMSA_p6.js +1 -0
- package/dist/showcase/assets/stacked-avatars-Ct8B4doW.js +1 -0
- package/dist/showcase/assets/star-DFlmmJdh.js +1 -0
- package/dist/showcase/assets/startOfDay-BedffeNt.js +1 -0
- package/dist/showcase/assets/styles-jR6uS97D.js +1 -0
- package/dist/showcase/assets/suggestions-DnjJ-U9n.js +126 -0
- package/dist/showcase/assets/switch-Dkojf4Yd.js +1 -0
- package/dist/showcase/assets/switch-bTb6CSLr.js +1 -0
- package/dist/showcase/assets/sync-rk8eFwoJ.js +124 -0
- package/dist/showcase/assets/table-4qIerTVI.js +686 -0
- package/dist/showcase/assets/table-BjMmmYd7.js +1 -0
- package/dist/showcase/assets/table-actions-DqofOI1V.js +1 -0
- package/dist/showcase/assets/tabs-BV6mMsfk.js +19 -0
- package/dist/showcase/assets/tabs-u2fkHRw8.js +1 -0
- package/dist/showcase/assets/tags-input-Cu_UwlwT.js +1 -0
- package/dist/showcase/assets/text-button-Fyy21evq.js +1 -0
- package/dist/showcase/assets/text-link-WRyY3ZZo.js +1 -0
- package/dist/showcase/assets/textarea-BbCxWNzV.js +1 -0
- package/dist/showcase/assets/textarea-CtD7JQsv.js +1 -0
- package/dist/showcase/assets/timelines-BBPQpCFX.js +200 -0
- package/dist/showcase/assets/toggle-group-B8mQ6wer.js +1 -0
- package/dist/showcase/assets/toggles-CCClWVXZ.js +71 -0
- package/dist/showcase/assets/toggles-group-DgCilPMo.js +32 -0
- package/dist/showcase/assets/tooltip-ClJCWWTI.js +31 -0
- package/dist/showcase/assets/trash-2-Cs7y4-K-.js +1 -0
- package/dist/showcase/assets/trending-up-spYhMxs6.js +1 -0
- package/dist/showcase/assets/truck-DENWgqxK.js +1 -0
- package/dist/showcase/assets/typography-DMmYNFQj.js +223 -0
- package/dist/showcase/assets/ui-badge-BJEtsa7X.js +28 -0
- package/dist/showcase/assets/ui-card-CrPKoi3P.js +30 -0
- package/dist/showcase/assets/ui-table-2HhDwPcu.js +42 -0
- package/dist/showcase/assets/upload-tray-CUZAErkI.js +138 -0
- package/dist/showcase/assets/use-layout-link-Co3GiFmb.js +1 -0
- package/dist/showcase/assets/useAnchoredPopupScrollLock-DgIA0IXg.js +1 -0
- package/dist/showcase/assets/useAriaLabelledBy-CDdoyQgg.js +1 -0
- package/dist/showcase/assets/useCollapsiblePanel-BT0RSjGM.js +1 -0
- package/dist/showcase/assets/useCompositeItem-DFghnuRZ.js +1 -0
- package/dist/showcase/assets/useCompositeListItem-vXyRoJ2x.js +1 -0
- package/dist/showcase/assets/useLabelableId-D__l5sQX.js +1 -0
- package/dist/showcase/assets/useOpenInteractionType-bZIaLWfE.js +1 -0
- package/dist/showcase/assets/useRender-BV0akLbc.js +1 -0
- package/dist/showcase/assets/useTriggerFocusGuards-dYriJrQP.js +1 -0
- package/dist/showcase/assets/useValueChanged-Dg0AWST0.js +1 -0
- package/dist/showcase/assets/user-B9eCi5Vl.js +1 -0
- package/dist/showcase/assets/user-plus-Uo4IAY7e.js +1 -0
- package/dist/showcase/assets/users-DLep-WjV.js +1 -0
- package/dist/showcase/assets/vendor-profile-BbcE51Pa.js +37 -0
- package/dist/showcase/assets/video-BasdlaQE.js +1 -0
- package/dist/showcase/assets/wrench-BYUVe1-z.js +1 -0
- package/dist/showcase/assets/x-Bx9ayVXr.js +1 -0
- package/dist/showcase/assets/zap-Mgu5HEtF.js +1 -0
- package/dist/showcase/index.html +2 -2
- package/dist/style.css +1 -1
- package/package.json +1 -1
- package/dist/_shared/auth-DdezEtKK.cjs +0 -2
- package/dist/_shared/auth-DdezEtKK.cjs.map +0 -1
- package/dist/_shared/auth-e7yab9pK.js +0 -643
- package/dist/_shared/auth-e7yab9pK.js.map +0 -1
- package/dist/_shared/cards-CbbHly7W.cjs +0 -2
- package/dist/_shared/cards-CbbHly7W.cjs.map +0 -1
- package/dist/_shared/cards-RZxRLx3f.js +0 -355
- package/dist/_shared/cards-RZxRLx3f.js.map +0 -1
- package/dist/_shared/comments-BJqgvSFY.js +0 -952
- package/dist/_shared/comments-BJqgvSFY.js.map +0 -1
- package/dist/_shared/comments-BjPciQfo.cjs +0 -2
- package/dist/_shared/comments-BjPciQfo.cjs.map +0 -1
- package/dist/_shared/containers-D7oZE4XI.cjs +0 -2
- package/dist/_shared/containers-D7oZE4XI.cjs.map +0 -1
- package/dist/_shared/containers-anBivbL9.js +0 -19
- package/dist/_shared/containers-anBivbL9.js.map +0 -1
- package/dist/_shared/content-container-CVUJCLhn.cjs +0 -2
- package/dist/_shared/content-container-CVUJCLhn.cjs.map +0 -1
- package/dist/_shared/content-container-Dv8XsAw4.js +0 -33
- package/dist/_shared/content-container-Dv8XsAw4.js.map +0 -1
- package/dist/_shared/data-display-C21skrV4.cjs +0 -2
- package/dist/_shared/data-display-C21skrV4.cjs.map +0 -1
- package/dist/_shared/data-display-C5-1dZua.js +0 -1873
- package/dist/_shared/data-display-C5-1dZua.js.map +0 -1
- package/dist/_shared/forms-BoquZE2Y.js +0 -3533
- package/dist/_shared/forms-BoquZE2Y.js.map +0 -1
- package/dist/_shared/forms-CzrEYejY.cjs +0 -2
- package/dist/_shared/forms-CzrEYejY.cjs.map +0 -1
- package/dist/_shared/header-CxhEtk9M.cjs +0 -2
- package/dist/_shared/header-CxhEtk9M.cjs.map +0 -1
- package/dist/_shared/header-h3f14vQx.js +0 -447
- package/dist/_shared/header-h3f14vQx.js.map +0 -1
- package/dist/_shared/hooks-CS55-w3h.js +0 -95
- package/dist/_shared/hooks-CS55-w3h.js.map +0 -1
- package/dist/_shared/hooks-sfHAyDgD.cjs +0 -2
- package/dist/_shared/hooks-sfHAyDgD.cjs.map +0 -1
- package/dist/_shared/layout.types-CYuDZ_4h.cjs +0 -2
- package/dist/_shared/layout.types-CYuDZ_4h.cjs.map +0 -1
- package/dist/_shared/layout.types-j7zZAPtg.js +0 -28
- package/dist/_shared/layout.types-j7zZAPtg.js.map +0 -1
- package/dist/_shared/page-D8UMXREv.cjs +0 -2
- package/dist/_shared/page-D8UMXREv.cjs.map +0 -1
- package/dist/_shared/page-D9LNsHMN.js +0 -262
- package/dist/_shared/page-D9LNsHMN.js.map +0 -1
- package/dist/_shared/settings-BeZOIEJB.js +0 -143
- package/dist/_shared/settings-BeZOIEJB.js.map +0 -1
- package/dist/_shared/settings-DI-K34bW.cjs +0 -2
- package/dist/_shared/settings-DI-K34bW.cjs.map +0 -1
- package/dist/_shared/sidebar-DfToCaiC.cjs +0 -2
- package/dist/_shared/sidebar-DfToCaiC.cjs.map +0 -1
- package/dist/_shared/sidebar-DhpRdTZH.js +0 -541
- package/dist/_shared/sidebar-DhpRdTZH.js.map +0 -1
- package/dist/_shared/workspace-BgtWS9fA.cjs +0 -2
- package/dist/_shared/workspace-BgtWS9fA.cjs.map +0 -1
- package/dist/_shared/workspace-D2jJ0PlS.js +0 -357
- package/dist/_shared/workspace-D2jJ0PlS.js.map +0 -1
- package/dist/showcase/assets/AreaChart-Y0ZwblHU.js +0 -6
- package/dist/showcase/assets/CompositeItem-BIY_Cp7P.js +0 -1
- package/dist/showcase/assets/CompositeRoot-DSPvBRQr.js +0 -1
- package/dist/showcase/assets/DialogTrigger-DHUp8vXe.js +0 -1
- package/dist/showcase/assets/LabelableContext-CasUI4hR.js +0 -1
- package/dist/showcase/assets/PreviewLayout-B_l930k0.js +0 -1
- package/dist/showcase/assets/RadioGroup-BgZ-UH79.js +0 -1
- package/dist/showcase/assets/ScrollAreaCorner-BbwFElLA.js +0 -1
- package/dist/showcase/assets/Separator-dQuencsA.js +0 -1
- package/dist/showcase/assets/ToolbarRootContext-BE0hbejq.js +0 -1
- package/dist/showcase/assets/accordion-D93ZNsLn.js +0 -171
- package/dist/showcase/assets/accordion-variants-Bl4bIQH4.js +0 -1
- package/dist/showcase/assets/action-menu--rEgMzDi.js +0 -1
- package/dist/showcase/assets/actions-3iedOWD9.js +0 -310
- package/dist/showcase/assets/activities-CyrAWFlu.js +0 -500
- package/dist/showcase/assets/activities-feed-card-bhIATc2O.js +0 -1
- package/dist/showcase/assets/admin-CZzNsj2q.js +0 -140
- package/dist/showcase/assets/ai-CasHwkW4.js +0 -207
- package/dist/showcase/assets/ai-artifact-BgWvrLAb.js +0 -2
- package/dist/showcase/assets/ai-chat-seS9aW-1.js +0 -568
- package/dist/showcase/assets/ai-elements-Tku5_ous.js +0 -387
- package/dist/showcase/assets/ai-tool-call-BU6xbmXG.js +0 -1
- package/dist/showcase/assets/alert-6Emt6KX2.js +0 -1
- package/dist/showcase/assets/alert-B6aLWiRW.js +0 -62
- package/dist/showcase/assets/alert-CtoTQ0vN.js +0 -93
- package/dist/showcase/assets/api-key-list-C0glWR3z.js +0 -1
- package/dist/showcase/assets/api-key-list-DcWSbY3u.js +0 -73
- package/dist/showcase/assets/app-sidebar-D_eNP_jh.js +0 -1
- package/dist/showcase/assets/arrow-down-qyKZ1H5j.js +0 -1
- package/dist/showcase/assets/arrow-left-C9I0h_su.js +0 -1
- package/dist/showcase/assets/arrow-right-DswaRsr6.js +0 -1
- package/dist/showcase/assets/arrow-up-5BijPOxK.js +0 -1
- package/dist/showcase/assets/arrow-up-right-CbVVNT6g.js +0 -1
- package/dist/showcase/assets/avatar-BYHVCvVW.js +0 -67
- package/dist/showcase/assets/avatar-BlLAVC87.js +0 -1
- package/dist/showcase/assets/avatar-DQTXjcS4.js +0 -1
- package/dist/showcase/assets/avatar-DveZy09C.js +0 -57
- package/dist/showcase/assets/badge-Bth3mRTh.js +0 -31
- package/dist/showcase/assets/badge-check-DocF8Ho3.js +0 -1
- package/dist/showcase/assets/bell-DXBoeAzi.js +0 -1
- package/dist/showcase/assets/bot-Ch-Y1HK8.js +0 -1
- package/dist/showcase/assets/box-72m9QSDa.js +0 -1
- package/dist/showcase/assets/braces-CC17X3TE.js +0 -1
- package/dist/showcase/assets/brain-Dvbla_5x.js +0 -1
- package/dist/showcase/assets/brand-D5ciAq8v.js +0 -36
- package/dist/showcase/assets/breadcrumb-BBCaOVyz.js +0 -52
- package/dist/showcase/assets/breadcrumb-Bt8yVTCj.js +0 -1
- package/dist/showcase/assets/breadcrumbs-CkVWfcAN.js +0 -1
- package/dist/showcase/assets/briefcase-8rQTJwpE.js +0 -1
- package/dist/showcase/assets/building-2-CV7gTtXz.js +0 -1
- package/dist/showcase/assets/button-HGjoBio3.js +0 -44
- package/dist/showcase/assets/button-group-LWToSCrp.js +0 -1
- package/dist/showcase/assets/buttons-Bn_dX6Kk.js +0 -272
- package/dist/showcase/assets/calendar-BTsffmY8.js +0 -1
- package/dist/showcase/assets/calendar-Bhpyn4u0.js +0 -1
- package/dist/showcase/assets/calendar-DjrUTKcD.js +0 -16
- package/dist/showcase/assets/calendar-days-BKCkzWjV.js +0 -1
- package/dist/showcase/assets/camera-EjpDG3mc.js +0 -1
- package/dist/showcase/assets/card-Bp6iGuOF.js +0 -188
- package/dist/showcase/assets/card-CHc6AVFt.js +0 -1
- package/dist/showcase/assets/card-primitives-Bv6XGPJd.js +0 -1
- package/dist/showcase/assets/card-radio-group-Ce9FsiSv.js +0 -1
- package/dist/showcase/assets/cards-_CGG9zir.js +0 -354
- package/dist/showcase/assets/carousel-BVbsKH2W.js +0 -449
- package/dist/showcase/assets/cell-renderers-CosD6Gby.js +0 -1
- package/dist/showcase/assets/chart-CwOp8Sf8.js +0 -358
- package/dist/showcase/assets/chart-column-sz871NdJ.js +0 -1
- package/dist/showcase/assets/checkbox-BO38TYqr.js +0 -1
- package/dist/showcase/assets/checkbox-W4MhlPlJ.js +0 -1
- package/dist/showcase/assets/chevron-down-BFh1Fz2P.js +0 -1
- package/dist/showcase/assets/chevron-left-C5_X5glO.js +0 -1
- package/dist/showcase/assets/chevron-up-DPH3boVS.js +0 -1
- package/dist/showcase/assets/chevrons-up-down-CM5mIDaw.js +0 -1
- package/dist/showcase/assets/circle-BFDzL1iF.js +0 -1
- package/dist/showcase/assets/circle-alert-C6MbOB0m.js +0 -1
- package/dist/showcase/assets/circle-check-C0X85t4j.js +0 -1
- package/dist/showcase/assets/circle-check-big-CBaodck_.js +0 -1
- package/dist/showcase/assets/circle-dot-DdRpIhnL.js +0 -1
- package/dist/showcase/assets/circle-question-mark-CKlcead7.js +0 -1
- package/dist/showcase/assets/circle-x-MO44aKHe.js +0 -1
- package/dist/showcase/assets/clock-3-CXQJFcbh.js +0 -1
- package/dist/showcase/assets/clock-GhBJJ6n1.js +0 -1
- package/dist/showcase/assets/code-xml-BSX7Qyi5.js +0 -1
- package/dist/showcase/assets/collapsible-CZLTO5EH.js +0 -1
- package/dist/showcase/assets/collapsible-LrDO_sSQ.js +0 -27
- package/dist/showcase/assets/combobox-TmDBXkM-.js +0 -685
- package/dist/showcase/assets/command-9-r1qrJt.js +0 -1
- package/dist/showcase/assets/command-DGne3l9s.js +0 -1
- package/dist/showcase/assets/comment-composer-BI0qnvuY.js +0 -1
- package/dist/showcase/assets/comment-item-Cedds6Lm.js +0 -1
- package/dist/showcase/assets/comments-De02NOns.js +0 -357
- package/dist/showcase/assets/commerce-DldtS83o.js +0 -267
- package/dist/showcase/assets/composite-BjZZlzzb.js +0 -1
- package/dist/showcase/assets/contact-card-muCZ3uXV.js +0 -65
- package/dist/showcase/assets/content-container-BxSLICeL.js +0 -1
- package/dist/showcase/assets/copyable-DYhhmTqM.js +0 -1
- package/dist/showcase/assets/copyable-MNU75-J9.js +0 -96
- package/dist/showcase/assets/course-card-Dl1wsuJx.js +0 -77
- package/dist/showcase/assets/cpu-CsWq4fcX.js +0 -1
- package/dist/showcase/assets/credit-card-B0AUZiWw.js +0 -1
- package/dist/showcase/assets/css-variables-Be7DzahT.js +0 -1190
- package/dist/showcase/assets/currency-BtPM_Xtw.js +0 -149
- package/dist/showcase/assets/dark-surfaces-DRFERSEv.js +0 -90
- package/dist/showcase/assets/data-view-DmWd0h7G.js +0 -4
- package/dist/showcase/assets/data-view-DnLH2o0i.js +0 -124
- package/dist/showcase/assets/database-C0YqGaQ_.js +0 -1
- package/dist/showcase/assets/date-block-BQH25FLS.js +0 -1
- package/dist/showcase/assets/date-picker-BF-jevhh.js +0 -1
- package/dist/showcase/assets/date-pickers-q2v3ajJm.js +0 -73
- package/dist/showcase/assets/dense-info-Cb-roqDU.js +0 -106
- package/dist/showcase/assets/design-system-consistency-DMSJknaM.js +0 -264
- package/dist/showcase/assets/dialog-C0ALRmbP.js +0 -1
- package/dist/showcase/assets/dialog-CbXon08k.js +0 -1
- package/dist/showcase/assets/display-utilities-kBUVw7o3.js +0 -267
- package/dist/showcase/assets/dist-CTSkWj_M.js +0 -45
- package/dist/showcase/assets/dist-W8bxVfew.js +0 -1
- package/dist/showcase/assets/dollar-sign-VNxVZleW.js +0 -1
- package/dist/showcase/assets/download-Ds_6eIpx.js +0 -1
- package/dist/showcase/assets/dropdown-menu-C1G_y9dv.js +0 -1
- package/dist/showcase/assets/dropzone-CxOLmdkt.js +0 -1
- package/dist/showcase/assets/earth-HLyEI1oq.js +0 -1
- package/dist/showcase/assets/ellipsis-BLyAd9A-.js +0 -1
- package/dist/showcase/assets/ellipsis-vertical-TG4mYU2J.js +0 -1
- package/dist/showcase/assets/empty-B54k9xAG.js +0 -1
- package/dist/showcase/assets/empty-item-BmA4rmq7.js +0 -49
- package/dist/showcase/assets/empty-state-CH7gjjg7.js +0 -190
- package/dist/showcase/assets/empty-state-hUKvmKa-.js +0 -1
- package/dist/showcase/assets/enhanced-activities-BRDVL9RR.js +0 -357
- package/dist/showcase/assets/enhanced-combobox-2wbQJS6R.js +0 -1
- package/dist/showcase/assets/esm-CUTefMLr.js +0 -2
- package/dist/showcase/assets/event-calendar-Bf9xFZlt.js +0 -138
- package/dist/showcase/assets/event-log-CeRDSL-h.js +0 -330
- package/dist/showcase/assets/example-CJMJcnb4.js +0 -1
- package/dist/showcase/assets/external-link-CvXhYrnd.js +0 -1
- package/dist/showcase/assets/eye-Cl_GfUKH.js +0 -1
- package/dist/showcase/assets/feature-announcement-Dw0SokLo.js +0 -34
- package/dist/showcase/assets/file-CJFWrwy1.js +0 -1
- package/dist/showcase/assets/file-text-BTTFP8Jo.js +0 -1
- package/dist/showcase/assets/filter-layout-DUVqG5Ql.js +0 -1
- package/dist/showcase/assets/filters-BLcCaplV.js +0 -139
- package/dist/showcase/assets/flag-BxI3EGPG.js +0 -1
- package/dist/showcase/assets/folder-open-4d8qsiAj.js +0 -1
- package/dist/showcase/assets/form-field-Dhy0eM5B.js +0 -1
- package/dist/showcase/assets/format-zGqa9Olc.js +0 -1
- package/dist/showcase/assets/forms-D99qG5Gb.js +0 -915
- package/dist/showcase/assets/funnel-Cg7SOShf.js +0 -1
- package/dist/showcase/assets/generic-CfrG943t.js +0 -1
- package/dist/showcase/assets/getPseudoElementBounds-lw5shsdM.js +0 -1
- package/dist/showcase/assets/gift-BXtKbzvA.js +0 -1
- package/dist/showcase/assets/giftcard-cards-CqYaN0jC.js +0 -85
- package/dist/showcase/assets/git-branch-BWAuIMOQ.js +0 -1
- package/dist/showcase/assets/global-search-CHUva8pR.js +0 -1
- package/dist/showcase/assets/global-search-Df7JovOG.js +0 -215
- package/dist/showcase/assets/globe-CvIW_foU.js +0 -1
- package/dist/showcase/assets/gradient-card-CdM2J1Hv.js +0 -58
- package/dist/showcase/assets/hash-wBs5gyr_.js +0 -1
- package/dist/showcase/assets/header-DXPFmpUT.js +0 -1
- package/dist/showcase/assets/header-notifications-FsnCJLpe.js +0 -1
- package/dist/showcase/assets/heart-B4fOMIr6.js +0 -1
- package/dist/showcase/assets/hooks-DtMOMalj.js +0 -220
- package/dist/showcase/assets/house-hebmAxEE.js +0 -1
- package/dist/showcase/assets/icon-badge-DrZ5qGpa.js +0 -1
- package/dist/showcase/assets/icon-badge-JEug_P_U.js +0 -37
- package/dist/showcase/assets/image-CxNywgkb.js +0 -1
- package/dist/showcase/assets/inbox-DqAmGdDd.js +0 -1
- package/dist/showcase/assets/index-DujM0kEF.css +0 -2
- package/dist/showcase/assets/index-jD-KSiHu.js +0 -10
- package/dist/showcase/assets/inertValue-Dg9TwvOb.js +0 -1
- package/dist/showcase/assets/info-B5fZn_ZC.js +0 -1
- package/dist/showcase/assets/inline-stat-CklKufoA.js +0 -1
- package/dist/showcase/assets/inline-stat-Dep7oHIi.js +0 -15
- package/dist/showcase/assets/input-CkNgwwCs.js +0 -1
- package/dist/showcase/assets/input-DAPMRlKO.js +0 -1
- package/dist/showcase/assets/input-group-06D68uB6.js +0 -47
- package/dist/showcase/assets/input-group-Bq9aXQPG.js +0 -1
- package/dist/showcase/assets/inputs-C8G3y-zR.js +0 -155
- package/dist/showcase/assets/installation-BV5xOvoE.js +0 -134
- package/dist/showcase/assets/invoice-header-BcUxzT68.js +0 -36
- package/dist/showcase/assets/invoice-items-B42Jfxl7.js +0 -36
- package/dist/showcase/assets/invoice-mini-RJGdlErg.js +0 -14
- package/dist/showcase/assets/invoice-table--MdP6ysv.js +0 -30
- package/dist/showcase/assets/isSameDay-srttAIjD.js +0 -1
- package/dist/showcase/assets/isToday-BPub5Zvi.js +0 -1
- package/dist/showcase/assets/italic-1BNA_XlU.js +0 -1
- package/dist/showcase/assets/item-B9KyqUGa.js +0 -139
- package/dist/showcase/assets/item-DoIlPm6J.js +0 -1
- package/dist/showcase/assets/item-ffIfXEGd.js +0 -1
- package/dist/showcase/assets/kanban-Cfad3edR.js +0 -188
- package/dist/showcase/assets/key-round-J11Zc216.js +0 -1
- package/dist/showcase/assets/label-DqaB8ZB2.js +0 -1
- package/dist/showcase/assets/languages-D9UaP3QU.js +0 -1
- package/dist/showcase/assets/layers-QXZ9Jfej.js +0 -1
- package/dist/showcase/assets/layout-app-shell-CW1eRJmU.js +0 -608
- package/dist/showcase/assets/layout-auth-j4K6lveg.js +0 -790
- package/dist/showcase/assets/layout-containers-NclLtsV0.js +0 -101
- package/dist/showcase/assets/layout-header-B8AOTiwL.js +0 -203
- package/dist/showcase/assets/layout-page-DM79QHyW.js +0 -314
- package/dist/showcase/assets/layout-primitives-Dyop-WMt.js +0 -34
- package/dist/showcase/assets/layout-sidebar-uBNaHqjD.js +0 -224
- package/dist/showcase/assets/layout-users-BkhDiOOz.js +0 -117
- package/dist/showcase/assets/layout-workspace-C2hSimZW.js +0 -191
- package/dist/showcase/assets/lib-CDssULuD.js +0 -1
- package/dist/showcase/assets/list-checks-DA2jqXdm.js +0 -1
- package/dist/showcase/assets/lock-BDZLNQLR.js +0 -1
- package/dist/showcase/assets/lock-keyhole-CWYENd9O.js +0 -1
- package/dist/showcase/assets/mail-CCdaRmft.js +0 -1
- package/dist/showcase/assets/mail-check-DZF1VbCX.js +0 -1
- package/dist/showcase/assets/map-CDFEmmZH.js +0 -124
- package/dist/showcase/assets/map-pin-CdV-R6nt.js +0 -1
- package/dist/showcase/assets/media-library-BJyn1s9d.js +0 -699
- package/dist/showcase/assets/mention-inline-suggestions-DPO6FhXx.js +0 -1
- package/dist/showcase/assets/mentions-DtWHbcS6.js +0 -138
- package/dist/showcase/assets/menus-BmjngFE4.js +0 -171
- package/dist/showcase/assets/message-square-bM29txT3.js +0 -1
- package/dist/showcase/assets/metadata-list-DvYTAJri.js +0 -286
- package/dist/showcase/assets/metadata-list-xVUTVyy9.js +0 -1
- package/dist/showcase/assets/metric-BPNCh4eA.js +0 -1
- package/dist/showcase/assets/metric-bar-BX4sCMrM.js +0 -1
- package/dist/showcase/assets/metric-grid-IyHP3nmU.js +0 -1
- package/dist/showcase/assets/metric-trend-chip-Dih8eR17.js +0 -1
- package/dist/showcase/assets/metrics-analytics-bar-DK16RNMs.js +0 -44
- package/dist/showcase/assets/metrics-analytics-cards-Byyl13YT.js +0 -50
- package/dist/showcase/assets/metrics-comparison-DGHFMBL-.js +0 -76
- package/dist/showcase/assets/metrics-heatmap-Bl6C7i0j.js +0 -27
- package/dist/showcase/assets/metrics-inline-badge-Bz79zbNK.js +0 -17
- package/dist/showcase/assets/metrics-kpi-row-DzZ9dRFY.js +0 -31
- package/dist/showcase/assets/metrics-micro-grid-DyoQiuzr.js +0 -42
- package/dist/showcase/assets/metrics-overview-DoyHPEZw.js +0 -192
- package/dist/showcase/assets/metrics-stat-cards-B1b7NFqW.js +0 -54
- package/dist/showcase/assets/minus-BE2L5hVc.js +0 -1
- package/dist/showcase/assets/money-display-CXQ_8LfA.js +0 -1
- package/dist/showcase/assets/month-year-picker-ra8FEN8F.js +0 -1
- package/dist/showcase/assets/navigation-CFfVZQJ1.js +0 -231
- package/dist/showcase/assets/navigation-Da0MVkqr.js +0 -90
- package/dist/showcase/assets/navigation-extras-LpsdoXfx.js +0 -43
- package/dist/showcase/assets/onboarding-checklist-DPNatNOk.js +0 -119
- package/dist/showcase/assets/overflow-tab-bar-C0vTzcEY.js +0 -1
- package/dist/showcase/assets/overlays-Blmbun0J.js +0 -408
- package/dist/showcase/assets/overlays-t0joc10Y.js +0 -159
- package/dist/showcase/assets/overview-Ckq8vbOR.js +0 -184
- package/dist/showcase/assets/package-Cjod_a06.js +0 -1
- package/dist/showcase/assets/package-check-JRHaNnkl.js +0 -1
- package/dist/showcase/assets/page-9xr7xnuW.js +0 -1
- package/dist/showcase/assets/page-action-button-BRXnfsEx.js +0 -1
- package/dist/showcase/assets/page-header-Bdlxfn_9.js +0 -1
- package/dist/showcase/assets/pagination-CeaYhOvv.js +0 -42
- package/dist/showcase/assets/pagination-DdZZHvNF.js +0 -1
- package/dist/showcase/assets/paperclip-BRM-yXTB.js +0 -1
- package/dist/showcase/assets/password-input-1FVEugoO.js +0 -1
- package/dist/showcase/assets/pencil-DiG2dQ8F.js +0 -1
- package/dist/showcase/assets/phone-BREyNZN-.js +0 -1
- package/dist/showcase/assets/plus-CQcelTNc.js +0 -1
- package/dist/showcase/assets/popover-Czmwspmc.js +0 -1
- package/dist/showcase/assets/popover-menu-beuCaiLt.js +0 -1
- package/dist/showcase/assets/popover-uqk7myG2.js +0 -1
- package/dist/showcase/assets/products-DGNqIbLs.js +0 -423
- package/dist/showcase/assets/progress-D76Df908.js +0 -1
- package/dist/showcase/assets/progress-DjUprSDD.js +0 -18
- package/dist/showcase/assets/props-table-DoDq8Mvr.js +0 -1
- package/dist/showcase/assets/quote-BvGGgyJ0.js +0 -1
- package/dist/showcase/assets/receipt-rgnlMgyi.js +0 -1
- package/dist/showcase/assets/receipt-text-CBQrVlnU.js +0 -1
- package/dist/showcase/assets/refinement-guide-B_BpIMxm.js +0 -189
- package/dist/showcase/assets/refresh-cw-C-yHy6B7.js +0 -1
- package/dist/showcase/assets/resolveValueLabel-0bwEvIG-.js +0 -1
- package/dist/showcase/assets/resource-8f61BZ8t.js +0 -1
- package/dist/showcase/assets/resource-BEh6R0gu.js +0 -139
- package/dist/showcase/assets/resource-selector-card-DJwXY_Ms.js +0 -43
- package/dist/showcase/assets/rich-text-editor-D433iv0N.js +0 -143
- package/dist/showcase/assets/rich-text-editor-vTRfWsOK.js +0 -124
- package/dist/showcase/assets/rotate-ccw-JuE4H14F.js +0 -1
- package/dist/showcase/assets/route-eSu1bFNn.js +0 -1
- package/dist/showcase/assets/save-Bpjj-rBP.js +0 -1
- package/dist/showcase/assets/schema-form-DmOpxd96.js +0 -327
- package/dist/showcase/assets/scroll-area-B9OdCBy9.js +0 -32
- package/dist/showcase/assets/scroll-area-BH80l2As.js +0 -1
- package/dist/showcase/assets/section-BPNIPavy.js +0 -1
- package/dist/showcase/assets/select-BauiG1a3.js +0 -1
- package/dist/showcase/assets/select-CPopSr5c.js +0 -1
- package/dist/showcase/assets/send-DNCcBKXs.js +0 -1
- package/dist/showcase/assets/separator-BK0beCOv.js +0 -28
- package/dist/showcase/assets/separator-CKM9A-mm.js +0 -1
- package/dist/showcase/assets/settings-2-B8fz7JZB.js +0 -1
- package/dist/showcase/assets/settings-Cy2y3sQw.js +0 -1
- package/dist/showcase/assets/sheet-C7VWkXE1.js +0 -1
- package/dist/showcase/assets/shield-ClPev4gS.js +0 -1
- package/dist/showcase/assets/shield-alert-6XO5YZ5u.js +0 -1
- package/dist/showcase/assets/shield-check-DSfGVZq0.js +0 -1
- package/dist/showcase/assets/shopping-bag-DzMrGvpF.js +0 -1
- package/dist/showcase/assets/showcase-DuZaO6q9.js +0 -132
- package/dist/showcase/assets/sidebar-7y9EQYWf.js +0 -1
- package/dist/showcase/assets/sidebar.context-DUheJD8t.js +0 -1
- package/dist/showcase/assets/skeleton-Dgr8Vabr.js +0 -29
- package/dist/showcase/assets/skeleton-HSpErFqw.js +0 -1
- package/dist/showcase/assets/slider-B7f81APg.js +0 -1
- package/dist/showcase/assets/smart-card-p97LLZCW.js +0 -1
- package/dist/showcase/assets/sonner-CWazrN19.js +0 -22
- package/dist/showcase/assets/sortable.esm-uufol7Mz.js +0 -5
- package/dist/showcase/assets/sparkles-Z4V23xKK.js +0 -1
- package/dist/showcase/assets/spinner-BUgjAjWE.js +0 -49
- package/dist/showcase/assets/spinner-CXu7z8-j.js +0 -1
- package/dist/showcase/assets/spinner-DCwR0mnD.js +0 -30
- package/dist/showcase/assets/square-pen-jwp_OWMQ.js +0 -1
- package/dist/showcase/assets/stacked-avatars-CHEpTotO.js +0 -1
- package/dist/showcase/assets/star-Ck8Lg5hm.js +0 -1
- package/dist/showcase/assets/startOfDay-BzULZHy4.js +0 -1
- package/dist/showcase/assets/styles-CNYitflH.js +0 -1
- package/dist/showcase/assets/suggestions-CSF9MlKl.js +0 -126
- package/dist/showcase/assets/switch-BX9KSLIF.js +0 -1
- package/dist/showcase/assets/switch-Bn0WaWa9.js +0 -1
- package/dist/showcase/assets/sync-BuKBnqWW.js +0 -124
- package/dist/showcase/assets/table-DNJcLaud.js +0 -686
- package/dist/showcase/assets/table-NfpOWGsG.js +0 -1
- package/dist/showcase/assets/table-actions-Ci9Yszp0.js +0 -1
- package/dist/showcase/assets/tabs-CYNFQdIr.js +0 -19
- package/dist/showcase/assets/tabs-Cm_p6znb.js +0 -1
- package/dist/showcase/assets/tags-input-DE4QZqS_.js +0 -1
- package/dist/showcase/assets/text-button-D9llh4pU.js +0 -1
- package/dist/showcase/assets/text-link-ZT6QGJOL.js +0 -1
- package/dist/showcase/assets/textarea-CgcHuGVq.js +0 -1
- package/dist/showcase/assets/textarea-D2uT_GJt.js +0 -1
- package/dist/showcase/assets/timelines-BEFO7tJ0.js +0 -200
- package/dist/showcase/assets/toggle-group-oYpa59lN.js +0 -1
- package/dist/showcase/assets/toggles-BL93YmQo.js +0 -71
- package/dist/showcase/assets/toggles-group-BG-xiQCY.js +0 -32
- package/dist/showcase/assets/tooltip-BMI7zHwP.js +0 -31
- package/dist/showcase/assets/trash-2-CtRtVsCy.js +0 -1
- package/dist/showcase/assets/trending-up-2NQ-P8vB.js +0 -1
- package/dist/showcase/assets/truck-Cl0nyN_j.js +0 -1
- package/dist/showcase/assets/typography-C7pCPhg7.js +0 -223
- package/dist/showcase/assets/ui-badge-BvmuMzSq.js +0 -28
- package/dist/showcase/assets/ui-card-B7ziOMAn.js +0 -30
- package/dist/showcase/assets/ui-table-BEFHakBU.js +0 -42
- package/dist/showcase/assets/upload-tray-CMKqTtEp.js +0 -138
- package/dist/showcase/assets/use-layout-link-nEU6ctSs.js +0 -1
- package/dist/showcase/assets/useAnchoredPopupScrollLock-B1xyKMh7.js +0 -1
- package/dist/showcase/assets/useAriaLabelledBy-BMlFgz-H.js +0 -1
- package/dist/showcase/assets/useCollapsiblePanel-BEzH6TC2.js +0 -1
- package/dist/showcase/assets/useCompositeItem-CIuww7-p.js +0 -1
- package/dist/showcase/assets/useCompositeListItem-PrMTh4tz.js +0 -1
- package/dist/showcase/assets/useLabelableId-BBLkeLGr.js +0 -1
- package/dist/showcase/assets/useOpenInteractionType-CW0quo3l.js +0 -1
- package/dist/showcase/assets/useRender-6NNMHJJU.js +0 -1
- package/dist/showcase/assets/useTriggerFocusGuards-DEza_iee.js +0 -1
- package/dist/showcase/assets/useValueChanged-BmWIb3SN.js +0 -1
- package/dist/showcase/assets/user-BDIP5UPS.js +0 -1
- package/dist/showcase/assets/user-plus-BCqHFh2h.js +0 -1
- package/dist/showcase/assets/users-Bh7xGRX2.js +0 -1
- package/dist/showcase/assets/vendor-profile-BlYcRbPI.js +0 -37
- package/dist/showcase/assets/video-BucshqNW.js +0 -1
- package/dist/showcase/assets/wrench-DQvhyTEb.js +0 -1
- package/dist/showcase/assets/x-DyuS4YRT.js +0 -1
- package/dist/showcase/assets/zap-Dpn8_pnQ.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-C2ovQgbv.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-MVA3ikv6.js";import{t as v}from"./arrow-down-CCYWFimd.js";import{t as y}from"./arrow-up-kA33fcPv.js";import{t as b}from"./bot-BC4pGAB3.js";import{t as x}from"./chart-column-BrwpEFzy.js";import{Er as S,n as C,r as w,t as T}from"./example-CDvNeHNP.js";import{t as E}from"./database-BarEYzaF.js";import{t as D}from"./file-text-Boa9IOND.js";import{t as ee}from"./paperclip-B9HQ47_2.js";import{t as O}from"./sparkles-CQSdl3Gw.js";import{n as k,r as A,t as j}from"./ai-tool-call-DedG9TdK.js";import{t as M}from"./x-Bx9ayVXr.js";import{N,a as te,d as ne,l as re,n as P}from"./index-B37z19z3.js";import{t as F}from"./props-table-udnF7Z46.js";import{t as ie}from"./icon-badge-fJVhEHym.js";import{t as ae}from"./textarea-BbCxWNzV.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:`xxs`,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:`xxs`,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:`xxs`,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};
|