@logicplanes/kaeso-ui 0.1.0
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
- package/AGENTS.md +124 -0
- package/CLAUDE.md +3 -0
- package/LICENSE +21 -0
- package/NOTICE.md +5 -0
- package/README.md +43 -0
- package/ai/component-guides.md +4760 -0
- package/ai/component-registry.json +12626 -0
- package/ai/component-registry.md +2950 -0
- package/ai/icons.md +28 -0
- package/ai/tokens.md +207 -0
- package/dist/blocks/delete-resource.js +35 -0
- package/dist/blocks/delete-resource.js.map +1 -0
- package/dist/blocks/pages.js +70 -0
- package/dist/blocks/pages.js.map +1 -0
- package/dist/blocks/resource-list.js +68 -0
- package/dist/blocks/resource-list.js.map +1 -0
- package/dist/chunks/app-frame-BBIMch8X.js +224 -0
- package/dist/chunks/app-frame-BBIMch8X.js.map +1 -0
- package/dist/chunks/arrow-focus-BcySmwwU.js +11 -0
- package/dist/chunks/arrow-focus-BcySmwwU.js.map +1 -0
- package/dist/chunks/avatar-D2nJNbtC.js +83 -0
- package/dist/chunks/avatar-D2nJNbtC.js.map +1 -0
- package/dist/chunks/badge-Dkyhs0_j.js +26 -0
- package/dist/chunks/badge-Dkyhs0_j.js.map +1 -0
- package/dist/chunks/banner-BiziJuBZ.js +85 -0
- package/dist/chunks/banner-BiziJuBZ.js.map +1 -0
- package/dist/chunks/button-BHKAE6ui.js +164 -0
- package/dist/chunks/button-BHKAE6ui.js.map +1 -0
- package/dist/chunks/calendar-B5SSTE56.js +104 -0
- package/dist/chunks/calendar-B5SSTE56.js.map +1 -0
- package/dist/chunks/checkbox-BgRdbfCE.js +124 -0
- package/dist/chunks/checkbox-BgRdbfCE.js.map +1 -0
- package/dist/chunks/cn-CidVUKMm.js +669 -0
- package/dist/chunks/cn-CidVUKMm.js.map +1 -0
- package/dist/chunks/code-DDyOlIFO.js +23 -0
- package/dist/chunks/code-DDyOlIFO.js.map +1 -0
- package/dist/chunks/code-block-BbK6E4Eo.js +273 -0
- package/dist/chunks/code-block-BbK6E4Eo.js.map +1 -0
- package/dist/chunks/collapsible-Cw_1aem5.js +87 -0
- package/dist/chunks/collapsible-Cw_1aem5.js.map +1 -0
- package/dist/chunks/combobox-D8pQk22r.js +291 -0
- package/dist/chunks/combobox-D8pQk22r.js.map +1 -0
- package/dist/chunks/context-BELWW79w.js +20 -0
- package/dist/chunks/context-BELWW79w.js.map +1 -0
- package/dist/chunks/copy-button-mAzHjYXq.js +109 -0
- package/dist/chunks/copy-button-mAzHjYXq.js.map +1 -0
- package/dist/chunks/core-Bgefcs3z.js +467 -0
- package/dist/chunks/core-Bgefcs3z.js.map +1 -0
- package/dist/chunks/date-popup-Er1oQwtU.js +35 -0
- package/dist/chunks/date-popup-Er1oQwtU.js.map +1 -0
- package/dist/chunks/de-BCg1eRVd.js +384 -0
- package/dist/chunks/de-BCg1eRVd.js.map +1 -0
- package/dist/chunks/dev-CR1p7gCm.js +30 -0
- package/dist/chunks/dev-CR1p7gCm.js.map +1 -0
- package/dist/chunks/dialog-CVqSVk3T.js +283 -0
- package/dist/chunks/dialog-CVqSVk3T.js.map +1 -0
- package/dist/chunks/empty-DIbBpytW.js +38 -0
- package/dist/chunks/empty-DIbBpytW.js.map +1 -0
- package/dist/chunks/field-d8V94bvZ.js +119 -0
- package/dist/chunks/field-d8V94bvZ.js.map +1 -0
- package/dist/chunks/field-press-DwzBFafd.js +10 -0
- package/dist/chunks/field-press-DwzBFafd.js.map +1 -0
- package/dist/chunks/i18n-0RW0IAf3.js +10 -0
- package/dist/chunks/i18n-0RW0IAf3.js.map +1 -0
- package/dist/chunks/icon-Bha63LaN.js +90 -0
- package/dist/chunks/icon-Bha63LaN.js.map +1 -0
- package/dist/chunks/icon-CeNQtobn.js +47 -0
- package/dist/chunks/icon-CeNQtobn.js.map +1 -0
- package/dist/chunks/icon-button-Bw67oKtx.js +50 -0
- package/dist/chunks/icon-button-Bw67oKtx.js.map +1 -0
- package/dist/chunks/identity-DQinp-Ep.js +342 -0
- package/dist/chunks/identity-DQinp-Ep.js.map +1 -0
- package/dist/chunks/input-Biakz6GB.js +114 -0
- package/dist/chunks/input-Biakz6GB.js.map +1 -0
- package/dist/chunks/input-group-DQqEPFj_.js +87 -0
- package/dist/chunks/input-group-DQqEPFj_.js.map +1 -0
- package/dist/chunks/inset-BLMdxX4I.js +18 -0
- package/dist/chunks/inset-BLMdxX4I.js.map +1 -0
- package/dist/chunks/iso-field-CznqNVrH.js +31 -0
- package/dist/chunks/iso-field-CznqNVrH.js.map +1 -0
- package/dist/chunks/json-view-B6KHIWzh.js +174 -0
- package/dist/chunks/json-view-B6KHIWzh.js.map +1 -0
- package/dist/chunks/kbd-CBcBDvqU.js +132 -0
- package/dist/chunks/kbd-CBcBDvqU.js.map +1 -0
- package/dist/chunks/labelled-D5udSPUI.js +16 -0
- package/dist/chunks/labelled-D5udSPUI.js.map +1 -0
- package/dist/chunks/link-provider---9JdxTg.js +27 -0
- package/dist/chunks/link-provider---9JdxTg.js.map +1 -0
- package/dist/chunks/link-tTapNTpM.js +47 -0
- package/dist/chunks/link-tTapNTpM.js.map +1 -0
- package/dist/chunks/list-CN8pO8lv.js +475 -0
- package/dist/chunks/list-CN8pO8lv.js.map +1 -0
- package/dist/chunks/loader-CUehxvSZ.js +57 -0
- package/dist/chunks/loader-CUehxvSZ.js.map +1 -0
- package/dist/chunks/logo-VmXYhIJL.js +149 -0
- package/dist/chunks/logo-VmXYhIJL.js.map +1 -0
- package/dist/chunks/markdown-C-iJsYnd.js +313 -0
- package/dist/chunks/markdown-C-iJsYnd.js.map +1 -0
- package/dist/chunks/menu-OURWt_hD.js +447 -0
- package/dist/chunks/menu-OURWt_hD.js.map +1 -0
- package/dist/chunks/message-BxTkh1oA.js +49 -0
- package/dist/chunks/message-BxTkh1oA.js.map +1 -0
- package/dist/chunks/meter-DWhyzFGQ.js +84 -0
- package/dist/chunks/meter-DWhyzFGQ.js.map +1 -0
- package/dist/chunks/page-header-BIRswR73.js +41 -0
- package/dist/chunks/page-header-BIRswR73.js.map +1 -0
- package/dist/chunks/pagination-DYdLm18-.js +85 -0
- package/dist/chunks/pagination-DYdLm18-.js.map +1 -0
- package/dist/chunks/popover-BE7VO-a4.js +50 -0
- package/dist/chunks/popover-BE7VO-a4.js.map +1 -0
- package/dist/chunks/popover-root-D3q89WNF.js +26 -0
- package/dist/chunks/popover-root-D3q89WNF.js.map +1 -0
- package/dist/chunks/portal-context-BBbzDKmY.js +33 -0
- package/dist/chunks/portal-context-BBbzDKmY.js.map +1 -0
- package/dist/chunks/radio-CUxbLCvD.js +110 -0
- package/dist/chunks/radio-CUxbLCvD.js.map +1 -0
- package/dist/chunks/range-popup-AbRzgHtY.js +111 -0
- package/dist/chunks/range-popup-AbRzgHtY.js.map +1 -0
- package/dist/chunks/restore-focus-Cap1Q-R3.js +19 -0
- package/dist/chunks/restore-focus-Cap1Q-R3.js.map +1 -0
- package/dist/chunks/rights-CXo7zEf6.js +279 -0
- package/dist/chunks/rights-CXo7zEf6.js.map +1 -0
- package/dist/chunks/safe-href-G5DBNVwm.js +13 -0
- package/dist/chunks/safe-href-G5DBNVwm.js.map +1 -0
- package/dist/chunks/scroll-parent-WXvzQcUo.js +14 -0
- package/dist/chunks/scroll-parent-WXvzQcUo.js.map +1 -0
- package/dist/chunks/section-XStLtXKa.js +87 -0
- package/dist/chunks/section-XStLtXKa.js.map +1 -0
- package/dist/chunks/segmented-CDTx2n29.js +113 -0
- package/dist/chunks/segmented-CDTx2n29.js.map +1 -0
- package/dist/chunks/select-Ca3HGsN1.js +223 -0
- package/dist/chunks/select-Ca3HGsN1.js.map +1 -0
- package/dist/chunks/separator-D5AzVFTS.js +45 -0
- package/dist/chunks/separator-D5AzVFTS.js.map +1 -0
- package/dist/chunks/sidebar-C4fL_KMm.js +599 -0
- package/dist/chunks/sidebar-C4fL_KMm.js.map +1 -0
- package/dist/chunks/sidebar-menu-sd9vCpDy.js +33 -0
- package/dist/chunks/sidebar-menu-sd9vCpDy.js.map +1 -0
- package/dist/chunks/skeleton-kfuqdl1a.js +36 -0
- package/dist/chunks/skeleton-kfuqdl1a.js.map +1 -0
- package/dist/chunks/slider-DbhjJ3ML.js +57 -0
- package/dist/chunks/slider-DbhjJ3ML.js.map +1 -0
- package/dist/chunks/status-dot-CBoQpyL4.js +25 -0
- package/dist/chunks/status-dot-CBoQpyL4.js.map +1 -0
- package/dist/chunks/styles-Btvg2DCf.js +21 -0
- package/dist/chunks/styles-Btvg2DCf.js.map +1 -0
- package/dist/chunks/swap-text-BhPI8DOf.js +28 -0
- package/dist/chunks/swap-text-BhPI8DOf.js.map +1 -0
- package/dist/chunks/switch-CztLhA8F.js +59 -0
- package/dist/chunks/switch-CztLhA8F.js.map +1 -0
- package/dist/chunks/table-DYKa86af.js +67 -0
- package/dist/chunks/table-DYKa86af.js.map +1 -0
- package/dist/chunks/tag-BsmQ1xPj.js +87 -0
- package/dist/chunks/tag-BsmQ1xPj.js.map +1 -0
- package/dist/chunks/text-BPglS3vq.js +63 -0
- package/dist/chunks/text-BPglS3vq.js.map +1 -0
- package/dist/chunks/textarea-Bvk7N2bh.js +156 -0
- package/dist/chunks/textarea-Bvk7N2bh.js.map +1 -0
- package/dist/chunks/theme-provider-mgUaQK7L.js +69 -0
- package/dist/chunks/theme-provider-mgUaQK7L.js.map +1 -0
- package/dist/chunks/tone-CWpsHPb6.js +11 -0
- package/dist/chunks/tone-CWpsHPb6.js.map +1 -0
- package/dist/chunks/toolbar-Dw3uxpsE.js +36 -0
- package/dist/chunks/toolbar-Dw3uxpsE.js.map +1 -0
- package/dist/chunks/tooltip-CDu00nzg.js +124 -0
- package/dist/chunks/tooltip-CDu00nzg.js.map +1 -0
- package/dist/chunks/tooltip-root-DWhtAtFb.js +60 -0
- package/dist/chunks/tooltip-root-DWhtAtFb.js.map +1 -0
- package/dist/chunks/use-controllable-B5Fd12Bx.js +13 -0
- package/dist/chunks/use-controllable-B5Fd12Bx.js.map +1 -0
- package/dist/chunks/use-copy-Dm2ncvMX.js +24 -0
- package/dist/chunks/use-copy-Dm2ncvMX.js.map +1 -0
- package/dist/chunks/use-layout-width-DZaLOQMT.js +27 -0
- package/dist/chunks/use-layout-width-DZaLOQMT.js.map +1 -0
- package/dist/chunks/use-scroll-margin-DWcfIXac.js +25 -0
- package/dist/chunks/use-scroll-margin-DWcfIXac.js.map +1 -0
- package/dist/chunks/use-truncated-DmQoePvG.js +25 -0
- package/dist/chunks/use-truncated-DmQoePvG.js.map +1 -0
- package/dist/chunks/utils-CdH72WEp.js +8 -0
- package/dist/chunks/utils-CdH72WEp.js.map +1 -0
- package/dist/chunks/virtual-rows-BgMdVelU.js +37 -0
- package/dist/chunks/virtual-rows-BgMdVelU.js.map +1 -0
- package/dist/chunks/when-idle-Cy3pinqO.js +12 -0
- package/dist/chunks/when-idle-Cy3pinqO.js.map +1 -0
- package/dist/chunks/zh-CN-cPjO1OOo.js +384 -0
- package/dist/chunks/zh-CN-cPjO1OOo.js.map +1 -0
- package/dist/components/app-frame.js +2 -0
- package/dist/components/avatar.js +2 -0
- package/dist/components/badge.js +2 -0
- package/dist/components/banner.js +2 -0
- package/dist/components/button-group.js +69 -0
- package/dist/components/button-group.js.map +1 -0
- package/dist/components/button.js +2 -0
- package/dist/components/calendar.js +2 -0
- package/dist/components/charts/bar.js +231 -0
- package/dist/components/charts/bar.js.map +1 -0
- package/dist/components/charts/donut.js +179 -0
- package/dist/components/charts/donut.js.map +1 -0
- package/dist/components/charts/gauge.js +70 -0
- package/dist/components/charts/gauge.js.map +1 -0
- package/dist/components/charts/heatmap.js +83 -0
- package/dist/components/charts/heatmap.js.map +1 -0
- package/dist/components/charts/sankey.js +110 -0
- package/dist/components/charts/sankey.js.map +1 -0
- package/dist/components/charts/sparkline.js +72 -0
- package/dist/components/charts/sparkline.js.map +1 -0
- package/dist/components/charts/timeseries.js +253 -0
- package/dist/components/charts/timeseries.js.map +1 -0
- package/dist/components/charts.js +10 -0
- package/dist/components/checkbox.js +2 -0
- package/dist/components/code-block.js +4 -0
- package/dist/components/code.js +2 -0
- package/dist/components/collapsible.js +2 -0
- package/dist/components/combobox.js +2 -0
- package/dist/components/command-palette.js +216 -0
- package/dist/components/command-palette.js.map +1 -0
- package/dist/components/copy-button.js +2 -0
- package/dist/components/data-table.js +399 -0
- package/dist/components/data-table.js.map +1 -0
- package/dist/components/date-picker.js +327 -0
- package/dist/components/date-picker.js.map +1 -0
- package/dist/components/dialog.js +178 -0
- package/dist/components/dialog.js.map +1 -0
- package/dist/components/display-options.js +112 -0
- package/dist/components/display-options.js.map +1 -0
- package/dist/components/empty.js +2 -0
- package/dist/components/field.js +2 -0
- package/dist/components/filter-chip.js +120 -0
- package/dist/components/filter-chip.js.map +1 -0
- package/dist/components/filter-row.js +35 -0
- package/dist/components/filter-row.js.map +1 -0
- package/dist/components/flow.js +111 -0
- package/dist/components/flow.js.map +1 -0
- package/dist/components/heading.js +28 -0
- package/dist/components/heading.js.map +1 -0
- package/dist/components/icon-button.js +2 -0
- package/dist/components/icon.js +4 -0
- package/dist/components/input.js +181 -0
- package/dist/components/input.js.map +1 -0
- package/dist/components/kaeso/conversation.js +204 -0
- package/dist/components/kaeso/conversation.js.map +1 -0
- package/dist/components/kaeso/identity.js +2 -0
- package/dist/components/kaeso/moments.js +122 -0
- package/dist/components/kaeso/moments.js.map +1 -0
- package/dist/components/kaeso/rights.js +2 -0
- package/dist/components/kaeso/usage.js +101 -0
- package/dist/components/kaeso/usage.js.map +1 -0
- package/dist/components/kaeso.js +186 -0
- package/dist/components/kaeso.js.map +1 -0
- package/dist/components/kbd.js +2 -0
- package/dist/components/key-value.js +73 -0
- package/dist/components/key-value.js.map +1 -0
- package/dist/components/label.js +26 -0
- package/dist/components/label.js.map +1 -0
- package/dist/components/layout.js +72 -0
- package/dist/components/layout.js.map +1 -0
- package/dist/components/link.js +2 -0
- package/dist/components/list.js +2 -0
- package/dist/components/loader.js +38 -0
- package/dist/components/loader.js.map +1 -0
- package/dist/components/logo.js +2 -0
- package/dist/components/markdown.js +4 -0
- package/dist/components/menu.js +4 -0
- package/dist/components/meter.js +2 -0
- package/dist/components/page-header.js +2 -0
- package/dist/components/pagination.js +2 -0
- package/dist/components/playground.js +813 -0
- package/dist/components/playground.js.map +1 -0
- package/dist/components/popover.js +53 -0
- package/dist/components/popover.js.map +1 -0
- package/dist/components/portal.js +15 -0
- package/dist/components/portal.js.map +1 -0
- package/dist/components/qr-code.js +38 -0
- package/dist/components/qr-code.js.map +1 -0
- package/dist/components/radio.js +2 -0
- package/dist/components/scroll-area.js +35 -0
- package/dist/components/scroll-area.js.map +1 -0
- package/dist/components/section.js +2 -0
- package/dist/components/segmented.js +2 -0
- package/dist/components/select.js +2 -0
- package/dist/components/separator.js +2 -0
- package/dist/components/settings.js +99 -0
- package/dist/components/settings.js.map +1 -0
- package/dist/components/sheet.js +94 -0
- package/dist/components/sheet.js.map +1 -0
- package/dist/components/sidebar.js +2 -0
- package/dist/components/skeleton.js +2 -0
- package/dist/components/slider.js +2 -0
- package/dist/components/stat.js +195 -0
- package/dist/components/stat.js.map +1 -0
- package/dist/components/status-dot.js +2 -0
- package/dist/components/surface.js +26 -0
- package/dist/components/surface.js.map +1 -0
- package/dist/components/swap-text.js +2 -0
- package/dist/components/switch.js +2 -0
- package/dist/components/table.js +2 -0
- package/dist/components/tabs.js +96 -0
- package/dist/components/tabs.js.map +1 -0
- package/dist/components/tag.js +2 -0
- package/dist/components/text.js +2 -0
- package/dist/components/theme-menu.js +50 -0
- package/dist/components/theme-menu.js.map +1 -0
- package/dist/components/timeline.js +58 -0
- package/dist/components/timeline.js.map +1 -0
- package/dist/components/toast.js +214 -0
- package/dist/components/toast.js.map +1 -0
- package/dist/components/toc.js +48 -0
- package/dist/components/toc.js.map +1 -0
- package/dist/components/toolbar.js +2 -0
- package/dist/components/tooltip.js +18 -0
- package/dist/components/tooltip.js.map +1 -0
- package/dist/components/visually-hidden.js +17 -0
- package/dist/components/visually-hidden.js.map +1 -0
- package/dist/fonts/LICENSE-GeistMono.txt +93 -0
- package/dist/fonts/LICENSE-Inter.txt +93 -0
- package/dist/fonts/geist-mono-latin-ext-wght-normal.woff2 +0 -0
- package/dist/fonts/geist-mono-latin-wght-normal.woff2 +0 -0
- package/dist/fonts/inter-latin-ext-opsz-normal.woff2 +0 -0
- package/dist/fonts/inter-latin-opsz-normal.woff2 +0 -0
- package/dist/fonts.css +40 -0
- package/dist/format.js +178 -0
- package/dist/format.js.map +1 -0
- package/dist/i18n-locales.js +23 -0
- package/dist/i18n-locales.js.map +1 -0
- package/dist/i18n-provider.js +30 -0
- package/dist/i18n-provider.js.map +1 -0
- package/dist/i18n.js +7 -0
- package/dist/index.js +153 -0
- package/dist/kaeso.css +1099 -0
- package/dist/styles.css +2 -0
- package/dist/tailwind.css +10 -0
- package/dist/theme.js +2 -0
- package/dist/types/blocks/delete-resource/delete-resource.d.ts +32 -0
- package/dist/types/blocks/delete-resource/docs.d.ts +17 -0
- package/dist/types/blocks/delete-resource/index.d.ts +1 -0
- package/dist/types/blocks/pages/docs.d.ts +42 -0
- package/dist/types/blocks/pages/index.d.ts +1 -0
- package/dist/types/blocks/pages/pages.d.ts +65 -0
- package/dist/types/blocks/resource-list/docs.d.ts +15 -0
- package/dist/types/blocks/resource-list/index.d.ts +1 -0
- package/dist/types/blocks/resource-list/resource-list.d.ts +36 -0
- package/dist/types/component-docs.d.ts +7 -0
- package/dist/types/components/app-frame/app-frame.d.ts +79 -0
- package/dist/types/components/app-frame/docs.d.ts +23 -0
- package/dist/types/components/app-frame/index.d.ts +1 -0
- package/dist/types/components/avatar/avatar.d.ts +60 -0
- package/dist/types/components/avatar/docs.d.ts +21 -0
- package/dist/types/components/avatar/index.d.ts +1 -0
- package/dist/types/components/badge/badge.d.ts +41 -0
- package/dist/types/components/badge/docs.d.ts +9 -0
- package/dist/types/components/badge/index.d.ts +1 -0
- package/dist/types/components/banner/banner.d.ts +51 -0
- package/dist/types/components/banner/docs.d.ts +14 -0
- package/dist/types/components/banner/index.d.ts +1 -0
- package/dist/types/components/button/button.d.ts +116 -0
- package/dist/types/components/button/docs.d.ts +23 -0
- package/dist/types/components/button/index.d.ts +1 -0
- package/dist/types/components/button-group/button-group.d.ts +55 -0
- package/dist/types/components/button-group/docs.d.ts +11 -0
- package/dist/types/components/button-group/index.d.ts +1 -0
- package/dist/types/components/calendar/calendar.d.ts +32 -0
- package/dist/types/components/calendar/docs.d.ts +16 -0
- package/dist/types/components/calendar/index.d.ts +1 -0
- package/dist/types/components/charts/bar.d.ts +39 -0
- package/dist/types/components/charts/core.d.ts +167 -0
- package/dist/types/components/charts/docs.d.ts +174 -0
- package/dist/types/components/charts/donut.d.ts +67 -0
- package/dist/types/components/charts/gauge.d.ts +20 -0
- package/dist/types/components/charts/heatmap.d.ts +24 -0
- package/dist/types/components/charts/index.d.ts +8 -0
- package/dist/types/components/charts/sankey.d.ts +29 -0
- package/dist/types/components/charts/sparkline.d.ts +18 -0
- package/dist/types/components/charts/timeseries.d.ts +47 -0
- package/dist/types/components/checkbox/checkbox.d.ts +53 -0
- package/dist/types/components/checkbox/docs.d.ts +58 -0
- package/dist/types/components/checkbox/index.d.ts +1 -0
- package/dist/types/components/code/code.d.ts +24 -0
- package/dist/types/components/code/docs.d.ts +8 -0
- package/dist/types/components/code/index.d.ts +1 -0
- package/dist/types/components/code-block/code-block.d.ts +37 -0
- package/dist/types/components/code-block/docs.d.ts +41 -0
- package/dist/types/components/code-block/highlighter.d.ts +23 -0
- package/dist/types/components/code-block/index.d.ts +4 -0
- package/dist/types/components/code-block/json-view.d.ts +23 -0
- package/dist/types/components/code-block/kaeso-theme.d.ts +66 -0
- package/dist/types/components/collapsible/collapsible.d.ts +39 -0
- package/dist/types/components/collapsible/docs.d.ts +21 -0
- package/dist/types/components/collapsible/index.d.ts +1 -0
- package/dist/types/components/combobox/combobox.d.ts +86 -0
- package/dist/types/components/combobox/docs.d.ts +62 -0
- package/dist/types/components/combobox/index.d.ts +1 -0
- package/dist/types/components/command-palette/command-palette.d.ts +44 -0
- package/dist/types/components/command-palette/docs.d.ts +17 -0
- package/dist/types/components/command-palette/index.d.ts +1 -0
- package/dist/types/components/copy-button/copy-button.d.ts +85 -0
- package/dist/types/components/copy-button/docs.d.ts +30 -0
- package/dist/types/components/copy-button/index.d.ts +1 -0
- package/dist/types/components/data-table/columns.d.ts +47 -0
- package/dist/types/components/data-table/data-table.d.ts +80 -0
- package/dist/types/components/data-table/docs.d.ts +32 -0
- package/dist/types/components/data-table/index.d.ts +3 -0
- package/dist/types/components/date-picker/date-picker.d.ts +55 -0
- package/dist/types/components/date-picker/date-popup.d.ts +9 -0
- package/dist/types/components/date-picker/docs.d.ts +73 -0
- package/dist/types/components/date-picker/index.d.ts +2 -0
- package/dist/types/components/date-picker/iso-field.d.ts +5 -0
- package/dist/types/components/date-picker/range-popup.d.ts +13 -0
- package/dist/types/components/date-picker/time-input.d.ts +39 -0
- package/dist/types/components/dialog/dialog.d.ts +118 -0
- package/dist/types/components/dialog/docs.d.ts +70 -0
- package/dist/types/components/dialog/focus.d.ts +2 -0
- package/dist/types/components/dialog/index.d.ts +2 -0
- package/dist/types/components/dialog/step-dialog.d.ts +26 -0
- package/dist/types/components/display-options/display-options.d.ts +55 -0
- package/dist/types/components/display-options/docs.d.ts +14 -0
- package/dist/types/components/display-options/index.d.ts +1 -0
- package/dist/types/components/empty/docs.d.ts +12 -0
- package/dist/types/components/empty/empty.d.ts +29 -0
- package/dist/types/components/empty/index.d.ts +1 -0
- package/dist/types/components/field/docs.d.ts +20 -0
- package/dist/types/components/field/field.d.ts +78 -0
- package/dist/types/components/field/index.d.ts +1 -0
- package/dist/types/components/filter-chip/docs.d.ts +19 -0
- package/dist/types/components/filter-chip/filter-chip.d.ts +37 -0
- package/dist/types/components/filter-chip/index.d.ts +1 -0
- package/dist/types/components/filter-row/docs.d.ts +11 -0
- package/dist/types/components/filter-row/filter-row.d.ts +23 -0
- package/dist/types/components/filter-row/index.d.ts +1 -0
- package/dist/types/components/flow/docs.d.ts +12 -0
- package/dist/types/components/flow/flow.d.ts +34 -0
- package/dist/types/components/flow/index.d.ts +1 -0
- package/dist/types/components/heading/docs.d.ts +10 -0
- package/dist/types/components/heading/heading.d.ts +30 -0
- package/dist/types/components/heading/index.d.ts +1 -0
- package/dist/types/components/icon/docs.d.ts +10 -0
- package/dist/types/components/icon/icon.d.ts +37 -0
- package/dist/types/components/icon/index.d.ts +2 -0
- package/dist/types/components/icon-button/docs.d.ts +17 -0
- package/dist/types/components/icon-button/icon-button.d.ts +75 -0
- package/dist/types/components/icon-button/index.d.ts +1 -0
- package/dist/types/components/input/decimal.d.ts +11 -0
- package/dist/types/components/input/docs.d.ts +149 -0
- package/dist/types/components/input/index.d.ts +8 -0
- package/dist/types/components/input/input-group.d.ts +55 -0
- package/dist/types/components/input/input.d.ts +45 -0
- package/dist/types/components/input/number-input.d.ts +28 -0
- package/dist/types/components/input/otp-input.d.ts +27 -0
- package/dist/types/components/input/sensitive-input.d.ts +21 -0
- package/dist/types/components/input/tag-input.d.ts +27 -0
- package/dist/types/components/input/textarea.d.ts +25 -0
- package/dist/types/components/kaeso/conversation.d.ts +58 -0
- package/dist/types/components/kaeso/docs.d.ts +139 -0
- package/dist/types/components/kaeso/effective-access.d.ts +21 -0
- package/dist/types/components/kaeso/identity.d.ts +70 -0
- package/dist/types/components/kaeso/index.d.ts +8 -0
- package/dist/types/components/kaeso/moments.d.ts +30 -0
- package/dist/types/components/kaeso/provider-marks.d.ts +1 -0
- package/dist/types/components/kaeso/rights-logic.d.ts +13 -0
- package/dist/types/components/kaeso/rights.d.ts +69 -0
- package/dist/types/components/kaeso/role-picker.d.ts +38 -0
- package/dist/types/components/kaeso/usage.d.ts +35 -0
- package/dist/types/components/kbd/docs.d.ts +16 -0
- package/dist/types/components/kbd/index.d.ts +1 -0
- package/dist/types/components/kbd/kbd.d.ts +31 -0
- package/dist/types/components/key-value/docs.d.ts +10 -0
- package/dist/types/components/key-value/index.d.ts +1 -0
- package/dist/types/components/key-value/key-value.d.ts +50 -0
- package/dist/types/components/label/docs.d.ts +10 -0
- package/dist/types/components/label/index.d.ts +1 -0
- package/dist/types/components/label/label.d.ts +22 -0
- package/dist/types/components/layout/docs.d.ts +30 -0
- package/dist/types/components/layout/index.d.ts +1 -0
- package/dist/types/components/layout/layout.d.ts +100 -0
- package/dist/types/components/link/docs.d.ts +11 -0
- package/dist/types/components/link/index.d.ts +1 -0
- package/dist/types/components/link/link.d.ts +27 -0
- package/dist/types/components/list/docs.d.ts +75 -0
- package/dist/types/components/list/index.d.ts +1 -0
- package/dist/types/components/list/list.d.ts +119 -0
- package/dist/types/components/list/row-checkbox.d.ts +5 -0
- package/dist/types/components/list/virtual-rows.d.ts +10 -0
- package/dist/types/components/loader/docs.d.ts +21 -0
- package/dist/types/components/loader/index.d.ts +2 -0
- package/dist/types/components/loader/loader.d.ts +35 -0
- package/dist/types/components/loader/status.d.ts +55 -0
- package/dist/types/components/logo/docs.d.ts +10 -0
- package/dist/types/components/logo/index.d.ts +1 -0
- package/dist/types/components/logo/logo.d.ts +59 -0
- package/dist/types/components/logo/paths.d.ts +16 -0
- package/dist/types/components/markdown/docs.d.ts +15 -0
- package/dist/types/components/markdown/index.d.ts +1 -0
- package/dist/types/components/markdown/markdown.d.ts +54 -0
- package/dist/types/components/menu/docs.d.ts +19 -0
- package/dist/types/components/menu/index.d.ts +2 -0
- package/dist/types/components/menu/menu.d.ts +213 -0
- package/dist/types/components/menu/styles.d.ts +7 -0
- package/dist/types/components/meter/docs.d.ts +23 -0
- package/dist/types/components/meter/index.d.ts +1 -0
- package/dist/types/components/meter/meter.d.ts +51 -0
- package/dist/types/components/page-header/docs.d.ts +12 -0
- package/dist/types/components/page-header/index.d.ts +1 -0
- package/dist/types/components/page-header/page-header.d.ts +22 -0
- package/dist/types/components/pagination/docs.d.ts +17 -0
- package/dist/types/components/pagination/index.d.ts +1 -0
- package/dist/types/components/pagination/pagination.d.ts +33 -0
- package/dist/types/components/playground/compare-grid.d.ts +41 -0
- package/dist/types/components/playground/composer.d.ts +40 -0
- package/dist/types/components/playground/docs.d.ts +141 -0
- package/dist/types/components/playground/index.d.ts +7 -0
- package/dist/types/components/playground/model-picker.d.ts +37 -0
- package/dist/types/components/playground/parameter-panel.d.ts +52 -0
- package/dist/types/components/playground/prompt-suggestions.d.ts +23 -0
- package/dist/types/components/playground/response-metrics.d.ts +30 -0
- package/dist/types/components/playground/response-view.d.ts +55 -0
- package/dist/types/components/popover/docs.d.ts +21 -0
- package/dist/types/components/popover/hover-card.d.ts +24 -0
- package/dist/types/components/popover/index.d.ts +2 -0
- package/dist/types/components/popover/popover-root.d.ts +24 -0
- package/dist/types/components/popover/popover.d.ts +40 -0
- package/dist/types/components/portal/docs.d.ts +9 -0
- package/dist/types/components/portal/index.d.ts +1 -0
- package/dist/types/components/portal/portal.d.ts +11 -0
- package/dist/types/components/qr-code/docs.d.ts +10 -0
- package/dist/types/components/qr-code/index.d.ts +1 -0
- package/dist/types/components/qr-code/qr-code.d.ts +22 -0
- package/dist/types/components/radio/docs.d.ts +42 -0
- package/dist/types/components/radio/index.d.ts +1 -0
- package/dist/types/components/radio/labelled.d.ts +13 -0
- package/dist/types/components/radio/radio.d.ts +51 -0
- package/dist/types/components/scroll-area/docs.d.ts +11 -0
- package/dist/types/components/scroll-area/index.d.ts +1 -0
- package/dist/types/components/scroll-area/scroll-area.d.ts +28 -0
- package/dist/types/components/section/docs.d.ts +28 -0
- package/dist/types/components/section/index.d.ts +1 -0
- package/dist/types/components/section/section.d.ts +37 -0
- package/dist/types/components/segmented/docs.d.ts +15 -0
- package/dist/types/components/segmented/index.d.ts +1 -0
- package/dist/types/components/segmented/segmented.d.ts +37 -0
- package/dist/types/components/select/docs.d.ts +32 -0
- package/dist/types/components/select/index.d.ts +1 -0
- package/dist/types/components/select/select.d.ts +82 -0
- package/dist/types/components/separator/docs.d.ts +10 -0
- package/dist/types/components/separator/index.d.ts +1 -0
- package/dist/types/components/separator/separator.d.ts +33 -0
- package/dist/types/components/settings/docs.d.ts +32 -0
- package/dist/types/components/settings/index.d.ts +1 -0
- package/dist/types/components/settings/settings.d.ts +45 -0
- package/dist/types/components/sheet/docs.d.ts +20 -0
- package/dist/types/components/sheet/index.d.ts +1 -0
- package/dist/types/components/sheet/sheet.d.ts +51 -0
- package/dist/types/components/sidebar/docs.d.ts +20 -0
- package/dist/types/components/sidebar/index.d.ts +1 -0
- package/dist/types/components/sidebar/sidebar-menu.d.ts +16 -0
- package/dist/types/components/sidebar/sidebar.d.ts +178 -0
- package/dist/types/components/skeleton/docs.d.ts +14 -0
- package/dist/types/components/skeleton/index.d.ts +1 -0
- package/dist/types/components/skeleton/skeleton.d.ts +31 -0
- package/dist/types/components/slider/docs.d.ts +20 -0
- package/dist/types/components/slider/index.d.ts +1 -0
- package/dist/types/components/slider/slider.d.ts +29 -0
- package/dist/types/components/stat/docs.d.ts +35 -0
- package/dist/types/components/stat/index.d.ts +1 -0
- package/dist/types/components/stat/stat.d.ts +68 -0
- package/dist/types/components/status-dot/docs.d.ts +18 -0
- package/dist/types/components/status-dot/index.d.ts +1 -0
- package/dist/types/components/status-dot/status-dot.d.ts +36 -0
- package/dist/types/components/surface/docs.d.ts +8 -0
- package/dist/types/components/surface/index.d.ts +1 -0
- package/dist/types/components/surface/surface.d.ts +44 -0
- package/dist/types/components/swap-text/docs.d.ts +10 -0
- package/dist/types/components/swap-text/index.d.ts +1 -0
- package/dist/types/components/swap-text/swap-text.d.ts +22 -0
- package/dist/types/components/switch/docs.d.ts +21 -0
- package/dist/types/components/switch/index.d.ts +1 -0
- package/dist/types/components/switch/switch.d.ts +39 -0
- package/dist/types/components/table/docs.d.ts +6 -0
- package/dist/types/components/table/index.d.ts +1 -0
- package/dist/types/components/table/table.d.ts +30 -0
- package/dist/types/components/tabs/docs.d.ts +22 -0
- package/dist/types/components/tabs/index.d.ts +1 -0
- package/dist/types/components/tabs/tabs.d.ts +61 -0
- package/dist/types/components/tag/docs.d.ts +30 -0
- package/dist/types/components/tag/index.d.ts +1 -0
- package/dist/types/components/tag/tag.d.ts +63 -0
- package/dist/types/components/text/docs.d.ts +15 -0
- package/dist/types/components/text/index.d.ts +1 -0
- package/dist/types/components/text/text.d.ts +111 -0
- package/dist/types/components/theme-menu/docs.d.ts +9 -0
- package/dist/types/components/theme-menu/index.d.ts +1 -0
- package/dist/types/components/theme-menu/theme-menu.d.ts +22 -0
- package/dist/types/components/timeline/docs.d.ts +8 -0
- package/dist/types/components/timeline/index.d.ts +1 -0
- package/dist/types/components/timeline/timeline.d.ts +41 -0
- package/dist/types/components/toast/docs.d.ts +26 -0
- package/dist/types/components/toast/index.d.ts +1 -0
- package/dist/types/components/toast/toast.d.ts +91 -0
- package/dist/types/components/toc/docs.d.ts +10 -0
- package/dist/types/components/toc/index.d.ts +1 -0
- package/dist/types/components/toc/toc.d.ts +27 -0
- package/dist/types/components/toolbar/docs.d.ts +9 -0
- package/dist/types/components/toolbar/index.d.ts +1 -0
- package/dist/types/components/toolbar/toolbar.d.ts +28 -0
- package/dist/types/components/tooltip/docs.d.ts +33 -0
- package/dist/types/components/tooltip/index.d.ts +2 -0
- package/dist/types/components/tooltip/tooltip-provider.d.ts +8 -0
- package/dist/types/components/tooltip/tooltip-root.d.ts +9 -0
- package/dist/types/components/tooltip/tooltip.d.ts +60 -0
- package/dist/types/components/tooltip/trigger-props.d.ts +23 -0
- package/dist/types/components/visually-hidden/docs.d.ts +6 -0
- package/dist/types/components/visually-hidden/index.d.ts +1 -0
- package/dist/types/components/visually-hidden/visually-hidden.d.ts +4 -0
- package/dist/types/format/index.d.ts +26 -0
- package/dist/types/hooks/scroll-parent.d.ts +1 -0
- package/dist/types/hooks/use-copy.d.ts +4 -0
- package/dist/types/hooks/use-indicator.d.ts +9 -0
- package/dist/types/hooks/use-layout-width.d.ts +3 -0
- package/dist/types/hooks/use-scroll-margin.d.ts +2 -0
- package/dist/types/hooks/use-stored-state.d.ts +1 -0
- package/dist/types/hooks/use-truncated.d.ts +2 -0
- package/dist/types/i18n/context.d.ts +11 -0
- package/dist/types/i18n/index.d.ts +5 -0
- package/dist/types/i18n/locale-names.d.ts +2 -0
- package/dist/types/i18n/locale-tags.d.ts +4 -0
- package/dist/types/i18n/locales/de.d.ts +2 -0
- package/dist/types/i18n/locales/en.d.ts +2 -0
- package/dist/types/i18n/locales/zh-CN.d.ts +2 -0
- package/dist/types/i18n/message.d.ts +2 -0
- package/dist/types/i18n/provider.d.ts +10 -0
- package/dist/types/icons/groups.d.ts +8 -0
- package/dist/types/icons/vocabulary.d.ts +413 -0
- package/dist/types/index.d.ts +79 -0
- package/dist/types/theme/index.d.ts +1 -0
- package/dist/types/theme/theme-provider.d.ts +22 -0
- package/dist/types/utils/arrow-focus.d.ts +2 -0
- package/dist/types/utils/cn.d.ts +370 -0
- package/dist/types/utils/dev.d.ts +4 -0
- package/dist/types/utils/field-press.d.ts +2 -0
- package/dist/types/utils/index.d.ts +8 -0
- package/dist/types/utils/inset.d.ts +6 -0
- package/dist/types/utils/lazy-module.d.ts +8 -0
- package/dist/types/utils/link-provider.d.ts +15 -0
- package/dist/types/utils/portal-context.d.ts +10 -0
- package/dist/types/utils/restore-focus.d.ts +4 -0
- package/dist/types/utils/safe-href.d.ts +1 -0
- package/dist/types/utils/tone.d.ts +2 -0
- package/dist/types/utils/use-controllable.d.ts +1 -0
- package/dist/types/utils/variants.d.ts +5 -0
- package/dist/types/utils/when-idle.d.ts +1 -0
- package/dist/utils.js +9 -0
- package/foundations/accessibility.md +41 -0
- package/foundations/color.md +40 -0
- package/foundations/elevation.md +23 -0
- package/foundations/icons.md +14 -0
- package/foundations/motion.md +39 -0
- package/foundations/psychology.md +36 -0
- package/foundations/shape.md +41 -0
- package/foundations/tokens.md +24 -0
- package/foundations/typography.md +35 -0
- package/foundations/writing.md +39 -0
- package/package.json +144 -0
|
@@ -0,0 +1,291 @@
|
|
|
1
|
+
"use client";
|
|
2
|
+
import { i as e, o as t, r as n } from "./styles-Btvg2DCf.js";
|
|
3
|
+
import { t as r } from "./cn-CidVUKMm.js";
|
|
4
|
+
import { i } from "./dev-CR1p7gCm.js";
|
|
5
|
+
import { n as a, r as o } from "./portal-context-BBbzDKmY.js";
|
|
6
|
+
import { i as s } from "./context-BELWW79w.js";
|
|
7
|
+
import { t as c } from "./icon-CeNQtobn.js";
|
|
8
|
+
import { a as l, o as u, s as d } from "./field-d8V94bvZ.js";
|
|
9
|
+
import { i as f } from "./input-group-DQqEPFj_.js";
|
|
10
|
+
import { a as p } from "./tag-BsmQ1xPj.js";
|
|
11
|
+
import { n as ee, t as te } from "./use-layout-width-DZaLOQMT.js";
|
|
12
|
+
import { forwardRef as m, useMemo as h, useRef as g, useState as _ } from "react";
|
|
13
|
+
import { Fragment as v, jsx as y, jsxs as b } from "react/jsx-runtime";
|
|
14
|
+
import { Add01Icon as x, ArrowDown01Icon as S, Cancel01Icon as C, Tick02Icon as w } from "@hugeicons/core-free-icons";
|
|
15
|
+
import { Combobox as T } from "@base-ui/react/combobox";
|
|
16
|
+
import { Autocomplete as E } from "@base-ui/react/autocomplete";
|
|
17
|
+
//#region src/components/combobox/combobox.tsx
|
|
18
|
+
var D = { size: {
|
|
19
|
+
sm: { classes: f.size.sm.classes },
|
|
20
|
+
md: { classes: f.size.md.classes },
|
|
21
|
+
lg: { classes: f.size.lg.classes },
|
|
22
|
+
xl: { classes: f.size.xl.classes }
|
|
23
|
+
} }, O = { size: "md" };
|
|
24
|
+
function k({ text: e, query: t }) {
|
|
25
|
+
let n = t.trim().toLowerCase();
|
|
26
|
+
if (!n) return /* @__PURE__ */ y(v, { children: e });
|
|
27
|
+
let r = e.toLowerCase().indexOf(n);
|
|
28
|
+
return r < 0 ? /* @__PURE__ */ y("span", {
|
|
29
|
+
className: "text-fg-secondary",
|
|
30
|
+
children: e
|
|
31
|
+
}) : /* @__PURE__ */ b("span", {
|
|
32
|
+
className: "text-fg-secondary",
|
|
33
|
+
children: [
|
|
34
|
+
e.slice(0, r),
|
|
35
|
+
/* @__PURE__ */ y("span", {
|
|
36
|
+
className: "text-fg",
|
|
37
|
+
children: e.slice(r, r + n.length)
|
|
38
|
+
}),
|
|
39
|
+
e.slice(r + n.length)
|
|
40
|
+
]
|
|
41
|
+
});
|
|
42
|
+
}
|
|
43
|
+
function ne(e) {
|
|
44
|
+
e.key === "Escape" && e.currentTarget.getAttribute("aria-expanded") !== "true" && e.preventBaseUIHandler?.();
|
|
45
|
+
}
|
|
46
|
+
var A = /* @__PURE__ */ m(function(f, m) {
|
|
47
|
+
let { options: E, placeholder: O, size: A = "md", emptyText: j, loading: M, onInputValueChange: N, onCreate: P, disabled: F, invalid: I, id: L, name: R, label: z, description: B, error: V, optional: H, required: U, layout: W, className: G, multiple: K, "aria-label": q, "data-force": J } = f;
|
|
48
|
+
i("Combobox", G);
|
|
49
|
+
let Y = s(), re = l(), X = u(f), [Z, ie] = _(""), Q = g(null), ae = ee(Q), oe = g(/* @__PURE__ */ new Map()), se = h(() => {
|
|
50
|
+
for (let e of E) oe.current.set(e.value, e);
|
|
51
|
+
return oe.current;
|
|
52
|
+
}, [E]), ce = h(() => {
|
|
53
|
+
let e = Z.trim().toLowerCase(), t = e ? E.filter((t) => t.label.toLowerCase().includes(e) || t.value.toLowerCase().includes(e)) : E;
|
|
54
|
+
return P && e && !E.some((t) => t.label.toLowerCase() === e) && t.push({
|
|
55
|
+
value: `__create__${Z}`,
|
|
56
|
+
label: Z.trim(),
|
|
57
|
+
__create: !0
|
|
58
|
+
}), t;
|
|
59
|
+
}, [
|
|
60
|
+
E,
|
|
61
|
+
Z,
|
|
62
|
+
P
|
|
63
|
+
]), [le, ue] = _(() => f.defaultValue ?? (K ? [] : null)), $ = f.value === void 0 ? le : f.value, de = Array.isArray($) ? $.flatMap((e) => se.get(e) ?? []) : $ == null ? null : se.get($) ?? null, fe = (e) => {
|
|
64
|
+
let t = Array.isArray(e) ? e : null, n = (t ?? [e]).find((e) => e && "__create" in e);
|
|
65
|
+
if (n) {
|
|
66
|
+
P?.(n.label);
|
|
67
|
+
return;
|
|
68
|
+
}
|
|
69
|
+
let r = K ? (t ?? []).map((e) => e.value) : e?.value ?? null;
|
|
70
|
+
f.value === void 0 && ue(r), f.onValueChange?.(r);
|
|
71
|
+
}, pe = /* @__PURE__ */ y(T.Input, {
|
|
72
|
+
ref: m,
|
|
73
|
+
placeholder: O,
|
|
74
|
+
...L ? { id: L } : {},
|
|
75
|
+
...X.controlProps,
|
|
76
|
+
...q ? { "aria-label": q } : {},
|
|
77
|
+
...I || V ? { "aria-invalid": !0 } : {},
|
|
78
|
+
onKeyDown: ne,
|
|
79
|
+
className: "min-w-80 flex-1 bg-transparent text-fg outline-none placeholder:text-fg-tertiary disabled:cursor-not-allowed"
|
|
80
|
+
}), me = /* @__PURE__ */ b(T.Root, {
|
|
81
|
+
items: ce,
|
|
82
|
+
filteredItems: ce,
|
|
83
|
+
value: de,
|
|
84
|
+
onValueChange: fe,
|
|
85
|
+
onInputValueChange: (e) => {
|
|
86
|
+
ie(e), N?.(e);
|
|
87
|
+
},
|
|
88
|
+
autoHighlight: !0,
|
|
89
|
+
itemToStringLabel: (e) => e?.label ?? "",
|
|
90
|
+
isItemEqualToValue: (e, t) => e?.value === t?.value,
|
|
91
|
+
multiple: K === !0,
|
|
92
|
+
...F ? { disabled: F } : {},
|
|
93
|
+
...R ? { name: R } : {},
|
|
94
|
+
children: [K ? /* @__PURE__ */ y(T.Chips, {
|
|
95
|
+
ref: Q,
|
|
96
|
+
...J ? { "data-force": J } : {},
|
|
97
|
+
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) && G),
|
|
98
|
+
children: /* @__PURE__ */ y(T.Value, { children: (e) => /* @__PURE__ */ b(v, { children: [e.map((e) => /* @__PURE__ */ y(T.Chip, {
|
|
99
|
+
"aria-label": e.label,
|
|
100
|
+
className: "outline-none",
|
|
101
|
+
children: /* @__PURE__ */ b(p, {
|
|
102
|
+
className: "pr-2",
|
|
103
|
+
children: [e.label, /* @__PURE__ */ y(T.ChipRemove, {
|
|
104
|
+
"aria-label": Y("combobox.remove", "Remove {label}", { label: e.label }),
|
|
105
|
+
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",
|
|
106
|
+
children: /* @__PURE__ */ y(c, {
|
|
107
|
+
icon: C,
|
|
108
|
+
size: "xs"
|
|
109
|
+
})
|
|
110
|
+
})]
|
|
111
|
+
})
|
|
112
|
+
}, e.value)), /* @__PURE__ */ y("span", {
|
|
113
|
+
className: r("flex h-28 min-w-80 flex-1 items-center", e.length === 0 ? "px-12" : "px-8"),
|
|
114
|
+
children: pe
|
|
115
|
+
})] }) })
|
|
116
|
+
}) : /* @__PURE__ */ b(T.InputGroup, {
|
|
117
|
+
ref: Q,
|
|
118
|
+
...J ? { "data-force": J } : {},
|
|
119
|
+
className: r("relative flex w-full min-w-0 items-center rounded-pill material-field transition-control cursor-text", D.size[A].classes, "pr-4", (I || V) && "ring-invalid", !(z || B || V) && G),
|
|
120
|
+
children: [pe, /* @__PURE__ */ y(T.Trigger, {
|
|
121
|
+
"aria-label": Y("combobox.showOptions", "Show options"),
|
|
122
|
+
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",
|
|
123
|
+
children: /* @__PURE__ */ y(c, {
|
|
124
|
+
icon: S,
|
|
125
|
+
size: "sm"
|
|
126
|
+
})
|
|
127
|
+
})]
|
|
128
|
+
}), /* @__PURE__ */ y(T.Portal, {
|
|
129
|
+
container: o(),
|
|
130
|
+
children: /* @__PURE__ */ y(T.Positioner, {
|
|
131
|
+
anchor: Q,
|
|
132
|
+
positionMethod: "fixed",
|
|
133
|
+
collisionBoundary: a(),
|
|
134
|
+
align: "start",
|
|
135
|
+
sideOffset: 6,
|
|
136
|
+
collisionPadding: 8,
|
|
137
|
+
className: "z-50 outline-none",
|
|
138
|
+
children: /* @__PURE__ */ b(T.Popup, {
|
|
139
|
+
className: r(t, "relative min-w-anchor overflow-hidden"),
|
|
140
|
+
style: te(ae),
|
|
141
|
+
children: [
|
|
142
|
+
M && /* @__PURE__ */ y("span", {
|
|
143
|
+
"aria-hidden": !0,
|
|
144
|
+
className: "absolute inset-x-16 top-0 h-2 overflow-hidden rounded-pill",
|
|
145
|
+
children: /* @__PURE__ */ y("span", { className: "block h-full w-1/3 animate-indeterminate rounded-pill bg-fg-tertiary" })
|
|
146
|
+
}),
|
|
147
|
+
/* @__PURE__ */ y(T.Status, {
|
|
148
|
+
className: "sr-only",
|
|
149
|
+
children: M ? Y("combobox.loadingResults", "Loading results") : ""
|
|
150
|
+
}),
|
|
151
|
+
/* @__PURE__ */ y(T.Empty, {
|
|
152
|
+
className: "flex h-34 items-center px-10 text-body text-fg-secondary empty:hidden",
|
|
153
|
+
children: M ? Y("combobox.loading", "Loading…") : j ?? Y("combobox.noResults", "No results")
|
|
154
|
+
}),
|
|
155
|
+
/* @__PURE__ */ y(T.List, {
|
|
156
|
+
className: "-m-6 flex min-h-0 flex-col overflow-y-auto overscroll-contain p-6 outline-none scrollbar-quiet",
|
|
157
|
+
children: (t) => /* @__PURE__ */ y(T.Item, {
|
|
158
|
+
value: t,
|
|
159
|
+
...t.disabled ? { disabled: !0 } : {},
|
|
160
|
+
className: e,
|
|
161
|
+
children: "__create" in t ? /* @__PURE__ */ b(v, { children: [/* @__PURE__ */ y(c, {
|
|
162
|
+
icon: x,
|
|
163
|
+
size: "sm",
|
|
164
|
+
className: n
|
|
165
|
+
}), /* @__PURE__ */ y("span", {
|
|
166
|
+
className: "min-w-0 flex-1 truncate",
|
|
167
|
+
children: Y("combobox.create", "Create “{label}”", { label: t.label })
|
|
168
|
+
})] }) : /* @__PURE__ */ b(v, { children: [
|
|
169
|
+
t.leading,
|
|
170
|
+
t.icon && /* @__PURE__ */ y(c, {
|
|
171
|
+
icon: t.icon,
|
|
172
|
+
size: "sm",
|
|
173
|
+
className: "text-fg-secondary group-data-highlighted/item:text-fg group-data-disabled/item:text-fg-disabled"
|
|
174
|
+
}),
|
|
175
|
+
/* @__PURE__ */ b("span", {
|
|
176
|
+
className: r("flex min-w-0 flex-1 flex-col", t.description && "gap-2 py-8"),
|
|
177
|
+
children: [/* @__PURE__ */ y("span", {
|
|
178
|
+
className: "truncate",
|
|
179
|
+
children: /* @__PURE__ */ y(k, {
|
|
180
|
+
text: t.label,
|
|
181
|
+
query: Z
|
|
182
|
+
})
|
|
183
|
+
}), t.description && /* @__PURE__ */ y("span", {
|
|
184
|
+
className: "text-small font-regular text-fg-secondary",
|
|
185
|
+
children: t.description
|
|
186
|
+
})]
|
|
187
|
+
}),
|
|
188
|
+
/* @__PURE__ */ y(T.ItemIndicator, {
|
|
189
|
+
keepMounted: !0,
|
|
190
|
+
className: "flex size-16 shrink-0 items-center justify-center text-fg opacity-0 data-selected:opacity-100",
|
|
191
|
+
children: /* @__PURE__ */ y(c, {
|
|
192
|
+
icon: w,
|
|
193
|
+
size: "sm"
|
|
194
|
+
})
|
|
195
|
+
})
|
|
196
|
+
] })
|
|
197
|
+
}, t.value)
|
|
198
|
+
})
|
|
199
|
+
]
|
|
200
|
+
})
|
|
201
|
+
})
|
|
202
|
+
})]
|
|
203
|
+
});
|
|
204
|
+
return re ? me : d({
|
|
205
|
+
label: z,
|
|
206
|
+
description: B,
|
|
207
|
+
error: V,
|
|
208
|
+
optional: H,
|
|
209
|
+
required: U,
|
|
210
|
+
layout: W,
|
|
211
|
+
id: X.wrapId ?? L,
|
|
212
|
+
disabled: F,
|
|
213
|
+
className: G
|
|
214
|
+
}, me);
|
|
215
|
+
});
|
|
216
|
+
process.env.NODE_ENV !== "production" && (A.displayName = "Combobox");
|
|
217
|
+
var j = /* @__PURE__ */ m(function(n, i) {
|
|
218
|
+
let { suggestions: s, value: f, defaultValue: p, onValueChange: m, placeholder: h, size: v = "md", disabled: x, id: S, name: C, leadingIcon: w, label: T, description: O, error: A, optional: j, required: M, layout: N, className: P, "aria-label": F, "data-force": I } = n, L = l(), R = u(n), [z, B] = _(p ?? ""), V = g(null), H = ee(V), U = f ?? z, W = /* @__PURE__ */ b(E.Root, {
|
|
219
|
+
items: s,
|
|
220
|
+
...f === void 0 ? {} : { value: f },
|
|
221
|
+
...p === void 0 ? {} : { defaultValue: p },
|
|
222
|
+
onValueChange: (e) => {
|
|
223
|
+
B(e), m?.(e);
|
|
224
|
+
},
|
|
225
|
+
...x ? { disabled: x } : {},
|
|
226
|
+
...C ? { name: C } : {},
|
|
227
|
+
children: [/* @__PURE__ */ b(E.InputGroup, {
|
|
228
|
+
ref: V,
|
|
229
|
+
...I ? { "data-force": I } : {},
|
|
230
|
+
className: r("relative flex w-full min-w-0 items-center rounded-pill material-field transition-control cursor-text", D.size[v].classes, w && "pl-14", n.error && "ring-invalid", !(T || O || A) && P),
|
|
231
|
+
children: [w && /* @__PURE__ */ y(c, {
|
|
232
|
+
icon: w,
|
|
233
|
+
size: "sm",
|
|
234
|
+
className: "text-fg-tertiary"
|
|
235
|
+
}), /* @__PURE__ */ y(E.Input, {
|
|
236
|
+
ref: i,
|
|
237
|
+
placeholder: h,
|
|
238
|
+
...S ? { id: S } : {},
|
|
239
|
+
...R.controlProps,
|
|
240
|
+
...F ? { "aria-label": F } : {},
|
|
241
|
+
onKeyDown: ne,
|
|
242
|
+
className: "min-w-0 flex-1 bg-transparent text-fg outline-none placeholder:text-fg-tertiary"
|
|
243
|
+
})]
|
|
244
|
+
}), /* @__PURE__ */ y(E.Portal, {
|
|
245
|
+
container: o(),
|
|
246
|
+
children: /* @__PURE__ */ y(E.Positioner, {
|
|
247
|
+
anchor: V,
|
|
248
|
+
positionMethod: "fixed",
|
|
249
|
+
collisionBoundary: a(),
|
|
250
|
+
align: "start",
|
|
251
|
+
sideOffset: 6,
|
|
252
|
+
collisionPadding: 8,
|
|
253
|
+
className: "z-50 outline-none",
|
|
254
|
+
children: /* @__PURE__ */ y(E.Popup, {
|
|
255
|
+
className: r(t, "min-w-anchor overflow-hidden data-empty:hidden"),
|
|
256
|
+
style: te(H),
|
|
257
|
+
children: /* @__PURE__ */ y(E.List, {
|
|
258
|
+
className: "-m-6 flex min-h-0 flex-col overflow-y-auto overscroll-contain p-6 outline-none scrollbar-quiet",
|
|
259
|
+
children: (t) => /* @__PURE__ */ y(E.Item, {
|
|
260
|
+
value: t,
|
|
261
|
+
className: e,
|
|
262
|
+
children: /* @__PURE__ */ y("span", {
|
|
263
|
+
className: "truncate",
|
|
264
|
+
children: /* @__PURE__ */ y(k, {
|
|
265
|
+
text: t,
|
|
266
|
+
query: U
|
|
267
|
+
})
|
|
268
|
+
})
|
|
269
|
+
}, t)
|
|
270
|
+
})
|
|
271
|
+
})
|
|
272
|
+
})
|
|
273
|
+
})]
|
|
274
|
+
});
|
|
275
|
+
return L ? W : d({
|
|
276
|
+
label: T,
|
|
277
|
+
description: O,
|
|
278
|
+
error: A,
|
|
279
|
+
optional: j,
|
|
280
|
+
required: M,
|
|
281
|
+
layout: N,
|
|
282
|
+
id: R.wrapId ?? S,
|
|
283
|
+
disabled: x,
|
|
284
|
+
className: P
|
|
285
|
+
}, W);
|
|
286
|
+
});
|
|
287
|
+
process.env.NODE_ENV !== "production" && (j.displayName = "Autocomplete");
|
|
288
|
+
//#endregion
|
|
289
|
+
export { D as a, O as i, A as n, k as r, j as t };
|
|
290
|
+
|
|
291
|
+
//# sourceMappingURL=combobox-D8pQk22r.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"combobox-D8pQk22r.js","names":["_Fragment","Combobox","BaseCombobox","__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","i","keepValueOnEscape","Combobox$1","ariaLabel","force","props","className","t","field","fc","setQuery","useState","fieldRef","useRef","fieldWidth","seen","byValue","useMemo","o","options","filtered","list","onCreate","inner","setInner","multiple","current","rootValue","v","handleChange","arr","created","x","next","inputEl","Combobox","id","invalid","error","control","onInputValueChange","a","b","disabled","name","label","description","value","Cancel01Icon","size","ArrowDown01Icon","loading","emptyText","Add01Icon","Tick02Icon","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, 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 function Highlight({ text, query }: { text: string; query: string }) {\n const q = query.trim().toLowerCase();\n if (!q) return <>{text}</>;\n const i = text.toLowerCase().indexOf(q);\n if (i < 0) return <span className=\"text-fg-secondary\">{text}</span>;\n return (\n <span className=\"text-fg-secondary\">\n {text.slice(0, i)}\n <span className=\"text-fg\">{text.slice(i, i + q.length)}</span>\n {text.slice(i + q.length)}\n </span>\n );\n}\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 onCreate?: ((label: string) => void) | 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 onCreate,\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 seen = useRef(new Map<string, ComboboxOption>());\n const byValue = useMemo(() => {\n for (const o of options) seen.current.set(o.value, o);\n return seen.current;\n }, [options]);\n const filtered = useMemo(() => {\n const q = query.trim().toLowerCase();\n const list: (ComboboxOption | CreateItem)[] = q ? options.filter((o) => o.label.toLowerCase().includes(q) || o.value.toLowerCase().includes(q)) : options;\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 list;\n }, [options, query, onCreate]);\n\n const [inner, setInner] = useState<string | null | string[]>(() => props.defaultValue ?? (multiple ? [] : null));\n const current = props.value !== undefined ? props.value : inner;\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 onInputValueChange?.(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\">{t(\"combobox.create\", \"Create “{label}”\", { label: o.label })}</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 </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 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_COMBOBOX_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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"}
|
|
@@ -0,0 +1,20 @@
|
|
|
1
|
+
"use client";
|
|
2
|
+
import { t as e } from "./message-BxTkh1oA.js";
|
|
3
|
+
import { createContext as t, useContext as n, useMemo as r } from "react";
|
|
4
|
+
//#region src/i18n/context.ts
|
|
5
|
+
var i = /* @__PURE__ */ t({
|
|
6
|
+
locale: "en",
|
|
7
|
+
messages: {}
|
|
8
|
+
});
|
|
9
|
+
function a() {
|
|
10
|
+
return n(i).locale;
|
|
11
|
+
}
|
|
12
|
+
function o() {
|
|
13
|
+
let { locale: t, messages: a } = n(i);
|
|
14
|
+
return r(() => (n, r, i) => e(a[n] ?? r, i, t), [t, a]);
|
|
15
|
+
}
|
|
16
|
+
var s = (t, n, r) => e(n, r, "en");
|
|
17
|
+
//#endregion
|
|
18
|
+
export { o as i, s as n, a as r, i as t };
|
|
19
|
+
|
|
20
|
+
//# sourceMappingURL=context-BELWW79w.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"context-BELWW79w.js","names":["formatMessage","LocaleContext","useLocale","useContext","useUiText","useMemo","messages","key","english","values","locale","englishText"],"sources":["../../src/i18n/context.ts"],"sourcesContent":["import { createContext, useContext, useMemo } from \"react\";\nimport { formatMessage, type MessageValues } from \"./message.js\";\n\nexport type UiMessages = Readonly<Record<string, string>>;\n\nexport interface LocaleValue {\n locale: string;\n messages: UiMessages;\n}\n\nexport const LocaleContext = /* @__PURE__ */ createContext<LocaleValue>({ locale: \"en\", messages: {} });\n\nexport function useLocale(): string {\n return useContext(LocaleContext).locale;\n}\n\nexport type UiText = (key: string, english: string, values?: MessageValues) => string;\n\nexport function useUiText(): UiText {\n const { locale, messages } = useContext(LocaleContext);\n return useMemo(() => (key: string, english: string, values?: MessageValues) => formatMessage(messages[key] ?? english, values, locale), [locale, messages]);\n}\n\nexport const englishText: UiText = (_key, english, values) => formatMessage(english, values, \"en\");\n"],"mappings":";;;;AAUA,IAAaC,IAAgC,kBAA2B;CAAE,QAAQ;CAAM,UAAU,CAAC;AAAE,CAAC;AAEtG,SAAgBC,IAAoB;CAClC,OAAOC,EAAWF,CAAa,CAAC,CAAC;AACnC;AAIA,SAAgBG,IAAoB;CAClC,IAAM,EAAE,WAAQ,gBAAaD,EAAWF,CAAa;CACrD,OAAOI,SAAe,GAAa,GAAiB,MAA2BL,EAAcM,EAASC,MAAQC,GAASC,GAAQC,CAAM,GAAG,CAACA,GAAQJ,CAAQ,CAAC;AAC5J;AAEA,IAAaK,KAAuB,GAAM,GAAS,MAAWX,EAAcQ,GAASC,GAAQ,IAAI"}
|
|
@@ -0,0 +1,109 @@
|
|
|
1
|
+
"use client";
|
|
2
|
+
import { t as e } from "./cn-CidVUKMm.js";
|
|
3
|
+
import { i as t } from "./context-BELWW79w.js";
|
|
4
|
+
import { t as n } from "./icon-CeNQtobn.js";
|
|
5
|
+
import { r } from "./tooltip-CDu00nzg.js";
|
|
6
|
+
import { t as i } from "./use-truncated-DmQoePvG.js";
|
|
7
|
+
import { n as a } from "./button-BHKAE6ui.js";
|
|
8
|
+
import { t as o } from "./use-copy-Dm2ncvMX.js";
|
|
9
|
+
import { forwardRef as s, useRef as c, useState as l } from "react";
|
|
10
|
+
import { jsx as u, jsxs as d } from "react/jsx-runtime";
|
|
11
|
+
import { Copy01Icon as f, Tick02Icon as p } from "@hugeicons/core-free-icons";
|
|
12
|
+
//#region src/components/copy-button/copy-button.tsx
|
|
13
|
+
var m = {
|
|
14
|
+
variant: {
|
|
15
|
+
ghost: { classes: "material-ghost" },
|
|
16
|
+
secondary: { classes: "material-secondary" }
|
|
17
|
+
},
|
|
18
|
+
size: {
|
|
19
|
+
xs: { classes: "size-24" },
|
|
20
|
+
sm: { classes: "size-32" },
|
|
21
|
+
md: { classes: "size-36" },
|
|
22
|
+
lg: { classes: "size-40" },
|
|
23
|
+
xl: { classes: "size-48" }
|
|
24
|
+
}
|
|
25
|
+
}, h = {
|
|
26
|
+
variant: "ghost",
|
|
27
|
+
size: "sm"
|
|
28
|
+
}, g = /* @__PURE__ */ s(function({ value: e, label: n, size: i = "sm", variant: s = "ghost", onCopy: c, className: d, ...m }, h) {
|
|
29
|
+
let { copied: g, copy: _ } = o(), [v, y] = l(!1), b = t(), x = n ?? b("copyButton.copy", "Copy"), S = b("copyButton.copied", "Copied");
|
|
30
|
+
return /* @__PURE__ */ u(r, {
|
|
31
|
+
content: g ? S : x,
|
|
32
|
+
open: g || v,
|
|
33
|
+
onOpenChange: y,
|
|
34
|
+
children: /* @__PURE__ */ u(a, {
|
|
35
|
+
ref: h,
|
|
36
|
+
shape: "circle",
|
|
37
|
+
size: i,
|
|
38
|
+
variant: s,
|
|
39
|
+
icon: g ? p : f,
|
|
40
|
+
"aria-label": g ? S : x,
|
|
41
|
+
className: d,
|
|
42
|
+
onClick: async () => {
|
|
43
|
+
await _(e) && c?.(e);
|
|
44
|
+
},
|
|
45
|
+
...m
|
|
46
|
+
})
|
|
47
|
+
});
|
|
48
|
+
});
|
|
49
|
+
process.env.NODE_ENV !== "production" && (g.displayName = "CopyButton");
|
|
50
|
+
var _ = { size: {
|
|
51
|
+
sm: { classes: "h-32 pl-12 pr-0 text-small" },
|
|
52
|
+
md: { classes: "h-36 pl-16 pr-2 text-small" },
|
|
53
|
+
lg: { classes: "h-40 pl-18 pr-4 text-small" }
|
|
54
|
+
} }, v = { size: "md" }, y = /* @__PURE__ */ s(function({ value: t, display: n, label: r, size: i = "md", className: a, ...o }, s) {
|
|
55
|
+
return /* @__PURE__ */ d("div", {
|
|
56
|
+
ref: s,
|
|
57
|
+
className: e("inline-flex min-w-0 max-w-full items-center gap-8 rounded-pill bg-fill-1", _.size[i].classes, a),
|
|
58
|
+
...o,
|
|
59
|
+
children: [/* @__PURE__ */ u("span", {
|
|
60
|
+
className: "mono min-w-0 flex-1 truncate text-fg select-all",
|
|
61
|
+
children: n ?? t
|
|
62
|
+
}), /* @__PURE__ */ u(g, {
|
|
63
|
+
value: t,
|
|
64
|
+
label: r,
|
|
65
|
+
size: "sm"
|
|
66
|
+
})]
|
|
67
|
+
});
|
|
68
|
+
});
|
|
69
|
+
process.env.NODE_ENV !== "production" && (y.displayName = "ClipboardText");
|
|
70
|
+
var b = /* @__PURE__ */ s(function({ value: a, children: s, label: m, onCopy: h, className: g, ..._ }, v) {
|
|
71
|
+
let { copied: y, copy: b } = o(), [x, S] = l(!1), C = c(null), w = i(C), T = t(), E = T("copyButton.copied", "Copied");
|
|
72
|
+
return /* @__PURE__ */ u(r, {
|
|
73
|
+
content: y ? E : w ? a : m ?? T("copyButton.copy", "Copy"),
|
|
74
|
+
shape: w && !y ? "multiline" : "pill",
|
|
75
|
+
open: y || x,
|
|
76
|
+
onOpenChange: S,
|
|
77
|
+
children: /* @__PURE__ */ d("button", {
|
|
78
|
+
ref: v,
|
|
79
|
+
type: "button",
|
|
80
|
+
onClick: async () => {
|
|
81
|
+
await b(a) && h?.(a);
|
|
82
|
+
},
|
|
83
|
+
className: e("group/copy relative -mx-4 inline-flex max-w-full min-w-0 items-center gap-4 rounded-code px-4 align-baseline mono text-small text-fg transition-control focus-ring tap-target", "hover:bg-fill-1 active:bg-fill-2 cursor-copy", g),
|
|
84
|
+
..._,
|
|
85
|
+
children: [
|
|
86
|
+
/* @__PURE__ */ u("span", {
|
|
87
|
+
ref: C,
|
|
88
|
+
className: "min-w-0 truncate",
|
|
89
|
+
children: s ?? a
|
|
90
|
+
}),
|
|
91
|
+
/* @__PURE__ */ u(n, {
|
|
92
|
+
icon: y ? p : f,
|
|
93
|
+
size: "xs",
|
|
94
|
+
className: e("text-fg-tertiary opacity-0 transition-control group-hover/copy:opacity-100 coarse:opacity-100 group-focus-visible/copy:opacity-100", y && "opacity-100 text-fg")
|
|
95
|
+
}),
|
|
96
|
+
/* @__PURE__ */ u("span", {
|
|
97
|
+
className: "sr-only",
|
|
98
|
+
"aria-live": "polite",
|
|
99
|
+
children: y ? E : ""
|
|
100
|
+
})
|
|
101
|
+
]
|
|
102
|
+
})
|
|
103
|
+
});
|
|
104
|
+
});
|
|
105
|
+
process.env.NODE_ENV !== "production" && (b.displayName = "InlineCopyText");
|
|
106
|
+
//#endregion
|
|
107
|
+
export { _ as a, v as i, g as n, h as o, b as r, m as s, y as t };
|
|
108
|
+
|
|
109
|
+
//# sourceMappingURL=copy-button-mAzHjYXq.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"copy-button-mAzHjYXq.js","names":["__icon_Tick02Icon","__icon_Copy01Icon","cn","useUiText","Icon","useTruncated","Button","useCopy","KAESO_COPY_BUTTON_VARIANTS","KAESO_COPY_BUTTON_DEFAULT_VARIANTS","CopyButton","labelProp","props","hover","setHover","useState","t","label","done","Tooltip","copied","Tick02Icon","Copy01Icon","copy","value","onCopy","KAESO_CLIPBOARD_TEXT_VARIANTS","KAESO_CLIPBOARD_TEXT_DEFAULT_VARIANTS","ClipboardText","size","className","display","InlineCopyText","text","useRef","cut","children"],"sources":["../../src/components/copy-button/copy-button.tsx"],"sourcesContent":["import type * as React from \"react\";\nimport { forwardRef, useRef, useState, type HTMLAttributes, type ReactNode } from \"react\";\nimport { cn } from \"../../utils/cn.js\";\nimport { useCopy } from \"../../hooks/use-copy.js\";\nimport { useTruncated } from \"../../hooks/use-truncated.js\";\nimport { Button, type ButtonSize } from \"../button/button.js\";\nimport { Tooltip } from \"../tooltip/tooltip.js\";\nimport { Icon } from \"../icon/icon.js\";\nimport { Tick02Icon as __icon_Tick02Icon, Copy01Icon as __icon_Copy01Icon } from \"@hugeicons/core-free-icons\";\nimport { useUiText } from \"../../i18n/context.js\";\n\nexport const KAESO_COPY_BUTTON_VARIANTS = {\n variant: {\n ghost: { classes: \"material-ghost\" },\n secondary: { classes: \"material-secondary\" },\n },\n size: {\n xs: { classes: \"size-24\" },\n sm: { classes: \"size-32\" },\n md: { classes: \"size-36\" },\n lg: { classes: \"size-40\" },\n xl: { classes: \"size-48\" },\n },\n} as const;\nexport const KAESO_COPY_BUTTON_DEFAULT_VARIANTS = { variant: \"ghost\", size: \"sm\" } as const;\n\nexport interface CopyButtonProps {\n value: string;\n label?: string | undefined;\n size?: ButtonSize | undefined;\n variant?: keyof typeof KAESO_COPY_BUTTON_VARIANTS.variant | undefined;\n onCopy?: ((value: string) => void) | undefined;\n className?: string | undefined;\n \"data-force\"?: string | undefined;\n}\n\nexport const CopyButton = /* @__PURE__ */ forwardRef<HTMLButtonElement, CopyButtonProps>(function CopyButton(\n { value, label: labelProp, size = \"sm\", variant = \"ghost\", onCopy, className, ...props },\n ref,\n) {\n const { copied, copy } = useCopy();\n const [hover, setHover] = useState(false);\n const t = useUiText();\n const label = labelProp ?? t(\"copyButton.copy\", \"Copy\");\n const done = t(\"copyButton.copied\", \"Copied\");\n return (\n <Tooltip content={copied ? done : label} open={copied || hover} onOpenChange={setHover}>\n <Button\n ref={ref as React.Ref<HTMLButtonElement & HTMLAnchorElement>}\n shape=\"circle\"\n size={size}\n variant={variant}\n icon={copied ? __icon_Tick02Icon : __icon_Copy01Icon}\n aria-label={copied ? done : label}\n className={className}\n onClick={async () => {\n if (await copy(value)) onCopy?.(value);\n }}\n {...props}\n />\n </Tooltip>\n );\n});\nif (process.env.NODE_ENV !== \"production\") CopyButton.displayName = \"CopyButton\";\n\nexport const KAESO_CLIPBOARD_TEXT_VARIANTS = {\n size: {\n sm: { classes: \"h-32 pl-12 pr-0 text-small\" },\n md: { classes: \"h-36 pl-16 pr-2 text-small\" },\n lg: { classes: \"h-40 pl-18 pr-4 text-small\" },\n },\n} as const;\nexport const KAESO_CLIPBOARD_TEXT_DEFAULT_VARIANTS = { size: \"md\" } as const;\n\nexport interface ClipboardTextProps extends Omit<HTMLAttributes<HTMLDivElement>, \"children\"> {\n value: string;\n display?: ReactNode | undefined;\n label?: string | undefined;\n size?: keyof typeof KAESO_CLIPBOARD_TEXT_VARIANTS.size | undefined;\n}\n\nexport const ClipboardText = /* @__PURE__ */ forwardRef<HTMLDivElement, ClipboardTextProps>(function ClipboardText(\n { value, display, label, size = \"md\", className, ...props },\n ref,\n) {\n return (\n <div\n ref={ref}\n className={cn(\"inline-flex min-w-0 max-w-full items-center gap-8 rounded-pill bg-fill-1\", KAESO_CLIPBOARD_TEXT_VARIANTS.size[size].classes, className)}\n {...props}\n >\n <span className=\"mono min-w-0 flex-1 truncate text-fg select-all\">{display ?? value}</span>\n <CopyButton value={value} label={label} size=\"sm\" />\n </div>\n );\n});\nif (process.env.NODE_ENV !== \"production\") ClipboardText.displayName = \"ClipboardText\";\n\nexport interface InlineCopyTextProps extends Omit<HTMLAttributes<HTMLButtonElement>, \"children\" | \"onCopy\"> {\n value: string;\n children?: ReactNode | undefined;\n label?: string | undefined;\n onCopy?: ((value: string) => void) | undefined;\n \"data-force\"?: string | undefined;\n}\n\nexport const InlineCopyText = /* @__PURE__ */ forwardRef<HTMLButtonElement, InlineCopyTextProps>(function InlineCopyText(\n { value, children, label, onCopy, className, ...props },\n ref,\n) {\n const { copied, copy } = useCopy();\n const [hover, setHover] = useState(false);\n const text = useRef<HTMLSpanElement>(null);\n const cut = useTruncated(text);\n const t = useUiText();\n const done = t(\"copyButton.copied\", \"Copied\");\n return (\n <Tooltip\n content={copied ? done : cut ? value : (label ?? t(\"copyButton.copy\", \"Copy\"))}\n shape={cut && !copied ? \"multiline\" : \"pill\"}\n open={copied || hover}\n onOpenChange={setHover}\n >\n <button\n ref={ref}\n type=\"button\"\n onClick={async () => {\n if (await copy(value)) onCopy?.(value);\n }}\n className={cn(\n \"group/copy relative -mx-4 inline-flex max-w-full min-w-0 items-center gap-4 rounded-code px-4 align-baseline mono text-small text-fg transition-control focus-ring tap-target\",\n \"hover:bg-fill-1 active:bg-fill-2 cursor-copy\",\n className,\n )}\n {...props}\n >\n <span ref={text} className=\"min-w-0 truncate\">\n {children ?? value}\n </span>\n <Icon\n icon={copied ? __icon_Tick02Icon : __icon_Copy01Icon}\n size=\"xs\"\n className={cn(\n \"text-fg-tertiary opacity-0 transition-control group-hover/copy:opacity-100 coarse:opacity-100 group-focus-visible/copy:opacity-100\",\n copied && \"opacity-100 text-fg\",\n )}\n />\n <span className=\"sr-only\" aria-live=\"polite\">\n {copied ? done : \"\"}\n </span>\n </button>\n </Tooltip>\n );\n});\nif (process.env.NODE_ENV !== \"production\") InlineCopyText.displayName = \"InlineCopyText\";\n"],"mappings":";;;;;;;;;;;;AAWA,IAAaQ,IAA6B;CACxC,SAAS;EACP,OAAO,EAAE,SAAS,iBAAiB;EACnC,WAAW,EAAE,SAAS,qBAAqB;CAC7C;CACA,MAAM;EACJ,IAAI,EAAE,SAAS,UAAU;EACzB,IAAI,EAAE,SAAS,UAAU;EACzB,IAAI,EAAE,SAAS,UAAU;EACzB,IAAI,EAAE,SAAS,UAAU;EACzB,IAAI,EAAE,SAAS,UAAU;CAC3B;AACF,GACaC,IAAqC;CAAE,SAAS;CAAS,MAAM;AAAK,GAYpEC,IAA6B,kBAA+C,SACvF,EAAE,UAAO,OAAOC,GAAW,UAAO,MAAM,aAAU,SAAS,WAAQ,cAAW,GAAGC,KACjF,GACA;CACA,IAAM,EAAE,WAAQ,YAASL,EAAQ,GAC3B,CAACM,GAAOC,KAAYC,EAAS,EAAK,GAClCC,IAAIb,EAAU,GACdc,IAAQN,KAAaK,EAAE,mBAAmB,MAAM,GAChDE,IAAOF,EAAE,qBAAqB,QAAQ;CAC5C,OACE,kBAACG,GAAD;EAAS,SAASC,IAASF,IAAOD;EAAO,MAAMG,KAAUP;EAAO,cAAcC;EAC5E,UAAA,kBAACR,GAAD;GACO;GACL,OAAM;GACA;GACG;GACT,MAAMc,IAASpB,IAAoBC;GACnC,cAAYmB,IAASF,IAAOD;GACjB;GACX,SAAS,YAAY;IACnB,AAAI,MAAMM,EAAKC,CAAK,KAAGC,IAASD,CAAK;GACvC;GACA,GAAIZ;EACL,CAAA;CACM,CAAA;AAEb,CAAC;AACD,QAAA,IAAA,aAA6B,iBAAc,EAAW,cAAc;AAEpE,IAAac,IAAgC,EAC3C,MAAM;CACJ,IAAI,EAAE,SAAS,6BAA6B;CAC5C,IAAI,EAAE,SAAS,6BAA6B;CAC5C,IAAI,EAAE,SAAS,6BAA6B;AAC9C,EACF,GACaC,IAAwC,EAAE,MAAM,KAAK,GASrDC,IAAgC,kBAA+C,SAC1F,EAAE,UAAO,YAAS,UAAO,UAAO,MAAM,cAAW,GAAGhB,KACpD,GACA;CACA,OACE,kBAAC,OAAD;EACO;EACL,WAAWV,EAAG,4EAA4EwB,EAA8B,KAAKG,EAAK,CAAC,SAASC,CAAS;EACrJ,GAAIlB;EAHN,UAAA,CAKE,kBAAC,QAAD;GAAM,WAAU;GAAmD,UAAAmB,KAAWP;EAAY,CAAA,GAC1F,kBAACd,GAAD;GAAmB;GAAc;GAAO,MAAK;EAAM,CAAA,CAChD;;AAET,CAAC;AACD,QAAA,IAAA,aAA6B,iBAAc,EAAc,cAAc;AAUvE,IAAasB,IAAiC,kBAAmD,SAC/F,EAAE,UAAO,aAAU,UAAO,WAAQ,cAAW,GAAGpB,KAChD,GACA;CACA,IAAM,EAAE,WAAQ,YAASL,EAAQ,GAC3B,CAACM,GAAOC,KAAYC,EAAS,EAAK,GAClCkB,IAAOC,EAAwB,IAAI,GACnCC,IAAM9B,EAAa4B,CAAI,GACvBjB,IAAIb,EAAU,GACde,IAAOF,EAAE,qBAAqB,QAAQ;CAC5C,OACE,kBAACG,GAAD;EACE,SAASC,IAASF,IAAOiB,IAAMX,IAASP,KAASD,EAAE,mBAAmB,MAAM;EAC5E,OAAOmB,KAAO,CAACf,IAAS,cAAc;EACtC,MAAMA,KAAUP;EAChB,cAAcC;EAEd,UAAA,kBAAC,UAAD;GACO;GACL,MAAK;GACL,SAAS,YAAY;IACnB,AAAI,MAAMS,EAAKC,CAAK,KAAGC,IAASD,CAAK;GACvC;GACA,WAAWtB,EACT,iLACA,gDACA4B,CACF;GACA,GAAIlB;GAXN,UAAA;IAaE,kBAAC,QAAD;KAAM,KAAKqB;KAAM,WAAU;KACxB,UAAAG,KAAYZ;IACT,CAAA;IACN,kBAACpB,GAAD;KACE,MAAMgB,IAASpB,IAAoBC;KACnC,MAAK;KACL,WAAWC,EACT,sIACAkB,KAAU,qBACZ;IACD,CAAA;IACD,kBAAC,QAAD;KAAM,WAAU;KAAU,aAAU;KACjC,UAAAA,IAASF,IAAO;IACb,CAAA;GACA;;CACD,CAAA;AAEb,CAAC;AACD,QAAA,IAAA,aAA6B,iBAAc,EAAe,cAAc"}
|