@logicplanes/kaeso-ui 0.2.1 → 0.3.0
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
- package/AGENTS.md +2 -0
- package/NOTICE.md +1 -1
- package/ai/component-guides.md +249 -24
- package/ai/component-registry.json +1044 -67
- package/ai/component-registry.md +238 -50
- package/ai/icons.md +1 -1
- package/ai/tokens.md +7 -3
- 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-B9vrgwaE.js +220 -0
- package/dist/chunks/app-frame-B9vrgwaE.js.map +1 -0
- package/dist/chunks/{avatar-D2nJNbtC.js → avatar-DOzOhYJr.js} +2 -2
- package/dist/chunks/{avatar-D2nJNbtC.js.map → avatar-DOzOhYJr.js.map} +1 -1
- package/dist/chunks/{badge-Dkyhs0_j.js → badge-wUHlj7m3.js} +2 -2
- package/dist/chunks/{badge-Dkyhs0_j.js.map → badge-wUHlj7m3.js.map} +1 -1
- package/dist/chunks/{banner-DxGBPQ7p.js → banner-BBlNFHd-.js} +4 -4
- package/dist/chunks/{banner-DxGBPQ7p.js.map → banner-BBlNFHd-.js.map} +1 -1
- package/dist/chunks/{button-DQvoOxVQ.js → button-CAPyW-v8.js} +8 -8
- package/dist/chunks/{button-DQvoOxVQ.js.map → button-CAPyW-v8.js.map} +1 -1
- package/dist/chunks/{calendar-CN3YJi2k.js → calendar-CBeptQFq.js} +2 -2
- package/dist/chunks/{calendar-CN3YJi2k.js.map → calendar-CBeptQFq.js.map} +1 -1
- package/dist/chunks/{checkbox-BgRdbfCE.js → checkbox-C5yvSS7O.js} +3 -3
- package/dist/chunks/{checkbox-BgRdbfCE.js.map → checkbox-C5yvSS7O.js.map} +1 -1
- package/dist/chunks/{cn-CidVUKMm.js → cn-DUDmdLpZ.js} +3 -1
- package/dist/chunks/cn-DUDmdLpZ.js.map +1 -0
- package/dist/chunks/{code-BADhvsgC.js → code-C49NzHUQ.js} +2 -2
- package/dist/chunks/{code-BADhvsgC.js.map → code-C49NzHUQ.js.map} +1 -1
- package/dist/chunks/{code-block-DxtladFW.js → code-block-DREsvJ-g.js} +24 -21
- package/dist/chunks/code-block-DREsvJ-g.js.map +1 -0
- package/dist/chunks/{collapsible-Cw_1aem5.js → collapsible-CDQq1Y9x.js} +6 -6
- package/dist/chunks/collapsible-CDQq1Y9x.js.map +1 -0
- package/dist/chunks/combobox-DqtzsAKG.js +314 -0
- package/dist/chunks/combobox-DqtzsAKG.js.map +1 -0
- package/dist/chunks/command-list-D5k0uvkR.js +417 -0
- package/dist/chunks/command-list-D5k0uvkR.js.map +1 -0
- package/dist/chunks/{copy-button-DXxn-YYZ.js → copy-button-CNpEnS04.js} +6 -6
- package/dist/chunks/{copy-button-DXxn-YYZ.js.map → copy-button-CNpEnS04.js.map} +1 -1
- package/dist/chunks/{core-K960A4OT.js → core-CqLWVMDI.js} +36 -36
- package/dist/chunks/core-CqLWVMDI.js.map +1 -0
- package/dist/chunks/{date-popup-B-6xhb-1.js → date-popup-BgDz6SUj.js} +4 -4
- package/dist/chunks/{date-popup-B-6xhb-1.js.map → date-popup-BgDz6SUj.js.map} +1 -1
- package/dist/chunks/{de-CTAo4KL7.js → de-CkXZKaBD.js} +37 -5
- package/dist/chunks/de-CkXZKaBD.js.map +1 -0
- package/dist/chunks/dialog-truWH0qe.js +353 -0
- package/dist/chunks/dialog-truWH0qe.js.map +1 -0
- package/dist/chunks/{empty-DIbBpytW.js → empty-YXmSkKzR.js} +2 -2
- package/dist/chunks/{empty-DIbBpytW.js.map → empty-YXmSkKzR.js.map} +1 -1
- package/dist/chunks/{field-d8V94bvZ.js → field-BZriODU7.js} +3 -3
- package/dist/chunks/field-BZriODU7.js.map +1 -0
- package/dist/chunks/{icon-CeNQtobn.js → icon-BqujXDUc.js} +2 -2
- package/dist/chunks/{icon-CeNQtobn.js.map → icon-BqujXDUc.js.map} +1 -1
- package/dist/chunks/{icon-button-_x1RUphC.js → icon-button-D4O4puwH.js} +3 -3
- package/dist/chunks/{icon-button-_x1RUphC.js.map → icon-button-D4O4puwH.js.map} +1 -1
- package/dist/chunks/identity-CsZvAUwu.js +361 -0
- package/dist/chunks/identity-CsZvAUwu.js.map +1 -0
- package/dist/chunks/{input-CNTfI6YE.js → input-B0wtkcNh.js} +5 -5
- package/dist/chunks/{input-CNTfI6YE.js.map → input-B0wtkcNh.js.map} +1 -1
- package/dist/chunks/{input-group-CYA1MEoZ.js → input-group-BQLw06B0.js} +33 -27
- package/dist/chunks/input-group-BQLw06B0.js.map +1 -0
- package/dist/chunks/{inset-BLMdxX4I.js → inset-BnBj8NJV.js} +12 -2
- package/dist/chunks/inset-BnBj8NJV.js.map +1 -0
- package/dist/chunks/{iso-field-1qmg7TP8.js → iso-field-BUXgY1dB.js} +5 -3
- package/dist/chunks/{iso-field-1qmg7TP8.js.map → iso-field-BUXgY1dB.js.map} +1 -1
- package/dist/chunks/{json-view-B6KHIWzh.js → json-view-BkG2hTXV.js} +11 -10
- package/dist/chunks/{json-view-B6KHIWzh.js.map → json-view-BkG2hTXV.js.map} +1 -1
- package/dist/chunks/{kbd-CBcBDvqU.js → kbd-DqWmbr_e.js} +2 -2
- package/dist/chunks/{kbd-CBcBDvqU.js.map → kbd-DqWmbr_e.js.map} +1 -1
- package/dist/chunks/{link-vz9aV8WX.js → link-YMcxM-BZ.js} +4 -4
- package/dist/chunks/{link-vz9aV8WX.js.map → link-YMcxM-BZ.js.map} +1 -1
- package/dist/chunks/{link-provider---9JdxTg.js → link-provider-BsUxhZKG.js} +2 -2
- package/dist/chunks/{link-provider---9JdxTg.js.map → link-provider-BsUxhZKG.js.map} +1 -1
- package/dist/chunks/list-wXZIZo_s.js +492 -0
- package/dist/chunks/list-wXZIZo_s.js.map +1 -0
- package/dist/chunks/{loader-CUehxvSZ.js → loader-ENBh2Fbt.js} +2 -2
- package/dist/chunks/{loader-CUehxvSZ.js.map → loader-ENBh2Fbt.js.map} +1 -1
- package/dist/chunks/{markdown-5NyaHHfN.js → markdown-DWyxjsSY.js} +10 -10
- package/dist/chunks/{markdown-5NyaHHfN.js.map → markdown-DWyxjsSY.js.map} +1 -1
- package/dist/chunks/{menu-DyVPwgfF.js → menu-Bnfi9P3t.js} +7 -7
- package/dist/chunks/{menu-DyVPwgfF.js.map → menu-Bnfi9P3t.js.map} +1 -1
- package/dist/chunks/{meter-DWhyzFGQ.js → meter-DhTnem4k.js} +2 -2
- package/dist/chunks/{meter-DWhyzFGQ.js.map → meter-DhTnem4k.js.map} +1 -1
- package/dist/chunks/nav-sheet-QqNRHo-y.js +60 -0
- package/dist/chunks/nav-sheet-QqNRHo-y.js.map +1 -0
- package/dist/chunks/{nav-wordmark-DLkItdvo.js → nav-wordmark-DmbT1Aiw.js} +2 -2
- package/dist/chunks/{nav-wordmark-DLkItdvo.js.map → nav-wordmark-DmbT1Aiw.js.map} +1 -1
- package/dist/chunks/option-checkbox-Df7WhGn4.js +25 -0
- package/dist/chunks/option-checkbox-Df7WhGn4.js.map +1 -0
- package/dist/chunks/over-sheet-B8vzr_zU.js +8 -0
- package/dist/chunks/over-sheet-B8vzr_zU.js.map +1 -0
- package/dist/chunks/{page-header-CEPZzhRp.js → page-header-Ccnrspbp.js} +5 -5
- package/dist/chunks/{page-header-CEPZzhRp.js.map → page-header-Ccnrspbp.js.map} +1 -1
- package/dist/chunks/{pagination-CCMxQ5pH.js → pagination-CEmWZNjp.js} +5 -4
- package/dist/chunks/{pagination-CCMxQ5pH.js.map → pagination-CEmWZNjp.js.map} +1 -1
- package/dist/chunks/picker-popover-C4ElNk7t.js +102 -0
- package/dist/chunks/picker-popover-C4ElNk7t.js.map +1 -0
- package/dist/chunks/{popover-BE7VO-a4.js → popover-bjxg020P.js} +3 -3
- package/dist/chunks/{popover-BE7VO-a4.js.map → popover-bjxg020P.js.map} +1 -1
- package/dist/chunks/{radio-CUxbLCvD.js → radio-DwYcXAzv.js} +2 -2
- package/dist/chunks/{radio-CUxbLCvD.js.map → radio-DwYcXAzv.js.map} +1 -1
- package/dist/chunks/range-popup-CG9Jo5B7.js +128 -0
- package/dist/chunks/range-popup-CG9Jo5B7.js.map +1 -0
- package/dist/chunks/release-art-Chd8l9Rf.js +555 -0
- package/dist/chunks/release-art-Chd8l9Rf.js.map +1 -0
- package/dist/chunks/{resize-motion-CMaidkwe.js → resize-motion-BWGMchyP.js} +27 -23
- package/dist/chunks/resize-motion-BWGMchyP.js.map +1 -0
- package/dist/chunks/{rights-BbiJ0AJB.js → rights-hMoaFasn.js} +12 -12
- package/dist/chunks/rights-hMoaFasn.js.map +1 -0
- package/dist/chunks/{section-DzOLLN1p.js → section-BsET7Fo-.js} +4 -4
- package/dist/chunks/{section-DzOLLN1p.js.map → section-BsET7Fo-.js.map} +1 -1
- package/dist/chunks/{segmented-MrinfDL8.js → segmented-DXKVF-nY.js} +4 -4
- package/dist/chunks/{segmented-MrinfDL8.js.map → segmented-DXKVF-nY.js.map} +1 -1
- package/dist/chunks/{select-Bc4kRiSG.js → select-Bbv2f5F8.js} +63 -80
- package/dist/chunks/select-Bbv2f5F8.js.map +1 -0
- package/dist/chunks/{separator-D5AzVFTS.js → separator-CpAUELNs.js} +2 -2
- package/dist/chunks/{separator-D5AzVFTS.js.map → separator-CpAUELNs.js.map} +1 -1
- package/dist/chunks/{sidebar-5IA18LuP.js → sidebar-Dey1ZfGt.js} +54 -51
- package/dist/chunks/sidebar-Dey1ZfGt.js.map +1 -0
- package/dist/chunks/{sidebar-menu-DRWRxcJ3.js → sidebar-menu-ct8IiL4z.js} +2 -2
- package/dist/chunks/{sidebar-menu-DRWRxcJ3.js.map → sidebar-menu-ct8IiL4z.js.map} +1 -1
- package/dist/chunks/{skeleton-kfuqdl1a.js → skeleton-BM797MAg.js} +2 -2
- package/dist/chunks/{skeleton-kfuqdl1a.js.map → skeleton-BM797MAg.js.map} +1 -1
- package/dist/chunks/{slider-DbhjJ3ML.js → slider-Ds-tqY-1.js} +2 -2
- package/dist/chunks/{slider-DbhjJ3ML.js.map → slider-Ds-tqY-1.js.map} +1 -1
- package/dist/chunks/status-dot-BqVOlShY.js +29 -0
- package/dist/chunks/status-dot-BqVOlShY.js.map +1 -0
- package/dist/chunks/{styles-Btvg2DCf.js → styles-CVJU9t9v.js} +2 -2
- package/dist/chunks/{styles-Btvg2DCf.js.map → styles-CVJU9t9v.js.map} +1 -1
- package/dist/chunks/{swap-text-BhPI8DOf.js → swap-text-Cica0pUr.js} +2 -2
- package/dist/chunks/{swap-text-BhPI8DOf.js.map → swap-text-Cica0pUr.js.map} +1 -1
- package/dist/chunks/{switch-XMY_CQE-.js → switch-CSKMEomo.js} +3 -3
- package/dist/chunks/{switch-XMY_CQE-.js.map → switch-CSKMEomo.js.map} +1 -1
- package/dist/chunks/{table-DYKa86af.js → table-D-36EM7f.js} +2 -2
- package/dist/chunks/{table-DYKa86af.js.map → table-D-36EM7f.js.map} +1 -1
- package/dist/chunks/{tag-Dg89uYpV.js → tag-CwDKXVHj.js} +4 -4
- package/dist/chunks/{tag-Dg89uYpV.js.map → tag-CwDKXVHj.js.map} +1 -1
- package/dist/chunks/{text--5MKh2G4.js → text-Dvvgg5Jt.js} +3 -3
- package/dist/chunks/{text--5MKh2G4.js.map → text-Dvvgg5Jt.js.map} +1 -1
- package/dist/chunks/{textarea-Cj8iR82R.js → textarea-2d373OyU.js} +35 -31
- package/dist/chunks/textarea-2d373OyU.js.map +1 -0
- package/dist/chunks/timeseries-LRDAZHV0.js +339 -0
- package/dist/chunks/timeseries-LRDAZHV0.js.map +1 -0
- package/dist/chunks/{toolbar-Dw3uxpsE.js → toolbar-nVLFWH2i.js} +3 -3
- package/dist/chunks/{toolbar-Dw3uxpsE.js.map → toolbar-nVLFWH2i.js.map} +1 -1
- package/dist/chunks/{tooltip-DEbCCsru.js → tooltip-S1DmyLVl.js} +4 -4
- package/dist/chunks/{tooltip-DEbCCsru.js.map → tooltip-S1DmyLVl.js.map} +1 -1
- package/dist/chunks/{tooltip-root-DRd4ciUv.js → tooltip-root-vjylFUqw.js} +4 -4
- package/dist/chunks/{tooltip-root-DRd4ciUv.js.map → tooltip-root-vjylFUqw.js.map} +1 -1
- package/dist/chunks/{virtual-rows-BZe49bKi.js → virtual-rows-yAMjeAwj.js} +4 -3
- package/dist/chunks/virtual-rows-yAMjeAwj.js.map +1 -0
- package/dist/chunks/{zh-CN-C7GmVswt.js → zh-CN-CqEA4PCM.js} +37 -5
- package/dist/chunks/zh-CN-CqEA4PCM.js.map +1 -0
- package/dist/components/app-frame.js +2 -2
- package/dist/components/avatar.js +1 -1
- package/dist/components/badge.js +1 -1
- package/dist/components/banner.js +1 -1
- package/dist/components/button-group.js +33 -32
- 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 +34 -31
- package/dist/components/charts/bar.js.map +1 -1
- 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 -252
- package/dist/components/charts.js +3 -3
- 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 +4 -0
- package/dist/components/command-palette.js +120 -171
- package/dist/components/command-palette.js.map +1 -1
- package/dist/components/copy-button.js +1 -1
- package/dist/components/data-table.js +251 -193
- 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 +7 -9
- package/dist/components/dialog.js.map +1 -1
- package/dist/components/display-options.js +67 -53
- 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/filter-chip.js +138 -63
- package/dist/components/filter-chip.js.map +1 -1
- package/dist/components/filter-row.js +2 -2
- package/dist/components/flow.js +2 -2
- package/dist/components/heading.js +1 -1
- package/dist/components/icon-button.js +1 -1
- package/dist/components/icon.js +1 -1
- package/dist/components/input.js +56 -54
- package/dist/components/input.js.map +1 -1
- package/dist/components/kaeso/conversation.js +88 -79
- package/dist/components/kaeso/conversation.js.map +1 -1
- package/dist/components/kaeso/identity.js +1 -1
- package/dist/components/kaeso/moments.js +8 -8
- package/dist/components/kaeso/moments.js.map +1 -1
- package/dist/components/kaeso/rights.js +1 -1
- package/dist/components/kaeso/usage.js +6 -6
- package/dist/components/kaeso/usage.js.map +1 -1
- package/dist/components/kaeso.js +212 -84
- package/dist/components/kaeso.js.map +1 -1
- package/dist/components/kbd.js +1 -1
- package/dist/components/key-value.js +3 -3
- package/dist/components/label.js +1 -1
- package/dist/components/layout.js +1 -1
- package/dist/components/link.js +1 -1
- package/dist/components/list.js +1 -1
- package/dist/components/loader.js +2 -2
- package/dist/components/logo.js +2 -2
- package/dist/components/markdown.js +1 -1
- package/dist/components/menu.js +2 -2
- package/dist/components/meter.js +1 -1
- package/dist/components/page-header.js +1 -1
- package/dist/components/pagination.js +1 -1
- package/dist/components/playground.js +654 -381
- package/dist/components/playground.js.map +1 -1
- package/dist/components/popover.js +2 -2
- package/dist/components/qr-code.js +1 -1
- package/dist/components/radio.js +1 -1
- package/dist/components/release-art.js +2 -0
- 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 +3 -3
- package/dist/components/sheet.js +69 -52
- 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 +88 -74
- 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 +48 -49
- 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 +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 +1 -1
- package/dist/components/toolbar.js +1 -1
- package/dist/components/tooltip.js +1 -1
- package/dist/components/visually-hidden.js +1 -1
- package/dist/format.js +132 -79
- package/dist/format.js.map +1 -1
- package/dist/i18n-provider.js +1 -1
- package/dist/index.js +115 -111
- package/dist/kaeso.css +43 -8
- package/dist/styles.css +1 -1
- package/dist/types/components/charts/bar.d.ts +6 -0
- package/dist/types/components/charts/core.d.ts +2 -2
- package/dist/types/components/charts/docs.d.ts +7 -0
- package/dist/types/components/charts/time-axis.d.ts +5 -0
- package/dist/types/components/charts/timeseries.d.ts +9 -0
- package/dist/types/components/code-block/highlighter.d.ts +2 -0
- package/dist/types/components/combobox/combobox.d.ts +2 -0
- package/dist/types/components/combobox/docs.d.ts +2 -4
- package/dist/types/components/command-list/command-list.d.ts +84 -0
- package/dist/types/components/command-list/docs.d.ts +52 -0
- package/dist/types/components/command-list/index.d.ts +3 -0
- package/dist/types/components/command-list/match.d.ts +1 -0
- package/dist/types/components/command-list/picker-popover.d.ts +44 -0
- package/dist/types/components/data-table/data-table.d.ts +3 -2
- package/dist/types/components/data-table/docs.d.ts +1 -0
- package/dist/types/components/date-picker/docs.d.ts +0 -6
- package/dist/types/components/dialog/dialog.d.ts +24 -0
- package/dist/types/components/dialog/docs.d.ts +4 -0
- package/dist/types/components/display-options/display-options.d.ts +1 -0
- package/dist/types/components/filter-chip/docs.d.ts +4 -0
- package/dist/types/components/filter-chip/filter-chip.d.ts +7 -0
- package/dist/types/components/input/docs.d.ts +2 -12
- package/dist/types/components/input/number-input.d.ts +1 -0
- package/dist/types/components/input/tag-input.d.ts +1 -0
- package/dist/types/components/kaeso/docs.d.ts +34 -0
- package/dist/types/components/kaeso/identity.d.ts +10 -1
- package/dist/types/components/kaeso/index.d.ts +1 -0
- package/dist/types/components/kaeso/provider-marks.d.ts +5 -1
- package/dist/types/components/kaeso/provider-picker.d.ts +42 -0
- package/dist/types/components/list/docs.d.ts +2 -0
- package/dist/types/components/list/list.d.ts +2 -0
- package/dist/types/components/menu/styles.d.ts +1 -1
- package/dist/types/components/playground/docs.d.ts +32 -0
- package/dist/types/components/playground/index.d.ts +1 -0
- package/dist/types/components/playground/model-picker.d.ts +39 -4
- package/dist/types/components/playground/reasoning.d.ts +29 -0
- package/dist/types/components/playground/response-view.d.ts +7 -1
- package/dist/types/components/release-art/docs.d.ts +13 -0
- package/dist/types/components/release-art/drawing.d.ts +48 -0
- package/dist/types/components/release-art/index.d.ts +1 -0
- package/dist/types/components/release-art/release-art.d.ts +37 -0
- package/dist/types/components/select/docs.d.ts +0 -2
- package/dist/types/components/select/option-checkbox.d.ts +1 -0
- package/dist/types/components/sidebar/sidebar.d.ts +1 -0
- package/dist/types/components/stat/docs.d.ts +1 -0
- package/dist/types/components/stat/stat.d.ts +1 -0
- package/dist/types/components/status-dot/docs.d.ts +2 -0
- package/dist/types/components/status-dot/status-dot.d.ts +2 -0
- package/dist/types/format/index.d.ts +8 -0
- package/dist/types/index.d.ts +2 -0
- package/dist/types/utils/index.d.ts +1 -1
- package/dist/types/utils/inset.d.ts +5 -0
- package/dist/types/utils/over-sheet.d.ts +1 -0
- package/dist/types/utils/restore-focus.d.ts +1 -1
- package/dist/utils.js +4 -4
- package/foundations/accessibility.md +1 -0
- package/foundations/layout.md +45 -0
- package/foundations/writing.md +1 -0
- package/package.json +2 -2
- package/dist/chunks/app-frame-BXh-06HL.js +0 -214
- package/dist/chunks/app-frame-BXh-06HL.js.map +0 -1
- package/dist/chunks/cn-CidVUKMm.js.map +0 -1
- package/dist/chunks/code-block-DxtladFW.js.map +0 -1
- package/dist/chunks/collapsible-Cw_1aem5.js.map +0 -1
- package/dist/chunks/combobox-D30Wt11R.js +0 -291
- package/dist/chunks/combobox-D30Wt11R.js.map +0 -1
- package/dist/chunks/core-K960A4OT.js.map +0 -1
- package/dist/chunks/de-CTAo4KL7.js.map +0 -1
- package/dist/chunks/dialog-LNKgPEsV.js +0 -319
- package/dist/chunks/dialog-LNKgPEsV.js.map +0 -1
- package/dist/chunks/field-d8V94bvZ.js.map +0 -1
- package/dist/chunks/field-press-DwzBFafd.js +0 -10
- package/dist/chunks/field-press-DwzBFafd.js.map +0 -1
- package/dist/chunks/identity-BtZC_d_Q.js +0 -342
- package/dist/chunks/identity-BtZC_d_Q.js.map +0 -1
- package/dist/chunks/input-group-CYA1MEoZ.js.map +0 -1
- package/dist/chunks/inset-BLMdxX4I.js.map +0 -1
- package/dist/chunks/list-CzaiyNja.js +0 -483
- package/dist/chunks/list-CzaiyNja.js.map +0 -1
- package/dist/chunks/nav-sheet-BIErlV74.js +0 -58
- package/dist/chunks/nav-sheet-BIErlV74.js.map +0 -1
- package/dist/chunks/range-popup-DGOnGGag.js +0 -111
- package/dist/chunks/range-popup-DGOnGGag.js.map +0 -1
- package/dist/chunks/resize-motion-CMaidkwe.js.map +0 -1
- package/dist/chunks/rights-BbiJ0AJB.js.map +0 -1
- package/dist/chunks/select-Bc4kRiSG.js.map +0 -1
- package/dist/chunks/sidebar-5IA18LuP.js.map +0 -1
- package/dist/chunks/status-dot-CBoQpyL4.js +0 -25
- package/dist/chunks/status-dot-CBoQpyL4.js.map +0 -1
- package/dist/chunks/textarea-Cj8iR82R.js.map +0 -1
- package/dist/chunks/virtual-rows-BZe49bKi.js.map +0 -1
- package/dist/chunks/zh-CN-C7GmVswt.js.map +0 -1
- package/dist/components/charts/timeseries.js.map +0 -1
|
@@ -0,0 +1,353 @@
|
|
|
1
|
+
"use client";
|
|
2
|
+
import { t as e } from "./cn-DUDmdLpZ.js";
|
|
3
|
+
import { r as t } from "./portal-context-BBbzDKmY.js";
|
|
4
|
+
import { n, t as r } from "./inset-BnBj8NJV.js";
|
|
5
|
+
import { i } from "./context-BELWW79w.js";
|
|
6
|
+
import { i as a, n as o } from "./button-CAPyW-v8.js";
|
|
7
|
+
import { t as s } from "./icon-button-D4O4puwH.js";
|
|
8
|
+
import { t as c } from "./input-B0wtkcNh.js";
|
|
9
|
+
import { a as l, i as u, t as d } from "./resize-motion-BWGMchyP.js";
|
|
10
|
+
import { t as f } from "./over-sheet-B8vzr_zU.js";
|
|
11
|
+
import { cloneElement as p, createContext as m, forwardRef as h, use as g, useCallback as _, useEffect as v, useLayoutEffect as y, useRef as b, useState as x } from "react";
|
|
12
|
+
import { Fragment as S, jsx as C, jsxs as w } from "react/jsx-runtime";
|
|
13
|
+
import { ArrowLeft01Icon as T, Cancel01Icon as E } from "@hugeicons/core-free-icons";
|
|
14
|
+
import { Dialog as D } from "@base-ui/react/dialog";
|
|
15
|
+
import { AlertDialog as O } from "@base-ui/react/alert-dialog";
|
|
16
|
+
//#region src/components/dialog/focus.ts
|
|
17
|
+
var k = "input:not([type=hidden]):not([tabindex=\"-1\"]):not([aria-hidden=\"true\"]), textarea, select, [role=combobox]:not([tabindex=\"-1\"]), [role=radio][tabindex=\"0\"], [role=checkbox]:not([tabindex=\"-1\"]), [role=switch]:not([tabindex=\"-1\"]), [role=listbox]:not([tabindex=\"-1\"]), [role=grid] [data-index][tabindex=\"0\"], button[data-picker]", A = "a[href], button, input:not([type=hidden]), select, textarea, [tabindex]:not([tabindex=\"-1\"])", j = (e) => !e.closest("[hidden], [inert]") && !e.matches(":disabled, [aria-disabled=true]"), M = (e, t) => [...e.querySelectorAll(t)].find(j) ?? null;
|
|
18
|
+
function N(e, t) {
|
|
19
|
+
let n = t ?? e.querySelector("[data-dialog-body]"), r = e.querySelector("[data-dialog-footer]"), i = r ? [...r.querySelectorAll("button, a[href]")].filter(j) : [], { primary: o, danger: s, "danger-secondary": c } = a.variant, l = i.filter((e) => !e.classList.contains(s.classes) && !e.classList.contains(c.classes));
|
|
20
|
+
return (n && (M(n, "[data-autofocus]") ?? M(n, k))) ?? l.find((e) => e.classList.contains(o.classes)) ?? l[0] ?? (n && M(n, A)) ?? M(e, A);
|
|
21
|
+
}
|
|
22
|
+
function P(e, t) {
|
|
23
|
+
let n = e?.closest("[data-dialog-frame]");
|
|
24
|
+
e && n && !n.closest("[data-closed]") && ((t?.isConnected && n.contains(t) && j(t) ? t : null) ?? N(n, e))?.focus({ preventScroll: !0 });
|
|
25
|
+
}
|
|
26
|
+
//#endregion
|
|
27
|
+
//#region src/components/dialog/dialog.tsx
|
|
28
|
+
var F = {
|
|
29
|
+
size: {
|
|
30
|
+
sm: { classes: "w-440" },
|
|
31
|
+
md: { classes: "w-560" },
|
|
32
|
+
lg: { classes: "w-720" }
|
|
33
|
+
},
|
|
34
|
+
anchor: {
|
|
35
|
+
center: { classes: "items-center" },
|
|
36
|
+
top: { classes: "items-start pt-dialog-top" }
|
|
37
|
+
}
|
|
38
|
+
}, I = {
|
|
39
|
+
size: "md",
|
|
40
|
+
anchor: "center"
|
|
41
|
+
}, L = "fixed inset-0 z-50 bg-overlay backdrop-motion", R = "fixed inset-0 z-50 flex justify-center p-16", z = "relative flex dialog-limits flex-col overflow-hidden rounded-dialog bg-raised text-fg shadow-dialog outline-none dialog-motion", B = /* @__PURE__ */ m(!1);
|
|
42
|
+
function V() {
|
|
43
|
+
let e = b(null), [t, n] = x(!1), r = _(() => {
|
|
44
|
+
let t = e.current;
|
|
45
|
+
t && !t.closest("[data-resizing]") && n(t.scrollHeight - t.scrollTop - t.clientHeight > 1);
|
|
46
|
+
}, []);
|
|
47
|
+
return v(() => {
|
|
48
|
+
let t = e.current;
|
|
49
|
+
if (t) return r(), t.addEventListener("scroll", r, { passive: !0 }), window.addEventListener("resize", r), () => {
|
|
50
|
+
t.removeEventListener("scroll", r), window.removeEventListener("resize", r);
|
|
51
|
+
};
|
|
52
|
+
}, [r]), {
|
|
53
|
+
ref: e,
|
|
54
|
+
under: t,
|
|
55
|
+
check: r
|
|
56
|
+
};
|
|
57
|
+
}
|
|
58
|
+
function H(e, t) {
|
|
59
|
+
let n = b(!1);
|
|
60
|
+
v(() => {
|
|
61
|
+
let r = !n.current;
|
|
62
|
+
n.current = !0;
|
|
63
|
+
let i = document.activeElement;
|
|
64
|
+
if (r || t || !e || i && i !== document.body || e.matches("[data-ending-style], [data-closed]")) return;
|
|
65
|
+
let a = e.querySelector("[data-dialog-frame]");
|
|
66
|
+
a && N(a)?.focus({ preventScroll: !0 });
|
|
67
|
+
});
|
|
68
|
+
}
|
|
69
|
+
var U = /* @__PURE__ */ new Set([
|
|
70
|
+
"text",
|
|
71
|
+
"email",
|
|
72
|
+
"password",
|
|
73
|
+
"tel",
|
|
74
|
+
"url",
|
|
75
|
+
"number"
|
|
76
|
+
]);
|
|
77
|
+
function W(e) {
|
|
78
|
+
if (e.key !== "Enter" || e.altKey || e.nativeEvent.isComposing || e.keyCode === 229) return !1;
|
|
79
|
+
if (e.metaKey || e.ctrlKey) return !0;
|
|
80
|
+
let t = e.target;
|
|
81
|
+
return !e.defaultPrevented && !e.shiftKey && t instanceof HTMLInputElement && U.has(t.type) && t.getAttribute("role") !== "combobox";
|
|
82
|
+
}
|
|
83
|
+
function G(e) {
|
|
84
|
+
let [t, n] = x(null);
|
|
85
|
+
return [t, _((t) => n(e ? t : t?.parentElement ?? null), [e])];
|
|
86
|
+
}
|
|
87
|
+
function K({ title: t, description: n, children: a, footer: o, onSubmit: c, hideClose: l, headerStart: u, size: f = "md", anchor: p = "center", className: m, inline: h, busy: g }) {
|
|
88
|
+
let { ref: _, under: v, check: y } = V(), [b, x] = G(h);
|
|
89
|
+
d(b, y), H(b, h);
|
|
90
|
+
let T = i(), O = h ? "h2" : D.Title, k = /* @__PURE__ */ C(s, {
|
|
91
|
+
icon: E,
|
|
92
|
+
"aria-label": T("dialog.close", "Close"),
|
|
93
|
+
tooltip: !1,
|
|
94
|
+
disabled: !!g
|
|
95
|
+
}), A = l ? null : h ? k : /* @__PURE__ */ C(D.Close, { render: k }), j = h ? "p" : D.Description;
|
|
96
|
+
return /* @__PURE__ */ C(B, {
|
|
97
|
+
value: !!g,
|
|
98
|
+
children: /* @__PURE__ */ w("div", {
|
|
99
|
+
ref: x,
|
|
100
|
+
"data-dialog-frame": "",
|
|
101
|
+
className: e("flex min-h-0 flex-col", h ? "rounded-dialog bg-raised shadow-dialog" : e("flex-1 self-center", p === "top" ? "dialog-limits-top" : "dialog-limits"), F.size[f].classes, m),
|
|
102
|
+
onKeyDown: (e) => {
|
|
103
|
+
c && !g && W(e) && (e.preventDefault(), c());
|
|
104
|
+
},
|
|
105
|
+
children: [
|
|
106
|
+
u === void 0 ? /* @__PURE__ */ w("div", {
|
|
107
|
+
className: "flex items-start gap-12 px-24 pt-20 pb-4",
|
|
108
|
+
children: [/* @__PURE__ */ w("div", {
|
|
109
|
+
className: "flex min-w-0 flex-1 flex-col gap-4 pt-4",
|
|
110
|
+
children: [/* @__PURE__ */ C(O, {
|
|
111
|
+
className: "text-title-sm font-semibold text-fg text-balance",
|
|
112
|
+
children: t
|
|
113
|
+
}), n && /* @__PURE__ */ C(j, {
|
|
114
|
+
className: "text-body text-fg-secondary text-pretty",
|
|
115
|
+
children: n
|
|
116
|
+
})]
|
|
117
|
+
}), A && /* @__PURE__ */ C("span", {
|
|
118
|
+
className: "flex",
|
|
119
|
+
children: A
|
|
120
|
+
})]
|
|
121
|
+
}) : /* @__PURE__ */ w(S, { children: [/* @__PURE__ */ w("div", {
|
|
122
|
+
className: "flex h-32 items-center justify-between px-24 pt-16 box-content",
|
|
123
|
+
children: [/* @__PURE__ */ C("span", {
|
|
124
|
+
className: "flex items-center",
|
|
125
|
+
children: u
|
|
126
|
+
}), A]
|
|
127
|
+
}), /* @__PURE__ */ w("div", {
|
|
128
|
+
className: "flex flex-col gap-4 px-24 pt-8 pb-4",
|
|
129
|
+
children: [/* @__PURE__ */ C(O, {
|
|
130
|
+
className: "text-title-sm font-semibold text-fg text-balance",
|
|
131
|
+
children: t
|
|
132
|
+
}), n && /* @__PURE__ */ C(j, {
|
|
133
|
+
className: "text-body text-fg-secondary text-pretty",
|
|
134
|
+
children: n
|
|
135
|
+
})]
|
|
136
|
+
})] }),
|
|
137
|
+
a && /* @__PURE__ */ C("div", {
|
|
138
|
+
ref: _,
|
|
139
|
+
"data-dialog-body": "",
|
|
140
|
+
className: e("min-h-0 flex-1 overflow-y-auto px-24 pt-16 scrollbar-quiet", o ? "pb-8" : "pb-24"),
|
|
141
|
+
children: /* @__PURE__ */ C(r, { children: a })
|
|
142
|
+
}),
|
|
143
|
+
o && /* @__PURE__ */ C("div", {
|
|
144
|
+
"data-dialog-footer": "",
|
|
145
|
+
className: e("flex shrink-0 flex-wrap items-center justify-end gap-8 px-24 pt-16 pb-20 transition-control", v && "hairline-t"),
|
|
146
|
+
children: o
|
|
147
|
+
})
|
|
148
|
+
]
|
|
149
|
+
})
|
|
150
|
+
});
|
|
151
|
+
}
|
|
152
|
+
function ee() {
|
|
153
|
+
let e = [...document.querySelectorAll("[role=dialog], [role=alertdialog]")].pop(), t = e?.querySelector("[data-dialog-frame]");
|
|
154
|
+
return (t && N(t)) ?? e ?? !0;
|
|
155
|
+
}
|
|
156
|
+
var q = /* @__PURE__ */ h(function(r, i) {
|
|
157
|
+
let { open: a, defaultOpen: o, onOpenChange: s, trigger: c, size: d = "md", anchor: p = "center", inline: m, busy: h, persistent: _ } = r, v = l(a, ee), y = t(), b = g(f), x = u(!m && a);
|
|
158
|
+
return m ? /* @__PURE__ */ C(K, { ...r }) : /* @__PURE__ */ w(D.Root, {
|
|
159
|
+
...a === void 0 ? {} : { open: a },
|
|
160
|
+
...o === void 0 ? {} : { defaultOpen: o },
|
|
161
|
+
onOpenChange: (e, t) => {
|
|
162
|
+
if (!e && h) return t.cancel();
|
|
163
|
+
s?.(e);
|
|
164
|
+
},
|
|
165
|
+
onOpenChangeComplete: x,
|
|
166
|
+
..._ ? { disablePointerDismissal: !0 } : {},
|
|
167
|
+
children: [c && /* @__PURE__ */ C(D.Trigger, { render: c }), /* @__PURE__ */ w(D.Portal, {
|
|
168
|
+
container: y,
|
|
169
|
+
children: [/* @__PURE__ */ C(D.Backdrop, {
|
|
170
|
+
className: L,
|
|
171
|
+
forceRender: b
|
|
172
|
+
}), /* @__PURE__ */ C(D.Viewport, {
|
|
173
|
+
className: e(R, F.anchor[p].classes),
|
|
174
|
+
children: /* @__PURE__ */ C(D.Popup, {
|
|
175
|
+
ref: i,
|
|
176
|
+
initialFocus: v.initialFocus,
|
|
177
|
+
finalFocus: v.finalFocus,
|
|
178
|
+
className: e(z, F.size[d].classes, p === "top" && "dialog-limits-top"),
|
|
179
|
+
children: /* @__PURE__ */ C(n, {
|
|
180
|
+
inset: !1,
|
|
181
|
+
children: /* @__PURE__ */ C(f, {
|
|
182
|
+
value: !1,
|
|
183
|
+
children: /* @__PURE__ */ C(K, { ...r })
|
|
184
|
+
})
|
|
185
|
+
})
|
|
186
|
+
})
|
|
187
|
+
})]
|
|
188
|
+
})]
|
|
189
|
+
});
|
|
190
|
+
});
|
|
191
|
+
process.env.NODE_ENV !== "production" && (q.displayName = "Dialog");
|
|
192
|
+
function J({ children: e }) {
|
|
193
|
+
let t = g(B);
|
|
194
|
+
return /* @__PURE__ */ C(D.Close, { render: t ? p(e, { disabled: !0 }) : e });
|
|
195
|
+
}
|
|
196
|
+
process.env.NODE_ENV !== "production" && (J.displayName = "Dialog.Close");
|
|
197
|
+
var Y = /* @__PURE__ */ Object.assign(q, { Close: J }), te = { tone: {
|
|
198
|
+
danger: { classes: "bg-danger-tint text-danger-text" },
|
|
199
|
+
warning: { classes: "bg-warning-tint text-warning-text" },
|
|
200
|
+
info: { classes: "bg-info-tint text-info-text" }
|
|
201
|
+
} }, ne = { tone: "danger" };
|
|
202
|
+
function X({ title: t, description: n, confirmLabel: r, cancelLabel: a, onConfirm: s, tone: l = "danger", confirmText: u, loading: f, inline: p, close: m, busy: h, setBusy: g }) {
|
|
203
|
+
let [_, v] = x(""), y = b(!1), S = i(), [T, E] = G(p);
|
|
204
|
+
d(T);
|
|
205
|
+
let D = a ?? S("alertDialog.cancel", "Cancel"), [k, A = ""] = S("alertDialog.typeToConfirm", "Type {text} to confirm").split("{text}"), j = p ? "h2" : O.Title, M = p ? "p" : O.Description, N = !u || _ === u, P = async () => {
|
|
206
|
+
if (!N || f || y.current) return;
|
|
207
|
+
let e = s();
|
|
208
|
+
if (!(e instanceof Promise)) return m();
|
|
209
|
+
y.current = !0, g(!0);
|
|
210
|
+
let t = await e.then(() => !0, () => !1);
|
|
211
|
+
y.current = !1, g(!1), t && m();
|
|
212
|
+
};
|
|
213
|
+
return /* @__PURE__ */ w("div", {
|
|
214
|
+
ref: E,
|
|
215
|
+
className: e("flex w-440 flex-col gap-20 p-24", p ? "rounded-dialog bg-raised shadow-dialog" : "self-center dialog-limits"),
|
|
216
|
+
children: [
|
|
217
|
+
/* @__PURE__ */ w("div", {
|
|
218
|
+
className: "flex flex-col gap-6",
|
|
219
|
+
children: [/* @__PURE__ */ C(j, {
|
|
220
|
+
className: "text-title-sm font-semibold text-fg text-balance",
|
|
221
|
+
children: t
|
|
222
|
+
}), /* @__PURE__ */ C(M, {
|
|
223
|
+
className: "text-body text-fg-secondary text-pretty",
|
|
224
|
+
children: n
|
|
225
|
+
})]
|
|
226
|
+
}),
|
|
227
|
+
u && /* @__PURE__ */ C(c, {
|
|
228
|
+
label: /* @__PURE__ */ w("span", {
|
|
229
|
+
className: "font-regular text-fg-secondary",
|
|
230
|
+
children: [
|
|
231
|
+
k,
|
|
232
|
+
/* @__PURE__ */ C("span", {
|
|
233
|
+
className: "mono font-medium text-fg",
|
|
234
|
+
children: u
|
|
235
|
+
}),
|
|
236
|
+
A
|
|
237
|
+
]
|
|
238
|
+
}),
|
|
239
|
+
value: _,
|
|
240
|
+
onChange: (e) => v(e.target.value),
|
|
241
|
+
autoComplete: "off",
|
|
242
|
+
spellCheck: !1,
|
|
243
|
+
onKeyDown: (e) => e.key === "Enter" && P()
|
|
244
|
+
}),
|
|
245
|
+
/* @__PURE__ */ w("div", {
|
|
246
|
+
className: "flex flex-wrap justify-end gap-8",
|
|
247
|
+
children: [p ? /* @__PURE__ */ C(o, { children: D }) : /* @__PURE__ */ C(O.Close, { render: /* @__PURE__ */ C(o, {
|
|
248
|
+
disabled: h || !!f,
|
|
249
|
+
children: D
|
|
250
|
+
}) }), /* @__PURE__ */ C(o, {
|
|
251
|
+
variant: l === "danger" ? "danger" : "primary",
|
|
252
|
+
onClick: P,
|
|
253
|
+
disabled: !N,
|
|
254
|
+
loading: h || f,
|
|
255
|
+
children: r
|
|
256
|
+
})]
|
|
257
|
+
})
|
|
258
|
+
]
|
|
259
|
+
});
|
|
260
|
+
}
|
|
261
|
+
function Z(r) {
|
|
262
|
+
let { open: i, defaultOpen: a, onOpenChange: o, trigger: s, inline: c } = r, [d, p] = x(a ?? !1), m = i ?? d, h = (e) => {
|
|
263
|
+
i === void 0 && p(e), o?.(e);
|
|
264
|
+
}, [_, v] = x(!1), y = l(m), b = t(), S = g(f), T = u(!c && m);
|
|
265
|
+
return c ? /* @__PURE__ */ C(X, {
|
|
266
|
+
...r,
|
|
267
|
+
close: () => void 0,
|
|
268
|
+
busy: _,
|
|
269
|
+
setBusy: v
|
|
270
|
+
}) : /* @__PURE__ */ w(O.Root, {
|
|
271
|
+
open: m,
|
|
272
|
+
onOpenChange: (e, t) => {
|
|
273
|
+
if (!e && (_ || r.loading)) return t.cancel();
|
|
274
|
+
h(e);
|
|
275
|
+
},
|
|
276
|
+
onOpenChangeComplete: T,
|
|
277
|
+
children: [s && /* @__PURE__ */ C(O.Trigger, { render: s }), /* @__PURE__ */ w(O.Portal, {
|
|
278
|
+
container: b,
|
|
279
|
+
children: [/* @__PURE__ */ C(O.Backdrop, {
|
|
280
|
+
className: L,
|
|
281
|
+
forceRender: S
|
|
282
|
+
}), /* @__PURE__ */ C(O.Viewport, {
|
|
283
|
+
className: e(R, F.anchor.center.classes),
|
|
284
|
+
children: /* @__PURE__ */ C(O.Popup, {
|
|
285
|
+
initialFocus: y.initialFocus,
|
|
286
|
+
finalFocus: y.finalFocus,
|
|
287
|
+
className: e(z, "w-440"),
|
|
288
|
+
children: /* @__PURE__ */ C(n, {
|
|
289
|
+
inset: !1,
|
|
290
|
+
children: /* @__PURE__ */ C(X, {
|
|
291
|
+
...r,
|
|
292
|
+
close: () => h(!1),
|
|
293
|
+
busy: _,
|
|
294
|
+
setBusy: v
|
|
295
|
+
})
|
|
296
|
+
})
|
|
297
|
+
})
|
|
298
|
+
})]
|
|
299
|
+
})]
|
|
300
|
+
});
|
|
301
|
+
}
|
|
302
|
+
process.env.NODE_ENV !== "production" && (Z.displayName = "AlertDialog");
|
|
303
|
+
var re = F, ie = I, Q = (e) => e?.closest("[data-dialog-body]") ?? null;
|
|
304
|
+
function $({ layers: e, layer: t, onLayerChange: n, ...r }) {
|
|
305
|
+
let [a, o] = x(0), c = i(), l = t ?? a, u = l > 0 && l < e.length ? l : 0, d = b([]), f = b([]), p = b([]), m = b(u), h = b(u);
|
|
306
|
+
m.current !== u && (p.current[m.current] = Q(d.current[m.current])?.scrollTop ?? 0, m.current = u), y(() => {
|
|
307
|
+
let e = h.current;
|
|
308
|
+
if (h.current = u, e === u) return;
|
|
309
|
+
let t = u < e;
|
|
310
|
+
t || (f.current[u] = null), f.current.length = u + 1;
|
|
311
|
+
let n = d.current[u], r = Q(n);
|
|
312
|
+
r && (r.scrollTop = t ? p.current[u] ?? 0 : 0), P(n, t ? f.current[u] : null);
|
|
313
|
+
}, [u]);
|
|
314
|
+
let g = (e) => {
|
|
315
|
+
r.busy || (t === void 0 && o(e), n?.(e));
|
|
316
|
+
}, _ = e.slice(0, u + 1), v = _[u];
|
|
317
|
+
if (!v) return null;
|
|
318
|
+
let S = (e) => (t) => {
|
|
319
|
+
t.target instanceof HTMLElement && (f.current[e] = t.target);
|
|
320
|
+
};
|
|
321
|
+
return /* @__PURE__ */ C(Y, {
|
|
322
|
+
...r,
|
|
323
|
+
title: v.title,
|
|
324
|
+
description: v.description,
|
|
325
|
+
footer: v.footer ? _.map((e, t) => e.footer ? /* @__PURE__ */ C("div", {
|
|
326
|
+
hidden: t !== u,
|
|
327
|
+
className: "contents",
|
|
328
|
+
onFocus: S(t),
|
|
329
|
+
children: e.footer
|
|
330
|
+
}, t) : null) : void 0,
|
|
331
|
+
headerStart: u > 0 ? /* @__PURE__ */ C(s, {
|
|
332
|
+
icon: T,
|
|
333
|
+
"aria-label": c("dialog.back", "Back"),
|
|
334
|
+
onClick: () => g(u - 1),
|
|
335
|
+
disabled: !!r.busy,
|
|
336
|
+
className: "animate-layer-in"
|
|
337
|
+
}, "back") : null,
|
|
338
|
+
children: _.map((e, t) => /* @__PURE__ */ C("div", {
|
|
339
|
+
ref: (e) => {
|
|
340
|
+
d.current[t] = e;
|
|
341
|
+
},
|
|
342
|
+
hidden: t !== u,
|
|
343
|
+
className: "animate-layer-in",
|
|
344
|
+
onFocus: S(t),
|
|
345
|
+
children: e.content
|
|
346
|
+
}, t))
|
|
347
|
+
});
|
|
348
|
+
}
|
|
349
|
+
process.env.NODE_ENV !== "production" && ($.displayName = "LayerDialog");
|
|
350
|
+
//#endregion
|
|
351
|
+
export { I as a, re as c, te as i, $ as l, Y as n, F as o, ne as r, ie as s, Z as t, P as u };
|
|
352
|
+
|
|
353
|
+
//# sourceMappingURL=dialog-truWH0qe.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"dialog-truWH0qe.js","names":["BaseDialog","__icon_Cancel01Icon","_Fragment","Dialog","BaseAlertDialog","AlertDialog","__icon_ArrowLeft01Icon","cn","usePortalContainer","GutterContent","KAESO_BUTTON_VARIANTS","Button","IconButton","Input","useRestoreFocus","useScopedDialog","useResizeMotion","OverNonModalSheet","Fragment$1","DIALOG_FIELD","FOCUSABLE","usable","el","firstUsable","scope","selector","initialDialogControl","content","frame","footer","actions","dangerSecondary","safe","a","danger","primary","focusDialogSection","section","previous","KAESO_DIALOG_VARIANTS","KAESO_DIALOG_DEFAULT_VARIANTS","BACKDROP","DIALOG_VIEWPORT","DIALOG_POPUP","DialogBusy","useScrolledUnder","ref","useRef","under","setUnder","useState","check","useCallback","useEffect","useKeepFocus","rendered","first","active","inline","box","SINGLE_LINE","submitsOnEnter","target","useBox","setBox","DialogFrame","boxRef","t","useUiText","Title","Dialog","closeButton","Cancel01Icon","busy","close","hideClose","Description","anchor","size","className","onSubmit","headerStart","title","description","children","focusFirstControl","open","Root","props","focus","container","overSheet","use","settled","defaultOpen","o","details","persistent","trigger","InsetContent","Close","cloneElement","Dialog$1","KAESO_ALERT_DIALOG_VARIANTS","KAESO_ALERT_DIALOG_DEFAULT_VARIANTS","AlertFrame","cancelProp","typed","setTyped","pending","cancelLabel","typeBefore","typeAfter","AlertDialog","ok","confirmText","confirm","loading","r","onConfirm","setBusy","done","tone","confirmLabel","AlertDialog$1","inner","setInner","isOpen","setOpen","onOpenChange","KAESO_LAYER_DIALOG_VARIANTS","KAESO_LAYER_DIALOG_DEFAULT_VARIANTS","bodyOf","LayerDialog","wanted","layer","index","layers","sections","focused","tops","left","shown","useLayoutEffect","from","back","body","go","i","onLayerChange","stack","current","remember","e","l","ArrowLeft01Icon"],"sources":["../../src/components/dialog/focus.ts","../../src/components/dialog/dialog.tsx"],"sourcesContent":["import { KAESO_BUTTON_VARIANTS } from \"../button/button.js\";\n\nconst DIALOG_FIELD =\n 'input:not([type=hidden]):not([tabindex=\"-1\"]):not([aria-hidden=\"true\"]), textarea, select, [role=combobox]:not([tabindex=\"-1\"]), [role=radio][tabindex=\"0\"], [role=checkbox]:not([tabindex=\"-1\"]), [role=switch]:not([tabindex=\"-1\"]), [role=listbox]:not([tabindex=\"-1\"]), [role=grid] [data-index][tabindex=\"0\"], button[data-picker]';\nconst FOCUSABLE = 'a[href], button, input:not([type=hidden]), select, textarea, [tabindex]:not([tabindex=\"-1\"])';\n\nconst usable = (el: HTMLElement) => !el.closest(\"[hidden], [inert]\") && !el.matches(\":disabled, [aria-disabled=true]\");\nconst firstUsable = (scope: ParentNode, selector: string) => [...scope.querySelectorAll<HTMLElement>(selector)].find(usable) ?? null;\n\nexport function initialDialogControl(frame: HTMLElement, scope?: HTMLElement | undefined): HTMLElement | null {\n const content = scope ?? frame.querySelector<HTMLElement>(\"[data-dialog-body]\");\n const footer = frame.querySelector<HTMLElement>(\"[data-dialog-footer]\");\n const actions = footer ? [...footer.querySelectorAll<HTMLElement>(\"button, a[href]\")].filter(usable) : [];\n const { primary, danger, \"danger-secondary\": dangerSecondary } = KAESO_BUTTON_VARIANTS.variant;\n const safe = actions.filter((a) => !a.classList.contains(danger.classes) && !a.classList.contains(dangerSecondary.classes));\n return (\n (content && (firstUsable(content, \"[data-autofocus]\") ?? firstUsable(content, DIALOG_FIELD))) ??\n safe.find((a) => a.classList.contains(primary.classes)) ??\n safe[0] ??\n (content && firstUsable(content, FOCUSABLE)) ??\n firstUsable(frame, FOCUSABLE)\n );\n}\n\nexport function focusDialogSection(section: HTMLElement | null | undefined, previous?: HTMLElement | null | undefined) {\n const frame = section?.closest<HTMLElement>(\"[data-dialog-frame]\");\n if (!section || !frame || frame.closest(\"[data-closed]\")) return;\n const back = previous?.isConnected && frame.contains(previous) && usable(previous) ? previous : null;\n (back ?? initialDialogControl(frame, section))?.focus({ preventScroll: true });\n}\n","import { GutterContent, InsetContent } from \"../../utils/inset.js\";\nimport { usePortalContainer } from \"../../utils/portal-context.js\";\nimport {\n cloneElement,\n createContext,\n forwardRef,\n use,\n useCallback,\n useEffect,\n useLayoutEffect,\n useRef,\n useState,\n type FocusEvent,\n type KeyboardEvent,\n type ReactElement,\n type ReactNode,\n} from \"react\";\nimport { Dialog as BaseDialog } from \"@base-ui/react/dialog\";\nimport { AlertDialog as BaseAlertDialog } from \"@base-ui/react/alert-dialog\";\nimport { cn } from \"../../utils/cn.js\";\nimport { useRestoreFocus } from \"../../utils/restore-focus.js\";\nimport { useScopedDialog } from \"../../utils/dialog-scope.js\";\nimport { OverNonModalSheet } from \"../../utils/over-sheet.js\";\nimport { Cancel01Icon as __icon_Cancel01Icon, ArrowLeft01Icon as __icon_ArrowLeft01Icon } from \"@hugeicons/core-free-icons\";\nimport { useUiText } from \"../../i18n/context.js\";\nimport { IconButton } from \"../icon-button/icon-button.js\";\nimport { Button } from \"../button/button.js\";\nimport { Input } from \"../input/input.js\";\nimport { focusDialogSection, initialDialogControl } from \"./focus.js\";\nimport { useResizeMotion } from \"../../utils/resize-motion.js\";\n\nexport const KAESO_DIALOG_VARIANTS = {\n size: {\n sm: { classes: \"w-440\" },\n md: { classes: \"w-560\" },\n lg: { classes: \"w-720\" },\n },\n anchor: {\n center: { classes: \"items-center\" },\n top: { classes: \"items-start pt-dialog-top\" },\n },\n} as const;\nexport const KAESO_DIALOG_DEFAULT_VARIANTS = { size: \"md\", anchor: \"center\" } as const;\n\nconst BACKDROP = \"fixed inset-0 z-50 bg-overlay backdrop-motion\";\nconst DIALOG_VIEWPORT = \"fixed inset-0 z-50 flex justify-center p-16\";\nconst DIALOG_POPUP = \"relative flex dialog-limits flex-col overflow-hidden rounded-dialog bg-raised text-fg shadow-dialog outline-none dialog-motion\";\n\nconst DialogBusy = /* @__PURE__ */ createContext(false);\n\nfunction useScrolledUnder<T extends HTMLElement>() {\n const ref = useRef<T | null>(null);\n const [under, setUnder] = useState(false);\n const check = useCallback(() => {\n const el = ref.current;\n if (el && !el.closest(\"[data-resizing]\")) setUnder(el.scrollHeight - el.scrollTop - el.clientHeight > 1);\n }, []);\n useEffect(() => {\n const el = ref.current;\n if (!el) return;\n check();\n el.addEventListener(\"scroll\", check, { passive: true });\n window.addEventListener(\"resize\", check);\n return () => {\n el.removeEventListener(\"scroll\", check);\n window.removeEventListener(\"resize\", check);\n };\n }, [check]);\n return { ref, under, check };\n}\n\nfunction useKeepFocus(box: HTMLElement | null, inline: boolean | undefined) {\n const rendered = useRef(false);\n useEffect(() => {\n const first = !rendered.current;\n rendered.current = true;\n const active = document.activeElement;\n if (first || inline || !box || (active && active !== document.body) || box.matches(\"[data-ending-style], [data-closed]\")) return;\n const frame = box.querySelector<HTMLElement>(\"[data-dialog-frame]\");\n if (frame) initialDialogControl(frame)?.focus({ preventScroll: true });\n });\n}\n\nconst SINGLE_LINE = new Set([\"text\", \"email\", \"password\", \"tel\", \"url\", \"number\"]);\n\nfunction submitsOnEnter(e: KeyboardEvent): boolean {\n // Safari ends composition before the Enter that confirms it, leaving only keyCode 229: https://bugs.webkit.org/show_bug.cgi?id=165004\n if (e.key !== \"Enter\" || e.altKey || e.nativeEvent.isComposing || e.keyCode === 229) return false;\n if (e.metaKey || e.ctrlKey) return true;\n const target = e.target as HTMLElement;\n return !e.defaultPrevented && !e.shiftKey && target instanceof HTMLInputElement && SINGLE_LINE.has(target.type) && target.getAttribute(\"role\") !== \"combobox\";\n}\n\nfunction useBox(inline: boolean | undefined) {\n const [box, setBox] = useState<HTMLElement | null>(null);\n const ref = useCallback((el: HTMLElement | null) => setBox(inline ? el : (el?.parentElement ?? null)), [inline]);\n return [box, ref] as const;\n}\n\nexport interface DialogProps {\n open?: boolean | undefined;\n defaultOpen?: boolean | undefined;\n onOpenChange?: ((open: boolean) => void) | undefined;\n trigger?: ReactElement | undefined;\n title: ReactNode;\n description?: ReactNode | undefined;\n busy?: boolean | undefined;\n size?: keyof typeof KAESO_DIALOG_VARIANTS.size | undefined;\n anchor?: keyof typeof KAESO_DIALOG_VARIANTS.anchor | undefined;\n children?: ReactNode | undefined;\n footer?: ReactNode | undefined;\n onSubmit?: (() => void) | undefined;\n hideClose?: boolean | undefined;\n headerStart?: ReactNode | undefined;\n className?: string | undefined;\n inline?: boolean | undefined;\n persistent?: boolean | undefined;\n}\n\nfunction DialogFrame({\n title,\n description,\n children,\n footer,\n onSubmit,\n hideClose,\n headerStart,\n size = \"md\",\n anchor = \"center\",\n className,\n inline,\n busy,\n}: DialogProps) {\n const { ref, under, check } = useScrolledUnder<HTMLDivElement>();\n const [box, boxRef] = useBox(inline);\n useResizeMotion(box, check);\n useKeepFocus(box, inline);\n const t = useUiText();\n const Title = inline ? \"h2\" : BaseDialog.Title;\n const closeButton = <IconButton icon={__icon_Cancel01Icon} aria-label={t(\"dialog.close\", \"Close\")} tooltip={false} disabled={!!busy} />;\n const close = hideClose ? null : inline ? closeButton : <BaseDialog.Close render={closeButton} />;\n const Description = inline ? \"p\" : BaseDialog.Description;\n return (\n <DialogBusy value={!!busy}>\n <div\n ref={boxRef}\n data-dialog-frame=\"\"\n className={cn(\n \"flex min-h-0 flex-col\",\n inline ? \"rounded-dialog bg-raised shadow-dialog\" : cn(\"flex-1 self-center\", anchor === \"top\" ? \"dialog-limits-top\" : \"dialog-limits\"),\n KAESO_DIALOG_VARIANTS.size[size].classes,\n className,\n )}\n onKeyDown={(e: KeyboardEvent) => {\n if (onSubmit && !busy && submitsOnEnter(e)) {\n e.preventDefault();\n onSubmit();\n }\n }}\n >\n {headerStart !== undefined ? (\n <>\n <div className=\"flex h-32 items-center justify-between px-24 pt-16 box-content\">\n <span className=\"flex items-center\">{headerStart}</span>\n {close}\n </div>\n <div className=\"flex flex-col gap-4 px-24 pt-8 pb-4\">\n <Title className=\"text-title-sm font-semibold text-fg text-balance\">{title}</Title>\n {description && <Description className=\"text-body text-fg-secondary text-pretty\">{description}</Description>}\n </div>\n </>\n ) : (\n <div className=\"flex items-start gap-12 px-24 pt-20 pb-4\">\n <div className=\"flex min-w-0 flex-1 flex-col gap-4 pt-4\">\n <Title className=\"text-title-sm font-semibold text-fg text-balance\">{title}</Title>\n {description && <Description className=\"text-body text-fg-secondary text-pretty\">{description}</Description>}\n </div>\n {close && <span className=\"flex\">{close}</span>}\n </div>\n )}\n {children && (\n <div ref={ref} data-dialog-body=\"\" className={cn(\"min-h-0 flex-1 overflow-y-auto px-24 pt-16 scrollbar-quiet\", footer ? \"pb-8\" : \"pb-24\")}>\n <GutterContent>{children}</GutterContent>\n </div>\n )}\n {footer && (\n <div\n data-dialog-footer=\"\"\n className={cn(\"flex shrink-0 flex-wrap items-center justify-end gap-8 px-24 pt-16 pb-20 transition-control\", under && \"hairline-t\")}\n >\n {footer}\n </div>\n )}\n </div>\n </DialogBusy>\n );\n}\n\nfunction focusFirstControl(): HTMLElement | true {\n const open = [...document.querySelectorAll<HTMLElement>(\"[role=dialog], [role=alertdialog]\")].pop();\n const frame = open?.querySelector<HTMLElement>(\"[data-dialog-frame]\");\n return (frame && initialDialogControl(frame)) ?? open ?? true;\n}\n\nconst Root = /* @__PURE__ */ forwardRef<HTMLDivElement, DialogProps>(function Dialog(props, ref) {\n const { open, defaultOpen, onOpenChange, trigger, size = \"md\", anchor = \"center\", inline, busy, persistent } = props;\n const focus = useRestoreFocus(open, focusFirstControl);\n const container = usePortalContainer();\n const overSheet = use(OverNonModalSheet);\n const settled = useScopedDialog(inline ? false : open);\n if (inline) return <DialogFrame {...props} />;\n return (\n <BaseDialog.Root\n {...(open !== undefined ? { open } : {})}\n {...(defaultOpen !== undefined ? { defaultOpen } : {})}\n onOpenChange={(o: boolean, details: BaseDialog.Root.ChangeEventDetails) => {\n if (!o && busy) return details.cancel();\n onOpenChange?.(o);\n }}\n onOpenChangeComplete={settled}\n {...(persistent ? { disablePointerDismissal: true } : {})}\n >\n {trigger && <BaseDialog.Trigger render={trigger} />}\n <BaseDialog.Portal container={container}>\n <BaseDialog.Backdrop className={BACKDROP} forceRender={overSheet} />\n <BaseDialog.Viewport className={cn(DIALOG_VIEWPORT, KAESO_DIALOG_VARIANTS.anchor[anchor].classes)}>\n <BaseDialog.Popup\n ref={ref}\n initialFocus={focus.initialFocus}\n finalFocus={focus.finalFocus}\n className={cn(DIALOG_POPUP, KAESO_DIALOG_VARIANTS.size[size].classes, anchor === \"top\" && \"dialog-limits-top\")}\n >\n <InsetContent inset={false}>\n <OverNonModalSheet value={false}>\n <DialogFrame {...props} />\n </OverNonModalSheet>\n </InsetContent>\n </BaseDialog.Popup>\n </BaseDialog.Viewport>\n </BaseDialog.Portal>\n </BaseDialog.Root>\n );\n});\nif (process.env.NODE_ENV !== \"production\") Root.displayName = \"Dialog\";\n\nfunction Close({ children }: { children: ReactElement<{ disabled?: boolean | undefined }> }) {\n const busy = use(DialogBusy);\n return <BaseDialog.Close render={busy ? cloneElement(children, { disabled: true }) : children} />;\n}\nif (process.env.NODE_ENV !== \"production\") Close.displayName = \"Dialog.Close\";\n\nexport const Dialog = /* @__PURE__ */ Object.assign(Root, { Close });\n\nexport const KAESO_ALERT_DIALOG_VARIANTS = {\n tone: {\n danger: { classes: \"bg-danger-tint text-danger-text\" },\n warning: { classes: \"bg-warning-tint text-warning-text\" },\n info: { classes: \"bg-info-tint text-info-text\" },\n },\n} as const;\nexport const KAESO_ALERT_DIALOG_DEFAULT_VARIANTS = { tone: \"danger\" } as const;\n\nexport interface AlertDialogProps {\n open?: boolean | undefined;\n defaultOpen?: boolean | undefined;\n onOpenChange?: ((open: boolean) => void) | undefined;\n trigger?: ReactElement | undefined;\n title: ReactNode;\n description: ReactNode;\n confirmLabel: string;\n cancelLabel?: string | undefined;\n onConfirm: () => void | Promise<unknown>;\n tone?: keyof typeof KAESO_ALERT_DIALOG_VARIANTS.tone | undefined;\n confirmText?: string | undefined;\n loading?: boolean | undefined;\n inline?: boolean | undefined;\n}\n\nfunction AlertFrame({\n title,\n description,\n confirmLabel,\n cancelLabel: cancelProp,\n onConfirm,\n tone = \"danger\",\n confirmText,\n loading,\n inline,\n close,\n busy,\n setBusy,\n}: AlertDialogProps & { close: () => void; busy: boolean; setBusy: (busy: boolean) => void }) {\n const [typed, setTyped] = useState(\"\");\n const pending = useRef(false);\n const t = useUiText();\n const [box, boxRef] = useBox(inline);\n useResizeMotion(box);\n const cancelLabel = cancelProp ?? t(\"alertDialog.cancel\", \"Cancel\");\n const [typeBefore, typeAfter = \"\"] = t(\"alertDialog.typeToConfirm\", \"Type {text} to confirm\").split(\"{text}\");\n const Title = inline ? \"h2\" : BaseAlertDialog.Title;\n const Description = inline ? \"p\" : BaseAlertDialog.Description;\n const ok = !confirmText || typed === confirmText;\n const confirm = async () => {\n if (!ok || loading || pending.current) return;\n const r = onConfirm();\n if (!(r instanceof Promise)) return close();\n pending.current = true;\n setBusy(true);\n const done = await r.then(\n () => true,\n () => false,\n );\n pending.current = false;\n setBusy(false);\n if (done) close();\n };\n return (\n <div ref={boxRef} className={cn(\"flex w-440 flex-col gap-20 p-24\", inline ? \"rounded-dialog bg-raised shadow-dialog\" : \"self-center dialog-limits\")}>\n <div className=\"flex flex-col gap-6\">\n <Title className=\"text-title-sm font-semibold text-fg text-balance\">{title}</Title>\n <Description className=\"text-body text-fg-secondary text-pretty\">{description}</Description>\n </div>\n {confirmText && (\n <Input\n label={\n <span className=\"font-regular text-fg-secondary\">\n {typeBefore}\n <span className=\"mono font-medium text-fg\">{confirmText}</span>\n {typeAfter}\n </span>\n }\n value={typed}\n onChange={(e) => setTyped(e.target.value)}\n autoComplete=\"off\"\n spellCheck={false}\n onKeyDown={(e) => e.key === \"Enter\" && confirm()}\n />\n )}\n <div className=\"flex flex-wrap justify-end gap-8\">\n {inline ? <Button>{cancelLabel}</Button> : <BaseAlertDialog.Close render={<Button disabled={busy || !!loading}>{cancelLabel}</Button>} />}\n <Button variant={tone === \"danger\" ? \"danger\" : \"primary\"} onClick={confirm} disabled={!ok} loading={busy || loading}>\n {confirmLabel}\n </Button>\n </div>\n </div>\n );\n}\n\nexport function AlertDialog(props: AlertDialogProps) {\n const { open, defaultOpen, onOpenChange, trigger, inline } = props;\n const [inner, setInner] = useState(defaultOpen ?? false);\n const isOpen = open ?? inner;\n const setOpen = (o: boolean) => {\n if (open === undefined) setInner(o);\n onOpenChange?.(o);\n };\n const [busy, setBusy] = useState(false);\n const focus = useRestoreFocus(isOpen);\n const container = usePortalContainer();\n const overSheet = use(OverNonModalSheet);\n const settled = useScopedDialog(inline ? false : isOpen);\n if (inline) return <AlertFrame {...props} close={() => undefined} busy={busy} setBusy={setBusy} />;\n return (\n <BaseAlertDialog.Root\n open={isOpen}\n onOpenChange={(o: boolean, details: BaseAlertDialog.Root.ChangeEventDetails) => {\n if (!o && (busy || props.loading)) return details.cancel();\n setOpen(o);\n }}\n onOpenChangeComplete={settled}\n >\n {trigger && <BaseAlertDialog.Trigger render={trigger} />}\n <BaseAlertDialog.Portal container={container}>\n <BaseAlertDialog.Backdrop className={BACKDROP} forceRender={overSheet} />\n <BaseAlertDialog.Viewport className={cn(DIALOG_VIEWPORT, KAESO_DIALOG_VARIANTS.anchor.center.classes)}>\n <BaseAlertDialog.Popup initialFocus={focus.initialFocus} finalFocus={focus.finalFocus} className={cn(DIALOG_POPUP, \"w-440\")}>\n <InsetContent inset={false}>\n <AlertFrame {...props} close={() => setOpen(false)} busy={busy} setBusy={setBusy} />\n </InsetContent>\n </BaseAlertDialog.Popup>\n </BaseAlertDialog.Viewport>\n </BaseAlertDialog.Portal>\n </BaseAlertDialog.Root>\n );\n}\nif (process.env.NODE_ENV !== \"production\") AlertDialog.displayName = \"AlertDialog\";\n\nexport const KAESO_LAYER_DIALOG_VARIANTS = KAESO_DIALOG_VARIANTS;\nexport const KAESO_LAYER_DIALOG_DEFAULT_VARIANTS = KAESO_DIALOG_DEFAULT_VARIANTS;\n\nexport interface DialogLayer {\n title: ReactNode;\n description?: ReactNode | undefined;\n content: ReactNode;\n footer?: ReactNode | undefined;\n}\n\nexport interface LayerDialogProps extends Omit<DialogProps, \"title\" | \"description\" | \"children\" | \"footer\" | \"headerStart\"> {\n layers: DialogLayer[];\n layer?: number | undefined;\n onLayerChange?: ((layer: number) => void) | undefined;\n}\n\nconst bodyOf = (el: HTMLElement | null | undefined) => el?.closest<HTMLElement>(\"[data-dialog-body]\") ?? null;\n\nexport function LayerDialog({ layers, layer, onLayerChange, ...props }: LayerDialogProps) {\n const [inner, setInner] = useState(0);\n const t = useUiText();\n const wanted = layer ?? inner;\n const index = wanted > 0 && wanted < layers.length ? wanted : 0;\n const sections = useRef<(HTMLDivElement | null)[]>([]);\n const focused = useRef<(HTMLElement | null)[]>([]);\n const tops = useRef<number[]>([]);\n const left = useRef(index);\n const shown = useRef(index);\n if (left.current !== index) {\n tops.current[left.current] = bodyOf(sections.current[left.current])?.scrollTop ?? 0;\n left.current = index;\n }\n useLayoutEffect(() => {\n const from = shown.current;\n shown.current = index;\n if (from === index) return;\n const back = index < from;\n if (!back) focused.current[index] = null;\n focused.current.length = index + 1;\n const section = sections.current[index];\n const body = bodyOf(section);\n if (body) body.scrollTop = back ? (tops.current[index] ?? 0) : 0;\n focusDialogSection(section, back ? focused.current[index] : null);\n }, [index]);\n const go = (i: number) => {\n if (props.busy) return;\n if (layer === undefined) setInner(i);\n onLayerChange?.(i);\n };\n const stack = layers.slice(0, index + 1);\n const current = stack[index];\n if (!current) return null;\n const remember = (i: number) => (e: FocusEvent<HTMLElement>) => {\n if (e.target instanceof HTMLElement) focused.current[i] = e.target;\n };\n return (\n <Dialog\n {...props}\n title={current.title}\n description={current.description}\n footer={\n current.footer\n ? stack.map((l, i) =>\n l.footer ? (\n <div key={i} hidden={i !== index} className=\"contents\" onFocus={remember(i)}>\n {l.footer}\n </div>\n ) : null,\n )\n : undefined\n }\n headerStart={\n index > 0 ? (\n <IconButton\n key=\"back\"\n icon={__icon_ArrowLeft01Icon}\n aria-label={t(\"dialog.back\", \"Back\")}\n onClick={() => go(index - 1)}\n disabled={!!props.busy}\n className=\"animate-layer-in\"\n />\n ) : null\n }\n >\n {stack.map((l, i) => (\n <div\n key={i}\n ref={(el) => {\n sections.current[i] = el;\n }}\n hidden={i !== index}\n className=\"animate-layer-in\"\n onFocus={remember(i)}\n >\n {l.content}\n </div>\n ))}\n </Dialog>\n );\n}\nif (process.env.NODE_ENV !== \"production\") LayerDialog.displayName = \"LayerDialog\";\n"],"mappings":";;;;;;;;;;;;;;;;AAEA,IAAMmB,IACJ,2VACIC,IAAY,kGAEZC,KAAU,MAAoB,CAACC,EAAG,QAAQ,mBAAmB,KAAK,CAACA,EAAG,QAAQ,iCAAiC,GAC/GC,KAAe,GAAmB,MAAqB,CAAC,GAAGC,EAAM,iBAA8BC,CAAQ,CAAC,CAAC,CAAC,KAAKJ,CAAM,KAAK;AAEhI,SAAgBK,EAAqB,GAAoB,GAAqD;CAC5G,IAAMC,IAAUH,KAASI,EAAM,cAA2B,oBAAoB,GACxEC,IAASD,EAAM,cAA2B,sBAAsB,GAChEE,IAAUD,IAAS,CAAC,GAAGA,EAAO,iBAA8B,iBAAiB,CAAC,CAAC,CAAC,OAAOR,CAAM,IAAI,CAAC,GAClG,EAAE,YAAS,WAAQ,oBAAoBU,MAAoBrB,EAAsB,SACjFsB,IAAOF,EAAQ,QAAQ,MAAM,CAACG,EAAE,UAAU,SAASC,EAAO,OAAO,KAAK,CAACD,EAAE,UAAU,SAASF,EAAgB,OAAO,CAAC;CAC1H,QACGJ,MAAYJ,EAAYI,GAAS,kBAAkB,KAAKJ,EAAYI,GAASR,CAAY,OAC1Fa,EAAK,MAAM,MAAMC,EAAE,UAAU,SAASE,EAAQ,OAAO,CAAC,KACtDH,EAAK,OACJL,KAAWJ,EAAYI,GAASP,CAAS,MAC1CG,EAAYK,GAAOR,CAAS;AAEhC;AAEA,SAAgBgB,EAAmB,GAAyC,GAA2C;CACrH,IAAMR,IAAQS,GAAS,QAAqB,qBAAqB;CACjE,AAAKA,KAAYT,KAAS,GAAM,QAAQ,eAAe,OAC1CU,GAAU,eAAeV,EAAM,SAASU,CAAQ,KAAKjB,EAAOiB,CAAQ,IAAIA,IAAW,SACvFZ,EAAqBE,GAAOS,CAAO,EAAA,EAAI,MAAM,EAAE,eAAe,GAAK,CAAC;AAC/E;;;ACEA,IAAaE,IAAwB;CACnC,MAAM;EACJ,IAAI,EAAE,SAAS,QAAQ;EACvB,IAAI,EAAE,SAAS,QAAQ;EACvB,IAAI,EAAE,SAAS,QAAQ;CACzB;CACA,QAAQ;EACN,QAAQ,EAAE,SAAS,eAAe;EAClC,KAAK,EAAE,SAAS,4BAA4B;CAC9C;AACF,GACaC,IAAgC;CAAE,MAAM;CAAM,QAAQ;AAAS,GAEtEC,IAAW,iDACXC,IAAkB,+CAClBC,IAAe,kIAEfC,IAA6B,kBAAc,EAAK;AAEtD,SAASC,IAA0C;CACjD,IAAMC,IAAMC,EAAiB,IAAI,GAC3B,CAACC,GAAOC,KAAYC,EAAS,EAAK,GAClCC,IAAQC,QAAkB;EAC9B,IAAM9B,IAAKwB,EAAI;EACf,AAAIxB,KAAM,CAACA,EAAG,QAAQ,iBAAiB,KAAG2B,EAAS3B,EAAG,eAAeA,EAAG,YAAYA,EAAG,eAAe,CAAC;CACzG,GAAG,CAAC,CAAC;CAYL,OAXA+B,QAAgB;EACd,IAAM/B,IAAKwB,EAAI;EACf,IAAKxB,GAIL,OAHA6B,EAAM,GACN7B,EAAG,iBAAiB,UAAU6B,GAAO,EAAE,SAAS,GAAK,CAAC,GACtD,OAAO,iBAAiB,UAAUA,CAAK,SAC1B;GAEX,AADA7B,EAAG,oBAAoB,UAAU6B,CAAK,GACtC,OAAO,oBAAoB,UAAUA,CAAK;EAC5C;CACF,GAAG,CAACA,CAAK,CAAC,GACH;EAAE;EAAK;EAAO;CAAM;AAC7B;AAEA,SAASG,EAAa,GAAyB,GAA6B;CAC1E,IAAMC,IAAWR,EAAO,EAAK;CAC7B,QAAgB;EACd,IAAMS,IAAQ,CAACD,EAAS;EACxB,EAAS,UAAU;EACnB,IAAME,IAAS,SAAS;EACxB,IAAID,KAASE,KAAU,CAACC,KAAQF,KAAUA,MAAW,SAAS,QAASE,EAAI,QAAQ,oCAAoC,GAAG;EAC1H,IAAM/B,IAAQ+B,EAAI,cAA2B,qBAAqB;EAClE,AAAI/B,KAAOF,EAAqBE,CAAK,CAAC,EAAE,MAAM,EAAE,eAAe,GAAK,CAAC;CACvE,CAAC;AACH;AAEA,IAAMgC,oBAAc,IAAI,IAAI;CAAC;CAAQ;CAAS;CAAY;CAAO;CAAO;AAAQ,CAAC;AAEjF,SAASC,EAAe,GAA2B;CAEjD,IAAI,EAAE,QAAQ,WAAW,EAAE,UAAU,EAAE,YAAY,eAAe,EAAE,YAAY,KAAK,OAAO;CAC5F,IAAI,EAAE,WAAW,EAAE,SAAS,OAAO;CACnC,IAAMC,IAAS,EAAE;CACjB,OAAO,CAAC,EAAE,oBAAoB,CAAC,EAAE,YAAYA,aAAkB,oBAAoBF,EAAY,IAAIE,EAAO,IAAI,KAAKA,EAAO,aAAa,MAAM,MAAM;AACrJ;AAEA,SAASC,EAAO,GAA6B;CAC3C,IAAM,CAACJ,GAAKK,KAAUd,EAA6B,IAAI;CAEvD,OAAO,CAACS,GADIP,GAAa,MAA2BY,EAAON,IAASpC,IAAMA,GAAI,iBAAiB,IAAK,GAAG,CAACoC,CAAM,CACjG,CAAG;AAClB;AAsBA,SAASO,EAAY,EACnB,UACA,gBACA,aACA,WACA,aACA,cACA,gBACA,UAAO,MACP,YAAS,UACT,cACA,WACA,WACc;CACd,IAAM,EAAE,QAAK,UAAO,aAAUpB,EAAiC,GACzD,CAACc,GAAKO,KAAUH,EAAOL,CAAM;CAEnC,AADA1C,EAAgB2C,GAAKR,CAAK,GAC1BG,EAAaK,GAAKD,CAAM;CACxB,IAAMS,IAAIC,EAAU,GACdC,IAAQX,IAAS,OAAO1D,EAAW,OACnCuE,IAAc,kBAAC3D,GAAD;EAAY,MAAMX;EAAqB,cAAYkE,EAAE,gBAAgB,OAAO;EAAG,SAAS;EAAO,UAAU,CAAC,CAACM;CAAO,CAAA,GAChIC,IAAQC,IAAY,OAAOjB,IAASa,IAAc,kBAACvE,EAAW,OAAZ,EAAkB,QAAQuE,EAAc,CAAA,GAC1FK,IAAclB,IAAS,MAAM1D,EAAW;CAC9C,OACE,kBAAC4C,GAAD;EAAY,OAAO,CAAC,CAAC6B;EACnB,UAAA,kBAAC,OAAD;GACE,KAAKP;GACL,qBAAkB;GAClB,WAAW3D,EACT,yBACAmD,IAAS,2CAA2CnD,EAAG,sBAAsBsE,MAAW,QAAQ,sBAAsB,eAAe,GACrItC,EAAsB,KAAKuC,EAAK,CAAC,SACjCC,CACF;GACA,YAAY,MAAqB;IAC/B,AAAIC,KAAY,CAACP,KAAQZ,EAAe,CAAC,MACvC,EAAE,eAAe,GACjBmB,EAAS;GAEb;GAdF,UAAA;IAgBGC,MAAgB,KAAA,IAYf,kBAAC,OAAD;KAAK,WAAU;KAAf,UAAA,CACE,kBAAC,OAAD;MAAK,WAAU;MAAf,UAAA,CACE,kBAACZ,GAAD;OAAO,WAAU;OAAoD,UAAAa;MAAa,CAAA,GACjFC,KAAe,kBAACP,GAAD;OAAa,WAAU;OAA2C,UAAAO;MAAyB,CAAA,CACxG;KACJ,CAAA,GAAAT,KAAS,kBAAC,QAAD;MAAM,WAAU;MAAQ,UAAAA;KAAY,CAAA,CAC3C;I,KAjBL,kBAAAxE,GAAA,EAAA,UAAA,CACE,kBAAC,OAAD;KAAK,WAAU;KAAf,UAAA,CACE,kBAAC,QAAD;MAAM,WAAU;MAAqB,UAAA+E;KAAkB,CAAA,GACtDP,CACE;IACL,CAAA,GAAA,kBAAC,OAAD;KAAK,WAAU;KAAf,UAAA,CACE,kBAACL,GAAD;MAAO,WAAU;MAAoD,UAAAa;KAAa,CAAA,GACjFC,KAAe,kBAACP,GAAD;MAAa,WAAU;MAA2C,UAAAO;KAAyB,CAAA,CACxG;IACL,CAAA,CAAA,EAAA,CAAA;IAUHC,KACC,kBAAC,OAAD;KAAU;KAAK,oBAAiB;KAAG,WAAW7E,EAAG,8DAA8DsB,IAAS,SAAS,OAAO;KACtI,UAAA,kBAACpB,GAAD,EAAgB,YAAwB,CAAA;IACrC,CAAA;IAENoB,KACC,kBAAC,OAAD;KACE,sBAAmB;KACnB,WAAWtB,EAAG,+FAA+FyC,KAAS,YAAY;KAEjI,UAAAnB;IACE,CAAA;GAEJ;;CACK,CAAA;AAEhB;AAEA,SAASwD,KAAwC;CAC/C,IAAMC,IAAO,CAAC,GAAG,SAAS,iBAA8B,mCAAmC,CAAC,CAAC,CAAC,IAAI,GAC5F1D,IAAQ0D,GAAM,cAA2B,qBAAqB;CACpE,QAAQ1D,KAASF,EAAqBE,CAAK,MAAM0D,KAAQ;AAC3D;AAEA,IAAMC,IAAuB,kBAAwC,SAAgB,GAAO,GAAK;CAC/F,IAAM,EAAE,SAAM,gBAAa,iBAAc,YAAS,UAAO,MAAM,YAAS,UAAU,WAAQ,SAAM,kBAAeC,GACzGC,IAAQ3E,EAAgBwE,GAAMD,EAAiB,GAC/CK,IAAYlF,EAAmB,GAC/BmF,IAAYC,EAAI3E,CAAiB,GACjC4E,IAAU9E,EAAgB,MAAiBuE,CAAI;CAErD,OADI5B,IAAe,kBAACO,GAAD,EAAa,GAAIuB,EAAQ,CAAA,IAE1C,kBAACxF,EAAW,MAAZ;EACE,GAAKsF,MAAS,KAAA,IAAuB,CAAC,IAAZ,EAAE,QAAK;EACjC,GAAKQ,MAAgB,KAAA,IAA8B,CAAC,IAAnB,EAAE,eAAY;EAC/C,eAAe,GAAY,MAAgD;GACzE,IAAI,CAACC,KAAKtB,GAAM,OAAOuB,EAAQ,OAAO;GACtC,IAAeD,CAAC;EAClB;EACA,sBAAsBF;EACtB,GAAKI,IAAa,EAAE,yBAAyB,GAAK,IAAI,CAAC;EARzD,UAAA,CAUGC,KAAW,kBAAClG,EAAW,SAAZ,EAAoB,QAAQkG,EAAU,CAAA,GAClD,kBAAClG,EAAW,QAAZ;GAA8B;GAA9B,UAAA,CACE,kBAACA,EAAW,UAAZ;IAAqB,WAAWyC;IAAU,aAAakD;GAAY,CAAA,GACnE,kBAAC3F,EAAW,UAAZ;IAAqB,WAAWO,EAAGmC,GAAiBH,EAAsB,OAAOsC,EAAO,CAAC,OAAO;IAC9F,UAAA,kBAAC7E,EAAW,OAAZ;KACO;KACL,cAAcyF,EAAM;KACpB,YAAYA,EAAM;KAClB,WAAWlF,EAAGoC,GAAcJ,EAAsB,KAAKuC,EAAK,CAAC,SAASD,MAAW,SAAS,mBAAmB;KAE7G,UAAA,kBAACsB,GAAD;MAAc,OAAO;MACnB,UAAA,kBAAClF,GAAD;OAAmB,OAAO;OACxB,UAAA,kBAACgD,GAAD,EAAa,GAAIuB,EAAQ,CAAA;MACR,CAAA;KACP,CAAA;IACE,CAAA;GACC,CAAA,CACJ;EACJ,CAAA,CAAA;;AAErB,CAAC;AACD,QAAA,IAAA,aAA6B,iBAAc,EAAK,cAAc;AAE9D,SAASY,EAAM,EAAE,eAA4E;CAC3F,IAAM3B,IAAOmB,EAAIhD,CAAU;CAC3B,OAAO,kBAAC5C,EAAW,OAAZ,EAAkB,QAAQyE,IAAO4B,EAAajB,GAAU,EAAE,UAAU,GAAK,CAAC,IAAIA,EAAW,CAAA;AAClG;AACA,QAAA,IAAA,aAA6B,iBAAc,EAAM,cAAc;AAE/D,IAAajF,IAAyB,uBAAO,OAAOoF,GAAM,EAAE,SAAM,CAAC,GAEtDgB,KAA8B,EACzC,MAAM;CACJ,QAAQ,EAAE,SAAS,kCAAkC;CACrD,SAAS,EAAE,SAAS,oCAAoC;CACxD,MAAM,EAAE,SAAS,8BAA8B;AACjD,EACF,GACaC,KAAsC,EAAE,MAAM,SAAS;AAkBpE,SAASC,EAAW,EAClB,UACA,gBACA,iBACA,aAAaC,GACb,cACA,UAAO,UACP,gBACA,YACA,WACA,UACA,SACA,cAC4F;CAC5F,IAAM,CAACC,GAAOC,KAAY1D,EAAS,EAAE,GAC/B2D,IAAU9D,EAAO,EAAK,GACtBoB,IAAIC,EAAU,GACd,CAACT,GAAKO,KAAUH,EAAOL,CAAM;CACnC,EAAgBC,CAAG;CACnB,IAAMmD,IAAcJ,KAAcvC,EAAE,sBAAsB,QAAQ,GAC5D,CAAC4C,GAAYC,IAAY,MAAM7C,EAAE,6BAA6B,wBAAwB,CAAC,CAAC,MAAM,QAAQ,GACtGE,IAAQX,IAAS,OAAOtD,EAAgB,OACxCwE,IAAclB,IAAS,MAAMtD,EAAgB,aAC7C8G,IAAK,CAACC,KAAeR,MAAUQ,GAC/BC,IAAU,YAAY;EAC1B,IAAI,CAACF,KAAMG,KAAWR,EAAQ,SAAS;EACvC,IAAMS,IAAIC,EAAU;EACpB,IAAI,EAAED,aAAa,UAAU,OAAO5C,EAAM;EAE1C,AADA,EAAQ,UAAU,IAClB8C,EAAQ,EAAI;EACZ,IAAMC,IAAO,MAAMH,EAAE,WACb,UACA,EACR;EAGA,AAFA,EAAQ,UAAU,IAClBE,EAAQ,EAAK,GACTC,KAAM/C,EAAM;CAClB;CACA,OACE,kBAAC,OAAD;EAAK,KAAKR;EAAQ,WAAW3D,EAAG,mCAAmCmD,IAAS,2CAA2C,2BAA2B;EAAlJ,UAAA;GACE,kBAAC,OAAD;IAAK,WAAU;IAAf,UAAA,CACE,kBAACW,GAAD;KAAO,WAAU;KAAoD,UAAAa;IAAa,CAAA,GAClF,kBAACN,GAAD;KAAa,WAAU;KAA2C,UAAAO;IAAyB,CAAA,CACxF;;GACJgC,KACC,kBAACtG,GAAD;IACE,OACE,kBAAC,QAAD;KAAM,WAAU;KAAhB,UAAA;MACGkG;MACD,kBAAC,QAAD;OAAM,WAAU;OAA4B,UAAAI;MAAkB,CAAA;MAC7DH;KACG;;IAER,OAAOL;IACP,WAAW,MAAMC,EAAS,EAAE,OAAO,KAAK;IACxC,cAAa;IACb,YAAY;IACZ,YAAY,MAAM,EAAE,QAAQ,WAAWQ,EAAQ;GAChD,CAAA;GAEH,kBAAC,OAAD;IAAK,WAAU;IAAf,UAAA,CACG1D,IAAS,kBAAC/C,GAAD,EAAA,UAASmG,EAAoB,CAAA,IAAI,kBAAC1G,EAAgB,OAAjB,EAAuB,QAAQ,kBAACO,GAAD;KAAQ,UAAU8D,KAAQ,CAAC,CAAC4C;KAAU,UAAAP;IAAoB,CAAA,EAAI,CAAA,GACxI,kBAACnG,GAAD;KAAQ,SAAS+G,MAAS,WAAW,WAAW;KAAW,SAASN;KAAS,UAAU,CAACF;KAAI,SAASzC,KAAQ4C;KAC1G,UAAAM;IACK,CAAA,CACL;;EACF;;AAET;AAEA,SAAgBtH,EAAY,GAAyB;CACnD,IAAM,EAAE,SAAM,gBAAa,iBAAc,YAAS,cAAWmF,GACvD,CAACqC,GAAOC,KAAY5E,EAAS4C,KAAe,EAAK,GACjDiC,IAASzC,KAAQuC,GACjBG,KAAW,MAAe;EAE9B,AADI1C,MAAS,KAAA,KAAWwC,EAAS/B,CAAC,GAClCkC,IAAelC,CAAC;CAClB,GACM,CAACtB,GAAM+C,KAAWtE,EAAS,EAAK,GAChCuC,IAAQ3E,EAAgBiH,CAAM,GAC9BrC,IAAYlF,EAAmB,GAC/BmF,IAAYC,EAAI3E,CAAiB,GACjC4E,IAAU9E,EAAgB,MAAiBgH,CAAM;CAEvD,OADIrE,IAAe,kBAAC+C,GAAD;EAAY,GAAIjB;EAAO,aAAa,KAAA;EAAiB;EAAe;CAAU,CAAA,IAE/F,kBAACpF,EAAgB,MAAjB;EACE,MAAM2H;EACN,eAAe,GAAY,MAAqD;GAC9E,IAAI,CAAChC,MAAMtB,KAAQe,EAAM,UAAU,OAAOQ,EAAQ,OAAO;GACzD,EAAQD,CAAC;EACX;EACA,sBAAsBF;EANxB,UAAA,CAQGK,KAAW,kBAAC9F,EAAgB,SAAjB,EAAyB,QAAQ8F,EAAU,CAAA,GACvD,kBAAC9F,EAAgB,QAAjB;GAAmC;GAAnC,UAAA,CACE,kBAACA,EAAgB,UAAjB;IAA0B,WAAWqC;IAAU,aAAakD;GAAY,CAAA,GACxE,kBAACvF,EAAgB,UAAjB;IAA0B,WAAWG,EAAGmC,GAAiBH,EAAsB,OAAO,OAAO,OAAO;IAClG,UAAA,kBAACnC,EAAgB,OAAjB;KAAuB,cAAcqF,EAAM;KAAc,YAAYA,EAAM;KAAY,WAAWlF,EAAGoC,GAAc,OAAO;KACxH,UAAA,kBAACwD,GAAD;MAAc,OAAO;MACnB,UAAA,kBAACM,GAAD;OAAY,GAAIjB;OAAO,aAAawC,EAAQ,EAAK;OAAS;OAAe;MAAU,CAAA;KACvE,CAAA;IACO,CAAA;GACC,CAAA,CACJ;EACJ,CAAA,CAAA;;AAE1B;AACA,QAAA,IAAA,aAA6B,iBAAc,EAAY,cAAc;AAErE,IAAaE,KAA8B3F,GAC9B4F,KAAsC3F,GAe7C4F,KAAU,MAAuC9G,GAAI,QAAqB,oBAAoB,KAAK;AAEzG,SAAgB+G,EAAY,EAAE,WAAQ,UAAO,kBAAe,GAAG7C,KAA2B;CACxF,IAAM,CAACqC,GAAOC,KAAY5E,EAAS,CAAC,GAC9BiB,IAAIC,EAAU,GACdkE,IAASC,KAASV,GAClBW,IAAQF,IAAS,KAAKA,IAASG,EAAO,SAASH,IAAS,GACxDI,IAAW3F,EAAkC,CAAC,CAAC,GAC/C4F,IAAU5F,EAA+B,CAAC,CAAC,GAC3C6F,IAAO7F,EAAiB,CAAC,CAAC,GAC1B8F,IAAO9F,EAAOyF,CAAK,GACnBM,IAAQ/F,EAAOyF,CAAK;CAK1B,AAJIK,EAAK,YAAYL,MACnB,EAAK,QAAQK,EAAK,WAAWT,EAAOM,EAAS,QAAQG,EAAK,QAAQ,CAAC,EAAE,aAAa,GAClF,EAAK,UAAUL,IAEjBO,QAAsB;EACpB,IAAMC,IAAOF,EAAM;EAEnB,IADA,EAAM,UAAUN,GACZQ,MAASR,GAAO;EACpB,IAAMS,IAAOT,IAAQQ;EAErB,AADKC,MAAM,EAAQ,QAAQT,KAAS,OACpC,EAAQ,QAAQ,SAASA,IAAQ;EACjC,IAAMnG,IAAUqG,EAAS,QAAQF,IAC3BU,IAAOd,EAAO/F,CAAO;EAE3B,AADI6G,MAAM,EAAK,YAAYD,IAAQL,EAAK,QAAQJ,MAAU,IAAK,IAC/DpG,EAAmBC,GAAS4G,IAAON,EAAQ,QAAQH,KAAS,IAAI;CAClE,GAAG,CAACA,CAAK,CAAC;CACV,IAAMW,KAAM,MAAc;EACxB,AAAI3D,EAAM,SACN+C,MAAU,KAAA,KAAWT,EAASsB,CAAC,GACnCC,IAAgBD,CAAC;CACnB,GACME,IAAQb,EAAO,MAAM,GAAGD,IAAQ,CAAC,GACjCe,IAAUD,EAAMd;CACtB,IAAI,CAACe,GAAS,OAAO;CACrB,IAAMC,KAAY,OAAe,MAA+B;EAC9D,AAAIC,EAAE,kBAAkB,gBAAa,EAAQ,QAAQL,KAAKK,EAAE;CAC9D;CACA,OACE,kBAACtJ,GAAD;EACE,GAAIqF;EACJ,OAAO+D,EAAQ;EACf,aAAaA,EAAQ;EACrB,QACEA,EAAQ,SACJD,EAAM,KAAK,GAAG,MACZI,EAAE,SACA,kBAAC,OAAD;GAAa,QAAQN,MAAMZ;GAAO,WAAU;GAAW,SAASgB,EAASJ,CAAC;GACvE,UAAAM,EAAE;EACA,GAFKN,CAEL,IACH,IACN,IACA,KAAA;EAEN,aACEZ,IAAQ,IACN,kBAAC5H,GAAD;GAEE,MAAMN;GACN,cAAY6D,EAAE,eAAe,MAAM;GACnC,eAAegF,EAAGX,IAAQ,CAAC;GAC3B,UAAU,CAAC,CAAChD,EAAM;GAClB,WAAU;EACX,GANK,MAML,IACC;EAGL,UAAA8D,EAAM,KAAK,GAAG,MACb,kBAAC,OAAD;GAEE,MAAM,MAAO;IACX,EAAS,QAAQF,KAAK9H;GACxB;GACA,QAAQ8H,MAAMZ;GACd,WAAU;GACV,SAASgB,EAASJ,CAAC;GAElB,UAAAM,EAAE;EACA,GATEN,CASF,CACN;CACK,CAAA;AAEZ;AACA,QAAA,IAAA,aAA6B,iBAAc,EAAY,cAAc"}
|
|
@@ -1,5 +1,5 @@
|
|
|
1
1
|
"use client";
|
|
2
|
-
import { t as e } from "./cn-
|
|
2
|
+
import { t as e } from "./cn-DUDmdLpZ.js";
|
|
3
3
|
import { forwardRef as t } from "react";
|
|
4
4
|
import { jsx as n, jsxs as r } from "react/jsx-runtime";
|
|
5
5
|
//#region src/components/empty/empty.tsx
|
|
@@ -35,4 +35,4 @@ process.env.NODE_ENV !== "production" && (o.displayName = "Empty");
|
|
|
35
35
|
//#endregion
|
|
36
36
|
export { a as n, i as r, o as t };
|
|
37
37
|
|
|
38
|
-
//# sourceMappingURL=empty-
|
|
38
|
+
//# sourceMappingURL=empty-YXmSkKzR.js.map
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"empty-
|
|
1
|
+
{"version":3,"file":"empty-YXmSkKzR.js","names":["cn","KAESO_EMPTY_VARIANTS","KAESO_EMPTY_DEFAULT_VARIANTS","Empty","compact","size","className","title","description","actions","children"],"sources":["../../src/components/empty/empty.tsx"],"sourcesContent":["import { forwardRef, type ReactNode } from \"react\";\nimport { cn } from \"../../utils/cn.js\";\n\nexport const KAESO_EMPTY_VARIANTS = {\n size: {\n lg: { classes: \"py-80 gap-16\" },\n md: { classes: \"py-48 gap-12\" },\n compact: { classes: \"py-32 gap-8\" },\n },\n} as const;\nexport const KAESO_EMPTY_DEFAULT_VARIANTS = { size: \"lg\" } as const;\n\nexport interface EmptyProps {\n title: ReactNode;\n description?: ReactNode | undefined;\n actions?: ReactNode | undefined;\n size?: keyof typeof KAESO_EMPTY_VARIANTS.size | undefined;\n children?: ReactNode | undefined;\n className?: string | undefined;\n}\n\nexport const Empty = /* @__PURE__ */ forwardRef<HTMLDivElement, EmptyProps>(function Empty({ title, description, actions, size = \"lg\", children, className }, ref) {\n const compact = size === \"compact\";\n return (\n <div ref={ref} className={cn(\"flex flex-col items-center text-center\", KAESO_EMPTY_VARIANTS.size[size].classes, className)}>\n <div className={cn(\"flex flex-col items-center\", compact ? \"gap-2\" : \"gap-6\")}>\n <h2 className={cn(\"font-semibold text-fg text-balance\", compact ? \"text-body\" : \"text-title\")}>{title}</h2>\n {description && <p className={cn(\"max-w-44ch text-fg-secondary text-pretty\", compact ? \"text-small\" : \"text-body\")}>{description}</p>}\n </div>\n {actions && <div className={cn(\"flex flex-wrap items-center justify-center gap-8\", !compact && \"mt-8\")}>{actions}</div>}\n {children}\n </div>\n );\n});\nif (process.env.NODE_ENV !== \"production\") Empty.displayName = \"Empty\";\n"],"mappings":";;;;;AAGA,IAAaC,IAAuB,EAClC,MAAM;CACJ,IAAI,EAAE,SAAS,eAAe;CAC9B,IAAI,EAAE,SAAS,eAAe;CAC9B,SAAS,EAAE,SAAS,cAAc;AACpC,EACF,GACaC,IAA+B,EAAE,MAAM,KAAK,GAW5CC,IAAwB,kBAAuC,SAAe,EAAE,UAAO,gBAAa,YAAS,UAAO,MAAM,aAAU,gBAAa,GAAK;CACjK,IAAMC,IAAUC,MAAS;CACzB,OACE,kBAAC,OAAD;EAAU;EAAK,WAAWL,EAAG,0CAA0CC,EAAqB,KAAKI,EAAK,CAAC,SAASC,CAAS;EAAzH,UAAA;GACE,kBAAC,OAAD;IAAK,WAAWN,EAAG,8BAA8BI,IAAU,UAAU,OAAO;IAA5E,UAAA,CACE,kBAAC,MAAD;KAAI,WAAWJ,EAAG,sCAAsCI,IAAU,cAAc,YAAY;KAAI,UAAAG;IAAU,CAAA,GACzGC,KAAe,kBAAC,KAAD;KAAG,WAAWR,EAAG,4CAA4CI,IAAU,eAAe,WAAW;KAAI,UAAAI;IAAe,CAAA,CACjI;;GACJC,KAAW,kBAAC,OAAD;IAAK,WAAWT,EAAG,oDAAoD,CAACI,KAAW,MAAM;IAAI,UAAAK;GAAa,CAAA;GACrHC;EACE;;AAET,CAAC;AACD,QAAA,IAAA,aAA6B,iBAAc,EAAM,cAAc"}
|
|
@@ -1,5 +1,5 @@
|
|
|
1
1
|
"use client";
|
|
2
|
-
import { t as e } from "./cn-
|
|
2
|
+
import { t as e } from "./cn-DUDmdLpZ.js";
|
|
3
3
|
import { i as t } from "./context-BELWW79w.js";
|
|
4
4
|
import { createContext as n, forwardRef as r, useContext as i, useId as a } from "react";
|
|
5
5
|
import { jsx as o, jsxs as s } from "react/jsx-runtime";
|
|
@@ -49,7 +49,7 @@ var c = { layout: {
|
|
|
49
49
|
}),
|
|
50
50
|
l && /* @__PURE__ */ o("p", {
|
|
51
51
|
id: T,
|
|
52
|
-
className: "
|
|
52
|
+
className: "text-small text-danger-text",
|
|
53
53
|
children: l
|
|
54
54
|
})
|
|
55
55
|
]
|
|
@@ -116,4 +116,4 @@ function h(e, t) {
|
|
|
116
116
|
//#endregion
|
|
117
117
|
export { d as a, c as i, p as n, m as o, l as r, h as s, f as t };
|
|
118
118
|
|
|
119
|
-
//# sourceMappingURL=field-
|
|
119
|
+
//# sourceMappingURL=field-BZriODU7.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"field-BZriODU7.js","names":["cn","useUiText","KAESO_FIELD_VARIANTS","KAESO_FIELD_DEFAULT_VARIANTS","FieldContext","useField","useContext","Field","invalidProp","props","auto","useId","t","controlId","id","labelId","label","descriptionId","description","errorId","error","invalid","describedBy","value","required","layout","className","disabled","optional","children","Fieldset","legend","useFieldControl","field","withField","control"],"sources":["../../src/components/field/field.tsx"],"sourcesContent":["import { createContext, forwardRef, useContext, useId, type FieldsetHTMLAttributes, type HTMLAttributes, type ReactNode } from \"react\";\nimport { cn } from \"../../utils/cn.js\";\nimport { useUiText } from \"../../i18n/context.js\";\n\nexport const KAESO_FIELD_VARIANTS = {\n layout: {\n vertical: { classes: \"flex flex-col gap-8\" },\n horizontal: {\n classes: \"grid grid-cols-1 gap-8 md:grid-cols-label md:gap-x-24\",\n },\n },\n} as const;\nexport const KAESO_FIELD_DEFAULT_VARIANTS = { layout: \"vertical\" } as const;\n\nexport interface FieldContextValue {\n controlId: string;\n labelId: string | undefined;\n descriptionId: string | undefined;\n errorId: string | undefined;\n invalid: boolean;\n disabled: boolean;\n required: boolean;\n controlProps: { id: string; \"aria-describedby\"?: string | undefined; \"aria-invalid\"?: true | undefined; \"aria-required\"?: true | undefined };\n}\n\nconst FieldContext = /* @__PURE__ */ createContext<FieldContextValue | null>(null);\nexport const useField = () => useContext(FieldContext);\n\nexport interface FieldProps extends Omit<HTMLAttributes<HTMLDivElement>, \"children\"> {\n label?: ReactNode | undefined;\n description?: ReactNode | undefined;\n invalid?: boolean | undefined;\n error?: ReactNode | undefined;\n optional?: boolean | undefined;\n required?: boolean | undefined;\n disabled?: boolean | undefined;\n layout?: keyof typeof KAESO_FIELD_VARIANTS.layout | undefined;\n id?: string | undefined;\n children: ReactNode;\n}\n\nexport const Field = /* @__PURE__ */ forwardRef<HTMLDivElement, FieldProps>(function Field(\n { label, description, invalid: invalidProp, error, optional, required = false, disabled = false, layout = \"vertical\", id, className, children, ...props },\n ref,\n) {\n const auto = useId();\n const t = useUiText();\n const controlId = id ?? `k-field-${auto}`;\n const labelId = label ? `${controlId}-label` : undefined;\n const descriptionId = description ? `${controlId}-description` : undefined;\n const errorId = error ? `${controlId}-error` : undefined;\n const invalid = !!invalidProp || !!error;\n const describedBy = [descriptionId, errorId].filter(Boolean).join(\" \") || undefined;\n const value: FieldContextValue = {\n controlId,\n labelId,\n descriptionId,\n errorId,\n invalid,\n disabled,\n required,\n controlProps: {\n id: controlId,\n ...(describedBy ? { \"aria-describedby\": describedBy } : {}),\n ...(invalid ? { \"aria-invalid\": true as const } : {}),\n ...(required ? { \"aria-required\": true as const } : {}),\n },\n };\n return (\n <FieldContext.Provider value={value}>\n <div ref={ref} className={cn(KAESO_FIELD_VARIANTS.layout[layout].classes, className)} data-disabled={disabled || undefined} {...props}>\n {label && (\n <label\n id={labelId}\n htmlFor={controlId}\n className={cn(\"flex items-baseline gap-6 text-body font-medium text-fg\", layout === \"horizontal\" && \"md:pt-8\", disabled && \"text-fg-disabled\")}\n >\n {label}\n {optional && <span className=\"text-small font-regular text-fg-tertiary\">{t(\"field.optional\", \"Optional\")}</span>}\n </label>\n )}\n <div className=\"flex min-w-0 flex-col gap-6\">\n {children}\n {description && (\n <p id={descriptionId} className=\"text-small text-fg-secondary\">\n {description}\n </p>\n )}\n {error && (\n <p id={errorId} className=\"text-small text-danger-text\">\n {error}\n </p>\n )}\n </div>\n </div>\n </FieldContext.Provider>\n );\n});\nif (process.env.NODE_ENV !== \"production\") Field.displayName = \"Field\";\n\nexport interface FieldsetProps extends FieldsetHTMLAttributes<HTMLFieldSetElement> {\n legend: ReactNode;\n description?: ReactNode | undefined;\n}\n\nexport const Fieldset = /* @__PURE__ */ forwardRef<HTMLFieldSetElement, FieldsetProps>(function Fieldset({ legend, description, className, children, ...props }, ref) {\n return (\n <fieldset ref={ref} className={cn(\"flex min-w-0 flex-col gap-16\", className)} {...props}>\n <div className=\"flex flex-col gap-4\">\n <legend className=\"text-body-lg font-semibold text-fg\">{legend}</legend>\n {description && <p className=\"text-small text-fg-secondary\">{description}</p>}\n </div>\n {children}\n </fieldset>\n );\n});\nif (process.env.NODE_ENV !== \"production\") Fieldset.displayName = \"Fieldset\";\n\nexport function useFieldControl(props: {\n label?: ReactNode | undefined;\n description?: ReactNode | undefined;\n error?: ReactNode | undefined;\n invalid?: boolean | undefined;\n required?: boolean | undefined;\n id?: string | undefined;\n}) {\n const field = useField();\n const auto = useId();\n if (field) return { controlProps: field.controlProps as Record<string, unknown>, wrapId: undefined };\n const wraps = props.label !== undefined || props.description !== undefined || props.error !== undefined;\n if (!wraps) return { controlProps: (props.invalid ? { \"aria-invalid\": true } : {}) as Record<string, unknown>, wrapId: undefined };\n const controlId = props.id ?? `k-field-${auto}`;\n const describedBy = [props.description ? `${controlId}-description` : \"\", props.error ? `${controlId}-error` : \"\"].filter(Boolean).join(\" \");\n return {\n controlProps: {\n id: controlId,\n ...(describedBy ? { \"aria-describedby\": describedBy } : {}),\n ...(props.error || props.invalid ? { \"aria-invalid\": true } : {}),\n ...(props.required ? { \"aria-required\": true } : {}),\n } as Record<string, unknown>,\n wrapId: controlId,\n };\n}\n\nexport interface FieldWrapProps {\n label?: ReactNode | undefined;\n description?: ReactNode | undefined;\n error?: ReactNode | undefined;\n optional?: boolean | undefined;\n required?: boolean | undefined;\n layout?: keyof typeof KAESO_FIELD_VARIANTS.layout | undefined;\n}\n\nexport function withField(\n props: FieldWrapProps & { id?: string | undefined; disabled?: boolean | undefined; invalid?: boolean | undefined; className?: string | undefined },\n control: ReactNode,\n) {\n const { label, description, error, optional, required, layout } = props;\n if (label === undefined && description === undefined && error === undefined) return control;\n return (\n <Field\n label={label}\n description={description}\n error={error}\n invalid={props.invalid}\n optional={optional}\n required={required}\n layout={layout}\n id={props.id}\n disabled={props.disabled}\n className={props.className}\n >\n {control}\n </Field>\n );\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-DUDmdLpZ.js";
|
|
3
3
|
import { forwardRef as t } from "react";
|
|
4
4
|
import { jsx as n } from "react/jsx-runtime";
|
|
5
5
|
import { HugeiconsIcon as r } from "@hugeicons/react";
|
|
@@ -44,4 +44,4 @@ process.env.NODE_ENV !== "production" && (c.displayName = "Icon");
|
|
|
44
44
|
//#endregion
|
|
45
45
|
export { a as n, i as r, c as t };
|
|
46
46
|
|
|
47
|
-
//# sourceMappingURL=icon-
|
|
47
|
+
//# sourceMappingURL=icon-BqujXDUc.js.map
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"icon-
|
|
1
|
+
{"version":3,"file":"icon-BqujXDUc.js","names":["cn","KAESO_ICON_VARIANTS","KAESO_ICON_DEFAULT_VARIANTS","PX","STROKE","Icon","props","HugeiconsIcon","size","className","label"],"sources":["../../src/components/icon/icon.tsx"],"sourcesContent":["import { forwardRef, type SVGAttributes } from \"react\";\nimport { HugeiconsIcon, type IconSvgElement } from \"@hugeicons/react\";\nimport { cn } from \"../../utils/cn.js\";\n\nexport type IconData = IconSvgElement;\n\nexport const KAESO_ICON_VARIANTS = {\n size: {\n xs: { classes: \"size-14\" },\n sm: { classes: \"size-16\" },\n md: { classes: \"size-18\" },\n lg: { classes: \"size-20\" },\n xl: { classes: \"size-24\" },\n },\n} as const;\nexport const KAESO_ICON_DEFAULT_VARIANTS = { size: \"sm\" } as const;\nexport type IconSize = keyof typeof KAESO_ICON_VARIANTS.size;\n\nconst PX: Record<IconSize, number> = { xs: 14, sm: 16, md: 18, lg: 20, xl: 24 };\nconst STROKE: Record<IconSize, number> = { xs: 1.75, sm: 1.5, md: 1.5, lg: 1.5, xl: 1.5 };\n\nexport interface IconProps extends Omit<SVGAttributes<SVGSVGElement>, \"children\" | \"strokeWidth\" | \"color\"> {\n icon: IconData;\n size?: IconSize | undefined;\n label?: string | undefined;\n}\n\nexport const Icon = /* @__PURE__ */ forwardRef<SVGSVGElement, IconProps>(function Icon({ icon, size = KAESO_ICON_DEFAULT_VARIANTS.size, label, className, ...props }, ref) {\n return (\n <HugeiconsIcon\n ref={ref}\n icon={icon}\n size={PX[size]}\n strokeWidth={STROKE[size]}\n color=\"currentColor\"\n className={cn(\"shrink-0\", KAESO_ICON_VARIANTS.size[size].classes, className)}\n {...(label ? { role: \"img\", \"aria-label\": label } : { \"aria-hidden\": true, focusable: false })}\n {...props}\n />\n );\n});\nif (process.env.NODE_ENV !== \"production\") Icon.displayName = \"Icon\";\n"],"mappings":";;;;;;AAMA,IAAaC,IAAsB,EACjC,MAAM;CACJ,IAAI,EAAE,SAAS,UAAU;CACzB,IAAI,EAAE,SAAS,UAAU;CACzB,IAAI,EAAE,SAAS,UAAU;CACzB,IAAI,EAAE,SAAS,UAAU;CACzB,IAAI,EAAE,SAAS,UAAU;AAC3B,EACF,GACaC,IAA8B,EAAE,MAAM,KAAK,GAGlDC,IAA+B;CAAE,IAAI;CAAI,IAAI;CAAI,IAAI;CAAI,IAAI;CAAI,IAAI;AAAG,GACxEC,IAAmC;CAAE,IAAI;CAAM,IAAI;CAAK,IAAI;CAAK,IAAI;CAAK,IAAI;AAAI,GAQ3EC,IAAuB,kBAAqC,SAAc,EAAE,SAAM,UAAOH,EAA4B,MAAM,UAAO,cAAW,GAAGI,KAAS,GAAK;CACzK,OACE,kBAACC,GAAD;EACO;EACC;EACN,MAAMJ,EAAGK;EACT,aAAaJ,EAAOI;EACpB,OAAM;EACN,WAAWR,EAAG,YAAYC,EAAoB,KAAKO,EAAK,CAAC,SAASC,CAAS;EAC3E,GAAKC,IAAQ;GAAE,MAAM;GAAO,cAAcA;EAAM,IAAI;GAAE,eAAe;GAAM,WAAW;EAAM;EAC5F,GAAIJ;CACL,CAAA;AAEL,CAAC;AACD,QAAA,IAAA,aAA6B,iBAAc,EAAK,cAAc"}
|
|
@@ -1,6 +1,6 @@
|
|
|
1
1
|
"use client";
|
|
2
|
-
import { r as e } from "./tooltip-
|
|
3
|
-
import { n as t } from "./button-
|
|
2
|
+
import { r as e } from "./tooltip-S1DmyLVl.js";
|
|
3
|
+
import { n as t } from "./button-CAPyW-v8.js";
|
|
4
4
|
import { forwardRef as n } from "react";
|
|
5
5
|
import { jsx as r } from "react/jsx-runtime";
|
|
6
6
|
//#region src/components/icon-button/icon-button.tsx
|
|
@@ -47,4 +47,4 @@ process.env.NODE_ENV !== "production" && (o.displayName = "IconButton");
|
|
|
47
47
|
//#endregion
|
|
48
48
|
export { a as n, i as r, o as t };
|
|
49
49
|
|
|
50
|
-
//# sourceMappingURL=icon-button-
|
|
50
|
+
//# sourceMappingURL=icon-button-D4O4puwH.js.map
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"icon-button-
|
|
1
|
+
{"version":3,"file":"icon-button-D4O4puwH.js","names":["Tooltip","Button","KAESO_ICON_BUTTON_VARIANTS","KAESO_ICON_BUTTON_DEFAULT_VARIANTS","IconButton","label","props","btn","disabled","disabledReason","tooltip","tooltipSide","shortcut"],"sources":["../../src/components/icon-button/icon-button.tsx"],"sourcesContent":["import type * as React from \"react\";\nimport { forwardRef } from \"react\";\nimport { Button, type ButtonSize, type ButtonVariant } from \"../button/button.js\";\nimport { Tooltip } from \"../tooltip/tooltip.js\";\nimport type { IconData } from \"../icon/icon.js\";\n\nexport const KAESO_ICON_BUTTON_VARIANTS = {\n variant: {\n ghost: { classes: \"material-ghost\" },\n quiet: { classes: \"material-ghost text-fg-secondary hover:text-fg\" },\n secondary: { classes: \"material-secondary\" },\n soft: { classes: \"material-soft\" },\n primary: { classes: \"material-primary\" },\n danger: { classes: \"material-danger\" },\n \"danger-secondary\": { classes: \"material-danger-secondary\" },\n },\n size: {\n xs: { classes: \"size-24\" },\n sm: { classes: \"size-32\" },\n md: { classes: \"size-36\" },\n lg: { classes: \"size-40\" },\n xl: { classes: \"size-48\" },\n },\n} as const;\nexport const KAESO_ICON_BUTTON_DEFAULT_VARIANTS = { variant: \"ghost\", size: \"sm\" } as const;\n\nexport interface IconButtonProps extends Omit<React.ButtonHTMLAttributes<HTMLButtonElement>, \"children\"> {\n icon: IconData;\n \"aria-label\": string;\n variant?: Exclude<ButtonVariant, \"link\"> | undefined;\n size?: ButtonSize | undefined;\n shortcut?: string[] | string[][] | undefined;\n tooltip?: boolean | undefined;\n tooltipSide?: \"top\" | \"bottom\" | \"left\" | \"right\" | undefined;\n loading?: boolean | undefined;\n disabledReason?: string | undefined;\n href?: string | undefined;\n \"data-force\"?: string | undefined;\n}\n\nexport const IconButton = /* @__PURE__ */ forwardRef<HTMLButtonElement, IconButtonProps>(function IconButton(\n { icon, variant = \"ghost\", size = \"sm\", shortcut, tooltip = true, tooltipSide = \"top\", \"aria-label\": label, disabledReason, disabled, ...props },\n ref,\n) {\n const btn = (\n <Button\n ref={ref as React.Ref<HTMLButtonElement & HTMLAnchorElement>}\n shape=\"circle\"\n icon={icon}\n aria-label={label}\n variant={variant}\n size={size}\n {...(disabled !== undefined ? { disabled } : {})}\n {...(disabledReason !== undefined ? { disabledReason } : {})}\n {...props}\n />\n );\n if (!tooltip || disabled) return btn;\n return (\n <Tooltip content={label} side={tooltipSide} {...(shortcut ? { shortcut } : {})}>\n {btn}\n </Tooltip>\n );\n});\nif (process.env.NODE_ENV !== \"production\") IconButton.displayName = \"IconButton\";\n"],"mappings":";;;;;;AAMA,IAAaE,IAA6B;CACxC,SAAS;EACP,OAAO,EAAE,SAAS,iBAAiB;EACnC,OAAO,EAAE,SAAS,iDAAiD;EACnE,WAAW,EAAE,SAAS,qBAAqB;EAC3C,MAAM,EAAE,SAAS,gBAAgB;EACjC,SAAS,EAAE,SAAS,mBAAmB;EACvC,QAAQ,EAAE,SAAS,kBAAkB;EACrC,oBAAoB,EAAE,SAAS,4BAA4B;CAC7D;CACA,MAAM;EACJ,IAAI,EAAE,SAAS,UAAU;EACzB,IAAI,EAAE,SAAS,UAAU;EACzB,IAAI,EAAE,SAAS,UAAU;EACzB,IAAI,EAAE,SAAS,UAAU;EACzB,IAAI,EAAE,SAAS,UAAU;CAC3B;AACF,GACaC,IAAqC;CAAE,SAAS;CAAS,MAAM;AAAK,GAgBpEC,IAA6B,kBAA+C,SACvF,EAAE,SAAM,aAAU,SAAS,UAAO,MAAM,aAAU,aAAU,IAAM,iBAAc,OAAO,cAAcC,GAAO,mBAAgB,aAAU,GAAGC,KACzI,GACA;CACA,IAAMC,IACJ,kBAACN,GAAD;EACO;EACL,OAAM;EACA;EACN,cAAYI;EACH;EACH;EACN,GAAKG,MAAa,KAAA,IAA2B,CAAC,IAAhB,EAAE,YAAS;EACzC,GAAKC,MAAmB,KAAA,IAAiC,CAAC,IAAtB,EAAE,kBAAe;EACrD,GAAIH;CACL,CAAA;CAGH,OADI,CAACI,KAAWF,IAAiBD,IAE/B,kBAACP,GAAD;EAAS,SAASK;EAAO,MAAMM;EAAa,GAAKC,IAAW,EAAE,YAAS,IAAI,CAAC;EACzE,UAAAL;CACM,CAAA;AAEb,CAAC;AACD,QAAA,IAAA,aAA6B,iBAAc,EAAW,cAAc"}
|