@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
|
@@ -1 +0,0 @@
|
|
|
1
|
-
{"version":3,"file":"core-Bu6iq5uh.js","names":["cn","useUiText","observeResize","Button","Skeleton","wholeTicks","values","ticks","VIZ","VIZ_THIN","hash","h","i","s","NEAR","seriesIndex","id","assignSeries","out","used","clash","k","ids","keys","seriesColors","thin","seriesColor","tokenKindColor","tokenKindTint","tokenKindSeries","TOKEN_KIND_ORDER","tokenKindLabel","englishText","kind","useSize","el","setEl","useState","size","setSize","useLayoutEffect","set","ease","t","reducedMotion","mix","to","from","v","tweens","useTweened","key","tween","setTween","current","still","drawn","running","useEffect","start","raf","step","motion","useTweenedScale","any","top","ChartFrame","asTable","setAsTable","className","label","state","table","height","DataTablePlain","children","legend","toggle","caption","c","r","j","Swatch","shape","off","color","tickLabel","format","readableTicks","n","count","scale","lo","hi","dayNumber","d","m","yearOfDay","yearStarts","days","dates","prev","WIDE","labelWidth","em","ch","AXIS","LABEL_GAP","placeTimeLabels","placed","width","anchor","right","x","left","clear","a","b","kept","l","axisLabelIndexes","labels","fits","edges","room","every","starts","stride","score","p","best","Legend","items","hidden","it","onToggle","onHover","ChartTooltip","useRef","own","setOwn","w","heading","rows","visible","flip","wanted","xLeft","y","KAESO_CHARTS_VARIANTS","KAESO_CHARTS_DEFAULT_VARIANTS","chartKeyIndex","back","vertical","forward","index","useChartKeys","setIndex","options","keyboard","next","e","ChartLive","liveLine"],"sources":["../../src/components/charts/core.tsx"],"sourcesContent":["import type * as React from \"react\";\nimport { useEffect, useLayoutEffect, useRef, useState, type ReactNode } from \"react\";\nimport { cn } from \"../../utils/cn.js\";\nimport { observeResize } from \"../../utils/observe-resize.js\";\nimport { motion, tokenKindSeries, tokenKindTint } from \"@logicplanes/kaeso-tokens\";\nimport { Skeleton } from \"../skeleton/skeleton.js\";\nimport { Button } from \"../button/button.js\";\nimport { englishText, useUiText, type UiText } from \"../../i18n/context.js\";\n\nexport function wholeTicks(ticks: number[], values: number[]): number[] {\n return values.every(Number.isInteger) ? ticks.filter(Number.isInteger) : ticks;\n}\nexport const VIZ = [\n \"var(--k-viz-1)\",\n \"var(--k-viz-2)\",\n \"var(--k-viz-3)\",\n \"var(--k-viz-4)\",\n \"var(--k-viz-5)\",\n \"var(--k-viz-6)\",\n \"var(--k-viz-7)\",\n \"var(--k-viz-8)\",\n] as const;\nexport const VIZ_THIN = [\n \"var(--k-viz-thin-1)\",\n \"var(--k-viz-thin-2)\",\n \"var(--k-viz-thin-3)\",\n \"var(--k-viz-thin-4)\",\n \"var(--k-viz-thin-5)\",\n \"var(--k-viz-thin-6)\",\n \"var(--k-viz-thin-7)\",\n \"var(--k-viz-thin-8)\",\n] as const;\n\nfunction hash(s: string) {\n let h = 2166136261;\n for (let i = 0; i < s.length; i++) h = Math.imul(h ^ s.charCodeAt(i), 16777619);\n return Math.abs(h);\n}\nconst NEAR: Record<number, number> = { 1: 6, 6: 1, 2: 5, 5: 2, 3: 7, 7: 3 };\n\nexport function seriesIndex(id: string): number {\n return hash(id) % VIZ.length;\n}\n\nexport function assignSeries(ids: string[]): Map<string, number> {\n const out = new Map<string, number>();\n const used = new Set<number>();\n const clash = (k: number) => used.has(k) || (NEAR[k] !== undefined && used.has(NEAR[k]!));\n for (const id of ids) {\n if (out.has(id)) continue;\n let i = seriesIndex(id);\n if (clash(i)) {\n const keys = [...VIZ.keys()];\n i = keys.find((k) => !clash(k)) ?? keys.find((k) => !used.has(k)) ?? i;\n }\n used.add(i);\n out.set(id, i);\n }\n return out;\n}\n\nexport function seriesColors(ids: string[], thin = false): Map<string, string> {\n return new Map([...assignSeries(ids)].map(([id, i]) => [id, (thin ? VIZ_THIN : VIZ)[i]!]));\n}\n\nexport const seriesColor = (id: string, thin = false) => (thin ? VIZ_THIN : VIZ)[seriesIndex(id)]!;\n\nexport type TokenKind = keyof typeof tokenKindSeries;\nexport const tokenKindColor = (k: TokenKind, thin = false) => {\n if (tokenKindTint[k]) return \"var(--k-viz-1-soft)\";\n return (thin ? VIZ_THIN : VIZ)[tokenKindSeries[k] - 1]!;\n};\nexport const TOKEN_KIND_ORDER: TokenKind[] = [\"input\", \"cacheRead\", \"cacheWrite\", \"output\", \"reasoning\"];\nexport function tokenKindLabel(kind: TokenKind, t: UiText = englishText): string {\n switch (kind) {\n case \"input\":\n return t(\"tokenKind.input\", \"Input\");\n case \"output\":\n return t(\"tokenKind.output\", \"Output\");\n case \"cacheRead\":\n return t(\"tokenKind.cacheRead\", \"Cache read\");\n case \"cacheWrite\":\n return t(\"tokenKind.cacheWrite\", \"Cache write\");\n case \"reasoning\":\n return t(\"tokenKind.reasoning\", \"Reasoning\");\n }\n}\n\nexport function useSize<T extends HTMLElement>(): [(el: T | null) => void, { width: number; height: number }] {\n const [el, setEl] = useState<T | null>(null);\n const [size, setSize] = useState({ width: 0, height: 0 });\n useLayoutEffect(() => {\n if (!el) return;\n const set = () => setSize({ width: Math.round(el.clientWidth), height: Math.round(el.clientHeight) });\n set();\n return observeResize([el], set);\n }, [el]);\n return [setEl, size];\n}\n\nconst ease = (t: number) => 1 - Math.pow(1 - t, 3);\nconst reducedMotion = () => typeof matchMedia !== \"undefined\" && matchMedia(\"(prefers-reduced-motion: reduce)\").matches;\nconst mix = (from: number[], to: number[], t: number) => (t >= 1 ? to : to.map((v, i) => (from[i] ?? v) + (v - (from[i] ?? v)) * ease(t)));\n\nexport function tweens(from: number[], to: number[]): boolean {\n return from.length === to.length && from.some((v) => v !== 0) && to.some((v) => v !== 0) && from.some((v, i) => v !== to[i]) && !reducedMotion();\n}\n\nexport function useTweened(values: number[], still = false): number[] {\n const key = values.join(\",\");\n const [tween, setTween] = useState({ key, from: values, to: values, t: 1, still });\n let current = tween;\n if (tween.key !== key || tween.still !== still) {\n const drawn = mix(tween.from, tween.to, tween.t);\n const animate = !still && !tween.still && tweens(drawn, values);\n current = animate ? { key, from: drawn, to: values, t: 0, still } : { key, from: values, to: values, t: 1, still };\n setTween(current);\n }\n const running = current.t < 1;\n useEffect(() => {\n if (!running) return;\n const start = performance.now();\n let raf = 0;\n const step = () => {\n const t = Math.max(0, Math.min(1, (performance.now() - start) / motion.duration.chart));\n setTween((s) => (s.key === key ? { ...s, t } : s));\n if (t < 1) raf = requestAnimationFrame(step);\n };\n raf = requestAnimationFrame(step);\n return () => cancelAnimationFrame(raf);\n }, [key, running]);\n return mix(current.from, current.to, current.t);\n}\n\nexport function useTweenedScale(values: number[], top: number, still = false): { values: number[]; top: number } {\n const any = values.some((v) => v !== 0);\n const drawn = useTweened(any ? [...values, top] : values, still);\n return any ? { values: drawn.slice(0, -1), top: drawn[drawn.length - 1] ?? top } : { values: drawn, top };\n}\n\nexport interface ChartState {\n loading?: boolean | undefined;\n error?: ReactNode | undefined;\n onRetry?: (() => void) | undefined;\n empty?: boolean | undefined;\n emptyText?: ReactNode | undefined;\n}\n\nexport interface TableData {\n columns: string[];\n rows: (string | number)[][];\n}\n\nexport function ChartFrame({\n label,\n height,\n children,\n table,\n legend,\n state = {},\n className,\n toggle = true,\n}: {\n label: string;\n height: number;\n children: ReactNode;\n table?: TableData | undefined;\n legend?: ReactNode | undefined;\n state?: ChartState | undefined;\n className?: string | undefined;\n toggle?: boolean | undefined;\n}) {\n const [asTable, setAsTable] = useState(false);\n const t = useUiText();\n return (\n <figure className={cn(\"flex min-w-0 flex-col gap-12\", className)} aria-label={label}>\n {state.error ? (\n <div className=\"flex flex-col items-center justify-center gap-8 text-center\" style={{ height }}>\n <p role=\"alert\" className=\"text-body text-fg-secondary\">\n {t(\"chartFrame.loadFailed\", \"Couldn't load this chart\")}\n </p>\n {state.onRetry && (\n <Button size=\"sm\" onClick={state.onRetry}>\n {t(\"chartFrame.tryAgain\", \"Try again\")}\n </Button>\n )}\n </div>\n ) : asTable && table ? (\n <div className=\"overflow-auto scrollbar-quiet\" style={{ minHeight: height }}>\n <DataTablePlain table={table} />\n </div>\n ) : (\n <div className=\"relative\" style={{ height }}>\n {state.loading && state.empty ? <Skeleton className=\"absolute inset-0\" /> : children}\n {state.loading && !state.empty && <Skeleton className=\"absolute inset-x-0 bottom-0 h-2 rounded-pill\" />}\n {state.empty && !state.loading && (\n <div className=\"absolute inset-0 flex items-center justify-center text-body text-fg-secondary\">\n {state.emptyText ?? t(\"chartFrame.noData\", \"No data for this period\")}\n </div>\n )}\n </div>\n )}\n {(legend || (toggle && table)) && (\n <div className=\"flex flex-wrap items-center gap-12\">\n <div className=\"min-w-0 flex-1\">{!asTable && legend}</div>\n {toggle && table && (\n <button\n type=\"button\"\n onClick={() => setAsTable((v) => !v)}\n aria-pressed={asTable}\n className=\"relative inline-flex h-28 cursor-pointer items-center rounded-pill px-10 text-small font-medium text-fg-secondary transition-control hover:bg-fill-1 hover:text-fg focus-ring tap-target\"\n >\n {asTable ? t(\"chartFrame.viewAsChart\", \"View as chart\") : t(\"chartFrame.viewAsTable\", \"View as table\")}\n </button>\n )}\n </div>\n )}\n {table && !asTable && (\n <div className=\"sr-only\">\n <DataTablePlain table={table} caption={label} />\n </div>\n )}\n </figure>\n );\n}\n\nfunction DataTablePlain({ table, caption }: { table: TableData; caption?: string | undefined }) {\n return (\n <table className=\"w-full text-body\">\n {caption && <caption className=\"sr-only\">{caption}</caption>}\n <thead>\n <tr className=\"hairline-b-strong\">\n {table.columns.map((c, i) => (\n <th key={c} scope=\"col\" className={cn(\"h-36 px-12 text-caption font-medium text-fg-secondary first:pl-0\", i > 0 ? \"text-right\" : \"text-left\")}>\n {c}\n </th>\n ))}\n </tr>\n </thead>\n <tbody>\n {table.rows.map((r, i) => (\n <tr key={i} className=\"hairline-b\">\n {r.map((v, j) => (\n <td key={j} className={cn(\"h-36 px-12 first:pl-0\", j > 0 ? \"text-right tabular\" : \"text-left\")}>\n {v}\n </td>\n ))}\n </tr>\n ))}\n </tbody>\n </table>\n );\n}\n\nexport interface LegendItem {\n id: string;\n label: ReactNode;\n color: string;\n value?: ReactNode | undefined;\n}\n\nexport function Swatch({ color, shape = \"square\", off }: { color: string; shape?: \"square\" | \"line\" | undefined; off?: boolean | undefined }) {\n return (\n <span\n aria-hidden\n className={cn(\"shrink-0 transition-control\", shape === \"line\" ? \"h-2 w-12 rounded-pill\" : \"size-10 rounded-bar\", off && \"opacity-30\")}\n style={{ background: color }}\n />\n );\n}\nif (process.env.NODE_ENV !== \"production\") Swatch.displayName = \"Swatch\";\n\nexport const tickLabel = (format: (v: number) => string) => (v: number) => format(v).replace(/[.,]00(?=\\D*$)/, \"\");\n\nexport function readableTicks(scale: { ticks: (count: number) => number[]; domain: () => number[] }, label: (v: number) => string, count = 4): number[] {\n for (let n = count; n >= 1; n--) {\n const ticks = scale.ticks(n);\n if (new Set(ticks.map(label)).size === ticks.length) return ticks;\n }\n const [lo = 0, hi = 0] = scale.domain();\n return label(lo) === label(hi) ? [lo] : [lo, hi];\n}\n\nexport type AxisDate = Date | string;\n\nfunction dayNumber(d: AxisDate): number {\n if (d instanceof Date) return Number.isNaN(d.getTime()) ? NaN : Date.UTC(d.getFullYear(), d.getMonth(), d.getDate()) / 86_400_000;\n const m = /^(\\d{4})-(\\d{2})-(\\d{2})/.exec(d);\n return m ? Date.UTC(Number(m[1]), Number(m[2]) - 1, Number(m[3])) / 86_400_000 : NaN;\n}\nconst yearOfDay = (n: number) => new Date(n * 86_400_000).getUTCFullYear();\n\nexport function yearStarts(dates: readonly AxisDate[]): number[] {\n const days = dates.map(dayNumber);\n const out: number[] = [];\n days.forEach((d, i) => {\n const prev = i > 0 ? days[i - 1]! : days.length > 1 ? 2 * d - days[1]! : NaN;\n if (Number.isFinite(d) && Number.isFinite(prev) && yearOfDay(d) !== yearOfDay(prev)) out.push(i);\n });\n return out;\n}\n\nconst WIDE = /[\\p{Script=Han}\\p{Script=Hiragana}\\p{Script=Katakana}\\p{Script=Hangul}\\u3000-\\u303f\\uff00-\\uffef]/u;\n\nexport function labelWidth(label: string): number {\n let em = 0;\n for (const ch of label) em += WIDE.test(ch) ? 1 : /\\p{Lu}/u.test(ch) ? 0.8 : /\\p{Ll}/u.test(ch) ? 0.6 : /\\p{Nd}/u.test(ch) ? 0.66 : /\\s/.test(ch) ? 0.3 : 0.4;\n return em * AXIS.label.fontSize;\n}\n\nconst LABEL_GAP = 8;\n\nexport function placeTimeLabels(\n ticks: { key: number; at: number; label: string }[],\n right: number,\n): { key: number; x: number; anchor: \"start\" | \"middle\" | \"end\"; label: string }[] {\n const placed = ticks.map((t) => {\n const width = labelWidth(t.label);\n const anchor: \"start\" | \"middle\" | \"end\" = t.at - width / 2 < 0 ? \"start\" : t.at + width / 2 > right ? \"end\" : \"middle\";\n const x = anchor === \"start\" ? Math.max(t.at, 0) : t.at;\n const left = anchor === \"start\" ? x : anchor === \"end\" ? x - width : x - width / 2;\n return { key: t.key, x, anchor, label: t.label, left, right: left + width };\n });\n const clear = (a: { right: number } | undefined, b: { left: number } | undefined) => !a || !b || a.right + LABEL_GAP <= b.left;\n if (placed.length > 2 && !clear(placed[0], placed[1])) placed.splice(1, 1);\n if (placed.length > 2 && !clear(placed[placed.length - 2], placed[placed.length - 1])) placed.splice(placed.length - 2, 1);\n const kept: typeof placed = [];\n for (const l of placed) if (clear(kept[kept.length - 1], l)) kept.push(l);\n return kept.map(({ key, x, anchor, label }) => ({ key, x, anchor, label }));\n}\n\nexport function axisLabelIndexes(\n labels: string[],\n step: number,\n edges: { start: number; end: number } = { start: Infinity, end: Infinity },\n dates?: readonly AxisDate[] | undefined,\n): number[] {\n const n = labels.length;\n if (n === 0) return [];\n const fits = (i: number) => labelWidth(labels[i]!) / 2 <= Math.min(edges.start + i * step, edges.end + (n - 1 - i) * step) + 1e-6;\n const room = Math.max(48, Math.max(...labels.map(labelWidth)) + 16);\n const every = step > 0 ? Math.max(1, Math.ceil(room / step - 1e-6)) : n;\n const starts = dates && dates.length === n ? yearStarts(dates) : [];\n let stride = every;\n for (let s = every; every > 1 && s <= every * 2; s++) {\n if (starts.every((i) => (i - starts[0]!) % s === 0)) {\n stride = s;\n break;\n }\n }\n const score = (p: number) => [\n starts.filter((i) => i % stride === p && fits(i)).length,\n (n - 1) % stride === p && fits(n - 1) ? 1 : 0,\n p === 0 && fits(0) ? 1 : 0,\n n - 1 - ((n - 1 - p) % stride),\n ];\n let best = 0;\n for (let p = 1; p < Math.min(stride, n); p++) {\n const a = score(p);\n const b = score(best);\n const k = a.findIndex((v, j) => v !== b[j]);\n if (k >= 0 && a[k]! > b[k]!) best = p;\n }\n const out: number[] = [];\n for (let i = best; i < n; i += stride) if (fits(i)) out.push(i);\n return out;\n}\n\nexport function Legend({\n items,\n hidden,\n onToggle,\n onHover,\n shape = \"square\",\n}: {\n items: LegendItem[];\n hidden?: Set<string> | undefined;\n onToggle?: ((id: string) => void) | undefined;\n onHover?: ((id: string | null) => void) | undefined;\n shape?: \"square\" | \"line\" | undefined;\n}) {\n const t = useUiText();\n return (\n <ul className=\"flex flex-wrap items-center gap-4\" aria-label={t(\"chartLegend.label\", \"Legend\")}>\n {items.map((it) => {\n const off = hidden?.has(it.id);\n const Comp = onToggle ? \"button\" : \"span\";\n return (\n <li key={it.id}>\n <Comp\n {...(onToggle ? { type: \"button\" as const, \"aria-pressed\": !off, onClick: () => onToggle(it.id) } : {})}\n onMouseEnter={() => onHover?.(it.id)}\n onMouseLeave={() => onHover?.(null)}\n onFocus={() => onHover?.(it.id)}\n onBlur={() => onHover?.(null)}\n className={cn(\n \"inline-flex h-28 items-center gap-8 rounded-pill px-10 text-small font-medium transition-control\",\n onToggle && \"relative cursor-pointer hover:bg-fill-1 focus-ring tap-target\",\n off ? \"text-fg-tertiary\" : \"text-fg\",\n )}\n >\n <Swatch color={it.color} shape={shape} off={off} />\n {it.label}\n {it.value !== undefined && <span className=\"text-fg-secondary tabular\">{it.value}</span>}\n </Comp>\n </li>\n );\n })}\n </ul>\n );\n}\nif (process.env.NODE_ENV !== \"production\") Legend.displayName = \"Legend\";\n\nexport interface TooltipRow {\n id: string;\n label: ReactNode;\n color: string;\n value: ReactNode;\n share?: ReactNode | undefined;\n}\n\nexport function ChartTooltip({\n x,\n xLeft = x,\n y,\n width,\n heading,\n rows,\n visible,\n}: {\n x: number;\n xLeft?: number | undefined;\n y: number;\n width: number;\n heading: ReactNode;\n rows: TooltipRow[];\n visible: boolean;\n}) {\n const el = useRef<HTMLDivElement | null>(null);\n const [own, setOwn] = useState(0);\n useLayoutEffect(() => {\n const w = el.current?.offsetWidth ?? 0;\n if (w !== own) setOwn(w);\n }, [own, heading, rows, visible]);\n const flip = x > width / 2;\n const wanted = flip ? xLeft - 16 - own : x + 16;\n const left = own ? Math.round(Math.max(0, Math.min(wanted, width - own))) : undefined;\n return (\n <div\n ref={el}\n role=\"presentation\"\n aria-hidden\n className={cn(\n \"pointer-events-none absolute z-10 w-max min-w-200 max-w-360 rounded-tooltip bg-raised p-10 text-small shadow-raised opacity-motion\",\n visible && own ? \"opacity-100\" : \"opacity-0\",\n )}\n style={{\n ...(left !== undefined ? { left } : flip ? { right: Math.round(width - xLeft + 16) } : { left: Math.round(x + 16) }),\n top: Math.round(Math.max(0, y - 24)),\n }}\n >\n <div className=\"mb-6 text-caption font-medium text-fg tabular\">{heading}</div>\n <div className=\"flex flex-col gap-4\">\n {rows.map((r) => (\n <div key={r.id} className=\"flex items-center gap-8\">\n <Swatch color={r.color} />\n <span className=\"min-w-0 flex-1 truncate pr-12 text-fg-secondary\">{r.label}</span>\n <span className=\"font-medium text-fg tabular\">{r.value}</span>\n {r.share !== undefined && <span className=\"w-40 text-right text-fg-tertiary tabular\">{r.share}</span>}\n </div>\n ))}\n </div>\n </div>\n );\n}\nif (process.env.NODE_ENV !== \"production\") ChartTooltip.displayName = \"ChartTooltip\";\n\nexport const AXIS = {\n grid: { stroke: \"var(--k-line)\", strokeDasharray: \"3 3\", strokeWidth: 1 },\n baseline: { stroke: \"var(--k-line-strong)\", strokeWidth: 1 },\n label: { fill: \"var(--k-text-tertiary)\", fontSize: 12, fontWeight: 500, style: { fontVariantNumeric: \"tabular-nums\" as const } },\n};\n\nexport const KAESO_CHARTS_VARIANTS = {\n chrome: { default: { classes: \"\" } },\n} as const;\nexport const KAESO_CHARTS_DEFAULT_VARIANTS = { chrome: \"default\" } as const;\n\nexport function chartKeyIndex(\n key: string,\n index: number | null,\n count: number,\n { vertical = false, start = count - 1 }: { vertical?: boolean | undefined; start?: number | undefined } = {},\n): number | null | undefined {\n if (count <= 0) return undefined;\n const back = vertical ? \"ArrowUp\" : \"ArrowLeft\";\n const forward = vertical ? \"ArrowDown\" : \"ArrowRight\";\n if (key === back) return index === null ? start : Math.max(0, index - 1);\n if (key === forward) return index === null ? start : Math.min(count - 1, index + 1);\n if (key === \"Home\") return 0;\n if (key === \"End\") return count - 1;\n if (key === \"Escape\") return index === null ? undefined : null;\n return undefined;\n}\n\nexport function useChartKeys(count: number, options: { vertical?: boolean | undefined; start?: number | undefined } = {}) {\n const [index, setIndex] = useState<number | null>(null);\n const start = options.start ?? count - 1;\n const props = {\n tabIndex: count > 0 ? 0 : -1,\n onFocus: (e: React.FocusEvent<HTMLElement>) => {\n if (e.target !== e.currentTarget) return;\n let keyboard = true;\n try {\n keyboard = e.currentTarget.matches(\":focus-visible\");\n } catch {}\n if (keyboard && !document.documentElement.hasAttribute(\"data-k-pointer\")) setIndex(Math.max(0, start));\n },\n onBlur: () => setIndex(null),\n onKeyDown: (e: React.KeyboardEvent<HTMLElement>) => {\n const next = chartKeyIndex(e.key, index, count, { vertical: !!options.vertical, start });\n if (next === undefined) return;\n e.preventDefault();\n if (next === null) e.stopPropagation();\n setIndex(next);\n },\n };\n return { index: index !== null && index < count ? index : null, props };\n}\n\nexport function ChartLive({ children }: { children?: ReactNode | undefined }) {\n return (\n <div className=\"sr-only\" aria-live=\"polite\" aria-atomic>\n {children}\n </div>\n );\n}\nif (process.env.NODE_ENV !== \"production\") ChartLive.displayName = \"ChartLive\";\n\nexport const liveLine = (heading: ReactNode, rows: { label: ReactNode; value: ReactNode }[], t: UiText = englishText) =>\n t(\"chart.liveLine\", \"{heading}: {values}\", {\n heading: String(heading),\n values: rows.map((r) => t(\"chart.liveValue\", \"{label} {value}\", { label: String(r.label), value: String(r.value) })).join(t(\"chart.listSeparator\", \", \")),\n });\n"],"mappings":"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"}
|
|
@@ -1 +0,0 @@
|
|
|
1
|
-
{"version":3,"file":"select-Bbv2f5F8.js","names":["Select","BaseSelect","__icon_ArrowDown01Icon","__icon_ArrowUp01Icon","__icon_Tick02Icon","MENU_ITEM","MENU_POPUP","cn","warnStylingClassName","pageBoundary","usePortalContainer","useUiText","Icon","useField","useFieldControl","useLayoutWidth","anchorWidthStyle","OptionCheckbox","KAESO_SELECT_VARIANTS","KAESO_SELECT_DEFAULT_VARIANTS","changeWith","accepts","value","onChange","groupsOf","out","o","options","last","Select$1","placeholderProp","ariaLabel","force","props","className","t","placeholder","field","fc","trigger","useRef","triggerWidth","setTrigger","useCallback","el","ref","byValue","textOf","v","valueProps","control","Select","required","disabled","name","open","onOpenChange","id","invalid","error","size","appearance","fullWidth","label","description","icon","multiple","arr","first","ArrowDown01Icon","CSPProvider","ArrowUp01Icon","Fragment","gi","g","Tick02Icon","withField"],"sources":["../../src/components/select/select.tsx"],"sourcesContent":["import { pageBoundary, usePortalContainer } from \"../../utils/portal-context.js\";\nimport { Fragment, forwardRef, useCallback, useRef, type ReactNode } from \"react\";\nimport { CSPProvider } from \"@base-ui/react/csp-provider\";\nimport { Select as BaseSelect } from \"@base-ui/react/select\";\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 { ArrowDown01Icon as __icon_ArrowDown01Icon, ArrowUp01Icon as __icon_ArrowUp01Icon, Tick02Icon as __icon_Tick02Icon } from \"@hugeicons/core-free-icons\";\nimport { MENU_ICON, MENU_ITEM, MENU_LABEL, MENU_POPUP, MENU_SEPARATOR } from \"../menu/styles.js\";\nimport { anchorWidthStyle, useLayoutWidth } from \"../../hooks/use-layout-width.js\";\nimport { useUiText } from \"../../i18n/context.js\";\nimport { OptionCheckbox } from \"./option-checkbox.js\";\n\nexport const KAESO_SELECT_VARIANTS = {\n appearance: {\n default: { classes: \"material-secondary\" },\n ghost: { classes: \"material-ghost text-fg-secondary hover:text-fg open:text-fg\" },\n header: { classes: \"material-ghost text-fg\" },\n },\n size: {\n sm: { classes: \"h-32 pl-12 pr-10 gap-6 text-body\" },\n md: { classes: \"h-36 pl-16 pr-12 gap-8 text-body\" },\n lg: { classes: \"h-40 pl-18 pr-14 gap-8 text-body\" },\n xl: { classes: \"h-48 pl-22 pr-18 gap-8 text-body-lg\" },\n },\n} as const;\nexport const KAESO_SELECT_DEFAULT_VARIANTS = { appearance: \"default\", size: \"md\" } as const;\n\nexport interface SelectOption {\n value: string;\n label: ReactNode;\n textValue?: string | undefined;\n description?: ReactNode | undefined;\n icon?: IconData | undefined;\n group?: string | undefined;\n disabled?: boolean | undefined;\n}\n\ninterface BaseProps extends FieldWrapProps {\n options: SelectOption[];\n placeholder?: ReactNode | undefined;\n size?: keyof typeof KAESO_SELECT_VARIANTS.size | undefined;\n appearance?: keyof typeof KAESO_SELECT_VARIANTS.appearance | undefined;\n disabled?: boolean | undefined;\n name?: string | undefined;\n id?: string | undefined;\n open?: boolean | undefined;\n onOpenChange?: ((open: boolean) => void) | undefined;\n invalid?: boolean | undefined;\n icon?: IconData | undefined;\n fullWidth?: boolean | undefined;\n \"aria-label\"?: string | undefined;\n className?: string | undefined;\n \"data-force\"?: string | undefined;\n}\nexport interface SingleSelectProps extends BaseProps {\n multiple?: false | undefined;\n value?: string | null | undefined;\n defaultValue?: string | null | undefined;\n onValueChange?: ((value: string) => void) | undefined;\n}\nexport interface MultiSelectProps extends BaseProps {\n multiple: true;\n value?: string[] | undefined;\n defaultValue?: string[] | undefined;\n onValueChange?: ((value: string[]) => void) | undefined;\n}\nexport type SelectProps = SingleSelectProps | MultiSelectProps;\n\nfunction changeWith<T extends string | string[]>(onChange: (value: T) => void, accepts: (value: unknown) => value is T) {\n return (value: unknown) => {\n if (accepts(value)) onChange(value);\n };\n}\n\nfunction groupsOf(options: SelectOption[]) {\n const out: { group: string | undefined; items: SelectOption[] }[] = [];\n for (const o of options) {\n const last = out[out.length - 1];\n if (last && last.group === o.group) last.items.push(o);\n else out.push({ group: o.group, items: [o] });\n }\n return out;\n}\n\nexport const Select = /* @__PURE__ */ forwardRef<HTMLButtonElement, SelectProps>(function Select(props, ref) {\n const {\n options,\n placeholder: placeholderProp,\n size = \"md\",\n appearance = \"default\",\n disabled,\n name,\n id,\n open,\n onOpenChange,\n invalid,\n icon,\n fullWidth,\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(\"Select\", className);\n const t = useUiText();\n const placeholder = placeholderProp ?? t(\"select.placeholder\", \"Select\");\n const field = useField();\n const fc = useFieldControl(props);\n const trigger = useRef<HTMLButtonElement | null>(null);\n const triggerWidth = useLayoutWidth(trigger);\n const setTrigger = useCallback(\n (el: HTMLButtonElement | null) => {\n trigger.current = el;\n if (typeof ref === \"function\") ref(el);\n else if (ref) ref.current = el;\n },\n [ref],\n );\n const byValue = new Map(options.map((o) => [o.value, o]));\n const textOf = (v: string) => {\n const o = byValue.get(v);\n return o?.textValue ?? (typeof o?.label === \"string\" ? o.label : v);\n };\n const valueProps: Pick<BaseSelect.Root.Props<string, boolean>, \"multiple\" | \"value\" | \"defaultValue\" | \"onValueChange\"> = props.multiple\n ? {\n multiple: true,\n ...(props.value !== undefined ? { value: props.value } : {}),\n ...(props.defaultValue !== undefined ? { defaultValue: props.defaultValue } : {}),\n ...(props.onValueChange ? { onValueChange: changeWith(props.onValueChange, Array.isArray) } : {}),\n }\n : {\n ...(props.value !== undefined ? { value: props.value } : {}),\n ...(props.defaultValue !== undefined ? { defaultValue: props.defaultValue } : {}),\n ...(props.onValueChange ? { onValueChange: changeWith(props.onValueChange, (v) => typeof v === \"string\") } : {}),\n };\n const control = (\n <BaseSelect.Root\n {...valueProps}\n {...((field?.required ?? required) ? { required: true } : {})}\n {...(disabled !== undefined ? { disabled } : {})}\n {...(name ? { name } : {})}\n {...(open !== undefined ? { open } : {})}\n {...(onOpenChange ? { onOpenChange: (o: boolean) => onOpenChange(o) } : {})}\n itemToStringLabel={(v: unknown) => textOf(String(v))}\n modal={false}\n >\n <BaseSelect.Trigger\n ref={setTrigger}\n {...(id ? { id } : {})}\n {...fc.controlProps}\n {...(ariaLabel ? { \"aria-label\": ariaLabel } : {})}\n {...(invalid || error ? { \"aria-invalid\": true } : {})}\n {...(force ? { \"data-force\": force } : {})}\n className={cn(\n \"inline-flex min-w-0 cursor-pointer items-center justify-between rounded-pill font-medium whitespace-nowrap transition-control focus-ring disabled:cursor-not-allowed\",\n KAESO_SELECT_VARIANTS.size[size].classes,\n KAESO_SELECT_VARIANTS.appearance[appearance].classes,\n (invalid || error) && \"ring-invalid\",\n fullWidth && \"w-full\",\n !(label || description || error) && className,\n )}\n >\n {icon && <Icon icon={icon} size=\"sm\" className=\"text-fg-secondary\" />}\n <BaseSelect.Value\n className=\"min-w-0 flex-1 truncate text-left data-placeholder:text-fg-tertiary data-placeholder:font-regular\"\n placeholder={placeholder}\n >\n {(value: unknown) => {\n if (multiple) {\n const arr = Array.isArray(value) ? value.map(String) : [];\n const [first] = arr;\n if (first === undefined) return placeholder;\n return arr.length === 1 ? textOf(first) : t(\"select.firstAndMore\", \"{first} +{count}\", { first: textOf(first), count: String(arr.length - 1) });\n }\n return value == null || value === \"\" ? placeholder : (byValue.get(String(value))?.label ?? String(value));\n }}\n </BaseSelect.Value>\n <BaseSelect.Icon className=\"flex shrink-0 text-fg-tertiary\">\n <Icon icon={__icon_ArrowDown01Icon} size=\"sm\" />\n </BaseSelect.Icon>\n </BaseSelect.Trigger>\n <CSPProvider disableStyleElements>\n <BaseSelect.Portal container={usePortalContainer()}>\n <BaseSelect.Positioner\n positionMethod=\"fixed\"\n collisionBoundary={pageBoundary()}\n alignItemWithTrigger={false}\n align=\"start\"\n sideOffset={6}\n collisionPadding={8}\n className=\"z-50 outline-none\"\n >\n <BaseSelect.Popup className={cn(MENU_POPUP, \"min-w-anchor overflow-hidden\")} style={anchorWidthStyle(triggerWidth)}>\n <BaseSelect.ScrollUpArrow className=\"flex h-20 items-center justify-center text-fg-tertiary\">\n <Icon icon={__icon_ArrowUp01Icon} size=\"xs\" />\n </BaseSelect.ScrollUpArrow>\n <BaseSelect.List className=\"-mx-6 flex min-h-0 flex-col overflow-y-auto overscroll-contain px-6 outline-none scrollbar-quiet\">\n {groupsOf(options).map((g, gi) => (\n <Fragment key={g.group ?? `g${gi}`}>\n {gi > 0 && <div role=\"presentation\" className={MENU_SEPARATOR} />}\n <BaseSelect.Group className=\"flex flex-col\">\n {g.group && <BaseSelect.GroupLabel className={MENU_LABEL}>{g.group}</BaseSelect.GroupLabel>}\n {g.items.map((o) => (\n <BaseSelect.Item\n key={o.value}\n value={o.value}\n {...(o.disabled ? { disabled: true } : {})}\n label={o.textValue ?? (typeof o.label === \"string\" ? o.label : o.value)}\n className={cn(MENU_ITEM, \"group/opt\")}\n >\n {multiple && (\n <span className=\"pointer-events-none flex\">\n <OptionCheckbox />\n </span>\n )}\n {o.icon && <Icon icon={o.icon} size=\"sm\" className={cn(MENU_ICON, o.description && \"self-start mt-10\")} />}\n <span className={cn(\"flex min-w-0 flex-1 flex-col\", o.description && \"gap-2 py-8\")}>\n <BaseSelect.ItemText className=\"truncate\">{o.label}</BaseSelect.ItemText>\n {o.description && <span className=\"text-small font-regular whitespace-normal text-fg-secondary\">{o.description}</span>}\n </span>\n {!multiple && (\n <BaseSelect.ItemIndicator\n keepMounted\n className={cn(\n \"flex size-16 shrink-0 items-center justify-center text-fg opacity-0 data-selected:opacity-100\",\n o.description && \"self-start mt-10\",\n )}\n >\n <Icon icon={__icon_Tick02Icon} size=\"sm\" />\n </BaseSelect.ItemIndicator>\n )}\n </BaseSelect.Item>\n ))}\n </BaseSelect.Group>\n </Fragment>\n ))}\n </BaseSelect.List>\n <BaseSelect.ScrollDownArrow className=\"flex h-20 items-center justify-center text-fg-tertiary\">\n <Icon icon={__icon_ArrowDown01Icon} size=\"xs\" />\n </BaseSelect.ScrollDownArrow>\n </BaseSelect.Popup>\n </BaseSelect.Positioner>\n </BaseSelect.Portal>\n </CSPProvider>\n </BaseSelect.Root>\n );\n if (field) return control;\n return withField({ label, description, error, optional, required, layout, id: fc.wrapId ?? id, disabled, className }, control);\n});\nif (process.env.NODE_ENV !== \"production\") Select.displayName = \"Select\";\n"],"mappings":"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"}
|
|
@@ -1 +0,0 @@
|
|
|
1
|
-
{"version":3,"file":"switch-Cq1OfeBr.js","names":["Switch","BaseSwitch","cn","Tooltip","labelled","KAESO_SWITCH_VARIANTS","KAESO_SWITCH_DEFAULT_VARIANTS","THUMB","Switch$1","force","aria","auto","useId","sid","id","soft","disabledReason","disabled","named","label","description","switchEl","Switch","checked","defaultChecked","onCheckedChange","c","readOnly","loading","name","size","className","control"],"sources":["../../src/components/switch/switch.tsx"],"sourcesContent":["import { forwardRef, useId, type ReactNode } from \"react\";\nimport { Switch as BaseSwitch } from \"@base-ui/react/switch\";\nimport { cn } from \"../../utils/cn.js\";\nimport { Tooltip } from \"../tooltip/tooltip.js\";\nimport { labelled } from \"../radio/labelled.js\";\n\nexport const KAESO_SWITCH_VARIANTS = {\n size: {\n sm: { classes: \"h-16 w-28 p-2\" },\n md: { classes: \"h-20 w-36 p-2\" },\n lg: { classes: \"h-24 w-44 p-2\" },\n },\n} as const;\nexport const KAESO_SWITCH_DEFAULT_VARIANTS = { size: \"md\" } as const;\n\nconst THUMB = {\n sm: \"size-12 data-checked:translate-x-12 rtl:data-checked:-translate-x-12\",\n md: \"size-16 data-checked:translate-x-16 rtl:data-checked:-translate-x-16\",\n lg: \"size-20 data-checked:translate-x-20 rtl:data-checked:-translate-x-20\",\n} as const;\n\nexport interface SwitchProps {\n checked?: boolean | undefined;\n defaultChecked?: boolean | undefined;\n onCheckedChange?: ((checked: boolean) => void) | undefined;\n disabled?: boolean | undefined;\n disabledReason?: string | undefined;\n readOnly?: boolean | undefined;\n loading?: boolean | undefined;\n name?: string | undefined;\n size?: keyof typeof KAESO_SWITCH_VARIANTS.size | undefined;\n label?: ReactNode | undefined;\n description?: ReactNode | undefined;\n id?: string | undefined;\n \"aria-label\"?: string | undefined;\n \"aria-labelledby\"?: string | undefined;\n className?: string | undefined;\n \"data-force\"?: string | undefined;\n}\n\nexport const Switch = /* @__PURE__ */ forwardRef<HTMLButtonElement, SwitchProps>(function Switch(\n {\n checked,\n defaultChecked,\n onCheckedChange,\n disabled,\n disabledReason,\n readOnly,\n loading,\n name,\n size = \"md\",\n label,\n description,\n id,\n className,\n \"data-force\": force,\n ...aria\n },\n ref,\n) {\n const auto = useId();\n const sid = id ?? `k-switch-${auto}`;\n const soft = !!disabledReason && !!disabled;\n const named = labelled(sid, label, label ? description : undefined, aria);\n const switchEl = (\n <BaseSwitch.Root\n ref={ref}\n id={sid}\n {...(checked !== undefined ? { checked } : {})}\n {...(defaultChecked !== undefined ? { defaultChecked } : {})}\n {...(onCheckedChange ? { onCheckedChange: (c: boolean) => onCheckedChange(c) } : {})}\n {...(disabled !== undefined && !soft ? { disabled } : {})}\n {...(readOnly || loading || soft ? { readOnly: true } : {})}\n {...(soft ? { \"aria-disabled\": true } : {})}\n {...(name ? { name } : {})}\n {...(loading ? { \"aria-busy\": true } : {})}\n {...(force ? { \"data-force\": force } : {})}\n {...aria}\n {...named.aria}\n className={cn(\n \"group/sw relative inline-flex shrink-0 cursor-pointer items-center rounded-pill bg-fill-3 transition-control focus-ring tap-target\",\n \"hover:bg-line-strong checked:bg-ink checked:hover:bg-ink\",\n \"disabled:cursor-not-allowed disabled:opacity-40\",\n soft && \"cursor-not-allowed opacity-40 hover:bg-fill-3 checked:hover:bg-ink\",\n KAESO_SWITCH_VARIANTS.size[size].classes,\n !label && className,\n )}\n >\n <BaseSwitch.Thumb\n className={cn(\n \"block rounded-pill bg-raised shadow-thumb indicator-motion data-checked:bg-on-ink data-checked:shadow-none\",\n THUMB[size],\n loading && \"animate-pulse-quiet\",\n )}\n />\n </BaseSwitch.Root>\n );\n const control = soft ? <Tooltip content={disabledReason}>{switchEl}</Tooltip> : switchEl;\n if (!label) return control;\n return (\n <label htmlFor={sid} className={cn(\"flex min-h-32 cursor-pointer items-center justify-between gap-16\", disabled && \"cursor-not-allowed\", className)}>\n <span className=\"flex min-w-0 flex-col\">\n <span id={named.labelId} className={cn(\"text-body text-fg\", disabled && \"text-fg-disabled\")}>\n {label}\n </span>\n {description && (\n <span id={named.descriptionId} className=\"text-small text-fg-secondary\">\n {description}\n </span>\n )}\n </span>\n {control}\n </label>\n );\n});\nif (process.env.NODE_ENV !== \"production\") Switch.displayName = \"Switch\";\n"],"mappings":";;;;;;;;AAMA,IAAaK,IAAwB,EACnC,MAAM;CACJ,IAAI,EAAE,SAAS,gBAAgB;CAC/B,IAAI,EAAE,SAAS,gBAAgB;CAC/B,IAAI,EAAE,SAAS,gBAAgB;AACjC,EACF,GACaC,IAAgC,EAAE,MAAM,KAAK,GAEpDC,IAAQ;CACZ,IAAI;CACJ,IAAI;CACJ,IAAI;AACN,GAqBaP,IAAyB,kBAA2C,SAC/E,EACE,YACA,mBACA,oBACA,aACA,mBACA,aACA,YACA,SACA,UAAO,MACP,UACA,gBACA,OACA,cACA,cAAcS,GACd,GAAGC,KAEL,GACA;CACA,IAAMC,IAAOC,EAAM,GACbC,IAAMC,KAAM,YAAYH,KACxBI,IAAO,CAAC,CAACC,KAAkB,CAAC,CAACC,GAC7BC,IAAQd,EAASS,GAAKM,GAAOA,IAAQC,IAAc,KAAA,GAAWV,CAAI,GAClEW,IACJ,kBAACpB,EAAW,MAAZ;EACO;EACL,IAAIY;EACJ,GAAKU,MAAY,KAAA,IAA0B,CAAC,IAAf,EAAE,WAAQ;EACvC,GAAKC,MAAmB,KAAA,IAAiC,CAAC,IAAtB,EAAE,kBAAe;EACrD,GAAKC,IAAkB,EAAE,kBAAkB,MAAeA,EAAgBC,CAAC,EAAE,IAAI,CAAC;EAClF,GAAKT,MAAa,KAAA,KAAa,CAACF,IAAO,EAAE,YAAS,IAAI,CAAC;EACvD,GAAKY,KAAYC,KAAWb,IAAO,EAAE,UAAU,GAAK,IAAI,CAAC;EACzD,GAAKA,IAAO,EAAE,iBAAiB,GAAK,IAAI,CAAC;EACzC,GAAKc,IAAO,EAAE,QAAK,IAAI,CAAC;EACxB,GAAKD,IAAU,EAAE,aAAa,GAAK,IAAI,CAAC;EACxC,GAAKnB,IAAQ,EAAE,cAAcA,EAAM,IAAI,CAAC;EACxC,GAAIC;EACJ,GAAIQ,EAAM;EACV,WAAWhB,EACT,sIACA,4DACA,mDACAa,KAAQ,sEACRV,EAAsB,KAAKyB,EAAK,CAAC,SACjC,CAACX,KAASY,CACZ;EAEA,UAAA,kBAAC9B,EAAW,OAAZ,EACE,WAAWC,EACT,8GACAK,EAAMuB,IACNF,KAAW,qBACb,EACD,CAAA;CACc,CAAA,GAEbI,IAAUjB,IAAO,kBAACZ,GAAD;EAAS,SAASa;EAAiB,UAAAK;CAAkB,CAAA,IAAIA;CAEhF,OADKF,IAEH,kBAAC,SAAD;EAAO,SAASN;EAAK,WAAWX,EAAG,oEAAoEe,KAAY,sBAAsBc,CAAS;EAAlJ,UAAA,CACE,kBAAC,QAAD;GAAM,WAAU;GAAhB,UAAA,CACE,kBAAC,QAAD;IAAM,IAAIb,EAAM;IAAS,WAAWhB,EAAG,qBAAqBe,KAAY,kBAAkB;IACvF,UAAAE;GACG,CAAA,GACLC,KACC,kBAAC,QAAD;IAAM,IAAIF,EAAM;IAAe,WAAU;IACtC,UAAAE;GACG,CAAA,CAEJ;EACL,CAAA,GAAAY,CACI;C,KAdUA;AAgBrB,CAAC;AACD,QAAA,IAAA,aAA6B,iBAAc,EAAO,cAAc"}
|
|
@@ -1,67 +0,0 @@
|
|
|
1
|
-
"use client";
|
|
2
|
-
import { t as e } from "./cn-DUDmdLpZ.js";
|
|
3
|
-
import { t } from "./tone-CWpsHPb6.js";
|
|
4
|
-
import { forwardRef as n } from "react";
|
|
5
|
-
import { jsx as r } from "react/jsx-runtime";
|
|
6
|
-
//#region src/components/table/table.tsx
|
|
7
|
-
var i = { align: {
|
|
8
|
-
start: { classes: "text-left" },
|
|
9
|
-
end: { classes: "text-right tabular" }
|
|
10
|
-
} }, a = { align: "start" }, o = /* @__PURE__ */ n(function({ className: t, ...n }, i) {
|
|
11
|
-
return /* @__PURE__ */ r("table", {
|
|
12
|
-
ref: i,
|
|
13
|
-
className: e("w-full border-collapse text-body", t),
|
|
14
|
-
...n
|
|
15
|
-
});
|
|
16
|
-
});
|
|
17
|
-
process.env.NODE_ENV !== "production" && (o.displayName = "Table");
|
|
18
|
-
var s = /* @__PURE__ */ n(function(e, t) {
|
|
19
|
-
return /* @__PURE__ */ r("thead", {
|
|
20
|
-
ref: t,
|
|
21
|
-
...e
|
|
22
|
-
});
|
|
23
|
-
});
|
|
24
|
-
process.env.NODE_ENV !== "production" && (s.displayName = "Table.Head");
|
|
25
|
-
var c = /* @__PURE__ */ n(function(e, t) {
|
|
26
|
-
return /* @__PURE__ */ r("tbody", {
|
|
27
|
-
ref: t,
|
|
28
|
-
...e
|
|
29
|
-
});
|
|
30
|
-
});
|
|
31
|
-
process.env.NODE_ENV !== "production" && (c.displayName = "Table.Body");
|
|
32
|
-
var l = /* @__PURE__ */ n(function({ className: t, ...n }, i) {
|
|
33
|
-
return /* @__PURE__ */ r("tr", {
|
|
34
|
-
ref: i,
|
|
35
|
-
className: e("hairline-b last:shadow-none", t),
|
|
36
|
-
...n
|
|
37
|
-
});
|
|
38
|
-
});
|
|
39
|
-
process.env.NODE_ENV !== "production" && (l.displayName = "Table.Row");
|
|
40
|
-
var u = /* @__PURE__ */ n(function({ align: t = "start", className: n, ...a }, o) {
|
|
41
|
-
return /* @__PURE__ */ r("th", {
|
|
42
|
-
ref: o,
|
|
43
|
-
scope: "col",
|
|
44
|
-
className: e("h-36 px-12 text-caption font-medium whitespace-nowrap text-fg-secondary hairline-b-strong first:pl-0 last:pr-0", i.align[t].classes, n),
|
|
45
|
-
...a
|
|
46
|
-
});
|
|
47
|
-
});
|
|
48
|
-
process.env.NODE_ENV !== "production" && (u.displayName = "Table.HeaderCell");
|
|
49
|
-
var d = /* @__PURE__ */ n(function({ align: n = "start", tone: a, className: o, ...s }, c) {
|
|
50
|
-
return /* @__PURE__ */ r("td", {
|
|
51
|
-
ref: c,
|
|
52
|
-
className: e("h-44 px-12 py-12 align-middle text-fg first:pl-0 last:pr-0", i.align[n].classes, a && t[a], o),
|
|
53
|
-
...s
|
|
54
|
-
});
|
|
55
|
-
});
|
|
56
|
-
process.env.NODE_ENV !== "production" && (d.displayName = "Table.Cell");
|
|
57
|
-
var f = /* @__PURE__ */ Object.assign(o, {
|
|
58
|
-
Head: s,
|
|
59
|
-
Body: c,
|
|
60
|
-
Row: l,
|
|
61
|
-
HeaderCell: u,
|
|
62
|
-
Cell: d
|
|
63
|
-
});
|
|
64
|
-
//#endregion
|
|
65
|
-
export { i as n, f as r, a as t };
|
|
66
|
-
|
|
67
|
-
//# sourceMappingURL=table-D-36EM7f.js.map
|
|
@@ -1 +0,0 @@
|
|
|
1
|
-
{"version":3,"file":"table-D-36EM7f.js","names":["cn","KAESO_TABLE_VARIANTS","KAESO_TABLE_DEFAULT_VARIANTS","Root","props","className","Head","Body","Row","HeaderCell","align","Cell","tone","STATUS_TONE_TEXT","Table"],"sources":["../../src/components/table/table.tsx"],"sourcesContent":["import { forwardRef, type HTMLAttributes, type TdHTMLAttributes, type ThHTMLAttributes } from \"react\";\nimport { cn } from \"../../utils/cn.js\";\nimport { STATUS_TONE_TEXT, type StatusTone } from \"../../utils/tone.js\";\n\nexport const KAESO_TABLE_VARIANTS = {\n align: {\n start: { classes: \"text-left\" },\n end: { classes: \"text-right tabular\" },\n },\n} as const;\nexport const KAESO_TABLE_DEFAULT_VARIANTS = { align: \"start\" } as const;\n\nconst Root = /* @__PURE__ */ forwardRef<HTMLTableElement, HTMLAttributes<HTMLTableElement>>(function Table({ className, ...props }, ref) {\n return <table ref={ref} className={cn(\"w-full border-collapse text-body\", className)} {...props} />;\n});\nif (process.env.NODE_ENV !== \"production\") Root.displayName = \"Table\";\nconst Head = /* @__PURE__ */ forwardRef<HTMLTableSectionElement, HTMLAttributes<HTMLTableSectionElement>>(function TableHead(props, ref) {\n return <thead ref={ref} {...props} />;\n});\nif (process.env.NODE_ENV !== \"production\") Head.displayName = \"Table.Head\";\nconst Body = /* @__PURE__ */ forwardRef<HTMLTableSectionElement, HTMLAttributes<HTMLTableSectionElement>>(function TableBody(props, ref) {\n return <tbody ref={ref} {...props} />;\n});\nif (process.env.NODE_ENV !== \"production\") Body.displayName = \"Table.Body\";\nconst Row = /* @__PURE__ */ forwardRef<HTMLTableRowElement, HTMLAttributes<HTMLTableRowElement>>(function TableRow({ className, ...props }, ref) {\n return <tr ref={ref} className={cn(\"hairline-b last:shadow-none\", className)} {...props} />;\n});\nif (process.env.NODE_ENV !== \"production\") Row.displayName = \"Table.Row\";\nconst HeaderCell = /* @__PURE__ */ forwardRef<HTMLTableCellElement, Omit<ThHTMLAttributes<HTMLTableCellElement>, \"align\"> & { align?: \"start\" | \"end\" | undefined }>(\n function TableHeaderCell({ align = \"start\", className, ...props }, ref) {\n return (\n <th\n ref={ref}\n scope=\"col\"\n className={cn(\n \"h-36 px-12 text-caption font-medium whitespace-nowrap text-fg-secondary hairline-b-strong first:pl-0 last:pr-0\",\n KAESO_TABLE_VARIANTS.align[align].classes,\n className,\n )}\n {...props}\n />\n );\n },\n);\nif (process.env.NODE_ENV !== \"production\") HeaderCell.displayName = \"Table.HeaderCell\";\nexport interface TableCellProps extends Omit<TdHTMLAttributes<HTMLTableCellElement>, \"align\"> {\n align?: \"start\" | \"end\" | undefined;\n tone?: StatusTone | undefined;\n}\nconst Cell = /* @__PURE__ */ forwardRef<HTMLTableCellElement, TableCellProps>(function TableCell({ align = \"start\", tone, className, ...props }, ref) {\n return (\n <td\n ref={ref}\n className={cn(\n \"h-44 px-12 py-12 align-middle text-fg first:pl-0 last:pr-0\",\n KAESO_TABLE_VARIANTS.align[align].classes,\n tone && STATUS_TONE_TEXT[tone],\n className,\n )}\n {...props}\n />\n );\n});\nif (process.env.NODE_ENV !== \"production\") Cell.displayName = \"Table.Cell\";\n\nexport const Table = /* @__PURE__ */ Object.assign(Root, { Head, Body, Row, HeaderCell, Cell });\n"],"mappings":";;;;;;AAIA,IAAaC,IAAuB,EAClC,OAAO;CACL,OAAO,EAAE,SAAS,YAAY;CAC9B,KAAK,EAAE,SAAS,qBAAqB;AACvC,EACF,GACaC,IAA+B,EAAE,OAAO,QAAQ,GAEvDC,IAAuB,kBAA+D,SAAe,EAAE,cAAW,GAAGC,KAAS,GAAK;CACvI,OAAO,kBAAC,SAAD;EAAY;EAAK,WAAWJ,EAAG,oCAAoCK,CAAS;EAAG,GAAID;CAAQ,CAAA;AACpG,CAAC;AACD,QAAA,IAAA,aAA6B,iBAAc,EAAK,cAAc;AAC9D,IAAME,IAAuB,kBAA6E,SAAmB,GAAO,GAAK;CACvI,OAAO,kBAAC,SAAD;EAAY;EAAK,GAAIF;CAAQ,CAAA;AACtC,CAAC;AACD,QAAA,IAAA,aAA6B,iBAAc,EAAK,cAAc;AAC9D,IAAMG,IAAuB,kBAA6E,SAAmB,GAAO,GAAK;CACvI,OAAO,kBAAC,SAAD;EAAY;EAAK,GAAIH;CAAQ,CAAA;AACtC,CAAC;AACD,QAAA,IAAA,aAA6B,iBAAc,EAAK,cAAc;AAC9D,IAAMI,IAAsB,kBAAqE,SAAkB,EAAE,cAAW,GAAGJ,KAAS,GAAK;CAC/I,OAAO,kBAAC,MAAD;EAAS;EAAK,WAAWJ,EAAG,+BAA+BK,CAAS;EAAG,GAAID;CAAQ,CAAA;AAC5F,CAAC;AACD,QAAA,IAAA,aAA6B,iBAAc,EAAI,cAAc;AAC7D,IAAMK,IAA6B,kBACjC,SAAyB,EAAE,WAAQ,SAAS,cAAW,GAAGL,KAAS,GAAK;CACtE,OACE,kBAAC,MAAD;EACO;EACL,OAAM;EACN,WAAWJ,EACT,kHACAC,EAAqB,MAAMS,EAAM,CAAC,SAClCL,CACF;EACA,GAAID;CACL,CAAA;AAEL,CACF;AACA,QAAA,IAAA,aAA6B,iBAAc,EAAW,cAAc;AAKpE,IAAMO,IAAuB,kBAAiD,SAAmB,EAAE,WAAQ,SAAS,SAAM,cAAW,GAAGP,KAAS,GAAK;CACpJ,OACE,kBAAC,MAAD;EACO;EACL,WAAWJ,EACT,8DACAC,EAAqB,MAAMS,EAAM,CAAC,SAClCE,KAAQC,EAAiBD,IACzBP,CACF;EACA,GAAID;CACL,CAAA;AAEL,CAAC;AACD,QAAA,IAAA,aAA6B,iBAAc,EAAK,cAAc;AAE9D,IAAaU,IAAwB,uBAAO,OAAOX,GAAM;CAAE;CAAM;CAAM;CAAK;CAAY;AAAK,CAAC"}
|
|
@@ -1 +0,0 @@
|
|
|
1
|
-
{"version":3,"file":"scroll-area.js","names":["BaseScrollArea","cn","ScrollArea$1","KAESO_SCROLL_AREA_VARIANTS","KAESO_SCROLL_AREA_DEFAULT_VARIANTS","Bar","orientation","ScrollArea","label","CSPProvider","className","viewportClassName"],"sources":["../../src/components/scroll-area/scroll-area.tsx"],"sourcesContent":["import { forwardRef, type ReactNode } from \"react\";\nimport { CSPProvider } from \"@base-ui/react/csp-provider\";\nimport { ScrollArea as BaseScrollArea } from \"@base-ui/react/scroll-area\";\nimport { cn } from \"../../utils/cn.js\";\n\nexport const KAESO_SCROLL_AREA_VARIANTS = {\n orientation: {\n vertical: { classes: \"scroll-axis-y scroll-fade-y\" },\n horizontal: { classes: \"scroll-axis-x scroll-fade-x\" },\n both: { classes: \"scroll-axis-both\" },\n },\n} as const;\nexport const KAESO_SCROLL_AREA_DEFAULT_VARIANTS = { orientation: \"vertical\" } as const;\n\nexport interface ScrollAreaProps {\n children: ReactNode;\n orientation?: keyof typeof KAESO_SCROLL_AREA_VARIANTS.orientation | undefined;\n className?: string | undefined;\n viewportClassName?: string | undefined;\n \"aria-label\"?: string | undefined;\n}\n\nconst Bar = ({ orientation }: { orientation: \"vertical\" | \"horizontal\" }) => (\n <BaseScrollArea.Scrollbar\n orientation={orientation}\n className={cn(\n \"flex touch-none p-2 opacity-0 select-none transition-control data-hovering:opacity-100 data-scrolling:opacity-100\",\n orientation === \"vertical\" ? \"w-10\" : \"h-10 flex-col\",\n )}\n >\n <BaseScrollArea.Thumb className=\"flex-1 rounded-pill bg-line-strong\" />\n </BaseScrollArea.Scrollbar>\n);\n\nexport const ScrollArea = /* @__PURE__ */ forwardRef<HTMLDivElement, ScrollAreaProps>(function ScrollArea(\n { children, orientation = \"vertical\", className, viewportClassName, \"aria-label\": label },\n ref,\n) {\n return (\n <CSPProvider disableStyleElements>\n <BaseScrollArea.Root ref={ref} className={cn(\"relative min-h-0 overflow-hidden\", className)}>\n <BaseScrollArea.Viewport\n className={cn(\"size-full focus-ring-inset\", KAESO_SCROLL_AREA_VARIANTS.orientation[orientation].classes, viewportClassName)}\n {...(label ? { role: \"region\", \"aria-label\": label } : {})}\n >\n {children}\n </BaseScrollArea.Viewport>\n {orientation !== \"horizontal\" && <Bar orientation=\"vertical\" />}\n {orientation !== \"vertical\" && <Bar orientation=\"horizontal\" />}\n {orientation === \"both\" && <BaseScrollArea.Corner />}\n </BaseScrollArea.Root>\n </CSPProvider>\n );\n});\nif (process.env.NODE_ENV !== \"production\") ScrollArea.displayName = \"ScrollArea\";\n"],"mappings":";;;;;;;AAKA,IAAaG,IAA6B,EACxC,aAAa;CACX,UAAU,EAAE,SAAS,8BAA8B;CACnD,YAAY,EAAE,SAAS,8BAA8B;CACrD,MAAM,EAAE,SAAS,mBAAmB;AACtC,EACF,GACaC,IAAqC,EAAE,aAAa,WAAW,GAUtEC,KAAO,EAAE,qBACb,kBAACL,EAAe,WAAhB;CACe;CACb,WAAWC,EACT,qHACAK,MAAgB,aAAa,SAAS,eACxC;CAEA,UAAA,kBAACN,EAAe,OAAhB,EAAsB,WAAU,qCAAsC,CAAA;AAC9C,CAAA,GAGfO,IAA6B,kBAA4C,SACpF,EAAE,aAAU,iBAAc,YAAY,cAAW,sBAAmB,cAAcC,KAClF,GACA;CACA,OACE,kBAACC,GAAD;EAAa,sBAAA;EACX,UAAA,kBAACT,EAAe,MAAhB;GAA0B;GAAK,WAAWC,EAAG,oCAAoCS,CAAS;GAA1F,UAAA;IACE,kBAACV,EAAe,UAAhB;KACE,WAAWC,EAAG,8BAA8BE,EAA2B,YAAYG,EAAY,CAAC,SAASK,CAAiB;KAC1H,GAAKH,IAAQ;MAAE,MAAM;MAAU,cAAcA;KAAM,IAAI,CAAC;KAEvD;IACsB,CAAA;IACxBF,MAAgB,gBAAgB,kBAACD,GAAD,EAAK,aAAY,WAAY,CAAA;IAC7DC,MAAgB,cAAc,kBAACD,GAAD,EAAK,aAAY,aAAc,CAAA;IAC7DC,MAAgB,UAAU,kBAACN,EAAe,QAAhB,CAAwB,CAAA;GAChC;;CACV,CAAA;AAEjB,CAAC;AACD,QAAA,IAAA,aAA6B,iBAAc,EAAW,cAAc"}
|