@techzyapp/ui-library 1.0.17 → 1.0.19
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/dist/{AdminRoot-uVDhWjN8.js → AdminRoot-B2J1cHK5.js} +4 -4
- package/dist/{AdminRoot-uVDhWjN8.js.map → AdminRoot-B2J1cHK5.js.map} +1 -1
- package/dist/{AdminRoot-D866Bc0e.cjs → AdminRoot-DlpMJNTx.cjs} +2 -2
- package/dist/{AdminRoot-D866Bc0e.cjs.map → AdminRoot-DlpMJNTx.cjs.map} +1 -1
- package/dist/{Alert-D99G0StL.cjs → Alert-DRZdNwDm.cjs} +2 -2
- package/dist/{Alert-D99G0StL.cjs.map → Alert-DRZdNwDm.cjs.map} +1 -1
- package/dist/{Alert-B3rDvpbO.js → Alert-yldGvhVM.js} +3 -3
- package/dist/{Alert-B3rDvpbO.js.map → Alert-yldGvhVM.js.map} +1 -1
- package/dist/AuthLayout-B1tzhzHo.cjs +2 -0
- package/dist/{AuthLayout-pvqB9w-B.cjs.map → AuthLayout-B1tzhzHo.cjs.map} +1 -1
- package/dist/AuthLayout-j7EAPPXT.js +43 -0
- package/dist/{AuthLayout-DGCe90w0.js.map → AuthLayout-j7EAPPXT.js.map} +1 -1
- package/dist/{Breadcrumbs-C1crufqj.js → Breadcrumbs-FpIOHx_q.js} +3 -3
- package/dist/{Breadcrumbs-C1crufqj.js.map → Breadcrumbs-FpIOHx_q.js.map} +1 -1
- package/dist/{Breadcrumbs-s90MO0PD.cjs → Breadcrumbs-f0GE4lCI.cjs} +2 -2
- package/dist/{Breadcrumbs-s90MO0PD.cjs.map → Breadcrumbs-f0GE4lCI.cjs.map} +1 -1
- package/dist/{Button-CUsXYM-m.js → Button-BkjZ7wEu.js} +2 -2
- package/dist/{Button-CUsXYM-m.js.map → Button-BkjZ7wEu.js.map} +1 -1
- package/dist/{Button-Cj6pckNl.cjs → Button-Cu0XdnW6.cjs} +2 -2
- package/dist/{Button-Cj6pckNl.cjs.map → Button-Cu0XdnW6.cjs.map} +1 -1
- package/dist/{Calendar-Br4C0x0n.cjs → Calendar-CGQCditF.cjs} +2 -2
- package/dist/{Calendar-Br4C0x0n.cjs.map → Calendar-CGQCditF.cjs.map} +1 -1
- package/dist/{Calendar-CE_9WNAB.js → Calendar-DsJ6GICt.js} +3 -3
- package/dist/{Calendar-CE_9WNAB.js.map → Calendar-DsJ6GICt.js.map} +1 -1
- package/dist/{Card-DhpudGvF.js → Card-CumMi_XB.js} +2 -2
- package/dist/{Card-DhpudGvF.js.map → Card-CumMi_XB.js.map} +1 -1
- package/dist/{Card-DD9SWHzZ.cjs → Card-DGTGdaTZ.cjs} +2 -2
- package/dist/{Card-DD9SWHzZ.cjs.map → Card-DGTGdaTZ.cjs.map} +1 -1
- package/dist/{Chip-B2lY4TJ0.cjs → Chip-CJuAvgst.cjs} +2 -2
- package/dist/{Chip-B2lY4TJ0.cjs.map → Chip-CJuAvgst.cjs.map} +1 -1
- package/dist/{Chip-DulHqhuf.js → Chip-D83svOCW.js} +2 -2
- package/dist/{Chip-DulHqhuf.js.map → Chip-D83svOCW.js.map} +1 -1
- package/dist/{CodeBlock-DwBMghs2.js → CodeBlock-BK_KXhos.js} +3 -3
- package/dist/{CodeBlock-DwBMghs2.js.map → CodeBlock-BK_KXhos.js.map} +1 -1
- package/dist/{CodeBlock-EhB7v9-R.cjs → CodeBlock-C_UDrrY6.cjs} +2 -2
- package/dist/{CodeBlock-EhB7v9-R.cjs.map → CodeBlock-C_UDrrY6.cjs.map} +1 -1
- package/dist/{ColorPicker-Dc1y9Zuu.cjs → ColorPicker-BmxZnsNC.cjs} +2 -2
- package/dist/{ColorPicker-Dc1y9Zuu.cjs.map → ColorPicker-BmxZnsNC.cjs.map} +1 -1
- package/dist/{ColorPicker-DJgTeHht.js → ColorPicker-DLnB_AvZ.js} +3 -3
- package/dist/{ColorPicker-DJgTeHht.js.map → ColorPicker-DLnB_AvZ.js.map} +1 -1
- package/dist/{ColorPickerPanel-9tOQUL38.js → ColorPickerPanel-CG9idF4A.js} +2 -2
- package/dist/{ColorPickerPanel-9tOQUL38.js.map → ColorPickerPanel-CG9idF4A.js.map} +1 -1
- package/dist/{ColorPickerPanel-nXEliruE.cjs → ColorPickerPanel-CoyKplF5.cjs} +2 -2
- package/dist/{ColorPickerPanel-nXEliruE.cjs.map → ColorPickerPanel-CoyKplF5.cjs.map} +1 -1
- package/dist/{ConfigProvider-BYruQYHC.js → ConfigProvider-DDuIJSM7.js} +2 -2
- package/dist/{ConfigProvider-BYruQYHC.js.map → ConfigProvider-DDuIJSM7.js.map} +1 -1
- package/dist/{ConfigProvider-BHNx-NHV.cjs → ConfigProvider-h1WoGC3R.cjs} +2 -2
- package/dist/{ConfigProvider-BHNx-NHV.cjs.map → ConfigProvider-h1WoGC3R.cjs.map} +1 -1
- package/dist/{CopyButton-B4-OYsYr.js → CopyButton-DdQ-8ExN.js} +3 -3
- package/dist/{CopyButton-B4-OYsYr.js.map → CopyButton-DdQ-8ExN.js.map} +1 -1
- package/dist/{CopyButton-D_DCLHhb.cjs → CopyButton-tRMAy59I.cjs} +2 -2
- package/dist/{CopyButton-D_DCLHhb.cjs.map → CopyButton-tRMAy59I.cjs.map} +1 -1
- package/dist/{DatePicker-CEczjGZy.cjs → DatePicker-eryY6Xmx.cjs} +2 -2
- package/dist/{DatePicker-CEczjGZy.cjs.map → DatePicker-eryY6Xmx.cjs.map} +1 -1
- package/dist/{DatePicker-DkvfSN1K.js → DatePicker-pz634ktl.js} +4 -4
- package/dist/{DatePicker-DkvfSN1K.js.map → DatePicker-pz634ktl.js.map} +1 -1
- package/dist/{DateTimePicker-DPomyrnN.js → DateTimePicker-BJLq9Fud.js} +7 -7
- package/dist/{DateTimePicker-DPomyrnN.js.map → DateTimePicker-BJLq9Fud.js.map} +1 -1
- package/dist/{DateTimePicker-CDyGxUBX.cjs → DateTimePicker-CmH3ZuzN.cjs} +2 -2
- package/dist/{DateTimePicker-CDyGxUBX.cjs.map → DateTimePicker-CmH3ZuzN.cjs.map} +1 -1
- package/dist/{EmptyState-CVyFXprK.js → EmptyState-B2QPNhWW.js} +2 -2
- package/dist/{EmptyState-CVyFXprK.js.map → EmptyState-B2QPNhWW.js.map} +1 -1
- package/dist/{EmptyState-B77utgEn.cjs → EmptyState-Cxf4H8Cc.cjs} +2 -2
- package/dist/{EmptyState-B77utgEn.cjs.map → EmptyState-Cxf4H8Cc.cjs.map} +1 -1
- package/dist/{FileCard-CsGW2sxE.cjs → FileCard-D0Sa7WJt.cjs} +2 -2
- package/dist/{FileCard-CsGW2sxE.cjs.map → FileCard-D0Sa7WJt.cjs.map} +1 -1
- package/dist/{FileCard-Cpc5frNm.js → FileCard-Do9D72NA.js} +3 -3
- package/dist/{FileCard-Cpc5frNm.js.map → FileCard-Do9D72NA.js.map} +1 -1
- package/dist/{FileUploader-B_nKMh_K.js → FileUploader-4900qKEE.js} +5 -5
- package/dist/{FileUploader-B_nKMh_K.js.map → FileUploader-4900qKEE.js.map} +1 -1
- package/dist/{FileUploader-DDi_uzIx.cjs → FileUploader-B1Arfj1a.cjs} +2 -2
- package/dist/{FileUploader-DDi_uzIx.cjs.map → FileUploader-B1Arfj1a.cjs.map} +1 -1
- package/dist/{Flag-BJLWKB9J.cjs → Flag-D7Vlczlw.cjs} +2 -2
- package/dist/{Flag-BJLWKB9J.cjs.map → Flag-D7Vlczlw.cjs.map} +1 -1
- package/dist/{Flag-Ck1xK22A.js → Flag-DNhhLtCC.js} +2 -2
- package/dist/{Flag-Ck1xK22A.js.map → Flag-DNhhLtCC.js.map} +1 -1
- package/dist/{FullscreenToggle-DmC0jTay.js → FullscreenToggle-Bc4fB-Mi.js} +3 -3
- package/dist/{FullscreenToggle-DmC0jTay.js.map → FullscreenToggle-Bc4fB-Mi.js.map} +1 -1
- package/dist/{FullscreenToggle-MCxGzAEe.cjs → FullscreenToggle-dU2ai_OZ.cjs} +2 -2
- package/dist/{FullscreenToggle-MCxGzAEe.cjs.map → FullscreenToggle-dU2ai_OZ.cjs.map} +1 -1
- package/dist/{IconButton-B8FPGgDn.js → IconButton-DpTxmj3d.js} +2 -2
- package/dist/{IconButton-B8FPGgDn.js.map → IconButton-DpTxmj3d.js.map} +1 -1
- package/dist/{IconButton-BoY2y_pV.cjs → IconButton-DyRC514t.cjs} +2 -2
- package/dist/{IconButton-BoY2y_pV.cjs.map → IconButton-DyRC514t.cjs.map} +1 -1
- package/dist/{Loader-Cwb1bOHj.cjs → Loader-B45H2SMP.cjs} +2 -2
- package/dist/{Loader-Cwb1bOHj.cjs.map → Loader-B45H2SMP.cjs.map} +1 -1
- package/dist/{Loader-UzzqvFyo.js → Loader-B9VXX401.js} +2 -2
- package/dist/{Loader-UzzqvFyo.js.map → Loader-B9VXX401.js.map} +1 -1
- package/dist/{Modal-CO3c3sGY.cjs → Modal-DsoSz0Sp.cjs} +2 -2
- package/dist/{Modal-CO3c3sGY.cjs.map → Modal-DsoSz0Sp.cjs.map} +1 -1
- package/dist/{Modal-XMRDPHvQ.js → Modal-Us_E-lb2.js} +3 -3
- package/dist/{Modal-XMRDPHvQ.js.map → Modal-Us_E-lb2.js.map} +1 -1
- package/dist/{MultiSelect-DVOVHuIm.cjs → MultiSelect-CtLpWaBX.cjs} +2 -2
- package/dist/{MultiSelect-DVOVHuIm.cjs.map → MultiSelect-CtLpWaBX.cjs.map} +1 -1
- package/dist/{MultiSelect-BPLctumx.js → MultiSelect-sKk2KzOd.js} +4 -4
- package/dist/{MultiSelect-BPLctumx.js.map → MultiSelect-sKk2KzOd.js.map} +1 -1
- package/dist/{NumberField-BH237Vt2.cjs → NumberField-C6qj3nCa.cjs} +2 -2
- package/dist/{NumberField-BH237Vt2.cjs.map → NumberField-C6qj3nCa.cjs.map} +1 -1
- package/dist/{NumberField-X2HsSpu9.js → NumberField-Cz03nksO.js} +3 -3
- package/dist/{NumberField-X2HsSpu9.js.map → NumberField-Cz03nksO.js.map} +1 -1
- package/dist/{OtpField-CXP59zM2.cjs → OtpField-B46P6aMy.cjs} +2 -2
- package/dist/{OtpField-CXP59zM2.cjs.map → OtpField-B46P6aMy.cjs.map} +1 -1
- package/dist/{OtpField-CB05q0NX.js → OtpField-DLXQYMw1.js} +2 -2
- package/dist/{OtpField-CB05q0NX.js.map → OtpField-DLXQYMw1.js.map} +1 -1
- package/dist/{PageLayout-WKWnj5cw.js → PageLayout-BWU-p_N9.js} +2 -2
- package/dist/{PageLayout-WKWnj5cw.js.map → PageLayout-BWU-p_N9.js.map} +1 -1
- package/dist/{PageLayout-CuVuZEbR.cjs → PageLayout-BfeRjBek.cjs} +2 -2
- package/dist/{PageLayout-CuVuZEbR.cjs.map → PageLayout-BfeRjBek.cjs.map} +1 -1
- package/dist/{PageNotFound-DVh_Tyqf.js → PageNotFound-B_nTMrCD.js} +5 -5
- package/dist/{PageNotFound-DVh_Tyqf.js.map → PageNotFound-B_nTMrCD.js.map} +1 -1
- package/dist/{PageNotFound-D3ZjMKYD.cjs → PageNotFound-nvZm-UCG.cjs} +2 -2
- package/dist/{PageNotFound-D3ZjMKYD.cjs.map → PageNotFound-nvZm-UCG.cjs.map} +1 -1
- package/dist/{Pagination-BuP4N1bj.js → Pagination-BYXUhmSz.js} +2 -2
- package/dist/{Pagination-BuP4N1bj.js.map → Pagination-BYXUhmSz.js.map} +1 -1
- package/dist/{Pagination-Dcs_Znx3.cjs → Pagination-CsClNqIu.cjs} +2 -2
- package/dist/{Pagination-Dcs_Znx3.cjs.map → Pagination-CsClNqIu.cjs.map} +1 -1
- package/dist/{RemoveDialog-Cwtq9wAt.cjs → RemoveDialog-D5J9TYap.cjs} +2 -2
- package/dist/{RemoveDialog-Cwtq9wAt.cjs.map → RemoveDialog-D5J9TYap.cjs.map} +1 -1
- package/dist/{RemoveDialog-DU6MqkO8.js → RemoveDialog-PHdZi9-d.js} +4 -4
- package/dist/{RemoveDialog-DU6MqkO8.js.map → RemoveDialog-PHdZi9-d.js.map} +1 -1
- package/dist/{RichTextEditor-k-NlWb4Y.js → RichTextEditor-BcmsnYGJ.js} +7 -7
- package/dist/{RichTextEditor-k-NlWb4Y.js.map → RichTextEditor-BcmsnYGJ.js.map} +1 -1
- package/dist/{RichTextEditor-GxbnzLRe.cjs → RichTextEditor-jWv0t3vJ.cjs} +2 -2
- package/dist/{RichTextEditor-GxbnzLRe.cjs.map → RichTextEditor-jWv0t3vJ.cjs.map} +1 -1
- package/dist/RootLayout-DtZcqk9N.cjs +2 -0
- package/dist/RootLayout-DtZcqk9N.cjs.map +1 -0
- package/dist/RootLayout-q_oWf5et.js +422 -0
- package/dist/RootLayout-q_oWf5et.js.map +1 -0
- package/dist/{Select-DjMZec8c.cjs → Select-CWCeBQ8Q.cjs} +2 -2
- package/dist/{Select-DjMZec8c.cjs.map → Select-CWCeBQ8Q.cjs.map} +1 -1
- package/dist/{Select-D7KJ-YMU.js → Select-UygxT1Ry.js} +3 -3
- package/dist/{Select-D7KJ-YMU.js.map → Select-UygxT1Ry.js.map} +1 -1
- package/dist/Sidebar-BfBggyuh.cjs +2 -0
- package/dist/Sidebar-BfBggyuh.cjs.map +1 -0
- package/dist/Sidebar-C0OJK29L.js +513 -0
- package/dist/Sidebar-C0OJK29L.js.map +1 -0
- package/dist/{SpeedDial-DEWzAGXi.js → SpeedDial-DbvOJ4no.js} +2 -2
- package/dist/{SpeedDial-DEWzAGXi.js.map → SpeedDial-DbvOJ4no.js.map} +1 -1
- package/dist/{SpeedDial-CyiPagdu.cjs → SpeedDial-cKvuSMuk.cjs} +2 -2
- package/dist/{SpeedDial-CyiPagdu.cjs.map → SpeedDial-cKvuSMuk.cjs.map} +1 -1
- package/dist/{Stepper-CS6s0dMF.js → Stepper-BxGrP6JZ.js} +2 -2
- package/dist/{Stepper-CS6s0dMF.js.map → Stepper-BxGrP6JZ.js.map} +1 -1
- package/dist/{Stepper-PW7c45PV.cjs → Stepper-Db_ALAc4.cjs} +2 -2
- package/dist/{Stepper-PW7c45PV.cjs.map → Stepper-Db_ALAc4.cjs.map} +1 -1
- package/dist/{Table-C_Ov-kvK.cjs → Table-Dvna5_TR.cjs} +2 -2
- package/dist/{Table-C_Ov-kvK.cjs.map → Table-Dvna5_TR.cjs.map} +1 -1
- package/dist/{Table-IIAKXYOh.js → Table-tPOJ9umi.js} +15 -15
- package/dist/{Table-IIAKXYOh.js.map → Table-tPOJ9umi.js.map} +1 -1
- package/dist/{Tabs-D3wztVB1.js → Tabs-B0mWCNaC.js} +2 -2
- package/dist/{Tabs-D3wztVB1.js.map → Tabs-B0mWCNaC.js.map} +1 -1
- package/dist/{Tabs-CaHTJ99w.cjs → Tabs-ozklGWmX.cjs} +2 -2
- package/dist/{Tabs-CaHTJ99w.cjs.map → Tabs-ozklGWmX.cjs.map} +1 -1
- package/dist/{TagsField-BQIwSX5m.cjs → TagsField-BIxwLfSJ.cjs} +2 -2
- package/dist/{TagsField-BQIwSX5m.cjs.map → TagsField-BIxwLfSJ.cjs.map} +1 -1
- package/dist/{TagsField-BR9Z5pik.js → TagsField-CGFm17lP.js} +4 -4
- package/dist/{TagsField-BR9Z5pik.js.map → TagsField-CGFm17lP.js.map} +1 -1
- package/dist/{TextField-Bg4TwkVD.js → TextField-CRCYLPpr.js} +3 -3
- package/dist/{TextField-Bg4TwkVD.js.map → TextField-CRCYLPpr.js.map} +1 -1
- package/dist/{TextField-fmt7aacg.cjs → TextField-DvKEj36A.cjs} +2 -2
- package/dist/{TextField-fmt7aacg.cjs.map → TextField-DvKEj36A.cjs.map} +1 -1
- package/dist/{ThemeToggle-DEfXczDs.js → ThemeToggle-BwW9L115.js} +3 -3
- package/dist/{ThemeToggle-DEfXczDs.js.map → ThemeToggle-BwW9L115.js.map} +1 -1
- package/dist/{ThemeToggle-Cz5I2-DL.cjs → ThemeToggle-DxxLN79b.cjs} +2 -2
- package/dist/{ThemeToggle-Cz5I2-DL.cjs.map → ThemeToggle-DxxLN79b.cjs.map} +1 -1
- package/dist/{TimeColumns-B-vtakk8.js → TimeColumns-D3nqkQbh.js} +2 -2
- package/dist/{TimeColumns-B-vtakk8.js.map → TimeColumns-D3nqkQbh.js.map} +1 -1
- package/dist/{TimeColumns-IBmjExao.cjs → TimeColumns-DB-V4KpQ.cjs} +2 -2
- package/dist/{TimeColumns-IBmjExao.cjs.map → TimeColumns-DB-V4KpQ.cjs.map} +1 -1
- package/dist/{TimePicker-i2RnZHV1.js → TimePicker-D51QkQYy.js} +5 -5
- package/dist/{TimePicker-i2RnZHV1.js.map → TimePicker-D51QkQYy.js.map} +1 -1
- package/dist/{TimePicker-B-c6uIaY.cjs → TimePicker-D__72q2J.cjs} +2 -2
- package/dist/{TimePicker-B-c6uIaY.cjs.map → TimePicker-D__72q2J.cjs.map} +1 -1
- package/dist/{Toaster-Da8F_SFV.js → Toaster-BynCHvUr.js} +2 -2
- package/dist/{Toaster-Da8F_SFV.js.map → Toaster-BynCHvUr.js.map} +1 -1
- package/dist/{Toaster-qdS8Urgy.cjs → Toaster-tHet1M-T.cjs} +2 -2
- package/dist/{Toaster-qdS8Urgy.cjs.map → Toaster-tHet1M-T.cjs.map} +1 -1
- package/dist/{TranslatedFields-C30ww45c.cjs → TranslatedFields-B3Gli3TZ.cjs} +2 -2
- package/dist/{TranslatedFields-C30ww45c.cjs.map → TranslatedFields-B3Gli3TZ.cjs.map} +1 -1
- package/dist/{TranslatedFields-Ck9JTF27.js → TranslatedFields-DHRFcB3n.js} +5 -5
- package/dist/{TranslatedFields-Ck9JTF27.js.map → TranslatedFields-DHRFcB3n.js.map} +1 -1
- package/dist/{UserCard-0ZF29bkK.js → UserCard-D7U-CLbM.js} +3 -3
- package/dist/{UserCard-0ZF29bkK.js.map → UserCard-D7U-CLbM.js.map} +1 -1
- package/dist/{UserCard-C8rC_gzD.cjs → UserCard-GHw2gTx9.cjs} +2 -2
- package/dist/{UserCard-C8rC_gzD.cjs.map → UserCard-GHw2gTx9.cjs.map} +1 -1
- package/dist/components/Alert/index.cjs +1 -1
- package/dist/components/Alert/index.js +1 -1
- package/dist/components/AuthLayout/index.cjs +1 -1
- package/dist/components/AuthLayout/index.js +1 -1
- package/dist/components/Breadcrumbs/index.cjs +1 -1
- package/dist/components/Breadcrumbs/index.js +1 -1
- package/dist/components/Button/index.cjs +1 -1
- package/dist/components/Button/index.js +1 -1
- package/dist/components/Card/index.cjs +1 -1
- package/dist/components/Card/index.js +1 -1
- package/dist/components/Chip/index.cjs +1 -1
- package/dist/components/Chip/index.js +1 -1
- package/dist/components/CodeBlock/index.cjs +1 -1
- package/dist/components/CodeBlock/index.js +1 -1
- package/dist/components/ColorPicker/index.cjs +1 -1
- package/dist/components/ColorPicker/index.js +1 -1
- package/dist/components/CopyButton/index.cjs +1 -1
- package/dist/components/CopyButton/index.js +1 -1
- package/dist/components/DatePicker/index.cjs +1 -1
- package/dist/components/DatePicker/index.js +1 -1
- package/dist/components/DateTimePicker/index.cjs +1 -1
- package/dist/components/DateTimePicker/index.js +1 -1
- package/dist/components/EmptyState/index.cjs +1 -1
- package/dist/components/EmptyState/index.js +1 -1
- package/dist/components/FileCard/index.cjs +1 -1
- package/dist/components/FileCard/index.js +1 -1
- package/dist/components/FileUploader/index.cjs +1 -1
- package/dist/components/FileUploader/index.js +1 -1
- package/dist/components/Flag/index.cjs +1 -1
- package/dist/components/Flag/index.js +1 -1
- package/dist/components/FullscreenToggle/index.cjs +1 -1
- package/dist/components/FullscreenToggle/index.js +1 -1
- package/dist/components/IconButton/index.cjs +1 -1
- package/dist/components/IconButton/index.js +1 -1
- package/dist/components/Loader/index.cjs +1 -1
- package/dist/components/Loader/index.js +1 -1
- package/dist/components/Modal/index.cjs +1 -1
- package/dist/components/Modal/index.js +1 -1
- package/dist/components/MultiSelect/index.cjs +1 -1
- package/dist/components/MultiSelect/index.js +1 -1
- package/dist/components/NumberField/index.cjs +1 -1
- package/dist/components/NumberField/index.js +1 -1
- package/dist/components/OtpField/index.cjs +1 -1
- package/dist/components/OtpField/index.js +1 -1
- package/dist/components/PageLayout/index.cjs +1 -1
- package/dist/components/PageLayout/index.js +1 -1
- package/dist/components/PageNotFound/index.cjs +1 -1
- package/dist/components/PageNotFound/index.js +1 -1
- package/dist/components/Pagination/index.cjs +1 -1
- package/dist/components/Pagination/index.js +1 -1
- package/dist/components/RemoveDialog/index.cjs +1 -1
- package/dist/components/RemoveDialog/index.js +1 -1
- package/dist/components/RichTextEditor/index.cjs +1 -1
- package/dist/components/RichTextEditor/index.js +1 -1
- package/dist/components/RootLayout/index.cjs +1 -1
- package/dist/components/RootLayout/index.js +1 -1
- package/dist/components/Select/index.cjs +1 -1
- package/dist/components/Select/index.js +1 -1
- package/dist/components/Sidebar/Sidebar.d.cts +47 -6
- package/dist/components/Sidebar/Sidebar.d.ts +47 -6
- package/dist/components/Sidebar/index.cjs +1 -1
- package/dist/components/Sidebar/index.js +1 -1
- package/dist/components/SpeedDial/index.cjs +1 -1
- package/dist/components/SpeedDial/index.js +1 -1
- package/dist/components/Stepper/index.cjs +1 -1
- package/dist/components/Stepper/index.js +1 -1
- package/dist/components/Table/index.cjs +1 -1
- package/dist/components/Table/index.js +1 -1
- package/dist/components/Tabs/index.cjs +1 -1
- package/dist/components/Tabs/index.js +1 -1
- package/dist/components/TagsField/index.cjs +1 -1
- package/dist/components/TagsField/index.js +1 -1
- package/dist/components/TextField/index.cjs +1 -1
- package/dist/components/TextField/index.js +1 -1
- package/dist/components/ThemeToggle/index.cjs +1 -1
- package/dist/components/ThemeToggle/index.js +1 -1
- package/dist/components/TimePicker/index.cjs +1 -1
- package/dist/components/TimePicker/index.js +1 -1
- package/dist/components/Toast/index.cjs +1 -1
- package/dist/components/Toast/index.js +1 -1
- package/dist/components/TranslatedFields/index.cjs +1 -1
- package/dist/components/TranslatedFields/index.js +1 -1
- package/dist/components/UserCard/index.cjs +1 -1
- package/dist/components/UserCard/index.js +1 -1
- package/dist/entries/app.cjs +1 -1
- package/dist/entries/app.js +1 -1
- package/dist/entries/components.cjs +1 -1
- package/dist/entries/components.js +41 -41
- package/dist/entries/i18n.cjs +1 -1
- package/dist/entries/i18n.js +2 -2
- package/dist/entries/theme.cjs +1 -1
- package/dist/entries/theme.js +1 -1
- package/dist/i18n/messages.d.cts +1 -0
- package/dist/i18n/messages.d.ts +1 -0
- package/dist/index.cjs +1 -1
- package/dist/index.css +24 -1
- package/dist/index.js +44 -44
- package/dist/messages-C0YutUM1.cjs +36 -0
- package/dist/messages-C0YutUM1.cjs.map +1 -0
- package/dist/{messages-BOKick2l.js → messages-FciBtnCL.js} +8 -1
- package/dist/messages-FciBtnCL.js.map +1 -0
- package/package.json +1 -1
- package/dist/AuthLayout-DGCe90w0.js +0 -43
- package/dist/AuthLayout-pvqB9w-B.cjs +0 -2
- package/dist/RootLayout-BEOofnxb.js +0 -407
- package/dist/RootLayout-BEOofnxb.js.map +0 -1
- package/dist/RootLayout-DGYOCwOK.cjs +0 -2
- package/dist/RootLayout-DGYOCwOK.cjs.map +0 -1
- package/dist/Sidebar-BYqUTa8D.cjs +0 -2
- package/dist/Sidebar-BYqUTa8D.cjs.map +0 -1
- package/dist/Sidebar-D2RZH5m5.js +0 -484
- package/dist/Sidebar-D2RZH5m5.js.map +0 -1
- package/dist/messages-BOKick2l.js.map +0 -1
- package/dist/messages-Jxz2YMcA.cjs +0 -36
- package/dist/messages-Jxz2YMcA.cjs.map +0 -1
|
@@ -1,9 +1,9 @@
|
|
|
1
1
|
import { jsx as o, jsxs as p, Fragment as g } from "react/jsx-runtime";
|
|
2
2
|
import { useNavigate as A, useRouterState as R, Outlet as r } from "@tanstack/react-router";
|
|
3
3
|
import { A as L } from "./AuthGuard-CVklwDbj.js";
|
|
4
|
-
import { R as x } from "./RootLayout-
|
|
5
|
-
import { U as T } from "./UserCard-
|
|
6
|
-
import { T as j } from "./Toaster-
|
|
4
|
+
import { R as x } from "./RootLayout-q_oWf5et.js";
|
|
5
|
+
import { U as T } from "./UserCard-D7U-CLbM.js";
|
|
6
|
+
import { T as j } from "./Toaster-BynCHvUr.js";
|
|
7
7
|
const I = ({
|
|
8
8
|
logo: s,
|
|
9
9
|
getUser: i,
|
|
@@ -47,4 +47,4 @@ const I = ({
|
|
|
47
47
|
export {
|
|
48
48
|
I as A
|
|
49
49
|
};
|
|
50
|
-
//# sourceMappingURL=AdminRoot-
|
|
50
|
+
//# sourceMappingURL=AdminRoot-B2J1cHK5.js.map
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"AdminRoot-
|
|
1
|
+
{"version":3,"file":"AdminRoot-B2J1cHK5.js","sources":["../src/app/AdminRoot.tsx"],"sourcesContent":["import type { ReactNode } from 'react'\nimport { Outlet, useNavigate, useRouterState, type LinkProps } from '@tanstack/react-router'\nimport { RootLayout, UserCard, Toaster, type RootLayoutHeader } from '../components'\nimport { AuthGuard } from '../auth/AuthGuard'\n\n/** The minimal user shape `AdminRoot` reads — apps pass their own richer type via the generic. */\nexport interface AdminUser {\n name?: string\n email?: string\n avatar?: string\n}\n\nexport interface AdminRootProps<U extends AdminUser = AdminUser> {\n /** Brand mark for the sidebar top. */\n logo?: ReactNode\n /** Current user, or `null` when signed out. */\n getUser: () => U | null\n /** Clears the session; `AdminRoot` navigates to `loginPath` afterwards. */\n onLogout: () => void\n /** Route-id prefix for standalone public pages (rendered outside the shell). Default `'/_auth'`. */\n authRouteId?: string\n /** Guard target for signed-out visitors + post-logout redirect. Default `'/login'`. */\n loginPath?: string\n /** Show a `UserCard` in the sidebar footer. Default `true`. */\n showUserCard?: boolean\n /** Extra `RootLayout` header config, merged **over** the defaults (the app's fields win). */\n header?: RootLayoutHeader\n}\n\n/**\n * Root-route component for admin apps — it wires up the whole shell orchestration so an app only has to\n * supply `logo` + `getUser` + `onLogout`. Public pages (route id under `authRouteId`) render standalone;\n * everything else renders inside the guarded admin shell (`RootLayout` + a sidebar `UserCard`), gated by\n * `AuthGuard` (signed-out visitors bounce to `loginPath`). Logout clears the session and navigates to\n * `loginPath`. Mounts exactly one app-wide `<Toaster/>` (the inner `RootLayout` gets `toaster={false}`).\n *\n * `loginPath` is a plain string, cast loosely to the router's `to` type (the library can't know the\n * app's typed route tree). The generic `<U>` preserves the app's own user type through `getUser`.\n *\n * @example\n * // routes/__root.tsx\n * export const Route = createRootRoute({\n * component: () => <AdminRoot<AuthUser> logo={<Logo />} getUser={getUser} onLogout={logout} />,\n * })\n */\nexport const AdminRoot = <U extends AdminUser = AdminUser>({\n logo,\n getUser,\n onLogout,\n authRouteId = '/_auth',\n loginPath = '/login',\n showUserCard = true,\n header,\n}: AdminRootProps<U>) => {\n const navigate = useNavigate()\n const isAuthRoute = useRouterState({\n select: (s) => s.matches.some((m) => m.routeId.startsWith(authRouteId)),\n })\n const user = getUser()\n const handleLogout = () => {\n onLogout()\n navigate({ to: loginPath as LinkProps['to'] })\n }\n const content = isAuthRoute ? (\n <Outlet />\n ) : (\n <AuthGuard isAuthenticated={user != null} redirectTo={loginPath}>\n <RootLayout\n logo={logo}\n toaster={false}\n header={{\n user: user ? { name: user.name, email: user.email, avatar: user.avatar } : undefined,\n onLogout: handleLogout,\n ...header,\n }}\n sidebarFooter={\n showUserCard && user ? (\n <UserCard\n name={user.name}\n email={user.email}\n avatar={user.avatar}\n onLogout={handleLogout}\n />\n ) : undefined\n }\n >\n <Outlet />\n </RootLayout>\n </AuthGuard>\n )\n return (\n <>\n {content}\n <Toaster />\n </>\n )\n}\n"],"names":["AdminRoot","logo","getUser","onLogout","authRouteId","loginPath","showUserCard","header","navigate","useNavigate","isAuthRoute","useRouterState","s","m","user","handleLogout","content","jsx","Outlet","AuthGuard","RootLayout","UserCard","jsxs","Fragment","Toaster"],"mappings":";;;;;;AA6CO,MAAMA,IAAY,CAAkC;AAAA,EACzD,MAAAC;AAAA,EACA,SAAAC;AAAA,EACA,UAAAC;AAAA,EACA,aAAAC,IAAc;AAAA,EACd,WAAAC,IAAY;AAAA,EACZ,cAAAC,IAAe;AAAA,EACf,QAAAC;AACF,MAAyB;AACvB,QAAMC,IAAWC,EAAA,GACXC,IAAcC,EAAe;AAAA,IACjC,QAAQ,CAACC,MAAMA,EAAE,QAAQ,KAAK,CAACC,MAAMA,EAAE,QAAQ,WAAWT,CAAW,CAAC;AAAA,EAAA,CACvE,GACKU,IAAOZ,EAAA,GACPa,IAAe,MAAM;AACzB,IAAAZ,EAAA,GACAK,EAAS,EAAE,IAAIH,GAA8B;AAAA,EAC/C,GACMW,IAAUN,IACd,gBAAAO,EAACC,GAAA,CAAA,CAAO,IAER,gBAAAD,EAACE,GAAA,EAAU,iBAAiBL,KAAQ,MAAM,YAAYT,GACpD,UAAA,gBAAAY;AAAA,IAACG;AAAA,IAAA;AAAA,MACC,MAAAnB;AAAA,MACA,SAAS;AAAA,MACT,QAAQ;AAAA,QACN,MAAMa,IAAO,EAAE,MAAMA,EAAK,MAAM,OAAOA,EAAK,OAAO,QAAQA,EAAK,OAAA,IAAW;AAAA,QAC3E,UAAUC;AAAA,QACV,GAAGR;AAAA,MAAA;AAAA,MAEL,eACED,KAAgBQ,IACd,gBAAAG;AAAA,QAACI;AAAA,QAAA;AAAA,UACC,MAAMP,EAAK;AAAA,UACX,OAAOA,EAAK;AAAA,UACZ,QAAQA,EAAK;AAAA,UACb,UAAUC;AAAA,QAAA;AAAA,MAAA,IAEV;AAAA,MAGN,4BAACG,GAAA,CAAA,CAAO;AAAA,IAAA;AAAA,EAAA,GAEZ;AAEF,SACE,gBAAAI,EAAAC,GAAA,EACG,UAAA;AAAA,IAAAP;AAAA,sBACAQ,GAAA,CAAA,CAAQ;AAAA,EAAA,GACX;AAEJ;"}
|
|
@@ -1,2 +1,2 @@
|
|
|
1
|
-
"use strict";const e=require("react/jsx-runtime"),o=require("@tanstack/react-router"),x=require("./AuthGuard-kfOZviar.cjs"),R=require("./RootLayout-
|
|
2
|
-
//# sourceMappingURL=AdminRoot-
|
|
1
|
+
"use strict";const e=require("react/jsx-runtime"),o=require("@tanstack/react-router"),x=require("./AuthGuard-kfOZviar.cjs"),R=require("./RootLayout-DtZcqk9N.cjs"),g=require("./UserCard-GHw2gTx9.cjs"),q=require("./Toaster-tHet1M-T.cjs"),A=({logo:s,getUser:u,onLogout:n,authRouteId:i="/_auth",loginPath:r="/login",showUserCard:c=!0,header:d})=>{const l=o.useNavigate(),m=o.useRouterState({select:j=>j.matches.some(v=>v.routeId.startsWith(i))}),t=u(),a=()=>{n(),l({to:r})},h=m?e.jsx(o.Outlet,{}):e.jsx(x.AuthGuard,{isAuthenticated:t!=null,redirectTo:r,children:e.jsx(R.RootLayout,{logo:s,toaster:!1,header:{user:t?{name:t.name,email:t.email,avatar:t.avatar}:void 0,onLogout:a,...d},sidebarFooter:c&&t?e.jsx(g.UserCard,{name:t.name,email:t.email,avatar:t.avatar,onLogout:a}):void 0,children:e.jsx(o.Outlet,{})})});return e.jsxs(e.Fragment,{children:[h,e.jsx(q.Toaster,{})]})};exports.AdminRoot=A;
|
|
2
|
+
//# sourceMappingURL=AdminRoot-DlpMJNTx.cjs.map
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"AdminRoot-
|
|
1
|
+
{"version":3,"file":"AdminRoot-DlpMJNTx.cjs","sources":["../src/app/AdminRoot.tsx"],"sourcesContent":["import type { ReactNode } from 'react'\nimport { Outlet, useNavigate, useRouterState, type LinkProps } from '@tanstack/react-router'\nimport { RootLayout, UserCard, Toaster, type RootLayoutHeader } from '../components'\nimport { AuthGuard } from '../auth/AuthGuard'\n\n/** The minimal user shape `AdminRoot` reads — apps pass their own richer type via the generic. */\nexport interface AdminUser {\n name?: string\n email?: string\n avatar?: string\n}\n\nexport interface AdminRootProps<U extends AdminUser = AdminUser> {\n /** Brand mark for the sidebar top. */\n logo?: ReactNode\n /** Current user, or `null` when signed out. */\n getUser: () => U | null\n /** Clears the session; `AdminRoot` navigates to `loginPath` afterwards. */\n onLogout: () => void\n /** Route-id prefix for standalone public pages (rendered outside the shell). Default `'/_auth'`. */\n authRouteId?: string\n /** Guard target for signed-out visitors + post-logout redirect. Default `'/login'`. */\n loginPath?: string\n /** Show a `UserCard` in the sidebar footer. Default `true`. */\n showUserCard?: boolean\n /** Extra `RootLayout` header config, merged **over** the defaults (the app's fields win). */\n header?: RootLayoutHeader\n}\n\n/**\n * Root-route component for admin apps — it wires up the whole shell orchestration so an app only has to\n * supply `logo` + `getUser` + `onLogout`. Public pages (route id under `authRouteId`) render standalone;\n * everything else renders inside the guarded admin shell (`RootLayout` + a sidebar `UserCard`), gated by\n * `AuthGuard` (signed-out visitors bounce to `loginPath`). Logout clears the session and navigates to\n * `loginPath`. Mounts exactly one app-wide `<Toaster/>` (the inner `RootLayout` gets `toaster={false}`).\n *\n * `loginPath` is a plain string, cast loosely to the router's `to` type (the library can't know the\n * app's typed route tree). The generic `<U>` preserves the app's own user type through `getUser`.\n *\n * @example\n * // routes/__root.tsx\n * export const Route = createRootRoute({\n * component: () => <AdminRoot<AuthUser> logo={<Logo />} getUser={getUser} onLogout={logout} />,\n * })\n */\nexport const AdminRoot = <U extends AdminUser = AdminUser>({\n logo,\n getUser,\n onLogout,\n authRouteId = '/_auth',\n loginPath = '/login',\n showUserCard = true,\n header,\n}: AdminRootProps<U>) => {\n const navigate = useNavigate()\n const isAuthRoute = useRouterState({\n select: (s) => s.matches.some((m) => m.routeId.startsWith(authRouteId)),\n })\n const user = getUser()\n const handleLogout = () => {\n onLogout()\n navigate({ to: loginPath as LinkProps['to'] })\n }\n const content = isAuthRoute ? (\n <Outlet />\n ) : (\n <AuthGuard isAuthenticated={user != null} redirectTo={loginPath}>\n <RootLayout\n logo={logo}\n toaster={false}\n header={{\n user: user ? { name: user.name, email: user.email, avatar: user.avatar } : undefined,\n onLogout: handleLogout,\n ...header,\n }}\n sidebarFooter={\n showUserCard && user ? (\n <UserCard\n name={user.name}\n email={user.email}\n avatar={user.avatar}\n onLogout={handleLogout}\n />\n ) : undefined\n }\n >\n <Outlet />\n </RootLayout>\n </AuthGuard>\n )\n return (\n <>\n {content}\n <Toaster />\n </>\n )\n}\n"],"names":["AdminRoot","logo","getUser","onLogout","authRouteId","loginPath","showUserCard","header","navigate","useNavigate","isAuthRoute","useRouterState","s","m","user","handleLogout","content","jsx","Outlet","AuthGuard","RootLayout","UserCard","jsxs","Fragment","Toaster"],"mappings":"4OA6CaA,EAAY,CAAkC,CACzD,KAAAC,EACA,QAAAC,EACA,SAAAC,EACA,YAAAC,EAAc,SACd,UAAAC,EAAY,SACZ,aAAAC,EAAe,GACf,OAAAC,CACF,IAAyB,CACvB,MAAMC,EAAWC,EAAAA,YAAA,EACXC,EAAcC,EAAAA,eAAe,CACjC,OAASC,GAAMA,EAAE,QAAQ,KAAMC,GAAMA,EAAE,QAAQ,WAAWT,CAAW,CAAC,CAAA,CACvE,EACKU,EAAOZ,EAAA,EACPa,EAAe,IAAM,CACzBZ,EAAA,EACAK,EAAS,CAAE,GAAIH,EAA8B,CAC/C,EACMW,EAAUN,EACdO,EAAAA,IAACC,EAAAA,OAAA,CAAA,CAAO,EAERD,EAAAA,IAACE,EAAAA,UAAA,CAAU,gBAAiBL,GAAQ,KAAM,WAAYT,EACpD,SAAAY,EAAAA,IAACG,EAAAA,WAAA,CACC,KAAAnB,EACA,QAAS,GACT,OAAQ,CACN,KAAMa,EAAO,CAAE,KAAMA,EAAK,KAAM,MAAOA,EAAK,MAAO,OAAQA,EAAK,MAAA,EAAW,OAC3E,SAAUC,EACV,GAAGR,CAAA,EAEL,cACED,GAAgBQ,EACdG,EAAAA,IAACI,EAAAA,SAAA,CACC,KAAMP,EAAK,KACX,MAAOA,EAAK,MACZ,OAAQA,EAAK,OACb,SAAUC,CAAA,CAAA,EAEV,OAGN,eAACG,EAAAA,OAAA,CAAA,CAAO,CAAA,CAAA,EAEZ,EAEF,OACEI,EAAAA,KAAAC,WAAA,CACG,SAAA,CAAAP,QACAQ,EAAAA,QAAA,CAAA,CAAQ,CAAA,EACX,CAEJ"}
|
|
@@ -1,2 +1,2 @@
|
|
|
1
|
-
"use strict";const e=require("react/jsx-runtime"),I=require("react"),g=require("clsx"),t=require("./Icon-CXTl_QAP.cjs"),C=require("./names-C2Yj1p3u.cjs"),N=require("./IconButton-
|
|
2
|
-
//# sourceMappingURL=Alert-
|
|
1
|
+
"use strict";const e=require("react/jsx-runtime"),I=require("react"),g=require("clsx"),t=require("./Icon-CXTl_QAP.cjs"),C=require("./names-C2Yj1p3u.cjs"),N=require("./IconButton-DyRC514t.cjs"),j=require("./ConfigProvider-h1WoGC3R.cjs"),q="_alert_1o0o3_3",v="_filled_1o0o3_18",h="_contained_1o0o3_21",A="_outlined_1o0o3_25",b="_text_1o0o3_29",z="_icon_1o0o3_34",E="_message_1o0o3_43",T="_action_1o0o3_49",w="_close_1o0o3_56",o={alert:q,filled:v,contained:h,outlined:A,text:b,icon:z,message:E,action:T,close:w},y=new Set(C.ICON_NAMES),O={success:"TickCircle",error:"CloseCircle",warning:"Warning",info:"InfoCircle"},S=I.forwardRef(function({variant:i="filled",color:s="info",icon:n,action:c,onClose:r,closeLabel:a,className:_,style:d,children:u,...f},m){const x=j.useT(),l=n===!1?null:n==null?e.jsx(t.Icon,{name:O[s]??"InfoCircle"}):typeof n=="string"&&y.has(n)?e.jsx(t.Icon,{name:n}):n;return e.jsxs("div",{ref:m,role:"alert",className:g.clsx(o.alert,o[i],_),style:{"--tz-btn-rgb":`var(--tz-color-${s}-rgb)`,"--tz-btn-on":`var(--tz-color-${s}-contrast, #fff)`,...d},...f,children:[l!=null&&e.jsx("span",{className:o.icon,"aria-hidden":!0,children:l}),e.jsx("div",{className:o.message,children:u}),c!=null&&e.jsx("div",{className:o.action,children:c}),r&&e.jsx(N.IconButton,{variant:"text",color:s,size:"sm",className:o.close,"aria-label":a??x("common.close"),onClick:r,children:e.jsx(t.Icon,{name:"Close"})})]})});exports.Alert=S;
|
|
2
|
+
//# sourceMappingURL=Alert-DRZdNwDm.cjs.map
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"Alert-
|
|
1
|
+
{"version":3,"file":"Alert-DRZdNwDm.cjs","sources":["../src/components/Alert/Alert.tsx"],"sourcesContent":["import { forwardRef, type CSSProperties, type HTMLAttributes, type ReactNode } from 'react'\nimport { clsx } from 'clsx'\nimport { Icon } from '../Icon'\nimport { IconButton } from '../IconButton'\nimport { ICON_NAMES, type IconName } from '../../icons/names'\nimport { useT, type ThemeColor } from '../../theme'\nimport styles from './Alert.module.css'\n\nexport type AlertVariant = 'contained' | 'filled' | 'outlined' | 'text'\n\nconst ICON_NAME_SET = new Set<string>(ICON_NAMES)\n\n/** Default leading icon per semantic color (other colors fall back to `InfoCircle`). */\nconst DEFAULT_ICON: Partial<Record<ThemeColor, IconName>> = {\n success: 'TickCircle',\n error: 'CloseCircle',\n warning: 'Warning',\n info: 'InfoCircle',\n}\n\nexport interface AlertProps extends Omit<HTMLAttributes<HTMLDivElement>, 'color' | 'title'> {\n /** Tint style. Defaults to `filled` (the soft tint). */\n variant?: AlertVariant\n /** Brand / semantic palette token that tints the alert. Defaults to `info`. */\n color?: ThemeColor\n /**\n * Leading icon — a known `IconName`, any node, or `false` to hide it. Defaults to the semantic icon\n * for `color` (success → `TickCircle`, error → `CloseCircle`, warning → `Warning`, info → `InfoCircle`).\n */\n icon?: IconName | ReactNode | false\n /** Trailing action (e.g. an `UNDO` button), placed before the close button. */\n action?: ReactNode\n /** When provided, a trailing × close button appears that calls this. */\n onClose?: () => void\n /** Accessible label for the close button. Defaults to `\"Close\"`. */\n closeLabel?: string\n /** Alert message. */\n children?: ReactNode\n}\n\n/**\n * A message banner — the library's inline feedback surface (info, success, warning, error). Tinted by\n * `color` via the shared `--tz-btn-rgb` pattern across the 4 standard `variant`s; a semantic leading\n * `icon` is auto-picked per color (override with `icon`, or `icon={false}` to drop it). An optional\n * `action` slot (e.g. an `UNDO` button) and an `onClose` × button trail the message. `role=\"alert\"`.\n */\nexport const Alert = forwardRef<HTMLDivElement, AlertProps>(function Alert(\n {\n variant = 'filled',\n color = 'info',\n icon,\n action,\n onClose,\n closeLabel,\n className,\n style,\n children,\n ...props\n },\n ref,\n) {\n const t = useT()\n const renderedIcon =\n icon === false ? null : icon == null ? (\n <Icon name={DEFAULT_ICON[color] ?? 'InfoCircle'} />\n ) : typeof icon === 'string' && ICON_NAME_SET.has(icon) ? (\n <Icon name={icon as IconName} />\n ) : (\n icon\n )\n\n return (\n <div\n ref={ref}\n role=\"alert\"\n className={clsx(styles.alert, styles[variant], className)}\n style={\n {\n '--tz-btn-rgb': `var(--tz-color-${color}-rgb)`,\n '--tz-btn-on': `var(--tz-color-${color}-contrast, #fff)`,\n ...style,\n } as CSSProperties\n }\n {...props}\n >\n {renderedIcon != null && (\n <span className={styles.icon} aria-hidden>\n {renderedIcon}\n </span>\n )}\n <div className={styles.message}>{children}</div>\n {action != null && <div className={styles.action}>{action}</div>}\n {onClose && (\n <IconButton\n variant=\"text\"\n color={color}\n size=\"sm\"\n className={styles.close}\n aria-label={closeLabel ?? t('common.close')}\n onClick={onClose}\n >\n <Icon name=\"Close\" />\n </IconButton>\n )}\n </div>\n )\n})\n"],"names":["ICON_NAME_SET","ICON_NAMES","DEFAULT_ICON","Alert","forwardRef","variant","color","icon","action","onClose","closeLabel","className","style","children","props","ref","t","useT","renderedIcon","jsx","Icon","jsxs","clsx","styles","IconButton"],"mappings":"6fAUMA,EAAgB,IAAI,IAAYC,YAAU,EAG1CC,EAAsD,CAC1D,QAAS,aACT,MAAO,cACP,QAAS,UACT,KAAM,YACR,EA4BaC,EAAQC,EAAAA,WAAuC,SAC1D,CACE,QAAAC,EAAU,SACV,MAAAC,EAAQ,OACR,KAAAC,EACA,OAAAC,EACA,QAAAC,EACA,WAAAC,EACA,UAAAC,EACA,MAAAC,EACA,SAAAC,EACA,GAAGC,CACL,EACAC,EACA,CACA,MAAMC,EAAIC,EAAAA,KAAA,EACJC,EACJX,IAAS,GAAQ,KAAOA,GAAQ,KAC9BY,EAAAA,IAACC,EAAAA,KAAA,CAAK,KAAMlB,EAAaI,CAAK,GAAK,aAAc,EAC/C,OAAOC,GAAS,UAAYP,EAAc,IAAIO,CAAI,EACpDY,EAAAA,IAACC,EAAAA,KAAA,CAAK,KAAMb,CAAA,CAAkB,EAE9BA,EAGJ,OACEc,EAAAA,KAAC,MAAA,CACC,IAAAN,EACA,KAAK,QACL,UAAWO,EAAAA,KAAKC,EAAO,MAAOA,EAAOlB,CAAO,EAAGM,CAAS,EACxD,MACE,CACE,eAAgB,kBAAkBL,CAAK,QACvC,cAAe,kBAAkBA,CAAK,mBACtC,GAAGM,CAAA,EAGN,GAAGE,EAEH,SAAA,CAAAI,GAAgB,YACd,OAAA,CAAK,UAAWK,EAAO,KAAM,cAAW,GACtC,SAAAL,CAAA,CACH,EAEFC,EAAAA,IAAC,MAAA,CAAI,UAAWI,EAAO,QAAU,SAAAV,EAAS,EACzCL,GAAU,MAAQW,EAAAA,IAAC,OAAI,UAAWI,EAAO,OAAS,SAAAf,EAAO,EACzDC,GACCU,EAAAA,IAACK,EAAAA,WAAA,CACC,QAAQ,OACR,MAAAlB,EACA,KAAK,KACL,UAAWiB,EAAO,MAClB,aAAYb,GAAcM,EAAE,cAAc,EAC1C,QAASP,EAET,SAAAU,EAAAA,IAACC,EAAAA,KAAA,CAAK,KAAK,OAAA,CAAQ,CAAA,CAAA,CACrB,CAAA,CAAA,CAIR,CAAC"}
|
|
@@ -3,8 +3,8 @@ import { forwardRef as N } from "react";
|
|
|
3
3
|
import { clsx as g } from "clsx";
|
|
4
4
|
import { I as s } from "./Icon-CophpkHo.js";
|
|
5
5
|
import { a as C } from "./names-D8ABK2Wk.js";
|
|
6
|
-
import { I as x } from "./IconButton-
|
|
7
|
-
import { a as h } from "./ConfigProvider-
|
|
6
|
+
import { I as x } from "./IconButton-DpTxmj3d.js";
|
|
7
|
+
import { a as h } from "./ConfigProvider-DDuIJSM7.js";
|
|
8
8
|
const v = "_alert_1o0o3_3", A = "_filled_1o0o3_18", b = "_contained_1o0o3_21", z = "_outlined_1o0o3_25", E = "_text_1o0o3_29", T = "_icon_1o0o3_34", w = "_message_1o0o3_43", y = "_action_1o0o3_49", O = "_close_1o0o3_56", t = {
|
|
9
9
|
alert: v,
|
|
10
10
|
filled: A,
|
|
@@ -68,4 +68,4 @@ const v = "_alert_1o0o3_3", A = "_filled_1o0o3_18", b = "_contained_1o0o3_21", z
|
|
|
68
68
|
export {
|
|
69
69
|
U as A
|
|
70
70
|
};
|
|
71
|
-
//# sourceMappingURL=Alert-
|
|
71
|
+
//# sourceMappingURL=Alert-yldGvhVM.js.map
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"Alert-
|
|
1
|
+
{"version":3,"file":"Alert-yldGvhVM.js","sources":["../src/components/Alert/Alert.tsx"],"sourcesContent":["import { forwardRef, type CSSProperties, type HTMLAttributes, type ReactNode } from 'react'\nimport { clsx } from 'clsx'\nimport { Icon } from '../Icon'\nimport { IconButton } from '../IconButton'\nimport { ICON_NAMES, type IconName } from '../../icons/names'\nimport { useT, type ThemeColor } from '../../theme'\nimport styles from './Alert.module.css'\n\nexport type AlertVariant = 'contained' | 'filled' | 'outlined' | 'text'\n\nconst ICON_NAME_SET = new Set<string>(ICON_NAMES)\n\n/** Default leading icon per semantic color (other colors fall back to `InfoCircle`). */\nconst DEFAULT_ICON: Partial<Record<ThemeColor, IconName>> = {\n success: 'TickCircle',\n error: 'CloseCircle',\n warning: 'Warning',\n info: 'InfoCircle',\n}\n\nexport interface AlertProps extends Omit<HTMLAttributes<HTMLDivElement>, 'color' | 'title'> {\n /** Tint style. Defaults to `filled` (the soft tint). */\n variant?: AlertVariant\n /** Brand / semantic palette token that tints the alert. Defaults to `info`. */\n color?: ThemeColor\n /**\n * Leading icon — a known `IconName`, any node, or `false` to hide it. Defaults to the semantic icon\n * for `color` (success → `TickCircle`, error → `CloseCircle`, warning → `Warning`, info → `InfoCircle`).\n */\n icon?: IconName | ReactNode | false\n /** Trailing action (e.g. an `UNDO` button), placed before the close button. */\n action?: ReactNode\n /** When provided, a trailing × close button appears that calls this. */\n onClose?: () => void\n /** Accessible label for the close button. Defaults to `\"Close\"`. */\n closeLabel?: string\n /** Alert message. */\n children?: ReactNode\n}\n\n/**\n * A message banner — the library's inline feedback surface (info, success, warning, error). Tinted by\n * `color` via the shared `--tz-btn-rgb` pattern across the 4 standard `variant`s; a semantic leading\n * `icon` is auto-picked per color (override with `icon`, or `icon={false}` to drop it). An optional\n * `action` slot (e.g. an `UNDO` button) and an `onClose` × button trail the message. `role=\"alert\"`.\n */\nexport const Alert = forwardRef<HTMLDivElement, AlertProps>(function Alert(\n {\n variant = 'filled',\n color = 'info',\n icon,\n action,\n onClose,\n closeLabel,\n className,\n style,\n children,\n ...props\n },\n ref,\n) {\n const t = useT()\n const renderedIcon =\n icon === false ? null : icon == null ? (\n <Icon name={DEFAULT_ICON[color] ?? 'InfoCircle'} />\n ) : typeof icon === 'string' && ICON_NAME_SET.has(icon) ? (\n <Icon name={icon as IconName} />\n ) : (\n icon\n )\n\n return (\n <div\n ref={ref}\n role=\"alert\"\n className={clsx(styles.alert, styles[variant], className)}\n style={\n {\n '--tz-btn-rgb': `var(--tz-color-${color}-rgb)`,\n '--tz-btn-on': `var(--tz-color-${color}-contrast, #fff)`,\n ...style,\n } as CSSProperties\n }\n {...props}\n >\n {renderedIcon != null && (\n <span className={styles.icon} aria-hidden>\n {renderedIcon}\n </span>\n )}\n <div className={styles.message}>{children}</div>\n {action != null && <div className={styles.action}>{action}</div>}\n {onClose && (\n <IconButton\n variant=\"text\"\n color={color}\n size=\"sm\"\n className={styles.close}\n aria-label={closeLabel ?? t('common.close')}\n onClick={onClose}\n >\n <Icon name=\"Close\" />\n </IconButton>\n )}\n </div>\n )\n})\n"],"names":["ICON_NAME_SET","ICON_NAMES","DEFAULT_ICON","Alert","forwardRef","variant","color","icon","action","onClose","closeLabel","className","style","children","props","ref","t","useT","renderedIcon","jsx","Icon","jsxs","clsx","styles","IconButton"],"mappings":";;;;;;;;;;;;;;;;;GAUMA,IAAgB,IAAI,IAAYC,CAAU,GAG1CC,IAAsD;AAAA,EAC1D,SAAS;AAAA,EACT,OAAO;AAAA,EACP,SAAS;AAAA,EACT,MAAM;AACR,GA4BaC,IAAQC,EAAuC,SAC1D;AAAA,EACE,SAAAC,IAAU;AAAA,EACV,OAAAC,IAAQ;AAAA,EACR,MAAAC;AAAA,EACA,QAAAC;AAAA,EACA,SAAAC;AAAA,EACA,YAAAC;AAAA,EACA,WAAAC;AAAA,EACA,OAAAC;AAAA,EACA,UAAAC;AAAA,EACA,GAAGC;AACL,GACAC,GACA;AACA,QAAMC,IAAIC,EAAA,GACJC,IACJX,MAAS,KAAQ,OAAOA,KAAQ,OAC9B,gBAAAY,EAACC,GAAA,EAAK,MAAMlB,EAAaI,CAAK,KAAK,cAAc,IAC/C,OAAOC,KAAS,YAAYP,EAAc,IAAIO,CAAI,IACpD,gBAAAY,EAACC,GAAA,EAAK,MAAMb,EAAA,CAAkB,IAE9BA;AAGJ,SACE,gBAAAc;AAAA,IAAC;AAAA,IAAA;AAAA,MACC,KAAAN;AAAA,MACA,MAAK;AAAA,MACL,WAAWO,EAAKC,EAAO,OAAOA,EAAOlB,CAAO,GAAGM,CAAS;AAAA,MACxD,OACE;AAAA,QACE,gBAAgB,kBAAkBL,CAAK;AAAA,QACvC,eAAe,kBAAkBA,CAAK;AAAA,QACtC,GAAGM;AAAA,MAAA;AAAA,MAGN,GAAGE;AAAA,MAEH,UAAA;AAAA,QAAAI,KAAgB,0BACd,QAAA,EAAK,WAAWK,EAAO,MAAM,eAAW,IACtC,UAAAL,EAAA,CACH;AAAA,QAEF,gBAAAC,EAAC,OAAA,EAAI,WAAWI,EAAO,SAAU,UAAAV,GAAS;AAAA,QACzCL,KAAU,QAAQ,gBAAAW,EAAC,SAAI,WAAWI,EAAO,QAAS,UAAAf,GAAO;AAAA,QACzDC,KACC,gBAAAU;AAAA,UAACK;AAAA,UAAA;AAAA,YACC,SAAQ;AAAA,YACR,OAAAlB;AAAA,YACA,MAAK;AAAA,YACL,WAAWiB,EAAO;AAAA,YAClB,cAAYb,KAAcM,EAAE,cAAc;AAAA,YAC1C,SAASP;AAAA,YAET,UAAA,gBAAAU,EAACC,GAAA,EAAK,MAAK,QAAA,CAAQ;AAAA,UAAA;AAAA,QAAA;AAAA,MACrB;AAAA,IAAA;AAAA,EAAA;AAIR,CAAC;"}
|
|
@@ -0,0 +1,2 @@
|
|
|
1
|
+
"use strict";const a=require("react/jsx-runtime"),g=require("react"),m=require("clsx"),v=require("./Avatar-_ufXh3AY.cjs"),u=require("./Typography-BFatE1_A.cjs"),x="_authLayout_1vumg_3",j="_logo_1vumg_20",L="_card_1vumg_36",N="_icon_1vumg_50",f="_header_1vumg_55",p="_body_1vumg_62",q="_footer_1vumg_68",o={authLayout:x,logo:j,card:L,icon:N,header:f,body:p,footer:q},A=g.forwardRef(function({title:s,subtitle:e,logo:c,icon:r,footer:n,color:l="accent",maxWidth:d=400,className:i,style:h,children:t,..._},y){return a.jsxs("div",{ref:y,className:m.clsx(o.authLayout,i),style:h,..._,children:[c!=null&&a.jsx("div",{className:o.logo,children:c}),a.jsxs("div",{className:o.card,style:{maxWidth:d},children:[r!=null&&a.jsx(v.Avatar,{className:o.icon,icon:r,color:l,size:"lg","aria-hidden":!0}),(s!=null||e!=null)&&a.jsxs("div",{className:o.header,children:[s!=null&&a.jsx(u.Typography,{variant:"h2",align:"center",children:s}),e!=null&&a.jsx(u.Typography,{color:"muted",align:"center",children:e})]}),t!=null&&a.jsx("div",{className:o.body,children:t}),n!=null&&a.jsx("div",{className:o.footer,children:n})]})]})});exports.AuthLayout=A;
|
|
2
|
+
//# sourceMappingURL=AuthLayout-B1tzhzHo.cjs.map
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"AuthLayout-
|
|
1
|
+
{"version":3,"file":"AuthLayout-B1tzhzHo.cjs","sources":["../src/components/AuthLayout/AuthLayout.tsx"],"sourcesContent":["import { forwardRef, type CSSProperties, type HTMLAttributes, type ReactNode } from 'react'\nimport { clsx } from 'clsx'\nimport type { ThemeColor } from '../../theme'\nimport { Avatar } from '../Avatar'\nimport { Typography } from '../Typography'\nimport type { IconName } from '../../icons/names'\nimport styles from './AuthLayout.module.css'\n\nexport interface AuthLayoutProps extends Omit<HTMLAttributes<HTMLDivElement>, 'title'> {\n /** Heading — the page name (e.g. `\"Login\"`, `\"Forgot Password\"`, `\"Verify Code\"`). */\n title?: ReactNode\n /** Muted line under the title (e.g. `\"Enter your email to receive a reset link\"`). */\n subtitle?: ReactNode\n /**\n * Brand slot centered on the canvas, above the card (a logo `<img>` / `<svg>` / any node). The slot\n * is the constraint box (capped width + height) — an `<img>`/`<svg>` inside fills it 100% (aspect\n * kept), so you can pass an unsized logo and it's sized/centered for you.\n */\n logo?: ReactNode\n /** Optional glyph in a soft tinted circle above the title — an `IconName` or any node. */\n icon?: IconName | ReactNode\n /** Bottom slot under the form — e.g. a \"Back to login\" / \"Sign up\" link row. */\n footer?: ReactNode\n /** Theme token that tints the `icon` circle. Defaults to `accent`. */\n color?: ThemeColor\n /** Max width of the centered card in px. Defaults to `400`. */\n maxWidth?: number\n /** The auth form (fields + submit) — usually a `<Form>`. */\n children?: ReactNode\n}\n\n/**\n * A ready-made, centered page frame for **authentication pages** (login, forgot-password,\n * reset-password, OTP, …) — so each page just supplies its `title` + form instead of hand-building the\n * layout. Fills the viewport (`100dvh`) with the app `background` canvas and vertically centers a\n * `logo` (on the canvas, above the card) + an elevated `surface` card, as a group. The card stacks: an\n * optional `icon` (in a soft tinted `Avatar` circle), the `title` + `subtitle` (centered), the\n * `children` (your form), and an optional `footer` (link row). Token-only styling; responsive.\n *\n * @example\n * <AuthLayout title=\"Login\" subtitle=\"Welcome back\" logo={<Logo />}>\n * <Form form={form}>…</Form>\n * </AuthLayout>\n */\nexport const AuthLayout = forwardRef<HTMLDivElement, AuthLayoutProps>(function AuthLayout(\n {\n title,\n subtitle,\n logo,\n icon,\n footer,\n color = 'accent',\n maxWidth = 400,\n className,\n style,\n children,\n ...props\n },\n ref,\n) {\n return (\n <div ref={ref} className={clsx(styles.authLayout, className)} style={style} {...props}>\n {logo != null && <div className={styles.logo}>{logo}</div>}\n <div className={styles.card} style={{ maxWidth } as CSSProperties}>\n {icon != null && (\n <Avatar className={styles.icon} icon={icon} color={color} size=\"lg\" aria-hidden />\n )}\n {(title != null || subtitle != null) && (\n <div className={styles.header}>\n {title != null && (\n <Typography variant=\"h2\" align=\"center\">\n {title}\n </Typography>\n )}\n {subtitle != null && (\n <Typography color=\"muted\" align=\"center\">\n {subtitle}\n </Typography>\n )}\n </div>\n )}\n {children != null && <div className={styles.body}>{children}</div>}\n {footer != null && <div className={styles.footer}>{footer}</div>}\n </div>\n </div>\n )\n})\n"],"names":["AuthLayout","forwardRef","title","subtitle","logo","icon","footer","color","maxWidth","className","style","children","props","ref","jsxs","clsx","styles","jsx","Avatar","Typography"],"mappings":"8WA4CaA,EAAaC,EAAAA,WAA4C,SACpE,CACE,MAAAC,EACA,SAAAC,EACA,KAAAC,EACA,KAAAC,EACA,OAAAC,EACA,MAAAC,EAAQ,SACR,SAAAC,EAAW,IACX,UAAAC,EACA,MAAAC,EACA,SAAAC,EACA,GAAGC,CACL,EACAC,EACA,CACA,OACEC,EAAAA,KAAC,MAAA,CAAI,IAAAD,EAAU,UAAWE,EAAAA,KAAKC,EAAO,WAAYP,CAAS,EAAG,MAAAC,EAAe,GAAGE,EAC7E,SAAA,CAAAR,GAAQ,MAAQa,EAAAA,IAAC,MAAA,CAAI,UAAWD,EAAO,KAAO,SAAAZ,EAAK,EACpDU,OAAC,OAAI,UAAWE,EAAO,KAAM,MAAO,CAAE,SAAAR,GACnC,SAAA,CAAAH,GAAQ,MACPY,EAAAA,IAACC,EAAAA,OAAA,CAAO,UAAWF,EAAO,KAAM,KAAAX,EAAY,MAAAE,EAAc,KAAK,KAAK,cAAW,EAAA,CAAC,GAEhFL,GAAS,MAAQC,GAAY,cAC5B,MAAA,CAAI,UAAWa,EAAO,OACpB,SAAA,CAAAd,GAAS,MACRe,MAACE,EAAAA,WAAA,CAAW,QAAQ,KAAK,MAAM,SAC5B,SAAAjB,CAAA,CACH,EAEDC,GAAY,MACXc,MAACE,EAAAA,WAAA,CAAW,MAAM,QAAQ,MAAM,SAC7B,SAAAhB,CAAA,CACH,CAAA,EAEJ,EAEDQ,GAAY,MAAQM,EAAAA,IAAC,OAAI,UAAWD,EAAO,KAAO,SAAAL,EAAS,EAC3DL,GAAU,MAAQW,EAAAA,IAAC,OAAI,UAAWD,EAAO,OAAS,SAAAV,CAAA,CAAO,CAAA,CAAA,CAC5D,CAAA,EACF,CAEJ,CAAC"}
|
|
@@ -0,0 +1,43 @@
|
|
|
1
|
+
import { jsxs as n, jsx as a } from "react/jsx-runtime";
|
|
2
|
+
import { forwardRef as g } from "react";
|
|
3
|
+
import { clsx as y } from "clsx";
|
|
4
|
+
import { A as f } from "./Avatar-BJVCdo-K.js";
|
|
5
|
+
import { T as u } from "./Typography-Cta6Rg4L.js";
|
|
6
|
+
const p = "_authLayout_1vumg_3", N = "_logo_1vumg_20", L = "_card_1vumg_36", A = "_icon_1vumg_50", x = "_header_1vumg_55", b = "_body_1vumg_62", j = "_footer_1vumg_68", o = {
|
|
7
|
+
authLayout: p,
|
|
8
|
+
logo: N,
|
|
9
|
+
card: L,
|
|
10
|
+
icon: A,
|
|
11
|
+
header: x,
|
|
12
|
+
body: b,
|
|
13
|
+
footer: j
|
|
14
|
+
}, B = g(function({
|
|
15
|
+
title: r,
|
|
16
|
+
subtitle: c,
|
|
17
|
+
logo: l,
|
|
18
|
+
icon: e,
|
|
19
|
+
footer: t,
|
|
20
|
+
color: d = "accent",
|
|
21
|
+
maxWidth: m = 400,
|
|
22
|
+
className: i,
|
|
23
|
+
style: _,
|
|
24
|
+
children: s,
|
|
25
|
+
...h
|
|
26
|
+
}, v) {
|
|
27
|
+
return /* @__PURE__ */ n("div", { ref: v, className: y(o.authLayout, i), style: _, ...h, children: [
|
|
28
|
+
l != null && /* @__PURE__ */ a("div", { className: o.logo, children: l }),
|
|
29
|
+
/* @__PURE__ */ n("div", { className: o.card, style: { maxWidth: m }, children: [
|
|
30
|
+
e != null && /* @__PURE__ */ a(f, { className: o.icon, icon: e, color: d, size: "lg", "aria-hidden": !0 }),
|
|
31
|
+
(r != null || c != null) && /* @__PURE__ */ n("div", { className: o.header, children: [
|
|
32
|
+
r != null && /* @__PURE__ */ a(u, { variant: "h2", align: "center", children: r }),
|
|
33
|
+
c != null && /* @__PURE__ */ a(u, { color: "muted", align: "center", children: c })
|
|
34
|
+
] }),
|
|
35
|
+
s != null && /* @__PURE__ */ a("div", { className: o.body, children: s }),
|
|
36
|
+
t != null && /* @__PURE__ */ a("div", { className: o.footer, children: t })
|
|
37
|
+
] })
|
|
38
|
+
] });
|
|
39
|
+
});
|
|
40
|
+
export {
|
|
41
|
+
B as A
|
|
42
|
+
};
|
|
43
|
+
//# sourceMappingURL=AuthLayout-j7EAPPXT.js.map
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"AuthLayout-
|
|
1
|
+
{"version":3,"file":"AuthLayout-j7EAPPXT.js","sources":["../src/components/AuthLayout/AuthLayout.tsx"],"sourcesContent":["import { forwardRef, type CSSProperties, type HTMLAttributes, type ReactNode } from 'react'\nimport { clsx } from 'clsx'\nimport type { ThemeColor } from '../../theme'\nimport { Avatar } from '../Avatar'\nimport { Typography } from '../Typography'\nimport type { IconName } from '../../icons/names'\nimport styles from './AuthLayout.module.css'\n\nexport interface AuthLayoutProps extends Omit<HTMLAttributes<HTMLDivElement>, 'title'> {\n /** Heading — the page name (e.g. `\"Login\"`, `\"Forgot Password\"`, `\"Verify Code\"`). */\n title?: ReactNode\n /** Muted line under the title (e.g. `\"Enter your email to receive a reset link\"`). */\n subtitle?: ReactNode\n /**\n * Brand slot centered on the canvas, above the card (a logo `<img>` / `<svg>` / any node). The slot\n * is the constraint box (capped width + height) — an `<img>`/`<svg>` inside fills it 100% (aspect\n * kept), so you can pass an unsized logo and it's sized/centered for you.\n */\n logo?: ReactNode\n /** Optional glyph in a soft tinted circle above the title — an `IconName` or any node. */\n icon?: IconName | ReactNode\n /** Bottom slot under the form — e.g. a \"Back to login\" / \"Sign up\" link row. */\n footer?: ReactNode\n /** Theme token that tints the `icon` circle. Defaults to `accent`. */\n color?: ThemeColor\n /** Max width of the centered card in px. Defaults to `400`. */\n maxWidth?: number\n /** The auth form (fields + submit) — usually a `<Form>`. */\n children?: ReactNode\n}\n\n/**\n * A ready-made, centered page frame for **authentication pages** (login, forgot-password,\n * reset-password, OTP, …) — so each page just supplies its `title` + form instead of hand-building the\n * layout. Fills the viewport (`100dvh`) with the app `background` canvas and vertically centers a\n * `logo` (on the canvas, above the card) + an elevated `surface` card, as a group. The card stacks: an\n * optional `icon` (in a soft tinted `Avatar` circle), the `title` + `subtitle` (centered), the\n * `children` (your form), and an optional `footer` (link row). Token-only styling; responsive.\n *\n * @example\n * <AuthLayout title=\"Login\" subtitle=\"Welcome back\" logo={<Logo />}>\n * <Form form={form}>…</Form>\n * </AuthLayout>\n */\nexport const AuthLayout = forwardRef<HTMLDivElement, AuthLayoutProps>(function AuthLayout(\n {\n title,\n subtitle,\n logo,\n icon,\n footer,\n color = 'accent',\n maxWidth = 400,\n className,\n style,\n children,\n ...props\n },\n ref,\n) {\n return (\n <div ref={ref} className={clsx(styles.authLayout, className)} style={style} {...props}>\n {logo != null && <div className={styles.logo}>{logo}</div>}\n <div className={styles.card} style={{ maxWidth } as CSSProperties}>\n {icon != null && (\n <Avatar className={styles.icon} icon={icon} color={color} size=\"lg\" aria-hidden />\n )}\n {(title != null || subtitle != null) && (\n <div className={styles.header}>\n {title != null && (\n <Typography variant=\"h2\" align=\"center\">\n {title}\n </Typography>\n )}\n {subtitle != null && (\n <Typography color=\"muted\" align=\"center\">\n {subtitle}\n </Typography>\n )}\n </div>\n )}\n {children != null && <div className={styles.body}>{children}</div>}\n {footer != null && <div className={styles.footer}>{footer}</div>}\n </div>\n </div>\n )\n})\n"],"names":["AuthLayout","forwardRef","title","subtitle","logo","icon","footer","color","maxWidth","className","style","children","props","ref","jsxs","clsx","styles","jsx","Avatar","Typography"],"mappings":";;;;;;;;;;;;;GA4CaA,IAAaC,EAA4C,SACpE;AAAA,EACE,OAAAC;AAAA,EACA,UAAAC;AAAA,EACA,MAAAC;AAAA,EACA,MAAAC;AAAA,EACA,QAAAC;AAAA,EACA,OAAAC,IAAQ;AAAA,EACR,UAAAC,IAAW;AAAA,EACX,WAAAC;AAAA,EACA,OAAAC;AAAA,EACA,UAAAC;AAAA,EACA,GAAGC;AACL,GACAC,GACA;AACA,SACE,gBAAAC,EAAC,OAAA,EAAI,KAAAD,GAAU,WAAWE,EAAKC,EAAO,YAAYP,CAAS,GAAG,OAAAC,GAAe,GAAGE,GAC7E,UAAA;AAAA,IAAAR,KAAQ,QAAQ,gBAAAa,EAAC,OAAA,EAAI,WAAWD,EAAO,MAAO,UAAAZ,GAAK;AAAA,IACpD,gBAAAU,EAAC,SAAI,WAAWE,EAAO,MAAM,OAAO,EAAE,UAAAR,KACnC,UAAA;AAAA,MAAAH,KAAQ,QACP,gBAAAY,EAACC,GAAA,EAAO,WAAWF,EAAO,MAAM,MAAAX,GAAY,OAAAE,GAAc,MAAK,MAAK,eAAW,GAAA,CAAC;AAAA,OAEhFL,KAAS,QAAQC,KAAY,2BAC5B,OAAA,EAAI,WAAWa,EAAO,QACpB,UAAA;AAAA,QAAAd,KAAS,QACR,gBAAAe,EAACE,GAAA,EAAW,SAAQ,MAAK,OAAM,UAC5B,UAAAjB,EAAA,CACH;AAAA,QAEDC,KAAY,QACX,gBAAAc,EAACE,GAAA,EAAW,OAAM,SAAQ,OAAM,UAC7B,UAAAhB,EAAA,CACH;AAAA,MAAA,GAEJ;AAAA,MAEDQ,KAAY,QAAQ,gBAAAM,EAAC,SAAI,WAAWD,EAAO,MAAO,UAAAL,GAAS;AAAA,MAC3DL,KAAU,QAAQ,gBAAAW,EAAC,SAAI,WAAWD,EAAO,QAAS,UAAAV,EAAA,CAAO;AAAA,IAAA,EAAA,CAC5D;AAAA,EAAA,GACF;AAEJ,CAAC;"}
|
|
@@ -2,8 +2,8 @@ import { jsx as e, jsxs as i } from "react/jsx-runtime";
|
|
|
2
2
|
import { Link as u } from "@tanstack/react-router";
|
|
3
3
|
import { I as n } from "./Icon-CophpkHo.js";
|
|
4
4
|
import { a as b } from "./names-D8ABK2Wk.js";
|
|
5
|
-
import { u as h } from "./Sidebar-
|
|
6
|
-
import { a as d } from "./ConfigProvider-
|
|
5
|
+
import { u as h } from "./Sidebar-C0OJK29L.js";
|
|
6
|
+
import { a as d } from "./ConfigProvider-DDuIJSM7.js";
|
|
7
7
|
const p = "_breadcrumbs_c3mqv_4", N = "_list_c3mqv_8", f = "_item_c3mqv_18", v = "_home_c3mqv_27", q = "_separator_c3mqv_39", k = "_link_c3mqv_50", g = "_current_c3mqv_61", r = {
|
|
8
8
|
breadcrumbs: p,
|
|
9
9
|
list: N,
|
|
@@ -32,4 +32,4 @@ function w({ separator: s = "ArrowRight4" } = {}) {
|
|
|
32
32
|
export {
|
|
33
33
|
w as B
|
|
34
34
|
};
|
|
35
|
-
//# sourceMappingURL=Breadcrumbs-
|
|
35
|
+
//# sourceMappingURL=Breadcrumbs-FpIOHx_q.js.map
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"Breadcrumbs-
|
|
1
|
+
{"version":3,"file":"Breadcrumbs-FpIOHx_q.js","sources":["../src/components/Breadcrumbs/Breadcrumbs.tsx"],"sourcesContent":["import type { ReactNode } from 'react'\nimport { Link, type LinkProps } from '@tanstack/react-router'\nimport { useT } from '../../theme'\nimport { Icon } from '../Icon'\nimport { ICON_NAMES, type IconName } from '../../icons/names'\nimport { useBreadcrumbs } from '../Sidebar/Sidebar'\nimport styles from './Breadcrumbs.module.css'\n\nconst linkTo = (to: string) => to as LinkProps['to']\nconst ICON_NAME_SET = new Set<string>(ICON_NAMES)\n\nexport interface BreadcrumbsProps {\n /**\n * Separator between crumbs. A known `IconName` (the default `\"ArrowRight4\"`) renders as an icon; any\n * other string renders as plain text; or pass a node.\n */\n separator?: IconName | ReactNode\n}\n\nfunction Separator({ separator }: { separator: IconName | ReactNode }) {\n if (typeof separator === 'string' && ICON_NAME_SET.has(separator)) {\n return <Icon name={separator as IconName} size=\"sm\" className={styles.separator} />\n }\n return (\n <span className={styles.separator} aria-hidden=\"true\">\n {separator}\n </span>\n )\n}\n\n/**\n * Auto-generated breadcrumb trail for the current route, rendered at the top of `RootLayout`'s\n * content. It always starts with a home icon that links to the first allowed menu page (the same\n * target as `FirstRouteRedirect`), followed by one crumb per matched route that declares a\n * `staticData.name`. Intermediate crumbs link to their page when navigable; the current page is\n * plain text. Renders nothing when the current route has no named matches. Token-only styling.\n */\nexport function Breadcrumbs({ separator = 'ArrowRight4' }: BreadcrumbsProps = {}) {\n const { homeTo, items } = useBreadcrumbs()\n const t = useT()\n if (items.length === 0) return null\n\n return (\n <nav aria-label={t('breadcrumbs.label')} className={styles.breadcrumbs}>\n <ol className={styles.list}>\n <li className={styles.item}>\n {homeTo ? (\n <Link to={linkTo(homeTo)} className={styles.home} aria-label={t('breadcrumbs.home')}>\n <Icon name=\"Home2\" size=\"sm\" />\n </Link>\n ) : (\n <span className={styles.home} aria-label={t('breadcrumbs.home')}>\n <Icon name=\"Home2\" size=\"sm\" />\n </span>\n )}\n </li>\n {items.map((item, index) => {\n const isLast = index === items.length - 1\n return (\n <li className={styles.item} key={`${item.label}-${index}`}>\n <Separator separator={separator} />\n {item.to && !isLast ? (\n <Link to={linkTo(item.to)} className={styles.link}>\n {item.label}\n </Link>\n ) : (\n <span className={styles.current} aria-current={isLast ? 'page' : undefined}>\n {item.label}\n </span>\n )}\n </li>\n )\n })}\n </ol>\n </nav>\n )\n}\n"],"names":["linkTo","to","ICON_NAME_SET","ICON_NAMES","Separator","separator","jsx","Icon","styles","Breadcrumbs","homeTo","items","useBreadcrumbs","t","useT","jsxs","Link","item","index","isLast"],"mappings":";;;;;;;;;;;;;;GAQMA,IAAS,CAACC,MAAeA,GACzBC,IAAgB,IAAI,IAAYC,CAAU;AAUhD,SAASC,EAAU,EAAE,WAAAC,KAAkD;AACrE,SAAI,OAAOA,KAAc,YAAYH,EAAc,IAAIG,CAAS,IACvD,gBAAAC,EAACC,KAAK,MAAMF,GAAuB,MAAK,MAAK,WAAWG,EAAO,WAAW,sBAGhF,QAAA,EAAK,WAAWA,EAAO,WAAW,eAAY,QAC5C,UAAAH,GACH;AAEJ;AASO,SAASI,EAAY,EAAE,WAAAJ,IAAY,cAAA,IAAoC,CAAA,GAAI;AAChF,QAAM,EAAE,QAAAK,GAAQ,OAAAC,EAAA,IAAUC,EAAA,GACpBC,IAAIC,EAAA;AACV,SAAIH,EAAM,WAAW,IAAU,OAG7B,gBAAAL,EAAC,OAAA,EAAI,cAAYO,EAAE,mBAAmB,GAAG,WAAWL,EAAO,aACzD,UAAA,gBAAAO,EAAC,MAAA,EAAG,WAAWP,EAAO,MACpB,UAAA;AAAA,IAAA,gBAAAF,EAAC,QAAG,WAAWE,EAAO,MACnB,UAAAE,IACC,gBAAAJ,EAACU,KAAK,IAAIhB,EAAOU,CAAM,GAAG,WAAWF,EAAO,MAAM,cAAYK,EAAE,kBAAkB,GAChF,4BAACN,GAAA,EAAK,MAAK,SAAQ,MAAK,MAAK,EAAA,CAC/B,sBAEC,QAAA,EAAK,WAAWC,EAAO,MAAM,cAAYK,EAAE,kBAAkB,GAC5D,4BAACN,GAAA,EAAK,MAAK,SAAQ,MAAK,MAAK,GAC/B,EAAA,CAEJ;AAAA,IACCI,EAAM,IAAI,CAACM,GAAMC,MAAU;AAC1B,YAAMC,IAASD,MAAUP,EAAM,SAAS;AACxC,aACE,gBAAAI,EAAC,MAAA,EAAG,WAAWP,EAAO,MACpB,UAAA;AAAA,QAAA,gBAAAF,EAACF,KAAU,WAAAC,GAAsB;AAAA,QAChCY,EAAK,MAAM,CAACE,IACX,gBAAAb,EAACU,GAAA,EAAK,IAAIhB,EAAOiB,EAAK,EAAE,GAAG,WAAWT,EAAO,MAC1C,UAAAS,EAAK,MAAA,CACR,IAEA,gBAAAX,EAAC,QAAA,EAAK,WAAWE,EAAO,SAAS,gBAAcW,IAAS,SAAS,QAC9D,UAAAF,EAAK,MAAA,CACR;AAAA,MAAA,EAAA,GAT6B,GAAGA,EAAK,KAAK,IAAIC,CAAK,EAWvD;AAAA,IAEJ,CAAC;AAAA,EAAA,EAAA,CACH,EAAA,CACF;AAEJ;"}
|
|
@@ -1,2 +1,2 @@
|
|
|
1
|
-
"use strict";const e=require("react/jsx-runtime"),m=require("@tanstack/react-router"),t=require("./Icon-CXTl_QAP.cjs"),b=require("./names-C2Yj1p3u.cjs"),_=require("./Sidebar-
|
|
2
|
-
//# sourceMappingURL=Breadcrumbs-
|
|
1
|
+
"use strict";const e=require("react/jsx-runtime"),m=require("@tanstack/react-router"),t=require("./Icon-CXTl_QAP.cjs"),b=require("./names-C2Yj1p3u.cjs"),_=require("./Sidebar-BfBggyuh.cjs"),d=require("./ConfigProvider-h1WoGC3R.cjs"),h="_breadcrumbs_c3mqv_4",j="_list_c3mqv_8",N="_item_c3mqv_18",q="_home_c3mqv_27",x="_separator_c3mqv_39",v="_link_c3mqv_50",p="_current_c3mqv_61",s={breadcrumbs:h,list:j,item:N,home:q,separator:x,link:v,current:p},u=r=>r,k=new Set(b.ICON_NAMES);function f({separator:r}){return typeof r=="string"&&k.has(r)?e.jsx(t.Icon,{name:r,size:"sm",className:s.separator}):e.jsx("span",{className:s.separator,"aria-hidden":"true",children:r})}function g({separator:r="ArrowRight4"}={}){const{homeTo:i,items:n}=_.useBreadcrumbs(),a=d.useT();return n.length===0?null:e.jsx("nav",{"aria-label":a("breadcrumbs.label"),className:s.breadcrumbs,children:e.jsxs("ol",{className:s.list,children:[e.jsx("li",{className:s.item,children:i?e.jsx(m.Link,{to:u(i),className:s.home,"aria-label":a("breadcrumbs.home"),children:e.jsx(t.Icon,{name:"Home2",size:"sm"})}):e.jsx("span",{className:s.home,"aria-label":a("breadcrumbs.home"),children:e.jsx(t.Icon,{name:"Home2",size:"sm"})})}),n.map((c,o)=>{const l=o===n.length-1;return e.jsxs("li",{className:s.item,children:[e.jsx(f,{separator:r}),c.to&&!l?e.jsx(m.Link,{to:u(c.to),className:s.link,children:c.label}):e.jsx("span",{className:s.current,"aria-current":l?"page":void 0,children:c.label})]},`${c.label}-${o}`)})]})})}exports.Breadcrumbs=g;
|
|
2
|
+
//# sourceMappingURL=Breadcrumbs-f0GE4lCI.cjs.map
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"Breadcrumbs-
|
|
1
|
+
{"version":3,"file":"Breadcrumbs-f0GE4lCI.cjs","sources":["../src/components/Breadcrumbs/Breadcrumbs.tsx"],"sourcesContent":["import type { ReactNode } from 'react'\nimport { Link, type LinkProps } from '@tanstack/react-router'\nimport { useT } from '../../theme'\nimport { Icon } from '../Icon'\nimport { ICON_NAMES, type IconName } from '../../icons/names'\nimport { useBreadcrumbs } from '../Sidebar/Sidebar'\nimport styles from './Breadcrumbs.module.css'\n\nconst linkTo = (to: string) => to as LinkProps['to']\nconst ICON_NAME_SET = new Set<string>(ICON_NAMES)\n\nexport interface BreadcrumbsProps {\n /**\n * Separator between crumbs. A known `IconName` (the default `\"ArrowRight4\"`) renders as an icon; any\n * other string renders as plain text; or pass a node.\n */\n separator?: IconName | ReactNode\n}\n\nfunction Separator({ separator }: { separator: IconName | ReactNode }) {\n if (typeof separator === 'string' && ICON_NAME_SET.has(separator)) {\n return <Icon name={separator as IconName} size=\"sm\" className={styles.separator} />\n }\n return (\n <span className={styles.separator} aria-hidden=\"true\">\n {separator}\n </span>\n )\n}\n\n/**\n * Auto-generated breadcrumb trail for the current route, rendered at the top of `RootLayout`'s\n * content. It always starts with a home icon that links to the first allowed menu page (the same\n * target as `FirstRouteRedirect`), followed by one crumb per matched route that declares a\n * `staticData.name`. Intermediate crumbs link to their page when navigable; the current page is\n * plain text. Renders nothing when the current route has no named matches. Token-only styling.\n */\nexport function Breadcrumbs({ separator = 'ArrowRight4' }: BreadcrumbsProps = {}) {\n const { homeTo, items } = useBreadcrumbs()\n const t = useT()\n if (items.length === 0) return null\n\n return (\n <nav aria-label={t('breadcrumbs.label')} className={styles.breadcrumbs}>\n <ol className={styles.list}>\n <li className={styles.item}>\n {homeTo ? (\n <Link to={linkTo(homeTo)} className={styles.home} aria-label={t('breadcrumbs.home')}>\n <Icon name=\"Home2\" size=\"sm\" />\n </Link>\n ) : (\n <span className={styles.home} aria-label={t('breadcrumbs.home')}>\n <Icon name=\"Home2\" size=\"sm\" />\n </span>\n )}\n </li>\n {items.map((item, index) => {\n const isLast = index === items.length - 1\n return (\n <li className={styles.item} key={`${item.label}-${index}`}>\n <Separator separator={separator} />\n {item.to && !isLast ? (\n <Link to={linkTo(item.to)} className={styles.link}>\n {item.label}\n </Link>\n ) : (\n <span className={styles.current} aria-current={isLast ? 'page' : undefined}>\n {item.label}\n </span>\n )}\n </li>\n )\n })}\n </ol>\n </nav>\n )\n}\n"],"names":["linkTo","to","ICON_NAME_SET","ICON_NAMES","Separator","separator","jsx","Icon","styles","Breadcrumbs","homeTo","items","useBreadcrumbs","t","useT","jsxs","Link","item","index","isLast"],"mappings":"8bAQMA,EAAUC,GAAeA,EACzBC,EAAgB,IAAI,IAAYC,YAAU,EAUhD,SAASC,EAAU,CAAE,UAAAC,GAAkD,CACrE,OAAI,OAAOA,GAAc,UAAYH,EAAc,IAAIG,CAAS,EACvDC,MAACC,EAAAA,MAAK,KAAMF,EAAuB,KAAK,KAAK,UAAWG,EAAO,UAAW,QAGhF,OAAA,CAAK,UAAWA,EAAO,UAAW,cAAY,OAC5C,SAAAH,EACH,CAEJ,CASO,SAASI,EAAY,CAAE,UAAAJ,EAAY,aAAA,EAAoC,CAAA,EAAI,CAChF,KAAM,CAAE,OAAAK,EAAQ,MAAAC,CAAA,EAAUC,iBAAA,EACpBC,EAAIC,EAAAA,KAAA,EACV,OAAIH,EAAM,SAAW,EAAU,KAG7BL,EAAAA,IAAC,MAAA,CAAI,aAAYO,EAAE,mBAAmB,EAAG,UAAWL,EAAO,YACzD,SAAAO,EAAAA,KAAC,KAAA,CAAG,UAAWP,EAAO,KACpB,SAAA,CAAAF,EAAAA,IAAC,MAAG,UAAWE,EAAO,KACnB,SAAAE,EACCJ,EAAAA,IAACU,EAAAA,MAAK,GAAIhB,EAAOU,CAAM,EAAG,UAAWF,EAAO,KAAM,aAAYK,EAAE,kBAAkB,EAChF,eAACN,EAAAA,KAAA,CAAK,KAAK,QAAQ,KAAK,KAAK,CAAA,CAC/B,QAEC,OAAA,CAAK,UAAWC,EAAO,KAAM,aAAYK,EAAE,kBAAkB,EAC5D,eAACN,EAAAA,KAAA,CAAK,KAAK,QAAQ,KAAK,KAAK,EAC/B,CAAA,CAEJ,EACCI,EAAM,IAAI,CAACM,EAAMC,IAAU,CAC1B,MAAMC,EAASD,IAAUP,EAAM,OAAS,EACxC,OACEI,EAAAA,KAAC,KAAA,CAAG,UAAWP,EAAO,KACpB,SAAA,CAAAF,MAACF,GAAU,UAAAC,EAAsB,EAChCY,EAAK,IAAM,CAACE,EACXb,EAAAA,IAACU,EAAAA,KAAA,CAAK,GAAIhB,EAAOiB,EAAK,EAAE,EAAG,UAAWT,EAAO,KAC1C,SAAAS,EAAK,KAAA,CACR,EAEAX,EAAAA,IAAC,OAAA,CAAK,UAAWE,EAAO,QAAS,eAAcW,EAAS,OAAS,OAC9D,SAAAF,EAAK,KAAA,CACR,CAAA,CAAA,EAT6B,GAAGA,EAAK,KAAK,IAAIC,CAAK,EAWvD,CAEJ,CAAC,CAAA,CAAA,CACH,CAAA,CACF,CAEJ"}
|
|
@@ -1,7 +1,7 @@
|
|
|
1
1
|
import { jsxs as z, jsx as s } from "react/jsx-runtime";
|
|
2
2
|
import { forwardRef as W, isValidElement as v, cloneElement as y } from "react";
|
|
3
3
|
import { clsx as B } from "clsx";
|
|
4
|
-
import { L as i } from "./Loader-
|
|
4
|
+
import { L as i } from "./Loader-B9VXX401.js";
|
|
5
5
|
const E = "_button_eb4w2_1", j = "_sm_eb4w2_23", L = "_md_eb4w2_29", N = "_lg_eb4w2_35", $ = "_contained_eb4w2_42", A = "_filled_eb4w2_52", R = "_outlined_eb4w2_61", V = "_text_eb4w2_72", k = "_fullWidth_eb4w2_82", q = "_rounded_eb4w2_86", C = "_disabled_eb4w2_94", D = "_loading_eb4w2_98", F = "_label_eb4w2_103", t = {
|
|
6
6
|
button: E,
|
|
7
7
|
sm: j,
|
|
@@ -69,4 +69,4 @@ const E = "_button_eb4w2_1", j = "_sm_eb4w2_23", L = "_md_eb4w2_29", N = "_lg_eb
|
|
|
69
69
|
export {
|
|
70
70
|
M as B
|
|
71
71
|
};
|
|
72
|
-
//# sourceMappingURL=Button-
|
|
72
|
+
//# sourceMappingURL=Button-BkjZ7wEu.js.map
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"Button-
|
|
1
|
+
{"version":3,"file":"Button-BkjZ7wEu.js","sources":["../src/components/Button/Button.tsx"],"sourcesContent":["import {\n cloneElement,\n forwardRef,\n isValidElement,\n type ButtonHTMLAttributes,\n type CSSProperties,\n type ReactElement,\n type ReactNode,\n} from 'react'\nimport { clsx } from 'clsx'\nimport type { ThemeColor } from '../../theme'\nimport { Loader } from '../Loader'\nimport styles from './Button.module.css'\n\nexport type ButtonVariant = 'contained' | 'filled' | 'outlined' | 'text'\nexport type ButtonSize = 'sm' | 'md' | 'lg'\n\nexport interface ButtonProps extends Omit<ButtonHTMLAttributes<HTMLButtonElement>, 'color'> {\n /** Visual style. `contained` solid · `filled` soft tint · `outlined` border · `text` bare. */\n variant?: ButtonVariant\n /** Theme palette token that tints the button. Defaults to `accent`. */\n color?: ThemeColor\n /** Preset size — drives height (`--tz-control-height-*`), padding and font size. */\n size?: ButtonSize\n /** Shows the loader and blocks interaction (also sets the native `disabled`). The loader replaces the `startIcon` when present, otherwise it trails the label at the end (right) — so a plain button shows the spinner on the right. The text stays visible. */\n loading?: boolean\n /** Stretches the button to fill its container. */\n fullWidth?: boolean\n /** Pill shape (fully rounded corners). */\n rounded?: boolean\n /** Icon before the label. Replaced by the loader while `loading`. */\n startIcon?: ReactNode\n /** Icon after the label. Replaced by the loader while `loading` when no `startIcon` is set. */\n endIcon?: ReactNode\n}\n\nexport const Button = forwardRef<HTMLButtonElement, ButtonProps>(function Button(\n {\n variant = 'contained',\n color = 'accent',\n size = 'md',\n loading = false,\n fullWidth = false,\n rounded = false,\n disabled = false,\n startIcon,\n endIcon,\n className,\n style,\n type = 'button',\n children,\n ...props\n },\n ref,\n) {\n // The loader replaces the start icon when there is one; otherwise it sits at the end (right) —\n // including a plain button with no icons, so the spinner trails the label.\n const loaderAtEnd = loading && !startIcon\n\n // size an icon slot to match the button (an explicit icon `size` still wins)\n const sizeIcon = (node: ReactNode): ReactNode =>\n isValidElement(node)\n ? cloneElement(node as ReactElement<{ size?: ButtonSize }>, {\n size: (node.props as { size?: ButtonSize }).size ?? size,\n })\n : node\n\n return (\n <button\n ref={ref}\n type={type}\n disabled={disabled || loading}\n aria-busy={loading || undefined}\n className={clsx(\n styles.button,\n styles[variant],\n styles[size],\n fullWidth && styles.fullWidth,\n rounded && styles.rounded,\n loading && styles.loading,\n disabled && styles.disabled,\n className,\n )}\n style={\n {\n '--tz-btn-rgb': `var(--tz-color-${color}-rgb)`,\n '--tz-btn-on': `var(--tz-color-${color}-contrast, #fff)`,\n ...style,\n } as CSSProperties\n }\n {...props}\n >\n {/* leading slot — the loader takes the start icon's place while loading */}\n {loading && !loaderAtEnd ? <Loader size={size} aria-hidden=\"true\" /> : sizeIcon(startIcon)}\n {children != null && children !== false && <span className={styles.label}>{children}</span>}\n {/* trailing slot — the loader takes the end icon's place when there's no start icon */}\n {loaderAtEnd ? <Loader size={size} aria-hidden=\"true\" /> : !loading && sizeIcon(endIcon)}\n </button>\n )\n})\n"],"names":["Button","forwardRef","variant","color","size","loading","fullWidth","rounded","disabled","startIcon","endIcon","className","style","type","children","props","ref","loaderAtEnd","sizeIcon","node","isValidElement","cloneElement","jsxs","clsx","styles","jsx","Loader"],"mappings":";;;;;;;;;;;;;;;;;;GAoCaA,IAASC,EAA2C,SAC/D;AAAA,EACE,SAAAC,IAAU;AAAA,EACV,OAAAC,IAAQ;AAAA,EACR,MAAAC,IAAO;AAAA,EACP,SAAAC,IAAU;AAAA,EACV,WAAAC,IAAY;AAAA,EACZ,SAAAC,IAAU;AAAA,EACV,UAAAC,IAAW;AAAA,EACX,WAAAC;AAAA,EACA,SAAAC;AAAA,EACA,WAAAC;AAAA,EACA,OAAAC;AAAA,EACA,MAAAC,IAAO;AAAA,EACP,UAAAC;AAAA,EACA,GAAGC;AACL,GACAC,GACA;AAGA,QAAMC,IAAcZ,KAAW,CAACI,GAG1BS,IAAW,CAACC,MAChBC,EAAeD,CAAI,IACfE,EAAaF,GAA6C;AAAA,IACxD,MAAOA,EAAK,MAAgC,QAAQf;AAAA,EAAA,CACrD,IACDe;AAEN,SACE,gBAAAG;AAAA,IAAC;AAAA,IAAA;AAAA,MACC,KAAAN;AAAA,MACA,MAAAH;AAAA,MACA,UAAUL,KAAYH;AAAA,MACtB,aAAWA,KAAW;AAAA,MACtB,WAAWkB;AAAA,QACTC,EAAO;AAAA,QACPA,EAAOtB,CAAO;AAAA,QACdsB,EAAOpB,CAAI;AAAA,QACXE,KAAakB,EAAO;AAAA,QACpBjB,KAAWiB,EAAO;AAAA,QAClBnB,KAAWmB,EAAO;AAAA,QAClBhB,KAAYgB,EAAO;AAAA,QACnBb;AAAA,MAAA;AAAA,MAEF,OACE;AAAA,QACE,gBAAgB,kBAAkBR,CAAK;AAAA,QACvC,eAAe,kBAAkBA,CAAK;AAAA,QACtC,GAAGS;AAAA,MAAA;AAAA,MAGN,GAAGG;AAAA,MAGH,UAAA;AAAA,QAAAV,KAAW,CAACY,IAAc,gBAAAQ,EAACC,GAAA,EAAO,MAAAtB,GAAY,eAAY,OAAA,CAAO,IAAKc,EAAST,CAAS;AAAA,QACxFK,KAAY,QAAQA,MAAa,wBAAU,QAAA,EAAK,WAAWU,EAAO,OAAQ,UAAAV,EAAA,CAAS;AAAA,QAEnFG,IAAc,gBAAAQ,EAACC,GAAA,EAAO,MAAAtB,GAAY,eAAY,QAAO,IAAK,CAACC,KAAWa,EAASR,CAAO;AAAA,MAAA;AAAA,IAAA;AAAA,EAAA;AAG7F,CAAC;"}
|
|
@@ -1,2 +1,2 @@
|
|
|
1
|
-
"use strict";const o=require("react/jsx-runtime"),d=require("react"),z=require("clsx"),u=require("./Loader-
|
|
2
|
-
//# sourceMappingURL=Button-
|
|
1
|
+
"use strict";const o=require("react/jsx-runtime"),d=require("react"),z=require("clsx"),u=require("./Loader-B45H2SMP.cjs"),W="_button_eb4w2_1",p="_sm_eb4w2_23",v="_md_eb4w2_29",y="_lg_eb4w2_35",B="_contained_eb4w2_42",E="_filled_eb4w2_52",L="_outlined_eb4w2_61",N="_text_eb4w2_72",R="_fullWidth_eb4w2_82",$="_rounded_eb4w2_86",A="_disabled_eb4w2_94",V="_loading_eb4w2_98",k="_label_eb4w2_103",t={button:W,sm:p,md:v,lg:y,contained:B,filled:E,outlined:L,text:N,fullWidth:R,rounded:$,disabled:A,loading:V,label:k},C=d.forwardRef(function({variant:i="contained",color:_="accent",size:n="md",loading:e=!1,fullWidth:f=!1,rounded:w=!1,disabled:a=!1,startIcon:c,endIcon:m,className:x,style:h,type:j="button",children:l,...g},q){const b=e&&!c,r=s=>d.isValidElement(s)?d.cloneElement(s,{size:s.props.size??n}):s;return o.jsxs("button",{ref:q,type:j,disabled:a||e,"aria-busy":e||void 0,className:z.clsx(t.button,t[i],t[n],f&&t.fullWidth,w&&t.rounded,e&&t.loading,a&&t.disabled,x),style:{"--tz-btn-rgb":`var(--tz-color-${_}-rgb)`,"--tz-btn-on":`var(--tz-color-${_}-contrast, #fff)`,...h},...g,children:[e&&!b?o.jsx(u.Loader,{size:n,"aria-hidden":"true"}):r(c),l!=null&&l!==!1&&o.jsx("span",{className:t.label,children:l}),b?o.jsx(u.Loader,{size:n,"aria-hidden":"true"}):!e&&r(m)]})});exports.Button=C;
|
|
2
|
+
//# sourceMappingURL=Button-Cu0XdnW6.cjs.map
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"Button-
|
|
1
|
+
{"version":3,"file":"Button-Cu0XdnW6.cjs","sources":["../src/components/Button/Button.tsx"],"sourcesContent":["import {\n cloneElement,\n forwardRef,\n isValidElement,\n type ButtonHTMLAttributes,\n type CSSProperties,\n type ReactElement,\n type ReactNode,\n} from 'react'\nimport { clsx } from 'clsx'\nimport type { ThemeColor } from '../../theme'\nimport { Loader } from '../Loader'\nimport styles from './Button.module.css'\n\nexport type ButtonVariant = 'contained' | 'filled' | 'outlined' | 'text'\nexport type ButtonSize = 'sm' | 'md' | 'lg'\n\nexport interface ButtonProps extends Omit<ButtonHTMLAttributes<HTMLButtonElement>, 'color'> {\n /** Visual style. `contained` solid · `filled` soft tint · `outlined` border · `text` bare. */\n variant?: ButtonVariant\n /** Theme palette token that tints the button. Defaults to `accent`. */\n color?: ThemeColor\n /** Preset size — drives height (`--tz-control-height-*`), padding and font size. */\n size?: ButtonSize\n /** Shows the loader and blocks interaction (also sets the native `disabled`). The loader replaces the `startIcon` when present, otherwise it trails the label at the end (right) — so a plain button shows the spinner on the right. The text stays visible. */\n loading?: boolean\n /** Stretches the button to fill its container. */\n fullWidth?: boolean\n /** Pill shape (fully rounded corners). */\n rounded?: boolean\n /** Icon before the label. Replaced by the loader while `loading`. */\n startIcon?: ReactNode\n /** Icon after the label. Replaced by the loader while `loading` when no `startIcon` is set. */\n endIcon?: ReactNode\n}\n\nexport const Button = forwardRef<HTMLButtonElement, ButtonProps>(function Button(\n {\n variant = 'contained',\n color = 'accent',\n size = 'md',\n loading = false,\n fullWidth = false,\n rounded = false,\n disabled = false,\n startIcon,\n endIcon,\n className,\n style,\n type = 'button',\n children,\n ...props\n },\n ref,\n) {\n // The loader replaces the start icon when there is one; otherwise it sits at the end (right) —\n // including a plain button with no icons, so the spinner trails the label.\n const loaderAtEnd = loading && !startIcon\n\n // size an icon slot to match the button (an explicit icon `size` still wins)\n const sizeIcon = (node: ReactNode): ReactNode =>\n isValidElement(node)\n ? cloneElement(node as ReactElement<{ size?: ButtonSize }>, {\n size: (node.props as { size?: ButtonSize }).size ?? size,\n })\n : node\n\n return (\n <button\n ref={ref}\n type={type}\n disabled={disabled || loading}\n aria-busy={loading || undefined}\n className={clsx(\n styles.button,\n styles[variant],\n styles[size],\n fullWidth && styles.fullWidth,\n rounded && styles.rounded,\n loading && styles.loading,\n disabled && styles.disabled,\n className,\n )}\n style={\n {\n '--tz-btn-rgb': `var(--tz-color-${color}-rgb)`,\n '--tz-btn-on': `var(--tz-color-${color}-contrast, #fff)`,\n ...style,\n } as CSSProperties\n }\n {...props}\n >\n {/* leading slot — the loader takes the start icon's place while loading */}\n {loading && !loaderAtEnd ? <Loader size={size} aria-hidden=\"true\" /> : sizeIcon(startIcon)}\n {children != null && children !== false && <span className={styles.label}>{children}</span>}\n {/* trailing slot — the loader takes the end icon's place when there's no start icon */}\n {loaderAtEnd ? <Loader size={size} aria-hidden=\"true\" /> : !loading && sizeIcon(endIcon)}\n </button>\n )\n})\n"],"names":["Button","forwardRef","variant","color","size","loading","fullWidth","rounded","disabled","startIcon","endIcon","className","style","type","children","props","ref","loaderAtEnd","sizeIcon","node","isValidElement","cloneElement","jsxs","clsx","styles","jsx","Loader"],"mappings":"8fAoCaA,EAASC,EAAAA,WAA2C,SAC/D,CACE,QAAAC,EAAU,YACV,MAAAC,EAAQ,SACR,KAAAC,EAAO,KACP,QAAAC,EAAU,GACV,UAAAC,EAAY,GACZ,QAAAC,EAAU,GACV,SAAAC,EAAW,GACX,UAAAC,EACA,QAAAC,EACA,UAAAC,EACA,MAAAC,EACA,KAAAC,EAAO,SACP,SAAAC,EACA,GAAGC,CACL,EACAC,EACA,CAGA,MAAMC,EAAcZ,GAAW,CAACI,EAG1BS,EAAYC,GAChBC,EAAAA,eAAeD,CAAI,EACfE,EAAAA,aAAaF,EAA6C,CACxD,KAAOA,EAAK,MAAgC,MAAQf,CAAA,CACrD,EACDe,EAEN,OACEG,EAAAA,KAAC,SAAA,CACC,IAAAN,EACA,KAAAH,EACA,SAAUL,GAAYH,EACtB,YAAWA,GAAW,OACtB,UAAWkB,EAAAA,KACTC,EAAO,OACPA,EAAOtB,CAAO,EACdsB,EAAOpB,CAAI,EACXE,GAAakB,EAAO,UACpBjB,GAAWiB,EAAO,QAClBnB,GAAWmB,EAAO,QAClBhB,GAAYgB,EAAO,SACnBb,CAAA,EAEF,MACE,CACE,eAAgB,kBAAkBR,CAAK,QACvC,cAAe,kBAAkBA,CAAK,mBACtC,GAAGS,CAAA,EAGN,GAAGG,EAGH,SAAA,CAAAV,GAAW,CAACY,EAAcQ,EAAAA,IAACC,SAAA,CAAO,KAAAtB,EAAY,cAAY,MAAA,CAAO,EAAKc,EAAST,CAAS,EACxFK,GAAY,MAAQA,IAAa,UAAU,OAAA,CAAK,UAAWU,EAAO,MAAQ,SAAAV,CAAA,CAAS,EAEnFG,EAAcQ,EAAAA,IAACC,SAAA,CAAO,KAAAtB,EAAY,cAAY,OAAO,EAAK,CAACC,GAAWa,EAASR,CAAO,CAAA,CAAA,CAAA,CAG7F,CAAC"}
|
|
@@ -1,2 +1,2 @@
|
|
|
1
|
-
"use strict";const o=require("react/jsx-runtime"),f=require("react"),j=require("clsx"),E=require("./Icon-CXTl_QAP.cjs"),L=require("./IconButton-
|
|
2
|
-
//# sourceMappingURL=Calendar-
|
|
1
|
+
"use strict";const o=require("react/jsx-runtime"),f=require("react"),j=require("clsx"),E=require("./Icon-CXTl_QAP.cjs"),L=require("./IconButton-DyRC514t.cjs"),r=require("./DatePicker.module-tE-tGNBd.cjs"),z=require("./ConfigProvider-h1WoGC3R.cjs");function T(n,s){if(n&&n.isSame(s,"month"))return n;const i=r.today();return i.isSame(s,"month")?i:s.startOf("month")}const A=3;function H({value:n,month:s,onMonthChange:i,onSelect:I,min:p,max:b,disabledDate:K,weekStartsOn:S,autoFocus:O,labelId:k}){const m=z.useT(),[l,N]=f.useState("day"),[a,u]=f.useState(()=>T(n,s)),h=f.useRef(null),d=f.useRef(!!O);f.useEffect(()=>{u(e=>e.isSame(s,"month")?e:T(n,s))},[s]),f.useEffect(()=>{var t,c;if(!d.current)return;d.current=!1;const e=(t=h.current)==null?void 0:t.querySelector('[tabindex="0"]');e==null||e.focus(),(c=e==null?void 0:e.scrollIntoView)==null||c.call(e,{block:"nearest"})},[a,l,s]);const R=e=>{d.current=!0,N(e)},y=e=>{d.current=!0,e.isSame(s,"month")||i(e.startOf("month")),u(e)},w=e=>{const t=a.add(e,"month");d.current=!0,u(t),i(t.startOf("month"))},D=e=>{let t=a.year()+e;p&&(t=Math.max(t,p.year())),b&&(t=Math.min(t,b.year()));const c=a.year(t);d.current=!0,u(c),i(c.startOf("month"))},q=e=>{const t=s.year(e);d.current=!0,u(t),i(t),N("month")},g=e=>{const t=s.month(e);d.current=!0,u(T(n,t)),i(t),N("day")},G=e=>{const t=(a.day()-S+7)%7;switch(e.key){case"ArrowLeft":e.preventDefault(),y(a.subtract(1,"day"));break;case"ArrowRight":e.preventDefault(),y(a.add(1,"day"));break;case"ArrowUp":e.preventDefault(),y(a.subtract(7,"day"));break;case"ArrowDown":e.preventDefault(),y(a.add(7,"day"));break;case"Home":e.preventDefault(),y(a.subtract(t,"day"));break;case"End":e.preventDefault(),y(a.add(6-t,"day"));break;case"PageUp":e.preventDefault(),y(a.subtract(1,e.shiftKey?"year":"month"));break;case"PageDown":e.preventDefault(),y(a.add(1,e.shiftKey?"year":"month"));break;case"Enter":case" ":e.preventDefault(),r.isDisabled(a,p,b,K)||I(r.toISO(a));break}},P=e=>{switch(e.key){case"ArrowLeft":e.preventDefault(),w(-1);break;case"ArrowRight":e.preventDefault(),w(1);break;case"ArrowUp":e.preventDefault(),w(-A);break;case"ArrowDown":e.preventDefault(),w(A);break;case"Enter":case" ":e.preventDefault(),g(a.month());break}},_=e=>{switch(e.key){case"ArrowLeft":e.preventDefault(),D(-1);break;case"ArrowRight":e.preventDefault(),D(1);break;case"ArrowUp":e.preventDefault(),D(-A);break;case"ArrowDown":e.preventDefault(),D(A);break;case"Enter":case" ":e.preventDefault(),q(a.year());break}},B=r.today(),Y=e=>m(`calendar.month${e}`),v=Array.from({length:7},(e,t)=>m(`calendar.weekday${(S+t)%7}`)),U=l==="day"?r.buildMonthGrid(s,S):[],$=l==="month"?Array.from({length:12},(e,t)=>Y(t)):[],M=l==="year"?r.yearList(p,b,s.year()):[];return o.jsxs("div",{className:r.styles.calendar,children:[o.jsxs("div",{className:r.styles.calHeader,children:[l==="day"&&o.jsx(L.IconButton,{variant:"text",color:"primary",size:"sm","aria-label":m("calendar.prevMonth"),onClick:()=>i(s.subtract(1,"month")),children:o.jsx(E.Icon,{name:"ArrowCircleLeft"})}),o.jsxs("div",{className:r.styles.calTitleGroup,children:[(l==="day"||l==="month")&&o.jsx("button",{type:"button",id:k,className:r.styles.calTitle,onClick:()=>R("year"),children:s.format("YYYY")}),l==="day"&&o.jsx("button",{type:"button",className:r.styles.calTitle,onClick:()=>R("month"),children:Y(s.month())}),l==="year"&&o.jsx("span",{id:k,className:r.styles.calTitleStatic,children:m("calendar.selectYear")})]}),l==="day"&&o.jsx(L.IconButton,{variant:"text",color:"primary",size:"sm","aria-label":m("calendar.nextMonth"),onClick:()=>i(s.add(1,"month")),children:o.jsx(E.Icon,{name:"ArrowCircleRight"})})]}),l==="year"?o.jsx("div",{ref:h,className:j.clsx(r.styles.pickGrid,r.styles.pickScroll),role:"listbox","aria-labelledby":k,onKeyDown:_,children:M.map(e=>{const t=n?n.year()===e:!1;return o.jsx("button",{type:"button",role:"option",className:j.clsx(r.styles.pickCell,t&&r.styles.pickSelected,!t&&e===B.year()&&r.styles.pickToday),tabIndex:e===a.year()?0:-1,"aria-selected":t,onClick:()=>q(e),children:e},e)})}):l==="month"?o.jsx("div",{ref:h,className:r.styles.pickGrid,role:"listbox","aria-labelledby":k,onKeyDown:P,children:$.map((e,t)=>{const c=n?n.isSame(s.month(t),"month"):!1,x=B.isSame(s.month(t),"month");return o.jsx("button",{type:"button",role:"option",className:j.clsx(r.styles.pickCell,c&&r.styles.pickSelected,!c&&x&&r.styles.pickToday),tabIndex:t===a.month()?0:-1,"aria-selected":c,onClick:()=>g(t),children:e},e)})}):o.jsxs("div",{ref:h,className:r.styles.grid,role:"grid","aria-label":`${Y(s.month())} ${s.format("YYYY")}`,onKeyDown:G,children:[o.jsx("div",{className:r.styles.weekdays,role:"row",children:v.map((e,t)=>o.jsx("span",{role:"columnheader",className:r.styles.weekday,children:e},t))}),Array.from({length:6},(e,t)=>o.jsx("div",{role:"row",className:r.styles.week,children:U.slice(t*7,t*7+7).map(c=>{const x=n?c.date.isSame(n,"day"):!1,C=r.isDisabled(c.date,p,b,K);return o.jsx("button",{type:"button",role:"gridcell",className:j.clsx(r.styles.day,!c.inMonth&&r.styles.dayOutside,x&&r.styles.daySelected,c.isToday&&r.styles.dayToday,C&&r.styles.dayDisabled),tabIndex:c.date.isSame(a,"day")?0:-1,"aria-selected":x,"aria-disabled":C||void 0,"aria-current":c.isToday?"date":void 0,onClick:()=>!C&&I(c.iso),children:c.date.date()},c.iso)})},t))]})]})}exports.Calendar=H;
|
|
2
|
+
//# sourceMappingURL=Calendar-CGQCditF.cjs.map
|