@logicplanes/kaeso-ui 0.4.0 → 0.4.2
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/ai/component-guides.md +51 -1
- package/ai/component-registry.json +113 -17
- package/ai/component-registry.md +38 -12
- package/ai/icons.md +1 -1
- package/ai/tokens.md +2 -1
- package/dist/blocks/delete-resource.js +1 -1
- package/dist/blocks/pages.js +5 -5
- package/dist/blocks/resource-list.js +4 -4
- package/dist/chunks/{app-frame-Cj_gCbmu.js → app-frame-C8csevkL.js} +9 -9
- package/dist/chunks/{app-frame-Cj_gCbmu.js.map → app-frame-C8csevkL.js.map} +1 -1
- package/dist/chunks/{avatar-DOzOhYJr.js → avatar-CWbdwbJv.js} +2 -2
- package/dist/chunks/{avatar-DOzOhYJr.js.map → avatar-CWbdwbJv.js.map} +1 -1
- package/dist/chunks/{badge-wUHlj7m3.js → badge-C2KtxCLB.js} +2 -2
- package/dist/chunks/{badge-wUHlj7m3.js.map → badge-C2KtxCLB.js.map} +1 -1
- package/dist/chunks/{banner-DY1jSc9Y.js → banner-Cb8OWnqJ.js} +4 -4
- package/dist/chunks/{banner-DY1jSc9Y.js.map → banner-Cb8OWnqJ.js.map} +1 -1
- package/dist/chunks/{button-h2IFCER2.js → button-Dzu7_csE.js} +13 -13
- package/dist/chunks/button-Dzu7_csE.js.map +1 -0
- package/dist/chunks/{calendar-cVuezHQ6.js → calendar--YemJsv4.js} +2 -2
- package/dist/chunks/{calendar-cVuezHQ6.js.map → calendar--YemJsv4.js.map} +1 -1
- package/dist/chunks/{checkbox-C5yvSS7O.js → checkbox-CDfC6E-M.js} +2 -2
- package/dist/chunks/{checkbox-C5yvSS7O.js.map → checkbox-CDfC6E-M.js.map} +1 -1
- package/dist/chunks/{cn-DUDmdLpZ.js → cn-Dj6sRgkF.js} +17 -3
- package/dist/chunks/cn-Dj6sRgkF.js.map +1 -0
- package/dist/chunks/code-block-U5fCqwgC.js +330 -0
- package/dist/chunks/code-block-U5fCqwgC.js.map +1 -0
- package/dist/chunks/{code-C49NzHUQ.js → code-tqj0uhBL.js} +2 -2
- package/dist/chunks/{code-C49NzHUQ.js.map → code-tqj0uhBL.js.map} +1 -1
- package/dist/chunks/{collapsible-CDQq1Y9x.js → collapsible-CKrCX_T9.js} +13 -13
- package/dist/chunks/collapsible-CKrCX_T9.js.map +1 -0
- package/dist/chunks/{combobox-B9ttar4C.js → combobox-BARyrpXH.js} +6 -6
- package/dist/chunks/{combobox-B9ttar4C.js.map → combobox-BARyrpXH.js.map} +1 -1
- package/dist/chunks/{command-list-DZMVrXWD.js → command-list-0RR4DpUe.js} +138 -137
- package/dist/chunks/command-list-0RR4DpUe.js.map +1 -0
- package/dist/chunks/copy-button-7-irieJw.js +142 -0
- package/dist/chunks/copy-button-7-irieJw.js.map +1 -0
- package/dist/chunks/{core-Bu6iq5uh.js → core-Bl9NrBLS.js} +10 -10
- package/dist/chunks/core-Bl9NrBLS.js.map +1 -0
- package/dist/chunks/{date-popup-BJPA_fBm.js → date-popup-RQkqhko4.js} +4 -4
- package/dist/chunks/{date-popup-BJPA_fBm.js.map → date-popup-RQkqhko4.js.map} +1 -1
- package/dist/chunks/{dialog-BLcP7v24.js → dialog-DQ9vZ7vr.js} +5 -5
- package/dist/chunks/{dialog-BLcP7v24.js.map → dialog-DQ9vZ7vr.js.map} +1 -1
- package/dist/chunks/{empty-YXmSkKzR.js → empty-DvhyMXQq.js} +2 -2
- package/dist/chunks/{empty-YXmSkKzR.js.map → empty-DvhyMXQq.js.map} +1 -1
- package/dist/chunks/{field-BZriODU7.js → field-TviMvYa2.js} +2 -2
- package/dist/chunks/{field-BZriODU7.js.map → field-TviMvYa2.js.map} +1 -1
- package/dist/chunks/{icon-BqujXDUc.js → icon-D7ja-_Yk.js} +2 -2
- package/dist/chunks/{icon-BqujXDUc.js.map → icon-D7ja-_Yk.js.map} +1 -1
- package/dist/chunks/{icon-button-DmKFxQbP.js → icon-button-CPYR21Sz.js} +3 -3
- package/dist/chunks/{icon-button-DmKFxQbP.js.map → icon-button-CPYR21Sz.js.map} +1 -1
- package/dist/chunks/{identity-Chj7fW89.js → identity-DPuTkMsa.js} +6 -6
- package/dist/chunks/{identity-Chj7fW89.js.map → identity-DPuTkMsa.js.map} +1 -1
- package/dist/chunks/{input-9y3afoiq.js → input-TyLIaQ5k.js} +5 -5
- package/dist/chunks/{input-9y3afoiq.js.map → input-TyLIaQ5k.js.map} +1 -1
- package/dist/chunks/{input-group-BoxjnN8I.js → input-group-CUSNsQjQ.js} +4 -4
- package/dist/chunks/{input-group-BoxjnN8I.js.map → input-group-CUSNsQjQ.js.map} +1 -1
- package/dist/chunks/{iso-field-DAa6iPWn.js → iso-field-CWbxlll-.js} +2 -2
- package/dist/chunks/{iso-field-DAa6iPWn.js.map → iso-field-CWbxlll-.js.map} +1 -1
- package/dist/chunks/{json-view-BkG2hTXV.js → json-view-Dqd2TDkc.js} +3 -3
- package/dist/chunks/{json-view-BkG2hTXV.js.map → json-view-Dqd2TDkc.js.map} +1 -1
- package/dist/chunks/{kbd-DqWmbr_e.js → kbd-BF1vKXJf.js} +2 -2
- package/dist/chunks/{kbd-DqWmbr_e.js.map → kbd-BF1vKXJf.js.map} +1 -1
- package/dist/chunks/{link-YMcxM-BZ.js → link-B2I55xg9.js} +3 -3
- package/dist/chunks/{link-YMcxM-BZ.js.map → link-B2I55xg9.js.map} +1 -1
- package/dist/chunks/{list-7VARol_x.js → list-CkOozrVY.js} +8 -8
- package/dist/chunks/{list-7VARol_x.js.map → list-CkOozrVY.js.map} +1 -1
- package/dist/chunks/{loader-ENBh2Fbt.js → loader-DCfPndXa.js} +2 -2
- package/dist/chunks/{loader-ENBh2Fbt.js.map → loader-DCfPndXa.js.map} +1 -1
- package/dist/chunks/{markdown-DBVNULWg.js → markdown-BEgwZFlu.js} +9 -9
- package/dist/chunks/{markdown-DBVNULWg.js.map → markdown-BEgwZFlu.js.map} +1 -1
- package/dist/chunks/{menu-Bnfi9P3t.js → menu-fl_QQb38.js} +4 -4
- package/dist/chunks/{menu-Bnfi9P3t.js.map → menu-fl_QQb38.js.map} +1 -1
- package/dist/chunks/{meter-DhTnem4k.js → meter-Bj4N3Xuh.js} +2 -2
- package/dist/chunks/{meter-DhTnem4k.js.map → meter-Bj4N3Xuh.js.map} +1 -1
- package/dist/chunks/{nav-sheet-D7wIF_OU.js → nav-sheet-B2rNb8GB.js} +2 -2
- package/dist/chunks/{nav-sheet-D7wIF_OU.js.map → nav-sheet-B2rNb8GB.js.map} +1 -1
- package/dist/chunks/{nav-wordmark-DmbT1Aiw.js → nav-wordmark-_pjheAsZ.js} +2 -2
- package/dist/chunks/{nav-wordmark-DmbT1Aiw.js.map → nav-wordmark-_pjheAsZ.js.map} +1 -1
- package/dist/chunks/{page-header-B3tV8Wog.js → page-header-DjUMDG69.js} +4 -4
- package/dist/chunks/{page-header-B3tV8Wog.js.map → page-header-DjUMDG69.js.map} +1 -1
- package/dist/chunks/{pagination-CLfsofo3.js → pagination-BaY8jdli.js} +4 -4
- package/dist/chunks/{pagination-CLfsofo3.js.map → pagination-BaY8jdli.js.map} +1 -1
- package/dist/chunks/{picker-popover-B5YdOxNm.js → picker-popover-DShea4b8.js} +7 -7
- package/dist/chunks/{picker-popover-B5YdOxNm.js.map → picker-popover-DShea4b8.js.map} +1 -1
- package/dist/chunks/{popover-bjxg020P.js → popover-CFMwaeIP.js} +2 -2
- package/dist/chunks/{popover-bjxg020P.js.map → popover-CFMwaeIP.js.map} +1 -1
- package/dist/chunks/{radio-DwYcXAzv.js → radio-Yl0nO-Sj.js} +2 -2
- package/dist/chunks/{radio-DwYcXAzv.js.map → radio-Yl0nO-Sj.js.map} +1 -1
- package/dist/chunks/{range-popup-ZunS8QSH.js → range-popup-CkhsK3wI.js} +6 -6
- package/dist/chunks/{range-popup-ZunS8QSH.js.map → range-popup-CkhsK3wI.js.map} +1 -1
- package/dist/chunks/{release-art-Ogl-L1Vh.js → release-art-ZwfFQImt.js} +2 -2
- package/dist/chunks/{release-art-Ogl-L1Vh.js.map → release-art-ZwfFQImt.js.map} +1 -1
- package/dist/chunks/{rights-CiIBzT9o.js → rights-BlQx9C_j.js} +9 -9
- package/dist/chunks/{rights-CiIBzT9o.js.map → rights-BlQx9C_j.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-BsET7Fo-.js → section-Ce1efbsP.js} +3 -3
- package/dist/chunks/{section-BsET7Fo-.js.map → section-Ce1efbsP.js.map} +1 -1
- package/dist/chunks/{segmented-DxjnIuww.js → segmented-C97zvDR1.js} +4 -4
- package/dist/chunks/{segmented-DxjnIuww.js.map → segmented-C97zvDR1.js.map} +1 -1
- package/dist/chunks/{select-Bbv2f5F8.js → select-x4XVsdCI.js} +14 -14
- package/dist/chunks/select-x4XVsdCI.js.map +1 -0
- package/dist/chunks/{separator-CpAUELNs.js → separator-D7TzNHmX.js} +2 -2
- package/dist/chunks/{separator-CpAUELNs.js.map → separator-D7TzNHmX.js.map} +1 -1
- package/dist/chunks/{sidebar-ZSTPK9Jn.js → sidebar-DtFlejU7.js} +7 -7
- package/dist/chunks/{sidebar-ZSTPK9Jn.js.map → sidebar-DtFlejU7.js.map} +1 -1
- package/dist/chunks/{sidebar-menu-ct8IiL4z.js → sidebar-menu-CxQbGwyj.js} +2 -2
- package/dist/chunks/{sidebar-menu-ct8IiL4z.js.map → sidebar-menu-CxQbGwyj.js.map} +1 -1
- package/dist/chunks/{skeleton-BM797MAg.js → skeleton-Dcz57Zyp.js} +2 -2
- package/dist/chunks/{skeleton-BM797MAg.js.map → skeleton-Dcz57Zyp.js.map} +1 -1
- package/dist/chunks/{slider-Ds-tqY-1.js → slider-Ci83PGtj.js} +2 -2
- package/dist/chunks/{slider-Ds-tqY-1.js.map → slider-Ci83PGtj.js.map} +1 -1
- package/dist/chunks/{status-dot-BqVOlShY.js → status-dot-QJTF0Yv4.js} +3 -3
- package/dist/chunks/{status-dot-BqVOlShY.js.map → status-dot-QJTF0Yv4.js.map} +1 -1
- package/dist/chunks/{swap-text-Cica0pUr.js → swap-text-Dr0Irxz6.js} +2 -2
- package/dist/chunks/{swap-text-Cica0pUr.js.map → swap-text-Dr0Irxz6.js.map} +1 -1
- package/dist/chunks/{switch-Cq1OfeBr.js → switch-b-VkStWj.js} +5 -5
- package/dist/chunks/switch-b-VkStWj.js.map +1 -0
- package/dist/chunks/table-BeOSKl_3.js +84 -0
- package/dist/chunks/table-BeOSKl_3.js.map +1 -0
- package/dist/chunks/{tag-XgPXKoxi.js → tag-DNdX1XRR.js} +4 -4
- package/dist/chunks/{tag-XgPXKoxi.js.map → tag-DNdX1XRR.js.map} +1 -1
- package/dist/chunks/{text-IoDy3Vxi.js → text-DCGGNqTM.js} +3 -3
- package/dist/chunks/{text-IoDy3Vxi.js.map → text-DCGGNqTM.js.map} +1 -1
- package/dist/chunks/{textarea-jOiTkfMf.js → textarea-CT2S2JVM.js} +5 -5
- package/dist/chunks/{textarea-jOiTkfMf.js.map → textarea-CT2S2JVM.js.map} +1 -1
- package/dist/chunks/{timeseries-BBWsSM4Q.js → timeseries-B-8OfeZm.js} +3 -3
- package/dist/chunks/{timeseries-BBWsSM4Q.js.map → timeseries-B-8OfeZm.js.map} +1 -1
- package/dist/chunks/{toolbar-nVLFWH2i.js → toolbar-DL6zVrzU.js} +2 -2
- package/dist/chunks/{toolbar-nVLFWH2i.js.map → toolbar-DL6zVrzU.js.map} +1 -1
- package/dist/chunks/{tooltip-CTBnfiDH.js → tooltip-BMQ9BtPp.js} +4 -4
- package/dist/chunks/{tooltip-CTBnfiDH.js.map → tooltip-BMQ9BtPp.js.map} +1 -1
- package/dist/chunks/{tooltip-root-B0zWodAJ.js → tooltip-root-BeAMXzxU.js} +4 -4
- package/dist/chunks/{tooltip-root-B0zWodAJ.js.map → tooltip-root-BeAMXzxU.js.map} +1 -1
- 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 +32 -31
- package/dist/components/command-palette.js.map +1 -1
- package/dist/components/copy-button.js +1 -1
- package/dist/components/data-table.js +14 -14
- package/dist/components/data-table.js.map +1 -1
- package/dist/components/date-picker.js +7 -7
- package/dist/components/date-picker.js.map +1 -1
- package/dist/components/dialog.js +2 -2
- package/dist/components/display-options.js +8 -8
- 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-row.js +1 -1
- 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 +1 -1
- package/dist/components/input.js +7 -7
- 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 +5 -5
- package/dist/components/kaeso.js +10 -10
- 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 +1 -1
- 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 +16 -16
- package/dist/components/popover.js +2 -2
- package/dist/components/qr-code.js +2 -2
- package/dist/components/qr-code.js.map +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 +5 -4
- package/dist/components/settings.js.map +1 -1
- package/dist/components/sheet.js +4 -4
- package/dist/components/sheet.js.map +1 -1
- 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 +2 -2
- 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 +2 -2
- package/dist/components/theme-select.js +1 -1
- package/dist/components/timeline.js +1 -1
- package/dist/components/toast.js +4 -4
- 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/index.js +88 -86
- package/dist/kaeso.css +45 -0
- package/dist/styles.css +1 -1
- package/dist/types/blocks/delete-resource/delete-resource.d.ts +1 -1
- package/dist/types/blocks/pages/pages.d.ts +3 -3
- package/dist/types/blocks/resource-list/resource-list.d.ts +1 -1
- package/dist/types/components/app-frame/app-frame.d.ts +1 -1
- package/dist/types/components/app-frame/nav-sheet.d.ts +1 -1
- package/dist/types/components/button/button.d.ts +6 -6
- package/dist/types/components/calendar/calendar.d.ts +1 -1
- package/dist/types/components/charts/core.d.ts +5 -5
- 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 +1 -1
- 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 -1
- package/dist/types/components/command-palette/command-palette.d.ts +2 -1
- package/dist/types/components/command-palette/docs.d.ts +1 -0
- package/dist/types/components/data-table/data-table.d.ts +1 -1
- package/dist/types/components/date-picker/date-popup.d.ts +1 -1
- package/dist/types/components/date-picker/iso-field.d.ts +1 -1
- package/dist/types/components/date-picker/range-popup.d.ts +1 -1
- package/dist/types/components/dialog/dialog.d.ts +3 -3
- package/dist/types/components/dialog/scope.d.ts +1 -1
- package/dist/types/components/dialog/step-dialog.d.ts +1 -1
- package/dist/types/components/display-options/display-options.d.ts +1 -1
- package/dist/types/components/field/field.d.ts +1 -1
- 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/list/list.d.ts +1 -1
- package/dist/types/components/list/row-checkbox.d.ts +1 -1
- package/dist/types/components/list/virtual-rows.d.ts +1 -1
- package/dist/types/components/menu/menu.d.ts +8 -8
- package/dist/types/components/playground/model-picker.d.ts +3 -3
- package/dist/types/components/playground/parameter-panel.d.ts +1 -1
- package/dist/types/components/popover/hover-card.d.ts +2 -2
- package/dist/types/components/popover/popover-root.d.ts +3 -3
- package/dist/types/components/radio/radio.d.ts +1 -1
- package/dist/types/components/select/option-checkbox.d.ts +1 -1
- package/dist/types/components/select/select.d.ts +4 -4
- package/dist/types/components/sheet/sheet.d.ts +4 -4
- package/dist/types/components/sidebar/sidebar-menu.d.ts +1 -1
- package/dist/types/components/sidebar/sidebar.d.ts +7 -7
- package/dist/types/components/table/docs.d.ts +3 -1
- package/dist/types/components/table/table.d.ts +18 -1
- package/dist/types/components/theme-menu/theme-menu.d.ts +1 -1
- package/dist/types/components/toast/toast.d.ts +3 -3
- package/dist/types/components/toolbar/toolbar.d.ts +1 -1
- package/dist/types/components/tooltip/tooltip-provider.d.ts +1 -1
- package/dist/types/components/tooltip/tooltip-root.d.ts +1 -1
- package/dist/types/components/tooltip/tooltip.d.ts +2 -2
- package/dist/types/hooks/use-scroll-fade.d.ts +2 -0
- package/dist/types/i18n/provider.d.ts +1 -1
- package/dist/types/index.d.ts +1 -0
- package/dist/types/theme/theme-provider.d.ts +1 -1
- package/dist/types/utils/cn.d.ts +7 -0
- package/dist/types/utils/inset.d.ts +2 -2
- package/dist/types/utils/link-provider.d.ts +1 -1
- package/dist/types/utils/portal-context.d.ts +1 -1
- package/dist/utils.js +1 -1
- package/foundations/color.md +1 -0
- package/package.json +8 -8
- package/dist/chunks/button-h2IFCER2.js.map +0 -1
- package/dist/chunks/cn-DUDmdLpZ.js.map +0 -1
- package/dist/chunks/code-block-BU8gYeZQ.js +0 -280
- package/dist/chunks/code-block-BU8gYeZQ.js.map +0 -1
- package/dist/chunks/collapsible-CDQq1Y9x.js.map +0 -1
- package/dist/chunks/command-list-DZMVrXWD.js.map +0 -1
- package/dist/chunks/copy-button-CXJ7fA9z.js +0 -109
- package/dist/chunks/copy-button-CXJ7fA9z.js.map +0 -1
- package/dist/chunks/core-Bu6iq5uh.js.map +0 -1
- package/dist/chunks/select-Bbv2f5F8.js.map +0 -1
- package/dist/chunks/switch-Cq1OfeBr.js.map +0 -1
- package/dist/chunks/table-D-36EM7f.js +0 -67
- package/dist/chunks/table-D-36EM7f.js.map +0 -1
- package/dist/components/scroll-area.js.map +0 -1
|
@@ -0,0 +1,330 @@
|
|
|
1
|
+
"use client";
|
|
2
|
+
import { t as e } from "./cn-Dj6sRgkF.js";
|
|
3
|
+
import { i as t } from "./context-BELWW79w.js";
|
|
4
|
+
import { t as n } from "./observe-resize-DhxhmoyB.js";
|
|
5
|
+
import { n as r } from "./copy-button-7-irieJw.js";
|
|
6
|
+
import { forwardRef as i, useEffect as a, useMemo as o, useRef as s, useState as c } from "react";
|
|
7
|
+
import { jsx as l, jsxs as u } from "react/jsx-runtime";
|
|
8
|
+
import { Tabs as d } from "@base-ui/react/tabs";
|
|
9
|
+
//#region src/components/code-block/kaeso-theme.ts
|
|
10
|
+
var f = {
|
|
11
|
+
text: {
|
|
12
|
+
color: "var(--k-text)",
|
|
13
|
+
className: ""
|
|
14
|
+
},
|
|
15
|
+
quiet: {
|
|
16
|
+
color: "var(--k-text-tertiary)",
|
|
17
|
+
className: "text-fg-tertiary"
|
|
18
|
+
},
|
|
19
|
+
secondary: {
|
|
20
|
+
color: "var(--k-text-secondary)",
|
|
21
|
+
className: "text-fg-secondary"
|
|
22
|
+
},
|
|
23
|
+
string: {
|
|
24
|
+
color: "var(--k-info-text)",
|
|
25
|
+
className: "text-info-text"
|
|
26
|
+
},
|
|
27
|
+
constant: {
|
|
28
|
+
color: "var(--k-warning-text)",
|
|
29
|
+
className: "text-warning-text"
|
|
30
|
+
}
|
|
31
|
+
}, p = 1, m = 2;
|
|
32
|
+
function h(e, t) {
|
|
33
|
+
let n = t ?? 0;
|
|
34
|
+
return [
|
|
35
|
+
Object.values(f).find((t) => t.color === e?.toLowerCase())?.className ?? "",
|
|
36
|
+
n & p ? "italic" : "",
|
|
37
|
+
n & m ? "font-semibold" : ""
|
|
38
|
+
].filter(Boolean).join(" ");
|
|
39
|
+
}
|
|
40
|
+
var g = {
|
|
41
|
+
name: "kaeso",
|
|
42
|
+
type: "light",
|
|
43
|
+
colors: {
|
|
44
|
+
"editor.background": "transparent",
|
|
45
|
+
"editor.foreground": f.text.color
|
|
46
|
+
},
|
|
47
|
+
settings: [
|
|
48
|
+
{ settings: {
|
|
49
|
+
foreground: f.text.color,
|
|
50
|
+
background: "transparent"
|
|
51
|
+
} },
|
|
52
|
+
{
|
|
53
|
+
scope: ["comment", "punctuation.definition.comment"],
|
|
54
|
+
settings: {
|
|
55
|
+
foreground: f.quiet.color,
|
|
56
|
+
fontStyle: "italic"
|
|
57
|
+
}
|
|
58
|
+
},
|
|
59
|
+
{
|
|
60
|
+
scope: [
|
|
61
|
+
"string",
|
|
62
|
+
"string.quoted",
|
|
63
|
+
"string.template",
|
|
64
|
+
"punctuation.definition.string",
|
|
65
|
+
"markup.inline.raw"
|
|
66
|
+
],
|
|
67
|
+
settings: { foreground: f.string.color }
|
|
68
|
+
},
|
|
69
|
+
{
|
|
70
|
+
scope: [
|
|
71
|
+
"constant.numeric",
|
|
72
|
+
"constant.language.boolean",
|
|
73
|
+
"constant.language.null",
|
|
74
|
+
"constant.language"
|
|
75
|
+
],
|
|
76
|
+
settings: { foreground: f.constant.color }
|
|
77
|
+
},
|
|
78
|
+
{
|
|
79
|
+
scope: [
|
|
80
|
+
"keyword",
|
|
81
|
+
"storage",
|
|
82
|
+
"storage.type",
|
|
83
|
+
"storage.modifier",
|
|
84
|
+
"keyword.control",
|
|
85
|
+
"keyword.operator.new",
|
|
86
|
+
"variable.language"
|
|
87
|
+
],
|
|
88
|
+
settings: {
|
|
89
|
+
foreground: f.text.color,
|
|
90
|
+
fontStyle: "bold"
|
|
91
|
+
}
|
|
92
|
+
},
|
|
93
|
+
{
|
|
94
|
+
scope: [
|
|
95
|
+
"punctuation",
|
|
96
|
+
"meta.brace",
|
|
97
|
+
"punctuation.separator",
|
|
98
|
+
"punctuation.terminator",
|
|
99
|
+
"keyword.operator",
|
|
100
|
+
"meta.tag punctuation"
|
|
101
|
+
],
|
|
102
|
+
settings: { foreground: f.quiet.color }
|
|
103
|
+
},
|
|
104
|
+
{
|
|
105
|
+
scope: [
|
|
106
|
+
"entity.name.function",
|
|
107
|
+
"support.function",
|
|
108
|
+
"entity.name.tag",
|
|
109
|
+
"support.class.component"
|
|
110
|
+
],
|
|
111
|
+
settings: { foreground: f.text.color }
|
|
112
|
+
},
|
|
113
|
+
{
|
|
114
|
+
scope: [
|
|
115
|
+
"support.type.property-name",
|
|
116
|
+
"meta.object-literal.key",
|
|
117
|
+
"entity.other.attribute-name",
|
|
118
|
+
"variable.other.property"
|
|
119
|
+
],
|
|
120
|
+
settings: { foreground: f.text.color }
|
|
121
|
+
},
|
|
122
|
+
{
|
|
123
|
+
scope: [
|
|
124
|
+
"entity.name.type",
|
|
125
|
+
"support.type",
|
|
126
|
+
"entity.other.inherited-class"
|
|
127
|
+
],
|
|
128
|
+
settings: { foreground: f.secondary.color }
|
|
129
|
+
}
|
|
130
|
+
]
|
|
131
|
+
}, _ = null, v = 2e3, y = [
|
|
132
|
+
"ts",
|
|
133
|
+
"tsx",
|
|
134
|
+
"js",
|
|
135
|
+
"json",
|
|
136
|
+
"bash",
|
|
137
|
+
"python",
|
|
138
|
+
"yaml",
|
|
139
|
+
"diff"
|
|
140
|
+
];
|
|
141
|
+
function b() {
|
|
142
|
+
return _ ??= (async () => {
|
|
143
|
+
let [{ createHighlighterCore: e }, { createJavaScriptRegexEngine: t }] = await Promise.all([import("shiki/core"), import("shiki/engine/javascript")]);
|
|
144
|
+
return await e({
|
|
145
|
+
themes: [g],
|
|
146
|
+
langs: [],
|
|
147
|
+
engine: t()
|
|
148
|
+
});
|
|
149
|
+
})().catch((e) => {
|
|
150
|
+
throw _ = null, e;
|
|
151
|
+
}), _;
|
|
152
|
+
}
|
|
153
|
+
var x = {
|
|
154
|
+
ts: () => import("shiki/dist/langs/typescript.mjs"),
|
|
155
|
+
tsx: () => import("shiki/dist/langs/tsx.mjs"),
|
|
156
|
+
js: () => import("shiki/dist/langs/javascript.mjs"),
|
|
157
|
+
json: () => import("shiki/dist/langs/json.mjs"),
|
|
158
|
+
bash: () => import("shiki/dist/langs/bash.mjs"),
|
|
159
|
+
python: () => import("shiki/dist/langs/python.mjs"),
|
|
160
|
+
yaml: () => import("shiki/dist/langs/yaml.mjs"),
|
|
161
|
+
diff: () => import("shiki/dist/langs/diff.mjs")
|
|
162
|
+
};
|
|
163
|
+
async function S(e, t) {
|
|
164
|
+
if (t === "text" || e.length > 2e5) return null;
|
|
165
|
+
let n = await b();
|
|
166
|
+
if (!n.getLoadedLanguages().includes(t)) {
|
|
167
|
+
let e = x[t];
|
|
168
|
+
if (!e) return null;
|
|
169
|
+
await n.loadLanguage((await e()).default);
|
|
170
|
+
}
|
|
171
|
+
return n.codeToTokens(e, {
|
|
172
|
+
lang: t,
|
|
173
|
+
theme: "kaeso",
|
|
174
|
+
tokenizeMaxLineLength: v
|
|
175
|
+
}).tokens.map((e) => e.map((e) => ({
|
|
176
|
+
content: e.content,
|
|
177
|
+
className: h(e.color, e.fontStyle)
|
|
178
|
+
})));
|
|
179
|
+
}
|
|
180
|
+
//#endregion
|
|
181
|
+
//#region src/components/code-block/indent.ts
|
|
182
|
+
var C = /^[ \t]+/;
|
|
183
|
+
function w(e, t) {
|
|
184
|
+
let n = t;
|
|
185
|
+
return e.flatMap((e) => {
|
|
186
|
+
if (n === 0) return [e];
|
|
187
|
+
let t = Math.min(n, e.content.length);
|
|
188
|
+
return n -= t, t === e.content.length ? [] : [{
|
|
189
|
+
...e,
|
|
190
|
+
content: e.content.slice(t)
|
|
191
|
+
}];
|
|
192
|
+
});
|
|
193
|
+
}
|
|
194
|
+
//#endregion
|
|
195
|
+
//#region src/hooks/use-scroll-fade.ts
|
|
196
|
+
function T(e, t, n) {
|
|
197
|
+
n > 0 ? e.style.setProperty(t, `${n}px`) : e.style.removeProperty(t);
|
|
198
|
+
}
|
|
199
|
+
function E(e, t, r) {
|
|
200
|
+
a(() => {
|
|
201
|
+
let r = e.current;
|
|
202
|
+
if (!r) return;
|
|
203
|
+
let i = () => {
|
|
204
|
+
let e = Math.abs(r.scrollLeft);
|
|
205
|
+
T(r, "--scroll-area-overflow-x-start", e), T(r, "--scroll-area-overflow-x-end", r.scrollWidth - r.clientWidth - e);
|
|
206
|
+
};
|
|
207
|
+
i(), r.addEventListener("scroll", i, { passive: !0 });
|
|
208
|
+
let a = r.querySelector(t), o = n(a ? [r, a] : [r], i);
|
|
209
|
+
return () => {
|
|
210
|
+
r.removeEventListener("scroll", i), o();
|
|
211
|
+
};
|
|
212
|
+
}, [
|
|
213
|
+
e,
|
|
214
|
+
t,
|
|
215
|
+
r
|
|
216
|
+
]);
|
|
217
|
+
}
|
|
218
|
+
//#endregion
|
|
219
|
+
//#region src/components/code-block/code-block.tsx
|
|
220
|
+
var D = { surface: {
|
|
221
|
+
well: { classes: "rounded-well bg-fill-1" },
|
|
222
|
+
plain: { classes: "bg-transparent" }
|
|
223
|
+
} }, O = { surface: "well" }, k = /* @__PURE__ */ i(function({ code: n = "", lang: i = "ts", tabs: f, tab: p, onTabChange: m, title: h, lineNumbers: g, highlightLines: _ = [], collapseAfter: v = 24, surface: y = "well", copy: b = !0, wrap: x = !1, className: T }, O) {
|
|
224
|
+
let [k, A] = c(0), j = p === void 0 ? -1 : f?.findIndex((e) => e.label === p) ?? -1, M = j >= 0 ? j : k, N = (e) => {
|
|
225
|
+
A(e);
|
|
226
|
+
let t = f?.[e]?.label;
|
|
227
|
+
t !== void 0 && m?.(t);
|
|
228
|
+
}, P = t(), F = f?.[M] ?? {
|
|
229
|
+
label: "",
|
|
230
|
+
code: n,
|
|
231
|
+
lang: i
|
|
232
|
+
}, I = F.code.replace(/\n$/, ""), L = o(() => I.split("\n"), [I]), [R, z] = c(null), [B, V] = c(!1);
|
|
233
|
+
a(() => {
|
|
234
|
+
let e = !0, t = F.lang ?? "ts";
|
|
235
|
+
return S(I, t).then((n) => e && z({
|
|
236
|
+
text: I,
|
|
237
|
+
lang: t,
|
|
238
|
+
tokens: n
|
|
239
|
+
})).catch(() => void 0), () => {
|
|
240
|
+
e = !1;
|
|
241
|
+
};
|
|
242
|
+
}, [I, F.lang]);
|
|
243
|
+
let H = R && R.lang === (F.lang ?? "ts") && R.text === I ? R.tokens : null, U = v > 0 && L.length > v && !B, W = U ? v : L.length, G = s(null);
|
|
244
|
+
E(G, "code", !!f);
|
|
245
|
+
let K = e("relative overflow-x-auto py-16 scrollbar-quiet scroll-fade-x focus-ring-inset", U && "overflow-y-hidden", b && "coarse:mr-40"), q = /* @__PURE__ */ l("pre", {
|
|
246
|
+
className: "mono text-small text-fg",
|
|
247
|
+
children: /* @__PURE__ */ l("code", {
|
|
248
|
+
className: e("grid", !x && "min-w-max", x === "phone" && "sm:min-w-max"),
|
|
249
|
+
children: L.slice(0, W).map((t, n) => /* @__PURE__ */ u("span", {
|
|
250
|
+
className: e("flex px-16 leading-code", x === !0 && "whitespace-pre-wrap wrap-anywhere", x === "phone" && "max-sm:whitespace-pre-wrap max-sm:wrap-anywhere", _.includes(n + 1) && "bg-fill-2"),
|
|
251
|
+
children: [
|
|
252
|
+
g && /* @__PURE__ */ l("span", {
|
|
253
|
+
className: "mr-16 inline-block w-24 shrink-0 text-right text-fg-tertiary select-none tabular",
|
|
254
|
+
children: n + 1
|
|
255
|
+
}),
|
|
256
|
+
x && C.test(t) && /* @__PURE__ */ l("span", {
|
|
257
|
+
className: "shrink-0 whitespace-pre",
|
|
258
|
+
children: C.exec(t)?.[0]
|
|
259
|
+
}),
|
|
260
|
+
/* @__PURE__ */ l("span", {
|
|
261
|
+
className: e("min-w-0", x === !0 && "pl-16 -indent-16", x === "phone" && "max-sm:pl-16 max-sm:-indent-16"),
|
|
262
|
+
children: H?.[n]?.length ? w(H[n], x ? C.exec(t)?.[0].length ?? 0 : 0).map((e, t) => /* @__PURE__ */ l("span", {
|
|
263
|
+
className: e.className || void 0,
|
|
264
|
+
children: e.content
|
|
265
|
+
}, t)) : (x ? t.replace(C, "") : t) || " "
|
|
266
|
+
})
|
|
267
|
+
]
|
|
268
|
+
}, n))
|
|
269
|
+
})
|
|
270
|
+
});
|
|
271
|
+
return /* @__PURE__ */ u("div", {
|
|
272
|
+
ref: O,
|
|
273
|
+
className: e("group/code relative min-w-0", D.surface[y].classes, T),
|
|
274
|
+
children: [
|
|
275
|
+
/* @__PURE__ */ u(d.Root, {
|
|
276
|
+
value: M,
|
|
277
|
+
onValueChange: (e) => N(Number(e)),
|
|
278
|
+
children: [(h || f) && /* @__PURE__ */ u("div", {
|
|
279
|
+
className: "flex h-44 items-center gap-4 px-8 hairline-b",
|
|
280
|
+
children: [h && /* @__PURE__ */ l("span", {
|
|
281
|
+
className: "px-8 mono text-small text-fg-secondary",
|
|
282
|
+
children: h
|
|
283
|
+
}), f && /* @__PURE__ */ l(d.List, {
|
|
284
|
+
"aria-label": P("codeBlock.language", "Language"),
|
|
285
|
+
className: "flex items-center gap-2",
|
|
286
|
+
children: f.map((t, n) => /* @__PURE__ */ l(d.Tab, {
|
|
287
|
+
value: n,
|
|
288
|
+
className: e("inline-flex h-28 cursor-pointer items-center rounded-pill px-10 text-small font-medium transition-control focus-ring", n === M ? "bg-fill-2 text-fg" : "text-fg-secondary hover:bg-fill-2 hover:text-fg"),
|
|
289
|
+
children: t.label
|
|
290
|
+
}, t.label))
|
|
291
|
+
})]
|
|
292
|
+
}), f ? /* @__PURE__ */ l(d.Panel, {
|
|
293
|
+
ref: G,
|
|
294
|
+
value: M,
|
|
295
|
+
className: K,
|
|
296
|
+
children: q
|
|
297
|
+
}) : /* @__PURE__ */ l("div", {
|
|
298
|
+
ref: G,
|
|
299
|
+
tabIndex: 0,
|
|
300
|
+
role: "region",
|
|
301
|
+
"aria-label": typeof h == "string" ? P("codeBlock.titledCode", "{title} code", { title: h }) : P("codeBlock.code", "Code"),
|
|
302
|
+
className: K,
|
|
303
|
+
children: q
|
|
304
|
+
})]
|
|
305
|
+
}),
|
|
306
|
+
v > 0 && L.length > v && /* @__PURE__ */ l("div", {
|
|
307
|
+
className: "flex justify-center pb-12",
|
|
308
|
+
children: /* @__PURE__ */ l("button", {
|
|
309
|
+
type: "button",
|
|
310
|
+
onClick: () => V((e) => !e),
|
|
311
|
+
className: "inline-flex h-28 cursor-pointer items-center rounded-pill px-12 text-small font-medium text-fg-secondary transition-control hover:bg-fill-2 hover:text-fg focus-ring",
|
|
312
|
+
children: B ? P("codeBlock.showLess", "Show less") : P("codeBlock.showAllLines", "Show all {count} lines", { count: String(L.length) })
|
|
313
|
+
})
|
|
314
|
+
}),
|
|
315
|
+
b && /* @__PURE__ */ l("div", {
|
|
316
|
+
className: e("absolute right-8 opacity-0 transition-control group-hover/code:opacity-100 coarse:opacity-100 focus-within:opacity-100", h || f ? "top-52" : "top-8"),
|
|
317
|
+
children: /* @__PURE__ */ l(r, {
|
|
318
|
+
value: I,
|
|
319
|
+
label: P("codeBlock.copy", "Copy code")
|
|
320
|
+
})
|
|
321
|
+
})
|
|
322
|
+
]
|
|
323
|
+
});
|
|
324
|
+
});
|
|
325
|
+
process.env.NODE_ENV !== "production" && (k.displayName = "CodeBlock");
|
|
326
|
+
var A = k;
|
|
327
|
+
//#endregion
|
|
328
|
+
export { y as a, D as i, A as n, S as o, O as r, g as s, k as t };
|
|
329
|
+
|
|
330
|
+
//# sourceMappingURL=code-block-U5fCqwgC.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"code-block-U5fCqwgC.js","names":["BaseTabs","cn","useUiText","observeResize","CopyButton","TONES","ITALIC","BOLD","codeTokenClass","style","fontStyle","tone","color","kaesoShikiTheme","instance","HIGHLIGHT_MAX_LINE","CODE_LANGS","getHighlighter","createHighlighterCore","createJavaScriptRegexEngine","error","LOADERS","highlight","lang","code","h","loader","line","token","INDENT","dropIndent","left","n","tokens","t","cut","setLength","px","el","name","useScrollFadeX","ref","update","start","inner","content","stop","key","KAESO_CODE_BLOCK_VARIANTS","KAESO_CODE_BLOCK_DEFAULT_VARIANTS","CodeBlock","chosen","own","setOwn","useState","match","tabs","item","tab","choose","i","label","onTabChange","current","text","lines","useMemo","highlighted","setHighlighted","expanded","setExpanded","alive","tokenLines","collapsed","collapseAfter","visible","scroller","useRef","codeClass","copy","source","wrap","highlightLines","lineNumbers","j","surface","className","Tabs","v","title","CodeHighlighted"],"sources":["../../src/components/code-block/kaeso-theme.ts","../../src/components/code-block/highlighter.ts","../../src/components/code-block/indent.ts","../../src/hooks/use-scroll-fade.ts","../../src/components/code-block/code-block.tsx"],"sourcesContent":["const TONES = {\n text: { color: \"var(--k-text)\", className: \"\" },\n quiet: { color: \"var(--k-text-tertiary)\", className: \"text-fg-tertiary\" },\n secondary: { color: \"var(--k-text-secondary)\", className: \"text-fg-secondary\" },\n string: { color: \"var(--k-info-text)\", className: \"text-info-text\" },\n constant: { color: \"var(--k-warning-text)\", className: \"text-warning-text\" },\n} as const;\n\nconst ITALIC = 1;\nconst BOLD = 2;\n\nexport function codeTokenClass(color: string | undefined, fontStyle: number | undefined): string {\n const style = fontStyle ?? 0;\n return [\n Object.values(TONES).find((tone) => tone.color === color?.toLowerCase())?.className ?? \"\",\n style & ITALIC ? \"italic\" : \"\",\n style & BOLD ? \"font-semibold\" : \"\",\n ]\n .filter(Boolean)\n .join(\" \");\n}\n\nexport const kaesoShikiTheme = {\n name: \"kaeso\",\n type: \"light\" as const,\n colors: { \"editor.background\": \"transparent\", \"editor.foreground\": TONES.text.color },\n settings: [\n { settings: { foreground: TONES.text.color, background: \"transparent\" } },\n { scope: [\"comment\", \"punctuation.definition.comment\"], settings: { foreground: TONES.quiet.color, fontStyle: \"italic\" } },\n {\n scope: [\"string\", \"string.quoted\", \"string.template\", \"punctuation.definition.string\", \"markup.inline.raw\"],\n settings: { foreground: TONES.string.color },\n },\n {\n scope: [\"constant.numeric\", \"constant.language.boolean\", \"constant.language.null\", \"constant.language\"],\n settings: { foreground: TONES.constant.color },\n },\n {\n scope: [\"keyword\", \"storage\", \"storage.type\", \"storage.modifier\", \"keyword.control\", \"keyword.operator.new\", \"variable.language\"],\n settings: { foreground: TONES.text.color, fontStyle: \"bold\" },\n },\n {\n scope: [\"punctuation\", \"meta.brace\", \"punctuation.separator\", \"punctuation.terminator\", \"keyword.operator\", \"meta.tag punctuation\"],\n settings: { foreground: TONES.quiet.color },\n },\n { scope: [\"entity.name.function\", \"support.function\", \"entity.name.tag\", \"support.class.component\"], settings: { foreground: TONES.text.color } },\n {\n scope: [\"support.type.property-name\", \"meta.object-literal.key\", \"entity.other.attribute-name\", \"variable.other.property\"],\n settings: { foreground: TONES.text.color },\n },\n { scope: [\"entity.name.type\", \"support.type\", \"entity.other.inherited-class\"], settings: { foreground: TONES.secondary.color } },\n ],\n};\n","import { codeTokenClass, kaesoShikiTheme } from \"./kaeso-theme.js\";\n\ntype Highlighter = {\n codeToTokens: (\n code: string,\n o: { lang: string; theme: string; tokenizeMaxLineLength?: number | undefined },\n ) => { tokens: { content: string; color?: string | undefined; fontStyle?: number | undefined }[][] };\n getLoadedLanguages: () => string[];\n loadLanguage: (...l: unknown[]) => Promise<void>;\n};\nlet instance: Promise<Highlighter> | null = null;\n\nexport const HIGHLIGHT_MAX_CHARS = 200_000;\n\nconst HIGHLIGHT_MAX_LINE = 2_000;\n\nexport const CODE_LANGS = [\"ts\", \"tsx\", \"js\", \"json\", \"bash\", \"python\", \"yaml\", \"diff\"] as const;\nexport type CodeLang = (typeof CODE_LANGS)[number] | \"text\";\n\nexport function getHighlighter(): Promise<Highlighter> {\n instance ??= (async () => {\n const [{ createHighlighterCore }, { createJavaScriptRegexEngine }] = await Promise.all([import(\"shiki/core\"), import(\"shiki/engine/javascript\")]);\n return (await createHighlighterCore({ themes: [kaesoShikiTheme as never], langs: [], engine: createJavaScriptRegexEngine() })) as unknown as Highlighter;\n })().catch((error: unknown) => {\n instance = null;\n throw error;\n });\n return instance;\n}\n\nconst LOADERS: Record<Exclude<CodeLang, \"text\">, () => Promise<{ default: unknown }>> = {\n ts: () => import(\"shiki/dist/langs/typescript.mjs\"),\n tsx: () => import(\"shiki/dist/langs/tsx.mjs\"),\n js: () => import(\"shiki/dist/langs/javascript.mjs\"),\n json: () => import(\"shiki/dist/langs/json.mjs\"),\n bash: () => import(\"shiki/dist/langs/bash.mjs\"),\n python: () => import(\"shiki/dist/langs/python.mjs\"),\n yaml: () => import(\"shiki/dist/langs/yaml.mjs\"),\n diff: () => import(\"shiki/dist/langs/diff.mjs\"),\n};\n\nexport interface CodeToken {\n content: string;\n className: string;\n}\n\nexport async function highlight(code: string, lang: CodeLang): Promise<CodeToken[][] | null> {\n if (lang === \"text\" || code.length > HIGHLIGHT_MAX_CHARS) return null;\n const h = await getHighlighter();\n if (!h.getLoadedLanguages().includes(lang)) {\n const loader = LOADERS[lang];\n if (!loader) return null;\n await h.loadLanguage((await loader()).default);\n }\n return h\n .codeToTokens(code, { lang, theme: \"kaeso\", tokenizeMaxLineLength: HIGHLIGHT_MAX_LINE })\n .tokens.map((line) => line.map((token) => ({ content: token.content, className: codeTokenClass(token.color, token.fontStyle) })));\n}\n","import type { CodeToken } from \"./highlighter.js\";\n\nexport const INDENT = /^[ \\t]+/;\n\nexport function dropIndent(tokens: CodeToken[], n: number): CodeToken[] {\n let left = n;\n return tokens.flatMap((t) => {\n if (left === 0) return [t];\n const cut = Math.min(left, t.content.length);\n left -= cut;\n return cut === t.content.length ? [] : [{ ...t, content: t.content.slice(cut) }];\n });\n}\n","import { useEffect, type RefObject } from \"react\";\nimport { observeResize } from \"../utils/observe-resize.js\";\n\nfunction setLength(el: HTMLElement, name: string, px: number) {\n if (px > 0) el.style.setProperty(name, `${px}px`);\n else el.style.removeProperty(name);\n}\n\nexport function useScrollFadeX(ref: RefObject<HTMLElement | null>, content: string, key?: unknown) {\n useEffect(() => {\n const el = ref.current;\n if (!el) return;\n const update = () => {\n const start = Math.abs(el.scrollLeft);\n setLength(el, \"--scroll-area-overflow-x-start\", start);\n setLength(el, \"--scroll-area-overflow-x-end\", el.scrollWidth - el.clientWidth - start);\n };\n update();\n el.addEventListener(\"scroll\", update, { passive: true });\n const inner = el.querySelector(content);\n const stop = observeResize(inner ? [el, inner] : [el], update);\n return () => {\n el.removeEventListener(\"scroll\", update);\n stop();\n };\n }, [ref, content, key]);\n}\n","import { forwardRef, useEffect, useMemo, useRef, useState, type ReactNode } from \"react\";\nimport { Tabs as BaseTabs } from \"@base-ui/react/tabs\";\nimport { cn } from \"../../utils/cn.js\";\nimport { CopyButton } from \"../copy-button/copy-button.js\";\nimport { highlight, type CodeLang, type CodeToken } from \"./highlighter.js\";\nimport { INDENT, dropIndent } from \"./indent.js\";\nimport { useUiText } from \"../../i18n/context.js\";\nimport { useScrollFadeX } from \"../../hooks/use-scroll-fade.js\";\n\nexport const KAESO_CODE_BLOCK_VARIANTS = {\n surface: {\n well: { classes: \"rounded-well bg-fill-1\" },\n plain: { classes: \"bg-transparent\" },\n },\n} as const;\nexport const KAESO_CODE_BLOCK_DEFAULT_VARIANTS = { surface: \"well\" } as const;\n\nexport interface CodeTab {\n label: string;\n code: string;\n lang?: CodeLang | undefined;\n}\n\nexport interface CodeBlockProps {\n code?: string | undefined;\n lang?: CodeLang | undefined;\n tabs?: CodeTab[] | undefined;\n tab?: string | undefined;\n onTabChange?: ((label: string) => void) | undefined;\n title?: ReactNode | undefined;\n lineNumbers?: boolean | undefined;\n highlightLines?: number[] | undefined;\n collapseAfter?: number | undefined;\n surface?: keyof typeof KAESO_CODE_BLOCK_VARIANTS.surface | undefined;\n copy?: boolean | undefined;\n wrap?: boolean | \"phone\" | undefined;\n className?: string | undefined;\n}\n\nexport const CodeBlock = /* @__PURE__ */ forwardRef<HTMLDivElement, CodeBlockProps>(function CodeBlock(\n {\n code = \"\",\n lang = \"ts\",\n tabs,\n tab: chosen,\n onTabChange,\n title,\n lineNumbers,\n highlightLines = [],\n collapseAfter = 24,\n surface = \"well\",\n copy = true,\n wrap = false,\n className,\n },\n ref,\n) {\n const [own, setOwn] = useState(0);\n const match = chosen === undefined ? -1 : (tabs?.findIndex((item) => item.label === chosen) ?? -1);\n const tab = match >= 0 ? match : own;\n const choose = (i: number) => {\n setOwn(i);\n const label = tabs?.[i]?.label;\n if (label !== undefined) onTabChange?.(label);\n };\n const t = useUiText();\n const current = tabs?.[tab] ?? { label: \"\", code, lang };\n const text = current.code.replace(/\\n$/, \"\");\n const lines = useMemo(() => text.split(\"\\n\"), [text]);\n const [highlighted, setHighlighted] = useState<{ text: string; lang: CodeLang; tokens: CodeToken[][] | null } | null>(null);\n const [expanded, setExpanded] = useState(false);\n useEffect(() => {\n let alive = true;\n const lang = current.lang ?? \"ts\";\n highlight(text, lang)\n .then((tokens) => alive && setHighlighted({ text, lang, tokens }))\n .catch(() => undefined);\n return () => {\n alive = false;\n };\n }, [text, current.lang]);\n const tokenLines = highlighted && highlighted.lang === (current.lang ?? \"ts\") && highlighted.text === text ? highlighted.tokens : null;\n const collapsed = collapseAfter > 0 && lines.length > collapseAfter && !expanded;\n const visible = collapsed ? collapseAfter : lines.length;\n const scroller = useRef<HTMLDivElement | null>(null);\n useScrollFadeX(scroller, \"code\", !!tabs);\n const codeClass = cn(\n \"relative overflow-x-auto py-16 scrollbar-quiet scroll-fade-x focus-ring-inset\",\n collapsed && \"overflow-y-hidden\",\n copy && \"coarse:mr-40\",\n );\n const source = (\n <pre className=\"mono text-small text-fg\">\n <code className={cn(\"grid\", !wrap && \"min-w-max\", wrap === \"phone\" && \"sm:min-w-max\")}>\n {lines.slice(0, visible).map((line, i) => (\n <span\n key={i}\n className={cn(\n \"flex px-16 leading-code\",\n wrap === true && \"whitespace-pre-wrap wrap-anywhere\",\n wrap === \"phone\" && \"max-sm:whitespace-pre-wrap max-sm:wrap-anywhere\",\n highlightLines.includes(i + 1) && \"bg-fill-2\",\n )}\n >\n {lineNumbers && <span className=\"mr-16 inline-block w-24 shrink-0 text-right text-fg-tertiary select-none tabular\">{i + 1}</span>}\n {wrap && INDENT.test(line) && <span className=\"shrink-0 whitespace-pre\">{INDENT.exec(line)?.[0]}</span>}\n <span className={cn(\"min-w-0\", wrap === true && \"pl-16 -indent-16\", wrap === \"phone\" && \"max-sm:pl-16 max-sm:-indent-16\")}>\n {tokenLines?.[i]?.length\n ? dropIndent(tokenLines[i], wrap ? (INDENT.exec(line)?.[0].length ?? 0) : 0).map((token, j) => (\n <span key={j} className={token.className || undefined}>\n {token.content}\n </span>\n ))\n : (wrap ? line.replace(INDENT, \"\") : line) || \" \"}\n </span>\n </span>\n ))}\n </code>\n </pre>\n );\n\n return (\n <div ref={ref} className={cn(\"group/code relative min-w-0\", KAESO_CODE_BLOCK_VARIANTS.surface[surface].classes, className)}>\n <BaseTabs.Root value={tab} onValueChange={(v: unknown) => choose(Number(v))}>\n {(title || tabs) && (\n <div className=\"flex h-44 items-center gap-4 px-8 hairline-b\">\n {title && <span className=\"px-8 mono text-small text-fg-secondary\">{title}</span>}\n {tabs && (\n <BaseTabs.List aria-label={t(\"codeBlock.language\", \"Language\")} className=\"flex items-center gap-2\">\n {tabs.map((item, i) => (\n <BaseTabs.Tab\n key={item.label}\n value={i}\n className={cn(\n \"inline-flex h-28 cursor-pointer items-center rounded-pill px-10 text-small font-medium transition-control focus-ring\",\n i === tab ? \"bg-fill-2 text-fg\" : \"text-fg-secondary hover:bg-fill-2 hover:text-fg\",\n )}\n >\n {item.label}\n </BaseTabs.Tab>\n ))}\n </BaseTabs.List>\n )}\n </div>\n )}\n {tabs ? (\n <BaseTabs.Panel ref={scroller} value={tab} className={codeClass}>\n {source}\n </BaseTabs.Panel>\n ) : (\n <div\n ref={scroller}\n tabIndex={0}\n role=\"region\"\n aria-label={typeof title === \"string\" ? t(\"codeBlock.titledCode\", \"{title} code\", { title }) : t(\"codeBlock.code\", \"Code\")}\n className={codeClass}\n >\n {source}\n </div>\n )}\n </BaseTabs.Root>\n {collapseAfter > 0 && lines.length > collapseAfter && (\n <div className=\"flex justify-center pb-12\">\n <button\n type=\"button\"\n onClick={() => setExpanded((e) => !e)}\n className=\"inline-flex h-28 cursor-pointer items-center rounded-pill px-12 text-small font-medium text-fg-secondary transition-control hover:bg-fill-2 hover:text-fg focus-ring\"\n >\n {expanded ? t(\"codeBlock.showLess\", \"Show less\") : t(\"codeBlock.showAllLines\", \"Show all {count} lines\", { count: String(lines.length) })}\n </button>\n </div>\n )}\n {copy && (\n <div\n className={cn(\n \"absolute right-8 opacity-0 transition-control group-hover/code:opacity-100 coarse:opacity-100 focus-within:opacity-100\",\n title || tabs ? \"top-52\" : \"top-8\",\n )}\n >\n <CopyButton value={text} label={t(\"codeBlock.copy\", \"Copy code\")} />\n </div>\n )}\n </div>\n );\n});\nif (process.env.NODE_ENV !== \"production\") CodeBlock.displayName = \"CodeBlock\";\n\nexport const CodeHighlighted = CodeBlock;\n"],"mappings":"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"}
|
|
@@ -1,5 +1,5 @@
|
|
|
1
1
|
"use client";
|
|
2
|
-
import { t as e } from "./cn-
|
|
2
|
+
import { t as e } from "./cn-Dj6sRgkF.js";
|
|
3
3
|
import { forwardRef as t } from "react";
|
|
4
4
|
import { jsx as n } from "react/jsx-runtime";
|
|
5
5
|
//#region src/components/code/code.tsx
|
|
@@ -30,4 +30,4 @@ process.env.NODE_ENV !== "production" && (a.displayName = "Code");
|
|
|
30
30
|
//#endregion
|
|
31
31
|
export { i as n, r, a as t };
|
|
32
32
|
|
|
33
|
-
//# sourceMappingURL=code-
|
|
33
|
+
//# sourceMappingURL=code-tqj0uhBL.js.map
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"code-
|
|
1
|
+
{"version":3,"file":"code-tqj0uhBL.js","names":["cn","KAESO_CODE_VARIANTS","KAESO_CODE_DEFAULT_VARIANTS","Code","props","oneWord","children","flow","shape","className"],"sources":["../../src/components/code/code.tsx"],"sourcesContent":["import { forwardRef, type HTMLAttributes } from \"react\";\nimport { cn } from \"../../utils/cn.js\";\n\nexport const KAESO_CODE_VARIANTS = {\n shape: {\n auto: { classes: \"\" },\n pill: { classes: \"rounded-pill\" },\n rounded: { classes: \"rounded-code\" },\n },\n flow: {\n box: { classes: \"inline-block\" },\n text: {\n classes: \"inline box-decoration-clone\",\n },\n cell: {\n classes: \"inline\",\n },\n },\n} as const;\nexport const KAESO_CODE_DEFAULT_VARIANTS = { shape: \"auto\", flow: \"box\" } as const;\n\nexport interface CodeProps extends HTMLAttributes<HTMLElement> {\n shape?: keyof typeof KAESO_CODE_VARIANTS.shape | undefined;\n flow?: keyof typeof KAESO_CODE_VARIANTS.flow | undefined;\n}\n\nexport const Code = /* @__PURE__ */ forwardRef<HTMLElement, CodeProps>(function Code({ shape = \"auto\", flow = \"box\", className, children, ...props }, ref) {\n const oneWord = typeof children === \"string\" && !/\\s/.test(children);\n return (\n <code\n ref={ref}\n className={cn(\n \"mono bg-fill-1 px-4 py-2 align-baseline text-small leading-none text-fg\",\n KAESO_CODE_VARIANTS.flow[flow].classes,\n shape === \"auto\" ? (oneWord ? \"rounded-pill\" : \"rounded-code\") : KAESO_CODE_VARIANTS.shape[shape].classes,\n className,\n )}\n {...props}\n >\n {children}\n </code>\n );\n});\nif (process.env.NODE_ENV !== \"production\") Code.displayName = \"Code\";\n"],"mappings":";;;;;AAGA,IAAaC,IAAsB;CACjC,OAAO;EACL,MAAM,EAAE,SAAS,GAAG;EACpB,MAAM,EAAE,SAAS,eAAe;EAChC,SAAS,EAAE,SAAS,eAAe;CACrC;CACA,MAAM;EACJ,KAAK,EAAE,SAAS,eAAe;EAC/B,MAAM,EACJ,SAAS,8BACX;EACA,MAAM,EACJ,SAAS,SACX;CACF;AACF,GACaC,IAA8B;CAAE,OAAO;CAAQ,MAAM;AAAM,GAO3DC,IAAuB,kBAAmC,SAAc,EAAE,WAAQ,QAAQ,UAAO,OAAO,cAAW,aAAU,GAAGC,KAAS,GAAK;CACzJ,IAAMC,IAAU,OAAOC,KAAa,YAAY,CAAC,KAAK,KAAKA,CAAQ;CACnE,OACE,kBAAC,QAAD;EACO;EACL,WAAWN,EACT,2EACAC,EAAoB,KAAKM,EAAK,CAAC,SAC/BC,MAAU,SAAUH,IAAU,iBAAiB,iBAAkBJ,EAAoB,MAAMO,EAAM,CAAC,SAClGC,CACF;EACA,GAAIL;EAEH;CACG,CAAA;AAEV,CAAC;AACD,QAAA,IAAA,aAA6B,iBAAc,EAAK,cAAc"}
|
|
@@ -1,6 +1,6 @@
|
|
|
1
1
|
"use client";
|
|
2
|
-
import { t as e } from "./cn-
|
|
3
|
-
import { t } from "./icon-
|
|
2
|
+
import { t as e } from "./cn-Dj6sRgkF.js";
|
|
3
|
+
import { t } from "./icon-D7ja-_Yk.js";
|
|
4
4
|
import { forwardRef as n } from "react";
|
|
5
5
|
import { jsx as r, jsxs as i } from "react/jsx-runtime";
|
|
6
6
|
import { ArrowDown01Icon as a, ArrowRight01Icon as o } from "@hugeicons/core-free-icons";
|
|
@@ -10,34 +10,34 @@ import { Accordion as c } from "@base-ui/react/accordion";
|
|
|
10
10
|
var l = { state: {
|
|
11
11
|
closed: { classes: "" },
|
|
12
12
|
open: { classes: "group-data-panel-open/dt:rotate-90" }
|
|
13
|
-
} }, u = { state: "closed" }, d = "group/dt flex min-h-40 w-full cursor-pointer items-center gap-8 rounded-item px-12 text-left text-body font-medium text-fg transition-control hover:bg-fill-1 focus-ring-inset", f = /* @__PURE__ */ n(function({ title: n, children: a, open: c, defaultOpen: u, onOpenChange:
|
|
13
|
+
} }, u = { state: "closed" }, d = "group/dt flex min-h-40 w-full cursor-pointer items-center gap-8 rounded-item px-12 text-left text-body font-medium text-fg transition-control hover:bg-fill-1 focus-ring-inset", f = /* @__PURE__ */ n(function({ title: n, children: a, open: c, defaultOpen: u, onOpenChange: d, hint: f, className: p }, m) {
|
|
14
14
|
return /* @__PURE__ */ i(s.Root, {
|
|
15
|
-
ref:
|
|
15
|
+
ref: m,
|
|
16
16
|
...c === void 0 ? {} : { open: c },
|
|
17
17
|
...u === void 0 ? {} : { defaultOpen: u },
|
|
18
|
-
...
|
|
19
|
-
className: e("flex flex-col",
|
|
18
|
+
...d ? { onOpenChange: (e) => d(e) } : {},
|
|
19
|
+
className: e("flex flex-col", p),
|
|
20
20
|
children: [/* @__PURE__ */ i(s.Trigger, {
|
|
21
|
-
className:
|
|
21
|
+
className: "group/dt flex min-h-40 w-full cursor-pointer items-center gap-8 rounded-item text-left text-body font-medium text-fg focus-ring",
|
|
22
22
|
children: [
|
|
23
23
|
/* @__PURE__ */ r(t, {
|
|
24
24
|
icon: o,
|
|
25
25
|
size: "sm",
|
|
26
|
-
className: e("text-fg-tertiary transition-transform duration-180 ease-overlay", l.state.open.classes)
|
|
26
|
+
className: e("text-fg-tertiary transition-transform duration-180 ease-overlay group-hover/dt:text-fg", l.state.open.classes)
|
|
27
27
|
}),
|
|
28
28
|
/* @__PURE__ */ r("span", {
|
|
29
29
|
className: "min-w-0 flex-1",
|
|
30
30
|
children: n
|
|
31
31
|
}),
|
|
32
|
-
|
|
33
|
-
className: "text-small font-regular text-fg-secondary",
|
|
34
|
-
children:
|
|
32
|
+
f && /* @__PURE__ */ r("span", {
|
|
33
|
+
className: "text-small font-regular text-fg-secondary transition-control group-hover/dt:text-fg",
|
|
34
|
+
children: f
|
|
35
35
|
})
|
|
36
36
|
]
|
|
37
37
|
}), /* @__PURE__ */ r(s.Panel, {
|
|
38
38
|
className: "collapse-motion",
|
|
39
39
|
children: /* @__PURE__ */ r("div", {
|
|
40
|
-
className: "pt-4
|
|
40
|
+
className: "pt-4 pb-12 pl-24",
|
|
41
41
|
children: a
|
|
42
42
|
})
|
|
43
43
|
})]
|
|
@@ -84,4 +84,4 @@ process.env.NODE_ENV !== "production" && (p.displayName = "Accordion");
|
|
|
84
84
|
//#endregion
|
|
85
85
|
export { l as i, f as n, u as r, p as t };
|
|
86
86
|
|
|
87
|
-
//# sourceMappingURL=collapsible-
|
|
87
|
+
//# sourceMappingURL=collapsible-CKrCX_T9.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"collapsible-CKrCX_T9.js","names":["Collapsible","BaseCollapsible","__icon_ArrowRight01Icon","Accordion","BaseAccordion","__icon_ArrowDown01Icon","cn","KAESO_COLLAPSIBLE_VARIANTS","KAESO_COLLAPSIBLE_DEFAULT_VARIANTS","TRIGGER","Collapsible$1","Collapsible","open","defaultOpen","onOpenChange","o","className","Icon","ArrowRight01Icon","title","hint","Accordion$1","Accordion","multiple","defaultValue","items","it","ArrowDown01Icon"],"sources":["../../src/components/collapsible/collapsible.tsx"],"sourcesContent":["import { forwardRef, type ReactNode } from \"react\";\nimport { Collapsible as BaseCollapsible } from \"@base-ui/react/collapsible\";\nimport { Accordion as BaseAccordion } from \"@base-ui/react/accordion\";\nimport { cn } from \"../../utils/cn.js\";\nimport { ArrowRight01Icon as __icon_ArrowRight01Icon, ArrowDown01Icon as __icon_ArrowDown01Icon } from \"@hugeicons/core-free-icons\";\nimport { Icon } from \"../icon/icon.js\";\n\nexport const KAESO_COLLAPSIBLE_VARIANTS = {\n state: {\n closed: { classes: \"\" },\n open: { classes: \"group-data-panel-open/dt:rotate-90\" },\n },\n} as const;\nexport const KAESO_COLLAPSIBLE_DEFAULT_VARIANTS = { state: \"closed\" } as const;\n\nconst TRIGGER =\n \"group/dt flex min-h-40 w-full cursor-pointer items-center gap-8 rounded-item px-12 text-left text-body font-medium text-fg transition-control hover:bg-fill-1 focus-ring-inset\";\n\nexport interface CollapsibleProps {\n title: ReactNode;\n children: ReactNode;\n open?: boolean | undefined;\n defaultOpen?: boolean | undefined;\n onOpenChange?: ((open: boolean) => void) | undefined;\n hint?: ReactNode | undefined;\n className?: string | undefined;\n}\n\nexport const Collapsible = /* @__PURE__ */ forwardRef<HTMLDivElement, CollapsibleProps>(function Collapsible(\n { title, children, open, defaultOpen, onOpenChange, hint, className },\n ref,\n) {\n return (\n <BaseCollapsible.Root\n ref={ref}\n {...(open !== undefined ? { open } : {})}\n {...(defaultOpen !== undefined ? { defaultOpen } : {})}\n {...(onOpenChange ? { onOpenChange: (o: boolean) => onOpenChange(o) } : {})}\n className={cn(\"flex flex-col\", className)}\n >\n <BaseCollapsible.Trigger className=\"group/dt flex min-h-40 w-full cursor-pointer items-center gap-8 rounded-item text-left text-body font-medium text-fg focus-ring\">\n <Icon\n icon={__icon_ArrowRight01Icon}\n size=\"sm\"\n className={cn(\n \"text-fg-tertiary transition-transform duration-180 ease-overlay group-hover/dt:text-fg\",\n KAESO_COLLAPSIBLE_VARIANTS.state.open.classes,\n )}\n />\n <span className=\"min-w-0 flex-1\">{title}</span>\n {hint && <span className=\"text-small font-regular text-fg-secondary transition-control group-hover/dt:text-fg\">{hint}</span>}\n </BaseCollapsible.Trigger>\n <BaseCollapsible.Panel className=\"collapse-motion\">\n <div className=\"pt-4 pb-12 pl-24\">{children}</div>\n </BaseCollapsible.Panel>\n </BaseCollapsible.Root>\n );\n});\nif (process.env.NODE_ENV !== \"production\") Collapsible.displayName = \"Collapsible\";\n\nexport interface AccordionItem {\n value: string;\n title: ReactNode;\n content: ReactNode;\n hint?: ReactNode | undefined;\n}\n\nexport interface AccordionProps {\n items: AccordionItem[];\n multiple?: boolean | undefined;\n defaultValue?: string[] | undefined;\n className?: string | undefined;\n}\n\nexport const Accordion = /* @__PURE__ */ forwardRef<HTMLDivElement, AccordionProps>(function Accordion({ items, multiple = false, defaultValue, className }, ref) {\n return (\n <BaseAccordion.Root\n ref={ref}\n {...(multiple ? { multiple: true } : {})}\n {...(defaultValue ? { defaultValue } : {})}\n className={cn(\"flex flex-col\", className)}\n >\n {items.map((it) => (\n <BaseAccordion.Item key={it.value} value={it.value} className=\"hairline-b\">\n <BaseAccordion.Header>\n <BaseAccordion.Trigger className={cn(TRIGGER, \"min-h-48\")}>\n <span className=\"min-w-0 flex-1\">{it.title}</span>\n {it.hint && <span className=\"text-small font-regular text-fg-secondary\">{it.hint}</span>}\n <Icon\n icon={__icon_ArrowDown01Icon}\n size=\"sm\"\n className=\"text-fg-tertiary transition-transform duration-180 ease-overlay group-data-panel-open/dt:rotate-180\"\n />\n </BaseAccordion.Trigger>\n </BaseAccordion.Header>\n <BaseAccordion.Panel className=\"collapse-motion\">\n <div className=\"px-12 pb-16 text-body text-fg-secondary\">{it.content}</div>\n </BaseAccordion.Panel>\n </BaseAccordion.Item>\n ))}\n </BaseAccordion.Root>\n );\n});\nif (process.env.NODE_ENV !== \"production\") Accordion.displayName = \"Accordion\";\n"],"mappings":";;;;;;;;;AAOA,IAAaO,IAA6B,EACxC,OAAO;CACL,QAAQ,EAAE,SAAS,GAAG;CACtB,MAAM,EAAE,SAAS,qCAAqC;AACxD,EACF,GACaC,IAAqC,EAAE,OAAO,SAAS,GAE9DC,IACJ,kLAYWT,IAA8B,kBAA6C,SACtF,EAAE,UAAO,aAAU,SAAM,gBAAa,iBAAc,SAAM,gBAC1D,GACA;CACA,OACE,kBAACC,EAAgB,MAAjB;EACO;EACL,GAAKW,MAAS,KAAA,IAAuB,CAAC,IAAZ,EAAE,QAAK;EACjC,GAAKC,MAAgB,KAAA,IAA8B,CAAC,IAAnB,EAAE,eAAY;EAC/C,GAAKC,IAAe,EAAE,eAAe,MAAeA,EAAaC,CAAC,EAAE,IAAI,CAAC;EACzE,WAAWT,EAAG,iBAAiBU,CAAS;EAL1C,UAAA,CAOE,kBAACf,EAAgB,SAAjB;GAAyB,WAAU;GAAnC,UAAA;IACE,kBAACgB,GAAD;KACE,MAAMf;KACN,MAAK;KACL,WAAWI,EACT,0FACAC,EAA2B,MAAM,KAAK,OACxC;IACD,CAAA;IACD,kBAAC,QAAD;KAAM,WAAU;KAAkB,UAAAY;IAAY,CAAA;IAC7CC,KAAQ,kBAAC,QAAD;KAAM,WAAU;KAAuF,UAAAA;IAAW,CAAA;GACpG;EACzB,CAAA,GAAA,kBAACnB,EAAgB,OAAjB;GAAuB,WAAU;GAC/B,UAAA,kBAAC,OAAD;IAAK,WAAU;IAAoB;GAAc,CAAA;EAC5B,CAAA,CACH;;AAE1B,CAAC;AACD,QAAA,IAAA,aAA6B,iBAAc,EAAY,cAAc;AAgBrE,IAAaE,IAA4B,kBAA2C,SAAmB,EAAE,UAAO,cAAW,IAAO,iBAAc,gBAAa,GAAK;CAChK,OACE,kBAACC,EAAc,MAAf;EACO;EACL,GAAKmB,IAAW,EAAE,UAAU,GAAK,IAAI,CAAC;EACtC,GAAKC,IAAe,EAAE,gBAAa,IAAI,CAAC;EACxC,WAAWlB,EAAG,iBAAiBU,CAAS;EAEvC,UAAAS,EAAM,KAAK,MACV,kBAACrB,EAAc,MAAf;GAAmC,OAAOsB,EAAG;GAAO,WAAU;GAA9D,UAAA,CACE,kBAACtB,EAAc,QAAf,EAAA,UACE,kBAACA,EAAc,SAAf;IAAuB,WAAWE,EAAGG,GAAS,UAAU;IAAxD,UAAA;KACE,kBAAC,QAAD;MAAM,WAAU;MAAkB,UAAAiB,EAAG;KAAY,CAAA;KAChDA,EAAG,QAAQ,kBAAC,QAAD;MAAM,WAAU;MAA6C,UAAAA,EAAG;KAAW,CAAA;KACvF,kBAACT,GAAD;MACE,MAAMZ;MACN,MAAK;MACL,WAAU;KACX,CAAA;IACoB;GACH,CAAA,EAAA,CAAA,GACtB,kBAACD,EAAc,OAAf;IAAqB,WAAU;IAC7B,UAAA,kBAAC,OAAD;KAAK,WAAU;KAA2C,UAAAsB,EAAG;IAAa,CAAA;GACvD,CAAA,CACH;EAfK,GAAAA,EAAG,KAeR,CACrB;CACiB,CAAA;AAExB,CAAC;AACD,QAAA,IAAA,aAA6B,iBAAc,EAAU,cAAc"}
|
|
@@ -1,13 +1,13 @@
|
|
|
1
1
|
"use client";
|
|
2
2
|
import { i as e, o as t, r as n } from "./styles-CVJU9t9v.js";
|
|
3
|
-
import { t as r } from "./cn-
|
|
3
|
+
import { t as r } from "./cn-Dj6sRgkF.js";
|
|
4
4
|
import { i } from "./dev-CR1p7gCm.js";
|
|
5
5
|
import { n as ee, r as te } from "./portal-context-BBbzDKmY.js";
|
|
6
6
|
import { i as a } from "./context-BELWW79w.js";
|
|
7
|
-
import { t as o } from "./icon-
|
|
8
|
-
import { a as s, o as ne, s as re } from "./field-
|
|
9
|
-
import { i as c } from "./input-group-
|
|
10
|
-
import { a as l } from "./tag-
|
|
7
|
+
import { t as o } from "./icon-D7ja-_Yk.js";
|
|
8
|
+
import { a as s, o as ne, s as re } from "./field-TviMvYa2.js";
|
|
9
|
+
import { i as c } from "./input-group-CUSNsQjQ.js";
|
|
10
|
+
import { a as l } from "./tag-DNdX1XRR.js";
|
|
11
11
|
import { n as ie, t as ae } from "./use-layout-width-CbSDbRb0.js";
|
|
12
12
|
import { forwardRef as u, useEffect as d, useMemo as f, useRef as p, useState as m } from "react";
|
|
13
13
|
import { Fragment as h, jsx as g, jsxs as _ } from "react/jsx-runtime";
|
|
@@ -311,4 +311,4 @@ process.env.NODE_ENV !== "production" && (O.displayName = "Autocomplete");
|
|
|
311
311
|
//#endregion
|
|
312
312
|
export { w as a, T as i, D as n, E as r, O as t };
|
|
313
313
|
|
|
314
|
-
//# sourceMappingURL=combobox-
|
|
314
|
+
//# sourceMappingURL=combobox-BARyrpXH.js.map
|