@logicplanes/kaeso-ui 0.2.2 → 0.3.1
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 +223 -24
- package/ai/component-registry.json +985 -91
- package/ai/component-registry.md +219 -52
- 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-DEc9HNa6.js → release-art-Ogl-L1Vh.js} +189 -183
- package/dist/chunks/release-art-Ogl-L1Vh.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-BzMlYuMe.js → status-dot-BqVOlShY.js} +3 -3
- package/dist/chunks/{status-dot-BzMlYuMe.js.map → status-dot-BqVOlShY.js.map} +1 -1
- 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 -255
- 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 +6 -6
- 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 +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 +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 +87 -50
- package/dist/format.js.map +1 -1
- package/dist/i18n-provider.js +1 -1
- package/dist/index.js +115 -112
- package/dist/kaeso.css +20 -7
- 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 +1 -0
- package/dist/types/components/release-art/release-art.d.ts +1 -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/format/index.d.ts +6 -0
- package/dist/types/index.d.ts +1 -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/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/release-art-DEc9HNa6.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/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
|
@@ -1,319 +0,0 @@
|
|
|
1
|
-
"use client";
|
|
2
|
-
import { t as e } from "./cn-CidVUKMm.js";
|
|
3
|
-
import { r as t } from "./portal-context-BBbzDKmY.js";
|
|
4
|
-
import { t as n } from "./inset-BLMdxX4I.js";
|
|
5
|
-
import { i as r } from "./context-BELWW79w.js";
|
|
6
|
-
import { i, n as a } from "./button-DQvoOxVQ.js";
|
|
7
|
-
import { t as o } from "./icon-button-_x1RUphC.js";
|
|
8
|
-
import { t as s } from "./input-CNTfI6YE.js";
|
|
9
|
-
import { a as c, i as l, t as u } from "./resize-motion-CMaidkwe.js";
|
|
10
|
-
import { cloneElement as d, createContext as f, forwardRef as p, use as m, useCallback as h, useEffect as g, useLayoutEffect as _, useRef as v, useState as y } from "react";
|
|
11
|
-
import { Fragment as b, jsx as x, jsxs as S } from "react/jsx-runtime";
|
|
12
|
-
import { ArrowLeft01Icon as C, Cancel01Icon as w } from "@hugeicons/core-free-icons";
|
|
13
|
-
import { Dialog as T } from "@base-ui/react/dialog";
|
|
14
|
-
import { AlertDialog as E } from "@base-ui/react/alert-dialog";
|
|
15
|
-
//#region src/components/dialog/focus.ts
|
|
16
|
-
var D = "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\"]", O = "a[href], button, input:not([type=hidden]), select, textarea, [tabindex]:not([tabindex=\"-1\"])", k = (e) => !e.closest("[hidden], [inert]") && !e.matches(":disabled, [aria-disabled=true]"), A = (e, t) => [...e.querySelectorAll(t)].find(k) ?? null;
|
|
17
|
-
function j(e, t) {
|
|
18
|
-
let n = t ?? e.querySelector("[data-dialog-body]"), r = e.querySelector("[data-dialog-footer]"), a = r ? [...r.querySelectorAll("button, a[href]")].filter(k) : [], { primary: o, danger: s, "danger-secondary": c } = i.variant, l = a.filter((e) => !e.classList.contains(s.classes) && !e.classList.contains(c.classes));
|
|
19
|
-
return (n && (A(n, "[data-autofocus]") ?? A(n, D))) ?? l.find((e) => e.classList.contains(o.classes)) ?? l[0] ?? (n && A(n, O)) ?? A(e, O);
|
|
20
|
-
}
|
|
21
|
-
function M(e, t) {
|
|
22
|
-
let n = e?.closest("[data-dialog-frame]");
|
|
23
|
-
e && n && !n.closest("[data-closed]") && ((t?.isConnected && n.contains(t) && k(t) ? t : null) ?? j(n, e))?.focus({ preventScroll: !0 });
|
|
24
|
-
}
|
|
25
|
-
//#endregion
|
|
26
|
-
//#region src/components/dialog/dialog.tsx
|
|
27
|
-
var N = { size: {
|
|
28
|
-
sm: { classes: "w-440" },
|
|
29
|
-
md: { classes: "w-560" },
|
|
30
|
-
lg: { classes: "w-720" }
|
|
31
|
-
} }, P = { size: "md" }, F = "fixed inset-0 z-50 bg-overlay backdrop-motion", I = "fixed inset-0 z-50 flex items-center justify-center p-16", L = "relative flex dialog-limits flex-col overflow-hidden rounded-dialog bg-raised text-fg shadow-dialog outline-none dialog-motion", R = /* @__PURE__ */ f(!1);
|
|
32
|
-
function z() {
|
|
33
|
-
let e = v(null), [t, n] = y(!1), r = h(() => {
|
|
34
|
-
let t = e.current;
|
|
35
|
-
t && !t.closest("[data-resizing]") && n(t.scrollHeight - t.scrollTop - t.clientHeight > 1);
|
|
36
|
-
}, []);
|
|
37
|
-
return g(() => {
|
|
38
|
-
let t = e.current;
|
|
39
|
-
if (t) return r(), t.addEventListener("scroll", r, { passive: !0 }), window.addEventListener("resize", r), () => {
|
|
40
|
-
t.removeEventListener("scroll", r), window.removeEventListener("resize", r);
|
|
41
|
-
};
|
|
42
|
-
}, [r]), {
|
|
43
|
-
ref: e,
|
|
44
|
-
under: t,
|
|
45
|
-
check: r
|
|
46
|
-
};
|
|
47
|
-
}
|
|
48
|
-
function B(e, t) {
|
|
49
|
-
let n = v(!1);
|
|
50
|
-
g(() => {
|
|
51
|
-
let r = !n.current;
|
|
52
|
-
n.current = !0;
|
|
53
|
-
let i = document.activeElement;
|
|
54
|
-
if (r || t || !e || i && i !== document.body || e.matches("[data-ending-style], [data-closed]")) return;
|
|
55
|
-
let a = e.querySelector("[data-dialog-frame]");
|
|
56
|
-
a && j(a)?.focus({ preventScroll: !0 });
|
|
57
|
-
});
|
|
58
|
-
}
|
|
59
|
-
function V(e) {
|
|
60
|
-
let [t, n] = y(null);
|
|
61
|
-
return [t, h((t) => n(e ? t : t?.parentElement ?? null), [e])];
|
|
62
|
-
}
|
|
63
|
-
function H({ title: t, description: n, children: i, footer: a, onSubmit: s, hideClose: c, headerStart: l, size: d = "md", className: f, inline: p, busy: m }) {
|
|
64
|
-
let { ref: h, under: g, check: _ } = z(), [v, y] = V(p);
|
|
65
|
-
u(v, _), B(v, p);
|
|
66
|
-
let C = r(), E = p ? "h2" : T.Title, D = /* @__PURE__ */ x(o, {
|
|
67
|
-
icon: w,
|
|
68
|
-
"aria-label": C("dialog.close", "Close"),
|
|
69
|
-
tooltip: !1,
|
|
70
|
-
disabled: !!m
|
|
71
|
-
}), O = c ? null : p ? D : /* @__PURE__ */ x(T.Close, { render: D }), k = p ? "p" : T.Description;
|
|
72
|
-
return /* @__PURE__ */ x(R, {
|
|
73
|
-
value: !!m,
|
|
74
|
-
children: /* @__PURE__ */ S("div", {
|
|
75
|
-
ref: y,
|
|
76
|
-
"data-dialog-frame": "",
|
|
77
|
-
className: e("flex min-h-0 flex-col", p ? "rounded-dialog bg-raised shadow-dialog" : "flex-1 self-center dialog-limits", N.size[d].classes, f),
|
|
78
|
-
onKeyDown: (e) => {
|
|
79
|
-
s && !m && e.key === "Enter" && (e.metaKey || e.ctrlKey) && (e.preventDefault(), s());
|
|
80
|
-
},
|
|
81
|
-
children: [
|
|
82
|
-
l === void 0 ? /* @__PURE__ */ S("div", {
|
|
83
|
-
className: "flex items-start gap-12 px-24 pt-20 pb-4",
|
|
84
|
-
children: [/* @__PURE__ */ S("div", {
|
|
85
|
-
className: "flex min-w-0 flex-1 flex-col gap-4 pt-4",
|
|
86
|
-
children: [/* @__PURE__ */ x(E, {
|
|
87
|
-
className: "text-title-sm font-semibold text-fg text-balance",
|
|
88
|
-
children: t
|
|
89
|
-
}), n && /* @__PURE__ */ x(k, {
|
|
90
|
-
className: "text-body text-fg-secondary text-pretty",
|
|
91
|
-
children: n
|
|
92
|
-
})]
|
|
93
|
-
}), O && /* @__PURE__ */ x("span", {
|
|
94
|
-
className: "-mr-8 flex",
|
|
95
|
-
children: O
|
|
96
|
-
})]
|
|
97
|
-
}) : /* @__PURE__ */ S(b, { children: [/* @__PURE__ */ S("div", {
|
|
98
|
-
className: "flex h-32 items-center justify-between px-16 pt-16 box-content",
|
|
99
|
-
children: [/* @__PURE__ */ x("span", {
|
|
100
|
-
className: "flex items-center",
|
|
101
|
-
children: l
|
|
102
|
-
}), O]
|
|
103
|
-
}), /* @__PURE__ */ S("div", {
|
|
104
|
-
className: "flex flex-col gap-4 px-24 pt-8 pb-4",
|
|
105
|
-
children: [/* @__PURE__ */ x(E, {
|
|
106
|
-
className: "text-title-sm font-semibold text-fg text-balance",
|
|
107
|
-
children: t
|
|
108
|
-
}), n && /* @__PURE__ */ x(k, {
|
|
109
|
-
className: "text-body text-fg-secondary text-pretty",
|
|
110
|
-
children: n
|
|
111
|
-
})]
|
|
112
|
-
})] }),
|
|
113
|
-
i && /* @__PURE__ */ x("div", {
|
|
114
|
-
ref: h,
|
|
115
|
-
"data-dialog-body": "",
|
|
116
|
-
className: e("min-h-0 flex-1 overflow-y-auto px-24 pt-16 scrollbar-quiet", a ? "pb-8" : "pb-24"),
|
|
117
|
-
children: i
|
|
118
|
-
}),
|
|
119
|
-
a && /* @__PURE__ */ x("div", {
|
|
120
|
-
"data-dialog-footer": "",
|
|
121
|
-
className: e("flex shrink-0 flex-wrap items-center justify-end gap-8 px-24 pt-16 pb-20 transition-control", g && "hairline-t"),
|
|
122
|
-
children: a
|
|
123
|
-
})
|
|
124
|
-
]
|
|
125
|
-
})
|
|
126
|
-
});
|
|
127
|
-
}
|
|
128
|
-
function U() {
|
|
129
|
-
let e = [...document.querySelectorAll("[role=dialog], [role=alertdialog]")].pop(), t = e?.querySelector("[data-dialog-frame]");
|
|
130
|
-
return (t && j(t)) ?? e ?? !0;
|
|
131
|
-
}
|
|
132
|
-
var W = /* @__PURE__ */ p(function(r, i) {
|
|
133
|
-
let { open: a, defaultOpen: o, onOpenChange: s, trigger: u, size: d = "md", inline: f, busy: p } = r, m = c(a, U), h = t(), g = l(!f && a);
|
|
134
|
-
return f ? /* @__PURE__ */ x(H, { ...r }) : /* @__PURE__ */ S(T.Root, {
|
|
135
|
-
...a === void 0 ? {} : { open: a },
|
|
136
|
-
...o === void 0 ? {} : { defaultOpen: o },
|
|
137
|
-
onOpenChange: (e, t) => {
|
|
138
|
-
if (!e && p) return t.cancel();
|
|
139
|
-
s?.(e);
|
|
140
|
-
},
|
|
141
|
-
onOpenChangeComplete: g,
|
|
142
|
-
children: [u && /* @__PURE__ */ x(T.Trigger, { render: u }), /* @__PURE__ */ S(T.Portal, {
|
|
143
|
-
container: h,
|
|
144
|
-
children: [/* @__PURE__ */ x(T.Backdrop, { className: F }), /* @__PURE__ */ x(T.Viewport, {
|
|
145
|
-
className: I,
|
|
146
|
-
children: /* @__PURE__ */ x(T.Popup, {
|
|
147
|
-
ref: i,
|
|
148
|
-
initialFocus: m.initialFocus,
|
|
149
|
-
finalFocus: m.finalFocus,
|
|
150
|
-
className: e(L, N.size[d].classes),
|
|
151
|
-
children: /* @__PURE__ */ x(n, {
|
|
152
|
-
inset: !1,
|
|
153
|
-
children: /* @__PURE__ */ x(H, { ...r })
|
|
154
|
-
})
|
|
155
|
-
})
|
|
156
|
-
})]
|
|
157
|
-
})]
|
|
158
|
-
});
|
|
159
|
-
});
|
|
160
|
-
process.env.NODE_ENV !== "production" && (W.displayName = "Dialog");
|
|
161
|
-
function G({ children: e }) {
|
|
162
|
-
let t = m(R);
|
|
163
|
-
return /* @__PURE__ */ x(T.Close, { render: t ? d(e, { disabled: !0 }) : e });
|
|
164
|
-
}
|
|
165
|
-
process.env.NODE_ENV !== "production" && (G.displayName = "Dialog.Close");
|
|
166
|
-
var K = /* @__PURE__ */ Object.assign(W, { Close: G }), q = { tone: {
|
|
167
|
-
danger: { classes: "bg-danger-tint text-danger-text" },
|
|
168
|
-
warning: { classes: "bg-warning-tint text-warning-text" },
|
|
169
|
-
info: { classes: "bg-info-tint text-info-text" }
|
|
170
|
-
} }, J = { tone: "danger" };
|
|
171
|
-
function Y({ title: t, description: n, confirmLabel: i, cancelLabel: o, onConfirm: c, tone: l = "danger", confirmText: d, loading: f, inline: p, close: m, busy: h, setBusy: g }) {
|
|
172
|
-
let [_, b] = y(""), C = v(!1), w = r(), [T, D] = V(p);
|
|
173
|
-
u(T);
|
|
174
|
-
let O = o ?? w("alertDialog.cancel", "Cancel"), [k, A = ""] = w("alertDialog.typeToConfirm", "Type {text} to confirm").split("{text}"), j = p ? "h2" : E.Title, M = p ? "p" : E.Description, N = !d || _ === d, P = async () => {
|
|
175
|
-
if (!N || f || C.current) return;
|
|
176
|
-
let e = c();
|
|
177
|
-
if (!(e instanceof Promise)) return m();
|
|
178
|
-
C.current = !0, g(!0);
|
|
179
|
-
let t = await e.then(() => !0, () => !1);
|
|
180
|
-
C.current = !1, g(!1), t && m();
|
|
181
|
-
};
|
|
182
|
-
return /* @__PURE__ */ S("div", {
|
|
183
|
-
ref: D,
|
|
184
|
-
className: e("flex w-440 flex-col gap-20 p-24", p ? "rounded-dialog bg-raised shadow-dialog" : "self-center dialog-limits"),
|
|
185
|
-
children: [
|
|
186
|
-
/* @__PURE__ */ S("div", {
|
|
187
|
-
className: "flex flex-col gap-6",
|
|
188
|
-
children: [/* @__PURE__ */ x(j, {
|
|
189
|
-
className: "text-title-sm font-semibold text-fg text-balance",
|
|
190
|
-
children: t
|
|
191
|
-
}), /* @__PURE__ */ x(M, {
|
|
192
|
-
className: "text-body text-fg-secondary text-pretty",
|
|
193
|
-
children: n
|
|
194
|
-
})]
|
|
195
|
-
}),
|
|
196
|
-
d && /* @__PURE__ */ x(s, {
|
|
197
|
-
label: /* @__PURE__ */ S("span", {
|
|
198
|
-
className: "font-regular text-fg-secondary",
|
|
199
|
-
children: [
|
|
200
|
-
k,
|
|
201
|
-
/* @__PURE__ */ x("span", {
|
|
202
|
-
className: "mono font-medium text-fg",
|
|
203
|
-
children: d
|
|
204
|
-
}),
|
|
205
|
-
A
|
|
206
|
-
]
|
|
207
|
-
}),
|
|
208
|
-
value: _,
|
|
209
|
-
onChange: (e) => b(e.target.value),
|
|
210
|
-
autoComplete: "off",
|
|
211
|
-
spellCheck: !1,
|
|
212
|
-
onKeyDown: (e) => e.key === "Enter" && P()
|
|
213
|
-
}),
|
|
214
|
-
/* @__PURE__ */ S("div", {
|
|
215
|
-
className: "flex flex-wrap justify-end gap-8",
|
|
216
|
-
children: [p ? /* @__PURE__ */ x(a, { children: O }) : /* @__PURE__ */ x(E.Close, { render: /* @__PURE__ */ x(a, {
|
|
217
|
-
disabled: h || !!f,
|
|
218
|
-
children: O
|
|
219
|
-
}) }), /* @__PURE__ */ x(a, {
|
|
220
|
-
variant: l === "danger" ? "danger" : "primary",
|
|
221
|
-
onClick: P,
|
|
222
|
-
disabled: !N,
|
|
223
|
-
loading: h || f,
|
|
224
|
-
children: i
|
|
225
|
-
})]
|
|
226
|
-
})
|
|
227
|
-
]
|
|
228
|
-
});
|
|
229
|
-
}
|
|
230
|
-
function X(r) {
|
|
231
|
-
let { open: i, defaultOpen: a, onOpenChange: o, trigger: s, inline: u } = r, [d, f] = y(a ?? !1), p = i ?? d, m = (e) => {
|
|
232
|
-
i === void 0 && f(e), o?.(e);
|
|
233
|
-
}, [h, g] = y(!1), _ = c(p), v = t(), b = l(!u && p);
|
|
234
|
-
return u ? /* @__PURE__ */ x(Y, {
|
|
235
|
-
...r,
|
|
236
|
-
close: () => void 0,
|
|
237
|
-
busy: h,
|
|
238
|
-
setBusy: g
|
|
239
|
-
}) : /* @__PURE__ */ S(E.Root, {
|
|
240
|
-
open: p,
|
|
241
|
-
onOpenChange: (e, t) => {
|
|
242
|
-
if (!e && (h || r.loading)) return t.cancel();
|
|
243
|
-
m(e);
|
|
244
|
-
},
|
|
245
|
-
onOpenChangeComplete: b,
|
|
246
|
-
children: [s && /* @__PURE__ */ x(E.Trigger, { render: s }), /* @__PURE__ */ S(E.Portal, {
|
|
247
|
-
container: v,
|
|
248
|
-
children: [/* @__PURE__ */ x(E.Backdrop, { className: F }), /* @__PURE__ */ x(E.Viewport, {
|
|
249
|
-
className: I,
|
|
250
|
-
children: /* @__PURE__ */ x(E.Popup, {
|
|
251
|
-
initialFocus: _.initialFocus,
|
|
252
|
-
finalFocus: _.finalFocus,
|
|
253
|
-
className: e(L, "w-440"),
|
|
254
|
-
children: /* @__PURE__ */ x(n, {
|
|
255
|
-
inset: !1,
|
|
256
|
-
children: /* @__PURE__ */ x(Y, {
|
|
257
|
-
...r,
|
|
258
|
-
close: () => m(!1),
|
|
259
|
-
busy: h,
|
|
260
|
-
setBusy: g
|
|
261
|
-
})
|
|
262
|
-
})
|
|
263
|
-
})
|
|
264
|
-
})]
|
|
265
|
-
})]
|
|
266
|
-
});
|
|
267
|
-
}
|
|
268
|
-
process.env.NODE_ENV !== "production" && (X.displayName = "AlertDialog");
|
|
269
|
-
var Z = N, ee = P, Q = (e) => e?.closest("[data-dialog-body]") ?? null;
|
|
270
|
-
function $({ layers: e, layer: t, onLayerChange: n, ...i }) {
|
|
271
|
-
let [a, s] = y(0), c = r(), l = t ?? a, u = l > 0 && l < e.length ? l : 0, d = v([]), f = v([]), p = v([]), m = v(u), h = v(u);
|
|
272
|
-
m.current !== u && (p.current[m.current] = Q(d.current[m.current])?.scrollTop ?? 0, m.current = u), _(() => {
|
|
273
|
-
let e = h.current;
|
|
274
|
-
if (h.current = u, e === u) return;
|
|
275
|
-
let t = u < e;
|
|
276
|
-
t || (f.current[u] = null), f.current.length = u + 1;
|
|
277
|
-
let n = d.current[u], r = Q(n);
|
|
278
|
-
r && (r.scrollTop = t ? p.current[u] ?? 0 : 0), M(n, t ? f.current[u] : null);
|
|
279
|
-
}, [u]);
|
|
280
|
-
let g = (e) => {
|
|
281
|
-
i.busy || (t === void 0 && s(e), n?.(e));
|
|
282
|
-
}, b = e.slice(0, u + 1), S = b[u];
|
|
283
|
-
if (!S) return null;
|
|
284
|
-
let w = (e) => (t) => {
|
|
285
|
-
t.target instanceof HTMLElement && (f.current[e] = t.target);
|
|
286
|
-
};
|
|
287
|
-
return /* @__PURE__ */ x(K, {
|
|
288
|
-
...i,
|
|
289
|
-
title: S.title,
|
|
290
|
-
description: S.description,
|
|
291
|
-
footer: S.footer ? b.map((e, t) => e.footer ? /* @__PURE__ */ x("div", {
|
|
292
|
-
hidden: t !== u,
|
|
293
|
-
className: "contents",
|
|
294
|
-
onFocus: w(t),
|
|
295
|
-
children: e.footer
|
|
296
|
-
}, t) : null) : void 0,
|
|
297
|
-
headerStart: u > 0 ? /* @__PURE__ */ x(o, {
|
|
298
|
-
icon: C,
|
|
299
|
-
"aria-label": c("dialog.back", "Back"),
|
|
300
|
-
onClick: () => g(u - 1),
|
|
301
|
-
disabled: !!i.busy,
|
|
302
|
-
className: "animate-layer-in"
|
|
303
|
-
}, "back") : null,
|
|
304
|
-
children: b.map((e, t) => /* @__PURE__ */ x("div", {
|
|
305
|
-
ref: (e) => {
|
|
306
|
-
d.current[t] = e;
|
|
307
|
-
},
|
|
308
|
-
hidden: t !== u,
|
|
309
|
-
className: "animate-layer-in",
|
|
310
|
-
onFocus: w(t),
|
|
311
|
-
children: e.content
|
|
312
|
-
}, t))
|
|
313
|
-
});
|
|
314
|
-
}
|
|
315
|
-
process.env.NODE_ENV !== "production" && ($.displayName = "LayerDialog");
|
|
316
|
-
//#endregion
|
|
317
|
-
export { P as a, Z as c, q as i, $ as l, K as n, N as o, J as r, ee as s, X as t, M as u };
|
|
318
|
-
|
|
319
|
-
//# sourceMappingURL=dialog-LNKgPEsV.js.map
|
|
@@ -1 +0,0 @@
|
|
|
1
|
-
{"version":3,"file":"dialog-LNKgPEsV.js","names":["BaseDialog","__icon_Cancel01Icon","_Fragment","Dialog","BaseAlertDialog","AlertDialog","__icon_ArrowLeft01Icon","cn","usePortalContainer","InsetContent","useUiText","Button","IconButton","Input","useRestoreFocus","useScopedDialog","useResizeMotion","Fragment$1","DIALOG_FIELD","FOCUSABLE","usable","el","firstUsable","scope","selector","initialDialogControl","content","frame","footer","actions","dangerSecondary","KAESO_BUTTON_VARIANTS","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","useBox","setBox","DialogFrame","boxRef","t","Title","Dialog","closeButton","Cancel01Icon","busy","close","hideClose","Description","size","className","onSubmit","headerStart","title","description","children","focusFirstControl","open","Root","props","focus","container","settled","defaultOpen","o","details","trigger","Close","use","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\"]';\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 { 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 { 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} as const;\nexport const KAESO_DIALOG_DEFAULT_VARIANTS = { size: \"md\" } as const;\n\nconst BACKDROP = \"fixed inset-0 z-50 bg-overlay backdrop-motion\";\nconst DIALOG_VIEWPORT = \"fixed inset-0 z-50 flex items-center 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\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 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}\n\nfunction DialogFrame({ title, description, children, footer, onSubmit, hideClose, headerStart, size = \"md\", className, inline, busy }: 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\" : \"flex-1 self-center dialog-limits\",\n KAESO_DIALOG_VARIANTS.size[size].classes,\n className,\n )}\n onKeyDown={(e: KeyboardEvent) => {\n if (onSubmit && !busy && e.key === \"Enter\" && (e.metaKey || e.ctrlKey)) {\n e.preventDefault();\n onSubmit();\n }\n }}\n >\n {headerStart !== undefined ? (\n <>\n <div className=\"flex h-32 items-center justify-between px-16 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=\"-mr-8 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 {children}\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\", inline, busy } = props;\n const focus = useRestoreFocus(open, focusFirstControl);\n const container = usePortalContainer();\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 >\n {trigger && <BaseDialog.Trigger render={trigger} />}\n <BaseDialog.Portal container={container}>\n <BaseDialog.Backdrop className={BACKDROP} />\n <BaseDialog.Viewport className={DIALOG_VIEWPORT}>\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)}\n >\n <InsetContent inset={false}>\n <DialogFrame {...props} />\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 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} />\n <BaseAlertDialog.Viewport className={DIALOG_VIEWPORT}>\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,IAAMkB,IACJ,sUACIC,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,MAAoBC,EAAsB,SACjFC,IAAOH,EAAQ,QAAQ,MAAM,CAACI,EAAE,UAAU,SAASC,EAAO,OAAO,KAAK,CAACD,EAAE,UAAU,SAASH,EAAgB,OAAO,CAAC;CAC1H,QACGJ,MAAYJ,EAAYI,GAAS,kBAAkB,KAAKJ,EAAYI,GAASR,CAAY,OAC1Fc,EAAK,MAAM,MAAMC,EAAE,UAAU,SAASE,EAAQ,OAAO,CAAC,KACtDH,EAAK,OACJN,KAAWJ,EAAYI,GAASP,CAAS,MAC1CG,EAAYK,GAAOR,CAAS;AAEhC;AAEA,SAAgBiB,EAAmB,GAAyC,GAA2C;CACrH,IAAMT,IAAQU,GAAS,QAAqB,qBAAqB;CACjE,AAAKA,KAAYV,KAAS,GAAM,QAAQ,eAAe,OAC1CW,GAAU,eAAeX,EAAM,SAASW,CAAQ,KAAKlB,EAAOkB,CAAQ,IAAIA,IAAW,SACvFb,EAAqBE,GAAOU,CAAO,EAAA,EAAI,MAAM,EAAE,eAAe,GAAK,CAAC;AAC/E;;;ACCA,IAAaE,IAAwB,EACnC,MAAM;CACJ,IAAI,EAAE,SAAS,QAAQ;CACvB,IAAI,EAAE,SAAS,QAAQ;CACvB,IAAI,EAAE,SAAS,QAAQ;AACzB,EACF,GACaC,IAAgC,EAAE,MAAM,KAAK,GAEpDC,IAAW,iDACXC,IAAkB,4DAClBC,IAAe,kIAEfC,IAA6B,kBAAc,EAAK;AAEtD,SAASC,IAA0C;CACjD,IAAMC,IAAMC,EAAiB,IAAI,GAC3B,CAACC,GAAOC,KAAYC,EAAS,EAAK,GAClCC,IAAQC,QAAkB;EAC9B,IAAM/B,IAAKyB,EAAI;EACf,AAAIzB,KAAM,CAACA,EAAG,QAAQ,iBAAiB,KAAG4B,EAAS5B,EAAG,eAAeA,EAAG,YAAYA,EAAG,eAAe,CAAC;CACzG,GAAG,CAAC,CAAC;CAYL,OAXAgC,QAAgB;EACd,IAAMhC,IAAKyB,EAAI;EACf,IAAKzB,GAIL,OAHA8B,EAAM,GACN9B,EAAG,iBAAiB,UAAU8B,GAAO,EAAE,SAAS,GAAK,CAAC,GACtD,OAAO,iBAAiB,UAAUA,CAAK,SAC1B;GAEX,AADA9B,EAAG,oBAAoB,UAAU8B,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,IAAMhC,IAAQgC,EAAI,cAA2B,qBAAqB;EAClE,AAAIhC,KAAOF,EAAqBE,CAAK,CAAC,EAAE,MAAM,EAAE,eAAe,GAAK,CAAC;CACvE,CAAC;AACH;AAEA,SAASiC,EAAO,GAA6B;CAC3C,IAAM,CAACD,GAAKE,KAAUX,EAA6B,IAAI;CAEvD,OAAO,CAACS,GADIP,GAAa,MAA2BS,EAAOH,IAASrC,IAAMA,GAAI,iBAAiB,IAAK,GAAG,CAACqC,CAAM,CACjG,CAAG;AAClB;AAoBA,SAASI,EAAY,EAAE,UAAO,gBAAa,aAAU,WAAQ,aAAU,cAAW,gBAAa,UAAO,MAAM,cAAW,WAAQ,WAAqB;CAClJ,IAAM,EAAE,QAAK,UAAO,aAAUjB,EAAiC,GACzD,CAACc,GAAKI,KAAUH,EAAOF,CAAM;CAEnC,AADA1C,EAAgB2C,GAAKR,CAAK,GAC1BG,EAAaK,GAAKD,CAAM;CACxB,IAAMM,IAAItD,EAAU,GACduD,IAAQP,IAAS,OAAO1D,EAAW,OACnCmE,IAAc,kBAACvD,GAAD;EAAY,MAAMX;EAAqB,cAAY+D,EAAE,gBAAgB,OAAO;EAAG,SAAS;EAAO,UAAU,CAAC,CAACK;CAAO,CAAA,GAChIC,IAAQC,IAAY,OAAOb,IAASS,IAAc,kBAACnE,EAAW,OAAZ,EAAkB,QAAQmE,EAAc,CAAA,GAC1FK,IAAcd,IAAS,MAAM1D,EAAW;CAC9C,OACE,kBAAC4C,GAAD;EAAY,OAAO,CAAC,CAACyB;EACnB,UAAA,kBAAC,OAAD;GACE,KAAKN;GACL,qBAAkB;GAClB,WAAWxD,EACT,yBACAmD,IAAS,2CAA2C,oCACpDnB,EAAsB,KAAKkC,EAAK,CAAC,SACjCC,CACF;GACA,YAAY,MAAqB;IAC/B,AAAIC,KAAY,CAACN,KAAQ,EAAE,QAAQ,YAAY,EAAE,WAAW,EAAE,aAC5D,EAAE,eAAe,GACjBM,EAAS;GAEb;GAdF,UAAA;IAgBGC,MAAgB,KAAA,IAYf,kBAAC,OAAD;KAAK,WAAU;KAAf,UAAA,CACE,kBAAC,OAAD;MAAK,WAAU;MAAf,UAAA,CACE,kBAACX,GAAD;OAAO,WAAU;OAAoD,UAAAY;MAAa,CAAA,GACjFC,KAAe,kBAACN,GAAD;OAAa,WAAU;OAA2C,UAAAM;MAAyB,CAAA,CACxG;KACJ,CAAA,GAAAR,KAAS,kBAAC,QAAD;MAAM,WAAU;MAAc,UAAAA;KAAY,CAAA,CACjD;I,KAjBL,kBAAApE,GAAA,EAAA,UAAA,CACE,kBAAC,OAAD;KAAK,WAAU;KAAf,UAAA,CACE,kBAAC,QAAD;MAAM,WAAU;MAAqB,UAAA0E;KAAkB,CAAA,GACtDN,CACE;IACL,CAAA,GAAA,kBAAC,OAAD;KAAK,WAAU;KAAf,UAAA,CACE,kBAACL,GAAD;MAAO,WAAU;MAAoD,UAAAY;KAAa,CAAA,GACjFC,KAAe,kBAACN,GAAD;MAAa,WAAU;MAA2C,UAAAM;KAAyB,CAAA,CACxG;IACL,CAAA,CAAA,EAAA,CAAA;IAUHC,KACC,kBAAC,OAAD;KAAU;KAAK,oBAAiB;KAAG,WAAWxE,EAAG,8DAA8DqB,IAAS,SAAS,OAAO;KACrI;IACE,CAAA;IAENA,KACC,kBAAC,OAAD;KACE,sBAAmB;KACnB,WAAWrB,EAAG,+FAA+FyC,KAAS,YAAY;KAEjI,UAAApB;IACE,CAAA;GAEJ;;CACK,CAAA;AAEhB;AAEA,SAASoD,IAAwC;CAC/C,IAAMC,IAAO,CAAC,GAAG,SAAS,iBAA8B,mCAAmC,CAAC,CAAC,CAAC,IAAI,GAC5FtD,IAAQsD,GAAM,cAA2B,qBAAqB;CACpE,QAAQtD,KAASF,EAAqBE,CAAK,MAAMsD,KAAQ;AAC3D;AAEA,IAAMC,IAAuB,kBAAwC,SAAgB,GAAO,GAAK;CAC/F,IAAM,EAAE,SAAM,gBAAa,iBAAc,YAAS,UAAO,MAAM,WAAQ,YAASC,GAC1EC,IAAQtE,EAAgBmE,GAAMD,CAAiB,GAC/CK,IAAY7E,EAAmB,GAC/B8E,IAAUvE,EAAgB,MAAiBkE,CAAI;CAErD,OADIvB,IAAe,kBAACI,GAAD,EAAa,GAAIqB,EAAQ,CAAA,IAE1C,kBAACnF,EAAW,MAAZ;EACE,GAAKiF,MAAS,KAAA,IAAuB,CAAC,IAAZ,EAAE,QAAK;EACjC,GAAKM,MAAgB,KAAA,IAA8B,CAAC,IAAnB,EAAE,eAAY;EAC/C,eAAe,GAAY,MAAgD;GACzE,IAAI,CAACC,KAAKnB,GAAM,OAAOoB,EAAQ,OAAO;GACtC,IAAeD,CAAC;EAClB;EACA,sBAAsBF;EAPxB,UAAA,CASGI,KAAW,kBAAC1F,EAAW,SAAZ,EAAoB,QAAQ0F,EAAU,CAAA,GAClD,kBAAC1F,EAAW,QAAZ;GAA8B;GAA9B,UAAA,CACE,kBAACA,EAAW,UAAZ,EAAqB,WAAWyC,EAAW,CAAA,GAC3C,kBAACzC,EAAW,UAAZ;IAAqB,WAAW0C;IAC9B,UAAA,kBAAC1C,EAAW,OAAZ;KACO;KACL,cAAcoF,EAAM;KACpB,YAAYA,EAAM;KAClB,WAAW7E,EAAGoC,GAAcJ,EAAsB,KAAKkC,EAAK,CAAC,OAAO;KAEpE,UAAA,kBAAChE,GAAD;MAAc,OAAO;MACnB,UAAA,kBAACqD,GAAD,EAAa,GAAIqB,EAAQ,CAAA;KACb,CAAA;IACE,CAAA;GACC,CAAA,CACJ;EACJ,CAAA,CAAA;;AAErB,CAAC;AACD,QAAA,IAAA,aAA6B,iBAAc,EAAK,cAAc;AAE9D,SAASQ,EAAM,EAAE,eAA4E;CAC3F,IAAMtB,IAAOuB,EAAIhD,CAAU;CAC3B,OAAO,kBAAC5C,EAAW,OAAZ,EAAkB,QAAQqE,IAAOwB,EAAad,GAAU,EAAE,UAAU,GAAK,CAAC,IAAIA,EAAW,CAAA;AAClG;AACA,QAAA,IAAA,aAA6B,iBAAc,EAAM,cAAc;AAE/D,IAAa5E,IAAyB,uBAAO,OAAO+E,GAAM,EAAE,SAAM,CAAC,GAEtDa,IAA8B,EACzC,MAAM;CACJ,QAAQ,EAAE,SAAS,kCAAkC;CACrD,SAAS,EAAE,SAAS,oCAAoC;CACxD,MAAM,EAAE,SAAS,8BAA8B;AACjD,EACF,GACaC,IAAsC,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,KAAYlD,EAAS,EAAE,GAC/BmD,IAAUtD,EAAO,EAAK,GACtBiB,IAAItD,EAAU,GACd,CAACiD,GAAKI,KAAUH,EAAOF,CAAM;CACnC,EAAgBC,CAAG;CACnB,IAAM2C,IAAcJ,KAAclC,EAAE,sBAAsB,QAAQ,GAC5D,CAACuC,GAAYC,IAAY,MAAMxC,EAAE,6BAA6B,wBAAwB,CAAC,CAAC,MAAM,QAAQ,GACtGC,IAAQP,IAAS,OAAOtD,EAAgB,OACxCoE,IAAcd,IAAS,MAAMtD,EAAgB,aAC7CsG,IAAK,CAACC,KAAeR,MAAUQ,GAC/BC,IAAU,YAAY;EAC1B,IAAI,CAACF,KAAMG,KAAWR,EAAQ,SAAS;EACvC,IAAMS,IAAIC,EAAU;EACpB,IAAI,EAAED,aAAa,UAAU,OAAOxC,EAAM;EAE1C,AADA,EAAQ,UAAU,IAClB0C,EAAQ,EAAI;EACZ,IAAMC,IAAO,MAAMH,EAAE,WACb,UACA,EACR;EAGA,AAFA,EAAQ,UAAU,IAClBE,EAAQ,EAAK,GACTC,KAAM3C,EAAM;CAClB;CACA,OACE,kBAAC,OAAD;EAAK,KAAKP;EAAQ,WAAWxD,EAAG,mCAAmCmD,IAAS,2CAA2C,2BAA2B;EAAlJ,UAAA;GACE,kBAAC,OAAD;IAAK,WAAU;IAAf,UAAA,CACE,kBAACO,GAAD;KAAO,WAAU;KAAoD,UAAAY;IAAa,CAAA,GAClF,kBAACL,GAAD;KAAa,WAAU;KAA2C,UAAAM;IAAyB,CAAA,CACxF;;GACJ6B,KACC,kBAAC9F,GAAD;IACE,OACE,kBAAC,QAAD;KAAM,WAAU;KAAhB,UAAA;MACG0F;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,CACGlD,IAAS,kBAAC/C,GAAD,EAAA,UAAS2F,EAAoB,CAAA,IAAI,kBAAClG,EAAgB,OAAjB,EAAuB,QAAQ,kBAACO,GAAD;KAAQ,UAAU0D,KAAQ,CAAC,CAACwC;KAAU,UAAAP;IAAoB,CAAA,EAAI,CAAA,GACxI,kBAAC3F,GAAD;KAAQ,SAASuG,MAAS,WAAW,WAAW;KAAW,SAASN;KAAS,UAAU,CAACF;KAAI,SAASrC,KAAQwC;KAC1G,UAAAM;IACK,CAAA,CACL;;EACF;;AAET;AAEA,SAAgB9G,EAAY,GAAyB;CACnD,IAAM,EAAE,SAAM,gBAAa,iBAAc,YAAS,cAAW8E,GACvD,CAACkC,GAAOC,KAAYpE,EAASqC,KAAe,EAAK,GACjDgC,IAAStC,KAAQoC,GACjBG,KAAW,MAAe;EAE9B,AADIvC,MAAS,KAAA,KAAWqC,EAAS9B,CAAC,GAClCiC,IAAejC,CAAC;CAClB,GACM,CAACnB,GAAM2C,KAAW9D,EAAS,EAAK,GAChCkC,IAAQtE,EAAgByG,CAAM,GAC9BlC,IAAY7E,EAAmB,GAC/B8E,IAAUvE,EAAgB,MAAiBwG,CAAM;CAEvD,OADI7D,IAAe,kBAACuC,GAAD;EAAY,GAAId;EAAO,aAAa,KAAA;EAAiB;EAAe;CAAU,CAAA,IAE/F,kBAAC/E,EAAgB,MAAjB;EACE,MAAMmH;EACN,eAAe,GAAY,MAAqD;GAC9E,IAAI,CAAC/B,MAAMnB,KAAQc,EAAM,UAAU,OAAOM,EAAQ,OAAO;GACzD,EAAQD,CAAC;EACX;EACA,sBAAsBF;EANxB,UAAA,CAQGI,KAAW,kBAACtF,EAAgB,SAAjB,EAAyB,QAAQsF,EAAU,CAAA,GACvD,kBAACtF,EAAgB,QAAjB;GAAmC;GAAnC,UAAA,CACE,kBAACA,EAAgB,UAAjB,EAA0B,WAAWqC,EAAW,CAAA,GAChD,kBAACrC,EAAgB,UAAjB;IAA0B,WAAWsC;IACnC,UAAA,kBAACtC,EAAgB,OAAjB;KAAuB,cAAcgF,EAAM;KAAc,YAAYA,EAAM;KAAY,WAAW7E,EAAGoC,GAAc,OAAO;KACxH,UAAA,kBAAClC,GAAD;MAAc,OAAO;MACnB,UAAA,kBAACwF,GAAD;OAAY,GAAId;OAAO,aAAaqC,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,IAA8BnF,GAC9BoF,KAAsCnF,GAe7CoF,KAAU,MAAuCvG,GAAI,QAAqB,oBAAoB,KAAK;AAEzG,SAAgBwG,EAAY,EAAE,WAAQ,UAAO,kBAAe,GAAG1C,KAA2B;CACxF,IAAM,CAACkC,GAAOC,KAAYpE,EAAS,CAAC,GAC9Bc,IAAItD,EAAU,GACdoH,IAASC,KAASV,GAClBW,IAAQF,IAAS,KAAKA,IAASG,EAAO,SAASH,IAAS,GACxDI,IAAWnF,EAAkC,CAAC,CAAC,GAC/CoF,IAAUpF,EAA+B,CAAC,CAAC,GAC3CqF,IAAOrF,EAAiB,CAAC,CAAC,GAC1BsF,IAAOtF,EAAOiF,CAAK,GACnBM,IAAQvF,EAAOiF,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,IAAM3F,IAAU6F,EAAS,QAAQF,IAC3BU,IAAOd,EAAOvF,CAAO;EAE3B,AADIqG,MAAM,EAAK,YAAYD,IAAQL,EAAK,QAAQJ,MAAU,IAAK,IAC/D5F,EAAmBC,GAASoG,IAAON,EAAQ,QAAQH,KAAS,IAAI;CAClE,GAAG,CAACA,CAAK,CAAC;CACV,IAAMW,KAAM,MAAc;EACxB,AAAIxD,EAAM,SACN4C,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,kBAAC9I,GAAD;EACE,GAAIgF;EACJ,OAAO4D,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,kBAACpH,GAAD;GAEE,MAAMN;GACN,cAAY0D,EAAE,eAAe,MAAM;GACnC,eAAe2E,EAAGX,IAAQ,CAAC;GAC3B,UAAU,CAAC,CAAC7C,EAAM;GAClB,WAAU;EACX,GANK,MAML,IACC;EAGL,UAAA2D,EAAM,KAAK,GAAG,MACb,kBAAC,OAAD;GAEE,MAAM,MAAO;IACX,EAAS,QAAQF,KAAKvH;GACxB;GACA,QAAQuH,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 +0,0 @@
|
|
|
1
|
-
{"version":3,"file":"field-d8V94bvZ.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=\"sr-only\">\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,10 +0,0 @@
|
|
|
1
|
-
//#region src/utils/field-press.ts
|
|
2
|
-
function e(e) {
|
|
3
|
-
if (e.target !== e.currentTarget) return;
|
|
4
|
-
let t = e.currentTarget.querySelector("input:not([type=hidden])");
|
|
5
|
-
t && !t.disabled && (e.preventDefault(), t.focus());
|
|
6
|
-
}
|
|
7
|
-
//#endregion
|
|
8
|
-
export { e as t };
|
|
9
|
-
|
|
10
|
-
//# sourceMappingURL=field-press-DwzBFafd.js.map
|
|
@@ -1 +0,0 @@
|
|
|
1
|
-
{"version":3,"file":"field-press-DwzBFafd.js","names":["focusInputOnPress","input"],"sources":["../../src/utils/field-press.ts"],"sourcesContent":["import type { MouseEvent } from \"react\";\n\nexport function focusInputOnPress(e: MouseEvent<HTMLElement>) {\n if (e.target !== e.currentTarget) return;\n const input = e.currentTarget.querySelector(\"input:not([type=hidden])\") as HTMLInputElement | null;\n if (!input || input.disabled) return;\n e.preventDefault();\n input.focus();\n}\n"],"mappings":";AAEA,SAAgBA,EAAkB,GAA4B;CAC5D,IAAI,EAAE,WAAW,EAAE,eAAe;CAClC,IAAMC,IAAQ,EAAE,cAAc,cAAc,0BAA0B;CACtE,AAAKA,KAAS,GAAM,aACpB,EAAE,eAAe,GACjBA,EAAM,MAAM;AACd"}
|