erp-pro-ui 0.1.4 → 0.1.6
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/README.md +137 -28
- package/dist/accordion.cjs +1 -1
- package/dist/accordion.mjs +1 -1
- package/dist/alert.cjs +1 -1
- package/dist/alert.mjs +1 -1
- package/dist/animated-content.cjs +1 -1
- package/dist/animated-content.mjs +1 -1
- package/dist/animations.css +2 -2
- package/dist/ascii-text.cjs +1 -1
- package/dist/ascii-text.mjs +1 -1
- package/dist/background-gradient-animation.cjs +1 -1
- package/dist/background-gradient-animation.mjs +1 -1
- package/dist/button-hover-border-gradient.cjs +1 -1
- package/dist/button-hover-border-gradient.mjs +1 -1
- package/dist/button.cjs +1 -1
- package/dist/button.mjs +1 -1
- package/dist/calendar.cjs +1 -1
- package/dist/calendar.mjs +1 -1
- package/dist/card.cjs +1 -1
- package/dist/card.mjs +1 -1
- package/dist/carousel.cjs +1 -1
- package/dist/carousel.mjs +1 -1
- package/dist/catalog.cjs +6 -0
- package/dist/catalog.cjs.map +1 -1
- package/dist/catalog.d.ts +11 -1
- package/dist/catalog.d.ts.map +1 -1
- package/dist/catalog.mjs +6 -0
- package/dist/catalog.mjs.map +1 -1
- package/dist/charts.cjs +2 -1
- package/dist/charts.mjs +2 -2
- package/dist/checkbox.cjs +1 -1
- package/dist/checkbox.mjs +1 -1
- package/dist/chip.cjs +3 -1
- package/dist/chip.mjs +2 -2
- package/dist/chroma-grid.cjs +1 -1
- package/dist/chroma-grid.mjs +1 -1
- package/dist/chunks/{HoverBorderGradient-Df3PKpw6.cjs → HoverBorderGradient-C5D6lGg0.cjs} +8 -8
- package/dist/chunks/HoverBorderGradient-C5D6lGg0.cjs.map +1 -0
- package/dist/chunks/{HoverBorderGradient-DVFEIXFQ.mjs → HoverBorderGradient-CduqqQgX.mjs} +8 -8
- package/dist/chunks/HoverBorderGradient-CduqqQgX.mjs.map +1 -0
- package/dist/chunks/{accordion-Cbt-SJhj.mjs → accordion-6zxJUYXr.mjs} +8 -8
- package/dist/chunks/accordion-6zxJUYXr.mjs.map +1 -0
- package/dist/chunks/{accordion-pfJR8YYA.cjs → accordion-CmB6EidC.cjs} +8 -8
- package/dist/chunks/accordion-CmB6EidC.cjs.map +1 -0
- package/dist/chunks/alert-C5KEeQqh.cjs +81 -0
- package/dist/chunks/alert-C5KEeQqh.cjs.map +1 -0
- package/dist/chunks/alert-XVmYJgds.mjs +75 -0
- package/dist/chunks/alert-XVmYJgds.mjs.map +1 -0
- package/dist/chunks/{animated-content-CttSmLWV.cjs → animated-content-CLsFnjgr.cjs} +1 -1
- package/dist/chunks/{animated-content-CttSmLWV.cjs.map → animated-content-CLsFnjgr.cjs.map} +1 -1
- package/dist/chunks/{animated-content-C1uNg1xO.mjs → animated-content-bK6xp-vc.mjs} +1 -1
- package/dist/chunks/{animated-content-C1uNg1xO.mjs.map → animated-content-bK6xp-vc.mjs.map} +1 -1
- package/dist/chunks/{ascii-text-DlmArZXh.cjs → ascii-text-BP-BBy0-.cjs} +3 -3
- package/dist/chunks/{ascii-text-DlmArZXh.cjs.map → ascii-text-BP-BBy0-.cjs.map} +1 -1
- package/dist/chunks/{ascii-text-C5tyNsR3.mjs → ascii-text-RJxX3wCC.mjs} +1 -1
- package/dist/chunks/{ascii-text-C5tyNsR3.mjs.map → ascii-text-RJxX3wCC.mjs.map} +1 -1
- package/dist/chunks/{background-gradient-animation-BL-lnrJe.mjs → background-gradient-animation-DpKJ3ecq.mjs} +3 -3
- package/dist/chunks/{background-gradient-animation-BL-lnrJe.mjs.map → background-gradient-animation-DpKJ3ecq.mjs.map} +1 -1
- package/dist/chunks/{background-gradient-animation-CXV9GDH8.cjs → background-gradient-animation-II9hdrgB.cjs} +3 -3
- package/dist/chunks/{background-gradient-animation-CXV9GDH8.cjs.map → background-gradient-animation-II9hdrgB.cjs.map} +1 -1
- package/dist/chunks/{button-B0Lhj0AS.mjs → button-DddUhuR-.mjs} +6 -5
- package/dist/chunks/button-DddUhuR-.mjs.map +1 -0
- package/dist/chunks/{button-hover-border-gradient-CvoM60wz.mjs → button-hover-border-gradient-DFppVRI4.mjs} +3 -3
- package/dist/chunks/{button-hover-border-gradient-CvoM60wz.mjs.map → button-hover-border-gradient-DFppVRI4.mjs.map} +1 -1
- package/dist/chunks/{button-hover-border-gradient-CSHXM5Cm.cjs → button-hover-border-gradient-DX2lBG5C.cjs} +3 -3
- package/dist/chunks/{button-hover-border-gradient-CSHXM5Cm.cjs.map → button-hover-border-gradient-DX2lBG5C.cjs.map} +1 -1
- package/dist/chunks/{button-CZL6kFzT.cjs → button-xqernofO.cjs} +6 -5
- package/dist/chunks/button-xqernofO.cjs.map +1 -0
- package/dist/chunks/{calendar-DrCgT_pj.mjs → calendar-Cp84V2rY.mjs} +7 -7
- package/dist/chunks/calendar-Cp84V2rY.mjs.map +1 -0
- package/dist/chunks/{calendar-Cpp_Rc7T.cjs → calendar-DuCKr6b7.cjs} +7 -7
- package/dist/chunks/calendar-DuCKr6b7.cjs.map +1 -0
- package/dist/chunks/{card-C5_tFK6Q.cjs → card-CqPDr6Tt.cjs} +4 -4
- package/dist/chunks/card-CqPDr6Tt.cjs.map +1 -0
- package/dist/chunks/{card-Dh8wNv8N.mjs → card-SpHHNB0c.mjs} +4 -4
- package/dist/chunks/card-SpHHNB0c.mjs.map +1 -0
- package/dist/chunks/{carousel-BYwqI4cA.mjs → carousel-C1skQ65z.mjs} +14 -14
- package/dist/chunks/carousel-C1skQ65z.mjs.map +1 -0
- package/dist/chunks/{carousel-C1338X8h.cjs → carousel-YlRLOGkM.cjs} +11 -11
- package/dist/chunks/carousel-YlRLOGkM.cjs.map +1 -0
- package/dist/chunks/{charts-BYvM4TMG.mjs → charts-C-Qee_JY.mjs} +118 -19
- package/dist/chunks/charts-C-Qee_JY.mjs.map +1 -0
- package/dist/chunks/{charts-DbxyHtlX.cjs → charts-CZEYcr6X.cjs} +119 -14
- package/dist/chunks/charts-CZEYcr6X.cjs.map +1 -0
- package/dist/chunks/{checkbox-Pr49U9F1.mjs → checkbox-DjGpvMyo.mjs} +12 -12
- package/dist/chunks/checkbox-DjGpvMyo.mjs.map +1 -0
- package/dist/chunks/{checkbox-CxOcjoGP.cjs → checkbox-NM_iPd6S.cjs} +10 -10
- package/dist/chunks/checkbox-NM_iPd6S.cjs.map +1 -0
- package/dist/chunks/chip-BY83_HK7.cjs +203 -0
- package/dist/chunks/chip-BY83_HK7.cjs.map +1 -0
- package/dist/chunks/chip-CbO8-1lK.mjs +185 -0
- package/dist/chunks/chip-CbO8-1lK.mjs.map +1 -0
- package/dist/chunks/{chroma-grid-BAo6V5A7.mjs → chroma-grid-CexX28VQ.mjs} +6 -6
- package/dist/chunks/chroma-grid-CexX28VQ.mjs.map +1 -0
- package/dist/chunks/{chroma-grid-CIk0dsNS.cjs → chroma-grid-DP__XtmV.cjs} +6 -6
- package/dist/chunks/chroma-grid-DP__XtmV.cjs.map +1 -0
- package/dist/chunks/{color-palette-euKQMWlV.mjs → color-palette-BU1cI6XP.mjs} +166 -132
- package/dist/chunks/color-palette-BU1cI6XP.mjs.map +1 -0
- package/dist/chunks/{color-palette-2TuEMkAn.cjs → color-palette-ThIKMhT1.cjs} +168 -133
- package/dist/chunks/color-palette-ThIKMhT1.cjs.map +1 -0
- package/dist/chunks/{combobox-CwGubKTt.cjs → combobox-B7UIcjsI.cjs} +31 -23
- package/dist/chunks/combobox-B7UIcjsI.cjs.map +1 -0
- package/dist/chunks/{combobox-DrFmkI0F.mjs → combobox-D6WnThIQ.mjs} +30 -22
- package/dist/chunks/combobox-D6WnThIQ.mjs.map +1 -0
- package/dist/chunks/data-table-KDM8AEwU.mjs +1555 -0
- package/dist/chunks/data-table-KDM8AEwU.mjs.map +1 -0
- package/dist/chunks/data-table-z-YDzi0N.cjs +1646 -0
- package/dist/chunks/data-table-z-YDzi0N.cjs.map +1 -0
- package/dist/chunks/{date-picker-CNPORxhv.mjs → date-picker-Bh6_p4bD.mjs} +39 -19
- package/dist/chunks/date-picker-Bh6_p4bD.mjs.map +1 -0
- package/dist/chunks/{date-picker-CZo68Fkl.cjs → date-picker-CfCvp6Tj.cjs} +39 -19
- package/dist/chunks/date-picker-CfCvp6Tj.cjs.map +1 -0
- package/dist/chunks/{dialog-DUWnV9tN.mjs → dialog-BibwiFLY.mjs} +33 -30
- package/dist/chunks/dialog-BibwiFLY.mjs.map +1 -0
- package/dist/chunks/{dialog-CYFiWN8M.cjs → dialog-I141I0nc.cjs} +33 -30
- package/dist/chunks/dialog-I141I0nc.cjs.map +1 -0
- package/dist/chunks/{drawer-D82Jz6KO.mjs → drawer-DsE8Pb8e.mjs} +11 -11
- package/dist/chunks/drawer-DsE8Pb8e.mjs.map +1 -0
- package/dist/chunks/{drawer-CLjsYdxN.cjs → drawer-EC9eopGX.cjs} +11 -11
- package/dist/chunks/drawer-EC9eopGX.cjs.map +1 -0
- package/dist/chunks/{form-B2vcaHwh.mjs → form-CRwpjFWu.mjs} +10 -10
- package/dist/chunks/form-CRwpjFWu.mjs.map +1 -0
- package/dist/chunks/{form-CzH9GQc6.cjs → form-DaGyqM97.cjs} +10 -10
- package/dist/chunks/form-DaGyqM97.cjs.map +1 -0
- package/dist/chunks/{gradual-blur-B9GoY8o1.cjs → gradual-blur-Di7MBs7M.cjs} +1 -1
- package/dist/chunks/{gradual-blur-B9GoY8o1.cjs.map → gradual-blur-Di7MBs7M.cjs.map} +1 -1
- package/dist/chunks/{gradual-blur-Bl3dOMEz.mjs → gradual-blur-pt0UiMEy.mjs} +1 -1
- package/dist/chunks/{gradual-blur-Bl3dOMEz.mjs.map → gradual-blur-pt0UiMEy.mjs.map} +1 -1
- package/dist/chunks/{hover-card-xqwpmZNm.mjs → hover-card-C3Xa18Ov.mjs} +7 -8
- package/dist/chunks/hover-card-C3Xa18Ov.mjs.map +1 -0
- package/dist/chunks/{hover-card-v0QwmVBU.cjs → hover-card-D78E07hk.cjs} +7 -8
- package/dist/chunks/hover-card-D78E07hk.cjs.map +1 -0
- package/dist/chunks/{icons-BxIzP2jd.cjs → icons-CRanVZB1.cjs} +8 -8
- package/dist/chunks/icons-CRanVZB1.cjs.map +1 -0
- package/dist/chunks/{icons-DuumN7z-.mjs → icons-bx3nrxNv.mjs} +8 -8
- package/dist/chunks/icons-bx3nrxNv.mjs.map +1 -0
- package/dist/chunks/{input-Bt_r_B_c.mjs → input-CpARxvFi.mjs} +14 -14
- package/dist/chunks/input-CpARxvFi.mjs.map +1 -0
- package/dist/chunks/{input-BWM6G7jq.cjs → input-DTW_8EwG.cjs} +14 -14
- package/dist/chunks/input-DTW_8EwG.cjs.map +1 -0
- package/dist/chunks/{label-KPA-yYOF.mjs → label-BVH02Yvq.mjs} +1 -1
- package/dist/chunks/{label-KPA-yYOF.mjs.map → label-BVH02Yvq.mjs.map} +1 -1
- package/dist/chunks/{label-BWPEGVam.cjs → label-DN-Bg5i8.cjs} +1 -1
- package/dist/chunks/{label-BWPEGVam.cjs.map → label-DN-Bg5i8.cjs.map} +1 -1
- package/dist/chunks/{loading-q7IEg56I.cjs → loading-B1yrR3KX.cjs} +7 -7
- package/dist/chunks/{loading-q7IEg56I.cjs.map → loading-B1yrR3KX.cjs.map} +1 -1
- package/dist/chunks/{loading-S1TdIrbB.mjs → loading-B2Ron0Fd.mjs} +7 -7
- package/dist/chunks/{loading-S1TdIrbB.mjs.map → loading-B2Ron0Fd.mjs.map} +1 -1
- package/dist/chunks/{multi-select-combobox-D46M-AN9.mjs → multi-select-combobox-CMhAXEGZ.mjs} +15 -15
- package/dist/chunks/multi-select-combobox-CMhAXEGZ.mjs.map +1 -0
- package/dist/chunks/{multi-select-combobox-dS6bJE_e.cjs → multi-select-combobox-FEbMAPEg.cjs} +16 -16
- package/dist/chunks/multi-select-combobox-FEbMAPEg.cjs.map +1 -0
- package/dist/chunks/{otp-input-DSW9Ca_D.cjs → otp-input-B6nJC-Fl.cjs} +10 -10
- package/dist/chunks/otp-input-B6nJC-Fl.cjs.map +1 -0
- package/dist/chunks/{otp-input-DeAi4nJ_.mjs → otp-input-B7DhhsMe.mjs} +10 -10
- package/dist/chunks/otp-input-B7DhhsMe.mjs.map +1 -0
- package/dist/chunks/{overlay-TycCIFOu.mjs → overlay-C58wXorc.mjs} +1 -1
- package/dist/chunks/{overlay-TycCIFOu.mjs.map → overlay-C58wXorc.mjs.map} +1 -1
- package/dist/chunks/{overlay-DWNTyQzK.cjs → overlay-DwJgjJuu.cjs} +1 -1
- package/dist/chunks/{overlay-DWNTyQzK.cjs.map → overlay-DwJgjJuu.cjs.map} +1 -1
- package/dist/chunks/{password-strength-meter-DxMV6GAs.cjs → password-strength-meter-6vNu6p19.cjs} +13 -13
- package/dist/chunks/password-strength-meter-6vNu6p19.cjs.map +1 -0
- package/dist/chunks/{password-strength-meter-CbNSBuh_.mjs → password-strength-meter-D7gmZNjp.mjs} +13 -13
- package/dist/chunks/password-strength-meter-D7gmZNjp.mjs.map +1 -0
- package/dist/chunks/{progress-bar-BdvQtpm3.cjs → progress-bar-CbsCItvv.cjs} +78 -5
- package/dist/chunks/progress-bar-CbsCItvv.cjs.map +1 -0
- package/dist/chunks/{progress-bar-B9sy7WBT.mjs → progress-bar-D6Q9Di7D.mjs} +72 -5
- package/dist/chunks/progress-bar-D6Q9Di7D.mjs.map +1 -0
- package/dist/chunks/{radio-C9w_CoiY.mjs → radio-C6Meq2iz.mjs} +2 -2
- package/dist/chunks/{radio-C9w_CoiY.mjs.map → radio-C6Meq2iz.mjs.map} +1 -1
- package/dist/chunks/{radio-jMHDvaMY.cjs → radio-DxakS7iD.cjs} +2 -2
- package/dist/chunks/{radio-jMHDvaMY.cjs.map → radio-DxakS7iD.cjs.map} +1 -1
- package/dist/chunks/{select-B8UQ6Uq5.mjs → select-1rSJeUBQ.mjs} +25 -19
- package/dist/chunks/select-1rSJeUBQ.mjs.map +1 -0
- package/dist/chunks/{select-CCUSMvfS.cjs → select-SOmIt-BD.cjs} +25 -19
- package/dist/chunks/select-SOmIt-BD.cjs.map +1 -0
- package/dist/chunks/{skeleton-CtLumdRw.mjs → skeleton-BRx-80dg.mjs} +18 -18
- package/dist/chunks/skeleton-BRx-80dg.mjs.map +1 -0
- package/dist/chunks/{skeleton-BNea1Rcp.cjs → skeleton-o7DlA5yl.cjs} +18 -18
- package/dist/chunks/skeleton-o7DlA5yl.cjs.map +1 -0
- package/dist/chunks/{spinners-BL4ERCCw.cjs → spinners-BylPf0uk.cjs} +2 -2
- package/dist/chunks/{spinners-BL4ERCCw.cjs.map → spinners-BylPf0uk.cjs.map} +1 -1
- package/dist/chunks/{spinners-BBCWD2gw.mjs → spinners-hJaI_cBH.mjs} +2 -2
- package/dist/chunks/{spinners-BBCWD2gw.mjs.map → spinners-hJaI_cBH.mjs.map} +1 -1
- package/dist/chunks/{splash-cursor-BVSmbcIX.cjs → splash-cursor-CmqkSl6m.cjs} +1 -1
- package/dist/chunks/{splash-cursor-BVSmbcIX.cjs.map → splash-cursor-CmqkSl6m.cjs.map} +1 -1
- package/dist/chunks/{splash-cursor-rSrTnawZ.mjs → splash-cursor-Cxouip_h.mjs} +1 -1
- package/dist/chunks/{splash-cursor-rSrTnawZ.mjs.map → splash-cursor-Cxouip_h.mjs.map} +1 -1
- package/dist/chunks/{spotlight-card-DS1dy1W3.cjs → spotlight-card-B3L3K21T.cjs} +8 -8
- package/dist/chunks/spotlight-card-B3L3K21T.cjs.map +1 -0
- package/dist/chunks/{spotlight-card-BpZLMOp6.mjs → spotlight-card-DIgacTxA.mjs} +8 -8
- package/dist/chunks/spotlight-card-DIgacTxA.mjs.map +1 -0
- package/dist/chunks/{stepper-D6qQbZdg.cjs → stepper-BpjKyemI.cjs} +212 -129
- package/dist/chunks/stepper-BpjKyemI.cjs.map +1 -0
- package/dist/chunks/{stepper-DUknuW2E.mjs → stepper-JD4ZHT-b.mjs} +213 -130
- package/dist/chunks/stepper-JD4ZHT-b.mjs.map +1 -0
- package/dist/chunks/sun-to-moon-button-BOx1n6nk.cjs +311 -0
- package/dist/chunks/sun-to-moon-button-BOx1n6nk.cjs.map +1 -0
- package/dist/chunks/sun-to-moon-button-CBbDar4k.mjs +299 -0
- package/dist/chunks/sun-to-moon-button-CBbDar4k.mjs.map +1 -0
- package/dist/chunks/{switch-C5otDb4c.cjs → switch-C9suGEWg.cjs} +5 -5
- package/dist/chunks/switch-C9suGEWg.cjs.map +1 -0
- package/dist/chunks/{switch-DOVl_i_s.mjs → switch-hd7zTBD_.mjs} +5 -5
- package/dist/chunks/switch-hd7zTBD_.mjs.map +1 -0
- package/dist/chunks/{textarea-Blky_fLK.mjs → textarea-Cu26uKqq.mjs} +5 -5
- package/dist/chunks/textarea-Cu26uKqq.mjs.map +1 -0
- package/dist/chunks/{textarea-ok_NlE2p.cjs → textarea-cXgKzluG.cjs} +5 -5
- package/dist/chunks/textarea-cXgKzluG.cjs.map +1 -0
- package/dist/chunks/{theme-7DWLxJK_.cjs → theme-D6B-FaoE.cjs} +28 -5
- package/dist/chunks/theme-D6B-FaoE.cjs.map +1 -0
- package/dist/chunks/{theme-BceKeYhw.mjs → theme-koPrLKQv.mjs} +28 -5
- package/dist/chunks/theme-koPrLKQv.mjs.map +1 -0
- package/dist/chunks/{toast-CvfP7PUP.mjs → toast-CpX-22n2.mjs} +26 -26
- package/dist/chunks/toast-CpX-22n2.mjs.map +1 -0
- package/dist/chunks/{toast-Ds7_19Ap.cjs → toast-REa6FRBc.cjs} +26 -26
- package/dist/chunks/toast-REa6FRBc.cjs.map +1 -0
- package/dist/chunks/{tooltip-efHETBo1.mjs → tooltip-CASvQiFQ.mjs} +6 -7
- package/dist/chunks/tooltip-CASvQiFQ.mjs.map +1 -0
- package/dist/chunks/{tooltip-nkIqViGk.cjs → tooltip-CKF78rni.cjs} +6 -7
- package/dist/chunks/tooltip-CKF78rni.cjs.map +1 -0
- package/dist/chunks/truncated-text-DTgks5yS.mjs +45 -0
- package/dist/chunks/truncated-text-DTgks5yS.mjs.map +1 -0
- package/dist/chunks/truncated-text-istgJRUq.cjs +52 -0
- package/dist/chunks/truncated-text-istgJRUq.cjs.map +1 -0
- package/dist/chunks/{typography-CLu6Hx9j.mjs → typography-KxLf6Td8.mjs} +5 -5
- package/dist/chunks/typography-KxLf6Td8.mjs.map +1 -0
- package/dist/chunks/{typography-DaLu9tty.cjs → typography-sGmh0gZ_.cjs} +6 -6
- package/dist/chunks/typography-sGmh0gZ_.cjs.map +1 -0
- package/dist/color-palette.cjs +1 -1
- package/dist/color-palette.mjs +1 -1
- package/dist/colors.css +45 -149
- package/dist/combobox.cjs +1 -1
- package/dist/combobox.mjs +1 -1
- package/dist/components/data-display/card/Card.d.ts.map +1 -1
- package/dist/components/data-display/charts/MiniNeonSparkline.d.ts +17 -0
- package/dist/components/data-display/charts/MiniNeonSparkline.d.ts.map +1 -0
- package/dist/components/data-display/charts/ThinBreakdownBar.d.ts.map +1 -1
- package/dist/components/data-display/charts/index.d.ts +2 -0
- package/dist/components/data-display/charts/index.d.ts.map +1 -1
- package/dist/components/data-display/chip/Chip.d.ts.map +1 -1
- package/dist/components/data-display/chip/SpecialChip.d.ts +23 -0
- package/dist/components/data-display/chip/SpecialChip.d.ts.map +1 -0
- package/dist/components/data-display/chip/index.d.ts +2 -0
- package/dist/components/data-display/chip/index.d.ts.map +1 -1
- package/dist/components/data-display/color-palette/ColorPalette.d.ts.map +1 -1
- package/dist/components/data-display/data-table/DataTable.d.ts +49 -26
- package/dist/components/data-display/data-table/DataTable.d.ts.map +1 -1
- package/dist/components/data-display/data-table/DataTableControls.d.ts +34 -0
- package/dist/components/data-display/data-table/DataTableControls.d.ts.map +1 -0
- package/dist/components/data-display/data-table/DataTableFilters.d.ts +27 -0
- package/dist/components/data-display/data-table/DataTableFilters.d.ts.map +1 -0
- package/dist/components/data-display/data-table/DataTableRows.d.ts +34 -0
- package/dist/components/data-display/data-table/DataTableRows.d.ts.map +1 -0
- package/dist/components/data-display/data-table/DataTableToolbar.d.ts +48 -0
- package/dist/components/data-display/data-table/DataTableToolbar.d.ts.map +1 -0
- package/dist/components/data-display/data-table/TablePrimitives.d.ts +11 -0
- package/dist/components/data-display/data-table/TablePrimitives.d.ts.map +1 -0
- package/dist/components/data-display/data-table/direction.d.ts +7 -0
- package/dist/components/data-display/data-table/direction.d.ts.map +1 -0
- package/dist/components/data-display/data-table/index.d.ts +2 -2
- package/dist/components/data-display/data-table/index.d.ts.map +1 -1
- package/dist/components/data-display/loading/Loading.d.ts.map +1 -1
- package/dist/components/data-display/progress-bar/CircularProgress.d.ts +17 -0
- package/dist/components/data-display/progress-bar/CircularProgress.d.ts.map +1 -0
- package/dist/components/data-display/progress-bar/index.d.ts +2 -0
- package/dist/components/data-display/progress-bar/index.d.ts.map +1 -1
- package/dist/components/effects/sun-to-moon-button/ThemeSwitcherButtons.d.ts +5 -0
- package/dist/components/effects/sun-to-moon-button/ThemeSwitcherButtons.d.ts.map +1 -0
- package/dist/components/effects/sun-to-moon-button/index.d.ts +2 -0
- package/dist/components/effects/sun-to-moon-button/index.d.ts.map +1 -1
- package/dist/components/feedback/alert/Alert.d.ts +1 -1
- package/dist/components/feedback/alert/Alert.d.ts.map +1 -1
- package/dist/components/feedback/alert/types.d.ts +11 -2
- package/dist/components/feedback/alert/types.d.ts.map +1 -1
- package/dist/components/forms/button/Button.d.ts +1 -1
- package/dist/components/forms/button/Button.d.ts.map +1 -1
- package/dist/components/forms/button/index.d.ts +1 -1
- package/dist/components/forms/button/index.d.ts.map +1 -1
- package/dist/components/forms/button/types.d.ts +4 -1
- package/dist/components/forms/button/types.d.ts.map +1 -1
- package/dist/components/forms/calendar/Calendar.d.ts.map +1 -1
- package/dist/components/forms/checkbox/Checkbox.d.ts.map +1 -1
- package/dist/components/forms/combobox/Combobox.d.ts.map +1 -1
- package/dist/components/forms/date-picker/DatePicker.d.ts.map +1 -1
- package/dist/components/forms/form/Form.d.ts.map +1 -1
- package/dist/components/forms/input/Input.d.ts.map +1 -1
- package/dist/components/forms/input/types.d.ts +1 -1
- package/dist/components/forms/input/types.d.ts.map +1 -1
- package/dist/components/forms/password-strength-meter/PasswordCriteria.d.ts.map +1 -1
- package/dist/components/forms/password-strength-meter/PasswordStrengthMeter.d.ts.map +1 -1
- package/dist/components/forms/select/Select.d.ts.map +1 -1
- package/dist/components/navigation/accordion/Accordion.d.ts.map +1 -1
- package/dist/components/navigation/stepper/Stepper.d.ts +1 -1
- package/dist/components/navigation/stepper/Stepper.d.ts.map +1 -1
- package/dist/components/navigation/stepper/Stepper1.d.ts.map +1 -1
- package/dist/components/navigation/stepper/index.d.ts +1 -1
- package/dist/components/navigation/stepper/index.d.ts.map +1 -1
- package/dist/components/navigation/stepper/types.d.ts +3 -0
- package/dist/components/navigation/stepper/types.d.ts.map +1 -1
- package/dist/components/navigation/tabs/Tabs.d.ts +3 -0
- package/dist/components/navigation/tabs/Tabs.d.ts.map +1 -0
- package/dist/components/navigation/tabs/index.d.ts +3 -0
- package/dist/components/navigation/tabs/index.d.ts.map +1 -0
- package/dist/components/navigation/tabs/types.d.ts +21 -0
- package/dist/components/navigation/tabs/types.d.ts.map +1 -0
- package/dist/components/overlays/dialog/Dialog.d.ts.map +1 -1
- package/dist/components/overlays/dialog/types.d.ts +1 -0
- package/dist/components/overlays/dialog/types.d.ts.map +1 -1
- package/dist/components/overlays/drawer/Drawer.d.ts.map +1 -1
- package/dist/components/overlays/hover-card/HoverCard.d.ts.map +1 -1
- package/dist/components/overlays/toast/Toast.d.ts.map +1 -1
- package/dist/components/overlays/tooltip/Tooltip.d.ts.map +1 -1
- package/dist/components/shared/overlay.d.ts +1 -1
- package/dist/components/typography/Typography.d.ts.map +1 -1
- package/dist/components/typography/truncated-text/TruncatedText.d.ts +11 -0
- package/dist/components/typography/truncated-text/TruncatedText.d.ts.map +1 -0
- package/dist/components/typography/truncated-text/index.d.ts +3 -0
- package/dist/components/typography/truncated-text/index.d.ts.map +1 -0
- package/dist/contexts/ThemeContext.d.ts +1 -1
- package/dist/contexts/ThemeContext.d.ts.map +1 -1
- package/dist/contexts/index.d.ts +1 -1
- package/dist/contexts/index.d.ts.map +1 -1
- package/dist/data-table.cjs +11 -1
- package/dist/data-table.mjs +2 -2
- package/dist/date-picker.cjs +1 -1
- package/dist/date-picker.mjs +1 -1
- package/dist/dialog.cjs +1 -1
- package/dist/dialog.mjs +1 -1
- package/dist/docs.cjs +76 -26
- package/dist/docs.cjs.map +1 -1
- package/dist/docs.d.ts +10 -10
- package/dist/docs.d.ts.map +1 -1
- package/dist/docs.mjs +76 -26
- package/dist/docs.mjs.map +1 -1
- package/dist/drawer.cjs +1 -1
- package/dist/drawer.mjs +1 -1
- package/dist/form.cjs +1 -1
- package/dist/form.mjs +1 -1
- package/dist/foundation.css +54 -3
- package/dist/foundations/theme/ThemeProvider.d.ts +22 -1
- package/dist/foundations/theme/ThemeProvider.d.ts.map +1 -1
- package/dist/foundations/theme/index.d.ts +1 -1
- package/dist/foundations/theme/index.d.ts.map +1 -1
- package/dist/gradual-blur.cjs +1 -1
- package/dist/gradual-blur.mjs +1 -1
- package/dist/hover-border-gradient.cjs +1 -1
- package/dist/hover-border-gradient.mjs +1 -1
- package/dist/hover-card.cjs +1 -1
- package/dist/hover-card.mjs +1 -1
- package/dist/icons.cjs +1 -1
- package/dist/icons.mjs +1 -1
- package/dist/index.cjs +201 -48
- package/dist/index.cjs.map +1 -1
- package/dist/index.d.ts +17 -9
- package/dist/index.d.ts.map +1 -1
- package/dist/index.mjs +183 -50
- package/dist/index.mjs.map +1 -1
- package/dist/input.cjs +1 -1
- package/dist/input.mjs +1 -1
- package/dist/label.cjs +1 -1
- package/dist/label.mjs +1 -1
- package/dist/loading.cjs +1 -1
- package/dist/loading.mjs +1 -1
- package/dist/multi-select-combobox.cjs +1 -1
- package/dist/multi-select-combobox.mjs +1 -1
- package/dist/otp-input.cjs +1 -1
- package/dist/otp-input.mjs +1 -1
- package/dist/password-strength-meter.cjs +1 -1
- package/dist/password-strength-meter.mjs +1 -1
- package/dist/progress-bar.cjs +2 -1
- package/dist/progress-bar.mjs +2 -2
- package/dist/radio.cjs +1 -1
- package/dist/radio.mjs +1 -1
- package/dist/select.cjs +1 -1
- package/dist/select.mjs +1 -1
- package/dist/skeleton.cjs +1 -1
- package/dist/skeleton.mjs +1 -1
- package/dist/spinners.cjs +1 -1
- package/dist/spinners.mjs +1 -1
- package/dist/splash-cursor.cjs +1 -1
- package/dist/splash-cursor.mjs +1 -1
- package/dist/spotlight-card.cjs +1 -1
- package/dist/spotlight-card.mjs +1 -1
- package/dist/stepper.cjs +1 -1
- package/dist/stepper.mjs +1 -1
- package/dist/sun-to-moon-button.cjs +2 -1
- package/dist/sun-to-moon-button.mjs +2 -2
- package/dist/switch.cjs +1 -1
- package/dist/switch.mjs +1 -1
- package/dist/textarea.cjs +1 -1
- package/dist/textarea.mjs +1 -1
- package/dist/theme.cjs +1 -1
- package/dist/theme.mjs +1 -1
- package/dist/toast.cjs +1 -1
- package/dist/toast.mjs +1 -1
- package/dist/tokens.css +592 -298
- package/dist/tooltip.cjs +1 -1
- package/dist/tooltip.mjs +1 -1
- package/dist/truncated-text.cjs +3 -0
- package/dist/truncated-text.d.ts +2 -0
- package/dist/truncated-text.mjs +2 -0
- package/dist/typography.cjs +1 -1
- package/dist/typography.mjs +1 -1
- package/package.json +15 -9
- package/dist/chunks/HoverBorderGradient-DVFEIXFQ.mjs.map +0 -1
- package/dist/chunks/HoverBorderGradient-Df3PKpw6.cjs.map +0 -1
- package/dist/chunks/accordion-Cbt-SJhj.mjs.map +0 -1
- package/dist/chunks/accordion-pfJR8YYA.cjs.map +0 -1
- package/dist/chunks/alert-CtdLy4Hv.mjs +0 -40
- package/dist/chunks/alert-CtdLy4Hv.mjs.map +0 -1
- package/dist/chunks/alert-Dvz1GoL5.cjs +0 -46
- package/dist/chunks/alert-Dvz1GoL5.cjs.map +0 -1
- package/dist/chunks/button-B0Lhj0AS.mjs.map +0 -1
- package/dist/chunks/button-CZL6kFzT.cjs.map +0 -1
- package/dist/chunks/calendar-Cpp_Rc7T.cjs.map +0 -1
- package/dist/chunks/calendar-DrCgT_pj.mjs.map +0 -1
- package/dist/chunks/card-C5_tFK6Q.cjs.map +0 -1
- package/dist/chunks/card-Dh8wNv8N.mjs.map +0 -1
- package/dist/chunks/carousel-BYwqI4cA.mjs.map +0 -1
- package/dist/chunks/carousel-C1338X8h.cjs.map +0 -1
- package/dist/chunks/charts-BYvM4TMG.mjs.map +0 -1
- package/dist/chunks/charts-DbxyHtlX.cjs.map +0 -1
- package/dist/chunks/checkbox-CxOcjoGP.cjs.map +0 -1
- package/dist/chunks/checkbox-Pr49U9F1.mjs.map +0 -1
- package/dist/chunks/chip-B4ol1yPk.cjs +0 -145
- package/dist/chunks/chip-B4ol1yPk.cjs.map +0 -1
- package/dist/chunks/chip-DdnBLdpl.mjs +0 -139
- package/dist/chunks/chip-DdnBLdpl.mjs.map +0 -1
- package/dist/chunks/chroma-grid-BAo6V5A7.mjs.map +0 -1
- package/dist/chunks/chroma-grid-CIk0dsNS.cjs.map +0 -1
- package/dist/chunks/color-palette-2TuEMkAn.cjs.map +0 -1
- package/dist/chunks/color-palette-euKQMWlV.mjs.map +0 -1
- package/dist/chunks/combobox-CwGubKTt.cjs.map +0 -1
- package/dist/chunks/combobox-DrFmkI0F.mjs.map +0 -1
- package/dist/chunks/data-table-Bo80m7qV.mjs +0 -1123
- package/dist/chunks/data-table-Bo80m7qV.mjs.map +0 -1
- package/dist/chunks/data-table-W1sK5tkL.cjs +0 -1154
- package/dist/chunks/data-table-W1sK5tkL.cjs.map +0 -1
- package/dist/chunks/date-picker-CNPORxhv.mjs.map +0 -1
- package/dist/chunks/date-picker-CZo68Fkl.cjs.map +0 -1
- package/dist/chunks/dialog-CYFiWN8M.cjs.map +0 -1
- package/dist/chunks/dialog-DUWnV9tN.mjs.map +0 -1
- package/dist/chunks/drawer-CLjsYdxN.cjs.map +0 -1
- package/dist/chunks/drawer-D82Jz6KO.mjs.map +0 -1
- package/dist/chunks/form-B2vcaHwh.mjs.map +0 -1
- package/dist/chunks/form-CzH9GQc6.cjs.map +0 -1
- package/dist/chunks/hover-card-v0QwmVBU.cjs.map +0 -1
- package/dist/chunks/hover-card-xqwpmZNm.mjs.map +0 -1
- package/dist/chunks/icons-BxIzP2jd.cjs.map +0 -1
- package/dist/chunks/icons-DuumN7z-.mjs.map +0 -1
- package/dist/chunks/input-BWM6G7jq.cjs.map +0 -1
- package/dist/chunks/input-Bt_r_B_c.mjs.map +0 -1
- package/dist/chunks/multi-select-combobox-D46M-AN9.mjs.map +0 -1
- package/dist/chunks/multi-select-combobox-dS6bJE_e.cjs.map +0 -1
- package/dist/chunks/otp-input-DSW9Ca_D.cjs.map +0 -1
- package/dist/chunks/otp-input-DeAi4nJ_.mjs.map +0 -1
- package/dist/chunks/password-strength-meter-CbNSBuh_.mjs.map +0 -1
- package/dist/chunks/password-strength-meter-DxMV6GAs.cjs.map +0 -1
- package/dist/chunks/progress-bar-B9sy7WBT.mjs.map +0 -1
- package/dist/chunks/progress-bar-BdvQtpm3.cjs.map +0 -1
- package/dist/chunks/select-B8UQ6Uq5.mjs.map +0 -1
- package/dist/chunks/select-CCUSMvfS.cjs.map +0 -1
- package/dist/chunks/skeleton-BNea1Rcp.cjs.map +0 -1
- package/dist/chunks/skeleton-CtLumdRw.mjs.map +0 -1
- package/dist/chunks/spotlight-card-BpZLMOp6.mjs.map +0 -1
- package/dist/chunks/spotlight-card-DS1dy1W3.cjs.map +0 -1
- package/dist/chunks/stepper-D6qQbZdg.cjs.map +0 -1
- package/dist/chunks/stepper-DUknuW2E.mjs.map +0 -1
- package/dist/chunks/sun-to-moon-button-B2Aje05o.mjs +0 -186
- package/dist/chunks/sun-to-moon-button-B2Aje05o.mjs.map +0 -1
- package/dist/chunks/sun-to-moon-button-BmFwRBye.cjs +0 -192
- package/dist/chunks/sun-to-moon-button-BmFwRBye.cjs.map +0 -1
- package/dist/chunks/switch-C5otDb4c.cjs.map +0 -1
- package/dist/chunks/switch-DOVl_i_s.mjs.map +0 -1
- package/dist/chunks/textarea-Blky_fLK.mjs.map +0 -1
- package/dist/chunks/textarea-ok_NlE2p.cjs.map +0 -1
- package/dist/chunks/theme-7DWLxJK_.cjs.map +0 -1
- package/dist/chunks/theme-BceKeYhw.mjs.map +0 -1
- package/dist/chunks/toast-CvfP7PUP.mjs.map +0 -1
- package/dist/chunks/toast-Ds7_19Ap.cjs.map +0 -1
- package/dist/chunks/tooltip-efHETBo1.mjs.map +0 -1
- package/dist/chunks/tooltip-nkIqViGk.cjs.map +0 -1
- package/dist/chunks/typography-CLu6Hx9j.mjs.map +0 -1
- package/dist/chunks/typography-DaLu9tty.cjs.map +0 -1
|
@@ -1,8 +1,9 @@
|
|
|
1
|
-
import { _ as AlertTriangleIcon, h as CheckCircleIcon, l as LoaderIcon, o as QuestionCircleIcon, q as CloseIcon, u as InfoCircleIcon, v as AlertCircleIcon } from "./icons-
|
|
2
|
-
import { t as useOverlayEffects } from "./overlay-
|
|
1
|
+
import { _ as AlertTriangleIcon, h as CheckCircleIcon, l as LoaderIcon, o as QuestionCircleIcon, q as CloseIcon, u as InfoCircleIcon, v as AlertCircleIcon } from "./icons-bx3nrxNv.mjs";
|
|
2
|
+
import { t as useOverlayEffects } from "./overlay-C58wXorc.mjs";
|
|
3
3
|
import { useEffect, useRef } from "react";
|
|
4
4
|
import { jsx, jsxs } from "react/jsx-runtime";
|
|
5
5
|
import { AnimatePresence, motion } from "framer-motion";
|
|
6
|
+
import { createPortal } from "react-dom";
|
|
6
7
|
//#region src/components/overlays/dialog/Dialog.tsx
|
|
7
8
|
var animationVariants = {
|
|
8
9
|
fade: {
|
|
@@ -203,40 +204,38 @@ var animationTransitions = {
|
|
|
203
204
|
};
|
|
204
205
|
var basePanel = `
|
|
205
206
|
relative w-full max-w-lg rounded-2xl overflow-hidden
|
|
206
|
-
border border-
|
|
207
|
+
border border-ds-border-2
|
|
207
208
|
backdrop-blur-2xl backdrop-saturate-150
|
|
208
|
-
bg-
|
|
209
|
-
dark:from-neutral-900/90 dark:via-neutral-900/80 dark:to-neutral-800/70
|
|
209
|
+
bg-ds-surface-1/95
|
|
210
210
|
p-6
|
|
211
211
|
shadow-[0_8px_32px_rgba(0,0,0,0.12),0_2px_8px_rgba(0,0,0,0.08)]
|
|
212
|
-
|
|
213
|
-
ring-1 ring-inset ring-white/20 dark:ring-white/5
|
|
212
|
+
ring-1 ring-inset ring-ds-border-3/40
|
|
214
213
|
`;
|
|
215
214
|
var variantStyles = {
|
|
216
215
|
default: {
|
|
217
|
-
icon: "bg-accent-subtle",
|
|
218
|
-
button: "bg-accent hover:bg-accent-hover text-on-accent",
|
|
219
|
-
iconColor: "text-
|
|
216
|
+
icon: "bg-ds-accent-subtle",
|
|
217
|
+
button: "bg-ds-accent hover:bg-ds-accent-hover text-ds-on-accent",
|
|
218
|
+
iconColor: "text-ds-1"
|
|
220
219
|
},
|
|
221
220
|
destructive: {
|
|
222
|
-
icon: "bg-
|
|
223
|
-
button: "bg-
|
|
224
|
-
iconColor: "text-
|
|
221
|
+
icon: "bg-ds-state-error-surface",
|
|
222
|
+
button: "bg-ds-state-danger hover:opacity-90 text-ds-on-accent",
|
|
223
|
+
iconColor: "text-ds-state-error-text"
|
|
225
224
|
},
|
|
226
225
|
success: {
|
|
227
|
-
icon: "bg-success-
|
|
228
|
-
button: "bg-success hover:opacity-90 text-
|
|
229
|
-
iconColor: "text-success"
|
|
226
|
+
icon: "bg-ds-state-success-surface",
|
|
227
|
+
button: "bg-ds-state-success hover:opacity-90 text-ds-on-accent",
|
|
228
|
+
iconColor: "text-ds-state-success-text"
|
|
230
229
|
},
|
|
231
230
|
warning: {
|
|
232
|
-
icon: "bg-warning-
|
|
233
|
-
button: "bg-warning hover:opacity-90 text-
|
|
234
|
-
iconColor: "text-warning"
|
|
231
|
+
icon: "bg-ds-state-warning-surface",
|
|
232
|
+
button: "bg-ds-state-warning hover:opacity-90 text-ds-1",
|
|
233
|
+
iconColor: "text-ds-state-warning-text"
|
|
235
234
|
},
|
|
236
235
|
info: {
|
|
237
|
-
icon: "bg-info-
|
|
238
|
-
button: "bg-info hover:opacity-90 text-
|
|
239
|
-
iconColor: "text-info"
|
|
236
|
+
icon: "bg-ds-state-info-surface",
|
|
237
|
+
button: "bg-ds-state-info hover:opacity-90 text-ds-on-accent",
|
|
238
|
+
iconColor: "text-ds-state-info-text"
|
|
240
239
|
}
|
|
241
240
|
};
|
|
242
241
|
var VariantIcon = ({ variant }) => {
|
|
@@ -267,6 +266,7 @@ var Spinner = () => /* @__PURE__ */ jsx(LoaderIcon, {
|
|
|
267
266
|
className: "animate-spin w-4 h-4",
|
|
268
267
|
"aria-hidden": "true"
|
|
269
268
|
});
|
|
269
|
+
var DIALOG_ROOT_Z_INDEX = 2147483e3;
|
|
270
270
|
var Dialog = ({ open, onOpenChange, title, description, children, footer, closeOnOverlay = true, showClose = true, className = "", widthClassName = "", variant = "default", preset = "custom", confirmLabel = "OK", cancelLabel = "Cancel", onConfirm, onCancel, loading = false, icon, animation = "scale" }) => {
|
|
271
271
|
const currentAnimation = animationVariants[animation];
|
|
272
272
|
const currentTransition = animationTransitions[animation];
|
|
@@ -303,7 +303,7 @@ var Dialog = ({ open, onOpenChange, title, description, children, footer, closeO
|
|
|
303
303
|
type: "button",
|
|
304
304
|
onClick: handleCancel,
|
|
305
305
|
disabled: loading,
|
|
306
|
-
className: "inline-flex items-center justify-center gap-2 cursor-pointer\n py-2.5 px-4 text-sm font-semibold leading-none\n rounded-lg transition-all duration-200\n bg-
|
|
306
|
+
className: "inline-flex items-center justify-center gap-2 cursor-pointer\n py-2.5 px-4 text-sm font-semibold leading-none\n rounded-lg transition-all duration-200\n bg-ds-surface-2 border border-ds-border-2 text-ds-1\n shadow-sm hover:bg-ds-surface-3\n active:scale-95 hover:opacity-90\n disabled:opacity-50 disabled:cursor-not-allowed",
|
|
307
307
|
children: cancelLabel
|
|
308
308
|
}), /* @__PURE__ */ jsxs("button", {
|
|
309
309
|
type: "button",
|
|
@@ -319,8 +319,9 @@ var Dialog = ({ open, onOpenChange, title, description, children, footer, closeO
|
|
|
319
319
|
})]
|
|
320
320
|
});
|
|
321
321
|
};
|
|
322
|
-
|
|
323
|
-
className: "fixed inset-0
|
|
322
|
+
const dialogNode = /* @__PURE__ */ jsx(AnimatePresence, { children: open && /* @__PURE__ */ jsxs("div", {
|
|
323
|
+
className: "fixed inset-0 flex items-center justify-center px-4 overlay-backdrop",
|
|
324
|
+
style: { zIndex: DIALOG_ROOT_Z_INDEX },
|
|
324
325
|
role: "presentation",
|
|
325
326
|
children: [/* @__PURE__ */ jsx(motion.div, {
|
|
326
327
|
initial: { opacity: 0 },
|
|
@@ -342,10 +343,10 @@ var Dialog = ({ open, onOpenChange, title, description, children, footer, closeO
|
|
|
342
343
|
exit: currentAnimation.exit,
|
|
343
344
|
transition: currentTransition,
|
|
344
345
|
children: [
|
|
345
|
-
/* @__PURE__ */ jsx("div", { className: "absolute inset-0 bg-linear-to-tr from-
|
|
346
|
+
/* @__PURE__ */ jsx("div", { className: "pointer-events-none absolute inset-0 rounded-2xl bg-linear-to-tr from-ds-accent/8 via-transparent to-ds-accent/4" }),
|
|
346
347
|
showClose && /* @__PURE__ */ jsx("button", {
|
|
347
348
|
type: "button",
|
|
348
|
-
className: "absolute right-4 top-4 w-8 h-8 flex items-center justify-center\n rounded-full transition-all duration-200\n text-
|
|
349
|
+
className: "absolute right-4 top-4 w-8 h-8 flex items-center justify-center\n rounded-full transition-all duration-200\n text-ds-2 hover:text-ds-1 hover:bg-ds-surface-2",
|
|
349
350
|
"aria-label": "Close dialog",
|
|
350
351
|
onClick: () => onOpenChange?.(false),
|
|
351
352
|
children: /* @__PURE__ */ jsx(CloseIcon, {
|
|
@@ -364,10 +365,10 @@ var Dialog = ({ open, onOpenChange, title, description, children, footer, closeO
|
|
|
364
365
|
}), /* @__PURE__ */ jsxs("div", {
|
|
365
366
|
className: "flex-1 min-w-0",
|
|
366
367
|
children: [title && /* @__PURE__ */ jsx("h2", {
|
|
367
|
-
className: "text-lg font-semibold text-
|
|
368
|
+
className: "pr-8 text-lg font-semibold text-ds-1",
|
|
368
369
|
children: title
|
|
369
370
|
}), description && /* @__PURE__ */ jsx("p", {
|
|
370
|
-
className: "mt-1 text-sm
|
|
371
|
+
className: "mt-1 text-sm leading-relaxed text-ds-2",
|
|
371
372
|
children: description
|
|
372
373
|
})]
|
|
373
374
|
})]
|
|
@@ -383,8 +384,10 @@ var Dialog = ({ open, onOpenChange, title, description, children, footer, closeO
|
|
|
383
384
|
]
|
|
384
385
|
})]
|
|
385
386
|
}) });
|
|
387
|
+
if (typeof document === "undefined") return dialogNode;
|
|
388
|
+
return createPortal(dialogNode, document.body);
|
|
386
389
|
};
|
|
387
390
|
//#endregion
|
|
388
391
|
export { Dialog as t };
|
|
389
392
|
|
|
390
|
-
//# sourceMappingURL=dialog-
|
|
393
|
+
//# sourceMappingURL=dialog-BibwiFLY.mjs.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"dialog-BibwiFLY.mjs","names":[],"sources":["../../src/components/overlays/dialog/Dialog.tsx"],"sourcesContent":["import { useEffect, useRef, type ReactElement } from \"react\";\nimport { createPortal } from \"react-dom\";\nimport {\n motion,\n AnimatePresence,\n type TargetAndTransition,\n} from \"framer-motion\";\nimport {\n AlertCircleIcon,\n AlertTriangleIcon,\n CheckCircleIcon,\n CloseIcon,\n InfoCircleIcon,\n LoaderIcon,\n QuestionCircleIcon,\n} from \"../../icons\";\nimport type {\n DialogProps,\n DialogVariant,\n DialogAnimation,\n DialogPreset,\n} from \"./types\";\nexport type { DialogProps, DialogVariant, DialogAnimation, DialogPreset };\nimport { useOverlayEffects } from \"../../shared/overlay\";\n\n// Animation preset type\ninterface AnimationPreset {\n initial: TargetAndTransition;\n animate: TargetAndTransition;\n exit: TargetAndTransition;\n}\n\n// Animation presets for different entrance/exit effects\nconst animationVariants: Record<DialogAnimation, AnimationPreset> = {\n fade: {\n initial: { opacity: 0 },\n animate: { opacity: 1 },\n exit: { opacity: 0 },\n },\n scale: {\n initial: { opacity: 0, scale: 0.9, y: 20 },\n animate: { opacity: 1, scale: 1, y: 0 },\n exit: { opacity: 0, scale: 0.95, y: 10 },\n },\n slideUp: {\n initial: { opacity: 0, y: 100 },\n animate: { opacity: 1, y: 0 },\n exit: { opacity: 0, y: 50 },\n },\n slideDown: {\n initial: { opacity: 0, y: -100 },\n animate: { opacity: 1, y: 0 },\n exit: { opacity: 0, y: -50 },\n },\n slideLeft: {\n initial: { opacity: 0, x: 100 },\n animate: { opacity: 1, x: 0 },\n exit: { opacity: 0, x: 50 },\n },\n slideRight: {\n initial: { opacity: 0, x: -100 },\n animate: { opacity: 1, x: 0 },\n exit: { opacity: 0, x: -50 },\n },\n elastic: {\n initial: { opacity: 0, scale: 0.5, y: 50 },\n animate: { opacity: 1, scale: 1, y: 0 },\n exit: { opacity: 0, scale: 0.8, y: 20 },\n },\n bounce: {\n initial: { opacity: 0, scale: 0.3, y: -100 },\n animate: { opacity: 1, scale: 1, y: 0 },\n exit: { opacity: 0, scale: 0.5, y: -50 },\n },\n flip: {\n initial: { opacity: 0, rotateX: -90, scale: 0.9 },\n animate: { opacity: 1, rotateX: 0, scale: 1 },\n exit: { opacity: 0, rotateX: 90, scale: 0.9 },\n },\n zoom: {\n initial: { opacity: 0, scale: 0, rotate: -10 },\n animate: { opacity: 1, scale: 1, rotate: 0 },\n exit: { opacity: 0, scale: 0.5, rotate: 5 },\n },\n};\n\n// Transition configs for each animation type\nconst animationTransitions: Record<DialogAnimation, object> = {\n fade: { duration: 0.2 },\n scale: { type: \"spring\", damping: 25, stiffness: 300 },\n slideUp: { type: \"spring\", damping: 25, stiffness: 300 },\n slideDown: { type: \"spring\", damping: 25, stiffness: 300 },\n slideLeft: { type: \"spring\", damping: 25, stiffness: 300 },\n slideRight: { type: \"spring\", damping: 25, stiffness: 300 },\n elastic: { type: \"spring\", damping: 10, stiffness: 100 },\n bounce: { type: \"spring\", damping: 8, stiffness: 200, bounce: 0.5 },\n flip: { type: \"spring\", damping: 15, stiffness: 150 },\n zoom: { type: \"spring\", damping: 20, stiffness: 200 },\n};\n\n// Crystal glass panel base styling\nconst basePanel = `\n relative w-full max-w-lg rounded-2xl overflow-hidden\n border border-ds-border-2\n backdrop-blur-2xl backdrop-saturate-150\n bg-ds-surface-1/95\n p-6\n shadow-[0_8px_32px_rgba(0,0,0,0.12),0_2px_8px_rgba(0,0,0,0.08)]\n ring-1 ring-inset ring-ds-border-3/40\n`;\n\n// Variant accent colors for icons and confirm buttons\nconst variantStyles: Record<\n DialogVariant,\n { icon: string; button: string; iconColor: string }\n> = {\n default: {\n icon: \"bg-ds-accent-subtle\",\n button: \"bg-ds-accent hover:bg-ds-accent-hover text-ds-on-accent\",\n iconColor: \"text-ds-1\",\n },\n destructive: {\n icon: \"bg-ds-state-error-surface\",\n button: \"bg-ds-state-danger hover:opacity-90 text-ds-on-accent\",\n iconColor: \"text-ds-state-error-text\",\n },\n success: {\n icon: \"bg-ds-state-success-surface\",\n button: \"bg-ds-state-success hover:opacity-90 text-ds-on-accent\",\n iconColor: \"text-ds-state-success-text\",\n },\n warning: {\n icon: \"bg-ds-state-warning-surface\",\n button: \"bg-ds-state-warning hover:opacity-90 text-ds-1\",\n iconColor: \"text-ds-state-warning-text\",\n },\n info: {\n icon: \"bg-ds-state-info-surface\",\n button: \"bg-ds-state-info hover:opacity-90 text-ds-on-accent\",\n iconColor: \"text-ds-state-info-text\",\n },\n};\n\n// Default icons per variant\nconst VariantIcon = ({ variant }: { variant: DialogVariant }): ReactElement => {\n const icons: Record<DialogVariant, ReactElement> = {\n default: <QuestionCircleIcon className=\"w-6 h-6\" aria-hidden=\"true\" />,\n destructive: <AlertTriangleIcon className=\"w-6 h-6\" aria-hidden=\"true\" />,\n success: <CheckCircleIcon className=\"w-6 h-6\" aria-hidden=\"true\" />,\n warning: <AlertCircleIcon className=\"w-6 h-6\" aria-hidden=\"true\" />,\n info: <InfoCircleIcon className=\"w-6 h-6\" aria-hidden=\"true\" />,\n };\n return icons[variant];\n};\n\n// Loading spinner\nconst Spinner = () => (\n <LoaderIcon className=\"animate-spin w-4 h-4\" aria-hidden=\"true\" />\n);\n\nconst DIALOG_ROOT_Z_INDEX = 2147483000;\n\nexport const Dialog = ({\n open,\n onOpenChange,\n title,\n description,\n children,\n footer,\n closeOnOverlay = true,\n showClose = true,\n className = \"\",\n widthClassName = \"\",\n variant = \"default\",\n preset = \"custom\",\n confirmLabel = \"OK\",\n cancelLabel = \"Cancel\",\n onConfirm,\n onCancel,\n loading = false,\n icon,\n animation = \"scale\",\n}: DialogProps) => {\n const currentAnimation = animationVariants[animation];\n const currentTransition = animationTransitions[animation];\n const panelRef = useRef<HTMLDivElement | null>(null);\n useOverlayEffects(panelRef, open);\n\n useEffect(() => {\n if (!open || typeof window === \"undefined\") return;\n const handleKey = (event: KeyboardEvent) => {\n if (event.key === \"Escape\") {\n onOpenChange?.(false);\n }\n };\n window.addEventListener(\"keydown\", handleKey);\n return () => window.removeEventListener(\"keydown\", handleKey);\n }, [open, onOpenChange]);\n\n const handleOverlayClick = () => {\n if (closeOnOverlay) {\n onOpenChange?.(false);\n }\n };\n\n const handleCancel = () => {\n onCancel?.();\n onOpenChange?.(false);\n };\n\n const handleConfirm = () => {\n onConfirm?.();\n if (!loading) {\n onOpenChange?.(false);\n }\n };\n\n const styles = variantStyles[variant];\n const showPresetButtons = preset !== \"custom\" && !footer;\n const showCancelButton = preset === \"confirm\";\n\n // Render preset buttons\n const renderFooter = () => {\n if (footer) return footer;\n if (!showPresetButtons) return null;\n\n return (\n <div className=\"flex gap-3 justify-end w-full\">\n {showCancelButton && (\n <button\n type=\"button\"\n onClick={handleCancel}\n disabled={loading}\n className=\"inline-flex items-center justify-center gap-2 cursor-pointer\n py-2.5 px-4 text-sm font-semibold leading-none\n rounded-lg transition-all duration-200\n bg-ds-surface-2 border border-ds-border-2 text-ds-1\n shadow-sm hover:bg-ds-surface-3\n active:scale-95 hover:opacity-90\n disabled:opacity-50 disabled:cursor-not-allowed\"\n >\n {cancelLabel}\n </button>\n )}\n <button\n type=\"button\"\n onClick={handleConfirm}\n disabled={loading}\n className={`inline-flex items-center justify-center gap-2 cursor-pointer\n py-2.5 px-4 text-sm font-semibold leading-none\n rounded-lg transition-all duration-200\n shadow-md hover:shadow-lg\n active:scale-95 hover:opacity-90\n disabled:opacity-50 disabled:cursor-not-allowed ${styles.button}`}\n >\n {loading && <Spinner />}\n {confirmLabel}\n </button>\n </div>\n );\n };\n\n const dialogNode = (\n <AnimatePresence>\n {open && (\n <div\n className=\"fixed inset-0 flex items-center justify-center px-4 overlay-backdrop\"\n style={{ zIndex: DIALOG_ROOT_Z_INDEX }}\n role=\"presentation\"\n >\n {/* Backdrop with blur */}\n <motion.div\n initial={{ opacity: 0 }}\n animate={{ opacity: 1 }}\n exit={{ opacity: 0 }}\n transition={{ duration: 0.2 }}\n className=\"fixed inset-0 bg-black/30 backdrop-blur-sm\"\n onClick={handleOverlayClick}\n />\n\n {/* Crystal panel */}\n <motion.div\n role=\"dialog\"\n aria-modal=\"true\"\n aria-label={title}\n className={`${basePanel} overlay-panel ${className} ${widthClassName}`.trim()}\n tabIndex={-1}\n ref={panelRef}\n onClick={(event) => event.stopPropagation()}\n initial={currentAnimation.initial}\n animate={currentAnimation.animate}\n exit={currentAnimation.exit}\n transition={currentTransition}\n >\n {/* Subtle gradient overlay for crystal effect */}\n <div className=\"pointer-events-none absolute inset-0 rounded-2xl bg-linear-to-tr from-ds-accent/8 via-transparent to-ds-accent/4\" />\n\n {/* Close button */}\n {showClose && (\n <button\n type=\"button\"\n className=\"absolute right-4 top-4 w-8 h-8 flex items-center justify-center\n rounded-full transition-all duration-200\n text-ds-2 hover:text-ds-1 hover:bg-ds-surface-2\"\n aria-label=\"Close dialog\"\n onClick={() => onOpenChange?.(false)}\n >\n <CloseIcon className=\"w-4 h-4\" aria-hidden=\"true\" />\n </button>\n )}\n\n {/* Content */}\n <div className=\"relative flex gap-4\">\n {/* Icon */}\n {preset !== \"custom\" && (\n <div\n className={`shrink-0 w-10 h-10 rounded-full flex items-center justify-center ${styles.icon}`}\n >\n <span className={styles.iconColor}>\n {icon || <VariantIcon variant={variant} />}\n </span>\n </div>\n )}\n\n {/* Text content */}\n <div className=\"flex-1 min-w-0\">\n {title && (\n <h2 className=\"pr-8 text-lg font-semibold text-ds-1\">\n {title}\n </h2>\n )}\n {description && (\n <p className=\"mt-1 text-sm leading-relaxed text-ds-2\">\n {description}\n </p>\n )}\n </div>\n </div>\n\n {/* Children content */}\n {children && (\n <div className=\"mt-4 space-y-4 relative\">{children}</div>\n )}\n\n {/* Footer */}\n {(footer || showPresetButtons) && (\n <footer className=\"mt-6 flex justify-end gap-3 relative\">\n {renderFooter()}\n </footer>\n )}\n </motion.div>\n </div>\n )}\n </AnimatePresence>\n );\n\n if (typeof document === \"undefined\") {\n return dialogNode;\n }\n\n return createPortal(dialogNode, document.body);\n};\n"],"mappings":"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"}
|
|
@@ -1,9 +1,10 @@
|
|
|
1
1
|
require("./chunk-B_GkZjkl.cjs");
|
|
2
|
-
const require_icons = require("./icons-
|
|
3
|
-
const require_overlay = require("./overlay-
|
|
2
|
+
const require_icons = require("./icons-CRanVZB1.cjs");
|
|
3
|
+
const require_overlay = require("./overlay-DwJgjJuu.cjs");
|
|
4
4
|
let react = require("react");
|
|
5
5
|
let react_jsx_runtime = require("react/jsx-runtime");
|
|
6
6
|
let framer_motion = require("framer-motion");
|
|
7
|
+
let react_dom = require("react-dom");
|
|
7
8
|
//#region src/components/overlays/dialog/Dialog.tsx
|
|
8
9
|
var animationVariants = {
|
|
9
10
|
fade: {
|
|
@@ -204,40 +205,38 @@ var animationTransitions = {
|
|
|
204
205
|
};
|
|
205
206
|
var basePanel = `
|
|
206
207
|
relative w-full max-w-lg rounded-2xl overflow-hidden
|
|
207
|
-
border border-
|
|
208
|
+
border border-ds-border-2
|
|
208
209
|
backdrop-blur-2xl backdrop-saturate-150
|
|
209
|
-
bg-
|
|
210
|
-
dark:from-neutral-900/90 dark:via-neutral-900/80 dark:to-neutral-800/70
|
|
210
|
+
bg-ds-surface-1/95
|
|
211
211
|
p-6
|
|
212
212
|
shadow-[0_8px_32px_rgba(0,0,0,0.12),0_2px_8px_rgba(0,0,0,0.08)]
|
|
213
|
-
|
|
214
|
-
ring-1 ring-inset ring-white/20 dark:ring-white/5
|
|
213
|
+
ring-1 ring-inset ring-ds-border-3/40
|
|
215
214
|
`;
|
|
216
215
|
var variantStyles = {
|
|
217
216
|
default: {
|
|
218
|
-
icon: "bg-accent-subtle",
|
|
219
|
-
button: "bg-accent hover:bg-accent-hover text-on-accent",
|
|
220
|
-
iconColor: "text-
|
|
217
|
+
icon: "bg-ds-accent-subtle",
|
|
218
|
+
button: "bg-ds-accent hover:bg-ds-accent-hover text-ds-on-accent",
|
|
219
|
+
iconColor: "text-ds-1"
|
|
221
220
|
},
|
|
222
221
|
destructive: {
|
|
223
|
-
icon: "bg-
|
|
224
|
-
button: "bg-
|
|
225
|
-
iconColor: "text-
|
|
222
|
+
icon: "bg-ds-state-error-surface",
|
|
223
|
+
button: "bg-ds-state-danger hover:opacity-90 text-ds-on-accent",
|
|
224
|
+
iconColor: "text-ds-state-error-text"
|
|
226
225
|
},
|
|
227
226
|
success: {
|
|
228
|
-
icon: "bg-success-
|
|
229
|
-
button: "bg-success hover:opacity-90 text-
|
|
230
|
-
iconColor: "text-success"
|
|
227
|
+
icon: "bg-ds-state-success-surface",
|
|
228
|
+
button: "bg-ds-state-success hover:opacity-90 text-ds-on-accent",
|
|
229
|
+
iconColor: "text-ds-state-success-text"
|
|
231
230
|
},
|
|
232
231
|
warning: {
|
|
233
|
-
icon: "bg-warning-
|
|
234
|
-
button: "bg-warning hover:opacity-90 text-
|
|
235
|
-
iconColor: "text-warning"
|
|
232
|
+
icon: "bg-ds-state-warning-surface",
|
|
233
|
+
button: "bg-ds-state-warning hover:opacity-90 text-ds-1",
|
|
234
|
+
iconColor: "text-ds-state-warning-text"
|
|
236
235
|
},
|
|
237
236
|
info: {
|
|
238
|
-
icon: "bg-info-
|
|
239
|
-
button: "bg-info hover:opacity-90 text-
|
|
240
|
-
iconColor: "text-info"
|
|
237
|
+
icon: "bg-ds-state-info-surface",
|
|
238
|
+
button: "bg-ds-state-info hover:opacity-90 text-ds-on-accent",
|
|
239
|
+
iconColor: "text-ds-state-info-text"
|
|
241
240
|
}
|
|
242
241
|
};
|
|
243
242
|
var VariantIcon = ({ variant }) => {
|
|
@@ -268,6 +267,7 @@ var Spinner = () => /* @__PURE__ */ (0, react_jsx_runtime.jsx)(require_icons.Loa
|
|
|
268
267
|
className: "animate-spin w-4 h-4",
|
|
269
268
|
"aria-hidden": "true"
|
|
270
269
|
});
|
|
270
|
+
var DIALOG_ROOT_Z_INDEX = 2147483e3;
|
|
271
271
|
var Dialog = ({ open, onOpenChange, title, description, children, footer, closeOnOverlay = true, showClose = true, className = "", widthClassName = "", variant = "default", preset = "custom", confirmLabel = "OK", cancelLabel = "Cancel", onConfirm, onCancel, loading = false, icon, animation = "scale" }) => {
|
|
272
272
|
const currentAnimation = animationVariants[animation];
|
|
273
273
|
const currentTransition = animationTransitions[animation];
|
|
@@ -304,7 +304,7 @@ var Dialog = ({ open, onOpenChange, title, description, children, footer, closeO
|
|
|
304
304
|
type: "button",
|
|
305
305
|
onClick: handleCancel,
|
|
306
306
|
disabled: loading,
|
|
307
|
-
className: "inline-flex items-center justify-center gap-2 cursor-pointer\n py-2.5 px-4 text-sm font-semibold leading-none\n rounded-lg transition-all duration-200\n bg-
|
|
307
|
+
className: "inline-flex items-center justify-center gap-2 cursor-pointer\n py-2.5 px-4 text-sm font-semibold leading-none\n rounded-lg transition-all duration-200\n bg-ds-surface-2 border border-ds-border-2 text-ds-1\n shadow-sm hover:bg-ds-surface-3\n active:scale-95 hover:opacity-90\n disabled:opacity-50 disabled:cursor-not-allowed",
|
|
308
308
|
children: cancelLabel
|
|
309
309
|
}), /* @__PURE__ */ (0, react_jsx_runtime.jsxs)("button", {
|
|
310
310
|
type: "button",
|
|
@@ -320,8 +320,9 @@ var Dialog = ({ open, onOpenChange, title, description, children, footer, closeO
|
|
|
320
320
|
})]
|
|
321
321
|
});
|
|
322
322
|
};
|
|
323
|
-
|
|
324
|
-
className: "fixed inset-0
|
|
323
|
+
const dialogNode = /* @__PURE__ */ (0, react_jsx_runtime.jsx)(framer_motion.AnimatePresence, { children: open && /* @__PURE__ */ (0, react_jsx_runtime.jsxs)("div", {
|
|
324
|
+
className: "fixed inset-0 flex items-center justify-center px-4 overlay-backdrop",
|
|
325
|
+
style: { zIndex: DIALOG_ROOT_Z_INDEX },
|
|
325
326
|
role: "presentation",
|
|
326
327
|
children: [/* @__PURE__ */ (0, react_jsx_runtime.jsx)(framer_motion.motion.div, {
|
|
327
328
|
initial: { opacity: 0 },
|
|
@@ -343,10 +344,10 @@ var Dialog = ({ open, onOpenChange, title, description, children, footer, closeO
|
|
|
343
344
|
exit: currentAnimation.exit,
|
|
344
345
|
transition: currentTransition,
|
|
345
346
|
children: [
|
|
346
|
-
/* @__PURE__ */ (0, react_jsx_runtime.jsx)("div", { className: "absolute inset-0 bg-linear-to-tr from-
|
|
347
|
+
/* @__PURE__ */ (0, react_jsx_runtime.jsx)("div", { className: "pointer-events-none absolute inset-0 rounded-2xl bg-linear-to-tr from-ds-accent/8 via-transparent to-ds-accent/4" }),
|
|
347
348
|
showClose && /* @__PURE__ */ (0, react_jsx_runtime.jsx)("button", {
|
|
348
349
|
type: "button",
|
|
349
|
-
className: "absolute right-4 top-4 w-8 h-8 flex items-center justify-center\n rounded-full transition-all duration-200\n text-
|
|
350
|
+
className: "absolute right-4 top-4 w-8 h-8 flex items-center justify-center\n rounded-full transition-all duration-200\n text-ds-2 hover:text-ds-1 hover:bg-ds-surface-2",
|
|
350
351
|
"aria-label": "Close dialog",
|
|
351
352
|
onClick: () => onOpenChange?.(false),
|
|
352
353
|
children: /* @__PURE__ */ (0, react_jsx_runtime.jsx)(require_icons.CloseIcon, {
|
|
@@ -365,10 +366,10 @@ var Dialog = ({ open, onOpenChange, title, description, children, footer, closeO
|
|
|
365
366
|
}), /* @__PURE__ */ (0, react_jsx_runtime.jsxs)("div", {
|
|
366
367
|
className: "flex-1 min-w-0",
|
|
367
368
|
children: [title && /* @__PURE__ */ (0, react_jsx_runtime.jsx)("h2", {
|
|
368
|
-
className: "text-lg font-semibold text-
|
|
369
|
+
className: "pr-8 text-lg font-semibold text-ds-1",
|
|
369
370
|
children: title
|
|
370
371
|
}), description && /* @__PURE__ */ (0, react_jsx_runtime.jsx)("p", {
|
|
371
|
-
className: "mt-1 text-sm
|
|
372
|
+
className: "mt-1 text-sm leading-relaxed text-ds-2",
|
|
372
373
|
children: description
|
|
373
374
|
})]
|
|
374
375
|
})]
|
|
@@ -384,6 +385,8 @@ var Dialog = ({ open, onOpenChange, title, description, children, footer, closeO
|
|
|
384
385
|
]
|
|
385
386
|
})]
|
|
386
387
|
}) });
|
|
388
|
+
if (typeof document === "undefined") return dialogNode;
|
|
389
|
+
return (0, react_dom.createPortal)(dialogNode, document.body);
|
|
387
390
|
};
|
|
388
391
|
//#endregion
|
|
389
392
|
Object.defineProperty(exports, "Dialog", {
|
|
@@ -393,4 +396,4 @@ Object.defineProperty(exports, "Dialog", {
|
|
|
393
396
|
}
|
|
394
397
|
});
|
|
395
398
|
|
|
396
|
-
//# sourceMappingURL=dialog-
|
|
399
|
+
//# sourceMappingURL=dialog-I141I0nc.cjs.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"dialog-I141I0nc.cjs","names":[],"sources":["../../src/components/overlays/dialog/Dialog.tsx"],"sourcesContent":["import { useEffect, useRef, type ReactElement } from \"react\";\nimport { createPortal } from \"react-dom\";\nimport {\n motion,\n AnimatePresence,\n type TargetAndTransition,\n} from \"framer-motion\";\nimport {\n AlertCircleIcon,\n AlertTriangleIcon,\n CheckCircleIcon,\n CloseIcon,\n InfoCircleIcon,\n LoaderIcon,\n QuestionCircleIcon,\n} from \"../../icons\";\nimport type {\n DialogProps,\n DialogVariant,\n DialogAnimation,\n DialogPreset,\n} from \"./types\";\nexport type { DialogProps, DialogVariant, DialogAnimation, DialogPreset };\nimport { useOverlayEffects } from \"../../shared/overlay\";\n\n// Animation preset type\ninterface AnimationPreset {\n initial: TargetAndTransition;\n animate: TargetAndTransition;\n exit: TargetAndTransition;\n}\n\n// Animation presets for different entrance/exit effects\nconst animationVariants: Record<DialogAnimation, AnimationPreset> = {\n fade: {\n initial: { opacity: 0 },\n animate: { opacity: 1 },\n exit: { opacity: 0 },\n },\n scale: {\n initial: { opacity: 0, scale: 0.9, y: 20 },\n animate: { opacity: 1, scale: 1, y: 0 },\n exit: { opacity: 0, scale: 0.95, y: 10 },\n },\n slideUp: {\n initial: { opacity: 0, y: 100 },\n animate: { opacity: 1, y: 0 },\n exit: { opacity: 0, y: 50 },\n },\n slideDown: {\n initial: { opacity: 0, y: -100 },\n animate: { opacity: 1, y: 0 },\n exit: { opacity: 0, y: -50 },\n },\n slideLeft: {\n initial: { opacity: 0, x: 100 },\n animate: { opacity: 1, x: 0 },\n exit: { opacity: 0, x: 50 },\n },\n slideRight: {\n initial: { opacity: 0, x: -100 },\n animate: { opacity: 1, x: 0 },\n exit: { opacity: 0, x: -50 },\n },\n elastic: {\n initial: { opacity: 0, scale: 0.5, y: 50 },\n animate: { opacity: 1, scale: 1, y: 0 },\n exit: { opacity: 0, scale: 0.8, y: 20 },\n },\n bounce: {\n initial: { opacity: 0, scale: 0.3, y: -100 },\n animate: { opacity: 1, scale: 1, y: 0 },\n exit: { opacity: 0, scale: 0.5, y: -50 },\n },\n flip: {\n initial: { opacity: 0, rotateX: -90, scale: 0.9 },\n animate: { opacity: 1, rotateX: 0, scale: 1 },\n exit: { opacity: 0, rotateX: 90, scale: 0.9 },\n },\n zoom: {\n initial: { opacity: 0, scale: 0, rotate: -10 },\n animate: { opacity: 1, scale: 1, rotate: 0 },\n exit: { opacity: 0, scale: 0.5, rotate: 5 },\n },\n};\n\n// Transition configs for each animation type\nconst animationTransitions: Record<DialogAnimation, object> = {\n fade: { duration: 0.2 },\n scale: { type: \"spring\", damping: 25, stiffness: 300 },\n slideUp: { type: \"spring\", damping: 25, stiffness: 300 },\n slideDown: { type: \"spring\", damping: 25, stiffness: 300 },\n slideLeft: { type: \"spring\", damping: 25, stiffness: 300 },\n slideRight: { type: \"spring\", damping: 25, stiffness: 300 },\n elastic: { type: \"spring\", damping: 10, stiffness: 100 },\n bounce: { type: \"spring\", damping: 8, stiffness: 200, bounce: 0.5 },\n flip: { type: \"spring\", damping: 15, stiffness: 150 },\n zoom: { type: \"spring\", damping: 20, stiffness: 200 },\n};\n\n// Crystal glass panel base styling\nconst basePanel = `\n relative w-full max-w-lg rounded-2xl overflow-hidden\n border border-ds-border-2\n backdrop-blur-2xl backdrop-saturate-150\n bg-ds-surface-1/95\n p-6\n shadow-[0_8px_32px_rgba(0,0,0,0.12),0_2px_8px_rgba(0,0,0,0.08)]\n ring-1 ring-inset ring-ds-border-3/40\n`;\n\n// Variant accent colors for icons and confirm buttons\nconst variantStyles: Record<\n DialogVariant,\n { icon: string; button: string; iconColor: string }\n> = {\n default: {\n icon: \"bg-ds-accent-subtle\",\n button: \"bg-ds-accent hover:bg-ds-accent-hover text-ds-on-accent\",\n iconColor: \"text-ds-1\",\n },\n destructive: {\n icon: \"bg-ds-state-error-surface\",\n button: \"bg-ds-state-danger hover:opacity-90 text-ds-on-accent\",\n iconColor: \"text-ds-state-error-text\",\n },\n success: {\n icon: \"bg-ds-state-success-surface\",\n button: \"bg-ds-state-success hover:opacity-90 text-ds-on-accent\",\n iconColor: \"text-ds-state-success-text\",\n },\n warning: {\n icon: \"bg-ds-state-warning-surface\",\n button: \"bg-ds-state-warning hover:opacity-90 text-ds-1\",\n iconColor: \"text-ds-state-warning-text\",\n },\n info: {\n icon: \"bg-ds-state-info-surface\",\n button: \"bg-ds-state-info hover:opacity-90 text-ds-on-accent\",\n iconColor: \"text-ds-state-info-text\",\n },\n};\n\n// Default icons per variant\nconst VariantIcon = ({ variant }: { variant: DialogVariant }): ReactElement => {\n const icons: Record<DialogVariant, ReactElement> = {\n default: <QuestionCircleIcon className=\"w-6 h-6\" aria-hidden=\"true\" />,\n destructive: <AlertTriangleIcon className=\"w-6 h-6\" aria-hidden=\"true\" />,\n success: <CheckCircleIcon className=\"w-6 h-6\" aria-hidden=\"true\" />,\n warning: <AlertCircleIcon className=\"w-6 h-6\" aria-hidden=\"true\" />,\n info: <InfoCircleIcon className=\"w-6 h-6\" aria-hidden=\"true\" />,\n };\n return icons[variant];\n};\n\n// Loading spinner\nconst Spinner = () => (\n <LoaderIcon className=\"animate-spin w-4 h-4\" aria-hidden=\"true\" />\n);\n\nconst DIALOG_ROOT_Z_INDEX = 2147483000;\n\nexport const Dialog = ({\n open,\n onOpenChange,\n title,\n description,\n children,\n footer,\n closeOnOverlay = true,\n showClose = true,\n className = \"\",\n widthClassName = \"\",\n variant = \"default\",\n preset = \"custom\",\n confirmLabel = \"OK\",\n cancelLabel = \"Cancel\",\n onConfirm,\n onCancel,\n loading = false,\n icon,\n animation = \"scale\",\n}: DialogProps) => {\n const currentAnimation = animationVariants[animation];\n const currentTransition = animationTransitions[animation];\n const panelRef = useRef<HTMLDivElement | null>(null);\n useOverlayEffects(panelRef, open);\n\n useEffect(() => {\n if (!open || typeof window === \"undefined\") return;\n const handleKey = (event: KeyboardEvent) => {\n if (event.key === \"Escape\") {\n onOpenChange?.(false);\n }\n };\n window.addEventListener(\"keydown\", handleKey);\n return () => window.removeEventListener(\"keydown\", handleKey);\n }, [open, onOpenChange]);\n\n const handleOverlayClick = () => {\n if (closeOnOverlay) {\n onOpenChange?.(false);\n }\n };\n\n const handleCancel = () => {\n onCancel?.();\n onOpenChange?.(false);\n };\n\n const handleConfirm = () => {\n onConfirm?.();\n if (!loading) {\n onOpenChange?.(false);\n }\n };\n\n const styles = variantStyles[variant];\n const showPresetButtons = preset !== \"custom\" && !footer;\n const showCancelButton = preset === \"confirm\";\n\n // Render preset buttons\n const renderFooter = () => {\n if (footer) return footer;\n if (!showPresetButtons) return null;\n\n return (\n <div className=\"flex gap-3 justify-end w-full\">\n {showCancelButton && (\n <button\n type=\"button\"\n onClick={handleCancel}\n disabled={loading}\n className=\"inline-flex items-center justify-center gap-2 cursor-pointer\n py-2.5 px-4 text-sm font-semibold leading-none\n rounded-lg transition-all duration-200\n bg-ds-surface-2 border border-ds-border-2 text-ds-1\n shadow-sm hover:bg-ds-surface-3\n active:scale-95 hover:opacity-90\n disabled:opacity-50 disabled:cursor-not-allowed\"\n >\n {cancelLabel}\n </button>\n )}\n <button\n type=\"button\"\n onClick={handleConfirm}\n disabled={loading}\n className={`inline-flex items-center justify-center gap-2 cursor-pointer\n py-2.5 px-4 text-sm font-semibold leading-none\n rounded-lg transition-all duration-200\n shadow-md hover:shadow-lg\n active:scale-95 hover:opacity-90\n disabled:opacity-50 disabled:cursor-not-allowed ${styles.button}`}\n >\n {loading && <Spinner />}\n {confirmLabel}\n </button>\n </div>\n );\n };\n\n const dialogNode = (\n <AnimatePresence>\n {open && (\n <div\n className=\"fixed inset-0 flex items-center justify-center px-4 overlay-backdrop\"\n style={{ zIndex: DIALOG_ROOT_Z_INDEX }}\n role=\"presentation\"\n >\n {/* Backdrop with blur */}\n <motion.div\n initial={{ opacity: 0 }}\n animate={{ opacity: 1 }}\n exit={{ opacity: 0 }}\n transition={{ duration: 0.2 }}\n className=\"fixed inset-0 bg-black/30 backdrop-blur-sm\"\n onClick={handleOverlayClick}\n />\n\n {/* Crystal panel */}\n <motion.div\n role=\"dialog\"\n aria-modal=\"true\"\n aria-label={title}\n className={`${basePanel} overlay-panel ${className} ${widthClassName}`.trim()}\n tabIndex={-1}\n ref={panelRef}\n onClick={(event) => event.stopPropagation()}\n initial={currentAnimation.initial}\n animate={currentAnimation.animate}\n exit={currentAnimation.exit}\n transition={currentTransition}\n >\n {/* Subtle gradient overlay for crystal effect */}\n <div className=\"pointer-events-none absolute inset-0 rounded-2xl bg-linear-to-tr from-ds-accent/8 via-transparent to-ds-accent/4\" />\n\n {/* Close button */}\n {showClose && (\n <button\n type=\"button\"\n className=\"absolute right-4 top-4 w-8 h-8 flex items-center justify-center\n rounded-full transition-all duration-200\n text-ds-2 hover:text-ds-1 hover:bg-ds-surface-2\"\n aria-label=\"Close dialog\"\n onClick={() => onOpenChange?.(false)}\n >\n <CloseIcon className=\"w-4 h-4\" aria-hidden=\"true\" />\n </button>\n )}\n\n {/* Content */}\n <div className=\"relative flex gap-4\">\n {/* Icon */}\n {preset !== \"custom\" && (\n <div\n className={`shrink-0 w-10 h-10 rounded-full flex items-center justify-center ${styles.icon}`}\n >\n <span className={styles.iconColor}>\n {icon || <VariantIcon variant={variant} />}\n </span>\n </div>\n )}\n\n {/* Text content */}\n <div className=\"flex-1 min-w-0\">\n {title && (\n <h2 className=\"pr-8 text-lg font-semibold text-ds-1\">\n {title}\n </h2>\n )}\n {description && (\n <p className=\"mt-1 text-sm leading-relaxed text-ds-2\">\n {description}\n </p>\n )}\n </div>\n </div>\n\n {/* Children content */}\n {children && (\n <div className=\"mt-4 space-y-4 relative\">{children}</div>\n )}\n\n {/* Footer */}\n {(footer || showPresetButtons) && (\n <footer className=\"mt-6 flex justify-end gap-3 relative\">\n {renderFooter()}\n </footer>\n )}\n </motion.div>\n </div>\n )}\n </AnimatePresence>\n );\n\n if (typeof document === \"undefined\") {\n return dialogNode;\n }\n\n return createPortal(dialogNode, document.body);\n};\n"],"mappings":"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"}
|
|
@@ -1,9 +1,9 @@
|
|
|
1
|
-
import { t as useOverlayEffects } from "./overlay-
|
|
1
|
+
import { t as useOverlayEffects } from "./overlay-C58wXorc.mjs";
|
|
2
2
|
import { useEffect, useRef } from "react";
|
|
3
3
|
import { jsx, jsxs } from "react/jsx-runtime";
|
|
4
4
|
import { AnimatePresence, motion } from "framer-motion";
|
|
5
5
|
//#region src/components/overlays/drawer/Drawer.tsx
|
|
6
|
-
var basePanel = "relative flex flex-col overflow-hidden rounded-2xl border border-
|
|
6
|
+
var basePanel = "relative flex flex-col overflow-hidden rounded-2xl border border-ds-border-2 bg-ds-surface-1/95 p-6 shadow-[0_24px_80px_rgba(15,23,42,0.22),0_8px_28px_rgba(15,23,42,0.14)] ring-1 ring-inset ring-ds-border-3/35 backdrop-blur-2xl backdrop-saturate-150";
|
|
7
7
|
var positionClasses = {
|
|
8
8
|
right: "h-[calc(100%-8px)] my-1 mr-1 w-full max-w-md ml-auto border",
|
|
9
9
|
left: "h-[calc(100%-8px)] my-1 ml-1 w-full max-w-md mr-auto border",
|
|
@@ -50,7 +50,7 @@ var Drawer = ({ open, onOpenChange, title, description, position = "right", chil
|
|
|
50
50
|
animate: { opacity: 1 },
|
|
51
51
|
exit: { opacity: 0 },
|
|
52
52
|
transition: { duration: .3 },
|
|
53
|
-
className: "fixed inset-0 bg-
|
|
53
|
+
className: "fixed inset-0 bg-ds-canvas/55 backdrop-blur-[3px]",
|
|
54
54
|
onClick: () => onOpenChange?.(false)
|
|
55
55
|
}), /* @__PURE__ */ jsxs(motion.div, {
|
|
56
56
|
role: "dialog",
|
|
@@ -72,19 +72,19 @@ var Drawer = ({ open, onOpenChange, title, description, position = "right", chil
|
|
|
72
72
|
children: [
|
|
73
73
|
/* @__PURE__ */ jsx("div", {
|
|
74
74
|
"aria-hidden": "true",
|
|
75
|
-
className: "pointer-events-none absolute inset-0 bg-linear-to-b from-
|
|
75
|
+
className: "pointer-events-none absolute inset-0 bg-linear-to-b from-ds-accent/10 via-transparent to-transparent"
|
|
76
76
|
}),
|
|
77
77
|
/* @__PURE__ */ jsx("div", {
|
|
78
78
|
"aria-hidden": "true",
|
|
79
|
-
className: "pointer-events-none absolute inset-x-0 top-0 h-24 bg-linear-to-b from-
|
|
79
|
+
className: "pointer-events-none absolute inset-x-0 top-0 h-24 bg-linear-to-b from-ds-accent/16 to-transparent"
|
|
80
80
|
}),
|
|
81
81
|
/* @__PURE__ */ jsx("div", {
|
|
82
82
|
"aria-hidden": "true",
|
|
83
|
-
className: "pointer-events-none absolute -right-10 top-[-72px] h-40 w-40 rounded-full bg-
|
|
83
|
+
className: "pointer-events-none absolute -right-10 top-[-72px] h-40 w-40 rounded-full bg-ds-accent/18 blur-3xl"
|
|
84
84
|
}),
|
|
85
85
|
/* @__PURE__ */ jsx("button", {
|
|
86
86
|
type: "button",
|
|
87
|
-
className: "absolute right-4 top-4 z-20 inline-flex h-9 w-9 items-center justify-center rounded-full border border-
|
|
87
|
+
className: "absolute right-4 top-4 z-20 inline-flex h-9 w-9 items-center justify-center rounded-full border border-ds-border-2 bg-ds-surface-2 text-lg font-light text-ds-1 shadow-sm backdrop-blur-md transition-all duration-200 hover:bg-ds-surface-3",
|
|
88
88
|
"aria-label": "Close drawer",
|
|
89
89
|
onClick: () => onOpenChange?.(false),
|
|
90
90
|
children: "×"
|
|
@@ -95,10 +95,10 @@ var Drawer = ({ open, onOpenChange, title, description, position = "right", chil
|
|
|
95
95
|
(title || description) && /* @__PURE__ */ jsxs("header", {
|
|
96
96
|
className: "space-y-1 pr-10",
|
|
97
97
|
children: [title && /* @__PURE__ */ jsx("h2", {
|
|
98
|
-
className: "text-lg font-semibold tracking-tight text-
|
|
98
|
+
className: "text-lg font-semibold tracking-tight text-ds-1",
|
|
99
99
|
children: title
|
|
100
100
|
}), description && /* @__PURE__ */ jsx("p", {
|
|
101
|
-
className: "text-sm text-
|
|
101
|
+
className: "text-sm text-ds-2",
|
|
102
102
|
children: description
|
|
103
103
|
})]
|
|
104
104
|
}),
|
|
@@ -107,7 +107,7 @@ var Drawer = ({ open, onOpenChange, title, description, position = "right", chil
|
|
|
107
107
|
children
|
|
108
108
|
}),
|
|
109
109
|
footer && /* @__PURE__ */ jsx("footer", {
|
|
110
|
-
className: "mt-6 border-t border-
|
|
110
|
+
className: "mt-6 border-t border-ds-border-2 pt-4",
|
|
111
111
|
children: footer
|
|
112
112
|
})
|
|
113
113
|
]
|
|
@@ -119,4 +119,4 @@ var Drawer = ({ open, onOpenChange, title, description, position = "right", chil
|
|
|
119
119
|
//#endregion
|
|
120
120
|
export { Drawer as t };
|
|
121
121
|
|
|
122
|
-
//# sourceMappingURL=drawer-
|
|
122
|
+
//# sourceMappingURL=drawer-DsE8Pb8e.mjs.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"drawer-DsE8Pb8e.mjs","names":[],"sources":["../../src/components/overlays/drawer/Drawer.tsx"],"sourcesContent":["import { useEffect, useRef } from \"react\";\nimport { motion, AnimatePresence } from \"framer-motion\";\nimport type { DrawerProps, DrawerPosition } from \"./types\";\nimport { useOverlayEffects } from \"../../shared/overlay\";\n\nconst basePanel =\n \"relative flex flex-col overflow-hidden rounded-2xl border border-ds-border-2 bg-ds-surface-1/95 p-6 shadow-[0_24px_80px_rgba(15,23,42,0.22),0_8px_28px_rgba(15,23,42,0.14)] ring-1 ring-inset ring-ds-border-3/35 backdrop-blur-2xl backdrop-saturate-150\";\n\nconst positionClasses: Record<DrawerPosition, string> = {\n right: \"h-[calc(100%-8px)] my-1 mr-1 w-full max-w-md ml-auto border\",\n left: \"h-[calc(100%-8px)] my-1 ml-1 w-full max-w-md mr-auto border\",\n top: \"w-[calc(100%-8px)] mx-1 mt-1 max-h-[80vh] border\",\n bottom: \"w-[calc(100%-8px)] mx-1 mb-1 max-h-[80vh] mt-auto border\",\n};\n\nconst getVariants = (position: DrawerPosition) => {\n switch (position) {\n case \"left\":\n return { hidden: { x: \"-100%\" }, visible: { x: 0 } };\n case \"right\":\n return { hidden: { x: \"100%\" }, visible: { x: 0 } };\n case \"top\":\n return { hidden: { y: \"-100%\" }, visible: { y: 0 } };\n case \"bottom\":\n return { hidden: { y: \"100%\" }, visible: { y: 0 } };\n }\n};\n\nexport const Drawer = ({\n open,\n onOpenChange,\n title,\n description,\n position = \"right\",\n children,\n footer,\n}: DrawerProps) => {\n const panelRef = useRef<HTMLDivElement | null>(null);\n useOverlayEffects(panelRef, open);\n\n useEffect(() => {\n if (!open || typeof window === \"undefined\") return;\n const handleKey = (event: KeyboardEvent) => {\n if (event.key === \"Escape\") {\n onOpenChange?.(false);\n }\n };\n window.addEventListener(\"keydown\", handleKey);\n return () => window.removeEventListener(\"keydown\", handleKey);\n }, [open, onOpenChange]);\n\n const variants = getVariants(position);\n\n return (\n <AnimatePresence>\n {open && (\n <div\n className=\"fixed inset-0 z-40 flex overlay-backdrop\"\n role=\"presentation\"\n >\n <motion.div\n initial={{ opacity: 0 }}\n animate={{ opacity: 1 }}\n exit={{ opacity: 0 }}\n transition={{ duration: 0.3 }}\n className=\"fixed inset-0 bg-ds-canvas/55 backdrop-blur-[3px]\"\n onClick={() => onOpenChange?.(false)}\n />\n <motion.div\n role=\"dialog\"\n aria-modal=\"true\"\n aria-label={title}\n className={`${basePanel} ${positionClasses[position]}`}\n tabIndex={-1}\n ref={panelRef}\n onClick={(event) => event.stopPropagation()}\n initial=\"hidden\"\n animate=\"visible\"\n exit=\"hidden\"\n variants={variants}\n transition={{ type: \"spring\", damping: 25, stiffness: 200 }}\n >\n <div\n aria-hidden=\"true\"\n className=\"pointer-events-none absolute inset-0 bg-linear-to-b from-ds-accent/10 via-transparent to-transparent\"\n />\n <div\n aria-hidden=\"true\"\n className=\"pointer-events-none absolute inset-x-0 top-0 h-24 bg-linear-to-b from-ds-accent/16 to-transparent\"\n />\n <div\n aria-hidden=\"true\"\n className=\"pointer-events-none absolute -right-10 top-[-72px] h-40 w-40 rounded-full bg-ds-accent/18 blur-3xl\"\n />\n <button\n type=\"button\"\n className=\"absolute right-4 top-4 z-20 inline-flex h-9 w-9 items-center justify-center rounded-full border border-ds-border-2 bg-ds-surface-2 text-lg font-light text-ds-1 shadow-sm backdrop-blur-md transition-all duration-200 hover:bg-ds-surface-3\"\n aria-label=\"Close drawer\"\n onClick={() => onOpenChange?.(false)}\n >\n ×\n </button>\n <div className=\"relative z-10 flex h-full flex-col\">\n {(title || description) && (\n <header className=\"space-y-1 pr-10\">\n {title && (\n <h2 className=\"text-lg font-semibold tracking-tight text-ds-1\">\n {title}\n </h2>\n )}\n {description && (\n <p className=\"text-sm text-ds-2\">{description}</p>\n )}\n </header>\n )}\n {children && (\n <div className=\"mt-4 flex-1 overflow-auto space-y-4 pr-1\">\n {children}\n </div>\n )}\n {footer && (\n <footer className=\"mt-6 border-t border-ds-border-2 pt-4\">\n {footer}\n </footer>\n )}\n </div>\n </motion.div>\n </div>\n )}\n </AnimatePresence>\n );\n};\n"],"mappings":";;;;;AAKA,IAAM,YACJ;AAEF,IAAM,kBAAkD;CACtD,OAAO;CACP,MAAM;CACN,KAAK;CACL,QAAQ;CACT;AAED,IAAM,eAAe,aAA6B;AAChD,SAAQ,UAAR;EACE,KAAK,OACH,QAAO;GAAE,QAAQ,EAAE,GAAG,SAAS;GAAE,SAAS,EAAE,GAAG,GAAG;GAAE;EACtD,KAAK,QACH,QAAO;GAAE,QAAQ,EAAE,GAAG,QAAQ;GAAE,SAAS,EAAE,GAAG,GAAG;GAAE;EACrD,KAAK,MACH,QAAO;GAAE,QAAQ,EAAE,GAAG,SAAS;GAAE,SAAS,EAAE,GAAG,GAAG;GAAE;EACtD,KAAK,SACH,QAAO;GAAE,QAAQ,EAAE,GAAG,QAAQ;GAAE,SAAS,EAAE,GAAG,GAAG;GAAE;;;AAIzD,IAAa,UAAU,EACrB,MACA,cACA,OACA,aACA,WAAW,SACX,UACA,aACiB;CACjB,MAAM,WAAW,OAA8B,KAAK;AACpD,mBAAkB,UAAU,KAAK;AAEjC,iBAAgB;AACd,MAAI,CAAC,QAAQ,OAAO,WAAW,YAAa;EAC5C,MAAM,aAAa,UAAyB;AAC1C,OAAI,MAAM,QAAQ,SAChB,gBAAe,MAAM;;AAGzB,SAAO,iBAAiB,WAAW,UAAU;AAC7C,eAAa,OAAO,oBAAoB,WAAW,UAAU;IAC5D,CAAC,MAAM,aAAa,CAAC;CAExB,MAAM,WAAW,YAAY,SAAS;AAEtC,QACE,oBAAC,iBAAD,EAAA,UACG,QACC,qBAAC,OAAD;EACE,WAAU;EACV,MAAK;YAFP,CAIE,oBAAC,OAAO,KAAR;GACE,SAAS,EAAE,SAAS,GAAG;GACvB,SAAS,EAAE,SAAS,GAAG;GACvB,MAAM,EAAE,SAAS,GAAG;GACpB,YAAY,EAAE,UAAU,IAAK;GAC7B,WAAU;GACV,eAAe,eAAe,MAAM;GACpC,CAAA,EACF,qBAAC,OAAO,KAAR;GACE,MAAK;GACL,cAAW;GACX,cAAY;GACZ,WAAW,GAAG,UAAU,GAAG,gBAAgB;GAC3C,UAAU;GACV,KAAK;GACL,UAAU,UAAU,MAAM,iBAAiB;GAC3C,SAAQ;GACR,SAAQ;GACR,MAAK;GACK;GACV,YAAY;IAAE,MAAM;IAAU,SAAS;IAAI,WAAW;IAAK;aAZ7D;IAcE,oBAAC,OAAD;KACE,eAAY;KACZ,WAAU;KACV,CAAA;IACF,oBAAC,OAAD;KACE,eAAY;KACZ,WAAU;KACV,CAAA;IACF,oBAAC,OAAD;KACE,eAAY;KACZ,WAAU;KACV,CAAA;IACF,oBAAC,UAAD;KACE,MAAK;KACL,WAAU;KACV,cAAW;KACX,eAAe,eAAe,MAAM;eACrC;KAEQ,CAAA;IACT,qBAAC,OAAD;KAAK,WAAU;eAAf;OACI,SAAS,gBACT,qBAAC,UAAD;OAAQ,WAAU;iBAAlB,CACG,SACC,oBAAC,MAAD;QAAI,WAAU;kBACX;QACE,CAAA,EAEN,eACC,oBAAC,KAAD;QAAG,WAAU;kBAAqB;QAAgB,CAAA,CAE7C;;MAEV,YACC,oBAAC,OAAD;OAAK,WAAU;OACZ;OACG,CAAA;MAEP,UACC,oBAAC,UAAD;OAAQ,WAAU;iBACf;OACM,CAAA;MAEP;;IACK;KACT;KAEQ,CAAA"}
|
|
@@ -1,10 +1,10 @@
|
|
|
1
1
|
require("./chunk-B_GkZjkl.cjs");
|
|
2
|
-
const require_overlay = require("./overlay-
|
|
2
|
+
const require_overlay = require("./overlay-DwJgjJuu.cjs");
|
|
3
3
|
let react = require("react");
|
|
4
4
|
let react_jsx_runtime = require("react/jsx-runtime");
|
|
5
5
|
let framer_motion = require("framer-motion");
|
|
6
6
|
//#region src/components/overlays/drawer/Drawer.tsx
|
|
7
|
-
var basePanel = "relative flex flex-col overflow-hidden rounded-2xl border border-
|
|
7
|
+
var basePanel = "relative flex flex-col overflow-hidden rounded-2xl border border-ds-border-2 bg-ds-surface-1/95 p-6 shadow-[0_24px_80px_rgba(15,23,42,0.22),0_8px_28px_rgba(15,23,42,0.14)] ring-1 ring-inset ring-ds-border-3/35 backdrop-blur-2xl backdrop-saturate-150";
|
|
8
8
|
var positionClasses = {
|
|
9
9
|
right: "h-[calc(100%-8px)] my-1 mr-1 w-full max-w-md ml-auto border",
|
|
10
10
|
left: "h-[calc(100%-8px)] my-1 ml-1 w-full max-w-md mr-auto border",
|
|
@@ -51,7 +51,7 @@ var Drawer = ({ open, onOpenChange, title, description, position = "right", chil
|
|
|
51
51
|
animate: { opacity: 1 },
|
|
52
52
|
exit: { opacity: 0 },
|
|
53
53
|
transition: { duration: .3 },
|
|
54
|
-
className: "fixed inset-0 bg-
|
|
54
|
+
className: "fixed inset-0 bg-ds-canvas/55 backdrop-blur-[3px]",
|
|
55
55
|
onClick: () => onOpenChange?.(false)
|
|
56
56
|
}), /* @__PURE__ */ (0, react_jsx_runtime.jsxs)(framer_motion.motion.div, {
|
|
57
57
|
role: "dialog",
|
|
@@ -73,19 +73,19 @@ var Drawer = ({ open, onOpenChange, title, description, position = "right", chil
|
|
|
73
73
|
children: [
|
|
74
74
|
/* @__PURE__ */ (0, react_jsx_runtime.jsx)("div", {
|
|
75
75
|
"aria-hidden": "true",
|
|
76
|
-
className: "pointer-events-none absolute inset-0 bg-linear-to-b from-
|
|
76
|
+
className: "pointer-events-none absolute inset-0 bg-linear-to-b from-ds-accent/10 via-transparent to-transparent"
|
|
77
77
|
}),
|
|
78
78
|
/* @__PURE__ */ (0, react_jsx_runtime.jsx)("div", {
|
|
79
79
|
"aria-hidden": "true",
|
|
80
|
-
className: "pointer-events-none absolute inset-x-0 top-0 h-24 bg-linear-to-b from-
|
|
80
|
+
className: "pointer-events-none absolute inset-x-0 top-0 h-24 bg-linear-to-b from-ds-accent/16 to-transparent"
|
|
81
81
|
}),
|
|
82
82
|
/* @__PURE__ */ (0, react_jsx_runtime.jsx)("div", {
|
|
83
83
|
"aria-hidden": "true",
|
|
84
|
-
className: "pointer-events-none absolute -right-10 top-[-72px] h-40 w-40 rounded-full bg-
|
|
84
|
+
className: "pointer-events-none absolute -right-10 top-[-72px] h-40 w-40 rounded-full bg-ds-accent/18 blur-3xl"
|
|
85
85
|
}),
|
|
86
86
|
/* @__PURE__ */ (0, react_jsx_runtime.jsx)("button", {
|
|
87
87
|
type: "button",
|
|
88
|
-
className: "absolute right-4 top-4 z-20 inline-flex h-9 w-9 items-center justify-center rounded-full border border-
|
|
88
|
+
className: "absolute right-4 top-4 z-20 inline-flex h-9 w-9 items-center justify-center rounded-full border border-ds-border-2 bg-ds-surface-2 text-lg font-light text-ds-1 shadow-sm backdrop-blur-md transition-all duration-200 hover:bg-ds-surface-3",
|
|
89
89
|
"aria-label": "Close drawer",
|
|
90
90
|
onClick: () => onOpenChange?.(false),
|
|
91
91
|
children: "×"
|
|
@@ -96,10 +96,10 @@ var Drawer = ({ open, onOpenChange, title, description, position = "right", chil
|
|
|
96
96
|
(title || description) && /* @__PURE__ */ (0, react_jsx_runtime.jsxs)("header", {
|
|
97
97
|
className: "space-y-1 pr-10",
|
|
98
98
|
children: [title && /* @__PURE__ */ (0, react_jsx_runtime.jsx)("h2", {
|
|
99
|
-
className: "text-lg font-semibold tracking-tight text-
|
|
99
|
+
className: "text-lg font-semibold tracking-tight text-ds-1",
|
|
100
100
|
children: title
|
|
101
101
|
}), description && /* @__PURE__ */ (0, react_jsx_runtime.jsx)("p", {
|
|
102
|
-
className: "text-sm text-
|
|
102
|
+
className: "text-sm text-ds-2",
|
|
103
103
|
children: description
|
|
104
104
|
})]
|
|
105
105
|
}),
|
|
@@ -108,7 +108,7 @@ var Drawer = ({ open, onOpenChange, title, description, position = "right", chil
|
|
|
108
108
|
children
|
|
109
109
|
}),
|
|
110
110
|
footer && /* @__PURE__ */ (0, react_jsx_runtime.jsx)("footer", {
|
|
111
|
-
className: "mt-6 border-t border-
|
|
111
|
+
className: "mt-6 border-t border-ds-border-2 pt-4",
|
|
112
112
|
children: footer
|
|
113
113
|
})
|
|
114
114
|
]
|
|
@@ -125,4 +125,4 @@ Object.defineProperty(exports, "Drawer", {
|
|
|
125
125
|
}
|
|
126
126
|
});
|
|
127
127
|
|
|
128
|
-
//# sourceMappingURL=drawer-
|
|
128
|
+
//# sourceMappingURL=drawer-EC9eopGX.cjs.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"drawer-EC9eopGX.cjs","names":[],"sources":["../../src/components/overlays/drawer/Drawer.tsx"],"sourcesContent":["import { useEffect, useRef } from \"react\";\nimport { motion, AnimatePresence } from \"framer-motion\";\nimport type { DrawerProps, DrawerPosition } from \"./types\";\nimport { useOverlayEffects } from \"../../shared/overlay\";\n\nconst basePanel =\n \"relative flex flex-col overflow-hidden rounded-2xl border border-ds-border-2 bg-ds-surface-1/95 p-6 shadow-[0_24px_80px_rgba(15,23,42,0.22),0_8px_28px_rgba(15,23,42,0.14)] ring-1 ring-inset ring-ds-border-3/35 backdrop-blur-2xl backdrop-saturate-150\";\n\nconst positionClasses: Record<DrawerPosition, string> = {\n right: \"h-[calc(100%-8px)] my-1 mr-1 w-full max-w-md ml-auto border\",\n left: \"h-[calc(100%-8px)] my-1 ml-1 w-full max-w-md mr-auto border\",\n top: \"w-[calc(100%-8px)] mx-1 mt-1 max-h-[80vh] border\",\n bottom: \"w-[calc(100%-8px)] mx-1 mb-1 max-h-[80vh] mt-auto border\",\n};\n\nconst getVariants = (position: DrawerPosition) => {\n switch (position) {\n case \"left\":\n return { hidden: { x: \"-100%\" }, visible: { x: 0 } };\n case \"right\":\n return { hidden: { x: \"100%\" }, visible: { x: 0 } };\n case \"top\":\n return { hidden: { y: \"-100%\" }, visible: { y: 0 } };\n case \"bottom\":\n return { hidden: { y: \"100%\" }, visible: { y: 0 } };\n }\n};\n\nexport const Drawer = ({\n open,\n onOpenChange,\n title,\n description,\n position = \"right\",\n children,\n footer,\n}: DrawerProps) => {\n const panelRef = useRef<HTMLDivElement | null>(null);\n useOverlayEffects(panelRef, open);\n\n useEffect(() => {\n if (!open || typeof window === \"undefined\") return;\n const handleKey = (event: KeyboardEvent) => {\n if (event.key === \"Escape\") {\n onOpenChange?.(false);\n }\n };\n window.addEventListener(\"keydown\", handleKey);\n return () => window.removeEventListener(\"keydown\", handleKey);\n }, [open, onOpenChange]);\n\n const variants = getVariants(position);\n\n return (\n <AnimatePresence>\n {open && (\n <div\n className=\"fixed inset-0 z-40 flex overlay-backdrop\"\n role=\"presentation\"\n >\n <motion.div\n initial={{ opacity: 0 }}\n animate={{ opacity: 1 }}\n exit={{ opacity: 0 }}\n transition={{ duration: 0.3 }}\n className=\"fixed inset-0 bg-ds-canvas/55 backdrop-blur-[3px]\"\n onClick={() => onOpenChange?.(false)}\n />\n <motion.div\n role=\"dialog\"\n aria-modal=\"true\"\n aria-label={title}\n className={`${basePanel} ${positionClasses[position]}`}\n tabIndex={-1}\n ref={panelRef}\n onClick={(event) => event.stopPropagation()}\n initial=\"hidden\"\n animate=\"visible\"\n exit=\"hidden\"\n variants={variants}\n transition={{ type: \"spring\", damping: 25, stiffness: 200 }}\n >\n <div\n aria-hidden=\"true\"\n className=\"pointer-events-none absolute inset-0 bg-linear-to-b from-ds-accent/10 via-transparent to-transparent\"\n />\n <div\n aria-hidden=\"true\"\n className=\"pointer-events-none absolute inset-x-0 top-0 h-24 bg-linear-to-b from-ds-accent/16 to-transparent\"\n />\n <div\n aria-hidden=\"true\"\n className=\"pointer-events-none absolute -right-10 top-[-72px] h-40 w-40 rounded-full bg-ds-accent/18 blur-3xl\"\n />\n <button\n type=\"button\"\n className=\"absolute right-4 top-4 z-20 inline-flex h-9 w-9 items-center justify-center rounded-full border border-ds-border-2 bg-ds-surface-2 text-lg font-light text-ds-1 shadow-sm backdrop-blur-md transition-all duration-200 hover:bg-ds-surface-3\"\n aria-label=\"Close drawer\"\n onClick={() => onOpenChange?.(false)}\n >\n ×\n </button>\n <div className=\"relative z-10 flex h-full flex-col\">\n {(title || description) && (\n <header className=\"space-y-1 pr-10\">\n {title && (\n <h2 className=\"text-lg font-semibold tracking-tight text-ds-1\">\n {title}\n </h2>\n )}\n {description && (\n <p className=\"text-sm text-ds-2\">{description}</p>\n )}\n </header>\n )}\n {children && (\n <div className=\"mt-4 flex-1 overflow-auto space-y-4 pr-1\">\n {children}\n </div>\n )}\n {footer && (\n <footer className=\"mt-6 border-t border-ds-border-2 pt-4\">\n {footer}\n </footer>\n )}\n </div>\n </motion.div>\n </div>\n )}\n </AnimatePresence>\n );\n};\n"],"mappings":"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"}
|