@logicplanes/kaeso-ui 0.4.1 → 0.4.3
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/NOTICE.md +1 -1
- package/ai/component-guides.md +333 -21
- package/ai/component-registry.json +631 -32
- package/ai/component-registry.md +164 -28
- package/ai/icons.md +3 -3
- package/ai/tokens.md +1 -1
- package/dist/blocks/delete-resource.js +15 -14
- package/dist/blocks/delete-resource.js.map +1 -1
- package/dist/blocks/pages.js +5 -5
- package/dist/blocks/resource-list.js +42 -41
- package/dist/blocks/resource-list.js.map +1 -1
- package/dist/chunks/agent-avatar-0pdBTWkR.js +171 -0
- package/dist/chunks/agent-avatar-0pdBTWkR.js.map +1 -0
- package/dist/chunks/{app-frame-DZPEf2NQ.js → app-frame-DogGRmsu.js} +23 -22
- package/dist/chunks/app-frame-DogGRmsu.js.map +1 -0
- package/dist/chunks/{avatar-HnvBUoe5.js → avatar-CWbdwbJv.js} +2 -2
- package/dist/chunks/{avatar-HnvBUoe5.js.map → avatar-CWbdwbJv.js.map} +1 -1
- package/dist/chunks/{badge-CM8ahjDR.js → badge-C2KtxCLB.js} +2 -2
- package/dist/chunks/{badge-CM8ahjDR.js.map → badge-C2KtxCLB.js.map} +1 -1
- package/dist/chunks/{banner-CvYgPwCc.js → banner-BA2ALw9M.js} +4 -4
- package/dist/chunks/{banner-CvYgPwCc.js.map → banner-BA2ALw9M.js.map} +1 -1
- package/dist/chunks/{button-9q66Ta23.js → button-CzuxqawA.js} +8 -8
- package/dist/chunks/{button-9q66Ta23.js.map → button-CzuxqawA.js.map} +1 -1
- package/dist/chunks/{calendar-CeNcqLFd.js → calendar-BWaf2MXc.js} +58 -42
- package/dist/chunks/calendar-BWaf2MXc.js.map +1 -0
- package/dist/chunks/{checkbox-C_DrNA2N.js → checkbox-CQjwCPkc.js} +12 -10
- package/dist/chunks/checkbox-CQjwCPkc.js.map +1 -0
- package/dist/chunks/{cn-Isw2DnQX.js → cn-Dj6sRgkF.js} +8 -1
- package/dist/chunks/cn-Dj6sRgkF.js.map +1 -0
- package/dist/chunks/{code-block-mEH6Sy3h.js → code-block-D5A-CGXG.js} +75 -54
- package/dist/chunks/code-block-D5A-CGXG.js.map +1 -0
- package/dist/chunks/{code-Bp2p9AuD.js → code-tqj0uhBL.js} +2 -2
- package/dist/chunks/{code-Bp2p9AuD.js.map → code-tqj0uhBL.js.map} +1 -1
- package/dist/chunks/{collapsible-CtQNJn9b.js → collapsible-CKrCX_T9.js} +3 -3
- package/dist/chunks/{collapsible-CtQNJn9b.js.map → collapsible-CKrCX_T9.js.map} +1 -1
- package/dist/chunks/combobox-DjDI7SUC.js +319 -0
- package/dist/chunks/combobox-DjDI7SUC.js.map +1 -0
- package/dist/chunks/{command-list-CzMbdtJs.js → command-list-C2Y7V_lt.js} +54 -54
- package/dist/chunks/command-list-C2Y7V_lt.js.map +1 -0
- package/dist/chunks/{copy-button-Cdea0wKl.js → copy-button-FJvPJn72.js} +5 -5
- package/dist/chunks/{copy-button-Cdea0wKl.js.map → copy-button-FJvPJn72.js.map} +1 -1
- package/dist/chunks/{core-FtMDNELx.js → core-BYns5ytV.js} +146 -140
- package/dist/chunks/core-BYns5ytV.js.map +1 -0
- package/dist/chunks/{date-popup-NytWvSNh.js → date-popup-CPA_zt6o.js} +4 -4
- package/dist/chunks/{date-popup-NytWvSNh.js.map → date-popup-CPA_zt6o.js.map} +1 -1
- package/dist/chunks/{de-BnNQtBSV.js → de-CPXJh9cq.js} +3 -1
- package/dist/chunks/de-CPXJh9cq.js.map +1 -0
- package/dist/chunks/dialog-Cg9A_6SF.js +383 -0
- package/dist/chunks/dialog-Cg9A_6SF.js.map +1 -0
- package/dist/chunks/{empty-By1qTJr6.js → empty-DvhyMXQq.js} +2 -2
- package/dist/chunks/{empty-By1qTJr6.js.map → empty-DvhyMXQq.js.map} +1 -1
- package/dist/chunks/{field-DfITT6Jm.js → field-TviMvYa2.js} +2 -2
- package/dist/chunks/{field-DfITT6Jm.js.map → field-TviMvYa2.js.map} +1 -1
- package/dist/chunks/{icon-D5uD_mnL.js → icon-D7ja-_Yk.js} +2 -2
- package/dist/chunks/{icon-D5uD_mnL.js.map → icon-D7ja-_Yk.js.map} +1 -1
- package/dist/chunks/icon-DVooQfk4.js +94 -0
- package/dist/chunks/icon-DVooQfk4.js.map +1 -0
- package/dist/chunks/{icon-button-C7Du4pvb.js → icon-button-CrdF_eMG.js} +3 -3
- package/dist/chunks/{icon-button-C7Du4pvb.js.map → icon-button-CrdF_eMG.js.map} +1 -1
- package/dist/chunks/{identity-BcVQd-7H.js → identity-BmhQ6BQ-.js} +18 -18
- package/dist/chunks/identity-BmhQ6BQ-.js.map +1 -0
- package/dist/chunks/{input-B6Docqrk.js → input-2VJuj_M4.js} +13 -8
- package/dist/chunks/input-2VJuj_M4.js.map +1 -0
- package/dist/chunks/{input-group-Dgdb0JpZ.js → input-group-DQ_4DoXg.js} +4 -4
- package/dist/chunks/{input-group-Dgdb0JpZ.js.map → input-group-DQ_4DoXg.js.map} +1 -1
- package/dist/chunks/{inset-BnBj8NJV.js → inset-BUzyXLK4.js} +14 -4
- package/dist/chunks/inset-BUzyXLK4.js.map +1 -0
- package/dist/chunks/{iso-field-SOZ7Z-yE.js → iso-field-B2rTwiBo.js} +2 -2
- package/dist/chunks/{iso-field-SOZ7Z-yE.js.map → iso-field-B2rTwiBo.js.map} +1 -1
- package/dist/chunks/{json-view-DCTMY_j4.js → json-view-Dqd2TDkc.js} +3 -3
- package/dist/chunks/{json-view-DCTMY_j4.js.map → json-view-Dqd2TDkc.js.map} +1 -1
- package/dist/chunks/{kbd-9A9rX60U.js → kbd-BF1vKXJf.js} +2 -2
- package/dist/chunks/{kbd-9A9rX60U.js.map → kbd-BF1vKXJf.js.map} +1 -1
- package/dist/chunks/{link-CtII7u3h.js → link-KWI7PevW.js} +4 -4
- package/dist/chunks/{link-CtII7u3h.js.map → link-KWI7PevW.js.map} +1 -1
- package/dist/chunks/link-provider-cvl8lSTT.js +29 -0
- package/dist/chunks/link-provider-cvl8lSTT.js.map +1 -0
- package/dist/chunks/{list-CMXBTVkI.js → list-M1csq-d4.js} +21 -19
- package/dist/chunks/{list-CMXBTVkI.js.map → list-M1csq-d4.js.map} +1 -1
- package/dist/chunks/{loader-DqOUwS1j.js → loader-DCfPndXa.js} +2 -2
- package/dist/chunks/{loader-DqOUwS1j.js.map → loader-DCfPndXa.js.map} +1 -1
- package/dist/chunks/{markdown-CwVQ0niB.js → markdown-DULktoTK.js} +9 -9
- package/dist/chunks/{markdown-CwVQ0niB.js.map → markdown-DULktoTK.js.map} +1 -1
- package/dist/chunks/{menu-Cjg4RggA.js → menu-DEmBfdPm.js} +32 -29
- package/dist/chunks/menu-DEmBfdPm.js.map +1 -0
- package/dist/chunks/{meter-VrC2J2GF.js → meter-Bj4N3Xuh.js} +2 -2
- package/dist/chunks/{meter-VrC2J2GF.js.map → meter-Bj4N3Xuh.js.map} +1 -1
- package/dist/chunks/nav-sheet-CzgIwgAm.js +60 -0
- package/dist/chunks/nav-sheet-CzgIwgAm.js.map +1 -0
- package/dist/chunks/{nav-wordmark-CjWM3NYa.js → nav-wordmark-_pjheAsZ.js} +2 -2
- package/dist/chunks/{nav-wordmark-CjWM3NYa.js.map → nav-wordmark-_pjheAsZ.js.map} +1 -1
- package/dist/chunks/{page-header-CZCQVHYE.js → page-header-DL2y2iZp.js} +4 -4
- package/dist/chunks/{page-header-CZCQVHYE.js.map → page-header-DL2y2iZp.js.map} +1 -1
- package/dist/chunks/{pagination-BStrMDqM.js → pagination-Cn_qF4cg.js} +4 -4
- package/dist/chunks/{pagination-BStrMDqM.js.map → pagination-Cn_qF4cg.js.map} +1 -1
- package/dist/chunks/{picker-popover-BerQAEBT.js → picker-popover-BxyU1U9F.js} +17 -16
- package/dist/chunks/{picker-popover-BerQAEBT.js.map → picker-popover-BxyU1U9F.js.map} +1 -1
- package/dist/chunks/{popover-CgLt_4yG.js → popover-DNN4S47w.js} +3 -3
- package/dist/chunks/{popover-CgLt_4yG.js.map → popover-DNN4S47w.js.map} +1 -1
- package/dist/chunks/portal-context-BBbzDKmY.js.map +1 -1
- package/dist/chunks/{radio-07Muf4cX.js → radio-CDDFpdtL.js} +5 -5
- package/dist/chunks/{radio-07Muf4cX.js.map → radio-CDDFpdtL.js.map} +1 -1
- package/dist/chunks/{range-popup-BCov1iPe.js → range-popup-CRyWYUB1.js} +6 -6
- package/dist/chunks/{range-popup-BCov1iPe.js.map → range-popup-CRyWYUB1.js.map} +1 -1
- package/dist/chunks/{release-art-69WpgVik.js → release-art-ZwfFQImt.js} +2 -2
- package/dist/chunks/{release-art-69WpgVik.js.map → release-art-ZwfFQImt.js.map} +1 -1
- package/dist/chunks/{rights-UVngOX_4.js → rights-Cyp0Pzp-.js} +9 -9
- package/dist/chunks/{rights-UVngOX_4.js.map → rights-Cyp0Pzp-.js.map} +1 -1
- package/dist/chunks/scroll-area-D8MD7Vpo.js +42 -0
- package/dist/chunks/scroll-area-D8MD7Vpo.js.map +1 -0
- package/dist/chunks/{section-Bvg0EUnr.js → section-Ce1efbsP.js} +3 -3
- package/dist/chunks/{section-Bvg0EUnr.js.map → section-Ce1efbsP.js.map} +1 -1
- package/dist/chunks/{segmented-DRLDN8EW.js → segmented-CErcoxwi.js} +4 -4
- package/dist/chunks/{segmented-DRLDN8EW.js.map → segmented-CErcoxwi.js.map} +1 -1
- package/dist/chunks/{select-eFTHLeYG.js → select-x4XVsdCI.js} +4 -4
- package/dist/chunks/{select-eFTHLeYG.js.map → select-x4XVsdCI.js.map} +1 -1
- package/dist/chunks/{separator-D86IW7Ge.js → separator-D7TzNHmX.js} +2 -2
- package/dist/chunks/{separator-D86IW7Ge.js.map → separator-D7TzNHmX.js.map} +1 -1
- package/dist/chunks/{sidebar-DifJ5KgE.js → sidebar-3r1ZRXlN.js} +255 -237
- package/dist/chunks/sidebar-3r1ZRXlN.js.map +1 -0
- package/dist/chunks/{sidebar-menu-XKOiwrQp.js → sidebar-menu-BN3jkTlK.js} +2 -2
- package/dist/chunks/{sidebar-menu-XKOiwrQp.js.map → sidebar-menu-BN3jkTlK.js.map} +1 -1
- package/dist/chunks/{skeleton-Cu74kGJA.js → skeleton-Dcz57Zyp.js} +2 -2
- package/dist/chunks/{skeleton-Cu74kGJA.js.map → skeleton-Dcz57Zyp.js.map} +1 -1
- package/dist/chunks/{slider-Dh0qq1wa.js → slider-Ci83PGtj.js} +2 -2
- package/dist/chunks/{slider-Dh0qq1wa.js.map → slider-Ci83PGtj.js.map} +1 -1
- package/dist/chunks/{status-dot-u4Izk-uC.js → status-dot-QJTF0Yv4.js} +3 -3
- package/dist/chunks/{status-dot-u4Izk-uC.js.map → status-dot-QJTF0Yv4.js.map} +1 -1
- package/dist/chunks/{swap-text-CC77iKJF.js → swap-text-Dr0Irxz6.js} +2 -2
- package/dist/chunks/{swap-text-CC77iKJF.js.map → swap-text-Dr0Irxz6.js.map} +1 -1
- package/dist/chunks/{switch-CbU9m9gi.js → switch-BNMq_kGt.js} +3 -3
- package/dist/chunks/{switch-CbU9m9gi.js.map → switch-BNMq_kGt.js.map} +1 -1
- package/dist/chunks/table-BeOSKl_3.js +84 -0
- package/dist/chunks/table-BeOSKl_3.js.map +1 -0
- package/dist/chunks/{tag-CqSk8F7M.js → tag-D_M1s2qS.js} +4 -4
- package/dist/chunks/{tag-CqSk8F7M.js.map → tag-D_M1s2qS.js.map} +1 -1
- package/dist/chunks/{text-hFc6TDp9.js → text-CIXH8rmT.js} +3 -3
- package/dist/chunks/{text-hFc6TDp9.js.map → text-CIXH8rmT.js.map} +1 -1
- package/dist/chunks/{textarea-17Ftvph_.js → textarea--4FRL3Pb.js} +5 -5
- package/dist/chunks/{textarea-17Ftvph_.js.map → textarea--4FRL3Pb.js.map} +1 -1
- package/dist/chunks/theme-provider-DJhORMlc.js.map +1 -1
- package/dist/chunks/{timeseries-CbnSFD5q.js → timeseries-D1xjRXfk.js} +3 -3
- package/dist/chunks/{timeseries-CbnSFD5q.js.map → timeseries-D1xjRXfk.js.map} +1 -1
- package/dist/chunks/{toolbar-B_960Ttx.js → toolbar-WA_oZgu-.js} +6 -5
- package/dist/chunks/{toolbar-B_960Ttx.js.map → toolbar-WA_oZgu-.js.map} +1 -1
- package/dist/chunks/tooltip-OcwO0VUT.js +154 -0
- package/dist/chunks/tooltip-OcwO0VUT.js.map +1 -0
- package/dist/chunks/{tooltip-root-Dssjjp-E.js → tooltip-root-DzahJDVj.js} +4 -4
- package/dist/chunks/{tooltip-root-Dssjjp-E.js.map → tooltip-root-DzahJDVj.js.map} +1 -1
- package/dist/chunks/{use-scroll-margin-DfdTc_5D.js → use-scroll-margin-atRtf0v_.js} +14 -10
- package/dist/chunks/use-scroll-margin-atRtf0v_.js.map +1 -0
- package/dist/chunks/{virtual-rows-yAMjeAwj.js → virtual-rows-CC_kc2PR.js} +2 -2
- package/dist/chunks/{virtual-rows-yAMjeAwj.js.map → virtual-rows-CC_kc2PR.js.map} +1 -1
- package/dist/chunks/{zh-CN-CKffAT7j.js → zh-CN-29X4CDLE.js} +3 -1
- package/dist/chunks/zh-CN-29X4CDLE.js.map +1 -0
- package/dist/components/agent-avatar.js +2 -0
- package/dist/components/app-frame.js +2 -2
- package/dist/components/avatar.js +1 -1
- package/dist/components/badge.js +1 -1
- package/dist/components/banner.js +1 -1
- package/dist/components/button-group.js +4 -4
- package/dist/components/button.js +1 -1
- package/dist/components/calendar.js +1 -1
- package/dist/components/charts/bar.js +2 -2
- package/dist/components/charts/donut.js +2 -2
- package/dist/components/charts/gauge.js +2 -2
- package/dist/components/charts/heatmap.js +1 -1
- package/dist/components/charts/sankey.js +2 -2
- package/dist/components/charts/sparkline.js +1 -1
- package/dist/components/charts/timeseries.js +1 -1
- package/dist/components/charts.js +2 -2
- package/dist/components/checkbox.js +1 -1
- package/dist/components/code-block.js +2 -2
- package/dist/components/code.js +1 -1
- package/dist/components/collapsible.js +1 -1
- package/dist/components/combobox.js +1 -1
- package/dist/components/command-list.js +2 -2
- package/dist/components/command-palette.js +89 -84
- package/dist/components/command-palette.js.map +1 -1
- package/dist/components/copy-button.js +1 -1
- package/dist/components/data-table.js +193 -189
- package/dist/components/data-table.js.map +1 -1
- package/dist/components/date-picker.js +9 -7
- package/dist/components/date-picker.js.map +1 -1
- package/dist/components/dialog.js +125 -91
- package/dist/components/dialog.js.map +1 -1
- package/dist/components/display-options.js +52 -49
- package/dist/components/display-options.js.map +1 -1
- package/dist/components/empty.js +1 -1
- package/dist/components/field.js +1 -1
- package/dist/components/figure.js +60 -0
- package/dist/components/figure.js.map +1 -0
- package/dist/components/filter-chip.js +5 -5
- package/dist/components/filter-chip.js.map +1 -1
- package/dist/components/filter-row.js +2 -2
- package/dist/components/flow.js +2 -2
- package/dist/components/heading.js +1 -1
- package/dist/components/icon-button.js +1 -1
- package/dist/components/icon.js +2 -2
- package/dist/components/input.js +51 -51
- package/dist/components/input.js.map +1 -1
- package/dist/components/kaeso/conversation.js +8 -8
- package/dist/components/kaeso/identity.js +1 -1
- package/dist/components/kaeso/moments.js +5 -5
- package/dist/components/kaeso/rights.js +1 -1
- package/dist/components/kaeso/usage.js +12 -12
- package/dist/components/kaeso/usage.js.map +1 -1
- package/dist/components/kaeso.js +264 -96
- package/dist/components/kaeso.js.map +1 -1
- package/dist/components/kbd.js +1 -1
- package/dist/components/key-value.js +3 -3
- package/dist/components/label.js +1 -1
- package/dist/components/layout.js +1 -1
- package/dist/components/link.js +1 -1
- package/dist/components/list.js +1 -1
- package/dist/components/loader.js +2 -2
- package/dist/components/logo.js +2 -2
- package/dist/components/markdown.js +1 -1
- package/dist/components/menu.js +2 -2
- package/dist/components/meter.js +1 -1
- package/dist/components/page-header.js +1 -1
- package/dist/components/pagination.js +1 -1
- package/dist/components/playground.js +32 -31
- package/dist/components/playground.js.map +1 -1
- package/dist/components/popover.js +13 -12
- package/dist/components/popover.js.map +1 -1
- package/dist/components/qr-code.js +1 -1
- package/dist/components/radio.js +1 -1
- package/dist/components/release-art.js +1 -1
- package/dist/components/scroll-area.js +1 -41
- package/dist/components/section.js +1 -1
- package/dist/components/segmented.js +1 -1
- package/dist/components/select.js +1 -1
- package/dist/components/separator.js +1 -1
- package/dist/components/settings.js +10 -10
- package/dist/components/settings.js.map +1 -1
- package/dist/components/sheet.js +3 -3
- package/dist/components/sidebar.js +1 -1
- package/dist/components/skeleton.js +1 -1
- package/dist/components/slider.js +1 -1
- package/dist/components/stat.js +3 -3
- package/dist/components/status-dot.js +1 -1
- package/dist/components/surface.js +1 -1
- package/dist/components/swap-text.js +1 -1
- package/dist/components/switch.js +1 -1
- package/dist/components/table.js +1 -1
- package/dist/components/tabs.js +24 -24
- package/dist/components/tabs.js.map +1 -1
- package/dist/components/tag.js +1 -1
- package/dist/components/text.js +1 -1
- package/dist/components/theme-image.js +1 -1
- package/dist/components/theme-menu.js +33 -30
- package/dist/components/theme-menu.js.map +1 -1
- package/dist/components/theme-select.js +1 -1
- package/dist/components/thumbnail.js +41 -0
- package/dist/components/thumbnail.js.map +1 -0
- package/dist/components/timeline.js +1 -1
- package/dist/components/toast.js +100 -91
- package/dist/components/toast.js.map +1 -1
- package/dist/components/toc.js +37 -22
- package/dist/components/toc.js.map +1 -1
- package/dist/components/toolbar.js +1 -1
- package/dist/components/tooltip.js +1 -1
- package/dist/components/visually-hidden.js +1 -1
- package/dist/format.js.map +1 -1
- package/dist/i18n-provider.js +1 -1
- package/dist/index.js +99 -95
- package/dist/kaeso.css +3 -0
- package/dist/styles.css +1 -1
- package/dist/types/blocks/delete-resource/delete-resource.d.ts +2 -5
- package/dist/types/blocks/resource-list/resource-list.d.ts +1 -4
- package/dist/types/component-docs.d.ts +1 -1
- package/dist/types/components/agent-avatar/agent-avatar.d.ts +94 -0
- package/dist/types/components/agent-avatar/docs.d.ts +19 -0
- package/dist/types/components/agent-avatar/index.d.ts +3 -0
- package/dist/types/components/agent-avatar/model-name.d.ts +9 -0
- package/dist/types/components/agent-avatar/models.d.ts +4 -0
- package/dist/types/components/app-frame/app-frame.d.ts +3 -8
- package/dist/types/components/app-frame/nav-sheet.d.ts +2 -4
- package/dist/types/components/calendar/calendar.d.ts +1 -4
- package/dist/types/components/charts/core.d.ts +11 -18
- package/dist/types/components/checkbox/checkbox.d.ts +2 -0
- package/dist/types/components/code-block/code-block.d.ts +1 -1
- package/dist/types/components/code-block/indent.d.ts +3 -0
- package/dist/types/components/combobox/combobox.d.ts +26 -2
- package/dist/types/components/command-list/command-list.d.ts +1 -0
- package/dist/types/components/command-list/docs.d.ts +1 -0
- package/dist/types/components/command-list/picker-popover.d.ts +1 -4
- package/dist/types/components/command-palette/command-palette.d.ts +2 -4
- package/dist/types/components/command-palette/docs.d.ts +1 -0
- package/dist/types/components/data-table/data-table.d.ts +2 -1
- package/dist/types/components/data-table/docs.d.ts +1 -0
- package/dist/types/components/dialog/dialog.d.ts +7 -9
- package/dist/types/components/dialog/docs.d.ts +2 -0
- package/dist/types/components/dialog/scope.d.ts +2 -0
- package/dist/types/components/dialog/step-dialog.d.ts +38 -5
- package/dist/types/components/display-options/display-options.d.ts +2 -5
- package/dist/types/components/figure/docs.d.ts +12 -0
- package/dist/types/components/figure/figure.d.ts +25 -0
- package/dist/types/components/figure/index.d.ts +1 -0
- package/dist/types/components/input/input.d.ts +23 -0
- package/dist/types/components/kaeso/client-button.d.ts +17 -0
- package/dist/types/components/kaeso/docs.d.ts +18 -0
- package/dist/types/components/kaeso/grant-summary.d.ts +12 -0
- package/dist/types/components/kaeso/identity.d.ts +2 -0
- package/dist/types/components/kaeso/index.d.ts +2 -0
- package/dist/types/components/kaeso/provider-picker.d.ts +5 -0
- package/dist/types/components/kaeso/usage.d.ts +2 -0
- package/dist/types/components/list/list.d.ts +4 -8
- package/dist/types/components/menu/docs.d.ts +8 -1
- package/dist/types/components/menu/menu.d.ts +19 -31
- package/dist/types/components/playground/parameter-panel.d.ts +1 -4
- package/dist/types/components/popover/hover-card.d.ts +2 -0
- package/dist/types/components/radio/docs.d.ts +15 -0
- package/dist/types/components/radio/radio.d.ts +2 -4
- package/dist/types/components/settings/settings.d.ts +2 -0
- package/dist/types/components/sidebar/sidebar.d.ts +13 -35
- package/dist/types/components/table/docs.d.ts +3 -1
- package/dist/types/components/table/table.d.ts +18 -1
- package/dist/types/components/tabs/tabs.d.ts +15 -0
- package/dist/types/components/theme-menu/docs.d.ts +2 -0
- package/dist/types/components/theme-menu/theme-menu.d.ts +6 -5
- package/dist/types/components/thumbnail/docs.d.ts +10 -0
- package/dist/types/components/thumbnail/index.d.ts +1 -0
- package/dist/types/components/thumbnail/thumbnail.d.ts +26 -0
- package/dist/types/components/toast/toast.d.ts +5 -12
- package/dist/types/components/toolbar/toolbar.d.ts +1 -6
- package/dist/types/components/tooltip/tooltip.d.ts +2 -4
- package/dist/types/components/tooltip/trigger-props.d.ts +0 -1
- package/dist/types/format/index.d.ts +5 -5
- package/dist/types/hooks/use-scroll-margin.d.ts +1 -1
- package/dist/types/icons/groups.d.ts +2 -2
- package/dist/types/icons/vocabulary.d.ts +15 -0
- package/dist/types/index.d.ts +3 -0
- package/dist/types/utils/cn.d.ts +4 -0
- package/dist/types/utils/inset.d.ts +4 -0
- package/dist/types/utils/link-provider.d.ts +1 -1
- package/dist/types/utils/merge-refs.d.ts +3 -0
- package/dist/types/utils/portal-context.d.ts +1 -1
- package/dist/utils.js +4 -4
- package/foundations/shape.md +1 -1
- package/package.json +3 -3
- package/dist/chunks/app-frame-DZPEf2NQ.js.map +0 -1
- package/dist/chunks/calendar-CeNcqLFd.js.map +0 -1
- package/dist/chunks/checkbox-C_DrNA2N.js.map +0 -1
- package/dist/chunks/cn-Isw2DnQX.js.map +0 -1
- package/dist/chunks/code-block-mEH6Sy3h.js.map +0 -1
- package/dist/chunks/combobox-D8ZOm8uT.js +0 -314
- package/dist/chunks/combobox-D8ZOm8uT.js.map +0 -1
- package/dist/chunks/command-list-CzMbdtJs.js.map +0 -1
- package/dist/chunks/core-FtMDNELx.js.map +0 -1
- package/dist/chunks/de-BnNQtBSV.js.map +0 -1
- package/dist/chunks/dialog-BZCVFmGF.js +0 -353
- package/dist/chunks/dialog-BZCVFmGF.js.map +0 -1
- package/dist/chunks/icon-CBzvyEqC.js +0 -91
- package/dist/chunks/icon-CBzvyEqC.js.map +0 -1
- package/dist/chunks/identity-BcVQd-7H.js.map +0 -1
- package/dist/chunks/input-B6Docqrk.js.map +0 -1
- package/dist/chunks/inset-BnBj8NJV.js.map +0 -1
- package/dist/chunks/link-provider-BsUxhZKG.js +0 -27
- package/dist/chunks/link-provider-BsUxhZKG.js.map +0 -1
- package/dist/chunks/menu-Cjg4RggA.js.map +0 -1
- package/dist/chunks/nav-sheet-Y2Ite-iF.js +0 -60
- package/dist/chunks/nav-sheet-Y2Ite-iF.js.map +0 -1
- package/dist/chunks/sidebar-DifJ5KgE.js.map +0 -1
- package/dist/chunks/table-CTxDp7zC.js +0 -67
- package/dist/chunks/table-CTxDp7zC.js.map +0 -1
- package/dist/chunks/tooltip-CRApbLF6.js +0 -151
- package/dist/chunks/tooltip-CRApbLF6.js.map +0 -1
- package/dist/chunks/use-scroll-margin-DfdTc_5D.js.map +0 -1
- package/dist/chunks/zh-CN-CKffAT7j.js.map +0 -1
- package/dist/components/scroll-area.js.map +0 -1
|
@@ -0,0 +1,319 @@
|
|
|
1
|
+
"use client";
|
|
2
|
+
import { i as e, o as t, r as n } from "./styles-CVJU9t9v.js";
|
|
3
|
+
import { t as r } from "./cn-Dj6sRgkF.js";
|
|
4
|
+
import { i } from "./dev-CR1p7gCm.js";
|
|
5
|
+
import { n as ee, r as a } from "./portal-context-BBbzDKmY.js";
|
|
6
|
+
import { i as te } from "./context-BELWW79w.js";
|
|
7
|
+
import { t as o } from "./icon-D7ja-_Yk.js";
|
|
8
|
+
import { a as ne, o as s, s as re } from "./field-TviMvYa2.js";
|
|
9
|
+
import { i as c } from "./input-group-DQ_4DoXg.js";
|
|
10
|
+
import { a as l } from "./tag-D_M1s2qS.js";
|
|
11
|
+
import { n as u, t as d } from "./use-layout-width-CbSDbRb0.js";
|
|
12
|
+
import { forwardRef as f, useEffect as ie, useMemo as p, useRef as m, useState as h } from "react";
|
|
13
|
+
import { Fragment as g, jsx as _, jsxs as v } from "react/jsx-runtime";
|
|
14
|
+
import { Add01Icon as y, ArrowDown01Icon as b, Cancel01Icon as x, Tick02Icon as S } from "@hugeicons/core-free-icons";
|
|
15
|
+
import { Combobox as C } from "@base-ui/react/combobox";
|
|
16
|
+
import { Autocomplete as w } from "@base-ui/react/autocomplete";
|
|
17
|
+
//#region src/components/combobox/combobox.tsx
|
|
18
|
+
var T = { size: {
|
|
19
|
+
sm: { classes: c.size.sm.classes },
|
|
20
|
+
md: { classes: c.size.md.classes },
|
|
21
|
+
lg: { classes: c.size.lg.classes },
|
|
22
|
+
xl: { classes: c.size.xl.classes }
|
|
23
|
+
} }, E = { size: "md" }, D = /* @__PURE__ */ f(function({ text: e, query: t }, n) {
|
|
24
|
+
let r = t.trim().toLowerCase();
|
|
25
|
+
if (!r) return /* @__PURE__ */ _("span", {
|
|
26
|
+
ref: n,
|
|
27
|
+
children: e
|
|
28
|
+
});
|
|
29
|
+
let i = e.toLowerCase().indexOf(r);
|
|
30
|
+
return i < 0 ? /* @__PURE__ */ _("span", {
|
|
31
|
+
ref: n,
|
|
32
|
+
className: "text-fg-secondary group-data-disabled/item:text-fg-disabled",
|
|
33
|
+
children: e
|
|
34
|
+
}) : /* @__PURE__ */ v("span", {
|
|
35
|
+
ref: n,
|
|
36
|
+
className: "text-fg-secondary group-data-disabled/item:text-fg-disabled",
|
|
37
|
+
children: [
|
|
38
|
+
e.slice(0, i),
|
|
39
|
+
/* @__PURE__ */ _("span", {
|
|
40
|
+
className: "text-fg group-data-disabled/item:text-fg-disabled",
|
|
41
|
+
children: e.slice(i, i + r.length)
|
|
42
|
+
}),
|
|
43
|
+
e.slice(i + r.length)
|
|
44
|
+
]
|
|
45
|
+
});
|
|
46
|
+
});
|
|
47
|
+
process.env.NODE_ENV !== "production" && (D.displayName = "Highlight");
|
|
48
|
+
function ae(e) {
|
|
49
|
+
e.key === "Escape" && e.currentTarget.getAttribute("aria-expanded") !== "true" && e.preventBaseUIHandler?.();
|
|
50
|
+
}
|
|
51
|
+
var O = /* @__PURE__ */ f(function(c, f) {
|
|
52
|
+
let { options: w, placeholder: E, size: O = "md", emptyText: k, loading: A, onInputValueChange: j, searchDelay: M = 0, onCreate: N, createLabel: P, disabled: F, invalid: I, id: L, name: R, label: z, description: B, error: V, optional: oe, required: se, layout: ce, className: H, multiple: U, "aria-label": W, "data-force": G } = c;
|
|
53
|
+
i("Combobox", H);
|
|
54
|
+
let K = te(), le = ne(), ue = s(c), [q, de] = h(""), J = m(null), fe = u(J), [pe, me] = h(() => c.defaultValue ?? (U ? [] : null)), Y = c.value === void 0 ? pe : c.value, X = (Array.isArray(Y) ? Y : Y == null ? [] : [Y]).join("\0"), he = m(/* @__PURE__ */ new Map()), ge = p(() => {
|
|
55
|
+
let e = new Set(X ? X.split("\0") : []), t = /* @__PURE__ */ new Map();
|
|
56
|
+
for (let [n, r] of he.current) e.has(n) && t.set(n, r);
|
|
57
|
+
for (let e of w) t.set(e.value, e);
|
|
58
|
+
return he.current = t, t;
|
|
59
|
+
}, [w, X]), { filtered: Z, hidden: _e } = p(() => {
|
|
60
|
+
let e = q.trim().toLowerCase(), t = e ? w.filter((t) => t.label.toLowerCase().includes(e) || t.value.toLowerCase().includes(e)) : w, n = t.slice(0, 100);
|
|
61
|
+
return N && e && !w.some((t) => t.label.toLowerCase() === e) && n.push({
|
|
62
|
+
value: `__create__${q}`,
|
|
63
|
+
label: q.trim(),
|
|
64
|
+
__create: !0
|
|
65
|
+
}), {
|
|
66
|
+
filtered: n,
|
|
67
|
+
hidden: Math.max(0, t.length - 100)
|
|
68
|
+
};
|
|
69
|
+
}, [
|
|
70
|
+
w,
|
|
71
|
+
q,
|
|
72
|
+
N
|
|
73
|
+
]), Q = m(j);
|
|
74
|
+
Q.current = j;
|
|
75
|
+
let $ = m(null);
|
|
76
|
+
ie(() => {
|
|
77
|
+
let e = $;
|
|
78
|
+
return () => {
|
|
79
|
+
e.current && clearTimeout(e.current);
|
|
80
|
+
};
|
|
81
|
+
}, []);
|
|
82
|
+
let ve = (e) => {
|
|
83
|
+
if (M <= 0) return Q.current?.(e);
|
|
84
|
+
$.current && clearTimeout($.current), $.current = setTimeout(() => {
|
|
85
|
+
$.current = null, Q.current?.(e);
|
|
86
|
+
}, M);
|
|
87
|
+
}, ye = Array.isArray(Y) ? Y.flatMap((e) => ge.get(e) ?? []) : Y == null ? null : ge.get(Y) ?? null, be = (e) => {
|
|
88
|
+
let t = Array.isArray(e) ? e : null, n = (t ?? [e]).find((e) => e && "__create" in e);
|
|
89
|
+
if (n) {
|
|
90
|
+
N?.(n.label);
|
|
91
|
+
return;
|
|
92
|
+
}
|
|
93
|
+
let r = U ? (t ?? []).map((e) => e.value) : e?.value ?? null;
|
|
94
|
+
c.value === void 0 && me(r), c.onValueChange?.(r);
|
|
95
|
+
}, xe = /* @__PURE__ */ _(C.Input, {
|
|
96
|
+
ref: f,
|
|
97
|
+
placeholder: E,
|
|
98
|
+
...L ? { id: L } : {},
|
|
99
|
+
...ue.controlProps,
|
|
100
|
+
...W ? { "aria-label": W } : {},
|
|
101
|
+
...I || V ? { "aria-invalid": !0 } : {},
|
|
102
|
+
onKeyDown: ae,
|
|
103
|
+
className: "min-w-80 flex-1 bg-transparent text-fg outline-none placeholder:text-fg-tertiary disabled:cursor-not-allowed"
|
|
104
|
+
}), Se = /* @__PURE__ */ v(C.Root, {
|
|
105
|
+
items: Z,
|
|
106
|
+
filteredItems: Z,
|
|
107
|
+
value: ye,
|
|
108
|
+
onValueChange: be,
|
|
109
|
+
onInputValueChange: (e) => {
|
|
110
|
+
de(e), ve(e);
|
|
111
|
+
},
|
|
112
|
+
autoHighlight: !0,
|
|
113
|
+
itemToStringLabel: (e) => e?.label ?? "",
|
|
114
|
+
isItemEqualToValue: (e, t) => e?.value === t?.value,
|
|
115
|
+
multiple: U === !0,
|
|
116
|
+
...F ? { disabled: F } : {},
|
|
117
|
+
...R ? { name: R } : {},
|
|
118
|
+
children: [U ? /* @__PURE__ */ _(C.Chips, {
|
|
119
|
+
ref: J,
|
|
120
|
+
...G ? { "data-force": G } : {},
|
|
121
|
+
className: r("flex min-h-36 w-full flex-wrap items-center gap-4 rounded-field p-4 material-field transition-control cursor-text", (I || V) && "ring-invalid", !(z || B || V) && H),
|
|
122
|
+
children: /* @__PURE__ */ _(C.Value, { children: (e) => /* @__PURE__ */ v(g, { children: [e.map((e) => /* @__PURE__ */ _(C.Chip, {
|
|
123
|
+
"aria-label": e.label,
|
|
124
|
+
className: "outline-none",
|
|
125
|
+
children: /* @__PURE__ */ v(l, {
|
|
126
|
+
className: "pr-2",
|
|
127
|
+
children: [e.label, /* @__PURE__ */ _(C.ChipRemove, {
|
|
128
|
+
"aria-label": K("combobox.remove", "Remove {label}", { label: e.label }),
|
|
129
|
+
className: "ml-2 inline-flex size-24 items-center justify-center rounded-pill text-fg-tertiary transition-control hover:bg-fill-2 hover:text-fg",
|
|
130
|
+
children: /* @__PURE__ */ _(o, {
|
|
131
|
+
icon: x,
|
|
132
|
+
size: "xs"
|
|
133
|
+
})
|
|
134
|
+
})]
|
|
135
|
+
})
|
|
136
|
+
}, e.value)), /* @__PURE__ */ _("span", {
|
|
137
|
+
className: r("flex h-28 min-w-80 flex-1 items-center", e.length === 0 ? "px-12" : "px-8"),
|
|
138
|
+
children: xe
|
|
139
|
+
})] }) })
|
|
140
|
+
}) : /* @__PURE__ */ v(C.InputGroup, {
|
|
141
|
+
ref: J,
|
|
142
|
+
...G ? { "data-force": G } : {},
|
|
143
|
+
className: r("relative flex w-full min-w-0 items-center rounded-pill material-field transition-control cursor-text", T.size[O].classes, "pr-4", (I || V) && "ring-invalid", !(z || B || V) && H),
|
|
144
|
+
children: [xe, /* @__PURE__ */ _(C.Trigger, {
|
|
145
|
+
"aria-label": K("combobox.showOptions", "Show options"),
|
|
146
|
+
className: "inline-flex size-28 shrink-0 items-center justify-center rounded-pill text-fg-tertiary transition-control hover:bg-fill-1 hover:text-fg",
|
|
147
|
+
children: /* @__PURE__ */ _(o, {
|
|
148
|
+
icon: b,
|
|
149
|
+
size: "sm"
|
|
150
|
+
})
|
|
151
|
+
})]
|
|
152
|
+
}), /* @__PURE__ */ _(C.Portal, {
|
|
153
|
+
container: a(),
|
|
154
|
+
children: /* @__PURE__ */ _(C.Positioner, {
|
|
155
|
+
anchor: J,
|
|
156
|
+
positionMethod: "fixed",
|
|
157
|
+
collisionBoundary: ee(),
|
|
158
|
+
align: "start",
|
|
159
|
+
sideOffset: 6,
|
|
160
|
+
collisionPadding: 8,
|
|
161
|
+
className: "z-50 outline-none",
|
|
162
|
+
children: /* @__PURE__ */ v(C.Popup, {
|
|
163
|
+
className: r(t, "relative min-w-anchor overflow-hidden"),
|
|
164
|
+
style: d(fe),
|
|
165
|
+
children: [
|
|
166
|
+
A && /* @__PURE__ */ _("span", {
|
|
167
|
+
"aria-hidden": !0,
|
|
168
|
+
className: "absolute inset-x-16 top-0 h-2 overflow-hidden rounded-pill",
|
|
169
|
+
children: /* @__PURE__ */ _("span", { className: "block h-full w-1/3 animate-indeterminate rounded-pill bg-fg-tertiary" })
|
|
170
|
+
}),
|
|
171
|
+
/* @__PURE__ */ _(C.Status, {
|
|
172
|
+
className: "sr-only",
|
|
173
|
+
children: A ? K("combobox.loadingResults", "Loading results") : ""
|
|
174
|
+
}),
|
|
175
|
+
/* @__PURE__ */ _(C.Empty, {
|
|
176
|
+
className: "flex h-34 items-center px-10 text-body text-fg-secondary empty:hidden",
|
|
177
|
+
children: A ? K("combobox.loading", "Loading…") : k ?? K("combobox.noResults", "No results")
|
|
178
|
+
}),
|
|
179
|
+
/* @__PURE__ */ _(C.List, {
|
|
180
|
+
className: "-m-6 flex min-h-0 flex-col overflow-y-auto overscroll-contain p-6 outline-none scrollbar-quiet",
|
|
181
|
+
children: (t) => /* @__PURE__ */ _(C.Item, {
|
|
182
|
+
value: t,
|
|
183
|
+
...t.disabled ? { disabled: !0 } : {},
|
|
184
|
+
className: e,
|
|
185
|
+
children: "__create" in t ? /* @__PURE__ */ v(g, { children: [/* @__PURE__ */ _(o, {
|
|
186
|
+
icon: y,
|
|
187
|
+
size: "sm",
|
|
188
|
+
className: n
|
|
189
|
+
}), /* @__PURE__ */ _("span", {
|
|
190
|
+
className: "min-w-0 flex-1 truncate",
|
|
191
|
+
children: P ? P(t.label) : K("combobox.add", "Add “{label}”", { label: t.label })
|
|
192
|
+
})] }) : /* @__PURE__ */ v(g, { children: [
|
|
193
|
+
t.leading,
|
|
194
|
+
t.icon && /* @__PURE__ */ _(o, {
|
|
195
|
+
icon: t.icon,
|
|
196
|
+
size: "sm",
|
|
197
|
+
className: "text-fg-secondary group-data-highlighted/item:text-fg group-data-disabled/item:text-fg-disabled"
|
|
198
|
+
}),
|
|
199
|
+
/* @__PURE__ */ v("span", {
|
|
200
|
+
className: r("flex min-w-0 flex-1 flex-col", t.description && "gap-2 py-8"),
|
|
201
|
+
children: [/* @__PURE__ */ _("span", {
|
|
202
|
+
className: "truncate",
|
|
203
|
+
children: /* @__PURE__ */ _(D, {
|
|
204
|
+
text: t.label,
|
|
205
|
+
query: q
|
|
206
|
+
})
|
|
207
|
+
}), t.description && /* @__PURE__ */ _("span", {
|
|
208
|
+
className: "text-small font-regular text-fg-secondary",
|
|
209
|
+
children: t.description
|
|
210
|
+
})]
|
|
211
|
+
}),
|
|
212
|
+
/* @__PURE__ */ _(C.ItemIndicator, {
|
|
213
|
+
keepMounted: !0,
|
|
214
|
+
className: "flex size-16 shrink-0 items-center justify-center text-fg opacity-0 data-selected:opacity-100",
|
|
215
|
+
children: /* @__PURE__ */ _(o, {
|
|
216
|
+
icon: S,
|
|
217
|
+
size: "sm"
|
|
218
|
+
})
|
|
219
|
+
})
|
|
220
|
+
] })
|
|
221
|
+
}, t.value)
|
|
222
|
+
}),
|
|
223
|
+
_e > 0 && /* @__PURE__ */ _("div", {
|
|
224
|
+
className: "flex h-28 shrink-0 items-center px-10 text-caption font-medium text-fg-tertiary",
|
|
225
|
+
children: K("combobox.more", "{count, plural, one {# more; type to narrow it down} other {# more; type to narrow them down}}", { count: _e })
|
|
226
|
+
})
|
|
227
|
+
]
|
|
228
|
+
})
|
|
229
|
+
})
|
|
230
|
+
})]
|
|
231
|
+
});
|
|
232
|
+
return le ? Se : re({
|
|
233
|
+
label: z,
|
|
234
|
+
description: B,
|
|
235
|
+
error: V,
|
|
236
|
+
optional: oe,
|
|
237
|
+
required: se,
|
|
238
|
+
layout: ce,
|
|
239
|
+
id: ue.wrapId ?? L,
|
|
240
|
+
disabled: F,
|
|
241
|
+
className: H
|
|
242
|
+
}, Se);
|
|
243
|
+
});
|
|
244
|
+
process.env.NODE_ENV !== "production" && (O.displayName = "Combobox");
|
|
245
|
+
var k = { size: T.size }, A = { size: "md" }, j = /* @__PURE__ */ f(function(n, i) {
|
|
246
|
+
let { suggestions: te, value: c, defaultValue: l, onValueChange: f, placeholder: ie, size: p = "md", disabled: g, id: y, name: b, leadingIcon: x, label: S, description: C, error: T, optional: E, required: O, layout: A, className: j, "aria-label": M, "data-force": N } = n, P = ne(), F = s(n), [I, L] = h(l ?? ""), R = m(null), z = u(R), B = c ?? I, V = /* @__PURE__ */ v(w.Root, {
|
|
247
|
+
items: te,
|
|
248
|
+
...c === void 0 ? {} : { value: c },
|
|
249
|
+
...l === void 0 ? {} : { defaultValue: l },
|
|
250
|
+
onValueChange: (e) => {
|
|
251
|
+
L(e), f?.(e);
|
|
252
|
+
},
|
|
253
|
+
...g ? { disabled: g } : {},
|
|
254
|
+
...b ? { name: b } : {},
|
|
255
|
+
children: [/* @__PURE__ */ v(w.InputGroup, {
|
|
256
|
+
ref: R,
|
|
257
|
+
...N ? { "data-force": N } : {},
|
|
258
|
+
className: r("relative flex w-full min-w-0 items-center rounded-pill material-field transition-control cursor-text", k.size[p].classes, x && "pl-14", n.error && "ring-invalid", !(S || C || T) && j),
|
|
259
|
+
children: [x && /* @__PURE__ */ _(o, {
|
|
260
|
+
icon: x,
|
|
261
|
+
size: "sm",
|
|
262
|
+
className: "text-fg-tertiary"
|
|
263
|
+
}), /* @__PURE__ */ _(w.Input, {
|
|
264
|
+
ref: i,
|
|
265
|
+
placeholder: ie,
|
|
266
|
+
...y ? { id: y } : {},
|
|
267
|
+
...F.controlProps,
|
|
268
|
+
...M ? { "aria-label": M } : {},
|
|
269
|
+
onKeyDown: ae,
|
|
270
|
+
className: "min-w-0 flex-1 bg-transparent text-fg outline-none placeholder:text-fg-tertiary"
|
|
271
|
+
})]
|
|
272
|
+
}), /* @__PURE__ */ _(w.Portal, {
|
|
273
|
+
container: a(),
|
|
274
|
+
children: /* @__PURE__ */ _(w.Positioner, {
|
|
275
|
+
anchor: R,
|
|
276
|
+
positionMethod: "fixed",
|
|
277
|
+
collisionBoundary: ee(),
|
|
278
|
+
align: "start",
|
|
279
|
+
sideOffset: 6,
|
|
280
|
+
collisionPadding: 8,
|
|
281
|
+
className: "z-50 outline-none",
|
|
282
|
+
children: /* @__PURE__ */ _(w.Popup, {
|
|
283
|
+
className: r(t, "min-w-anchor overflow-hidden data-empty:hidden"),
|
|
284
|
+
style: d(z),
|
|
285
|
+
children: /* @__PURE__ */ _(w.List, {
|
|
286
|
+
className: "-m-6 flex min-h-0 flex-col overflow-y-auto overscroll-contain p-6 outline-none scrollbar-quiet",
|
|
287
|
+
children: (t) => /* @__PURE__ */ _(w.Item, {
|
|
288
|
+
value: t,
|
|
289
|
+
className: e,
|
|
290
|
+
children: /* @__PURE__ */ _("span", {
|
|
291
|
+
className: "truncate",
|
|
292
|
+
children: /* @__PURE__ */ _(D, {
|
|
293
|
+
text: t,
|
|
294
|
+
query: B
|
|
295
|
+
})
|
|
296
|
+
})
|
|
297
|
+
}, t)
|
|
298
|
+
})
|
|
299
|
+
})
|
|
300
|
+
})
|
|
301
|
+
})]
|
|
302
|
+
});
|
|
303
|
+
return P ? V : re({
|
|
304
|
+
label: S,
|
|
305
|
+
description: C,
|
|
306
|
+
error: T,
|
|
307
|
+
optional: E,
|
|
308
|
+
required: O,
|
|
309
|
+
layout: A,
|
|
310
|
+
id: F.wrapId ?? y,
|
|
311
|
+
disabled: g,
|
|
312
|
+
className: j
|
|
313
|
+
}, V);
|
|
314
|
+
});
|
|
315
|
+
process.env.NODE_ENV !== "production" && (j.displayName = "Autocomplete");
|
|
316
|
+
//#endregion
|
|
317
|
+
export { k as a, A as i, O as n, E as o, D as r, T as s, j as t };
|
|
318
|
+
|
|
319
|
+
//# sourceMappingURL=combobox-DjDI7SUC.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"combobox-DjDI7SUC.js","names":["Combobox","BaseCombobox","_Fragment","__icon_Cancel01Icon","__icon_ArrowDown01Icon","__icon_Add01Icon","__icon_Tick02Icon","Autocomplete","BaseAutocomplete","MENU_ITEM","MENU_POPUP","MENU_ICON","cn","pageBoundary","usePortalContainer","useUiText","Icon","useField","useFieldControl","withField","KAESO_INPUT_GROUP_VARIANTS","Tag","useLayoutWidth","anchorWidthStyle","Fragment$1","KAESO_COMBOBOX_VARIANTS","KAESO_COMBOBOX_DEFAULT_VARIANTS","Highlight","q","query","text","keepValueOnEscape","Combobox$1","ariaLabel","force","props","className","t","field","fc","setQuery","useState","fieldRef","useRef","fieldWidth","inner","setInner","multiple","current","chosenKey","seen","byValue","useMemo","chosen","next","v","o","options","matched","list","onCreate","report","onInputValueChange","pending","timer","reportInput","searchDelay","rootValue","handleChange","arr","created","x","inputEl","Combobox","id","invalid","error","control","filtered","a","b","disabled","name","label","description","value","Cancel01Icon","size","ArrowDown01Icon","loading","emptyText","Add01Icon","createLabel","Tick02Icon","hidden","KAESO_AUTOCOMPLETE_VARIANTS","KAESO_AUTOCOMPLETE_DEFAULT_VARIANTS","Autocomplete$1","defaultValue","Autocomplete","suggestions","onValueChange","leadingIcon","s"],"sources":["../../src/components/combobox/combobox.tsx"],"sourcesContent":["import { pageBoundary, usePortalContainer } from \"../../utils/portal-context.js\";\nimport { forwardRef, useEffect, useMemo, useRef, useState, type KeyboardEvent, type ReactNode } from \"react\";\nimport { Combobox as BaseCombobox } from \"@base-ui/react/combobox\";\nimport { Autocomplete as BaseAutocomplete } from \"@base-ui/react/autocomplete\";\nimport { cn } from \"../../utils/cn.js\";\nimport { warnStylingClassName } from \"../../utils/dev.js\";\nimport { useField, useFieldControl, withField, type FieldWrapProps } from \"../field/field.js\";\nimport { Icon, type IconData } from \"../icon/icon.js\";\nimport { Cancel01Icon as __icon_Cancel01Icon, ArrowDown01Icon as __icon_ArrowDown01Icon, Add01Icon as __icon_Add01Icon, Tick02Icon as __icon_Tick02Icon } from \"@hugeicons/core-free-icons\";\nimport { KAESO_INPUT_GROUP_VARIANTS, type InputSize } from \"../input/input-group.js\";\nimport { Tag } from \"../tag/tag.js\";\nimport { MENU_ICON, MENU_ITEM, MENU_POPUP } from \"../menu/styles.js\";\n\nimport { anchorWidthStyle, useLayoutWidth } from \"../../hooks/use-layout-width.js\";\nimport { useUiText } from \"../../i18n/context.js\";\n\nexport const KAESO_COMBOBOX_VARIANTS = {\n size: {\n sm: {\n classes: KAESO_INPUT_GROUP_VARIANTS.size.sm.classes,\n },\n md: {\n classes: KAESO_INPUT_GROUP_VARIANTS.size.md.classes,\n },\n lg: {\n classes: KAESO_INPUT_GROUP_VARIANTS.size.lg.classes,\n },\n xl: {\n classes: KAESO_INPUT_GROUP_VARIANTS.size.xl.classes,\n },\n },\n} as const;\nexport const KAESO_COMBOBOX_DEFAULT_VARIANTS = { size: \"md\" } as const;\n\nexport interface ComboboxOption {\n value: string;\n label: string;\n description?: ReactNode | undefined;\n icon?: IconData | undefined;\n leading?: ReactNode | undefined;\n disabled?: boolean | undefined;\n}\n\ninterface CreateItem extends ComboboxOption {\n __create: true;\n}\n\nexport interface HighlightProps {\n text: string;\n query: string;\n}\n\nexport const Highlight = /* @__PURE__ */ forwardRef<HTMLSpanElement, HighlightProps>(function Highlight({ text, query }, ref) {\n const q = query.trim().toLowerCase();\n if (!q) return <span ref={ref}>{text}</span>;\n const i = text.toLowerCase().indexOf(q);\n if (i < 0)\n return (\n <span ref={ref} className=\"text-fg-secondary group-data-disabled/item:text-fg-disabled\">\n {text}\n </span>\n );\n return (\n <span ref={ref} className=\"text-fg-secondary group-data-disabled/item:text-fg-disabled\">\n {text.slice(0, i)}\n <span className=\"text-fg group-data-disabled/item:text-fg-disabled\">{text.slice(i, i + q.length)}</span>\n {text.slice(i + q.length)}\n </span>\n );\n});\nif (process.env.NODE_ENV !== \"production\") Highlight.displayName = \"Highlight\";\n\ninterface BaseProps extends FieldWrapProps {\n options: ComboboxOption[];\n placeholder?: string | undefined;\n size?: InputSize | undefined;\n emptyText?: ReactNode | undefined;\n loading?: boolean | undefined;\n onInputValueChange?: ((value: string) => void) | undefined;\n searchDelay?: number | undefined;\n onCreate?: ((label: string) => void) | undefined;\n createLabel?: ((label: string) => string) | undefined;\n disabled?: boolean | undefined;\n invalid?: boolean | undefined;\n id?: string | undefined;\n name?: string | undefined;\n \"aria-label\"?: string | undefined;\n className?: string | undefined;\n \"data-force\"?: string | undefined;\n}\nexport interface SingleComboboxProps extends BaseProps {\n multiple?: false | undefined;\n value?: string | null | undefined;\n defaultValue?: string | null | undefined;\n onValueChange?: ((value: string | null) => void) | undefined;\n}\nexport interface MultiComboboxProps extends BaseProps {\n multiple: true;\n value?: string[] | undefined;\n defaultValue?: string[] | undefined;\n onValueChange?: ((value: string[]) => void) | undefined;\n}\nexport type ComboboxProps = SingleComboboxProps | MultiComboboxProps;\n\nfunction keepValueOnEscape(e: KeyboardEvent<HTMLInputElement> & { preventBaseUIHandler?: (() => void) | undefined }) {\n if (e.key === \"Escape\" && e.currentTarget.getAttribute(\"aria-expanded\") !== \"true\") e.preventBaseUIHandler?.();\n}\n\nexport const Combobox = /* @__PURE__ */ forwardRef<HTMLInputElement, ComboboxProps>(function Combobox(props, ref) {\n const {\n options,\n placeholder,\n size = \"md\",\n emptyText,\n loading,\n onInputValueChange,\n searchDelay = 0,\n onCreate,\n createLabel,\n disabled,\n invalid,\n id,\n name,\n label,\n description,\n error,\n optional,\n required,\n layout,\n className,\n multiple,\n \"aria-label\": ariaLabel,\n \"data-force\": force,\n } = props;\n warnStylingClassName(\"Combobox\", className);\n const t = useUiText();\n const field = useField();\n const fc = useFieldControl(props);\n const [query, setQuery] = useState(\"\");\n const fieldRef = useRef<HTMLDivElement | null>(null);\n const fieldWidth = useLayoutWidth(fieldRef);\n const [inner, setInner] = useState<string | null | string[]>(() => props.defaultValue ?? (multiple ? [] : null));\n const current = props.value !== undefined ? props.value : inner;\n const chosenKey = (Array.isArray(current) ? current : current == null ? [] : [current]).join(\"\\u0000\");\n const seen = useRef(new Map<string, ComboboxOption>());\n const byValue = useMemo(() => {\n const chosen = new Set(chosenKey ? chosenKey.split(\"\\u0000\") : []);\n const next = new Map<string, ComboboxOption>();\n for (const [v, o] of seen.current) if (chosen.has(v)) next.set(v, o);\n for (const o of options) next.set(o.value, o);\n seen.current = next;\n return next;\n }, [options, chosenKey]);\n const { filtered, hidden } = useMemo(() => {\n const SHOWN_AT_MOST = 100;\n const q = query.trim().toLowerCase();\n const matched = q ? options.filter((o) => o.label.toLowerCase().includes(q) || o.value.toLowerCase().includes(q)) : options;\n const list: (ComboboxOption | CreateItem)[] = matched.slice(0, SHOWN_AT_MOST);\n if (onCreate && q && !options.some((o) => o.label.toLowerCase() === q))\n list.push({\n value: `__create__${query}`,\n label: query.trim(),\n __create: true,\n });\n return { filtered: list, hidden: Math.max(0, matched.length - SHOWN_AT_MOST) };\n }, [options, query, onCreate]);\n const report = useRef(onInputValueChange);\n report.current = onInputValueChange;\n const pending = useRef<ReturnType<typeof setTimeout> | null>(null);\n useEffect(() => {\n const timer = pending;\n return () => {\n if (timer.current) clearTimeout(timer.current);\n };\n }, []);\n const reportInput = (v: string) => {\n if (searchDelay <= 0) return report.current?.(v);\n if (pending.current) clearTimeout(pending.current);\n pending.current = setTimeout(() => {\n pending.current = null;\n report.current?.(v);\n }, searchDelay);\n };\n const rootValue = Array.isArray(current) ? current.flatMap((v) => byValue.get(v) ?? []) : current == null ? null : (byValue.get(current) ?? null);\n\n const handleChange = (v: unknown) => {\n const arr = Array.isArray(v) ? (v as (ComboboxOption | CreateItem)[]) : null;\n const created = (arr ?? [v as ComboboxOption | CreateItem | null]).find((x) => x && \"__create\" in x) as CreateItem | undefined;\n if (created) {\n onCreate?.(created.label);\n return;\n }\n const next = multiple ? (arr ?? []).map((x) => x.value) : ((v as ComboboxOption | null)?.value ?? null);\n if (props.value === undefined) setInner(next);\n if (multiple) (props.onValueChange as ((x: string[]) => void) | undefined)?.(next as string[]);\n else (props.onValueChange as ((x: string | null) => void) | undefined)?.(next as string | null);\n };\n\n const inputEl = (\n <BaseCombobox.Input\n ref={ref}\n placeholder={placeholder}\n {...(id ? { id } : {})}\n {...fc.controlProps}\n {...(ariaLabel ? { \"aria-label\": ariaLabel } : {})}\n {...(invalid || error ? { \"aria-invalid\": true } : {})}\n onKeyDown={keepValueOnEscape}\n className=\"min-w-80 flex-1 bg-transparent text-fg outline-none placeholder:text-fg-tertiary disabled:cursor-not-allowed\"\n />\n );\n\n const control = (\n <BaseCombobox.Root\n items={filtered}\n filteredItems={filtered}\n value={rootValue}\n onValueChange={handleChange}\n onInputValueChange={(v: string) => {\n setQuery(v);\n reportInput(v);\n }}\n autoHighlight\n itemToStringLabel={(o: ComboboxOption) => o?.label ?? \"\"}\n isItemEqualToValue={(a: ComboboxOption, b: ComboboxOption) => a?.value === b?.value}\n multiple={multiple === true}\n {...(disabled ? { disabled } : {})}\n {...(name ? { name } : {})}\n >\n {multiple ? (\n <BaseCombobox.Chips\n ref={fieldRef}\n {...(force ? { \"data-force\": force } : {})}\n className={cn(\n \"flex min-h-36 w-full flex-wrap items-center gap-4 rounded-field p-4 material-field transition-control cursor-text\",\n (invalid || error) && \"ring-invalid\",\n !(label || description || error) && className,\n )}\n >\n <BaseCombobox.Value>\n {(value: ComboboxOption[]) => (\n <>\n {value.map((o) => (\n <BaseCombobox.Chip key={o.value} aria-label={o.label} className=\"outline-none\">\n <Tag className=\"pr-2\">\n {o.label}\n <BaseCombobox.ChipRemove\n aria-label={t(\"combobox.remove\", \"Remove {label}\", { label: o.label })}\n className=\"ml-2 inline-flex size-24 items-center justify-center rounded-pill text-fg-tertiary transition-control hover:bg-fill-2 hover:text-fg\"\n >\n <Icon icon={__icon_Cancel01Icon} size=\"xs\" />\n </BaseCombobox.ChipRemove>\n </Tag>\n </BaseCombobox.Chip>\n ))}\n <span className={cn(\"flex h-28 min-w-80 flex-1 items-center\", value.length === 0 ? \"px-12\" : \"px-8\")}>{inputEl}</span>\n </>\n )}\n </BaseCombobox.Value>\n </BaseCombobox.Chips>\n ) : (\n <BaseCombobox.InputGroup\n ref={fieldRef}\n {...(force ? { \"data-force\": force } : {})}\n className={cn(\n \"relative flex w-full min-w-0 items-center rounded-pill material-field transition-control cursor-text\",\n KAESO_COMBOBOX_VARIANTS.size[size].classes,\n \"pr-4\",\n (invalid || error) && \"ring-invalid\",\n !(label || description || error) && className,\n )}\n >\n {inputEl}\n <BaseCombobox.Trigger\n aria-label={t(\"combobox.showOptions\", \"Show options\")}\n className=\"inline-flex size-28 shrink-0 items-center justify-center rounded-pill text-fg-tertiary transition-control hover:bg-fill-1 hover:text-fg\"\n >\n <Icon icon={__icon_ArrowDown01Icon} size=\"sm\" />\n </BaseCombobox.Trigger>\n </BaseCombobox.InputGroup>\n )}\n <BaseCombobox.Portal container={usePortalContainer()}>\n <BaseCombobox.Positioner\n anchor={fieldRef}\n positionMethod=\"fixed\"\n collisionBoundary={pageBoundary()}\n align=\"start\"\n sideOffset={6}\n collisionPadding={8}\n className=\"z-50 outline-none\"\n >\n <BaseCombobox.Popup className={cn(MENU_POPUP, \"relative min-w-anchor overflow-hidden\")} style={anchorWidthStyle(fieldWidth)}>\n {loading && (\n <span aria-hidden className=\"absolute inset-x-16 top-0 h-2 overflow-hidden rounded-pill\">\n <span className=\"block h-full w-1/3 animate-indeterminate rounded-pill bg-fg-tertiary\" />\n </span>\n )}\n <BaseCombobox.Status className=\"sr-only\">{loading ? t(\"combobox.loadingResults\", \"Loading results\") : \"\"}</BaseCombobox.Status>\n <BaseCombobox.Empty className=\"flex h-34 items-center px-10 text-body text-fg-secondary empty:hidden\">\n {loading ? t(\"combobox.loading\", \"Loading…\") : (emptyText ?? t(\"combobox.noResults\", \"No results\"))}\n </BaseCombobox.Empty>\n <BaseCombobox.List className=\"-m-6 flex min-h-0 flex-col overflow-y-auto overscroll-contain p-6 outline-none scrollbar-quiet\">\n {(o: ComboboxOption | CreateItem) => (\n <BaseCombobox.Item key={o.value} value={o} {...(o.disabled ? { disabled: true } : {})} className={MENU_ITEM}>\n {\"__create\" in o ? (\n <>\n <Icon icon={__icon_Add01Icon} size=\"sm\" className={MENU_ICON} />\n <span className=\"min-w-0 flex-1 truncate\">\n {createLabel ? createLabel(o.label) : t(\"combobox.add\", \"Add “{label}”\", { label: o.label })}\n </span>\n </>\n ) : (\n <>\n {o.leading}\n {o.icon && <Icon icon={o.icon} size=\"sm\" className={MENU_ICON} />}\n <span className={cn(\"flex min-w-0 flex-1 flex-col\", o.description && \"gap-2 py-8\")}>\n <span className=\"truncate\">\n <Highlight text={o.label} query={query} />\n </span>\n {o.description && <span className=\"text-small font-regular text-fg-secondary\">{o.description}</span>}\n </span>\n <BaseCombobox.ItemIndicator\n keepMounted\n className=\"flex size-16 shrink-0 items-center justify-center text-fg opacity-0 data-selected:opacity-100\"\n >\n <Icon icon={__icon_Tick02Icon} size=\"sm\" />\n </BaseCombobox.ItemIndicator>\n </>\n )}\n </BaseCombobox.Item>\n )}\n </BaseCombobox.List>\n {hidden > 0 && (\n <div className=\"flex h-28 shrink-0 items-center px-10 text-caption font-medium text-fg-tertiary\">\n {t(\"combobox.more\", \"{count, plural, one {# more; type to narrow it down} other {# more; type to narrow them down}}\", { count: hidden })}\n </div>\n )}\n </BaseCombobox.Popup>\n </BaseCombobox.Positioner>\n </BaseCombobox.Portal>\n </BaseCombobox.Root>\n );\n if (field) return control;\n return withField(\n {\n label,\n description,\n error,\n optional,\n required,\n layout,\n id: fc.wrapId ?? id,\n disabled,\n className,\n },\n control,\n );\n});\nif (process.env.NODE_ENV !== \"production\") Combobox.displayName = \"Combobox\";\n\nexport const KAESO_AUTOCOMPLETE_VARIANTS = { size: KAESO_COMBOBOX_VARIANTS.size } as const;\nexport const KAESO_AUTOCOMPLETE_DEFAULT_VARIANTS = { size: \"md\" } as const;\n\nexport interface AutocompleteProps extends FieldWrapProps {\n suggestions: string[];\n value?: string | undefined;\n defaultValue?: string | undefined;\n onValueChange?: ((value: string) => void) | undefined;\n placeholder?: string | undefined;\n size?: InputSize | undefined;\n disabled?: boolean | undefined;\n id?: string | undefined;\n name?: string | undefined;\n leadingIcon?: IconData | undefined;\n \"aria-label\"?: string | undefined;\n className?: string | undefined;\n \"data-force\"?: string | undefined;\n}\n\nexport const Autocomplete = /* @__PURE__ */ forwardRef<HTMLInputElement, AutocompleteProps>(function Autocomplete(props, ref) {\n const {\n suggestions,\n value,\n defaultValue,\n onValueChange,\n placeholder,\n size = \"md\",\n disabled,\n id,\n name,\n leadingIcon,\n label,\n description,\n error,\n optional,\n required,\n layout,\n className,\n \"aria-label\": ariaLabel,\n \"data-force\": force,\n } = props;\n const field = useField();\n const fc = useFieldControl(props);\n const [query, setQuery] = useState(defaultValue ?? \"\");\n const fieldRef = useRef<HTMLDivElement | null>(null);\n const fieldWidth = useLayoutWidth(fieldRef);\n const current = value ?? query;\n const control = (\n <BaseAutocomplete.Root\n items={suggestions}\n {...(value !== undefined ? { value } : {})}\n {...(defaultValue !== undefined ? { defaultValue } : {})}\n onValueChange={(v: string) => {\n setQuery(v);\n onValueChange?.(v);\n }}\n {...(disabled ? { disabled } : {})}\n {...(name ? { name } : {})}\n >\n <BaseAutocomplete.InputGroup\n ref={fieldRef}\n {...(force ? { \"data-force\": force } : {})}\n className={cn(\n \"relative flex w-full min-w-0 items-center rounded-pill material-field transition-control cursor-text\",\n KAESO_AUTOCOMPLETE_VARIANTS.size[size].classes,\n leadingIcon && \"pl-14\",\n props.error && \"ring-invalid\",\n !(label || description || error) && className,\n )}\n >\n {leadingIcon && <Icon icon={leadingIcon} size=\"sm\" className=\"text-fg-tertiary\" />}\n <BaseAutocomplete.Input\n ref={ref}\n placeholder={placeholder}\n {...(id ? { id } : {})}\n {...fc.controlProps}\n {...(ariaLabel ? { \"aria-label\": ariaLabel } : {})}\n onKeyDown={keepValueOnEscape}\n className=\"min-w-0 flex-1 bg-transparent text-fg outline-none placeholder:text-fg-tertiary\"\n />\n </BaseAutocomplete.InputGroup>\n <BaseAutocomplete.Portal container={usePortalContainer()}>\n <BaseAutocomplete.Positioner\n anchor={fieldRef}\n positionMethod=\"fixed\"\n collisionBoundary={pageBoundary()}\n align=\"start\"\n sideOffset={6}\n collisionPadding={8}\n className=\"z-50 outline-none\"\n >\n <BaseAutocomplete.Popup className={cn(MENU_POPUP, \"min-w-anchor overflow-hidden data-empty:hidden\")} style={anchorWidthStyle(fieldWidth)}>\n <BaseAutocomplete.List className=\"-m-6 flex min-h-0 flex-col overflow-y-auto overscroll-contain p-6 outline-none scrollbar-quiet\">\n {(s: string) => (\n <BaseAutocomplete.Item key={s} value={s} className={MENU_ITEM}>\n <span className=\"truncate\">\n <Highlight text={s} query={current} />\n </span>\n </BaseAutocomplete.Item>\n )}\n </BaseAutocomplete.List>\n </BaseAutocomplete.Popup>\n </BaseAutocomplete.Positioner>\n </BaseAutocomplete.Portal>\n </BaseAutocomplete.Root>\n );\n if (field) return control;\n return withField(\n {\n label,\n description,\n error,\n optional,\n required,\n layout,\n id: fc.wrapId ?? id,\n disabled,\n className,\n },\n control,\n );\n});\nif (process.env.NODE_ENV !== \"production\") Autocomplete.displayName = \"Autocomplete\";\n"],"mappings":"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"}
|