@logicplanes/kaeso-ui 0.4.4 → 0.4.5
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
- package/ai/component-guides.md +250 -98
- package/ai/component-registry.json +264 -236
- package/ai/component-registry.md +222 -218
- package/ai/icons.md +1 -1
- package/ai/tokens.md +18 -14
- package/dist/blocks/delete-resource.js +3 -3
- package/dist/blocks/delete-resource.js.map +1 -1
- package/dist/blocks/pages.js +47 -42
- package/dist/blocks/pages.js.map +1 -1
- package/dist/blocks/resource-list.js +68 -55
- package/dist/blocks/resource-list.js.map +1 -1
- package/dist/chunks/agent-avatar-DHieggHK.js +188 -0
- package/dist/chunks/agent-avatar-DHieggHK.js.map +1 -0
- package/dist/chunks/app-frame-DysOel2X.js +232 -0
- package/dist/chunks/app-frame-DysOel2X.js.map +1 -0
- package/dist/chunks/arrow-focus-B0KdRFX8.js +20 -0
- package/dist/chunks/arrow-focus-B0KdRFX8.js.map +1 -0
- package/dist/chunks/avatar-CYNMK7uY.js +110 -0
- package/dist/chunks/avatar-CYNMK7uY.js.map +1 -0
- package/dist/chunks/badge-C0GC3B9X.js +27 -0
- package/dist/chunks/badge-C0GC3B9X.js.map +1 -0
- package/dist/chunks/banner-B3DGLTBu.js +88 -0
- package/dist/chunks/banner-B3DGLTBu.js.map +1 -0
- package/dist/chunks/button-IblhXUyZ.js +202 -0
- package/dist/chunks/button-IblhXUyZ.js.map +1 -0
- package/dist/chunks/{calendar-BWaf2MXc.js → calendar-Dc6_dl0f.js} +4 -4
- package/dist/chunks/calendar-Dc6_dl0f.js.map +1 -0
- package/dist/chunks/checkbox-9tbimmF3.js +141 -0
- package/dist/chunks/checkbox-9tbimmF3.js.map +1 -0
- package/dist/chunks/{cn-Dj6sRgkF.js → cn-BjnOAUrA.js} +45 -4
- package/dist/chunks/cn-BjnOAUrA.js.map +1 -0
- package/dist/chunks/code-block-64e-Cy1S.js +346 -0
- package/dist/chunks/code-block-64e-Cy1S.js.map +1 -0
- package/dist/chunks/{code-block-DdNPHEzI.js → code-block-KIvuE8jg.js} +122 -114
- package/dist/chunks/code-block-KIvuE8jg.js.map +1 -0
- package/dist/chunks/{code-tqj0uhBL.js → code-xqjww4Pv.js} +5 -6
- package/dist/chunks/code-xqjww4Pv.js.map +1 -0
- package/dist/chunks/combobox-DkcjkWc6.js +352 -0
- package/dist/chunks/combobox-DkcjkWc6.js.map +1 -0
- package/dist/chunks/command-list-CypqsC4T.js +456 -0
- package/dist/chunks/command-list-CypqsC4T.js.map +1 -0
- package/dist/chunks/{copy-button-FJvPJn72.js → copy-button-CwU8t_9_.js} +22 -15
- package/dist/chunks/copy-button-CwU8t_9_.js.map +1 -0
- package/dist/chunks/core-CmK-8ObW.js +505 -0
- package/dist/chunks/core-CmK-8ObW.js.map +1 -0
- package/dist/chunks/data-table-CqY8_6IS.js +581 -0
- package/dist/chunks/data-table-CqY8_6IS.js.map +1 -0
- package/dist/chunks/date-popup-DAnjptFt.js +58 -0
- package/dist/chunks/date-popup-DAnjptFt.js.map +1 -0
- package/dist/chunks/{de-D_0mmG-k.js → de-CqC4aSIV.js} +74 -40
- package/dist/chunks/de-CqC4aSIV.js.map +1 -0
- package/dist/chunks/{dialog-Cg9A_6SF.js → dialog-2zb6ClNR.js} +156 -134
- package/dist/chunks/dialog-2zb6ClNR.js.map +1 -0
- package/dist/chunks/disclosure-BtYRTDO3.js +22 -0
- package/dist/chunks/disclosure-BtYRTDO3.js.map +1 -0
- package/dist/chunks/domain-obd_w9xk.js +28 -0
- package/dist/chunks/domain-obd_w9xk.js.map +1 -0
- package/dist/chunks/{empty-DvhyMXQq.js → empty-BpiUgGzm.js} +2 -2
- package/dist/chunks/{empty-DvhyMXQq.js.map → empty-BpiUgGzm.js.map} +1 -1
- package/dist/chunks/{field-TviMvYa2.js → field-D7m-yl-D.js} +37 -34
- package/dist/chunks/field-D7m-yl-D.js.map +1 -0
- package/dist/chunks/{icon-D7ja-_Yk.js → icon-CBzOwqrX.js} +7 -6
- package/dist/chunks/{icon-D7ja-_Yk.js.map → icon-CBzOwqrX.js.map} +1 -1
- package/dist/chunks/{icon-button-CrdF_eMG.js → icon-button-Dfwpvmav.js} +7 -6
- package/dist/chunks/icon-button-Dfwpvmav.js.map +1 -0
- package/dist/chunks/{identity-BmhQ6BQ-.js → identity-3Foi5F8w.js} +7 -7
- package/dist/chunks/{identity-BmhQ6BQ-.js.map → identity-3Foi5F8w.js.map} +1 -1
- package/dist/chunks/{input-2VJuj_M4.js → input-Bo5-UZg2.js} +15 -9
- package/dist/chunks/input-Bo5-UZg2.js.map +1 -0
- package/dist/chunks/{input-group-DQ_4DoXg.js → input-group-jPcK9T_a.js} +42 -29
- package/dist/chunks/input-group-jPcK9T_a.js.map +1 -0
- package/dist/chunks/iso-field-DoqHBg8n.js +52 -0
- package/dist/chunks/iso-field-DoqHBg8n.js.map +1 -0
- package/dist/chunks/json-view-DZ2nL2Ir.js +253 -0
- package/dist/chunks/json-view-DZ2nL2Ir.js.map +1 -0
- package/dist/chunks/{kbd-BF1vKXJf.js → kbd-8A0ML_up.js} +30 -28
- package/dist/chunks/kbd-8A0ML_up.js.map +1 -0
- package/dist/chunks/label-DW24Aj0Z.js +26 -0
- package/dist/chunks/label-DW24Aj0Z.js.map +1 -0
- package/dist/chunks/{link-KWI7PevW.js → link-CMjkcLQK.js} +14 -14
- package/dist/chunks/link-CMjkcLQK.js.map +1 -0
- package/dist/chunks/list-B4G-sWwV.js +540 -0
- package/dist/chunks/list-B4G-sWwV.js.map +1 -0
- package/dist/chunks/{loader-DCfPndXa.js → loader-zo8CCIGJ.js} +2 -2
- package/dist/chunks/{loader-DCfPndXa.js.map → loader-zo8CCIGJ.js.map} +1 -1
- package/dist/chunks/markdown-C565aBR7.js +338 -0
- package/dist/chunks/markdown-C565aBR7.js.map +1 -0
- package/dist/chunks/menu-Clvv6ftq.js +485 -0
- package/dist/chunks/menu-Clvv6ftq.js.map +1 -0
- package/dist/chunks/merge-refs-BN1FyQt9.js +20 -0
- package/dist/chunks/merge-refs-BN1FyQt9.js.map +1 -0
- package/dist/chunks/meter-CASMHlxl.js +100 -0
- package/dist/chunks/meter-CASMHlxl.js.map +1 -0
- package/dist/chunks/nav-sheet-Dt6JSvzX.js +67 -0
- package/dist/chunks/nav-sheet-Dt6JSvzX.js.map +1 -0
- package/dist/chunks/{nav-wordmark-_pjheAsZ.js → nav-wordmark-J4pB_vjr.js} +4 -8
- package/dist/chunks/nav-wordmark-J4pB_vjr.js.map +1 -0
- package/dist/chunks/page-header-kS5tdmvb.js +45 -0
- package/dist/chunks/page-header-kS5tdmvb.js.map +1 -0
- package/dist/chunks/pagination-D7fAm8qg.js +147 -0
- package/dist/chunks/pagination-D7fAm8qg.js.map +1 -0
- package/dist/chunks/picker-popover-1FHb1LQG.js +119 -0
- package/dist/chunks/picker-popover-1FHb1LQG.js.map +1 -0
- package/dist/chunks/popover-Bl5QYqnh.js +51 -0
- package/dist/chunks/popover-Bl5QYqnh.js.map +1 -0
- package/dist/chunks/{portal-context-BBbzDKmY.js → portal-context-CTatR2Z8.js} +14 -4
- package/dist/chunks/portal-context-CTatR2Z8.js.map +1 -0
- package/dist/chunks/{radio-CDDFpdtL.js → radio-C6GtzF_t.js} +38 -23
- package/dist/chunks/radio-C6GtzF_t.js.map +1 -0
- package/dist/chunks/range-popup-lGiZsG3s.js +160 -0
- package/dist/chunks/range-popup-lGiZsG3s.js.map +1 -0
- package/dist/chunks/reasoning-frame-C3HdQRRS.js +51 -0
- package/dist/chunks/reasoning-frame-C3HdQRRS.js.map +1 -0
- package/dist/chunks/release-art-ChiT4T2S.js +582 -0
- package/dist/chunks/release-art-ChiT4T2S.js.map +1 -0
- package/dist/chunks/rights-B68ocZuq.js +312 -0
- package/dist/chunks/rights-B68ocZuq.js.map +1 -0
- package/dist/chunks/{scroll-area-D8MD7Vpo.js → scroll-area-_Ljh4-bG.js} +11 -6
- package/dist/chunks/scroll-area-_Ljh4-bG.js.map +1 -0
- package/dist/chunks/section-CFBYhsUi.js +77 -0
- package/dist/chunks/section-CFBYhsUi.js.map +1 -0
- package/dist/chunks/section-header-DU1Q4Tdf.js +28 -0
- package/dist/chunks/section-header-DU1Q4Tdf.js.map +1 -0
- package/dist/chunks/segmented-D9i1avik.js +119 -0
- package/dist/chunks/segmented-D9i1avik.js.map +1 -0
- package/dist/chunks/select-BqjmQOqx.js +222 -0
- package/dist/chunks/select-BqjmQOqx.js.map +1 -0
- package/dist/chunks/{separator-D7TzNHmX.js → separator-BNWf6BBj.js} +13 -8
- package/dist/chunks/separator-BNWf6BBj.js.map +1 -0
- package/dist/chunks/sidebar-Dq7oGOje.js +664 -0
- package/dist/chunks/sidebar-Dq7oGOje.js.map +1 -0
- package/dist/chunks/{sidebar-menu-BN3jkTlK.js → sidebar-menu-QSSNu1jJ.js} +2 -2
- package/dist/chunks/{sidebar-menu-BN3jkTlK.js.map → sidebar-menu-QSSNu1jJ.js.map} +1 -1
- package/dist/chunks/{skeleton-Dcz57Zyp.js → skeleton-D-qk3mes.js} +3 -3
- package/dist/chunks/skeleton-D-qk3mes.js.map +1 -0
- package/dist/chunks/slider-CcE8GtuV.js +58 -0
- package/dist/chunks/slider-CcE8GtuV.js.map +1 -0
- package/dist/chunks/{status-dot-QJTF0Yv4.js → status-dot-CP6runiC.js} +4 -4
- package/dist/chunks/{status-dot-QJTF0Yv4.js.map → status-dot-CP6runiC.js.map} +1 -1
- package/dist/chunks/{styles-CVJU9t9v.js → styles-hkFkoBbi.js} +2 -2
- package/dist/chunks/{styles-CVJU9t9v.js.map → styles-hkFkoBbi.js.map} +1 -1
- package/dist/chunks/{swap-text-Dr0Irxz6.js → swap-text-SlUjrTlG.js} +3 -3
- package/dist/chunks/swap-text-SlUjrTlG.js.map +1 -0
- package/dist/chunks/switch-ngywMQdl.js +76 -0
- package/dist/chunks/switch-ngywMQdl.js.map +1 -0
- package/dist/chunks/table-CTK5E0J7.js +102 -0
- package/dist/chunks/table-CTK5E0J7.js.map +1 -0
- package/dist/chunks/tag-BGr6lTSV.js +100 -0
- package/dist/chunks/tag-BGr6lTSV.js.map +1 -0
- package/dist/chunks/{text-CIXH8rmT.js → text-DkKdTVUf.js} +9 -9
- package/dist/chunks/text-DkKdTVUf.js.map +1 -0
- package/dist/chunks/{textarea--4FRL3Pb.js → textarea-CO0HP6fK.js} +47 -36
- package/dist/chunks/textarea-CO0HP6fK.js.map +1 -0
- package/dist/chunks/timeseries-Ck-q0wWn.js +381 -0
- package/dist/chunks/timeseries-Ck-q0wWn.js.map +1 -0
- package/dist/chunks/toolbar-u0Gm7Q7-.js +61 -0
- package/dist/chunks/toolbar-u0Gm7Q7-.js.map +1 -0
- package/dist/chunks/tooltip-Tkm-urbi.js +202 -0
- package/dist/chunks/tooltip-Tkm-urbi.js.map +1 -0
- package/dist/chunks/tooltip-root-BC_RNNiP.js +70 -0
- package/dist/chunks/tooltip-root-BC_RNNiP.js.map +1 -0
- package/dist/chunks/truncated-d1afmUJT.js +33 -0
- package/dist/chunks/truncated-d1afmUJT.js.map +1 -0
- package/dist/chunks/use-coarse-pointer-Ml5oE6oX.js +28 -0
- package/dist/chunks/use-coarse-pointer-Ml5oE6oX.js.map +1 -0
- package/dist/chunks/use-hydrating-COtYVRo4.js +8 -0
- package/dist/chunks/use-hydrating-COtYVRo4.js.map +1 -0
- package/dist/chunks/use-scroll-fade-uc8mWSDX.js +30 -0
- package/dist/chunks/use-scroll-fade-uc8mWSDX.js.map +1 -0
- package/dist/chunks/{zh-CN-Bm6UPIbW.js → zh-CN-BlpsT6d_.js} +73 -39
- package/dist/chunks/zh-CN-BlpsT6d_.js.map +1 -0
- package/dist/components/agent-avatar.js +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 +22 -22
- package/dist/components/button-group.js.map +1 -1
- package/dist/components/button.js +1 -1
- package/dist/components/calendar.js +1 -1
- package/dist/components/charts/bar.js +235 -160
- package/dist/components/charts/bar.js.map +1 -1
- package/dist/components/charts/donut.js +144 -99
- package/dist/components/charts/donut.js.map +1 -1
- package/dist/components/charts/gauge.js +61 -49
- package/dist/components/charts/gauge.js.map +1 -1
- package/dist/components/charts/heatmap.js +179 -70
- package/dist/components/charts/heatmap.js.map +1 -1
- package/dist/components/charts/sankey.js +144 -77
- package/dist/components/charts/sankey.js.map +1 -1
- package/dist/components/charts/sparkline.js +54 -38
- package/dist/components/charts/sparkline.js.map +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 +3 -3
- package/dist/components/code.js +1 -1
- package/dist/components/collapsible.js +77 -1
- package/dist/components/collapsible.js.map +1 -0
- package/dist/components/combobox.js +1 -1
- package/dist/components/command-list.js +2 -2
- package/dist/components/command-palette.js +89 -66
- package/dist/components/command-palette.js.map +1 -1
- package/dist/components/copy-button.js +1 -1
- package/dist/components/data-table.js +1 -459
- package/dist/components/date-picker.js +162 -151
- package/dist/components/date-picker.js.map +1 -1
- package/dist/components/dialog.js +74 -63
- package/dist/components/dialog.js.map +1 -1
- package/dist/components/display-options.js +76 -64
- package/dist/components/display-options.js.map +1 -1
- package/dist/components/empty.js +1 -1
- package/dist/components/field.js +1 -1
- package/dist/components/figure.js +2 -2
- package/dist/components/filter-chip.js +36 -27
- package/dist/components/filter-chip.js.map +1 -1
- package/dist/components/filter-row.js +4 -4
- package/dist/components/filter-row.js.map +1 -1
- package/dist/components/flow.js +94 -63
- package/dist/components/flow.js.map +1 -1
- 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 +176 -98
- package/dist/components/input.js.map +1 -1
- package/dist/components/kaeso/conversation.js +51 -46
- package/dist/components/kaeso/conversation.js.map +1 -1
- package/dist/components/kaeso/identity.js +1 -1
- package/dist/components/kaeso/moments.js +23 -20
- package/dist/components/kaeso/moments.js.map +1 -1
- package/dist/components/kaeso/rights.js +1 -1
- package/dist/components/kaeso/usage.js +90 -74
- package/dist/components/kaeso/usage.js.map +1 -1
- package/dist/components/kaeso.js +200 -187
- package/dist/components/kaeso.js.map +1 -1
- package/dist/components/kbd.js +1 -1
- package/dist/components/key-value.js +32 -47
- package/dist/components/key-value.js.map +1 -1
- package/dist/components/label.js +1 -25
- package/dist/components/layout.js +2 -2
- package/dist/components/layout.js.map +1 -1
- package/dist/components/link.js +1 -1
- package/dist/components/list.js +1 -1
- package/dist/components/loader.js +11 -10
- package/dist/components/loader.js.map +1 -1
- package/dist/components/logo.js +2 -2
- package/dist/components/markdown.js +1 -1
- package/dist/components/menu.js +2 -2
- package/dist/components/meter.js +1 -1
- package/dist/components/page-header.js +1 -1
- package/dist/components/pagination.js +1 -1
- package/dist/components/playground.js +644 -529
- package/dist/components/playground.js.map +1 -1
- package/dist/components/popover.js +4 -4
- package/dist/components/popover.js.map +1 -1
- package/dist/components/portal.js +1 -1
- 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 -1
- 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 +39 -46
- package/dist/components/settings.js.map +1 -1
- package/dist/components/sheet.js +10 -9
- 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 +98 -84
- package/dist/components/stat.js.map +1 -1
- 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 +73 -55
- package/dist/components/tabs.js.map +1 -1
- package/dist/components/tag.js +1 -1
- package/dist/components/text.js +1 -1
- package/dist/components/theme-image.js +1 -1
- package/dist/components/theme-menu.js +5 -2
- package/dist/components/theme-menu.js.map +1 -1
- package/dist/components/theme-select.js +1 -1
- package/dist/components/thumbnail.js +35 -24
- package/dist/components/thumbnail.js.map +1 -1
- package/dist/components/timeline.js +51 -35
- package/dist/components/timeline.js.map +1 -1
- package/dist/components/toast.js +76 -66
- package/dist/components/toast.js.map +1 -1
- package/dist/components/toc.js +14 -8
- 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/i18n-provider.js +1 -1
- package/dist/index.js +100 -100
- package/dist/kaeso.css +605 -67
- package/dist/styles.css +1 -1
- package/dist/tailwind.css +1 -1
- package/dist/types/blocks/delete-resource/delete-resource.d.ts +2 -2
- package/dist/types/components/agent-avatar/agent-avatar.d.ts +24 -19
- package/dist/types/components/badge/badge.d.ts +3 -3
- package/dist/types/components/banner/banner.d.ts +3 -3
- package/dist/types/components/button/button.d.ts +2 -2
- package/dist/types/components/button-group/button-group.d.ts +1 -1
- package/dist/types/components/charts/domain.d.ts +11 -0
- package/dist/types/components/charts/marks.d.ts +1 -0
- package/dist/types/components/code/code.d.ts +3 -3
- package/dist/types/components/code-block/json-view.d.ts +2 -1
- package/dist/types/components/code-block/numbers.d.ts +1 -0
- package/dist/types/components/collapsible/collapsible.d.ts +2 -2
- package/dist/types/components/collapsible/disclosure.d.ts +2 -0
- package/dist/types/components/data-table/data-table.d.ts +6 -5
- package/dist/types/components/data-table/docs.d.ts +1 -0
- package/dist/types/components/data-table/time-columns.d.ts +1 -0
- package/dist/types/components/date-picker/focus-day.d.ts +1 -0
- package/dist/types/components/date-picker/iso-field.d.ts +8 -1
- package/dist/types/components/dialog/dialog.d.ts +7 -7
- package/dist/types/components/field/field.d.ts +1 -1
- package/dist/types/components/flow/flow.d.ts +1 -1
- package/dist/types/components/icon-button/icon-button.d.ts +1 -1
- package/dist/types/components/input/input-group.d.ts +2 -0
- package/dist/types/components/input/number-input.d.ts +4 -4
- package/dist/types/components/input/otp-input.d.ts +3 -3
- package/dist/types/components/kaeso/client-button.d.ts +2 -1
- package/dist/types/components/kaeso/provider-picker.d.ts +1 -0
- package/dist/types/components/kaeso/rights.d.ts +1 -1
- package/dist/types/components/kaeso/role-picker.d.ts +1 -0
- package/dist/types/components/key-value/key-value.d.ts +2 -2
- package/dist/types/components/layout/layout.d.ts +2 -2
- package/dist/types/components/link/link.d.ts +4 -4
- package/dist/types/components/list/list.d.ts +2 -2
- package/dist/types/components/menu/menu.d.ts +2 -1
- package/dist/types/components/menu/styles.d.ts +3 -3
- package/dist/types/components/meter/meter.d.ts +3 -3
- package/dist/types/components/page-header/page-header.d.ts +1 -1
- package/dist/types/components/pagination/pagination.d.ts +2 -2
- package/dist/types/components/playground/prompt-suggestions.d.ts +1 -0
- package/dist/types/components/playground/reasoning-frame.d.ts +14 -0
- package/dist/types/components/playground/reasoning.d.ts +1 -0
- package/dist/types/components/popover/popover.d.ts +1 -1
- package/dist/types/components/scroll-area/scroll-area.d.ts +2 -2
- package/dist/types/components/section/section-header.d.ts +6 -0
- package/dist/types/components/segmented/segmented.d.ts +1 -0
- package/dist/types/components/select/select.d.ts +1 -1
- package/dist/types/components/sheet/sheet.d.ts +3 -3
- package/dist/types/components/sidebar/sidebar.d.ts +1 -0
- package/dist/types/components/slider/slider.d.ts +2 -2
- package/dist/types/components/stat/stat.d.ts +1 -1
- package/dist/types/components/tabs/tabs.d.ts +6 -4
- package/dist/types/components/text/truncated.d.ts +7 -0
- package/dist/types/components/timeline/timeline.d.ts +5 -5
- package/dist/types/components/toc/toc.d.ts +1 -1
- package/dist/types/components/toolbar/toolbar.d.ts +1 -1
- package/dist/types/components/tooltip/tooltip.d.ts +2 -2
- package/dist/types/components/tooltip/trigger-props.d.ts +1 -0
- package/dist/types/hooks/use-coarse-pointer.d.ts +1 -0
- package/dist/types/hooks/use-hydrating.d.ts +1 -0
- package/dist/types/utils/arrow-focus.d.ts +4 -1
- package/dist/types/utils/cn.d.ts +33 -0
- package/dist/types/utils/portal-context.d.ts +7 -1
- package/dist/utils.js +2 -2
- package/foundations/accessibility.md +3 -2
- package/foundations/color.md +5 -1
- package/foundations/elevation.md +1 -0
- package/foundations/motion.md +1 -1
- package/foundations/shape.md +2 -2
- package/foundations/typography.md +12 -12
- package/package.json +2 -2
- package/dist/chunks/agent-avatar-0pdBTWkR.js +0 -171
- package/dist/chunks/agent-avatar-0pdBTWkR.js.map +0 -1
- package/dist/chunks/app-frame-DogGRmsu.js +0 -221
- package/dist/chunks/app-frame-DogGRmsu.js.map +0 -1
- package/dist/chunks/arrow-focus-BcySmwwU.js +0 -11
- package/dist/chunks/arrow-focus-BcySmwwU.js.map +0 -1
- package/dist/chunks/avatar-CWbdwbJv.js +0 -83
- package/dist/chunks/avatar-CWbdwbJv.js.map +0 -1
- package/dist/chunks/badge-C2KtxCLB.js +0 -26
- package/dist/chunks/badge-C2KtxCLB.js.map +0 -1
- package/dist/chunks/banner-BA2ALw9M.js +0 -85
- package/dist/chunks/banner-BA2ALw9M.js.map +0 -1
- package/dist/chunks/button-CzuxqawA.js +0 -164
- package/dist/chunks/button-CzuxqawA.js.map +0 -1
- package/dist/chunks/calendar-BWaf2MXc.js.map +0 -1
- package/dist/chunks/checkbox-CQjwCPkc.js +0 -126
- package/dist/chunks/checkbox-CQjwCPkc.js.map +0 -1
- package/dist/chunks/cn-Dj6sRgkF.js.map +0 -1
- package/dist/chunks/code-block-BZIe_B9l.js +0 -334
- package/dist/chunks/code-block-BZIe_B9l.js.map +0 -1
- package/dist/chunks/code-block-DdNPHEzI.js.map +0 -1
- package/dist/chunks/code-tqj0uhBL.js.map +0 -1
- package/dist/chunks/collapsible-CKrCX_T9.js +0 -87
- package/dist/chunks/collapsible-CKrCX_T9.js.map +0 -1
- package/dist/chunks/combobox-DjDI7SUC.js +0 -319
- package/dist/chunks/combobox-DjDI7SUC.js.map +0 -1
- package/dist/chunks/command-list-C2Y7V_lt.js +0 -418
- package/dist/chunks/command-list-C2Y7V_lt.js.map +0 -1
- package/dist/chunks/copy-button-FJvPJn72.js.map +0 -1
- package/dist/chunks/core-BYns5ytV.js +0 -472
- package/dist/chunks/core-BYns5ytV.js.map +0 -1
- package/dist/chunks/date-popup-CPA_zt6o.js +0 -35
- package/dist/chunks/date-popup-CPA_zt6o.js.map +0 -1
- package/dist/chunks/de-D_0mmG-k.js.map +0 -1
- package/dist/chunks/dialog-Cg9A_6SF.js.map +0 -1
- package/dist/chunks/field-TviMvYa2.js.map +0 -1
- package/dist/chunks/hidden-description-B2zSmLcn.js +0 -23
- package/dist/chunks/hidden-description-B2zSmLcn.js.map +0 -1
- package/dist/chunks/icon-button-CrdF_eMG.js.map +0 -1
- package/dist/chunks/input-2VJuj_M4.js.map +0 -1
- package/dist/chunks/input-group-DQ_4DoXg.js.map +0 -1
- package/dist/chunks/iso-field-B2rTwiBo.js +0 -33
- package/dist/chunks/iso-field-B2rTwiBo.js.map +0 -1
- package/dist/chunks/json-view-Dqd2TDkc.js +0 -175
- package/dist/chunks/json-view-Dqd2TDkc.js.map +0 -1
- package/dist/chunks/kbd-BF1vKXJf.js.map +0 -1
- package/dist/chunks/link-KWI7PevW.js.map +0 -1
- package/dist/chunks/list-M1csq-d4.js +0 -494
- package/dist/chunks/list-M1csq-d4.js.map +0 -1
- package/dist/chunks/markdown-BupwFOae.js +0 -313
- package/dist/chunks/markdown-BupwFOae.js.map +0 -1
- package/dist/chunks/menu-DEmBfdPm.js +0 -450
- package/dist/chunks/menu-DEmBfdPm.js.map +0 -1
- package/dist/chunks/meter-Bj4N3Xuh.js +0 -84
- package/dist/chunks/meter-Bj4N3Xuh.js.map +0 -1
- package/dist/chunks/nav-sheet-CzgIwgAm.js +0 -60
- package/dist/chunks/nav-sheet-CzgIwgAm.js.map +0 -1
- package/dist/chunks/nav-wordmark-_pjheAsZ.js.map +0 -1
- package/dist/chunks/page-header-DL2y2iZp.js +0 -41
- package/dist/chunks/page-header-DL2y2iZp.js.map +0 -1
- package/dist/chunks/pagination-Cn_qF4cg.js +0 -86
- package/dist/chunks/pagination-Cn_qF4cg.js.map +0 -1
- package/dist/chunks/picker-popover-BxyU1U9F.js +0 -106
- package/dist/chunks/picker-popover-BxyU1U9F.js.map +0 -1
- package/dist/chunks/popover-DNN4S47w.js +0 -50
- package/dist/chunks/popover-DNN4S47w.js.map +0 -1
- package/dist/chunks/portal-context-BBbzDKmY.js.map +0 -1
- package/dist/chunks/radio-CDDFpdtL.js.map +0 -1
- package/dist/chunks/range-popup-CRyWYUB1.js +0 -128
- package/dist/chunks/range-popup-CRyWYUB1.js.map +0 -1
- package/dist/chunks/release-art-ZwfFQImt.js +0 -561
- package/dist/chunks/release-art-ZwfFQImt.js.map +0 -1
- package/dist/chunks/rights-Cyp0Pzp-.js +0 -279
- package/dist/chunks/rights-Cyp0Pzp-.js.map +0 -1
- package/dist/chunks/scroll-area-D8MD7Vpo.js.map +0 -1
- package/dist/chunks/scroll-parent-WXvzQcUo.js +0 -14
- package/dist/chunks/scroll-parent-WXvzQcUo.js.map +0 -1
- package/dist/chunks/section-Ce1efbsP.js +0 -87
- package/dist/chunks/section-Ce1efbsP.js.map +0 -1
- package/dist/chunks/segmented-CErcoxwi.js +0 -114
- package/dist/chunks/segmented-CErcoxwi.js.map +0 -1
- package/dist/chunks/select-x4XVsdCI.js +0 -210
- package/dist/chunks/select-x4XVsdCI.js.map +0 -1
- package/dist/chunks/separator-D7TzNHmX.js.map +0 -1
- package/dist/chunks/sidebar-3r1ZRXlN.js +0 -621
- package/dist/chunks/sidebar-3r1ZRXlN.js.map +0 -1
- package/dist/chunks/skeleton-Dcz57Zyp.js.map +0 -1
- package/dist/chunks/slider-Ci83PGtj.js +0 -57
- package/dist/chunks/slider-Ci83PGtj.js.map +0 -1
- package/dist/chunks/swap-text-Dr0Irxz6.js.map +0 -1
- package/dist/chunks/switch-BNMq_kGt.js +0 -59
- package/dist/chunks/switch-BNMq_kGt.js.map +0 -1
- package/dist/chunks/table-BeOSKl_3.js +0 -84
- package/dist/chunks/table-BeOSKl_3.js.map +0 -1
- package/dist/chunks/tag-D_M1s2qS.js +0 -87
- package/dist/chunks/tag-D_M1s2qS.js.map +0 -1
- package/dist/chunks/text-CIXH8rmT.js.map +0 -1
- package/dist/chunks/textarea--4FRL3Pb.js.map +0 -1
- package/dist/chunks/timeseries-D1xjRXfk.js +0 -339
- package/dist/chunks/timeseries-D1xjRXfk.js.map +0 -1
- package/dist/chunks/toolbar-WA_oZgu-.js +0 -37
- package/dist/chunks/toolbar-WA_oZgu-.js.map +0 -1
- package/dist/chunks/tooltip-OcwO0VUT.js +0 -154
- package/dist/chunks/tooltip-OcwO0VUT.js.map +0 -1
- package/dist/chunks/tooltip-root-DzahJDVj.js +0 -60
- package/dist/chunks/tooltip-root-DzahJDVj.js.map +0 -1
- package/dist/chunks/zh-CN-Bm6UPIbW.js.map +0 -1
- package/dist/components/data-table.js.map +0 -1
- package/dist/components/label.js.map +0 -1
|
@@ -0,0 +1,312 @@
|
|
|
1
|
+
"use client";
|
|
2
|
+
import { t as e } from "./cn-BjnOAUrA.js";
|
|
3
|
+
import { a as t, o as n } from "./inset-BUzyXLK4.js";
|
|
4
|
+
import { i as r } from "./context-BELWW79w.js";
|
|
5
|
+
import { t as i } from "./icon-CBzOwqrX.js";
|
|
6
|
+
import { r as a } from "./tooltip-Tkm-urbi.js";
|
|
7
|
+
import { o } from "./input-Bo5-UZg2.js";
|
|
8
|
+
import { n as s } from "./checkbox-9tbimmF3.js";
|
|
9
|
+
import { r as c } from "./combobox-DkcjkWc6.js";
|
|
10
|
+
import { t as l } from "./empty-BpiUgGzm.js";
|
|
11
|
+
import { t as u } from "./truncated-d1afmUJT.js";
|
|
12
|
+
import { t as d } from "./badge-C0GC3B9X.js";
|
|
13
|
+
import { forwardRef as f, useEffect as p, useId as m, useLayoutEffect as h, useMemo as g, useRef as _, useState as v } from "react";
|
|
14
|
+
import { jsx as y, jsxs as b } from "react/jsx-runtime";
|
|
15
|
+
import { Alert02Icon as x, MinusSignIcon as S, Tick02Icon as C } from "@hugeicons/core-free-icons";
|
|
16
|
+
//#region src/components/kaeso/rights-logic.ts
|
|
17
|
+
function w(e, t, n) {
|
|
18
|
+
let r = new Map(e.map((e) => [e.code, e])), i = /* @__PURE__ */ new Map();
|
|
19
|
+
for (let t of e) for (let e of t.requires ?? []) i.set(e, [...i.get(e) ?? [], t.code]);
|
|
20
|
+
let a = [{
|
|
21
|
+
code: t,
|
|
22
|
+
granted: n
|
|
23
|
+
}], o = /* @__PURE__ */ new Set([t]), s = [t];
|
|
24
|
+
for (; s.length;) {
|
|
25
|
+
let e = s.shift(), t = n ? r.get(e)?.requires ?? [] : i.get(e) ?? [];
|
|
26
|
+
for (let e of t) {
|
|
27
|
+
if (o.has(e)) continue;
|
|
28
|
+
o.add(e);
|
|
29
|
+
let t = r.get(e);
|
|
30
|
+
t && !t.disabled && (s.push(e), t.granted !== n && a.push({
|
|
31
|
+
code: e,
|
|
32
|
+
granted: n
|
|
33
|
+
}));
|
|
34
|
+
}
|
|
35
|
+
}
|
|
36
|
+
return a;
|
|
37
|
+
}
|
|
38
|
+
function T(e, t, n) {
|
|
39
|
+
let r = new Map(e.map((e) => [e.code, e.granted])), i = /* @__PURE__ */ new Map();
|
|
40
|
+
for (let a of t) {
|
|
41
|
+
if (a.disabled || r.get(a.code) === n) continue;
|
|
42
|
+
let t = e.map((e) => ({
|
|
43
|
+
...e,
|
|
44
|
+
granted: i.get(e.code) ?? e.granted
|
|
45
|
+
}));
|
|
46
|
+
for (let e of w(t, a.code, n)) i.set(e.code, e.granted), r.set(e.code, e.granted);
|
|
47
|
+
}
|
|
48
|
+
return [...i].map(([e, t]) => ({
|
|
49
|
+
code: e,
|
|
50
|
+
granted: t
|
|
51
|
+
}));
|
|
52
|
+
}
|
|
53
|
+
//#endregion
|
|
54
|
+
//#region src/components/kaeso/rights.tsx
|
|
55
|
+
var E = "[role=\"checkbox\"], [data-right-extra]", D = {
|
|
56
|
+
origin: {
|
|
57
|
+
preset: { classes: "text-fg-secondary" },
|
|
58
|
+
added: { classes: "text-success-text" },
|
|
59
|
+
removed: { classes: "text-danger-text" },
|
|
60
|
+
none: { classes: "" }
|
|
61
|
+
},
|
|
62
|
+
mode: {
|
|
63
|
+
edit: { classes: "" },
|
|
64
|
+
readOnly: { classes: "" }
|
|
65
|
+
}
|
|
66
|
+
}, O = {
|
|
67
|
+
origin: "none",
|
|
68
|
+
mode: "edit"
|
|
69
|
+
};
|
|
70
|
+
function k(e) {
|
|
71
|
+
return {
|
|
72
|
+
preset: e("rightsMatrix.fromRole", "From role"),
|
|
73
|
+
added: e("rightsMatrix.added", "Added"),
|
|
74
|
+
removed: e("rightsMatrix.removed", "Removed"),
|
|
75
|
+
none: ""
|
|
76
|
+
};
|
|
77
|
+
}
|
|
78
|
+
var A = (e, ...t) => t.some((t) => t?.toLowerCase().includes(e)), j = /* @__PURE__ */ f(function({ groups: t, onChange: n, onRightsChange: i, readOnly: a, searchable: c, originLabels: u, "aria-label": d, className: f }, x) {
|
|
79
|
+
let S = r(), [C, D] = v(""), [O, j] = v(""), [N, P] = v(() => /* @__PURE__ */ new Set()), F = _(void 0);
|
|
80
|
+
p(() => () => clearTimeout(F.current), []);
|
|
81
|
+
let I = _(null), L = m(), R = g(() => t.flatMap((e) => e.rights), [t]), z = g(() => new Map(R.map((e) => [e.code, e.label ?? e.code])), [R]), B = g(() => {
|
|
82
|
+
if (R.length < 3) return /* @__PURE__ */ new Set();
|
|
83
|
+
let e = new Set(R.flatMap((e) => e.requires ?? []));
|
|
84
|
+
return new Set([...e].filter((e) => R.every((t) => t.code === e || t.requires?.includes(e))));
|
|
85
|
+
}, [R]), V = R.some((e) => e.origin !== void 0), H = {
|
|
86
|
+
...k(S),
|
|
87
|
+
...u
|
|
88
|
+
}, U = C.trim().toLowerCase(), W = t.map((e) => !U || A(U, e.label) ? e : {
|
|
89
|
+
...e,
|
|
90
|
+
rights: e.rights.filter((e) => A(U, e.label, e.code, e.description))
|
|
91
|
+
}).filter((e) => e.rights.length > 0), G = (e) => {
|
|
92
|
+
if (!e.length) return;
|
|
93
|
+
if (i) i(e);
|
|
94
|
+
else if (n) for (let t of e) n(t.code, t.granted);
|
|
95
|
+
let [t, ...r] = e, a = r.map((e) => z.get(e.code) ?? e.code);
|
|
96
|
+
j(a.length && t ? t.granted ? S("rightsMatrix.alsoGranted", "Also granted {rights}", { rights: a.join(S("rightsMatrix.listSeparator", ", ")) }) : S("rightsMatrix.alsoRemoved", "Also removed {rights}", { rights: a.join(S("rightsMatrix.listSeparator", ", ")) }) : ""), clearTimeout(F.current), P(new Set(r.map((e) => e.code))), r.length && (F.current = setTimeout(() => P(/* @__PURE__ */ new Set()), 1200));
|
|
97
|
+
}, [K, q] = v(0), J = _(() => {});
|
|
98
|
+
return J.current = () => {
|
|
99
|
+
let e = I.current;
|
|
100
|
+
if (!e || a) return;
|
|
101
|
+
let t = [...e.querySelectorAll("[role=\"checkbox\"]")], n = t[Math.min(K, t.length - 1)];
|
|
102
|
+
for (let t of e.querySelectorAll(E)) {
|
|
103
|
+
let e = t === n ? "0" : "-1";
|
|
104
|
+
t.getAttribute("tabindex") !== e && t.setAttribute("tabindex", e);
|
|
105
|
+
}
|
|
106
|
+
}, h(() => J.current()), h(() => {
|
|
107
|
+
let e = I.current;
|
|
108
|
+
if (!e || a) return;
|
|
109
|
+
let t = new MutationObserver(() => J.current());
|
|
110
|
+
return t.observe(e, {
|
|
111
|
+
subtree: !0,
|
|
112
|
+
childList: !0,
|
|
113
|
+
attributes: !0,
|
|
114
|
+
attributeFilter: ["tabindex"]
|
|
115
|
+
}), () => t.disconnect();
|
|
116
|
+
}, [a]), /* @__PURE__ */ b("div", {
|
|
117
|
+
ref: (e) => {
|
|
118
|
+
I.current = e, typeof x == "function" ? x(e) : x && (x.current = e);
|
|
119
|
+
},
|
|
120
|
+
role: "group",
|
|
121
|
+
"aria-label": d ?? S("rightsMatrix.rights", "Rights"),
|
|
122
|
+
onKeyDown: (e) => {
|
|
123
|
+
let t = e.target;
|
|
124
|
+
if (!I.current || a || e.altKey || e.metaKey || e.ctrlKey) return;
|
|
125
|
+
let n = [...I.current.querySelectorAll("[role=\"checkbox\"]")], r = t.closest("[data-right]"), i = t.getAttribute("role") === "checkbox" ? t : r?.querySelector("[role=\"checkbox\"]");
|
|
126
|
+
if (!i) return;
|
|
127
|
+
if (t !== i) {
|
|
128
|
+
(e.key === "ArrowLeft" || e.key === "Escape") && (e.preventDefault(), i.focus());
|
|
129
|
+
return;
|
|
130
|
+
}
|
|
131
|
+
let o = n.indexOf(i), s = r?.querySelector("[data-right-extra]"), c = e.key === "ArrowDown" ? n[o + 1] : e.key === "ArrowUp" ? n[o - 1] : e.key === "Home" ? n[0] : e.key === "End" ? n[n.length - 1] : e.key === "ArrowRight" ? s : void 0;
|
|
132
|
+
c && (e.preventDefault(), c.focus());
|
|
133
|
+
},
|
|
134
|
+
onFocus: (e) => {
|
|
135
|
+
let t = [...I.current?.querySelectorAll("[role=\"checkbox\"]") ?? []].indexOf(e.target);
|
|
136
|
+
t >= 0 && t !== K && q(t);
|
|
137
|
+
},
|
|
138
|
+
className: e("@container flex min-w-0 flex-col gap-24", f),
|
|
139
|
+
children: [
|
|
140
|
+
c && /* @__PURE__ */ y(o, {
|
|
141
|
+
className: "w-full",
|
|
142
|
+
"aria-label": S("rightsMatrix.searchRights", "Search rights"),
|
|
143
|
+
placeholder: S("rightsMatrix.searchRights", "Search rights"),
|
|
144
|
+
value: C,
|
|
145
|
+
onChange: (e) => D(e.target.value),
|
|
146
|
+
onClear: () => D("")
|
|
147
|
+
}),
|
|
148
|
+
W.length === 0 && /* @__PURE__ */ y(l, {
|
|
149
|
+
size: "compact",
|
|
150
|
+
title: S("rightsMatrix.noMatch", "No rights match"),
|
|
151
|
+
description: S("rightsMatrix.noMatchHint", "Try a right's name, its code, or a word from its description.")
|
|
152
|
+
}),
|
|
153
|
+
W.map((t, n) => {
|
|
154
|
+
let r = `${L}-g${n}`, i = t.rights.filter((e) => e.granted).length, o = t.rights.filter((e) => !e.disabled), c = o.length > 0 && o.every((e) => e.granted), l = i === t.rights.length;
|
|
155
|
+
return /* @__PURE__ */ b("section", {
|
|
156
|
+
"aria-labelledby": r,
|
|
157
|
+
className: "flex min-w-0 flex-col",
|
|
158
|
+
children: [/* @__PURE__ */ b(a ? "div" : "label", {
|
|
159
|
+
"data-right": "",
|
|
160
|
+
className: e("flex items-start gap-12 px-12 pb-4", !a && o.length > 0 && "cursor-pointer"),
|
|
161
|
+
children: [!a && /* @__PURE__ */ y("span", {
|
|
162
|
+
className: "flex h-20 items-center",
|
|
163
|
+
children: /* @__PURE__ */ y(s, {
|
|
164
|
+
"aria-label": U ? S("rightsMatrix.everyRightShownIn", "Every right shown in {group}", { group: t.label }) : S("rightsMatrix.everyRightIn", "Every right in {group}", { group: t.label }),
|
|
165
|
+
checked: l,
|
|
166
|
+
indeterminate: i > 0 && !l,
|
|
167
|
+
disabled: o.length === 0,
|
|
168
|
+
onCheckedChange: () => G(T(R, t.rights, !c))
|
|
169
|
+
})
|
|
170
|
+
}), /* @__PURE__ */ b("span", {
|
|
171
|
+
className: "flex min-w-0 flex-1 flex-col",
|
|
172
|
+
children: [/* @__PURE__ */ b("span", {
|
|
173
|
+
className: "flex items-baseline justify-between gap-12",
|
|
174
|
+
children: [/* @__PURE__ */ y("span", {
|
|
175
|
+
id: r,
|
|
176
|
+
className: "min-w-0 wrap-break-word text-body font-semibold text-fg",
|
|
177
|
+
children: t.label
|
|
178
|
+
}), /* @__PURE__ */ y("span", {
|
|
179
|
+
className: "shrink-0 text-small text-fg-secondary tabular",
|
|
180
|
+
children: S("rightsMatrix.grantedOfTotal", "{granted} of {total}", {
|
|
181
|
+
granted: i,
|
|
182
|
+
total: t.rights.length
|
|
183
|
+
})
|
|
184
|
+
})]
|
|
185
|
+
}), t.description && /* @__PURE__ */ y("span", {
|
|
186
|
+
className: "text-small text-fg-secondary text-pretty",
|
|
187
|
+
children: t.description
|
|
188
|
+
})]
|
|
189
|
+
})]
|
|
190
|
+
}), t.rights.map((e) => /* @__PURE__ */ y(M, {
|
|
191
|
+
right: e,
|
|
192
|
+
readOnly: !!a,
|
|
193
|
+
query: U,
|
|
194
|
+
hasOrigin: V,
|
|
195
|
+
originText: H,
|
|
196
|
+
names: z,
|
|
197
|
+
universal: B,
|
|
198
|
+
flashed: N.has(e.code),
|
|
199
|
+
onToggle: (t) => G(w(R, e.code, t))
|
|
200
|
+
}, e.code))]
|
|
201
|
+
}, t.label);
|
|
202
|
+
}),
|
|
203
|
+
/* @__PURE__ */ y("span", {
|
|
204
|
+
"aria-live": "polite",
|
|
205
|
+
className: "sr-only",
|
|
206
|
+
children: O
|
|
207
|
+
})
|
|
208
|
+
]
|
|
209
|
+
});
|
|
210
|
+
});
|
|
211
|
+
process.env.NODE_ENV !== "production" && (j.displayName = "RightsMatrix");
|
|
212
|
+
function M({ right: o, readOnly: l, query: f, hasOrigin: p, originText: h, names: g, universal: _, flashed: v, onToggle: w }) {
|
|
213
|
+
let T = r(), E = t(), O = n(), k = E || O, A = m(), j = m(), M = o.label ?? o.code, N = l ? [] : (o.requires ?? []).filter((e) => !_.has(e)).map((e) => g.get(e) ?? e), P = /* @__PURE__ */ b("span", {
|
|
214
|
+
className: "flex min-w-0 flex-1 flex-col gap-2",
|
|
215
|
+
children: [
|
|
216
|
+
/* @__PURE__ */ b("span", {
|
|
217
|
+
className: "flex min-w-0 items-start gap-8",
|
|
218
|
+
children: [
|
|
219
|
+
/* @__PURE__ */ y("span", {
|
|
220
|
+
id: j,
|
|
221
|
+
className: e("min-w-0 wrap-break-word", o.label ? "text-body font-medium" : "mono text-small", l && !o.granted || o.disabled ? "text-fg-secondary" : "text-fg"),
|
|
222
|
+
children: /* @__PURE__ */ y(c, {
|
|
223
|
+
text: M,
|
|
224
|
+
query: f
|
|
225
|
+
})
|
|
226
|
+
}),
|
|
227
|
+
o.label && /* @__PURE__ */ y("span", {
|
|
228
|
+
className: "hidden h-20 min-w-0 items-center @auth:flex",
|
|
229
|
+
children: /* @__PURE__ */ y(u, {
|
|
230
|
+
className: "min-w-0 mono text-caption text-fg-tertiary",
|
|
231
|
+
children: o.code
|
|
232
|
+
})
|
|
233
|
+
}),
|
|
234
|
+
o.sensitive && /* @__PURE__ */ y("span", {
|
|
235
|
+
className: e("flex shrink-0 items-center", o.label ? "h-20" : "h-18"),
|
|
236
|
+
children: /* @__PURE__ */ y(a, {
|
|
237
|
+
content: T("rightsMatrix.sensitiveHint", "Sensitive: exposes data or is hard to undo"),
|
|
238
|
+
children: /* @__PURE__ */ y("span", {
|
|
239
|
+
tabIndex: 0,
|
|
240
|
+
"data-right-extra": "",
|
|
241
|
+
className: "inline-flex shrink-0 rounded-pill text-warning-text focus-ring",
|
|
242
|
+
children: /* @__PURE__ */ y(i, {
|
|
243
|
+
icon: x,
|
|
244
|
+
size: "sm",
|
|
245
|
+
label: T("rightsMatrix.sensitive", "Sensitive")
|
|
246
|
+
})
|
|
247
|
+
})
|
|
248
|
+
})
|
|
249
|
+
}),
|
|
250
|
+
p && !l && /* @__PURE__ */ y("span", {
|
|
251
|
+
className: e("ml-auto flex max-w-160 min-w-80 shrink-0 items-center justify-end text-right text-small", o.label ? "min-h-20" : "min-h-18", D.origin[o.origin ?? "none"].classes),
|
|
252
|
+
children: /* @__PURE__ */ y(u, { children: h[o.origin ?? "none"] })
|
|
253
|
+
})
|
|
254
|
+
]
|
|
255
|
+
}),
|
|
256
|
+
/* @__PURE__ */ y("span", {
|
|
257
|
+
id: A,
|
|
258
|
+
className: "text-small text-pretty text-fg-secondary",
|
|
259
|
+
children: o.description
|
|
260
|
+
}),
|
|
261
|
+
N.length > 0 && /* @__PURE__ */ y("span", {
|
|
262
|
+
className: "text-caption text-fg-secondary",
|
|
263
|
+
children: T("rightsMatrix.needs", "Needs {rights}", { rights: N.join(T("rightsMatrix.listSeparator", ", ")) })
|
|
264
|
+
}),
|
|
265
|
+
l && o.granted && !!o.sources?.length && /* @__PURE__ */ y("span", {
|
|
266
|
+
className: "flex flex-wrap gap-4 pt-4",
|
|
267
|
+
children: o.sources.map((e) => e.detail ? /* @__PURE__ */ y(a, {
|
|
268
|
+
content: e.detail,
|
|
269
|
+
children: /* @__PURE__ */ y(d, {
|
|
270
|
+
tabIndex: 0,
|
|
271
|
+
className: "cursor-help underline decoration-dotted underline-offset-2 focus-ring",
|
|
272
|
+
children: e.label
|
|
273
|
+
})
|
|
274
|
+
}, e.label) : /* @__PURE__ */ y(d, { children: e.label }, e.label))
|
|
275
|
+
})
|
|
276
|
+
]
|
|
277
|
+
});
|
|
278
|
+
if (l) return /* @__PURE__ */ b("div", {
|
|
279
|
+
className: "flex min-h-56 items-start gap-12 px-12 py-8",
|
|
280
|
+
children: [/* @__PURE__ */ y("span", {
|
|
281
|
+
className: "flex h-20 w-18 shrink-0 items-center justify-center",
|
|
282
|
+
children: /* @__PURE__ */ y(i, {
|
|
283
|
+
icon: o.granted ? C : S,
|
|
284
|
+
size: "sm",
|
|
285
|
+
className: o.granted ? "text-fg" : "text-fg-tertiary",
|
|
286
|
+
label: o.granted ? T("rightsMatrix.granted", "Granted") : T("rightsMatrix.notGranted", "Not granted")
|
|
287
|
+
})
|
|
288
|
+
}), P]
|
|
289
|
+
});
|
|
290
|
+
let F = /* @__PURE__ */ b("label", {
|
|
291
|
+
"data-right": "",
|
|
292
|
+
className: e("flex min-h-56 items-start gap-12 rounded-item px-12 py-8 transition-control", o.disabled ? "cursor-not-allowed" : e("cursor-pointer", k ? "hover:bg-raised-hover" : "hover:bg-fill-1"), v && (k ? "bg-raised-pressed hover:bg-raised-pressed" : "bg-fill-2 hover:bg-fill-2")),
|
|
293
|
+
children: [/* @__PURE__ */ y("span", {
|
|
294
|
+
className: "flex h-20 items-center",
|
|
295
|
+
children: /* @__PURE__ */ y(s, {
|
|
296
|
+
checked: o.granted,
|
|
297
|
+
disabled: o.disabled,
|
|
298
|
+
onCheckedChange: w,
|
|
299
|
+
"aria-labelledby": j,
|
|
300
|
+
"aria-describedby": A
|
|
301
|
+
})
|
|
302
|
+
}), P]
|
|
303
|
+
});
|
|
304
|
+
return o.disabled && o.disabledReason ? /* @__PURE__ */ y(a, {
|
|
305
|
+
content: o.disabledReason,
|
|
306
|
+
children: F
|
|
307
|
+
}) : F;
|
|
308
|
+
}
|
|
309
|
+
//#endregion
|
|
310
|
+
export { w as a, T as i, D as n, j as r, O as t };
|
|
311
|
+
|
|
312
|
+
//# sourceMappingURL=rights-B68ocZuq.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"rights-B68ocZuq.js","names":["__icon_Alert02Icon","__icon_Tick02Icon","__icon_MinusSignIcon","cn","useInset","useRaised","useUiText","Icon","Tooltip","CheckboxBox","Highlight","Empty","TruncatedText","Badge","rightsCascade","byCode","rights","r","dependents","req","out","seen","code","queue","next","linked","granted","c","groupCascade","state","all","group","current","n","g","STOPS","KAESO_RIGHTS_MATRIX_VARIANTS","KAESO_RIGHTS_MATRIX_DEFAULT_VARIANTS","originTexts","t","matches","texts","q","RightsMatrix","ariaLabel","query","setQuery","useState","announcement","setAnnouncement","flashed","setFlashed","flashTimer","useRef","root","baseId","useId","useMemo","groups","names","universal","required","hasOrigins","originText","originLabels","shown","apply","changes","onRightsChange","onChange","first","rest","also","stop","setStop","roving","el","readOnly","boxes","own","w","tabindex","useLayoutEffect","observer","ref","target","row","box","i","extra","className","searchable","SearchInput","headingId","gi","grantedCount","changeable","changeableOn","allOn","RightRow","inset","raised","onRaised","descId","nameId","name","needs","text","Alert02Icon","hasOrigin","s","Tick02Icon","MinusSignIcon","onToggle"],"sources":["../../src/components/kaeso/rights-logic.ts","../../src/components/kaeso/rights.tsx"],"sourcesContent":["export interface RightChange {\n code: string;\n granted: boolean;\n}\n\ninterface Node {\n code: string;\n granted: boolean;\n requires?: string[] | undefined;\n disabled?: boolean | undefined;\n}\n\nexport function rightsCascade(rights: readonly Node[], code: string, granted: boolean): RightChange[] {\n const byCode = new Map(rights.map((r) => [r.code, r]));\n const dependents = new Map<string, string[]>();\n for (const r of rights) for (const req of r.requires ?? []) dependents.set(req, [...(dependents.get(req) ?? []), r.code]);\n const out: RightChange[] = [{ code, granted }];\n const seen = new Set([code]);\n const queue = [code];\n while (queue.length) {\n const next = queue.shift() as string;\n const linked = granted ? (byCode.get(next)?.requires ?? []) : (dependents.get(next) ?? []);\n for (const c of linked) {\n if (seen.has(c)) continue;\n seen.add(c);\n const r = byCode.get(c);\n if (!r || r.disabled) continue;\n queue.push(c);\n if (r.granted !== granted) out.push({ code: c, granted });\n }\n }\n return out;\n}\n\nexport function groupCascade(all: readonly Node[], group: readonly Node[], granted: boolean): RightChange[] {\n const state = new Map(all.map((r) => [r.code, r.granted]));\n const out = new Map<string, boolean>();\n for (const r of group) {\n if (r.disabled || state.get(r.code) === granted) continue;\n const current = all.map((n) => ({ ...n, granted: out.get(n.code) ?? n.granted }));\n for (const c of rightsCascade(current, r.code, granted)) {\n out.set(c.code, c.granted);\n state.set(c.code, c.granted);\n }\n }\n return [...out].map(([code, g]) => ({ code, granted: g }));\n}\n","import { forwardRef, useEffect, useId, useLayoutEffect, useMemo, useRef, useState, type KeyboardEvent, type ReactNode } from \"react\";\nimport { cn } from \"../../utils/cn.js\";\nimport { Alert02Icon as __icon_Alert02Icon, Tick02Icon as __icon_Tick02Icon, MinusSignIcon as __icon_MinusSignIcon } from \"@hugeicons/core-free-icons\";\nimport { Icon } from \"../icon/icon.js\";\nimport { CheckboxBox } from \"../checkbox/checkbox.js\";\nimport { Tooltip } from \"../tooltip/tooltip.js\";\nimport { SearchInput } from \"../input/input.js\";\nimport { Empty } from \"../empty/empty.js\";\nimport { Badge } from \"../badge/badge.js\";\nimport { Highlight } from \"../combobox/combobox.js\";\nimport { groupCascade, rightsCascade, type RightChange } from \"./rights-logic.js\";\nimport { useUiText, type UiText } from \"../../i18n/context.js\";\nimport { useInset, useRaised } from \"../../utils/inset.js\";\nimport { TruncatedText } from \"../text/truncated.js\";\n\nconst STOPS = '[role=\"checkbox\"], [data-right-extra]';\n\nexport const KAESO_RIGHTS_MATRIX_VARIANTS = {\n origin: {\n preset: { classes: \"text-fg-secondary\" },\n added: { classes: \"text-success-text\" },\n removed: { classes: \"text-danger-text\" },\n none: { classes: \"\" },\n },\n mode: {\n edit: { classes: \"\" },\n readOnly: { classes: \"\" },\n },\n} as const;\nexport const KAESO_RIGHTS_MATRIX_DEFAULT_VARIANTS = { origin: \"none\", mode: \"edit\" } as const;\n\ntype Origin = keyof typeof KAESO_RIGHTS_MATRIX_VARIANTS.origin;\n\nexport interface RightSource {\n label: string;\n detail?: string | undefined;\n}\n\nexport interface Right {\n code: string;\n label?: string | undefined;\n description: string;\n granted: boolean;\n origin?: Origin | undefined;\n sensitive?: boolean | undefined;\n requires?: string[] | undefined;\n sources?: RightSource[] | undefined;\n disabled?: boolean | undefined;\n disabledReason?: string | undefined;\n}\n\nexport interface RightsGroup {\n label: string;\n description?: string | undefined;\n rights: Right[];\n}\n\nexport interface RightsMatrixProps {\n groups: RightsGroup[];\n onChange?: ((code: string, granted: boolean) => void) | undefined;\n onRightsChange?: ((changes: RightChange[]) => void) | undefined;\n readOnly?: boolean | undefined;\n searchable?: boolean | undefined;\n originLabels?: Partial<Record<Origin, string>> | undefined;\n \"aria-label\"?: string | undefined;\n className?: string | undefined;\n}\n\nfunction originTexts(t: UiText): Record<Origin, string> {\n return { preset: t(\"rightsMatrix.fromRole\", \"From role\"), added: t(\"rightsMatrix.added\", \"Added\"), removed: t(\"rightsMatrix.removed\", \"Removed\"), none: \"\" };\n}\n\nconst matches = (q: string, ...texts: (string | undefined)[]) => texts.some((t) => t?.toLowerCase().includes(q));\n\nexport const RightsMatrix = /* @__PURE__ */ forwardRef<HTMLDivElement, RightsMatrixProps>(function RightsMatrix(\n { groups, onChange, onRightsChange, readOnly, searchable, originLabels, \"aria-label\": ariaLabel, className },\n ref,\n) {\n const t = useUiText();\n const [query, setQuery] = useState(\"\");\n const [announcement, setAnnouncement] = useState(\"\");\n const [flashed, setFlashed] = useState<ReadonlySet<string>>(() => new Set());\n const flashTimer = useRef<ReturnType<typeof setTimeout> | undefined>(undefined);\n useEffect(() => () => clearTimeout(flashTimer.current), []);\n const root = useRef<HTMLDivElement | null>(null);\n const baseId = useId();\n const all = useMemo(() => groups.flatMap((g) => g.rights), [groups]);\n const names = useMemo(() => new Map(all.map((r) => [r.code, r.label ?? r.code])), [all]);\n const universal = useMemo(() => {\n if (all.length < 3) return new Set<string>();\n const required = new Set(all.flatMap((r) => r.requires ?? []));\n return new Set([...required].filter((c) => all.every((r) => r.code === c || r.requires?.includes(c))));\n }, [all]);\n const hasOrigins = all.some((r) => r.origin !== undefined);\n const originText = { ...originTexts(t), ...originLabels };\n const q = query.trim().toLowerCase();\n const shown = groups\n .map((g) => (!q || matches(q, g.label) ? g : { ...g, rights: g.rights.filter((r) => matches(q, r.label, r.code, r.description)) }))\n .filter((g) => g.rights.length > 0);\n\n const apply = (changes: RightChange[]) => {\n if (!changes.length) return;\n if (onRightsChange) onRightsChange(changes);\n else if (onChange) for (const c of changes) onChange(c.code, c.granted);\n const [first, ...rest] = changes;\n const also = rest.map((c) => names.get(c.code) ?? c.code);\n setAnnouncement(\n also.length && first\n ? first.granted\n ? t(\"rightsMatrix.alsoGranted\", \"Also granted {rights}\", { rights: also.join(t(\"rightsMatrix.listSeparator\", \", \")) })\n : t(\"rightsMatrix.alsoRemoved\", \"Also removed {rights}\", { rights: also.join(t(\"rightsMatrix.listSeparator\", \", \")) })\n : \"\",\n );\n clearTimeout(flashTimer.current);\n setFlashed(new Set(rest.map((c) => c.code)));\n if (rest.length) flashTimer.current = setTimeout(() => setFlashed(new Set()), 1200);\n };\n\n const [stop, setStop] = useState(0);\n const roving = useRef(() => {});\n roving.current = () => {\n const el = root.current;\n if (!el || readOnly) return;\n const boxes = [...el.querySelectorAll<HTMLElement>('[role=\"checkbox\"]')];\n const own = boxes[Math.min(stop, boxes.length - 1)];\n for (const w of el.querySelectorAll<HTMLElement>(STOPS)) {\n const tabindex = w === own ? \"0\" : \"-1\";\n if (w.getAttribute(\"tabindex\") !== tabindex) w.setAttribute(\"tabindex\", tabindex);\n }\n };\n useLayoutEffect(() => roving.current());\n useLayoutEffect(() => {\n const el = root.current;\n if (!el || readOnly) return;\n const observer = new MutationObserver(() => roving.current());\n observer.observe(el, { subtree: true, childList: true, attributes: true, attributeFilter: [\"tabindex\"] });\n return () => observer.disconnect();\n }, [readOnly]);\n\n const onKeyDown = (e: KeyboardEvent<HTMLDivElement>) => {\n const target = e.target as HTMLElement;\n if (!root.current || readOnly || e.altKey || e.metaKey || e.ctrlKey) return;\n const boxes = [...root.current.querySelectorAll<HTMLElement>('[role=\"checkbox\"]')];\n const row = target.closest<HTMLElement>(\"[data-right]\");\n const box = target.getAttribute(\"role\") === \"checkbox\" ? target : row?.querySelector<HTMLElement>('[role=\"checkbox\"]');\n if (!box) return;\n if (target !== box) {\n if (e.key === \"ArrowLeft\" || e.key === \"Escape\") {\n e.preventDefault();\n box.focus();\n }\n return;\n }\n const i = boxes.indexOf(box);\n const extra = row?.querySelector<HTMLElement>(\"[data-right-extra]\");\n const next =\n e.key === \"ArrowDown\"\n ? boxes[i + 1]\n : e.key === \"ArrowUp\"\n ? boxes[i - 1]\n : e.key === \"Home\"\n ? boxes[0]\n : e.key === \"End\"\n ? boxes[boxes.length - 1]\n : e.key === \"ArrowRight\"\n ? extra\n : undefined;\n if (!next) return;\n e.preventDefault();\n next.focus();\n };\n\n return (\n <div\n ref={(el) => {\n root.current = el;\n if (typeof ref === \"function\") ref(el);\n else if (ref) ref.current = el;\n }}\n role=\"group\"\n aria-label={ariaLabel ?? t(\"rightsMatrix.rights\", \"Rights\")}\n onKeyDown={onKeyDown}\n onFocus={(e) => {\n const boxes = [...(root.current?.querySelectorAll<HTMLElement>('[role=\"checkbox\"]') ?? [])];\n const i = boxes.indexOf(e.target as HTMLElement);\n if (i >= 0 && i !== stop) setStop(i);\n }}\n className={cn(\"@container flex min-w-0 flex-col gap-24\", className)}\n >\n {searchable && (\n <SearchInput\n className=\"w-full\"\n aria-label={t(\"rightsMatrix.searchRights\", \"Search rights\")}\n placeholder={t(\"rightsMatrix.searchRights\", \"Search rights\")}\n value={query}\n onChange={(e) => setQuery(e.target.value)}\n onClear={() => setQuery(\"\")}\n />\n )}\n {shown.length === 0 && (\n <Empty\n size=\"compact\"\n title={t(\"rightsMatrix.noMatch\", \"No rights match\")}\n description={t(\"rightsMatrix.noMatchHint\", \"Try a right's name, its code, or a word from its description.\")}\n />\n )}\n {shown.map((g, gi) => {\n const headingId = `${baseId}-g${gi}`;\n const grantedCount = g.rights.filter((r) => r.granted).length;\n const changeable = g.rights.filter((r) => !r.disabled);\n const changeableOn = changeable.length > 0 && changeable.every((r) => r.granted);\n const allOn = grantedCount === g.rights.length;\n const Header = readOnly ? \"div\" : \"label\";\n return (\n <section key={g.label} aria-labelledby={headingId} className=\"flex min-w-0 flex-col\">\n <Header data-right=\"\" className={cn(\"flex items-start gap-12 px-12 pb-4\", !readOnly && changeable.length > 0 && \"cursor-pointer\")}>\n {!readOnly && (\n <span className=\"flex h-20 items-center\">\n <CheckboxBox\n aria-label={\n q\n ? t(\"rightsMatrix.everyRightShownIn\", \"Every right shown in {group}\", { group: g.label })\n : t(\"rightsMatrix.everyRightIn\", \"Every right in {group}\", { group: g.label })\n }\n checked={allOn}\n indeterminate={grantedCount > 0 && !allOn}\n disabled={changeable.length === 0}\n onCheckedChange={() => apply(groupCascade(all, g.rights, !changeableOn))}\n />\n </span>\n )}\n <span className=\"flex min-w-0 flex-1 flex-col\">\n <span className=\"flex items-baseline justify-between gap-12\">\n <span id={headingId} className=\"min-w-0 wrap-break-word text-body font-semibold text-fg\">\n {g.label}\n </span>\n <span className=\"shrink-0 text-small text-fg-secondary tabular\">\n {t(\"rightsMatrix.grantedOfTotal\", \"{granted} of {total}\", { granted: grantedCount, total: g.rights.length })}\n </span>\n </span>\n {g.description && <span className=\"text-small text-fg-secondary text-pretty\">{g.description}</span>}\n </span>\n </Header>\n {g.rights.map((r) => (\n <RightRow\n key={r.code}\n right={r}\n readOnly={!!readOnly}\n query={q}\n hasOrigin={hasOrigins}\n originText={originText}\n names={names}\n universal={universal}\n flashed={flashed.has(r.code)}\n onToggle={(granted) => apply(rightsCascade(all, r.code, granted))}\n />\n ))}\n </section>\n );\n })}\n <span aria-live=\"polite\" className=\"sr-only\">\n {announcement}\n </span>\n </div>\n );\n});\nif (process.env.NODE_ENV !== \"production\") RightsMatrix.displayName = \"RightsMatrix\";\n\nfunction RightRow({\n right: r,\n readOnly,\n query,\n hasOrigin,\n originText,\n names,\n universal,\n flashed,\n onToggle,\n}: {\n right: Right;\n readOnly: boolean;\n query: string;\n hasOrigin: boolean;\n originText: Record<Origin, string>;\n names: Map<string, string>;\n universal: ReadonlySet<string>;\n flashed: boolean;\n onToggle: (granted: boolean) => void;\n}) {\n const t = useUiText();\n const inset = useInset();\n const raised = useRaised();\n const onRaised = inset || raised;\n const descId = useId();\n const nameId = useId();\n const name = r.label ?? r.code;\n const needs = readOnly ? [] : (r.requires ?? []).filter((c) => !universal.has(c)).map((c) => names.get(c) ?? c);\n const text: ReactNode = (\n <span className=\"flex min-w-0 flex-1 flex-col gap-2\">\n <span className=\"flex min-w-0 items-start gap-8\">\n <span\n id={nameId}\n className={cn(\n \"min-w-0 wrap-break-word\",\n r.label ? \"text-body font-medium\" : \"mono text-small\",\n (readOnly && !r.granted) || r.disabled ? \"text-fg-secondary\" : \"text-fg\",\n )}\n >\n <Highlight text={name} query={query} />\n </span>\n {r.label && (\n <span className=\"hidden h-20 min-w-0 items-center @auth:flex\">\n <TruncatedText className=\"min-w-0 mono text-caption text-fg-tertiary\">{r.code}</TruncatedText>\n </span>\n )}\n {r.sensitive && (\n <span className={cn(\"flex shrink-0 items-center\", r.label ? \"h-20\" : \"h-18\")}>\n <Tooltip content={t(\"rightsMatrix.sensitiveHint\", \"Sensitive: exposes data or is hard to undo\")}>\n <span tabIndex={0} data-right-extra=\"\" className=\"inline-flex shrink-0 rounded-pill text-warning-text focus-ring\">\n <Icon icon={__icon_Alert02Icon} size=\"sm\" label={t(\"rightsMatrix.sensitive\", \"Sensitive\")} />\n </span>\n </Tooltip>\n </span>\n )}\n {hasOrigin && !readOnly && (\n <span\n className={cn(\n \"ml-auto flex max-w-160 min-w-80 shrink-0 items-center justify-end text-right text-small\",\n r.label ? \"min-h-20\" : \"min-h-18\",\n KAESO_RIGHTS_MATRIX_VARIANTS.origin[r.origin ?? \"none\"].classes,\n )}\n >\n <TruncatedText>{originText[r.origin ?? \"none\"]}</TruncatedText>\n </span>\n )}\n </span>\n <span id={descId} className=\"text-small text-pretty text-fg-secondary\">\n {r.description}\n </span>\n {needs.length > 0 && (\n <span className=\"text-caption text-fg-secondary\">\n {t(\"rightsMatrix.needs\", \"Needs {rights}\", { rights: needs.join(t(\"rightsMatrix.listSeparator\", \", \")) })}\n </span>\n )}\n {readOnly && r.granted && !!r.sources?.length && (\n <span className=\"flex flex-wrap gap-4 pt-4\">\n {r.sources.map((s) =>\n s.detail ? (\n <Tooltip key={s.label} content={s.detail}>\n <Badge tabIndex={0} className=\"cursor-help underline decoration-dotted underline-offset-2 focus-ring\">\n {s.label}\n </Badge>\n </Tooltip>\n ) : (\n <Badge key={s.label}>{s.label}</Badge>\n ),\n )}\n </span>\n )}\n </span>\n );\n\n if (readOnly) {\n return (\n <div className=\"flex min-h-56 items-start gap-12 px-12 py-8\">\n <span className=\"flex h-20 w-18 shrink-0 items-center justify-center\">\n <Icon\n icon={r.granted ? __icon_Tick02Icon : __icon_MinusSignIcon}\n size=\"sm\"\n className={r.granted ? \"text-fg\" : \"text-fg-tertiary\"}\n label={r.granted ? t(\"rightsMatrix.granted\", \"Granted\") : t(\"rightsMatrix.notGranted\", \"Not granted\")}\n />\n </span>\n {text}\n </div>\n );\n }\n\n const row = (\n <label\n data-right=\"\"\n className={cn(\n \"flex min-h-56 items-start gap-12 rounded-item px-12 py-8 transition-control\",\n r.disabled ? \"cursor-not-allowed\" : cn(\"cursor-pointer\", onRaised ? \"hover:bg-raised-hover\" : \"hover:bg-fill-1\"),\n flashed && (onRaised ? \"bg-raised-pressed hover:bg-raised-pressed\" : \"bg-fill-2 hover:bg-fill-2\"),\n )}\n >\n <span className=\"flex h-20 items-center\">\n <CheckboxBox checked={r.granted} disabled={r.disabled} onCheckedChange={onToggle} aria-labelledby={nameId} aria-describedby={descId} />\n </span>\n {text}\n </label>\n );\n return r.disabled && r.disabledReason ? <Tooltip content={r.disabledReason}>{row}</Tooltip> : row;\n}\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-BjnOAUrA.js";
|
|
3
3
|
import { forwardRef as t } from "react";
|
|
4
4
|
import { jsx as n, jsxs as r } from "react/jsx-runtime";
|
|
5
5
|
import { CSPProvider as i } from "@base-ui/react/csp-provider";
|
|
@@ -8,11 +8,11 @@ import { ScrollArea as a } from "@base-ui/react/scroll-area";
|
|
|
8
8
|
var o = { orientation: {
|
|
9
9
|
vertical: { classes: "scroll-axis-y scroll-fade-y" },
|
|
10
10
|
horizontal: { classes: "scroll-axis-x scroll-fade-x" },
|
|
11
|
-
both: { classes: "scroll-axis-both" }
|
|
11
|
+
both: { classes: "scroll-axis-both scroll-fade-both" }
|
|
12
12
|
} }, s = { orientation: "vertical" }, c = ({ orientation: t }) => /* @__PURE__ */ n(a.Scrollbar, {
|
|
13
13
|
orientation: t,
|
|
14
|
-
className: e("flex touch-none p-2 opacity-0 select-none transition-control data-hovering:opacity-100 data-scrolling:opacity-100", t === "vertical" ? "w-10" : "h-10 flex-col"),
|
|
15
|
-
children: /* @__PURE__ */ n(a.Thumb, { className: "flex-1 rounded-pill bg-line-strong" })
|
|
14
|
+
className: e("group/bar flex touch-none p-2 opacity-0 select-none transition-control data-hovering:opacity-100 data-scrolling:opacity-100", t === "vertical" ? "w-10" : "h-10 flex-col"),
|
|
15
|
+
children: /* @__PURE__ */ n(a.Thumb, { className: "flex-1 rounded-pill bg-line-strong transition-control group-data-hovering/bar:bg-fg-tertiary group-data-scrolling/bar:bg-fg-tertiary forced-line" })
|
|
16
16
|
}), l = /* @__PURE__ */ t(function({ children: t, orientation: s = "vertical", className: l, viewportClassName: u, "aria-label": d }, f) {
|
|
17
17
|
return /* @__PURE__ */ n(i, {
|
|
18
18
|
disableStyleElements: !0,
|
|
@@ -21,13 +21,18 @@ var o = { orientation: {
|
|
|
21
21
|
className: e("relative min-h-0 overflow-hidden", l),
|
|
22
22
|
children: [
|
|
23
23
|
/* @__PURE__ */ n(a.Viewport, {
|
|
24
|
-
className: e("size-full
|
|
24
|
+
className: e("peer/viewport size-full outline-none", o.orientation[s].classes, u),
|
|
25
25
|
...d ? {
|
|
26
26
|
role: "region",
|
|
27
27
|
"aria-label": d
|
|
28
28
|
} : {},
|
|
29
29
|
children: t
|
|
30
30
|
}),
|
|
31
|
+
/* @__PURE__ */ n("span", {
|
|
32
|
+
"aria-hidden": !0,
|
|
33
|
+
style: { borderRadius: "inherit" },
|
|
34
|
+
className: "pointer-events-none absolute inset-0 peer-focus-visible/viewport:outline-2 peer-focus-visible/viewport:-outline-offset-2 peer-focus-visible/viewport:outline-focus peer-focus-visible/viewport:outline-solid"
|
|
35
|
+
}),
|
|
31
36
|
s !== "horizontal" && /* @__PURE__ */ n(c, { orientation: "vertical" }),
|
|
32
37
|
s !== "vertical" && /* @__PURE__ */ n(c, { orientation: "horizontal" }),
|
|
33
38
|
s === "both" && /* @__PURE__ */ n(a.Corner, {})
|
|
@@ -39,4 +44,4 @@ process.env.NODE_ENV !== "production" && (l.displayName = "ScrollArea");
|
|
|
39
44
|
//#endregion
|
|
40
45
|
export { o as n, l as r, s as t };
|
|
41
46
|
|
|
42
|
-
//# sourceMappingURL=scroll-area-
|
|
47
|
+
//# sourceMappingURL=scroll-area-_Ljh4-bG.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"scroll-area-_Ljh4-bG.js","names":["BaseScrollArea","ScrollArea","cn","KAESO_SCROLL_AREA_VARIANTS","KAESO_SCROLL_AREA_DEFAULT_VARIANTS","Bar","ScrollArea","orientation","ScrollArea$1","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 scroll-fade-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 \"group/bar 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 transition-control group-data-hovering/bar:bg-fg-tertiary group-data-scrolling/bar:bg-fg-tertiary forced-line\" />\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(\"peer/viewport size-full outline-none\", KAESO_SCROLL_AREA_VARIANTS.orientation[orientation].classes, viewportClassName)}\n {...(label ? { role: \"region\", \"aria-label\": label } : {})}\n >\n {children}\n </BaseScrollArea.Viewport>\n <span\n aria-hidden\n style={{ borderRadius: \"inherit\" }}\n className=\"pointer-events-none absolute inset-0 peer-focus-visible/viewport:outline-2 peer-focus-visible/viewport:-outline-offset-2 peer-focus-visible/viewport:outline-focus peer-focus-visible/viewport:outline-solid\"\n />\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,oCAAoC;AACvD,EACF,GACaC,IAAqC,EAAE,aAAa,WAAW,GAUtEC,KAAO,EAAE,qBACb,kBAACL,EAAe,WAAhB;CACe;CACb,WAAWE,EACT,+HACAK,MAAgB,aAAa,SAAS,eACxC;CAEA,UAAA,kBAACP,EAAe,OAAhB,EAAsB,WAAU,mJAAoJ,CAAA;AAC5J,CAAA,GAGfC,IAA6B,kBAA4C,SACpF,EAAE,aAAU,iBAAc,YAAY,cAAW,sBAAmB,cAAcQ,KAClF,GACA;CACA,OACE,kBAACC,GAAD;EAAa,sBAAA;EACX,UAAA,kBAACV,EAAe,MAAhB;GAA0B;GAAK,WAAWE,EAAG,oCAAoCS,CAAS;GAA1F,UAAA;IACE,kBAACX,EAAe,UAAhB;KACE,WAAWE,EAAG,wCAAwCC,EAA2B,YAAYI,EAAY,CAAC,SAASK,CAAiB;KACpI,GAAKH,IAAQ;MAAE,MAAM;MAAU,cAAcA;KAAM,IAAI,CAAC;KAEvD;IACsB,CAAA;IACzB,kBAAC,QAAD;KACE,eAAA;KACA,OAAO,EAAE,cAAc,UAAU;KACjC,WAAU;IACX,CAAA;IACAF,MAAgB,gBAAgB,kBAACF,GAAD,EAAK,aAAY,WAAY,CAAA;IAC7DE,MAAgB,cAAc,kBAACF,GAAD,EAAK,aAAY,aAAc,CAAA;IAC7DE,MAAgB,UAAU,kBAACP,EAAe,QAAhB,CAAwB,CAAA;GAChC;;CACV,CAAA;AAEjB,CAAC;AACD,QAAA,IAAA,aAA6B,iBAAc,EAAW,cAAc"}
|
|
@@ -0,0 +1,77 @@
|
|
|
1
|
+
"use client";
|
|
2
|
+
import { t as e } from "./cn-BjnOAUrA.js";
|
|
3
|
+
import { t } from "./nav-wordmark-J4pB_vjr.js";
|
|
4
|
+
import { t as n } from "./section-header-DU1Q4Tdf.js";
|
|
5
|
+
import { forwardRef as r } from "react";
|
|
6
|
+
import { jsx as i, jsxs as a } from "react/jsx-runtime";
|
|
7
|
+
//#region src/components/section/section.tsx
|
|
8
|
+
var o = { spacing: {
|
|
9
|
+
default: { classes: "mt-48 first:mt-0" },
|
|
10
|
+
none: { classes: "" }
|
|
11
|
+
} }, s = { spacing: "default" }, c = /* @__PURE__ */ r(function({ title: t, description: r, actions: s, spacing: c = "default", children: l, className: u }, d) {
|
|
12
|
+
return /* @__PURE__ */ a("section", {
|
|
13
|
+
ref: d,
|
|
14
|
+
className: e(o.spacing[c].classes, u),
|
|
15
|
+
children: [(t || s) && /* @__PURE__ */ i(n, {
|
|
16
|
+
title: t,
|
|
17
|
+
description: r,
|
|
18
|
+
actions: s
|
|
19
|
+
}), l]
|
|
20
|
+
});
|
|
21
|
+
});
|
|
22
|
+
process.env.NODE_ENV !== "production" && (c.displayName = "Section");
|
|
23
|
+
var l = /* @__PURE__ */ r(function({ children: t, aside: n, className: r }, o) {
|
|
24
|
+
return /* @__PURE__ */ a("div", {
|
|
25
|
+
ref: o,
|
|
26
|
+
className: e("grid grid-cols-1 lg:grid-cols-aside", r),
|
|
27
|
+
children: [/* @__PURE__ */ i("div", {
|
|
28
|
+
className: "min-w-0 lg:pr-32",
|
|
29
|
+
children: t
|
|
30
|
+
}), /* @__PURE__ */ i("aside", {
|
|
31
|
+
className: "mt-32 min-w-0 lg:mt-0 lg:pl-32 lg:hairline-l",
|
|
32
|
+
children: /* @__PURE__ */ i("div", {
|
|
33
|
+
className: "flex flex-col gap-32 lg:sticky lg:top-16",
|
|
34
|
+
children: n
|
|
35
|
+
})
|
|
36
|
+
})]
|
|
37
|
+
});
|
|
38
|
+
});
|
|
39
|
+
process.env.NODE_ENV !== "production" && (l.displayName = "SplitView");
|
|
40
|
+
var u = /* @__PURE__ */ r(function({ title: n, description: r, children: o, footer: s, className: c }, l) {
|
|
41
|
+
return /* @__PURE__ */ a("div", {
|
|
42
|
+
ref: l,
|
|
43
|
+
className: e("relative flex min-h-dvh flex-col items-center bg-panel px-16 py-64 text-fg", c),
|
|
44
|
+
children: [
|
|
45
|
+
/* @__PURE__ */ i("div", {
|
|
46
|
+
className: "absolute top-0 left-0 mt-8 flex h-52 items-center px-16 sm:px-28",
|
|
47
|
+
children: /* @__PURE__ */ i(t, {})
|
|
48
|
+
}),
|
|
49
|
+
/* @__PURE__ */ a("div", {
|
|
50
|
+
className: "flex w-full max-w-auth flex-1 flex-col justify-center",
|
|
51
|
+
children: [
|
|
52
|
+
/* @__PURE__ */ i("h1", {
|
|
53
|
+
className: "text-center text-title-lg font-semibold text-fg text-balance",
|
|
54
|
+
children: n
|
|
55
|
+
}),
|
|
56
|
+
r && /* @__PURE__ */ i("p", {
|
|
57
|
+
className: "mt-8 text-center text-body-lg font-regular text-fg-secondary text-pretty",
|
|
58
|
+
children: r
|
|
59
|
+
}),
|
|
60
|
+
/* @__PURE__ */ i("div", {
|
|
61
|
+
className: "mt-24 flex flex-col gap-16",
|
|
62
|
+
children: o
|
|
63
|
+
})
|
|
64
|
+
]
|
|
65
|
+
}),
|
|
66
|
+
s && /* @__PURE__ */ i("div", {
|
|
67
|
+
className: "mt-48 text-small text-fg-secondary",
|
|
68
|
+
children: s
|
|
69
|
+
})
|
|
70
|
+
]
|
|
71
|
+
});
|
|
72
|
+
});
|
|
73
|
+
process.env.NODE_ENV !== "production" && (u.displayName = "AuthLayout");
|
|
74
|
+
//#endregion
|
|
75
|
+
export { l as a, c as i, s as n, o as r, u as t };
|
|
76
|
+
|
|
77
|
+
//# sourceMappingURL=section-CFBYhsUi.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"section-CFBYhsUi.js","names":["cn","SectionHeader","KAESO_SECTION_VARIANTS","KAESO_SECTION_DEFAULT_VARIANTS","Section","spacing","className","title","actions","children","SplitView","aside","AuthLayout","NavWordmark","description","footer"],"sources":["../../src/components/section/section.tsx"],"sourcesContent":["import { forwardRef, type ReactNode } from \"react\";\nimport { cn } from \"../../utils/cn.js\";\nimport { NavWordmark } from \"../logo/nav-wordmark.js\";\nimport { SectionHeader } from \"./section-header.js\";\n\nexport const KAESO_SECTION_VARIANTS = {\n spacing: {\n default: { classes: \"mt-48 first:mt-0\" },\n none: { classes: \"\" },\n },\n} as const;\nexport const KAESO_SECTION_DEFAULT_VARIANTS = { spacing: \"default\" } as const;\n\nexport interface SectionProps {\n title?: ReactNode | undefined;\n description?: ReactNode | undefined;\n actions?: ReactNode | undefined;\n spacing?: keyof typeof KAESO_SECTION_VARIANTS.spacing | undefined;\n children: ReactNode;\n className?: string | undefined;\n}\n\nexport const Section = /* @__PURE__ */ forwardRef<HTMLElement, SectionProps>(function Section({ title, description, actions, spacing = \"default\", children, className }, ref) {\n return (\n <section ref={ref} className={cn(KAESO_SECTION_VARIANTS.spacing[spacing].classes, className)}>\n {(title || actions) && <SectionHeader title={title} description={description} actions={actions} />}\n {children}\n </section>\n );\n});\nif (process.env.NODE_ENV !== \"production\") Section.displayName = \"Section\";\n\nexport const SplitView = /* @__PURE__ */ forwardRef<HTMLDivElement, { children: ReactNode; aside: ReactNode; className?: string | undefined }>(function SplitView(\n { children, aside, className },\n ref,\n) {\n return (\n <div ref={ref} className={cn(\"grid grid-cols-1 lg:grid-cols-aside\", className)}>\n <div className=\"min-w-0 lg:pr-32\">{children}</div>\n <aside className=\"mt-32 min-w-0 lg:mt-0 lg:pl-32 lg:hairline-l\">\n <div className=\"flex flex-col gap-32 lg:sticky lg:top-16\">{aside}</div>\n </aside>\n </div>\n );\n});\nif (process.env.NODE_ENV !== \"production\") SplitView.displayName = \"SplitView\";\n\nexport const AuthLayout = /* @__PURE__ */ forwardRef<\n HTMLDivElement,\n { title: ReactNode; description?: ReactNode | undefined; children: ReactNode; footer?: ReactNode | undefined; className?: string | undefined }\n>(function AuthLayout({ title, description, children, footer, className }, ref) {\n return (\n <div ref={ref} className={cn(\"relative flex min-h-dvh flex-col items-center bg-panel px-16 py-64 text-fg\", className)}>\n <div className=\"absolute top-0 left-0 mt-8 flex h-52 items-center px-16 sm:px-28\">\n <NavWordmark />\n </div>\n <div className=\"flex w-full max-w-auth flex-1 flex-col justify-center\">\n <h1 className=\"text-center text-title-lg font-semibold text-fg text-balance\">{title}</h1>\n {description && <p className=\"mt-8 text-center text-body-lg font-regular text-fg-secondary text-pretty\">{description}</p>}\n <div className=\"mt-24 flex flex-col gap-16\">{children}</div>\n </div>\n {footer && <div className=\"mt-48 text-small text-fg-secondary\">{footer}</div>}\n </div>\n );\n});\nif (process.env.NODE_ENV !== \"production\") AuthLayout.displayName = \"AuthLayout\";\n"],"mappings":";;;;;;;AAKA,IAAaE,IAAyB,EACpC,SAAS;CACP,SAAS,EAAE,SAAS,mBAAmB;CACvC,MAAM,EAAE,SAAS,GAAG;AACtB,EACF,GACaC,IAAiC,EAAE,SAAS,UAAU,GAWtDC,IAA0B,kBAAsC,SAAiB,EAAE,UAAO,gBAAa,YAAS,aAAU,WAAW,aAAU,gBAAa,GAAK;CAC5K,OACE,kBAAC,WAAD;EAAc;EAAK,WAAWJ,EAAGE,EAAuB,QAAQG,EAAQ,CAAC,SAASC,CAAS;EAA3F,UAAA,EACIC,KAASC,MAAY,kBAACP,GAAD;GAAsB;GAAoB;GAAsB;EAAU,CAAA,GAChGQ,CACM;;AAEb,CAAC;AACD,QAAA,IAAA,aAA6B,iBAAc,EAAQ,cAAc;AAEjE,IAAaC,IAA4B,kBAAsG,SAC7I,EAAE,aAAU,UAAO,gBACnB,GACA;CACA,OACE,kBAAC,OAAD;EAAU;EAAK,WAAWV,EAAG,uCAAuCM,CAAS;EAA7E,UAAA,CACE,kBAAC,OAAD;GAAK,WAAU;GAAoB;EAAc,CAAA,GACjD,kBAAC,SAAD;GAAO,WAAU;GACf,UAAA,kBAAC,OAAD;IAAK,WAAU;IAA4C,UAAAK;GAAW,CAAA;EACjE,CAAA,CACJ;;AAET,CAAC;AACD,QAAA,IAAA,aAA6B,iBAAc,EAAU,cAAc;AAEnE,IAAaC,IAA6B,kBAGxC,SAAoB,EAAE,UAAO,gBAAa,aAAU,WAAQ,gBAAa,GAAK;CAC9E,OACE,kBAAC,OAAD;EAAU;EAAK,WAAWZ,EAAG,8EAA8EM,CAAS;EAApH,UAAA;GACE,kBAAC,OAAD;IAAK,WAAU;IACb,UAAA,kBAACO,GAAD,CAAc,CAAA;GACX,CAAA;GACL,kBAAC,OAAD;IAAK,WAAU;IAAf,UAAA;KACE,kBAAC,MAAD;MAAI,WAAU;MAAgE,UAAAN;KAAU,CAAA;KACvFO,KAAe,kBAAC,KAAD;MAAG,WAAU;MAA4E,UAAAA;KAAe,CAAA;KACxH,kBAAC,OAAD;MAAK,WAAU;MAA8B;KAAc,CAAA;IACxD;;GACJC,KAAU,kBAAC,OAAD;IAAK,WAAU;IAAsC,UAAAA;GAAY,CAAA;EACzE;;AAET,CAAC;AACD,QAAA,IAAA,aAA6B,iBAAc,EAAW,cAAc"}
|
|
@@ -0,0 +1,28 @@
|
|
|
1
|
+
"use client";
|
|
2
|
+
import { forwardRef as e } from "react";
|
|
3
|
+
import { jsx as t, jsxs as n } from "react/jsx-runtime";
|
|
4
|
+
//#region src/components/section/section-header.tsx
|
|
5
|
+
var r = /* @__PURE__ */ e(function({ title: e, description: r, actions: i }, a) {
|
|
6
|
+
return /* @__PURE__ */ n("header", {
|
|
7
|
+
ref: a,
|
|
8
|
+
className: "mb-16 flex flex-wrap items-end justify-between gap-x-16 gap-y-12",
|
|
9
|
+
children: [/* @__PURE__ */ n("div", {
|
|
10
|
+
className: "flex min-w-0 flex-col gap-2",
|
|
11
|
+
children: [e && /* @__PURE__ */ t("h2", {
|
|
12
|
+
className: "text-title-sm font-semibold text-fg",
|
|
13
|
+
children: e
|
|
14
|
+
}), r && /* @__PURE__ */ t("p", {
|
|
15
|
+
className: "max-w-prose text-small text-fg-secondary",
|
|
16
|
+
children: r
|
|
17
|
+
})]
|
|
18
|
+
}), i && /* @__PURE__ */ t("div", {
|
|
19
|
+
className: "flex shrink-0 items-center gap-8",
|
|
20
|
+
children: i
|
|
21
|
+
})]
|
|
22
|
+
});
|
|
23
|
+
});
|
|
24
|
+
process.env.NODE_ENV !== "production" && (r.displayName = "SectionHeader");
|
|
25
|
+
//#endregion
|
|
26
|
+
export { r as t };
|
|
27
|
+
|
|
28
|
+
//# sourceMappingURL=section-header-DU1Q4Tdf.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"section-header-DU1Q4Tdf.js","names":["SectionHeader","title","description","actions"],"sources":["../../src/components/section/section-header.tsx"],"sourcesContent":["import { forwardRef, type ReactNode } from \"react\";\n\nexport const SectionHeader = /* @__PURE__ */ forwardRef<HTMLElement, { title: ReactNode; description: ReactNode; actions: ReactNode }>(function SectionHeader(\n { title, description, actions },\n ref,\n) {\n return (\n <header ref={ref} className=\"mb-16 flex flex-wrap items-end justify-between gap-x-16 gap-y-12\">\n <div className=\"flex min-w-0 flex-col gap-2\">\n {title && <h2 className=\"text-title-sm font-semibold text-fg\">{title}</h2>}\n {description && <p className=\"max-w-prose text-small text-fg-secondary\">{description}</p>}\n </div>\n {actions && <div className=\"flex shrink-0 items-center gap-8\">{actions}</div>}\n </header>\n );\n});\nif (process.env.NODE_ENV !== \"production\") SectionHeader.displayName = \"SectionHeader\";\n"],"mappings":";;;;AAEA,IAAaA,IAAgC,kBAA0F,SACrI,EAAE,UAAO,gBAAa,cACtB,GACA;CACA,OACE,kBAAC,UAAD;EAAa;EAAK,WAAU;EAA5B,UAAA,CACE,kBAAC,OAAD;GAAK,WAAU;GAAf,UAAA,CACGC,KAAS,kBAAC,MAAD;IAAI,WAAU;IAAuC,UAAAA;GAAU,CAAA,GACxEC,KAAe,kBAAC,KAAD;IAAG,WAAU;IAA4C,UAAAA;GAAe,CAAA,CACrF;EACJ,CAAA,GAAAC,KAAW,kBAAC,OAAD;GAAK,WAAU;GAAoC,UAAAA;EAAa,CAAA,CACtE;;AAEZ,CAAC;AACD,QAAA,IAAA,aAA6B,iBAAc,EAAc,cAAc"}
|