@commercetools/nimbus 0.0.0-canary-20250902075758 → 0.0.0-canary-20250902091333
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/chunks/{Button-Bh-FLo_8.cjs.js → Button-BtJHe9xY.cjs.js} +2 -2
- package/dist/chunks/{Button-Bh-FLo_8.cjs.js.map → Button-BtJHe9xY.cjs.js.map} +1 -1
- package/dist/chunks/{Button--gemnXF8.es.js → Button-CNBS3n5a.es.js} +3 -3
- package/dist/chunks/{Button--gemnXF8.es.js.map → Button-CNBS3n5a.es.js.map} +1 -1
- package/dist/chunks/{DateField-DVzmD_D6.es.js → DateField-Dm2Qlhbk.es.js} +71 -58
- package/dist/chunks/DateField-Dm2Qlhbk.es.js.map +1 -0
- package/dist/chunks/DateField-rweHHCKR.cjs.js +2 -0
- package/dist/chunks/DateField-rweHHCKR.cjs.js.map +1 -0
- package/dist/chunks/DatePicker-BdV6ICAm.cjs.js +2 -0
- package/dist/chunks/DatePicker-BdV6ICAm.cjs.js.map +1 -0
- package/dist/chunks/{DatePicker-_A7-hp_b.es.js → DatePicker-BthC1bZ_.es.js} +109 -105
- package/dist/chunks/DatePicker-BthC1bZ_.es.js.map +1 -0
- package/dist/chunks/Dialog-BeQ6Z6l2.es.js +1924 -0
- package/dist/chunks/Dialog-BeQ6Z6l2.es.js.map +1 -0
- package/dist/chunks/Dialog-CYa26HlL.cjs.js +2 -0
- package/dist/chunks/Dialog-CYa26HlL.cjs.js.map +1 -0
- package/dist/chunks/DragAndDrop-ChYb3tCX.es.js.map +1 -1
- package/dist/chunks/DragAndDrop-cOfUfFj8.cjs.js.map +1 -1
- package/dist/chunks/FieldError-CXcEMuBf.es.js.map +1 -1
- package/dist/chunks/FieldError-DyGFfqST.cjs.js.map +1 -1
- package/dist/chunks/FocusScope-CNO0fzPs.es.js.map +1 -1
- package/dist/chunks/FocusScope-DPn5XtSy.cjs.js.map +1 -1
- package/dist/chunks/Form-BuOomA4T.cjs.js.map +1 -1
- package/dist/chunks/Form-CXcEMuBf.es.js.map +1 -1
- package/dist/chunks/Group-Cfixd-fh.es.js.map +1 -1
- package/dist/chunks/Group-MdeByg6t.cjs.js.map +1 -1
- package/dist/chunks/{Heading-BI5vqfiY.cjs.js → Heading-BaW6t55l.cjs.js} +2 -2
- package/dist/chunks/{Heading-BI5vqfiY.cjs.js.map → Heading-BaW6t55l.cjs.js.map} +1 -1
- package/dist/chunks/{Heading-sepFdCCa.es.js → Heading-DEfy_f01.es.js} +5 -5
- package/dist/chunks/{Heading-sepFdCCa.es.js.map → Heading-DEfy_f01.es.js.map} +1 -1
- package/dist/chunks/Hidden-CNJIJ63M.cjs.js.map +1 -1
- package/dist/chunks/Hidden-j3Lbt7xL.es.js.map +1 -1
- package/dist/chunks/Input-BiHwUBo4.es.js.map +1 -1
- package/dist/chunks/Input-HBDt7LmM.cjs.js.map +1 -1
- package/dist/chunks/Keyboard-Clnp4zAC.es.js.map +1 -1
- package/dist/chunks/Keyboard-rYf2KxZN.cjs.js.map +1 -1
- package/dist/chunks/Label-B2YyCdLl.es.js.map +1 -1
- package/dist/chunks/Label-BgrYyYXn.cjs.js.map +1 -1
- package/dist/chunks/ListBox-CikEmFBx.cjs.js +2 -0
- package/dist/chunks/ListBox-CikEmFBx.cjs.js.map +1 -0
- package/dist/chunks/ListBox-DF3NHeEX.es.js +605 -0
- package/dist/chunks/ListBox-DF3NHeEX.es.js.map +1 -0
- package/dist/chunks/NumberFormatter-DewVDY5w.cjs.js.map +1 -1
- package/dist/chunks/NumberFormatter-DgOUVrge.es.js.map +1 -1
- package/dist/chunks/OverlayArrow-CYjyBtg8.cjs.js +2 -0
- package/dist/chunks/OverlayArrow-CYjyBtg8.cjs.js.map +1 -0
- package/dist/chunks/OverlayArrow-sJzRZNbO.es.js +491 -0
- package/dist/chunks/OverlayArrow-sJzRZNbO.es.js.map +1 -0
- package/dist/chunks/{ProgressBar-BNPexoD9.cjs.js → ProgressBar-BA3sLh1k.cjs.js} +2 -2
- package/dist/chunks/{ProgressBar-BNPexoD9.cjs.js.map → ProgressBar-BA3sLh1k.cjs.js.map} +1 -1
- package/dist/chunks/{ProgressBar-BnGsEC_2.es.js → ProgressBar-DjaUQI7N.es.js} +2 -2
- package/dist/chunks/{ProgressBar-BnGsEC_2.es.js.map → ProgressBar-DjaUQI7N.es.js.map} +1 -1
- package/dist/chunks/RSPContexts-B4yvXuBR.es.js.map +1 -1
- package/dist/chunks/RSPContexts-CkSl9jRK.cjs.js.map +1 -1
- package/dist/chunks/SSRProvider-Bc-sMhsT.cjs.js.map +1 -1
- package/dist/chunks/SSRProvider-Cu8KibIK.es.js.map +1 -1
- package/dist/chunks/{Collection-Df3FPouy.es.js → SelectionManager-CLyu96pU.es.js} +627 -577
- package/dist/chunks/SelectionManager-CLyu96pU.es.js.map +1 -0
- package/dist/chunks/SelectionManager-Mrwf4SFv.cjs.js +18 -0
- package/dist/chunks/SelectionManager-Mrwf4SFv.cjs.js.map +1 -0
- package/dist/chunks/Separator-3-E2tRbk.es.js +92 -0
- package/dist/chunks/Separator-3-E2tRbk.es.js.map +1 -0
- package/dist/chunks/Separator-CAOg-vqY.cjs.js +2 -0
- package/dist/chunks/Separator-CAOg-vqY.cjs.js.map +1 -0
- package/dist/chunks/Text-BWSfeB9p.cjs.js.map +1 -1
- package/dist/chunks/Text-DOcU1ycg.es.js.map +1 -1
- package/dist/chunks/TextArea-BmpgvS0R.es.js.map +1 -1
- package/dist/chunks/TextArea-D3FFXnUy.cjs.js.map +1 -1
- package/dist/chunks/{ToggleButton-BoIyPi3U.es.js → ToggleButton-C3JL0pgD.es.js} +3 -3
- package/dist/chunks/{ToggleButton-BoIyPi3U.es.js.map → ToggleButton-C3JL0pgD.es.js.map} +1 -1
- package/dist/chunks/{ToggleButton-By3cqA7R.cjs.js → ToggleButton-CPAdPTCr.cjs.js} +2 -2
- package/dist/chunks/{ToggleButton-By3cqA7R.cjs.js.map → ToggleButton-CPAdPTCr.cjs.js.map} +1 -1
- package/dist/chunks/VisuallyHidden-Bv_AJXZ7.cjs.js.map +1 -1
- package/dist/chunks/VisuallyHidden-VHEPK04F.es.js.map +1 -1
- package/dist/chunks/{accordion-CAC36XIK.cjs.js → accordion-Be--VNW6.cjs.js} +2 -2
- package/dist/chunks/{accordion-CAC36XIK.cjs.js.map → accordion-Be--VNW6.cjs.js.map} +1 -1
- package/dist/chunks/{accordion-8XmJkF18.es.js → accordion-Drl_Y6QC.es.js} +4 -4
- package/dist/chunks/{accordion-8XmJkF18.es.js.map → accordion-Drl_Y6QC.es.js.map} +1 -1
- package/dist/chunks/{alert-CbAPX3xQ.es.js → alert-CTCZ5bln.es.js} +5 -5
- package/dist/chunks/{alert-CbAPX3xQ.es.js.map → alert-CTCZ5bln.es.js.map} +1 -1
- package/dist/chunks/{alert-STlW7NU8.cjs.js → alert-_ZQT8Lkj.cjs.js} +2 -2
- package/dist/chunks/{alert-STlW7NU8.cjs.js.map → alert-_ZQT8Lkj.cjs.js.map} +1 -1
- package/dist/chunks/{avatar-mL-2hOve.cjs.js → avatar-DEAravTR.cjs.js} +2 -2
- package/dist/chunks/{avatar-mL-2hOve.cjs.js.map → avatar-DEAravTR.cjs.js.map} +1 -1
- package/dist/chunks/{avatar-B7CMxFNg.es.js → avatar-DXWmY247.es.js} +3 -3
- package/dist/chunks/{avatar-B7CMxFNg.es.js.map → avatar-DXWmY247.es.js.map} +1 -1
- package/dist/chunks/{badge-HHzfG1BI.cjs.js → badge-BjhZ-byo.cjs.js} +2 -2
- package/dist/chunks/{badge-HHzfG1BI.cjs.js.map → badge-BjhZ-byo.cjs.js.map} +1 -1
- package/dist/chunks/{badge-C2elCKPp.es.js → badge-Cg7jASs5.es.js} +2 -2
- package/dist/chunks/{badge-C2elCKPp.es.js.map → badge-Cg7jASs5.es.js.map} +1 -1
- package/dist/chunks/{box-C8731OYq.es.js → box-BK_2R49p.es.js} +2 -2
- package/dist/chunks/{box-C8731OYq.es.js.map → box-BK_2R49p.es.js.map} +1 -1
- package/dist/chunks/{box-BPfqlznQ.cjs.js → box-BwCVnAwb.cjs.js} +2 -2
- package/dist/chunks/{box-BPfqlznQ.cjs.js.map → box-BwCVnAwb.cjs.js.map} +1 -1
- package/dist/chunks/{button-_TqIjVy-.es.js → button-CXRRo1Zo.es.js} +5 -5
- package/dist/chunks/{button-_TqIjVy-.es.js.map → button-CXRRo1Zo.es.js.map} +1 -1
- package/dist/chunks/{button-CtWoT2k5.cjs.js → button-DYpzmnga.cjs.js} +2 -2
- package/dist/chunks/{button-CtWoT2k5.cjs.js.map → button-DYpzmnga.cjs.js.map} +1 -1
- package/dist/chunks/{calendar-DFhIC3YS.cjs.js → calendar-D7q7B1ej.cjs.js} +2 -2
- package/dist/chunks/{calendar-DFhIC3YS.cjs.js.map → calendar-D7q7B1ej.cjs.js.map} +1 -1
- package/dist/chunks/{calendar-Cgm2jctu.es.js → calendar-DAPG3st4.es.js} +12 -12
- package/dist/chunks/{calendar-Cgm2jctu.es.js.map → calendar-DAPG3st4.es.js.map} +1 -1
- package/dist/chunks/{card-R8oaAKgo.es.js → card-DX8r4prk.es.js} +3 -3
- package/dist/chunks/{card-R8oaAKgo.es.js.map → card-DX8r4prk.es.js.map} +1 -1
- package/dist/chunks/{card-CHfjhPF8.cjs.js → card-DgvP36g1.cjs.js} +2 -2
- package/dist/chunks/{card-CHfjhPF8.cjs.js.map → card-DgvP36g1.cjs.js.map} +1 -1
- package/dist/chunks/{checkbox-pYAJn7HX.cjs.js → checkbox-Bfms-o7I.cjs.js} +2 -2
- package/dist/chunks/{checkbox-pYAJn7HX.cjs.js.map → checkbox-Bfms-o7I.cjs.js.map} +1 -1
- package/dist/chunks/{checkbox-Ce37pKIe.es.js → checkbox-KT-n-5er.es.js} +2 -2
- package/dist/chunks/{checkbox-Ce37pKIe.es.js.map → checkbox-KT-n-5er.es.js.map} +1 -1
- package/dist/chunks/code-C3WbF6Qh.cjs.js +2 -0
- package/dist/chunks/{code-CTuEvrXA.cjs.js.map → code-C3WbF6Qh.cjs.js.map} +1 -1
- package/dist/chunks/{code-CieYW1ER.es.js → code-DM_AtVy-.es.js} +2 -2
- package/dist/chunks/{code-CieYW1ER.es.js.map → code-DM_AtVy-.es.js.map} +1 -1
- package/dist/chunks/combobox-BOXZUeIh.cjs.js +2 -0
- package/dist/chunks/combobox-BOXZUeIh.cjs.js.map +1 -0
- package/dist/chunks/combobox-DpnWEs47.es.js +2392 -0
- package/dist/chunks/combobox-DpnWEs47.es.js.map +1 -0
- package/dist/chunks/config-Mt8_uyhI.cjs.js.map +1 -1
- package/dist/chunks/config-ufbQ08Vi.es.js.map +1 -1
- package/dist/chunks/context-OoV8SSWX.cjs.js +2 -0
- package/dist/chunks/{context-D0_cRaDZ.cjs.js.map → context-OoV8SSWX.cjs.js.map} +1 -1
- package/dist/chunks/context-R4YUlO9Y.es.js +108 -0
- package/dist/chunks/{context-Pt-0ojuK.es.js.map → context-R4YUlO9Y.es.js.map} +1 -1
- package/dist/chunks/{create-recipe-context-i2odau3L.es.js → create-recipe-context-CrNaylZN.es.js} +4 -4
- package/dist/chunks/{create-recipe-context-i2odau3L.es.js.map → create-recipe-context-CrNaylZN.es.js.map} +1 -1
- package/dist/chunks/{create-recipe-context-D0_lCuqq.cjs.js → create-recipe-context-bXYFTZLs.cjs.js} +2 -2
- package/dist/chunks/{create-recipe-context-D0_lCuqq.cjs.js.map → create-recipe-context-bXYFTZLs.cjs.js.map} +1 -1
- package/dist/chunks/{create-slot-recipe-context-DBNItnlK.es.js → create-slot-recipe-context--T0CaFjW.es.js} +3 -3
- package/dist/chunks/{create-slot-recipe-context-DBNItnlK.es.js.map → create-slot-recipe-context--T0CaFjW.es.js.map} +1 -1
- package/dist/chunks/{create-slot-recipe-context-HIF51Igr.cjs.js → create-slot-recipe-context-CimocFDH.cjs.js} +2 -2
- package/dist/chunks/{create-slot-recipe-context-HIF51Igr.cjs.js.map → create-slot-recipe-context-CimocFDH.cjs.js.map} +1 -1
- package/dist/chunks/{data-table-BvYN1Stn.es.js → data-table-CkldF9nZ.es.js} +1612 -1564
- package/dist/chunks/data-table-CkldF9nZ.es.js.map +1 -0
- package/dist/chunks/data-table-DPetwlWs.cjs.js +2 -0
- package/dist/chunks/data-table-DPetwlWs.cjs.js.map +1 -0
- package/dist/chunks/{date-input-BmKSBIL2.cjs.js → date-input-jXS-SVpU.cjs.js} +2 -2
- package/dist/chunks/{date-input-BmKSBIL2.cjs.js.map → date-input-jXS-SVpU.cjs.js.map} +1 -1
- package/dist/chunks/{date-input-DFx77xwE.es.js → date-input-wQ1WdB4N.es.js} +4 -4
- package/dist/chunks/{date-input-DFx77xwE.es.js.map → date-input-wQ1WdB4N.es.js.map} +1 -1
- package/dist/chunks/{date-picker-CsGYO3HW.cjs.js → date-picker-CDbiNEBg.cjs.js} +2 -2
- package/dist/chunks/{date-picker-CsGYO3HW.cjs.js.map → date-picker-CDbiNEBg.cjs.js.map} +1 -1
- package/dist/chunks/{date-picker-BzkAJfXO.es.js → date-picker-Do5hNEe5.es.js} +13 -13
- package/dist/chunks/{date-picker-BzkAJfXO.es.js.map → date-picker-Do5hNEe5.es.js.map} +1 -1
- package/dist/chunks/{date-range-picker-uomzPtYK.cjs.js → date-range-picker-Bq6Wkwwo.cjs.js} +2 -2
- package/dist/chunks/{date-range-picker-uomzPtYK.cjs.js.map → date-range-picker-Bq6Wkwwo.cjs.js.map} +1 -1
- package/dist/chunks/{date-range-picker-B1Sxvj0C.es.js → date-range-picker-DhX5QVXh.es.js} +13 -13
- package/dist/chunks/{date-range-picker-B1Sxvj0C.es.js.map → date-range-picker-DhX5QVXh.es.js.map} +1 -1
- package/dist/chunks/dialog-BQa_NWSr.cjs.js +2 -0
- package/dist/chunks/dialog-BQa_NWSr.cjs.js.map +1 -0
- package/dist/chunks/dialog-D4u5so0e.es.js +1912 -0
- package/dist/chunks/dialog-D4u5so0e.es.js.map +1 -0
- package/dist/chunks/{divider-CpctZ_-U.es.js → divider-Cjs3ESH7.es.js} +2 -2
- package/dist/chunks/{divider-CpctZ_-U.es.js.map → divider-Cjs3ESH7.es.js.map} +1 -1
- package/dist/chunks/{divider-CTTExmLv.cjs.js → divider-DU351gdE.cjs.js} +2 -2
- package/dist/chunks/{divider-CTTExmLv.cjs.js.map → divider-DU351gdE.cjs.js.map} +1 -1
- package/dist/chunks/empty-B5_AO6Pg.cjs.js.map +1 -1
- package/dist/chunks/empty-D7ZFmvo6.es.js.map +1 -1
- package/dist/chunks/{factory-DlCuwIGL.cjs.js → factory-CVGqU9CD.cjs.js} +2 -2
- package/dist/chunks/{factory-DlCuwIGL.cjs.js.map → factory-CVGqU9CD.cjs.js.map} +1 -1
- package/dist/chunks/{factory-BpxiKxSs.es.js → factory-DmIX2puY.es.js} +2 -2
- package/dist/chunks/{factory-BpxiKxSs.es.js.map → factory-DmIX2puY.es.js.map} +1 -1
- package/dist/chunks/filterDOMProps-BSVCO5jK.es.js.map +1 -1
- package/dist/chunks/filterDOMProps-WUskt27c.cjs.js.map +1 -1
- package/dist/chunks/{flex-B81RbgfK.es.js → flex-BFC_f5BH.es.js} +2 -2
- package/dist/chunks/{flex-B81RbgfK.es.js.map → flex-BFC_f5BH.es.js.map} +1 -1
- package/dist/chunks/{flex-BhVeeItQ.cjs.js → flex-yqydM5z_.cjs.js} +2 -2
- package/dist/chunks/{flex-BhVeeItQ.cjs.js.map → flex-yqydM5z_.cjs.js.map} +1 -1
- package/dist/chunks/focusSafely-DJpphVHF.es.js.map +1 -1
- package/dist/chunks/focusSafely-jDMW9aEx.cjs.js.map +1 -1
- package/dist/chunks/focusWithoutScrolling-BlyUcXdY.cjs.js.map +1 -1
- package/dist/chunks/focusWithoutScrolling-CDw3JYiq.es.js.map +1 -1
- package/dist/chunks/{form-field-B1B4BtvO.es.js → form-field-B8N-bvac.es.js} +5 -5
- package/dist/chunks/{form-field-B1B4BtvO.es.js.map → form-field-B8N-bvac.es.js.map} +1 -1
- package/dist/chunks/{form-field-6_jyAhgo.cjs.js → form-field-CH2EUQMc.cjs.js} +2 -2
- package/dist/chunks/{form-field-6_jyAhgo.cjs.js.map → form-field-CH2EUQMc.cjs.js.map} +1 -1
- package/dist/chunks/{grid-Cdmh4YaF.es.js → grid-B3Ggy_FW.es.js} +2 -2
- package/dist/chunks/{grid-Cdmh4YaF.es.js.map → grid-B3Ggy_FW.es.js.map} +1 -1
- package/dist/chunks/{grid-CWdLtU5p.cjs.js → grid-CXpKN2OR.cjs.js} +2 -2
- package/dist/chunks/{grid-CWdLtU5p.cjs.js.map → grid-CXpKN2OR.cjs.js.map} +1 -1
- package/dist/chunks/{grid-item-CJHf3veC.cjs.js → grid-item-CGwfSnm7.cjs.js} +2 -2
- package/dist/chunks/{grid-item-CJHf3veC.cjs.js.map → grid-item-CGwfSnm7.cjs.js.map} +1 -1
- package/dist/chunks/{grid-item-CpPkpUVF.es.js → grid-item-DuAynDd1.es.js} +3 -3
- package/dist/chunks/{grid-item-CpPkpUVF.es.js.map → grid-item-DuAynDd1.es.js.map} +1 -1
- package/dist/chunks/{icon-DTe62Nqz.es.js → icon-BDsjJ4Zi.es.js} +2 -2
- package/dist/chunks/{icon-DTe62Nqz.es.js.map → icon-BDsjJ4Zi.es.js.map} +1 -1
- package/dist/chunks/{icon-C_BZeqkm.cjs.js → icon-DHoLo7_S.cjs.js} +2 -2
- package/dist/chunks/{icon-C_BZeqkm.cjs.js.map → icon-DHoLo7_S.cjs.js.map} +1 -1
- package/dist/chunks/{icon-button-Dqhm4rBI.cjs.js → icon-button-1MQYEWVd.cjs.js} +2 -2
- package/dist/chunks/{icon-button-Dqhm4rBI.cjs.js.map → icon-button-1MQYEWVd.cjs.js.map} +1 -1
- package/dist/chunks/{icon-button-oIKucbza.es.js → icon-button-Bp92vS0I.es.js} +2 -2
- package/dist/chunks/{icon-button-oIKucbza.es.js.map → icon-button-Bp92vS0I.es.js.map} +1 -1
- package/dist/chunks/{icon-toggle-button-DIfDVDd4.cjs.js → icon-toggle-button-D42wYTJF.cjs.js} +2 -2
- package/dist/chunks/{icon-toggle-button-DIfDVDd4.cjs.js.map → icon-toggle-button-D42wYTJF.cjs.js.map} +1 -1
- package/dist/chunks/{icon-toggle-button-BYKHQRsq.es.js → icon-toggle-button-D7N1RxnR.es.js} +2 -2
- package/dist/chunks/{icon-toggle-button-BYKHQRsq.es.js.map → icon-toggle-button-D7N1RxnR.es.js.map} +1 -1
- package/dist/chunks/{image-BP9LcU28.cjs.js → image-B3ISQSVL.cjs.js} +2 -2
- package/dist/chunks/{image-BP9LcU28.cjs.js.map → image-B3ISQSVL.cjs.js.map} +1 -1
- package/dist/chunks/{image-BycsRl2K.es.js → image-CwcCZREa.es.js} +2 -2
- package/dist/chunks/{image-BycsRl2K.es.js.map → image-CwcCZREa.es.js.map} +1 -1
- package/dist/chunks/{image-B2WbQ5hi.es.js → image-MeWmLoV0.es.js} +2 -2
- package/dist/chunks/{image-B2WbQ5hi.es.js.map → image-MeWmLoV0.es.js.map} +1 -1
- package/dist/chunks/image-bt28epM5.cjs.js +2 -0
- package/dist/chunks/{image-BAqoLZQB.cjs.js.map → image-bt28epM5.cjs.js.map} +1 -1
- package/dist/chunks/{index-0CyuQQet.es.js → index-46Tt2Ww4.es.js} +2 -2
- package/dist/chunks/{index-0CyuQQet.es.js.map → index-46Tt2Ww4.es.js.map} +1 -1
- package/dist/chunks/index-BYEAMD8A.cjs.js +2 -0
- package/dist/chunks/{index-x9OhLGGf.cjs.js.map → index-BYEAMD8A.cjs.js.map} +1 -1
- package/dist/chunks/intlStrings-Cd44R5hT.es.js.map +1 -1
- package/dist/chunks/intlStrings-ClBuC6xN.cjs.js.map +1 -1
- package/dist/chunks/{kbd-CDEXQyg2.es.js → kbd-Bc97Bwq3.es.js} +2 -2
- package/dist/chunks/{kbd-CDEXQyg2.es.js.map → kbd-Bc97Bwq3.es.js.map} +1 -1
- package/dist/chunks/{kbd-DP3lZ80W.cjs.js → kbd-BlZ2RGfa.cjs.js} +2 -2
- package/dist/chunks/{kbd-DP3lZ80W.cjs.js.map → kbd-BlZ2RGfa.cjs.js.map} +1 -1
- package/dist/chunks/{link-BoUhLeO-.es.js → link-DjzrPyx3.es.js} +2 -2
- package/dist/chunks/{link-BoUhLeO-.es.js.map → link-DjzrPyx3.es.js.map} +1 -1
- package/dist/chunks/{link-DTUiEXYJ.cjs.js → link-DzUonoQg.cjs.js} +2 -2
- package/dist/chunks/{link-DTUiEXYJ.cjs.js.map → link-DzUonoQg.cjs.js.map} +1 -1
- package/dist/chunks/{list-x423RThD.es.js → list-BTkkDy6B.es.js} +2 -2
- package/dist/chunks/{list-x423RThD.es.js.map → list-BTkkDy6B.es.js.map} +1 -1
- package/dist/chunks/{list-r1G4iBXo.cjs.js → list-DokC0Ks-.cjs.js} +2 -2
- package/dist/chunks/{list-r1G4iBXo.cjs.js.map → list-DokC0Ks-.cjs.js.map} +1 -1
- package/dist/chunks/{loading-spinner-C7yZE-QF.es.js → loading-spinner-DuBf2cIy.es.js} +3 -3
- package/dist/chunks/{loading-spinner-C7yZE-QF.es.js.map → loading-spinner-DuBf2cIy.es.js.map} +1 -1
- package/dist/chunks/{loading-spinner-BLDpwNFm.cjs.js → loading-spinner-VVQyl725.cjs.js} +2 -2
- package/dist/chunks/{loading-spinner-BLDpwNFm.cjs.js.map → loading-spinner-VVQyl725.cjs.js.map} +1 -1
- package/dist/chunks/{menu-BZWMAG92.es.js → menu-DFrwX16L.es.js} +25 -25
- package/dist/chunks/{menu-BZWMAG92.es.js.map → menu-DFrwX16L.es.js.map} +1 -1
- package/dist/chunks/menu-DHZ-kLy2.cjs.js +2 -0
- package/dist/chunks/{menu-C41LRy4b.cjs.js.map → menu-DHZ-kLy2.cjs.js.map} +1 -1
- package/dist/chunks/mergeProps-BA5Cwf5w.cjs.js.map +1 -1
- package/dist/chunks/mergeProps-B_9syxhT.es.js.map +1 -1
- package/dist/chunks/{multiline-text-input-Dy6gbL7T.es.js → multiline-text-input-DJUUQQcc.es.js} +3 -3
- package/dist/chunks/{multiline-text-input-Dy6gbL7T.es.js.map → multiline-text-input-DJUUQQcc.es.js.map} +1 -1
- package/dist/chunks/{multiline-text-input-B5XtIAAO.cjs.js → multiline-text-input-c-ycPy7O.cjs.js} +2 -2
- package/dist/chunks/{multiline-text-input-B5XtIAAO.cjs.js.map → multiline-text-input-c-ycPy7O.cjs.js.map} +1 -1
- package/dist/chunks/{namespace-HxAMZBwF.es.js → namespace---Td8pR2.es.js} +3 -3
- package/dist/chunks/{namespace-HxAMZBwF.es.js.map → namespace---Td8pR2.es.js.map} +1 -1
- package/dist/chunks/{namespace-CYjqWfVn.cjs.js → namespace-CpLmDcCq.cjs.js} +2 -2
- package/dist/chunks/{namespace-CYjqWfVn.cjs.js.map → namespace-CpLmDcCq.cjs.js.map} +1 -1
- package/dist/chunks/{nimbus-provider-Yka95N38.cjs.js → nimbus-provider-CVhVm-aq.cjs.js} +2 -2
- package/dist/chunks/{nimbus-provider-Yka95N38.cjs.js.map → nimbus-provider-CVhVm-aq.cjs.js.map} +1 -1
- package/dist/chunks/{nimbus-provider-C68IpiXi.es.js → nimbus-provider-_f5vEIR_.es.js} +3 -3
- package/dist/chunks/{nimbus-provider-C68IpiXi.es.js.map → nimbus-provider-_f5vEIR_.es.js.map} +1 -1
- package/dist/chunks/number-DHvo-MDe.cjs.js.map +1 -1
- package/dist/chunks/number-dMxJejI6.es.js.map +1 -1
- package/dist/chunks/{number-input-Dm2FFtQx.cjs.js → number-input-BFmnS-UB.cjs.js} +2 -2
- package/dist/chunks/{number-input-Dm2FFtQx.cjs.js.map → number-input-BFmnS-UB.cjs.js.map} +1 -1
- package/dist/chunks/{number-input-BxLU6AgG.es.js → number-input-DloMrtt6.es.js} +8 -8
- package/dist/chunks/{number-input-BxLU6AgG.es.js.map → number-input-DloMrtt6.es.js.map} +1 -1
- package/dist/chunks/openLink-Ctl0AdAy.es.js.map +1 -1
- package/dist/chunks/openLink-DkCJYbzq.cjs.js.map +1 -1
- package/dist/chunks/{password-input-CwWWxcly.cjs.js → password-input-C-tPs6EJ.cjs.js} +2 -2
- package/dist/chunks/{password-input-CwWWxcly.cjs.js.map → password-input-C-tPs6EJ.cjs.js.map} +1 -1
- package/dist/chunks/{password-input-DJjAz3TP.es.js → password-input-CBdBny43.es.js} +5 -5
- package/dist/chunks/{password-input-DJjAz3TP.es.js.map → password-input-CBdBny43.es.js.map} +1 -1
- package/dist/chunks/platform-BDLy2vDY.cjs.js.map +1 -1
- package/dist/chunks/platform-Z5fvtFmM.es.js.map +1 -1
- package/dist/chunks/{progress-bar-CDRI279T.es.js → progress-bar-Dx1MVCsz.es.js} +5 -5
- package/dist/chunks/{progress-bar-CDRI279T.es.js.map → progress-bar-Dx1MVCsz.es.js.map} +1 -1
- package/dist/chunks/{progress-bar-nQCcdv_4.cjs.js → progress-bar-vPPXrzbA.cjs.js} +2 -2
- package/dist/chunks/{progress-bar-nQCcdv_4.cjs.js.map → progress-bar-vPPXrzbA.cjs.js.map} +1 -1
- package/dist/chunks/{provider-DxFdjgyb.es.js → provider-CHFgwvsP.es.js} +3 -3
- package/dist/chunks/provider-CHFgwvsP.es.js.map +1 -0
- package/dist/chunks/provider-DFlBEH6q.cjs.js +16 -0
- package/dist/chunks/provider-DFlBEH6q.cjs.js.map +1 -0
- package/dist/chunks/{radio-input-BXFY8CaT.cjs.js → radio-input-1eswyY0o.cjs.js} +2 -2
- package/dist/chunks/{radio-input-BXFY8CaT.cjs.js.map → radio-input-1eswyY0o.cjs.js.map} +1 -1
- package/dist/chunks/{radio-input-CAogtJP7.es.js → radio-input-D-9Q8REK.es.js} +3 -3
- package/dist/chunks/{radio-input-CAogtJP7.es.js.map → radio-input-D-9Q8REK.es.js.map} +1 -1
- package/dist/chunks/{range-calendar-D-CvB2-1.es.js → range-calendar-B6T5RB2u.es.js} +12 -12
- package/dist/chunks/{range-calendar-D-CvB2-1.es.js.map → range-calendar-B6T5RB2u.es.js.map} +1 -1
- package/dist/chunks/{range-calendar-BuzvPCc1.cjs.js → range-calendar-NhqUtCdU.cjs.js} +2 -2
- package/dist/chunks/{range-calendar-BuzvPCc1.cjs.js.map → range-calendar-NhqUtCdU.cjs.js.map} +1 -1
- package/dist/chunks/{rich-text-input-Dv7OofX2.es.js → rich-text-input-BvYBUkt_.es.js} +12 -12
- package/dist/chunks/{rich-text-input-Dv7OofX2.es.js.map → rich-text-input-BvYBUkt_.es.js.map} +1 -1
- package/dist/chunks/{rich-text-input-Dmp5hx2t.cjs.js → rich-text-input-DXzaZuhE.cjs.js} +2 -2
- package/dist/chunks/{rich-text-input-Dmp5hx2t.cjs.js.map → rich-text-input-DXzaZuhE.cjs.js.map} +1 -1
- package/dist/chunks/scrollIntoView-BYF_8_6g.es.js.map +1 -1
- package/dist/chunks/scrollIntoView-BzIqpHLO.cjs.js.map +1 -1
- package/dist/chunks/select-CXwoEwFo.cjs.js +2 -0
- package/dist/chunks/{select-IUEop3i7.cjs.js.map → select-CXwoEwFo.cjs.js.map} +1 -1
- package/dist/chunks/{select-Dlg0m5Ww.es.js → select-CanxdDbU.es.js} +15 -15
- package/dist/chunks/{select-Dlg0m5Ww.es.js.map → select-CanxdDbU.es.js.map} +1 -1
- package/dist/chunks/{simple-grid-yOwvCBEN.cjs.js → simple-grid-B7BgfVAS.cjs.js} +2 -2
- package/dist/chunks/{simple-grid-yOwvCBEN.cjs.js.map → simple-grid-B7BgfVAS.cjs.js.map} +1 -1
- package/dist/chunks/{simple-grid-Crtlocqj.es.js → simple-grid-C6GRMtip.es.js} +4 -4
- package/dist/chunks/{simple-grid-Crtlocqj.es.js.map → simple-grid-C6GRMtip.es.js.map} +1 -1
- package/dist/chunks/{slate-helpers-CMAwCMk0.cjs.js → slate-helpers-BN_9Hky2.cjs.js} +3 -3
- package/dist/chunks/{slate-helpers-CMAwCMk0.cjs.js.map → slate-helpers-BN_9Hky2.cjs.js.map} +1 -1
- package/dist/chunks/{slate-helpers-BwRHJO4o.es.js → slate-helpers-DunxggA8.es.js} +45 -45
- package/dist/chunks/{slate-helpers-BwRHJO4o.es.js.map → slate-helpers-DunxggA8.es.js.map} +1 -1
- package/dist/chunks/{split-button-Dpj44F6g.es.js → split-button-BTheahW8.es.js} +4 -4
- package/dist/chunks/{split-button-Dpj44F6g.es.js.map → split-button-BTheahW8.es.js.map} +1 -1
- package/dist/chunks/{split-button-B4Wp7H3n.cjs.js → split-button-CM-MvUGD.cjs.js} +2 -2
- package/dist/chunks/{split-button-B4Wp7H3n.cjs.js.map → split-button-CM-MvUGD.cjs.js.map} +1 -1
- package/dist/chunks/{stack-B6PqFPMh.cjs.js → stack-BG0j9HvT.cjs.js} +2 -2
- package/dist/chunks/{stack-B6PqFPMh.cjs.js.map → stack-BG0j9HvT.cjs.js.map} +1 -1
- package/dist/chunks/{stack-CBx-c8hI.es.js → stack-QzuqKTKb.es.js} +3 -3
- package/dist/chunks/{stack-CBx-c8hI.es.js.map → stack-QzuqKTKb.es.js.map} +1 -1
- package/dist/chunks/{switch-CeNcr608.cjs.js → switch-D2Wfgfnu.cjs.js} +2 -2
- package/dist/chunks/{switch-CeNcr608.cjs.js.map → switch-D2Wfgfnu.cjs.js.map} +1 -1
- package/dist/chunks/{switch-Ba9WXDDP.es.js → switch-DfH87j5a.es.js} +2 -2
- package/dist/chunks/{switch-Ba9WXDDP.es.js.map → switch-DfH87j5a.es.js.map} +1 -1
- package/dist/chunks/tag-group-BxRaZjiA.cjs.js +2 -0
- package/dist/chunks/tag-group-BxRaZjiA.cjs.js.map +1 -0
- package/dist/chunks/{tag-group-BY7yGmmv.es.js → tag-group-EIsTAERM.es.js} +278 -265
- package/dist/chunks/tag-group-EIsTAERM.es.js.map +1 -0
- package/dist/chunks/{text-B2wziCK6.es.js → text-DSjt3Sqv.es.js} +2 -2
- package/dist/chunks/{text-B2wziCK6.es.js.map → text-DSjt3Sqv.es.js.map} +1 -1
- package/dist/chunks/{text-hUMahKuA.cjs.js → text-Dg1sFCuC.cjs.js} +2 -2
- package/dist/chunks/{text-hUMahKuA.cjs.js.map → text-Dg1sFCuC.cjs.js.map} +1 -1
- package/dist/chunks/{text-input-82882hyq.es.js → text-input-BnwR9awD.es.js} +3 -3
- package/dist/chunks/{text-input-82882hyq.es.js.map → text-input-BnwR9awD.es.js.map} +1 -1
- package/dist/chunks/{text-input-CBcEG79G.cjs.js → text-input-DtwV2zvu.cjs.js} +2 -2
- package/dist/chunks/{text-input-CBcEG79G.cjs.js.map → text-input-DtwV2zvu.cjs.js.map} +1 -1
- package/dist/chunks/{time-input-CCnD_SWq.cjs.js → time-input-BS5RS11d.cjs.js} +2 -2
- package/dist/chunks/{time-input-CCnD_SWq.cjs.js.map → time-input-BS5RS11d.cjs.js.map} +1 -1
- package/dist/chunks/{time-input-DAA-IK0I.es.js → time-input-BuFPyNcW.es.js} +4 -4
- package/dist/chunks/{time-input-DAA-IK0I.es.js.map → time-input-BuFPyNcW.es.js.map} +1 -1
- package/dist/chunks/{toggle-button-163ZMcpk.es.js → toggle-button-B5nYtXCP.es.js} +5 -5
- package/dist/chunks/{toggle-button-163ZMcpk.es.js.map → toggle-button-B5nYtXCP.es.js.map} +1 -1
- package/dist/chunks/{toggle-button-BTYd563-.cjs.js → toggle-button-CZcbVyDV.cjs.js} +2 -2
- package/dist/chunks/{toggle-button-BTYd563-.cjs.js.map → toggle-button-CZcbVyDV.cjs.js.map} +1 -1
- package/dist/chunks/{toggle-button-group-D-sGsuZ_.es.js → toggle-button-group-DHMnBWSg.es.js} +3 -3
- package/dist/chunks/{toggle-button-group-D-sGsuZ_.es.js.map → toggle-button-group-DHMnBWSg.es.js.map} +1 -1
- package/dist/chunks/{toggle-button-group-Dq51N27j.cjs.js → toggle-button-group-LddoXszz.cjs.js} +2 -2
- package/dist/chunks/{toggle-button-group-Dq51N27j.cjs.js.map → toggle-button-group-LddoXszz.cjs.js.map} +1 -1
- package/dist/chunks/{toolbar-Ch-bOLkm.es.js → toolbar-CWst3Tik.es.js} +2 -2
- package/dist/chunks/{toolbar-Ch-bOLkm.es.js.map → toolbar-CWst3Tik.es.js.map} +1 -1
- package/dist/chunks/{toolbar-CzXpYEbP.cjs.js → toolbar-CrxjHhQi.cjs.js} +2 -2
- package/dist/chunks/{toolbar-CzXpYEbP.cjs.js.map → toolbar-CrxjHhQi.cjs.js.map} +1 -1
- package/dist/chunks/tooltip-CIAEV4_B.cjs.js +2 -0
- package/dist/chunks/tooltip-CIAEV4_B.cjs.js.map +1 -0
- package/dist/chunks/tooltip-CTvNYvui.es.js +269 -0
- package/dist/chunks/tooltip-CTvNYvui.es.js.map +1 -0
- package/dist/chunks/{use-formatting-state-Denpy3Zo.cjs.js → use-formatting-state-DVcnyVBl.cjs.js} +2 -2
- package/dist/chunks/{use-formatting-state-Denpy3Zo.cjs.js.map → use-formatting-state-DVcnyVBl.cjs.js.map} +1 -1
- package/dist/chunks/{use-formatting-state-RJvSR-Zg.es.js → use-formatting-state-DdKYccZs.es.js} +2 -2
- package/dist/chunks/{use-formatting-state-RJvSR-Zg.es.js.map → use-formatting-state-DdKYccZs.es.js.map} +1 -1
- package/dist/chunks/{use-recipe-CR4W7Dne.es.js → use-recipe-DuU8En0C.es.js} +2 -2
- package/dist/chunks/{use-recipe-CR4W7Dne.es.js.map → use-recipe-DuU8En0C.es.js.map} +1 -1
- package/dist/chunks/use-recipe-pbWWLWIq.cjs.js +2 -0
- package/dist/chunks/{use-recipe-BZ_iqCkN.cjs.js.map → use-recipe-pbWWLWIq.cjs.js.map} +1 -1
- package/dist/chunks/{useButton-C8n_NtBu.cjs.js → useButton-BgBfaV_L.cjs.js} +2 -2
- package/dist/chunks/{useButton-C8n_NtBu.cjs.js.map → useButton-BgBfaV_L.cjs.js.map} +1 -1
- package/dist/chunks/{useButton-M3_syr-Y.es.js → useButton-DAeSjgg9.es.js} +19 -18
- package/dist/chunks/{useButton-M3_syr-Y.es.js.map → useButton-DAeSjgg9.es.js.map} +1 -1
- package/dist/chunks/{useCollator-BvjDbml1.es.js → useCollator-BHMZd1r6.es.js} +2 -2
- package/dist/chunks/{useCollator-BvjDbml1.es.js.map → useCollator-BHMZd1r6.es.js.map} +1 -1
- package/dist/chunks/{useCollator-ZqnkTllN.cjs.js → useCollator-YVJAe1GI.cjs.js} +2 -2
- package/dist/chunks/{useCollator-ZqnkTllN.cjs.js.map → useCollator-YVJAe1GI.cjs.js.map} +1 -1
- package/dist/chunks/useControlledState-D0L6S_5r.cjs.js.map +1 -1
- package/dist/chunks/useControlledState-u436Wbp1.es.js.map +1 -1
- package/dist/chunks/{useDateFormatter-BqJA667a.es.js → useDateFormatter-C7Kxzwro.es.js} +2 -2
- package/dist/chunks/useDateFormatter-C7Kxzwro.es.js.map +1 -0
- package/dist/chunks/{useDateFormatter-Dq2Ly1Je.cjs.js → useDateFormatter-CS19Cch2.cjs.js} +2 -2
- package/dist/chunks/useDateFormatter-CS19Cch2.cjs.js.map +1 -0
- package/dist/chunks/useEvent-CuUOU5WV.cjs.js.map +1 -1
- package/dist/chunks/useEvent-YHhqZvpU.es.js.map +1 -1
- package/dist/chunks/useField-Ce9zQxmx.es.js.map +1 -1
- package/dist/chunks/useField-DmqO9k7a.cjs.js.map +1 -1
- package/dist/chunks/{useFilter-Du48WXDn.cjs.js → useFilter-CG8lxfCP.cjs.js} +2 -2
- package/dist/chunks/{useFilter-Du48WXDn.cjs.js.map → useFilter-CG8lxfCP.cjs.js.map} +1 -1
- package/dist/chunks/{useFilter-Bh0adxQ-.es.js → useFilter-DOfNzeZ9.es.js} +2 -2
- package/dist/chunks/{useFilter-Bh0adxQ-.es.js.map → useFilter-DOfNzeZ9.es.js.map} +1 -1
- package/dist/chunks/useFocus-BtJ38vev.cjs.js.map +1 -1
- package/dist/chunks/useFocus-DkWJ2TJC.es.js.map +1 -1
- package/dist/chunks/useFocusRing-CzFer4bD.cjs.js.map +1 -1
- package/dist/chunks/useFocusRing-updnkDQg.es.js.map +1 -1
- package/dist/chunks/useFocusVisible-CWDaG0ze.es.js.map +1 -1
- package/dist/chunks/useFocusVisible-Co0C61s7.cjs.js.map +1 -1
- package/dist/chunks/useFocusWithin-BDSWp3rw.cjs.js.map +1 -1
- package/dist/chunks/useFocusWithin-ByYlHjju.es.js.map +1 -1
- package/dist/chunks/useFocusable-CrsD8ZcF.es.js.map +1 -1
- package/dist/chunks/useFocusable-DCgmQxS1.cjs.js.map +1 -1
- package/dist/chunks/useFormReset--wPlnEOl.cjs.js.map +1 -1
- package/dist/chunks/useFormReset-DurgUJL-.es.js.map +1 -1
- package/dist/chunks/useFormValidation-4hZ1_a6w.es.js.map +1 -1
- package/dist/chunks/useFormValidation-BEaCuNx1.cjs.js.map +1 -1
- package/dist/chunks/useGlobalListeners-BOOfV5Wh.es.js.map +1 -1
- package/dist/chunks/useGlobalListeners-DcmIlwrO.cjs.js.map +1 -1
- package/dist/chunks/{useHighlightSelectionDescription-CsL0QM95.es.js → useHighlightSelectionDescription-BQg1WcM3.es.js} +2 -2
- package/dist/chunks/{useHighlightSelectionDescription-CsL0QM95.es.js.map → useHighlightSelectionDescription-BQg1WcM3.es.js.map} +1 -1
- package/dist/chunks/{useHighlightSelectionDescription-DwBGGESb.cjs.js → useHighlightSelectionDescription-CpDw-Mgj.cjs.js} +2 -2
- package/dist/chunks/{useHighlightSelectionDescription-DwBGGESb.cjs.js.map → useHighlightSelectionDescription-CpDw-Mgj.cjs.js.map} +1 -1
- package/dist/chunks/useHover-CiP9jMFy.cjs.js.map +1 -1
- package/dist/chunks/useHover-DhoE75lX.es.js.map +1 -1
- package/dist/chunks/useLabel-BBmkkrPP.es.js.map +1 -1
- package/dist/chunks/useLabel-Y8tWagLu.cjs.js.map +1 -1
- package/dist/chunks/{useLocalizedStringFormatter-CvzOUusg.es.js → useLocalizedStringFormatter-BRnRyxJp.es.js} +2 -2
- package/dist/chunks/{useLocalizedStringFormatter-CvzOUusg.es.js.map → useLocalizedStringFormatter-BRnRyxJp.es.js.map} +1 -1
- package/dist/chunks/{useLocalizedStringFormatter-fJnbqb2x.cjs.js → useLocalizedStringFormatter-sB0mFYtL.cjs.js} +2 -2
- package/dist/chunks/{useLocalizedStringFormatter-fJnbqb2x.cjs.js.map → useLocalizedStringFormatter-sB0mFYtL.cjs.js.map} +1 -1
- package/dist/chunks/useObjectRef-CaJ5pgjX.es.js.map +1 -1
- package/dist/chunks/useObjectRef-dXOJdONs.cjs.js.map +1 -1
- package/dist/chunks/usePress-C8-hLXJw.cjs.js.map +1 -1
- package/dist/chunks/usePress-DHhWHfMz.es.js.map +1 -1
- package/dist/chunks/{useProgressBar-BgURyN6q.es.js → useProgressBar-DHFmTHqL.es.js} +2 -2
- package/dist/chunks/{useProgressBar-BgURyN6q.es.js.map → useProgressBar-DHFmTHqL.es.js.map} +1 -1
- package/dist/chunks/{useProgressBar-8ZyM2_T3.cjs.js → useProgressBar-DWH4I0qR.cjs.js} +2 -2
- package/dist/chunks/{useProgressBar-8ZyM2_T3.cjs.js.map → useProgressBar-DWH4I0qR.cjs.js.map} +1 -1
- package/dist/chunks/useSeparator-B-OtWwE7.cjs.js.map +1 -1
- package/dist/chunks/useSeparator-Dg70ACBm.es.js.map +1 -1
- package/dist/chunks/{useSingleSelectListState-CYqW_Fx5.es.js → useSingleSelectListState-D1rjgMv_.es.js} +2 -2
- package/dist/chunks/{useSingleSelectListState-CYqW_Fx5.es.js.map → useSingleSelectListState-D1rjgMv_.es.js.map} +1 -1
- package/dist/chunks/{useSingleSelectListState-8Jfm9Pr1.cjs.js → useSingleSelectListState-F2WkLZRg.cjs.js} +2 -2
- package/dist/chunks/{useSingleSelectListState-8Jfm9Pr1.cjs.js.map → useSingleSelectListState-F2WkLZRg.cjs.js.map} +1 -1
- package/dist/chunks/{useSpinButton-C-tpK-T9.es.js → useSpinButton-C9DPDo0r.es.js} +30 -30
- package/dist/chunks/useSpinButton-C9DPDo0r.es.js.map +1 -0
- package/dist/chunks/useSpinButton-DA7sVP3T.cjs.js +2 -0
- package/dist/chunks/useSpinButton-DA7sVP3T.cjs.js.map +1 -0
- package/dist/chunks/useSyncRef-DGRbdR4H.es.js.map +1 -1
- package/dist/chunks/useSyncRef-bcjp9eId.cjs.js.map +1 -1
- package/dist/chunks/useTextField-BcthGRd8.cjs.js.map +1 -1
- package/dist/chunks/useTextField-BnL6tOdd.es.js.map +1 -1
- package/dist/chunks/useToggle-DqruaaTq.es.js.map +1 -1
- package/dist/chunks/useToggle-VJWgbeCC.cjs.js.map +1 -1
- package/dist/chunks/useToggleState-Dl-o05wQ.cjs.js.map +1 -1
- package/dist/chunks/useToggleState-Uh0wTgdI.es.js.map +1 -1
- package/dist/chunks/{useToolbar-Coi7qK2U.cjs.js → useToolbar-Bqn3EANT.cjs.js} +2 -2
- package/dist/chunks/{useToolbar-Coi7qK2U.cjs.js.map → useToolbar-Bqn3EANT.cjs.js.map} +1 -1
- package/dist/chunks/{useToolbar-9B43whQM.es.js → useToolbar-CLH6Sjes.es.js} +2 -2
- package/dist/chunks/{useToolbar-9B43whQM.es.js.map → useToolbar-CLH6Sjes.es.js.map} +1 -1
- package/dist/chunks/useUpdateEffect-C5YQs_1w.cjs.js.map +1 -1
- package/dist/chunks/useUpdateEffect-CCDx8D4X.es.js.map +1 -1
- package/dist/chunks/utils-BGHwK7fd.cjs.js.map +1 -1
- package/dist/chunks/utils-BHdR5Nww.cjs.js.map +1 -1
- package/dist/chunks/utils-BkdW_cdL.es.js.map +1 -1
- package/dist/chunks/utils-jpfA6kxk.es.js.map +1 -1
- package/dist/chunks/{walk-object-Ad4Rz5Gh.cjs.js → walk-object-CPVtf-bb.cjs.js} +2 -2
- package/dist/chunks/{walk-object-Ad4Rz5Gh.cjs.js.map → walk-object-CPVtf-bb.cjs.js.map} +1 -1
- package/dist/chunks/{walk-object-Drjey5HY.es.js → walk-object-Dpb8i9wi.es.js} +2 -2
- package/dist/chunks/{walk-object-Drjey5HY.es.js.map → walk-object-Dpb8i9wi.es.js.map} +1 -1
- package/dist/components/accordion.cjs +1 -1
- package/dist/components/accordion.es.js +1 -1
- package/dist/components/alert.cjs +1 -1
- package/dist/components/alert.es.js +1 -1
- package/dist/components/avatar.cjs +1 -1
- package/dist/components/avatar.es.js +1 -1
- package/dist/components/badge.cjs +1 -1
- package/dist/components/badge.es.js +1 -1
- package/dist/components/box.cjs +1 -1
- package/dist/components/box.es.js +1 -1
- package/dist/components/button.cjs +1 -1
- package/dist/components/button.es.js +1 -1
- package/dist/components/calendar.cjs +1 -1
- package/dist/components/calendar.es.js +1 -1
- package/dist/components/card.cjs +1 -1
- package/dist/components/card.es.js +1 -1
- package/dist/components/checkbox.cjs +1 -1
- package/dist/components/checkbox.es.js +1 -1
- package/dist/components/code.cjs +1 -1
- package/dist/components/code.es.js +1 -1
- package/dist/components/combobox.cjs +1 -1
- package/dist/components/combobox.es.js +1 -1
- package/dist/components/components.cjs +1 -1
- package/dist/components/components.es.js +52 -52
- package/dist/components/data-table.cjs +1 -1
- package/dist/components/data-table.es.js +1 -1
- package/dist/components/date-input.cjs +1 -1
- package/dist/components/date-input.es.js +1 -1
- package/dist/components/date-picker.cjs +1 -1
- package/dist/components/date-picker.es.js +1 -1
- package/dist/components/date-range-picker.cjs +1 -1
- package/dist/components/date-range-picker.es.js +1 -1
- package/dist/components/dialog.cjs +1 -1
- package/dist/components/dialog.es.js +1 -1
- package/dist/components/divider.cjs +1 -1
- package/dist/components/divider.es.js +1 -1
- package/dist/components/flex.cjs +1 -1
- package/dist/components/flex.es.js +1 -1
- package/dist/components/form-field.cjs +1 -1
- package/dist/components/form-field.es.js +1 -1
- package/dist/components/grid.cjs +1 -1
- package/dist/components/grid.es.js +1 -1
- package/dist/components/heading.cjs +1 -1
- package/dist/components/heading.es.js +1 -1
- package/dist/components/hooks.cjs +1 -1
- package/dist/components/hooks.es.js +1 -1
- package/dist/components/icon-button.cjs +1 -1
- package/dist/components/icon-button.es.js +1 -1
- package/dist/components/icon-toggle-button.cjs +1 -1
- package/dist/components/icon-toggle-button.es.js +1 -1
- package/dist/components/icon.cjs +1 -1
- package/dist/components/icon.es.js +1 -1
- package/dist/components/image.cjs +1 -1
- package/dist/components/image.es.js +1 -1
- package/dist/components/kbd.cjs +1 -1
- package/dist/components/kbd.es.js +1 -1
- package/dist/components/link.cjs +1 -1
- package/dist/components/link.es.js +1 -1
- package/dist/components/list.cjs +1 -1
- package/dist/components/list.es.js +1 -1
- package/dist/components/loading-spinner.cjs +1 -1
- package/dist/components/loading-spinner.es.js +1 -1
- package/dist/components/multiline-text-input.cjs +1 -1
- package/dist/components/multiline-text-input.es.js +1 -1
- package/dist/components/nimbus-provider.cjs +1 -1
- package/dist/components/nimbus-provider.es.js +1 -1
- package/dist/components/number-input.cjs +1 -1
- package/dist/components/number-input.es.js +1 -1
- package/dist/components/password-input.cjs +1 -1
- package/dist/components/password-input.es.js +1 -1
- package/dist/components/popover.cjs +1 -1
- package/dist/components/popover.es.js +2 -2
- package/dist/components/progress-bar.cjs +1 -1
- package/dist/components/progress-bar.es.js +1 -1
- package/dist/components/radio-input.cjs +1 -1
- package/dist/components/radio-input.es.js +1 -1
- package/dist/components/range-calendar.cjs +1 -1
- package/dist/components/range-calendar.es.js +1 -1
- package/dist/components/rich-text-input.cjs +1 -1
- package/dist/components/rich-text-input.es.js +1 -1
- package/dist/components/select.cjs +1 -1
- package/dist/components/select.es.js +1 -1
- package/dist/components/simple-grid.cjs +1 -1
- package/dist/components/simple-grid.es.js +1 -1
- package/dist/components/split-button.cjs +1 -1
- package/dist/components/split-button.es.js +1 -1
- package/dist/components/stack.cjs +1 -1
- package/dist/components/stack.es.js +1 -1
- package/dist/components/switch.cjs +1 -1
- package/dist/components/switch.es.js +1 -1
- package/dist/components/table.cjs +1 -1
- package/dist/components/table.es.js +1 -1
- package/dist/components/tag-group.cjs +1 -1
- package/dist/components/tag-group.es.js +1 -1
- package/dist/components/text-input.cjs +1 -1
- package/dist/components/text-input.es.js +1 -1
- package/dist/components/text.cjs +1 -1
- package/dist/components/text.es.js +1 -1
- package/dist/components/time-input.cjs +1 -1
- package/dist/components/time-input.es.js +1 -1
- package/dist/components/toggle-button-group.cjs +1 -1
- package/dist/components/toggle-button-group.es.js +1 -1
- package/dist/components/toggle-button.cjs +1 -1
- package/dist/components/toggle-button.es.js +1 -1
- package/dist/components/toolbar.cjs +1 -1
- package/dist/components/toolbar.es.js +1 -1
- package/dist/components/tooltip.cjs +1 -1
- package/dist/components/tooltip.es.js +1 -1
- package/dist/components/utils.cjs +1 -1
- package/dist/components/utils.es.js +2 -2
- package/dist/index.cjs +1 -1
- package/dist/index.cjs.map +1 -1
- package/dist/index.es.js +54 -54
- package/dist/index.es.js.map +1 -1
- package/package.json +12 -12
- package/dist/chunks/Collection-BYX373AD.cjs.js +0 -18
- package/dist/chunks/Collection-BYX373AD.cjs.js.map +0 -1
- package/dist/chunks/Collection-Df3FPouy.es.js.map +0 -1
- package/dist/chunks/DateField-DVzmD_D6.es.js.map +0 -1
- package/dist/chunks/DateField-Dh2hoOBr.cjs.js +0 -2
- package/dist/chunks/DateField-Dh2hoOBr.cjs.js.map +0 -1
- package/dist/chunks/DatePicker-C0NXSwOw.cjs.js +0 -2
- package/dist/chunks/DatePicker-C0NXSwOw.cjs.js.map +0 -1
- package/dist/chunks/DatePicker-_A7-hp_b.es.js.map +0 -1
- package/dist/chunks/Dialog-BnIvgMq1.cjs.js +0 -2
- package/dist/chunks/Dialog-BnIvgMq1.cjs.js.map +0 -1
- package/dist/chunks/Dialog-C3wKnoBH.es.js +0 -1903
- package/dist/chunks/Dialog-C3wKnoBH.es.js.map +0 -1
- package/dist/chunks/ListBox-B2Z13FyL.cjs.js +0 -2
- package/dist/chunks/ListBox-B2Z13FyL.cjs.js.map +0 -1
- package/dist/chunks/ListBox-BzuLanGT.es.js +0 -615
- package/dist/chunks/ListBox-BzuLanGT.es.js.map +0 -1
- package/dist/chunks/OverlayArrow-C5Ymp9MC.cjs.js +0 -2
- package/dist/chunks/OverlayArrow-C5Ymp9MC.cjs.js.map +0 -1
- package/dist/chunks/OverlayArrow-ERS8ZqL3.es.js +0 -479
- package/dist/chunks/OverlayArrow-ERS8ZqL3.es.js.map +0 -1
- package/dist/chunks/Separator-QdyS03-E.cjs.js +0 -2
- package/dist/chunks/Separator-QdyS03-E.cjs.js.map +0 -1
- package/dist/chunks/Separator-T5Cc3sUj.es.js +0 -573
- package/dist/chunks/Separator-T5Cc3sUj.es.js.map +0 -1
- package/dist/chunks/code-CTuEvrXA.cjs.js +0 -2
- package/dist/chunks/combobox-C3FEfver.es.js +0 -1912
- package/dist/chunks/combobox-C3FEfver.es.js.map +0 -1
- package/dist/chunks/combobox-CnUfDGC-.cjs.js +0 -2
- package/dist/chunks/combobox-CnUfDGC-.cjs.js.map +0 -1
- package/dist/chunks/context-D0_cRaDZ.cjs.js +0 -2
- package/dist/chunks/context-Pt-0ojuK.es.js +0 -94
- package/dist/chunks/data-table-BvTXYpZB.cjs.js +0 -2
- package/dist/chunks/data-table-BvTXYpZB.cjs.js.map +0 -1
- package/dist/chunks/data-table-BvYN1Stn.es.js.map +0 -1
- package/dist/chunks/dialog-CG-cCFkg.es.js +0 -1889
- package/dist/chunks/dialog-CG-cCFkg.es.js.map +0 -1
- package/dist/chunks/dialog-CNZGNU5Q.cjs.js +0 -2
- package/dist/chunks/dialog-CNZGNU5Q.cjs.js.map +0 -1
- package/dist/chunks/image-BAqoLZQB.cjs.js +0 -2
- package/dist/chunks/index-x9OhLGGf.cjs.js +0 -2
- package/dist/chunks/menu-C41LRy4b.cjs.js +0 -2
- package/dist/chunks/provider-BzZZw3fF.cjs.js +0 -16
- package/dist/chunks/provider-BzZZw3fF.cjs.js.map +0 -1
- package/dist/chunks/provider-DxFdjgyb.es.js.map +0 -1
- package/dist/chunks/select-IUEop3i7.cjs.js +0 -2
- package/dist/chunks/tag-group-BY7yGmmv.es.js.map +0 -1
- package/dist/chunks/tag-group-DXKC_JuG.cjs.js +0 -2
- package/dist/chunks/tag-group-DXKC_JuG.cjs.js.map +0 -1
- package/dist/chunks/tooltip-BFuuQNa4.cjs.js +0 -2
- package/dist/chunks/tooltip-BFuuQNa4.cjs.js.map +0 -1
- package/dist/chunks/tooltip-BpUbO0NA.es.js +0 -274
- package/dist/chunks/tooltip-BpUbO0NA.es.js.map +0 -1
- package/dist/chunks/use-recipe-BZ_iqCkN.cjs.js +0 -2
- package/dist/chunks/useDateFormatter-BqJA667a.es.js.map +0 -1
- package/dist/chunks/useDateFormatter-Dq2Ly1Je.cjs.js.map +0 -1
- package/dist/chunks/useSpinButton-C-tpK-T9.es.js.map +0 -1
- package/dist/chunks/useSpinButton-Cw8QxU2l.cjs.js +0 -2
- package/dist/chunks/useSpinButton-Cw8QxU2l.cjs.js.map +0 -1
package/dist/chunks/{rich-text-input-Dv7OofX2.es.js.map → rich-text-input-BvYBUkt_.es.js.map}
RENAMED
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"rich-text-input-Dv7OofX2.es.js","sources":["../../src/components/rich-text-input/rich-text-input.recipe.tsx","../../src/components/rich-text-input/rich-text-input.slots.tsx","../../../../node_modules/.pnpm/slate-history@0.113.1_slate@0.75.0/node_modules/slate-history/dist/index.es.js","../../src/components/rich-text-input/components/rich-text-editor.tsx","../../src/components/rich-text-input/components/formatting-menu.tsx","../../src/components/rich-text-input/components/rich-text-toolbar.tsx","../../src/components/rich-text-input/rich-text-input.tsx"],"sourcesContent":["import { defineSlotRecipe } from \"@chakra-ui/react\";\n\nexport const richTextInputRecipe = defineSlotRecipe({\n slots: [\"root\", \"toolbar\", \"editable\"],\n className: \"nimbus-rich-text-input\",\n base: {\n root: {\n display: \"flex\",\n flexDirection: \"column\",\n position: \"relative\",\n width: \"full\",\n borderRadius: \"200\",\n borderWidth: \"{sizes.25}\",\n colorPalette: \"slate\",\n borderColor: \"colorPalette.7\",\n backgroundColor: \"colorPalette.contrast\",\n\n // Invalid state styling\n \"&[data-invalid='true']\": {\n borderWidth: \"{sizes.50}\",\n borderColor: \"critical.7\",\n },\n },\n toolbar: {\n boxShadow: \"1\",\n\n // Disabled state styling for toolbar\n \"[data-disabled='true'] &\": {\n opacity: \"0.5\",\n },\n },\n editable: {\n padding: \"400\",\n minHeight: \"inherit\",\n outline: \"none\",\n\n // Disabled state styling for editable\n \"[data-disabled='true'] &\": {\n cursor: \"not-allowed\",\n opacity: \"0.5\",\n },\n\n // Styling for user-facing editor text\n \"& p\": {\n textStyle: \"md\",\n fontWeight: \"500\",\n },\n \"& h1\": {\n textStyle: \"2xl\",\n fontWeight: \"500\",\n },\n \"& h2\": {\n textStyle: \"xl\",\n fontWeight: \"500\",\n },\n \"& h3\": {\n textStyle: \"lg\",\n fontWeight: \"500\",\n },\n \"& h4\": {\n textStyle: \"md\",\n fontWeight: \"500\",\n },\n \"& h5\": {\n textStyle: \"xs\",\n fontWeight: \"500\",\n },\n \"& blockquote\": {\n textStyle: \"md\",\n fontWeight: \"400\",\n borderLeftWidth: \"{sizes.100}\",\n paddingLeft: \"400\",\n },\n \"& ul\": {\n paddingLeft: \"600\",\n listStyleType: \"disc\",\n },\n \"& ol\": {\n paddingLeft: \"600\",\n listStyleType: \"decimal\",\n },\n \"& code\": {\n padding: \"100\",\n fontFamily: \"mono\",\n },\n \"& pre\": {\n padding: \"300\",\n borderRadius: \"200\",\n overflow: \"auto\",\n \"& code\": {\n padding: \"0\",\n },\n },\n \"& a\": {\n color: \"primary.11\",\n textDecoration: \"underline\",\n cursor: \"pointer\",\n _hover: {\n textDecoration: \"none\",\n },\n },\n \"& strong\": {\n fontWeight: \"700\",\n },\n \"& em\": {\n fontStyle: \"italic\",\n },\n \"& u\": {\n textDecoration: \"underline\",\n },\n \"& del\": {\n textDecoration: \"line-through\",\n },\n \"& sup\": {\n fontSize: \"75%\",\n verticalAlign: \"super\",\n lineHeight: \"0\",\n },\n \"& sub\": {\n fontSize: \"75%\",\n verticalAlign: \"sub\",\n lineHeight: \"0\",\n },\n },\n },\n variants: {},\n});\n","import {\n type HTMLChakraProps,\n type RecipeVariantProps,\n type UnstyledProp,\n createSlotRecipeContext,\n} from \"@chakra-ui/react\";\nimport { richTextInputRecipe } from \"./rich-text-input.recipe\";\n\nconst { withProvider, withContext } = createSlotRecipeContext({\n recipe: richTextInputRecipe,\n});\n\n// Root slot\nexport type RichTextInputRootSlotProps = HTMLChakraProps<\n \"div\",\n RecipeVariantProps<typeof richTextInputRecipe> & UnstyledProp\n>;\n\nexport const RichTextInputRootSlot = withProvider<\n HTMLDivElement,\n RichTextInputRootSlotProps\n>(\"div\", \"root\");\n\n// Toolbar slot\nexport type RichTextInputToolbarSlotProps = HTMLChakraProps<\"div\">;\n\nexport const RichTextInputToolbarSlot = withContext<\n HTMLDivElement,\n RichTextInputToolbarSlotProps\n>(\"div\", \"toolbar\");\n\n// Editable slot\nexport type RichTextInputEditableSlotProps = HTMLChakraProps<\"div\">;\nexport const RichTextInputEditableSlot = withContext<\n HTMLDivElement,\n RichTextInputEditableSlotProps\n>(\"div\", \"editable\");\n","import { isPlainObject } from 'is-plain-object';\nimport { Operation, Editor, Transforms, Path } from 'slate';\n\n// eslint-disable-next-line no-redeclare\nvar History = {\n /**\n * Check if a value is a `History` object.\n */\n isHistory(value) {\n return isPlainObject(value) && Array.isArray(value.redos) && Array.isArray(value.undos) && (value.redos.length === 0 || Operation.isOperationList(value.redos[0].operations)) && (value.undos.length === 0 || Operation.isOperationList(value.undos[0].operations));\n }\n};\n\n/**\n * Weakmaps for attaching state to the editor.\n */\nvar HISTORY = new WeakMap();\nvar SAVING = new WeakMap();\nvar MERGING = new WeakMap();\nvar SPLITTING_ONCE = new WeakMap();\n// eslint-disable-next-line no-redeclare\nvar HistoryEditor = {\n /**\n * Check if a value is a `HistoryEditor` object.\n */\n isHistoryEditor(value) {\n return History.isHistory(value.history) && Editor.isEditor(value);\n },\n /**\n * Get the merge flag's current value.\n */\n isMerging(editor) {\n return MERGING.get(editor);\n },\n /**\n * Get the splitting once flag's current value.\n */\n isSplittingOnce(editor) {\n return SPLITTING_ONCE.get(editor);\n },\n setSplittingOnce(editor, value) {\n SPLITTING_ONCE.set(editor, value);\n },\n /**\n * Get the saving flag's current value.\n */\n isSaving(editor) {\n return SAVING.get(editor);\n },\n /**\n * Redo to the previous saved state.\n */\n redo(editor) {\n editor.redo();\n },\n /**\n * Undo to the previous saved state.\n */\n undo(editor) {\n editor.undo();\n },\n /**\n * Apply a series of changes inside a synchronous `fn`, These operations will\n * be merged into the previous history.\n */\n withMerging(editor, fn) {\n var prev = HistoryEditor.isMerging(editor);\n MERGING.set(editor, true);\n fn();\n MERGING.set(editor, prev);\n },\n /**\n * Apply a series of changes inside a synchronous `fn`, ensuring that the first\n * operation starts a new batch in the history. Subsequent operations will be\n * merged as usual.\n */\n withNewBatch(editor, fn) {\n var prev = HistoryEditor.isMerging(editor);\n MERGING.set(editor, true);\n SPLITTING_ONCE.set(editor, true);\n fn();\n MERGING.set(editor, prev);\n SPLITTING_ONCE.delete(editor);\n },\n /**\n * Apply a series of changes inside a synchronous `fn`, without merging any of\n * the new operations into previous save point in the history.\n */\n withoutMerging(editor, fn) {\n var prev = HistoryEditor.isMerging(editor);\n MERGING.set(editor, false);\n fn();\n MERGING.set(editor, prev);\n },\n /**\n * Apply a series of changes inside a synchronous `fn`, without saving any of\n * their operations into the history.\n */\n withoutSaving(editor, fn) {\n var prev = HistoryEditor.isSaving(editor);\n SAVING.set(editor, false);\n try {\n fn();\n } finally {\n SAVING.set(editor, prev);\n }\n }\n};\n\n/**\n * The `withHistory` plugin keeps track of the operation history of a Slate\n * editor as operations are applied to it, using undo and redo stacks.\n *\n * If you are using TypeScript, you must extend Slate's CustomTypes to use\n * this plugin.\n *\n * See https://docs.slatejs.org/concepts/11-typescript to learn how.\n */\nvar withHistory = editor => {\n var e = editor;\n var {\n apply\n } = e;\n e.history = {\n undos: [],\n redos: []\n };\n e.redo = () => {\n var {\n history\n } = e;\n var {\n redos\n } = history;\n if (redos.length > 0) {\n var batch = redos[redos.length - 1];\n if (batch.selectionBefore) {\n Transforms.setSelection(e, batch.selectionBefore);\n }\n HistoryEditor.withoutSaving(e, () => {\n Editor.withoutNormalizing(e, () => {\n for (var op of batch.operations) {\n e.apply(op);\n }\n });\n });\n history.redos.pop();\n e.writeHistory('undos', batch);\n }\n };\n e.undo = () => {\n var {\n history\n } = e;\n var {\n undos\n } = history;\n if (undos.length > 0) {\n var batch = undos[undos.length - 1];\n HistoryEditor.withoutSaving(e, () => {\n Editor.withoutNormalizing(e, () => {\n var inverseOps = batch.operations.map(Operation.inverse).reverse();\n for (var op of inverseOps) {\n e.apply(op);\n }\n if (batch.selectionBefore) {\n Transforms.setSelection(e, batch.selectionBefore);\n }\n });\n });\n e.writeHistory('redos', batch);\n history.undos.pop();\n }\n };\n e.apply = op => {\n var {\n operations,\n history\n } = e;\n var {\n undos\n } = history;\n var lastBatch = undos[undos.length - 1];\n var lastOp = lastBatch && lastBatch.operations[lastBatch.operations.length - 1];\n var save = HistoryEditor.isSaving(e);\n var merge = HistoryEditor.isMerging(e);\n if (save == null) {\n save = shouldSave(op);\n }\n if (save) {\n if (merge == null) {\n if (lastBatch == null) {\n merge = false;\n } else if (operations.length !== 0) {\n merge = true;\n } else {\n merge = shouldMerge(op, lastOp);\n }\n }\n if (HistoryEditor.isSplittingOnce(e)) {\n merge = false;\n HistoryEditor.setSplittingOnce(e, undefined);\n }\n if (lastBatch && merge) {\n lastBatch.operations.push(op);\n } else {\n var batch = {\n operations: [op],\n selectionBefore: e.selection\n };\n e.writeHistory('undos', batch);\n }\n while (undos.length > 100) {\n undos.shift();\n }\n history.redos = [];\n }\n apply(op);\n };\n e.writeHistory = (stack, batch) => {\n e.history[stack].push(batch);\n };\n return e;\n};\n/**\n * Check whether to merge an operation into the previous operation.\n */\nvar shouldMerge = (op, prev) => {\n if (prev && op.type === 'insert_text' && prev.type === 'insert_text' && op.offset === prev.offset + prev.text.length && Path.equals(op.path, prev.path)) {\n return true;\n }\n if (prev && op.type === 'remove_text' && prev.type === 'remove_text' && op.offset + op.text.length === prev.offset && Path.equals(op.path, prev.path)) {\n return true;\n }\n return false;\n};\n/**\n * Check whether an operation needs to be saved to the history.\n */\nvar shouldSave = (op, prev) => {\n if (op.type === 'set_selection') {\n return false;\n }\n return true;\n};\n\nexport { HISTORY, History, HistoryEditor, MERGING, SAVING, SPLITTING_ONCE, withHistory };\n//# sourceMappingURL=index.es.js.map\n","import {\n useMemo,\n useCallback,\n useImperativeHandle,\n forwardRef,\n type ForwardedRef,\n type FocusEventHandler,\n type ReactNode,\n} from \"react\";\nimport { createEditor, type Descendant } from \"slate\";\nimport { Slate, Editable, withReact } from \"slate-react\";\nimport { withHistory } from \"slate-history\";\nimport {\n RichTextInputEditableSlot,\n RichTextInputToolbarSlot,\n} from \"../rich-text-input.slots\";\nimport {\n Element,\n Leaf,\n withLinks,\n focusEditor,\n resetEditor,\n} from \"../utils/slate-helpers\";\nimport { createEmptyValue } from \"../utils/html-serialization\";\nimport { useKeyboardShortcuts } from \"../hooks/use-keyboard-shortcuts\";\nimport { EDITOR_DEFAULTS } from \"../constants\";\n\nexport interface RichTextEditorProps {\n value?: Descendant[];\n onChange: (value: Descendant[]) => void;\n onFocus?: FocusEventHandler<HTMLDivElement>;\n onBlur?: FocusEventHandler<HTMLDivElement>;\n placeholder?: string;\n isDisabled?: boolean;\n isReadOnly?: boolean;\n autoFocus?: boolean;\n toolbar?: ReactNode;\n}\n\nexport interface RichTextEditorRef {\n focus: () => void;\n resetValue: (html: string) => void;\n}\n\nexport const RichTextEditor = forwardRef<\n RichTextEditorRef,\n RichTextEditorProps\n>((props, forwardedRef: ForwardedRef<RichTextEditorRef>) => {\n const {\n value,\n onChange,\n onFocus,\n onBlur,\n placeholder = EDITOR_DEFAULTS.placeholder,\n isDisabled = EDITOR_DEFAULTS.isDisabled,\n isReadOnly = EDITOR_DEFAULTS.isReadOnly,\n autoFocus = EDITOR_DEFAULTS.autoFocus,\n toolbar,\n } = props;\n\n // Create editor with plugins\n const editor = useMemo(() => {\n const baseEditor = createEditor();\n return withLinks(withHistory(withReact(baseEditor)));\n }, []);\n\n // Handle keyboard shortcuts using hook\n const { handleKeyDown } = useKeyboardShortcuts({ editor });\n\n // Handle focus\n const handleFocus = useCallback(\n (event: React.FocusEvent<HTMLDivElement>) => {\n if (onFocus) {\n onFocus(event);\n }\n },\n [onFocus]\n );\n\n // Handle blur\n const handleBlur = useCallback(\n (event: React.FocusEvent<HTMLDivElement>) => {\n if (onBlur) {\n onBlur(event);\n }\n },\n [onBlur]\n );\n\n // Expose methods through ref\n useImperativeHandle(\n forwardedRef,\n () => ({\n focus: () => focusEditor(editor),\n resetValue: (html: string) => resetEditor(editor, html),\n }),\n [editor]\n );\n\n // Render element\n const renderElement = useCallback(\n (props: Parameters<typeof Element>[0]) => <Element {...props} />,\n []\n );\n\n // Render leaf\n const renderLeaf = useCallback(\n (props: Parameters<typeof Leaf>[0]) => <Leaf {...props} />,\n []\n );\n\n // Ensure we always have a valid value\n const defaultValue = createEmptyValue();\n const safeInitialValue =\n Array.isArray(value) && value.length > 0 ? value : defaultValue;\n\n return (\n <Slate editor={editor} value={safeInitialValue} onChange={onChange}>\n {toolbar && (\n <RichTextInputToolbarSlot>{toolbar}</RichTextInputToolbarSlot>\n )}\n <RichTextInputEditableSlot asChild>\n <Editable\n renderElement={renderElement}\n renderLeaf={renderLeaf}\n placeholder={placeholder}\n autoFocus={autoFocus}\n readOnly={isReadOnly || isDisabled}\n onKeyDown={handleKeyDown}\n onFocus={handleFocus}\n onBlur={handleBlur}\n aria-label=\"Rich text editor\"\n role=\"textbox\"\n aria-multiline=\"true\"\n />\n </RichTextInputEditableSlot>\n </Slate>\n );\n});\n\nRichTextEditor.displayName = \"RichTextEditor\";\n","import { useSlate } from \"slate-react\";\nimport { Menu, IconButton, Text, Box, Tooltip } from \"@/components\";\nimport {\n MoreHoriz,\n FormatStrikethrough,\n Code,\n} from \"@commercetools/nimbus-icons\";\nimport { usePreservedSelection } from \"../hooks/use-preserved-selection\";\nimport { useFormattingState } from \"../hooks/use-formatting-state\";\n\nexport interface FormattingMenuProps {\n isDisabled?: boolean;\n}\n\nexport const FormattingMenu = ({ isDisabled = false }: FormattingMenuProps) => {\n const editor = useSlate();\n const withPreservedSelection = usePreservedSelection(editor);\n\n // Use the formatting state hook for all state management\n const { allSelectedKeys, handleAllSelectionChange } = useFormattingState({\n withPreservedSelection,\n });\n\n return (\n <Menu.Root\n selectionMode=\"multiple\"\n selectedKeys={allSelectedKeys}\n onSelectionChange={handleAllSelectionChange}\n >\n <Tooltip.Root delay={0} closeDelay={0}>\n <Menu.Trigger asChild>\n <IconButton\n size=\"xs\"\n variant=\"ghost\"\n aria-label=\"More formatting options\"\n isDisabled={isDisabled}\n onMouseDown={(event) => event.preventDefault()}\n >\n <MoreHoriz />\n </IconButton>\n </Menu.Trigger>\n <Tooltip.Content placement=\"top\">More styles</Tooltip.Content>\n </Tooltip.Root>\n <Menu.Content>\n <Menu.Item id=\"strikethrough\">\n <Box slot=\"label\" display=\"flex\" alignItems=\"center\" gap=\"200\">\n <FormatStrikethrough />\n <Text textStyle=\"sm\">Strikethrough</Text>\n </Box>\n </Menu.Item>\n <Menu.Item id=\"code\">\n <Box slot=\"label\" display=\"flex\" alignItems=\"center\" gap=\"200\">\n <Code />\n <Text textStyle=\"sm\">Code</Text>\n </Box>\n </Menu.Item>\n <Menu.Item id=\"superscript\">\n <Box slot=\"label\" display=\"flex\" alignItems=\"center\" gap=\"200\">\n <Text>X²</Text>\n <Text textStyle=\"sm\">Superscript</Text>\n </Box>\n </Menu.Item>\n <Menu.Item id=\"subscript\">\n <Box slot=\"label\" display=\"flex\" alignItems=\"center\" gap=\"200\">\n <Text>X₂</Text>\n <Text textStyle=\"sm\">Subscript</Text>\n </Box>\n </Menu.Item>\n </Menu.Content>\n </Menu.Root>\n );\n};\n","import { useSlate } from \"slate-react\";\nimport {\n Toolbar,\n Menu,\n VisuallyHidden,\n Divider,\n ToggleButtonGroup,\n IconToggleButton,\n IconButton,\n Text,\n Box,\n Tooltip,\n} from \"@/components\";\nimport { Group } from \"@/components/group\";\nimport {\n FormatBold,\n FormatItalic,\n FormatUnderlined,\n FormatListBulleted,\n FormatListNumbered,\n KeyboardArrowDown,\n Undo,\n Redo,\n} from \"@commercetools/nimbus-icons\";\nimport { toggleMark } from \"../utils/slate-helpers\";\nimport { usePreservedSelection } from \"../hooks/use-preserved-selection\";\nimport { useToolbarState } from \"../hooks/use-toolbar-state\";\nimport { textStyles } from \"../constants\";\nimport { FormattingMenu } from \"./formatting-menu\";\n\nexport interface RichTextToolbarProps {\n isDisabled?: boolean;\n}\n\nexport const RichTextToolbar = ({\n isDisabled = false,\n}: RichTextToolbarProps) => {\n const editor = useSlate();\n const withPreservedSelection = usePreservedSelection(editor);\n\n // Use the toolbar state hook for all state management\n const {\n currentTextStyle,\n selectedTextStyleLabel,\n handleTextStyleChange,\n handleListToggle,\n selectedFormatKeys,\n selectedListKeys,\n hasUndos,\n hasRedos,\n } = useToolbarState({ withPreservedSelection });\n\n return (\n <Toolbar\n orientation=\"horizontal\"\n aria-label=\"Text formatting\"\n width=\"full\"\n overflow=\"hidden\"\n size=\"xs\"\n >\n {/* Text Style Menu */}\n <Group>\n <Menu.Root\n onAction={(styleId) => handleTextStyleChange(String(styleId))}\n >\n <Tooltip.Root delay={0} closeDelay={0}>\n {/* Menu trigger styles mimic the Select component */}\n <Menu.Trigger\n height=\"800\"\n width=\"4000\"\n bg=\"primary.1\"\n borderRadius=\"200\"\n _hover={{ bg: \"primary.2\" }}\n isDisabled={isDisabled}\n onMouseDown={(event) => event.preventDefault()}\n aria-label=\"Text style menu\"\n >\n <Box display=\"flex\" alignItems=\"center\" gap=\"200\" px=\"200\">\n <Box display=\"flex\" alignItems=\"center\" gap=\"200\" flexGrow=\"1\">\n <Text my=\"auto\" textStyle=\"sm\" fontWeight=\"500\">\n {selectedTextStyleLabel}\n </Text>\n </Box>\n <KeyboardArrowDown />\n </Box>\n </Menu.Trigger>\n <Tooltip.Content placement=\"top\">Text style</Tooltip.Content>\n </Tooltip.Root>\n <Menu.Content>\n {textStyles.map((style) => (\n <Menu.Item\n key={style.id}\n id={style.id}\n {...(currentTextStyle === style.id && {\n \"data-state\": \"checked\",\n })}\n >\n <Text {...style.props}>{style.label}</Text>\n </Menu.Item>\n ))}\n </Menu.Content>\n </Menu.Root>\n </Group>\n\n <Divider orientation=\"vertical\" />\n\n {/* Text Formatting Toggles */}\n <ToggleButtonGroup.Root\n selectionMode=\"multiple\"\n selectedKeys={selectedFormatKeys}\n isDisabled={isDisabled}\n >\n <Tooltip.Root delay={0} closeDelay={0}>\n <IconToggleButton\n id=\"bold\"\n size=\"xs\"\n variant=\"ghost\"\n aria-label=\"Bold\"\n isDisabled={isDisabled}\n onMouseDown={(event) => event.preventDefault()}\n onPress={withPreservedSelection(() => toggleMark(editor, \"bold\"))}\n >\n <FormatBold />\n <VisuallyHidden>Bold</VisuallyHidden>\n </IconToggleButton>\n <Tooltip.Content placement=\"top\">Bold</Tooltip.Content>\n </Tooltip.Root>\n <Tooltip.Root delay={0} closeDelay={0}>\n <IconToggleButton\n id=\"italic\"\n size=\"xs\"\n variant=\"ghost\"\n aria-label=\"Italic\"\n isDisabled={isDisabled}\n onMouseDown={(event) => event.preventDefault()}\n onPress={withPreservedSelection(() => toggleMark(editor, \"italic\"))}\n >\n <FormatItalic />\n <VisuallyHidden>Italic</VisuallyHidden>\n </IconToggleButton>\n <Tooltip.Content placement=\"top\">Italic</Tooltip.Content>\n </Tooltip.Root>\n <Tooltip.Root delay={0} closeDelay={0}>\n <IconToggleButton\n id=\"underline\"\n size=\"xs\"\n variant=\"ghost\"\n aria-label=\"Underline\"\n isDisabled={isDisabled}\n onMouseDown={(event) => event.preventDefault()}\n onPress={withPreservedSelection(() =>\n toggleMark(editor, \"underline\")\n )}\n >\n <FormatUnderlined />\n <VisuallyHidden>Underline</VisuallyHidden>\n </IconToggleButton>\n <Tooltip.Content placement=\"top\">Underline</Tooltip.Content>\n </Tooltip.Root>\n </ToggleButtonGroup.Root>\n\n {/* Formatting Menu for additional options */}\n <FormattingMenu isDisabled={isDisabled} />\n\n <Divider orientation=\"vertical\" />\n\n {/* Lists & Indentation */}\n <ToggleButtonGroup.Root\n selectionMode=\"single\"\n selectedKeys={selectedListKeys}\n onSelectionChange={handleListToggle}\n aria-label=\"List formatting\"\n isDisabled={isDisabled}\n >\n <Tooltip.Root delay={0} closeDelay={0}>\n <IconToggleButton\n id=\"bulleted-list\"\n size=\"xs\"\n variant=\"ghost\"\n aria-label=\"Bulleted List\"\n isDisabled={isDisabled}\n onMouseDown={(event) => event.preventDefault()}\n >\n <FormatListBulleted />\n </IconToggleButton>\n <Tooltip.Content placement=\"top\">Bulleted list</Tooltip.Content>\n </Tooltip.Root>\n <Tooltip.Root delay={0} closeDelay={0}>\n <IconToggleButton\n id=\"numbered-list\"\n size=\"xs\"\n variant=\"ghost\"\n aria-label=\"Numbered List\"\n isDisabled={isDisabled}\n onMouseDown={(event) => event.preventDefault()}\n >\n <FormatListNumbered />\n </IconToggleButton>\n <Tooltip.Content placement=\"top\">Numbered list</Tooltip.Content>\n </Tooltip.Root>\n </ToggleButtonGroup.Root>\n\n {/* Spacer to push undo/redo buttons to the right */}\n <Box flexGrow=\"1\" />\n\n <Group>\n <Tooltip.Root delay={0} closeDelay={0}>\n <IconButton\n size=\"xs\"\n variant=\"ghost\"\n aria-label=\"Undo\"\n isDisabled={!hasUndos || isDisabled}\n onPress={withPreservedSelection(() => editor.undo())}\n onMouseDown={(event) => event.preventDefault()}\n >\n <Undo />\n <VisuallyHidden>Undo</VisuallyHidden>\n </IconButton>\n <Tooltip.Content placement=\"top\">Undo</Tooltip.Content>\n </Tooltip.Root>\n <Tooltip.Root delay={0} closeDelay={0}>\n <IconButton\n size=\"xs\"\n variant=\"ghost\"\n aria-label=\"Redo\"\n isDisabled={!hasRedos || isDisabled}\n onPress={withPreservedSelection(() => editor.redo())}\n onMouseDown={(event) => event.preventDefault()}\n >\n <Redo />\n <VisuallyHidden>Redo</VisuallyHidden>\n </IconButton>\n <Tooltip.Content placement=\"top\">Redo</Tooltip.Content>\n </Tooltip.Root>\n </Group>\n </Toolbar>\n );\n};\n\nRichTextToolbar.displayName = \"RichTextToolbar\";\n","import { useState, useCallback, useRef, useEffect } from \"react\";\nimport { useSlotRecipe } from \"@chakra-ui/react\";\nimport { extractStyleProps } from \"@/utils/extractStyleProps\";\nimport { RichTextInputRootSlot } from \"./rich-text-input.slots\";\nimport {\n RichTextEditor,\n type RichTextEditorRef,\n} from \"./components/rich-text-editor\";\nimport { RichTextToolbar } from \"./components/rich-text-toolbar\";\nimport type { RichTextInputProps } from \"./rich-text-input.types\";\nimport {\n toHTML,\n fromHTML,\n createEmptyValue,\n validSlateStateAdapter,\n} from \"./utils\";\nimport { richTextInputRecipe } from \"./rich-text-input.recipe\";\n\n/**\n RichTextInput - A rich text input component with formatting capabilities.\n */\nexport const RichTextInput = (props: RichTextInputProps) => {\n const {\n ref: forwardedRef,\n value,\n defaultValue,\n onChange,\n onFocus,\n onBlur,\n placeholder = \"\",\n isDisabled = false,\n isReadOnly = false,\n isInvalid = false,\n autoFocus = false,\n ...restProps\n } = props;\n\n const recipe = useSlotRecipe({ recipe: richTextInputRecipe });\n const [recipeProps, remainingProps] = recipe.splitVariantProps({\n // Only semantic variants go here (none currently defined)\n ...restProps,\n });\n const [styleProps, functionalProps] = extractStyleProps(remainingProps);\n\n // Data attributes for state-based styling\n const dataAttributes = {\n \"data-disabled\": isDisabled ? \"true\" : undefined,\n \"data-invalid\": isInvalid ? \"true\" : undefined,\n \"data-readonly\": isReadOnly ? \"true\" : undefined,\n };\n\n // Internal state management\n const [internalValue, setInternalValue] = useState(() => {\n const initialHtml = value ?? defaultValue ?? \"\";\n try {\n return initialHtml ? fromHTML(initialHtml) : createEmptyValue();\n } catch (error) {\n console.warn(\"Failed to parse initial HTML, using empty value:\", error);\n return createEmptyValue();\n }\n });\n\n const [serializedValue, setSerializedValue] = useState(() => {\n return value ?? defaultValue ?? \"\";\n });\n\n const editorRef = useRef<RichTextEditorRef>(null);\n\n // Handle controlled value changes\n useEffect(() => {\n if (value !== undefined && value !== serializedValue) {\n const newSlateValue = value ? fromHTML(value) : createEmptyValue();\n setInternalValue(newSlateValue);\n setSerializedValue(value);\n }\n }, [value, serializedValue]);\n\n const handleChange = useCallback(\n (slateValue: ReturnType<typeof createEmptyValue>) => {\n const newHtml = toHTML(slateValue);\n const hasSerializedValueChanged = newHtml !== serializedValue;\n\n setInternalValue(slateValue);\n setSerializedValue(newHtml);\n\n // Only call onChange if the serialized HTML actually changed\n if (hasSerializedValueChanged && onChange) {\n onChange(newHtml);\n }\n },\n [serializedValue, onChange]\n );\n\n const currentValue = internalValue;\n\n // Safety check: ensure we always have a valid Slate value\n const safeValue = validSlateStateAdapter(currentValue);\n\n return (\n <RichTextInputRootSlot\n {...recipeProps}\n {...styleProps}\n {...functionalProps}\n {...dataAttributes}\n ref={forwardedRef}\n >\n <RichTextEditor\n ref={editorRef}\n value={safeValue}\n onChange={handleChange}\n onFocus={onFocus}\n onBlur={onBlur}\n placeholder={placeholder}\n isDisabled={isDisabled}\n isReadOnly={isReadOnly}\n autoFocus={autoFocus}\n toolbar={\n !isReadOnly ? <RichTextToolbar isDisabled={isDisabled} /> : null\n }\n />\n </RichTextInputRootSlot>\n );\n};\n\nRichTextInput.displayName = \"RichTextInput\";\n"],"names":["richTextInputRecipe","defineSlotRecipe","withProvider","withContext","createSlotRecipeContext","RichTextInputRootSlot","RichTextInputToolbarSlot","RichTextInputEditableSlot","History","value","isPlainObject","Operation","SAVING","MERGING","SPLITTING_ONCE","HistoryEditor","Editor","editor","fn","prev","withHistory","e","apply","history","redos","batch","Transforms","op","undos","inverseOps","operations","lastBatch","lastOp","save","merge","shouldSave","shouldMerge","stack","Path","RichTextEditor","forwardRef","props","forwardedRef","onChange","onFocus","onBlur","placeholder","EDITOR_DEFAULTS","isDisabled","isReadOnly","autoFocus","toolbar","useMemo","baseEditor","createEditor","withLinks","withReact","handleKeyDown","useKeyboardShortcuts","handleFocus","useCallback","event","handleBlur","useImperativeHandle","focusEditor","html","resetEditor","renderElement","jsx","Element","renderLeaf","Leaf","defaultValue","createEmptyValue","safeInitialValue","jsxs","Slate","Editable","FormattingMenu","useSlate","withPreservedSelection","usePreservedSelection","allSelectedKeys","handleAllSelectionChange","useFormattingState","Menu","Tooltip","IconButton","MoreHoriz","Box","FormatStrikethrough","Text","Code","RichTextToolbar","currentTextStyle","selectedTextStyleLabel","handleTextStyleChange","handleListToggle","selectedFormatKeys","selectedListKeys","hasUndos","hasRedos","useToolbarState","Toolbar","Group","styleId","KeyboardArrowDown","textStyles","style","Divider","ToggleButtonGroup","IconToggleButton","toggleMark","FormatBold","VisuallyHidden","FormatItalic","FormatUnderlined","FormatListBulleted","FormatListNumbered","Undo","Redo","RichTextInput","isInvalid","restProps","recipe","useSlotRecipe","recipeProps","remainingProps","styleProps","functionalProps","extractStyleProps","dataAttributes","internalValue","setInternalValue","useState","initialHtml","fromHTML","error","serializedValue","setSerializedValue","editorRef","useRef","useEffect","newSlateValue","handleChange","slateValue","newHtml","toHTML","hasSerializedValueChanged","safeValue","validSlateStateAdapter"],"mappings":"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","x_google_ignoreList":[2]}
|
|
1
|
+
{"version":3,"file":"rich-text-input-BvYBUkt_.es.js","sources":["../../src/components/rich-text-input/rich-text-input.recipe.tsx","../../src/components/rich-text-input/rich-text-input.slots.tsx","../../../../node_modules/.pnpm/slate-history@0.113.1_slate@0.75.0/node_modules/slate-history/dist/index.es.js","../../src/components/rich-text-input/components/rich-text-editor.tsx","../../src/components/rich-text-input/components/formatting-menu.tsx","../../src/components/rich-text-input/components/rich-text-toolbar.tsx","../../src/components/rich-text-input/rich-text-input.tsx"],"sourcesContent":["import { defineSlotRecipe } from \"@chakra-ui/react\";\n\nexport const richTextInputRecipe = defineSlotRecipe({\n slots: [\"root\", \"toolbar\", \"editable\"],\n className: \"nimbus-rich-text-input\",\n base: {\n root: {\n display: \"flex\",\n flexDirection: \"column\",\n position: \"relative\",\n width: \"full\",\n borderRadius: \"200\",\n borderWidth: \"{sizes.25}\",\n colorPalette: \"slate\",\n borderColor: \"colorPalette.7\",\n backgroundColor: \"colorPalette.contrast\",\n\n // Invalid state styling\n \"&[data-invalid='true']\": {\n borderWidth: \"{sizes.50}\",\n borderColor: \"critical.7\",\n },\n },\n toolbar: {\n boxShadow: \"1\",\n\n // Disabled state styling for toolbar\n \"[data-disabled='true'] &\": {\n opacity: \"0.5\",\n },\n },\n editable: {\n padding: \"400\",\n minHeight: \"inherit\",\n outline: \"none\",\n\n // Disabled state styling for editable\n \"[data-disabled='true'] &\": {\n cursor: \"not-allowed\",\n opacity: \"0.5\",\n },\n\n // Styling for user-facing editor text\n \"& p\": {\n textStyle: \"md\",\n fontWeight: \"500\",\n },\n \"& h1\": {\n textStyle: \"2xl\",\n fontWeight: \"500\",\n },\n \"& h2\": {\n textStyle: \"xl\",\n fontWeight: \"500\",\n },\n \"& h3\": {\n textStyle: \"lg\",\n fontWeight: \"500\",\n },\n \"& h4\": {\n textStyle: \"md\",\n fontWeight: \"500\",\n },\n \"& h5\": {\n textStyle: \"xs\",\n fontWeight: \"500\",\n },\n \"& blockquote\": {\n textStyle: \"md\",\n fontWeight: \"400\",\n borderLeftWidth: \"{sizes.100}\",\n paddingLeft: \"400\",\n },\n \"& ul\": {\n paddingLeft: \"600\",\n listStyleType: \"disc\",\n },\n \"& ol\": {\n paddingLeft: \"600\",\n listStyleType: \"decimal\",\n },\n \"& code\": {\n padding: \"100\",\n fontFamily: \"mono\",\n },\n \"& pre\": {\n padding: \"300\",\n borderRadius: \"200\",\n overflow: \"auto\",\n \"& code\": {\n padding: \"0\",\n },\n },\n \"& a\": {\n color: \"primary.11\",\n textDecoration: \"underline\",\n cursor: \"pointer\",\n _hover: {\n textDecoration: \"none\",\n },\n },\n \"& strong\": {\n fontWeight: \"700\",\n },\n \"& em\": {\n fontStyle: \"italic\",\n },\n \"& u\": {\n textDecoration: \"underline\",\n },\n \"& del\": {\n textDecoration: \"line-through\",\n },\n \"& sup\": {\n fontSize: \"75%\",\n verticalAlign: \"super\",\n lineHeight: \"0\",\n },\n \"& sub\": {\n fontSize: \"75%\",\n verticalAlign: \"sub\",\n lineHeight: \"0\",\n },\n },\n },\n variants: {},\n});\n","import {\n type HTMLChakraProps,\n type RecipeVariantProps,\n type UnstyledProp,\n createSlotRecipeContext,\n} from \"@chakra-ui/react\";\nimport { richTextInputRecipe } from \"./rich-text-input.recipe\";\n\nconst { withProvider, withContext } = createSlotRecipeContext({\n recipe: richTextInputRecipe,\n});\n\n// Root slot\nexport type RichTextInputRootSlotProps = HTMLChakraProps<\n \"div\",\n RecipeVariantProps<typeof richTextInputRecipe> & UnstyledProp\n>;\n\nexport const RichTextInputRootSlot = withProvider<\n HTMLDivElement,\n RichTextInputRootSlotProps\n>(\"div\", \"root\");\n\n// Toolbar slot\nexport type RichTextInputToolbarSlotProps = HTMLChakraProps<\"div\">;\n\nexport const RichTextInputToolbarSlot = withContext<\n HTMLDivElement,\n RichTextInputToolbarSlotProps\n>(\"div\", \"toolbar\");\n\n// Editable slot\nexport type RichTextInputEditableSlotProps = HTMLChakraProps<\"div\">;\nexport const RichTextInputEditableSlot = withContext<\n HTMLDivElement,\n RichTextInputEditableSlotProps\n>(\"div\", \"editable\");\n","import { isPlainObject } from 'is-plain-object';\nimport { Operation, Editor, Transforms, Path } from 'slate';\n\n// eslint-disable-next-line no-redeclare\nvar History = {\n /**\n * Check if a value is a `History` object.\n */\n isHistory(value) {\n return isPlainObject(value) && Array.isArray(value.redos) && Array.isArray(value.undos) && (value.redos.length === 0 || Operation.isOperationList(value.redos[0].operations)) && (value.undos.length === 0 || Operation.isOperationList(value.undos[0].operations));\n }\n};\n\n/**\n * Weakmaps for attaching state to the editor.\n */\nvar HISTORY = new WeakMap();\nvar SAVING = new WeakMap();\nvar MERGING = new WeakMap();\nvar SPLITTING_ONCE = new WeakMap();\n// eslint-disable-next-line no-redeclare\nvar HistoryEditor = {\n /**\n * Check if a value is a `HistoryEditor` object.\n */\n isHistoryEditor(value) {\n return History.isHistory(value.history) && Editor.isEditor(value);\n },\n /**\n * Get the merge flag's current value.\n */\n isMerging(editor) {\n return MERGING.get(editor);\n },\n /**\n * Get the splitting once flag's current value.\n */\n isSplittingOnce(editor) {\n return SPLITTING_ONCE.get(editor);\n },\n setSplittingOnce(editor, value) {\n SPLITTING_ONCE.set(editor, value);\n },\n /**\n * Get the saving flag's current value.\n */\n isSaving(editor) {\n return SAVING.get(editor);\n },\n /**\n * Redo to the previous saved state.\n */\n redo(editor) {\n editor.redo();\n },\n /**\n * Undo to the previous saved state.\n */\n undo(editor) {\n editor.undo();\n },\n /**\n * Apply a series of changes inside a synchronous `fn`, These operations will\n * be merged into the previous history.\n */\n withMerging(editor, fn) {\n var prev = HistoryEditor.isMerging(editor);\n MERGING.set(editor, true);\n fn();\n MERGING.set(editor, prev);\n },\n /**\n * Apply a series of changes inside a synchronous `fn`, ensuring that the first\n * operation starts a new batch in the history. Subsequent operations will be\n * merged as usual.\n */\n withNewBatch(editor, fn) {\n var prev = HistoryEditor.isMerging(editor);\n MERGING.set(editor, true);\n SPLITTING_ONCE.set(editor, true);\n fn();\n MERGING.set(editor, prev);\n SPLITTING_ONCE.delete(editor);\n },\n /**\n * Apply a series of changes inside a synchronous `fn`, without merging any of\n * the new operations into previous save point in the history.\n */\n withoutMerging(editor, fn) {\n var prev = HistoryEditor.isMerging(editor);\n MERGING.set(editor, false);\n fn();\n MERGING.set(editor, prev);\n },\n /**\n * Apply a series of changes inside a synchronous `fn`, without saving any of\n * their operations into the history.\n */\n withoutSaving(editor, fn) {\n var prev = HistoryEditor.isSaving(editor);\n SAVING.set(editor, false);\n try {\n fn();\n } finally {\n SAVING.set(editor, prev);\n }\n }\n};\n\n/**\n * The `withHistory` plugin keeps track of the operation history of a Slate\n * editor as operations are applied to it, using undo and redo stacks.\n *\n * If you are using TypeScript, you must extend Slate's CustomTypes to use\n * this plugin.\n *\n * See https://docs.slatejs.org/concepts/11-typescript to learn how.\n */\nvar withHistory = editor => {\n var e = editor;\n var {\n apply\n } = e;\n e.history = {\n undos: [],\n redos: []\n };\n e.redo = () => {\n var {\n history\n } = e;\n var {\n redos\n } = history;\n if (redos.length > 0) {\n var batch = redos[redos.length - 1];\n if (batch.selectionBefore) {\n Transforms.setSelection(e, batch.selectionBefore);\n }\n HistoryEditor.withoutSaving(e, () => {\n Editor.withoutNormalizing(e, () => {\n for (var op of batch.operations) {\n e.apply(op);\n }\n });\n });\n history.redos.pop();\n e.writeHistory('undos', batch);\n }\n };\n e.undo = () => {\n var {\n history\n } = e;\n var {\n undos\n } = history;\n if (undos.length > 0) {\n var batch = undos[undos.length - 1];\n HistoryEditor.withoutSaving(e, () => {\n Editor.withoutNormalizing(e, () => {\n var inverseOps = batch.operations.map(Operation.inverse).reverse();\n for (var op of inverseOps) {\n e.apply(op);\n }\n if (batch.selectionBefore) {\n Transforms.setSelection(e, batch.selectionBefore);\n }\n });\n });\n e.writeHistory('redos', batch);\n history.undos.pop();\n }\n };\n e.apply = op => {\n var {\n operations,\n history\n } = e;\n var {\n undos\n } = history;\n var lastBatch = undos[undos.length - 1];\n var lastOp = lastBatch && lastBatch.operations[lastBatch.operations.length - 1];\n var save = HistoryEditor.isSaving(e);\n var merge = HistoryEditor.isMerging(e);\n if (save == null) {\n save = shouldSave(op);\n }\n if (save) {\n if (merge == null) {\n if (lastBatch == null) {\n merge = false;\n } else if (operations.length !== 0) {\n merge = true;\n } else {\n merge = shouldMerge(op, lastOp);\n }\n }\n if (HistoryEditor.isSplittingOnce(e)) {\n merge = false;\n HistoryEditor.setSplittingOnce(e, undefined);\n }\n if (lastBatch && merge) {\n lastBatch.operations.push(op);\n } else {\n var batch = {\n operations: [op],\n selectionBefore: e.selection\n };\n e.writeHistory('undos', batch);\n }\n while (undos.length > 100) {\n undos.shift();\n }\n history.redos = [];\n }\n apply(op);\n };\n e.writeHistory = (stack, batch) => {\n e.history[stack].push(batch);\n };\n return e;\n};\n/**\n * Check whether to merge an operation into the previous operation.\n */\nvar shouldMerge = (op, prev) => {\n if (prev && op.type === 'insert_text' && prev.type === 'insert_text' && op.offset === prev.offset + prev.text.length && Path.equals(op.path, prev.path)) {\n return true;\n }\n if (prev && op.type === 'remove_text' && prev.type === 'remove_text' && op.offset + op.text.length === prev.offset && Path.equals(op.path, prev.path)) {\n return true;\n }\n return false;\n};\n/**\n * Check whether an operation needs to be saved to the history.\n */\nvar shouldSave = (op, prev) => {\n if (op.type === 'set_selection') {\n return false;\n }\n return true;\n};\n\nexport { HISTORY, History, HistoryEditor, MERGING, SAVING, SPLITTING_ONCE, withHistory };\n//# sourceMappingURL=index.es.js.map\n","import {\n useMemo,\n useCallback,\n useImperativeHandle,\n forwardRef,\n type ForwardedRef,\n type FocusEventHandler,\n type ReactNode,\n} from \"react\";\nimport { createEditor, type Descendant } from \"slate\";\nimport { Slate, Editable, withReact } from \"slate-react\";\nimport { withHistory } from \"slate-history\";\nimport {\n RichTextInputEditableSlot,\n RichTextInputToolbarSlot,\n} from \"../rich-text-input.slots\";\nimport {\n Element,\n Leaf,\n withLinks,\n focusEditor,\n resetEditor,\n} from \"../utils/slate-helpers\";\nimport { createEmptyValue } from \"../utils/html-serialization\";\nimport { useKeyboardShortcuts } from \"../hooks/use-keyboard-shortcuts\";\nimport { EDITOR_DEFAULTS } from \"../constants\";\n\nexport interface RichTextEditorProps {\n value?: Descendant[];\n onChange: (value: Descendant[]) => void;\n onFocus?: FocusEventHandler<HTMLDivElement>;\n onBlur?: FocusEventHandler<HTMLDivElement>;\n placeholder?: string;\n isDisabled?: boolean;\n isReadOnly?: boolean;\n autoFocus?: boolean;\n toolbar?: ReactNode;\n}\n\nexport interface RichTextEditorRef {\n focus: () => void;\n resetValue: (html: string) => void;\n}\n\nexport const RichTextEditor = forwardRef<\n RichTextEditorRef,\n RichTextEditorProps\n>((props, forwardedRef: ForwardedRef<RichTextEditorRef>) => {\n const {\n value,\n onChange,\n onFocus,\n onBlur,\n placeholder = EDITOR_DEFAULTS.placeholder,\n isDisabled = EDITOR_DEFAULTS.isDisabled,\n isReadOnly = EDITOR_DEFAULTS.isReadOnly,\n autoFocus = EDITOR_DEFAULTS.autoFocus,\n toolbar,\n } = props;\n\n // Create editor with plugins\n const editor = useMemo(() => {\n const baseEditor = createEditor();\n return withLinks(withHistory(withReact(baseEditor)));\n }, []);\n\n // Handle keyboard shortcuts using hook\n const { handleKeyDown } = useKeyboardShortcuts({ editor });\n\n // Handle focus\n const handleFocus = useCallback(\n (event: React.FocusEvent<HTMLDivElement>) => {\n if (onFocus) {\n onFocus(event);\n }\n },\n [onFocus]\n );\n\n // Handle blur\n const handleBlur = useCallback(\n (event: React.FocusEvent<HTMLDivElement>) => {\n if (onBlur) {\n onBlur(event);\n }\n },\n [onBlur]\n );\n\n // Expose methods through ref\n useImperativeHandle(\n forwardedRef,\n () => ({\n focus: () => focusEditor(editor),\n resetValue: (html: string) => resetEditor(editor, html),\n }),\n [editor]\n );\n\n // Render element\n const renderElement = useCallback(\n (props: Parameters<typeof Element>[0]) => <Element {...props} />,\n []\n );\n\n // Render leaf\n const renderLeaf = useCallback(\n (props: Parameters<typeof Leaf>[0]) => <Leaf {...props} />,\n []\n );\n\n // Ensure we always have a valid value\n const defaultValue = createEmptyValue();\n const safeInitialValue =\n Array.isArray(value) && value.length > 0 ? value : defaultValue;\n\n return (\n <Slate editor={editor} value={safeInitialValue} onChange={onChange}>\n {toolbar && (\n <RichTextInputToolbarSlot>{toolbar}</RichTextInputToolbarSlot>\n )}\n <RichTextInputEditableSlot asChild>\n <Editable\n renderElement={renderElement}\n renderLeaf={renderLeaf}\n placeholder={placeholder}\n autoFocus={autoFocus}\n readOnly={isReadOnly || isDisabled}\n onKeyDown={handleKeyDown}\n onFocus={handleFocus}\n onBlur={handleBlur}\n aria-label=\"Rich text editor\"\n role=\"textbox\"\n aria-multiline=\"true\"\n />\n </RichTextInputEditableSlot>\n </Slate>\n );\n});\n\nRichTextEditor.displayName = \"RichTextEditor\";\n","import { useSlate } from \"slate-react\";\nimport { Menu, IconButton, Text, Box, Tooltip } from \"@/components\";\nimport {\n MoreHoriz,\n FormatStrikethrough,\n Code,\n} from \"@commercetools/nimbus-icons\";\nimport { usePreservedSelection } from \"../hooks/use-preserved-selection\";\nimport { useFormattingState } from \"../hooks/use-formatting-state\";\n\nexport interface FormattingMenuProps {\n isDisabled?: boolean;\n}\n\nexport const FormattingMenu = ({ isDisabled = false }: FormattingMenuProps) => {\n const editor = useSlate();\n const withPreservedSelection = usePreservedSelection(editor);\n\n // Use the formatting state hook for all state management\n const { allSelectedKeys, handleAllSelectionChange } = useFormattingState({\n withPreservedSelection,\n });\n\n return (\n <Menu.Root\n selectionMode=\"multiple\"\n selectedKeys={allSelectedKeys}\n onSelectionChange={handleAllSelectionChange}\n >\n <Tooltip.Root delay={0} closeDelay={0}>\n <Menu.Trigger asChild>\n <IconButton\n size=\"xs\"\n variant=\"ghost\"\n aria-label=\"More formatting options\"\n isDisabled={isDisabled}\n onMouseDown={(event) => event.preventDefault()}\n >\n <MoreHoriz />\n </IconButton>\n </Menu.Trigger>\n <Tooltip.Content placement=\"top\">More styles</Tooltip.Content>\n </Tooltip.Root>\n <Menu.Content>\n <Menu.Item id=\"strikethrough\">\n <Box slot=\"label\" display=\"flex\" alignItems=\"center\" gap=\"200\">\n <FormatStrikethrough />\n <Text textStyle=\"sm\">Strikethrough</Text>\n </Box>\n </Menu.Item>\n <Menu.Item id=\"code\">\n <Box slot=\"label\" display=\"flex\" alignItems=\"center\" gap=\"200\">\n <Code />\n <Text textStyle=\"sm\">Code</Text>\n </Box>\n </Menu.Item>\n <Menu.Item id=\"superscript\">\n <Box slot=\"label\" display=\"flex\" alignItems=\"center\" gap=\"200\">\n <Text>X²</Text>\n <Text textStyle=\"sm\">Superscript</Text>\n </Box>\n </Menu.Item>\n <Menu.Item id=\"subscript\">\n <Box slot=\"label\" display=\"flex\" alignItems=\"center\" gap=\"200\">\n <Text>X₂</Text>\n <Text textStyle=\"sm\">Subscript</Text>\n </Box>\n </Menu.Item>\n </Menu.Content>\n </Menu.Root>\n );\n};\n","import { useSlate } from \"slate-react\";\nimport {\n Toolbar,\n Menu,\n VisuallyHidden,\n Divider,\n ToggleButtonGroup,\n IconToggleButton,\n IconButton,\n Text,\n Box,\n Tooltip,\n} from \"@/components\";\nimport { Group } from \"@/components/group\";\nimport {\n FormatBold,\n FormatItalic,\n FormatUnderlined,\n FormatListBulleted,\n FormatListNumbered,\n KeyboardArrowDown,\n Undo,\n Redo,\n} from \"@commercetools/nimbus-icons\";\nimport { toggleMark } from \"../utils/slate-helpers\";\nimport { usePreservedSelection } from \"../hooks/use-preserved-selection\";\nimport { useToolbarState } from \"../hooks/use-toolbar-state\";\nimport { textStyles } from \"../constants\";\nimport { FormattingMenu } from \"./formatting-menu\";\n\nexport interface RichTextToolbarProps {\n isDisabled?: boolean;\n}\n\nexport const RichTextToolbar = ({\n isDisabled = false,\n}: RichTextToolbarProps) => {\n const editor = useSlate();\n const withPreservedSelection = usePreservedSelection(editor);\n\n // Use the toolbar state hook for all state management\n const {\n currentTextStyle,\n selectedTextStyleLabel,\n handleTextStyleChange,\n handleListToggle,\n selectedFormatKeys,\n selectedListKeys,\n hasUndos,\n hasRedos,\n } = useToolbarState({ withPreservedSelection });\n\n return (\n <Toolbar\n orientation=\"horizontal\"\n aria-label=\"Text formatting\"\n width=\"full\"\n overflow=\"hidden\"\n size=\"xs\"\n >\n {/* Text Style Menu */}\n <Group>\n <Menu.Root\n onAction={(styleId) => handleTextStyleChange(String(styleId))}\n >\n <Tooltip.Root delay={0} closeDelay={0}>\n {/* Menu trigger styles mimic the Select component */}\n <Menu.Trigger\n height=\"800\"\n width=\"4000\"\n bg=\"primary.1\"\n borderRadius=\"200\"\n _hover={{ bg: \"primary.2\" }}\n isDisabled={isDisabled}\n onMouseDown={(event) => event.preventDefault()}\n aria-label=\"Text style menu\"\n >\n <Box display=\"flex\" alignItems=\"center\" gap=\"200\" px=\"200\">\n <Box display=\"flex\" alignItems=\"center\" gap=\"200\" flexGrow=\"1\">\n <Text my=\"auto\" textStyle=\"sm\" fontWeight=\"500\">\n {selectedTextStyleLabel}\n </Text>\n </Box>\n <KeyboardArrowDown />\n </Box>\n </Menu.Trigger>\n <Tooltip.Content placement=\"top\">Text style</Tooltip.Content>\n </Tooltip.Root>\n <Menu.Content>\n {textStyles.map((style) => (\n <Menu.Item\n key={style.id}\n id={style.id}\n {...(currentTextStyle === style.id && {\n \"data-state\": \"checked\",\n })}\n >\n <Text {...style.props}>{style.label}</Text>\n </Menu.Item>\n ))}\n </Menu.Content>\n </Menu.Root>\n </Group>\n\n <Divider orientation=\"vertical\" />\n\n {/* Text Formatting Toggles */}\n <ToggleButtonGroup.Root\n selectionMode=\"multiple\"\n selectedKeys={selectedFormatKeys}\n isDisabled={isDisabled}\n >\n <Tooltip.Root delay={0} closeDelay={0}>\n <IconToggleButton\n id=\"bold\"\n size=\"xs\"\n variant=\"ghost\"\n aria-label=\"Bold\"\n isDisabled={isDisabled}\n onMouseDown={(event) => event.preventDefault()}\n onPress={withPreservedSelection(() => toggleMark(editor, \"bold\"))}\n >\n <FormatBold />\n <VisuallyHidden>Bold</VisuallyHidden>\n </IconToggleButton>\n <Tooltip.Content placement=\"top\">Bold</Tooltip.Content>\n </Tooltip.Root>\n <Tooltip.Root delay={0} closeDelay={0}>\n <IconToggleButton\n id=\"italic\"\n size=\"xs\"\n variant=\"ghost\"\n aria-label=\"Italic\"\n isDisabled={isDisabled}\n onMouseDown={(event) => event.preventDefault()}\n onPress={withPreservedSelection(() => toggleMark(editor, \"italic\"))}\n >\n <FormatItalic />\n <VisuallyHidden>Italic</VisuallyHidden>\n </IconToggleButton>\n <Tooltip.Content placement=\"top\">Italic</Tooltip.Content>\n </Tooltip.Root>\n <Tooltip.Root delay={0} closeDelay={0}>\n <IconToggleButton\n id=\"underline\"\n size=\"xs\"\n variant=\"ghost\"\n aria-label=\"Underline\"\n isDisabled={isDisabled}\n onMouseDown={(event) => event.preventDefault()}\n onPress={withPreservedSelection(() =>\n toggleMark(editor, \"underline\")\n )}\n >\n <FormatUnderlined />\n <VisuallyHidden>Underline</VisuallyHidden>\n </IconToggleButton>\n <Tooltip.Content placement=\"top\">Underline</Tooltip.Content>\n </Tooltip.Root>\n </ToggleButtonGroup.Root>\n\n {/* Formatting Menu for additional options */}\n <FormattingMenu isDisabled={isDisabled} />\n\n <Divider orientation=\"vertical\" />\n\n {/* Lists & Indentation */}\n <ToggleButtonGroup.Root\n selectionMode=\"single\"\n selectedKeys={selectedListKeys}\n onSelectionChange={handleListToggle}\n aria-label=\"List formatting\"\n isDisabled={isDisabled}\n >\n <Tooltip.Root delay={0} closeDelay={0}>\n <IconToggleButton\n id=\"bulleted-list\"\n size=\"xs\"\n variant=\"ghost\"\n aria-label=\"Bulleted List\"\n isDisabled={isDisabled}\n onMouseDown={(event) => event.preventDefault()}\n >\n <FormatListBulleted />\n </IconToggleButton>\n <Tooltip.Content placement=\"top\">Bulleted list</Tooltip.Content>\n </Tooltip.Root>\n <Tooltip.Root delay={0} closeDelay={0}>\n <IconToggleButton\n id=\"numbered-list\"\n size=\"xs\"\n variant=\"ghost\"\n aria-label=\"Numbered List\"\n isDisabled={isDisabled}\n onMouseDown={(event) => event.preventDefault()}\n >\n <FormatListNumbered />\n </IconToggleButton>\n <Tooltip.Content placement=\"top\">Numbered list</Tooltip.Content>\n </Tooltip.Root>\n </ToggleButtonGroup.Root>\n\n {/* Spacer to push undo/redo buttons to the right */}\n <Box flexGrow=\"1\" />\n\n <Group>\n <Tooltip.Root delay={0} closeDelay={0}>\n <IconButton\n size=\"xs\"\n variant=\"ghost\"\n aria-label=\"Undo\"\n isDisabled={!hasUndos || isDisabled}\n onPress={withPreservedSelection(() => editor.undo())}\n onMouseDown={(event) => event.preventDefault()}\n >\n <Undo />\n <VisuallyHidden>Undo</VisuallyHidden>\n </IconButton>\n <Tooltip.Content placement=\"top\">Undo</Tooltip.Content>\n </Tooltip.Root>\n <Tooltip.Root delay={0} closeDelay={0}>\n <IconButton\n size=\"xs\"\n variant=\"ghost\"\n aria-label=\"Redo\"\n isDisabled={!hasRedos || isDisabled}\n onPress={withPreservedSelection(() => editor.redo())}\n onMouseDown={(event) => event.preventDefault()}\n >\n <Redo />\n <VisuallyHidden>Redo</VisuallyHidden>\n </IconButton>\n <Tooltip.Content placement=\"top\">Redo</Tooltip.Content>\n </Tooltip.Root>\n </Group>\n </Toolbar>\n );\n};\n\nRichTextToolbar.displayName = \"RichTextToolbar\";\n","import { useState, useCallback, useRef, useEffect } from \"react\";\nimport { useSlotRecipe } from \"@chakra-ui/react\";\nimport { extractStyleProps } from \"@/utils/extractStyleProps\";\nimport { RichTextInputRootSlot } from \"./rich-text-input.slots\";\nimport {\n RichTextEditor,\n type RichTextEditorRef,\n} from \"./components/rich-text-editor\";\nimport { RichTextToolbar } from \"./components/rich-text-toolbar\";\nimport type { RichTextInputProps } from \"./rich-text-input.types\";\nimport {\n toHTML,\n fromHTML,\n createEmptyValue,\n validSlateStateAdapter,\n} from \"./utils\";\nimport { richTextInputRecipe } from \"./rich-text-input.recipe\";\n\n/**\n RichTextInput - A rich text input component with formatting capabilities.\n */\nexport const RichTextInput = (props: RichTextInputProps) => {\n const {\n ref: forwardedRef,\n value,\n defaultValue,\n onChange,\n onFocus,\n onBlur,\n placeholder = \"\",\n isDisabled = false,\n isReadOnly = false,\n isInvalid = false,\n autoFocus = false,\n ...restProps\n } = props;\n\n const recipe = useSlotRecipe({ recipe: richTextInputRecipe });\n const [recipeProps, remainingProps] = recipe.splitVariantProps({\n // Only semantic variants go here (none currently defined)\n ...restProps,\n });\n const [styleProps, functionalProps] = extractStyleProps(remainingProps);\n\n // Data attributes for state-based styling\n const dataAttributes = {\n \"data-disabled\": isDisabled ? \"true\" : undefined,\n \"data-invalid\": isInvalid ? \"true\" : undefined,\n \"data-readonly\": isReadOnly ? \"true\" : undefined,\n };\n\n // Internal state management\n const [internalValue, setInternalValue] = useState(() => {\n const initialHtml = value ?? defaultValue ?? \"\";\n try {\n return initialHtml ? fromHTML(initialHtml) : createEmptyValue();\n } catch (error) {\n console.warn(\"Failed to parse initial HTML, using empty value:\", error);\n return createEmptyValue();\n }\n });\n\n const [serializedValue, setSerializedValue] = useState(() => {\n return value ?? defaultValue ?? \"\";\n });\n\n const editorRef = useRef<RichTextEditorRef>(null);\n\n // Handle controlled value changes\n useEffect(() => {\n if (value !== undefined && value !== serializedValue) {\n const newSlateValue = value ? fromHTML(value) : createEmptyValue();\n setInternalValue(newSlateValue);\n setSerializedValue(value);\n }\n }, [value, serializedValue]);\n\n const handleChange = useCallback(\n (slateValue: ReturnType<typeof createEmptyValue>) => {\n const newHtml = toHTML(slateValue);\n const hasSerializedValueChanged = newHtml !== serializedValue;\n\n setInternalValue(slateValue);\n setSerializedValue(newHtml);\n\n // Only call onChange if the serialized HTML actually changed\n if (hasSerializedValueChanged && onChange) {\n onChange(newHtml);\n }\n },\n [serializedValue, onChange]\n );\n\n const currentValue = internalValue;\n\n // Safety check: ensure we always have a valid Slate value\n const safeValue = validSlateStateAdapter(currentValue);\n\n return (\n <RichTextInputRootSlot\n {...recipeProps}\n {...styleProps}\n {...functionalProps}\n {...dataAttributes}\n ref={forwardedRef}\n >\n <RichTextEditor\n ref={editorRef}\n value={safeValue}\n onChange={handleChange}\n onFocus={onFocus}\n onBlur={onBlur}\n placeholder={placeholder}\n isDisabled={isDisabled}\n isReadOnly={isReadOnly}\n autoFocus={autoFocus}\n toolbar={\n !isReadOnly ? <RichTextToolbar isDisabled={isDisabled} /> : null\n }\n />\n </RichTextInputRootSlot>\n );\n};\n\nRichTextInput.displayName = \"RichTextInput\";\n"],"names":["richTextInputRecipe","defineSlotRecipe","withProvider","withContext","createSlotRecipeContext","RichTextInputRootSlot","RichTextInputToolbarSlot","RichTextInputEditableSlot","History","value","isPlainObject","Operation","SAVING","MERGING","SPLITTING_ONCE","HistoryEditor","Editor","editor","fn","prev","withHistory","e","apply","history","redos","batch","Transforms","op","undos","inverseOps","operations","lastBatch","lastOp","save","merge","shouldSave","shouldMerge","stack","Path","RichTextEditor","forwardRef","props","forwardedRef","onChange","onFocus","onBlur","placeholder","EDITOR_DEFAULTS","isDisabled","isReadOnly","autoFocus","toolbar","useMemo","baseEditor","createEditor","withLinks","withReact","handleKeyDown","useKeyboardShortcuts","handleFocus","useCallback","event","handleBlur","useImperativeHandle","focusEditor","html","resetEditor","renderElement","jsx","Element","renderLeaf","Leaf","defaultValue","createEmptyValue","safeInitialValue","jsxs","Slate","Editable","FormattingMenu","useSlate","withPreservedSelection","usePreservedSelection","allSelectedKeys","handleAllSelectionChange","useFormattingState","Menu","Tooltip","IconButton","MoreHoriz","Box","FormatStrikethrough","Text","Code","RichTextToolbar","currentTextStyle","selectedTextStyleLabel","handleTextStyleChange","handleListToggle","selectedFormatKeys","selectedListKeys","hasUndos","hasRedos","useToolbarState","Toolbar","Group","styleId","KeyboardArrowDown","textStyles","style","Divider","ToggleButtonGroup","IconToggleButton","toggleMark","FormatBold","VisuallyHidden","FormatItalic","FormatUnderlined","FormatListBulleted","FormatListNumbered","Undo","Redo","RichTextInput","isInvalid","restProps","recipe","useSlotRecipe","recipeProps","remainingProps","styleProps","functionalProps","extractStyleProps","dataAttributes","internalValue","setInternalValue","useState","initialHtml","fromHTML","error","serializedValue","setSerializedValue","editorRef","useRef","useEffect","newSlateValue","handleChange","slateValue","newHtml","toHTML","hasSerializedValueChanged","safeValue","validSlateStateAdapter"],"mappings":"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","x_google_ignoreList":[2]}
|
|
@@ -1,2 +1,2 @@
|
|
|
1
|
-
"use strict";const e=require("react/jsx-runtime"),p=require("react"),k=require("@chakra-ui/react"),oe=require("./extractStyleProps-yFm0qaXg.cjs.js"),n=require("./slate-helpers-CMAwCMk0.cjs.js"),D=require("./use-formatting-state-Denpy3Zo.cjs.js"),I=require("../components/constants.cjs"),b=require("./box-BPfqlznQ.cjs.js"),N=require("./divider-CTTExmLv.cjs.js"),U=require("./group-Buy-O6Mr.cjs.js"),O=require("./icon-button-Dqhm4rBI.cjs.js"),w=require("./icon-toggle-button-DIfDVDd4.cjs.js"),v=require("./text-hUMahKuA.cjs.js"),d=require("./tooltip-BFuuQNa4.cjs.js"),M=require("./visually-hidden-Bh-G5QHv.cjs.js"),_=require("./toggle-button-group-Dq51N27j.cjs.js"),re=require("./toolbar-CzXpYEbP.cjs.js"),f=require("@commercetools/nimbus-icons"),y=require("./menu-C41LRy4b.cjs.js"),G=k.defineSlotRecipe({slots:["root","toolbar","editable"],className:"nimbus-rich-text-input",base:{root:{display:"flex",flexDirection:"column",position:"relative",width:"full",borderRadius:"200",borderWidth:"{sizes.25}",colorPalette:"slate",borderColor:"colorPalette.7",backgroundColor:"colorPalette.contrast","&[data-invalid='true']":{borderWidth:"{sizes.50}",borderColor:"critical.7"}},toolbar:{boxShadow:"1","[data-disabled='true'] &":{opacity:"0.5"}},editable:{padding:"400",minHeight:"inherit",outline:"none","[data-disabled='true'] &":{cursor:"not-allowed",opacity:"0.5"},"& p":{textStyle:"md",fontWeight:"500"},"& h1":{textStyle:"2xl",fontWeight:"500"},"& h2":{textStyle:"xl",fontWeight:"500"},"& h3":{textStyle:"lg",fontWeight:"500"},"& h4":{textStyle:"md",fontWeight:"500"},"& h5":{textStyle:"xs",fontWeight:"500"},"& blockquote":{textStyle:"md",fontWeight:"400",borderLeftWidth:"{sizes.100}",paddingLeft:"400"},"& ul":{paddingLeft:"600",listStyleType:"disc"},"& ol":{paddingLeft:"600",listStyleType:"decimal"},"& code":{padding:"100",fontFamily:"mono"},"& pre":{padding:"300",borderRadius:"200",overflow:"auto","& code":{padding:"0"}},"& a":{color:"primary.11",textDecoration:"underline",cursor:"pointer",_hover:{textDecoration:"none"}},"& strong":{fontWeight:"700"},"& em":{fontStyle:"italic"},"& u":{textDecoration:"underline"},"& del":{textDecoration:"line-through"},"& sup":{fontSize:"75%",verticalAlign:"super",lineHeight:"0"},"& sub":{fontSize:"75%",verticalAlign:"sub",lineHeight:"0"}}},variants:{}}),{withProvider:ne,withContext:K}=k.createSlotRecipeContext({recipe:G}),ie=ne("div","root"),se=K("div","toolbar"),le=K("div","editable");var ae={isHistory(t){return n.isPlainObject(t)&&Array.isArray(t.redos)&&Array.isArray(t.undos)&&(t.redos.length===0||n.Operation.isOperationList(t.redos[0].operations))&&(t.undos.length===0||n.Operation.isOperationList(t.undos[0].operations))}},z=new WeakMap,S=new WeakMap,C=new WeakMap,m={isHistoryEditor(t){return ae.isHistory(t.history)&&n.Editor.isEditor(t)},isMerging(t){return S.get(t)},isSplittingOnce(t){return C.get(t)},setSplittingOnce(t,o){C.set(t,o)},isSaving(t){return z.get(t)},redo(t){t.redo()},undo(t){t.undo()},withMerging(t,o){var i=m.isMerging(t);S.set(t,!0),o(),S.set(t,i)},withNewBatch(t,o){var i=m.isMerging(t);S.set(t,!0),C.set(t,!0),o(),S.set(t,i),C.delete(t)},withoutMerging(t,o){var i=m.isMerging(t);S.set(t,!1),o(),S.set(t,i)},withoutSaving(t,o){var i=m.isSaving(t);z.set(t,!1);try{o()}finally{z.set(t,i)}}},de=t=>{var o=t,{apply:i}=o;return o.history={undos:[],redos:[]},o.redo=()=>{var{history:l}=o,{redos:s}=l;if(s.length>0){var a=s[s.length-1];a.selectionBefore&&n.Transforms.setSelection(o,a.selectionBefore),m.withoutSaving(o,()=>{n.Editor.withoutNormalizing(o,()=>{for(var c of a.operations)o.apply(c)})}),l.redos.pop(),o.writeHistory("undos",a)}},o.undo=()=>{var{history:l}=o,{undos:s}=l;if(s.length>0){var a=s[s.length-1];m.withoutSaving(o,()=>{n.Editor.withoutNormalizing(o,()=>{var c=a.operations.map(n.Operation.inverse).reverse();for(var u of c)o.apply(u);a.selectionBefore&&n.Transforms.setSelection(o,a.selectionBefore)})}),o.writeHistory("redos",a),l.undos.pop()}},o.apply=l=>{var{operations:s,history:a}=o,{undos:c}=a,u=c[c.length-1],j=u&&u.operations[u.operations.length-1],g=m.isSaving(o),h=m.isMerging(o);if(g==null&&(g=ue(l)),g){if(h==null&&(u==null?h=!1:s.length!==0?h=!0:h=ce(l,j)),m.isSplittingOnce(o)&&(h=!1,m.setSplittingOnce(o,void 0)),u&&h)u.operations.push(l);else{var r={operations:[l],selectionBefore:o.selection};o.writeHistory("undos",r)}for(;c.length>100;)c.shift();a.redos=[]}i(l)},o.writeHistory=(l,s)=>{o.history[l].push(s)},o},ce=(t,o)=>!!(o&&t.type==="insert_text"&&o.type==="insert_text"&&t.offset===o.offset+o.text.length&&n.Path.equals(t.path,o.path)||o&&t.type==="remove_text"&&o.type==="remove_text"&&t.offset+t.text.length===o.offset&&n.Path.equals(t.path,o.path)),ue=(t,o)=>t.type!=="set_selection";const X=p.forwardRef((t,o)=>{const{value:i,onChange:l,onFocus:s,onBlur:a,placeholder:c=I.EDITOR_DEFAULTS.placeholder,isDisabled:u=I.EDITOR_DEFAULTS.isDisabled,isReadOnly:j=I.EDITOR_DEFAULTS.isReadOnly,autoFocus:g=I.EDITOR_DEFAULTS.autoFocus,toolbar:h}=t,r=p.useMemo(()=>{const x=n.createEditor();return n.withLinks(de(n.withReact(x)))},[]),{handleKeyDown:E}=D.useKeyboardShortcuts({editor:r}),H=p.useCallback(x=>{s&&s(x)},[s]),L=p.useCallback(x=>{a&&a(x)},[a]);p.useImperativeHandle(o,()=>({focus:()=>n.focusEditor(r),resetValue:x=>n.resetEditor(r,x)}),[r]);const P=p.useCallback(x=>e.jsx(n.Element$1,{...x}),[]),F=p.useCallback(x=>e.jsx(n.Leaf,{...x}),[]),q=n.createEmptyValue(),V=Array.isArray(i)&&i.length>0?i:q;return e.jsxs(n.Slate,{editor:r,value:V,onChange:l,children:[h&&e.jsx(se,{children:h}),e.jsx(le,{asChild:!0,children:e.jsx(n.Editable,{renderElement:P,renderLeaf:F,placeholder:c,autoFocus:g,readOnly:j||u,onKeyDown:E,onFocus:H,onBlur:L,"aria-label":"Rich text editor",role:"textbox","aria-multiline":"true"})})]})});X.displayName="RichTextEditor";const he=({isDisabled:t=!1})=>{const o=n.useSlate(),i=D.usePreservedSelection(o),{allSelectedKeys:l,handleAllSelectionChange:s}=D.useFormattingState({withPreservedSelection:i});return e.jsxs(y.Menu.Root,{selectionMode:"multiple",selectedKeys:l,onSelectionChange:s,children:[e.jsxs(d.Tooltip.Root,{delay:0,closeDelay:0,children:[e.jsx(y.Menu.Trigger,{asChild:!0,children:e.jsx(O.IconButton,{size:"xs",variant:"ghost","aria-label":"More formatting options",isDisabled:t,onMouseDown:a=>a.preventDefault(),children:e.jsx(f.MoreHoriz,{})})}),e.jsx(d.Tooltip.Content,{placement:"top",children:"More styles"})]}),e.jsxs(y.Menu.Content,{children:[e.jsx(y.Menu.Item,{id:"strikethrough",children:e.jsxs(b.Box,{slot:"label",display:"flex",alignItems:"center",gap:"200",children:[e.jsx(f.FormatStrikethrough,{}),e.jsx(v.Text,{textStyle:"sm",children:"Strikethrough"})]})}),e.jsx(y.Menu.Item,{id:"code",children:e.jsxs(b.Box,{slot:"label",display:"flex",alignItems:"center",gap:"200",children:[e.jsx(f.Code,{}),e.jsx(v.Text,{textStyle:"sm",children:"Code"})]})}),e.jsx(y.Menu.Item,{id:"superscript",children:e.jsxs(b.Box,{slot:"label",display:"flex",alignItems:"center",gap:"200",children:[e.jsx(v.Text,{children:"X²"}),e.jsx(v.Text,{textStyle:"sm",children:"Superscript"})]})}),e.jsx(y.Menu.Item,{id:"subscript",children:e.jsxs(b.Box,{slot:"label",display:"flex",alignItems:"center",gap:"200",children:[e.jsx(v.Text,{children:"X₂"}),e.jsx(v.Text,{textStyle:"sm",children:"Subscript"})]})})]})]})},$=({isDisabled:t=!1})=>{const o=n.useSlate(),i=D.usePreservedSelection(o),{currentTextStyle:l,selectedTextStyleLabel:s,handleTextStyleChange:a,handleListToggle:c,selectedFormatKeys:u,selectedListKeys:j,hasUndos:g,hasRedos:h}=D.useToolbarState({withPreservedSelection:i});return e.jsxs(re.Toolbar,{orientation:"horizontal","aria-label":"Text formatting",width:"full",overflow:"hidden",size:"xs",children:[e.jsx(U.Group,{children:e.jsxs(y.Menu.Root,{onAction:r=>a(String(r)),children:[e.jsxs(d.Tooltip.Root,{delay:0,closeDelay:0,children:[e.jsx(y.Menu.Trigger,{height:"800",width:"4000",bg:"primary.1",borderRadius:"200",_hover:{bg:"primary.2"},isDisabled:t,onMouseDown:r=>r.preventDefault(),"aria-label":"Text style menu",children:e.jsxs(b.Box,{display:"flex",alignItems:"center",gap:"200",px:"200",children:[e.jsx(b.Box,{display:"flex",alignItems:"center",gap:"200",flexGrow:"1",children:e.jsx(v.Text,{my:"auto",textStyle:"sm",fontWeight:"500",children:s})}),e.jsx(f.KeyboardArrowDown,{})]})}),e.jsx(d.Tooltip.Content,{placement:"top",children:"Text style"})]}),e.jsx(y.Menu.Content,{children:I.textStyles.map(r=>e.jsx(y.Menu.Item,{id:r.id,...l===r.id&&{"data-state":"checked"},children:e.jsx(v.Text,{...r.props,children:r.label})},r.id))})]})}),e.jsx(N.Divider,{orientation:"vertical"}),e.jsxs(_.ToggleButtonGroup.Root,{selectionMode:"multiple",selectedKeys:u,isDisabled:t,children:[e.jsxs(d.Tooltip.Root,{delay:0,closeDelay:0,children:[e.jsxs(w.IconToggleButton,{id:"bold",size:"xs",variant:"ghost","aria-label":"Bold",isDisabled:t,onMouseDown:r=>r.preventDefault(),onPress:i(()=>n.toggleMark(o,"bold")),children:[e.jsx(f.FormatBold,{}),e.jsx(M.VisuallyHidden,{children:"Bold"})]}),e.jsx(d.Tooltip.Content,{placement:"top",children:"Bold"})]}),e.jsxs(d.Tooltip.Root,{delay:0,closeDelay:0,children:[e.jsxs(w.IconToggleButton,{id:"italic",size:"xs",variant:"ghost","aria-label":"Italic",isDisabled:t,onMouseDown:r=>r.preventDefault(),onPress:i(()=>n.toggleMark(o,"italic")),children:[e.jsx(f.FormatItalic,{}),e.jsx(M.VisuallyHidden,{children:"Italic"})]}),e.jsx(d.Tooltip.Content,{placement:"top",children:"Italic"})]}),e.jsxs(d.Tooltip.Root,{delay:0,closeDelay:0,children:[e.jsxs(w.IconToggleButton,{id:"underline",size:"xs",variant:"ghost","aria-label":"Underline",isDisabled:t,onMouseDown:r=>r.preventDefault(),onPress:i(()=>n.toggleMark(o,"underline")),children:[e.jsx(f.FormatUnderlined,{}),e.jsx(M.VisuallyHidden,{children:"Underline"})]}),e.jsx(d.Tooltip.Content,{placement:"top",children:"Underline"})]})]}),e.jsx(he,{isDisabled:t}),e.jsx(N.Divider,{orientation:"vertical"}),e.jsxs(_.ToggleButtonGroup.Root,{selectionMode:"single",selectedKeys:j,onSelectionChange:c,"aria-label":"List formatting",isDisabled:t,children:[e.jsxs(d.Tooltip.Root,{delay:0,closeDelay:0,children:[e.jsx(w.IconToggleButton,{id:"bulleted-list",size:"xs",variant:"ghost","aria-label":"Bulleted List",isDisabled:t,onMouseDown:r=>r.preventDefault(),children:e.jsx(f.FormatListBulleted,{})}),e.jsx(d.Tooltip.Content,{placement:"top",children:"Bulleted list"})]}),e.jsxs(d.Tooltip.Root,{delay:0,closeDelay:0,children:[e.jsx(w.IconToggleButton,{id:"numbered-list",size:"xs",variant:"ghost","aria-label":"Numbered List",isDisabled:t,onMouseDown:r=>r.preventDefault(),children:e.jsx(f.FormatListNumbered,{})}),e.jsx(d.Tooltip.Content,{placement:"top",children:"Numbered list"})]})]}),e.jsx(b.Box,{flexGrow:"1"}),e.jsxs(U.Group,{children:[e.jsxs(d.Tooltip.Root,{delay:0,closeDelay:0,children:[e.jsxs(O.IconButton,{size:"xs",variant:"ghost","aria-label":"Undo",isDisabled:!g||t,onPress:i(()=>o.undo()),onMouseDown:r=>r.preventDefault(),children:[e.jsx(f.Undo,{}),e.jsx(M.VisuallyHidden,{children:"Undo"})]}),e.jsx(d.Tooltip.Content,{placement:"top",children:"Undo"})]}),e.jsxs(d.Tooltip.Root,{delay:0,closeDelay:0,children:[e.jsxs(O.IconButton,{size:"xs",variant:"ghost","aria-label":"Redo",isDisabled:!h||t,onPress:i(()=>o.redo()),onMouseDown:r=>r.preventDefault(),children:[e.jsx(f.Redo,{}),e.jsx(M.VisuallyHidden,{children:"Redo"})]}),e.jsx(d.Tooltip.Content,{placement:"top",children:"Redo"})]})]})]})};$.displayName="RichTextToolbar";const J=t=>{const{ref:o,value:i,defaultValue:l,onChange:s,onFocus:a,onBlur:c,placeholder:u="",isDisabled:j=!1,isReadOnly:g=!1,isInvalid:h=!1,autoFocus:r=!1,...E}=t,H=k.useSlotRecipe({recipe:G}),[L,P]=H.splitVariantProps({...E}),[F,q]=oe.extractStyleProps(P),V={"data-disabled":j?"true":void 0,"data-invalid":h?"true":void 0,"data-readonly":g?"true":void 0},[x,A]=p.useState(()=>{const T=i??l??"";try{return T?n.fromHTML(T):n.createEmptyValue()}catch(R){return console.warn("Failed to parse initial HTML, using empty value:",R),n.createEmptyValue()}}),[B,W]=p.useState(()=>i??l??""),Q=p.useRef(null);p.useEffect(()=>{if(i!==void 0&&i!==B){const T=i?n.fromHTML(i):n.createEmptyValue();A(T),W(i)}},[i,B]);const Y=p.useCallback(T=>{const R=n.toHTML(T),te=R!==B;A(T),W(R),te&&s&&s(R)},[B,s]),Z=x,ee=n.validSlateStateAdapter(Z);return e.jsx(ie,{...L,...F,...q,...V,ref:o,children:e.jsx(X,{ref:Q,value:ee,onChange:Y,onFocus:a,onBlur:c,placeholder:u,isDisabled:j,isReadOnly:g,autoFocus:r,toolbar:g?null:e.jsx($,{isDisabled:j})})})};J.displayName="RichTextInput";exports.RichTextInput=J;
|
|
2
|
-
//# sourceMappingURL=rich-text-input-
|
|
1
|
+
"use strict";const e=require("react/jsx-runtime"),p=require("react"),k=require("@chakra-ui/react"),oe=require("./extractStyleProps-yFm0qaXg.cjs.js"),n=require("./slate-helpers-BN_9Hky2.cjs.js"),D=require("./use-formatting-state-DVcnyVBl.cjs.js"),I=require("../components/constants.cjs"),b=require("./box-BwCVnAwb.cjs.js"),N=require("./divider-DU351gdE.cjs.js"),U=require("./group-Buy-O6Mr.cjs.js"),O=require("./icon-button-1MQYEWVd.cjs.js"),w=require("./icon-toggle-button-D42wYTJF.cjs.js"),v=require("./text-Dg1sFCuC.cjs.js"),d=require("./tooltip-CIAEV4_B.cjs.js"),M=require("./visually-hidden-Bh-G5QHv.cjs.js"),_=require("./toggle-button-group-LddoXszz.cjs.js"),re=require("./toolbar-CrxjHhQi.cjs.js"),f=require("@commercetools/nimbus-icons"),y=require("./menu-DHZ-kLy2.cjs.js"),G=k.defineSlotRecipe({slots:["root","toolbar","editable"],className:"nimbus-rich-text-input",base:{root:{display:"flex",flexDirection:"column",position:"relative",width:"full",borderRadius:"200",borderWidth:"{sizes.25}",colorPalette:"slate",borderColor:"colorPalette.7",backgroundColor:"colorPalette.contrast","&[data-invalid='true']":{borderWidth:"{sizes.50}",borderColor:"critical.7"}},toolbar:{boxShadow:"1","[data-disabled='true'] &":{opacity:"0.5"}},editable:{padding:"400",minHeight:"inherit",outline:"none","[data-disabled='true'] &":{cursor:"not-allowed",opacity:"0.5"},"& p":{textStyle:"md",fontWeight:"500"},"& h1":{textStyle:"2xl",fontWeight:"500"},"& h2":{textStyle:"xl",fontWeight:"500"},"& h3":{textStyle:"lg",fontWeight:"500"},"& h4":{textStyle:"md",fontWeight:"500"},"& h5":{textStyle:"xs",fontWeight:"500"},"& blockquote":{textStyle:"md",fontWeight:"400",borderLeftWidth:"{sizes.100}",paddingLeft:"400"},"& ul":{paddingLeft:"600",listStyleType:"disc"},"& ol":{paddingLeft:"600",listStyleType:"decimal"},"& code":{padding:"100",fontFamily:"mono"},"& pre":{padding:"300",borderRadius:"200",overflow:"auto","& code":{padding:"0"}},"& a":{color:"primary.11",textDecoration:"underline",cursor:"pointer",_hover:{textDecoration:"none"}},"& strong":{fontWeight:"700"},"& em":{fontStyle:"italic"},"& u":{textDecoration:"underline"},"& del":{textDecoration:"line-through"},"& sup":{fontSize:"75%",verticalAlign:"super",lineHeight:"0"},"& sub":{fontSize:"75%",verticalAlign:"sub",lineHeight:"0"}}},variants:{}}),{withProvider:ne,withContext:K}=k.createSlotRecipeContext({recipe:G}),ie=ne("div","root"),se=K("div","toolbar"),le=K("div","editable");var ae={isHistory(t){return n.isPlainObject(t)&&Array.isArray(t.redos)&&Array.isArray(t.undos)&&(t.redos.length===0||n.Operation.isOperationList(t.redos[0].operations))&&(t.undos.length===0||n.Operation.isOperationList(t.undos[0].operations))}},z=new WeakMap,S=new WeakMap,C=new WeakMap,m={isHistoryEditor(t){return ae.isHistory(t.history)&&n.Editor.isEditor(t)},isMerging(t){return S.get(t)},isSplittingOnce(t){return C.get(t)},setSplittingOnce(t,o){C.set(t,o)},isSaving(t){return z.get(t)},redo(t){t.redo()},undo(t){t.undo()},withMerging(t,o){var i=m.isMerging(t);S.set(t,!0),o(),S.set(t,i)},withNewBatch(t,o){var i=m.isMerging(t);S.set(t,!0),C.set(t,!0),o(),S.set(t,i),C.delete(t)},withoutMerging(t,o){var i=m.isMerging(t);S.set(t,!1),o(),S.set(t,i)},withoutSaving(t,o){var i=m.isSaving(t);z.set(t,!1);try{o()}finally{z.set(t,i)}}},de=t=>{var o=t,{apply:i}=o;return o.history={undos:[],redos:[]},o.redo=()=>{var{history:l}=o,{redos:s}=l;if(s.length>0){var a=s[s.length-1];a.selectionBefore&&n.Transforms.setSelection(o,a.selectionBefore),m.withoutSaving(o,()=>{n.Editor.withoutNormalizing(o,()=>{for(var c of a.operations)o.apply(c)})}),l.redos.pop(),o.writeHistory("undos",a)}},o.undo=()=>{var{history:l}=o,{undos:s}=l;if(s.length>0){var a=s[s.length-1];m.withoutSaving(o,()=>{n.Editor.withoutNormalizing(o,()=>{var c=a.operations.map(n.Operation.inverse).reverse();for(var u of c)o.apply(u);a.selectionBefore&&n.Transforms.setSelection(o,a.selectionBefore)})}),o.writeHistory("redos",a),l.undos.pop()}},o.apply=l=>{var{operations:s,history:a}=o,{undos:c}=a,u=c[c.length-1],j=u&&u.operations[u.operations.length-1],g=m.isSaving(o),h=m.isMerging(o);if(g==null&&(g=ue(l)),g){if(h==null&&(u==null?h=!1:s.length!==0?h=!0:h=ce(l,j)),m.isSplittingOnce(o)&&(h=!1,m.setSplittingOnce(o,void 0)),u&&h)u.operations.push(l);else{var r={operations:[l],selectionBefore:o.selection};o.writeHistory("undos",r)}for(;c.length>100;)c.shift();a.redos=[]}i(l)},o.writeHistory=(l,s)=>{o.history[l].push(s)},o},ce=(t,o)=>!!(o&&t.type==="insert_text"&&o.type==="insert_text"&&t.offset===o.offset+o.text.length&&n.Path.equals(t.path,o.path)||o&&t.type==="remove_text"&&o.type==="remove_text"&&t.offset+t.text.length===o.offset&&n.Path.equals(t.path,o.path)),ue=(t,o)=>t.type!=="set_selection";const X=p.forwardRef((t,o)=>{const{value:i,onChange:l,onFocus:s,onBlur:a,placeholder:c=I.EDITOR_DEFAULTS.placeholder,isDisabled:u=I.EDITOR_DEFAULTS.isDisabled,isReadOnly:j=I.EDITOR_DEFAULTS.isReadOnly,autoFocus:g=I.EDITOR_DEFAULTS.autoFocus,toolbar:h}=t,r=p.useMemo(()=>{const x=n.createEditor();return n.withLinks(de(n.withReact(x)))},[]),{handleKeyDown:E}=D.useKeyboardShortcuts({editor:r}),H=p.useCallback(x=>{s&&s(x)},[s]),L=p.useCallback(x=>{a&&a(x)},[a]);p.useImperativeHandle(o,()=>({focus:()=>n.focusEditor(r),resetValue:x=>n.resetEditor(r,x)}),[r]);const P=p.useCallback(x=>e.jsx(n.Element$1,{...x}),[]),F=p.useCallback(x=>e.jsx(n.Leaf,{...x}),[]),q=n.createEmptyValue(),V=Array.isArray(i)&&i.length>0?i:q;return e.jsxs(n.Slate,{editor:r,value:V,onChange:l,children:[h&&e.jsx(se,{children:h}),e.jsx(le,{asChild:!0,children:e.jsx(n.Editable,{renderElement:P,renderLeaf:F,placeholder:c,autoFocus:g,readOnly:j||u,onKeyDown:E,onFocus:H,onBlur:L,"aria-label":"Rich text editor",role:"textbox","aria-multiline":"true"})})]})});X.displayName="RichTextEditor";const he=({isDisabled:t=!1})=>{const o=n.useSlate(),i=D.usePreservedSelection(o),{allSelectedKeys:l,handleAllSelectionChange:s}=D.useFormattingState({withPreservedSelection:i});return e.jsxs(y.Menu.Root,{selectionMode:"multiple",selectedKeys:l,onSelectionChange:s,children:[e.jsxs(d.Tooltip.Root,{delay:0,closeDelay:0,children:[e.jsx(y.Menu.Trigger,{asChild:!0,children:e.jsx(O.IconButton,{size:"xs",variant:"ghost","aria-label":"More formatting options",isDisabled:t,onMouseDown:a=>a.preventDefault(),children:e.jsx(f.MoreHoriz,{})})}),e.jsx(d.Tooltip.Content,{placement:"top",children:"More styles"})]}),e.jsxs(y.Menu.Content,{children:[e.jsx(y.Menu.Item,{id:"strikethrough",children:e.jsxs(b.Box,{slot:"label",display:"flex",alignItems:"center",gap:"200",children:[e.jsx(f.FormatStrikethrough,{}),e.jsx(v.Text,{textStyle:"sm",children:"Strikethrough"})]})}),e.jsx(y.Menu.Item,{id:"code",children:e.jsxs(b.Box,{slot:"label",display:"flex",alignItems:"center",gap:"200",children:[e.jsx(f.Code,{}),e.jsx(v.Text,{textStyle:"sm",children:"Code"})]})}),e.jsx(y.Menu.Item,{id:"superscript",children:e.jsxs(b.Box,{slot:"label",display:"flex",alignItems:"center",gap:"200",children:[e.jsx(v.Text,{children:"X²"}),e.jsx(v.Text,{textStyle:"sm",children:"Superscript"})]})}),e.jsx(y.Menu.Item,{id:"subscript",children:e.jsxs(b.Box,{slot:"label",display:"flex",alignItems:"center",gap:"200",children:[e.jsx(v.Text,{children:"X₂"}),e.jsx(v.Text,{textStyle:"sm",children:"Subscript"})]})})]})]})},$=({isDisabled:t=!1})=>{const o=n.useSlate(),i=D.usePreservedSelection(o),{currentTextStyle:l,selectedTextStyleLabel:s,handleTextStyleChange:a,handleListToggle:c,selectedFormatKeys:u,selectedListKeys:j,hasUndos:g,hasRedos:h}=D.useToolbarState({withPreservedSelection:i});return e.jsxs(re.Toolbar,{orientation:"horizontal","aria-label":"Text formatting",width:"full",overflow:"hidden",size:"xs",children:[e.jsx(U.Group,{children:e.jsxs(y.Menu.Root,{onAction:r=>a(String(r)),children:[e.jsxs(d.Tooltip.Root,{delay:0,closeDelay:0,children:[e.jsx(y.Menu.Trigger,{height:"800",width:"4000",bg:"primary.1",borderRadius:"200",_hover:{bg:"primary.2"},isDisabled:t,onMouseDown:r=>r.preventDefault(),"aria-label":"Text style menu",children:e.jsxs(b.Box,{display:"flex",alignItems:"center",gap:"200",px:"200",children:[e.jsx(b.Box,{display:"flex",alignItems:"center",gap:"200",flexGrow:"1",children:e.jsx(v.Text,{my:"auto",textStyle:"sm",fontWeight:"500",children:s})}),e.jsx(f.KeyboardArrowDown,{})]})}),e.jsx(d.Tooltip.Content,{placement:"top",children:"Text style"})]}),e.jsx(y.Menu.Content,{children:I.textStyles.map(r=>e.jsx(y.Menu.Item,{id:r.id,...l===r.id&&{"data-state":"checked"},children:e.jsx(v.Text,{...r.props,children:r.label})},r.id))})]})}),e.jsx(N.Divider,{orientation:"vertical"}),e.jsxs(_.ToggleButtonGroup.Root,{selectionMode:"multiple",selectedKeys:u,isDisabled:t,children:[e.jsxs(d.Tooltip.Root,{delay:0,closeDelay:0,children:[e.jsxs(w.IconToggleButton,{id:"bold",size:"xs",variant:"ghost","aria-label":"Bold",isDisabled:t,onMouseDown:r=>r.preventDefault(),onPress:i(()=>n.toggleMark(o,"bold")),children:[e.jsx(f.FormatBold,{}),e.jsx(M.VisuallyHidden,{children:"Bold"})]}),e.jsx(d.Tooltip.Content,{placement:"top",children:"Bold"})]}),e.jsxs(d.Tooltip.Root,{delay:0,closeDelay:0,children:[e.jsxs(w.IconToggleButton,{id:"italic",size:"xs",variant:"ghost","aria-label":"Italic",isDisabled:t,onMouseDown:r=>r.preventDefault(),onPress:i(()=>n.toggleMark(o,"italic")),children:[e.jsx(f.FormatItalic,{}),e.jsx(M.VisuallyHidden,{children:"Italic"})]}),e.jsx(d.Tooltip.Content,{placement:"top",children:"Italic"})]}),e.jsxs(d.Tooltip.Root,{delay:0,closeDelay:0,children:[e.jsxs(w.IconToggleButton,{id:"underline",size:"xs",variant:"ghost","aria-label":"Underline",isDisabled:t,onMouseDown:r=>r.preventDefault(),onPress:i(()=>n.toggleMark(o,"underline")),children:[e.jsx(f.FormatUnderlined,{}),e.jsx(M.VisuallyHidden,{children:"Underline"})]}),e.jsx(d.Tooltip.Content,{placement:"top",children:"Underline"})]})]}),e.jsx(he,{isDisabled:t}),e.jsx(N.Divider,{orientation:"vertical"}),e.jsxs(_.ToggleButtonGroup.Root,{selectionMode:"single",selectedKeys:j,onSelectionChange:c,"aria-label":"List formatting",isDisabled:t,children:[e.jsxs(d.Tooltip.Root,{delay:0,closeDelay:0,children:[e.jsx(w.IconToggleButton,{id:"bulleted-list",size:"xs",variant:"ghost","aria-label":"Bulleted List",isDisabled:t,onMouseDown:r=>r.preventDefault(),children:e.jsx(f.FormatListBulleted,{})}),e.jsx(d.Tooltip.Content,{placement:"top",children:"Bulleted list"})]}),e.jsxs(d.Tooltip.Root,{delay:0,closeDelay:0,children:[e.jsx(w.IconToggleButton,{id:"numbered-list",size:"xs",variant:"ghost","aria-label":"Numbered List",isDisabled:t,onMouseDown:r=>r.preventDefault(),children:e.jsx(f.FormatListNumbered,{})}),e.jsx(d.Tooltip.Content,{placement:"top",children:"Numbered list"})]})]}),e.jsx(b.Box,{flexGrow:"1"}),e.jsxs(U.Group,{children:[e.jsxs(d.Tooltip.Root,{delay:0,closeDelay:0,children:[e.jsxs(O.IconButton,{size:"xs",variant:"ghost","aria-label":"Undo",isDisabled:!g||t,onPress:i(()=>o.undo()),onMouseDown:r=>r.preventDefault(),children:[e.jsx(f.Undo,{}),e.jsx(M.VisuallyHidden,{children:"Undo"})]}),e.jsx(d.Tooltip.Content,{placement:"top",children:"Undo"})]}),e.jsxs(d.Tooltip.Root,{delay:0,closeDelay:0,children:[e.jsxs(O.IconButton,{size:"xs",variant:"ghost","aria-label":"Redo",isDisabled:!h||t,onPress:i(()=>o.redo()),onMouseDown:r=>r.preventDefault(),children:[e.jsx(f.Redo,{}),e.jsx(M.VisuallyHidden,{children:"Redo"})]}),e.jsx(d.Tooltip.Content,{placement:"top",children:"Redo"})]})]})]})};$.displayName="RichTextToolbar";const J=t=>{const{ref:o,value:i,defaultValue:l,onChange:s,onFocus:a,onBlur:c,placeholder:u="",isDisabled:j=!1,isReadOnly:g=!1,isInvalid:h=!1,autoFocus:r=!1,...E}=t,H=k.useSlotRecipe({recipe:G}),[L,P]=H.splitVariantProps({...E}),[F,q]=oe.extractStyleProps(P),V={"data-disabled":j?"true":void 0,"data-invalid":h?"true":void 0,"data-readonly":g?"true":void 0},[x,A]=p.useState(()=>{const T=i??l??"";try{return T?n.fromHTML(T):n.createEmptyValue()}catch(R){return console.warn("Failed to parse initial HTML, using empty value:",R),n.createEmptyValue()}}),[B,W]=p.useState(()=>i??l??""),Q=p.useRef(null);p.useEffect(()=>{if(i!==void 0&&i!==B){const T=i?n.fromHTML(i):n.createEmptyValue();A(T),W(i)}},[i,B]);const Y=p.useCallback(T=>{const R=n.toHTML(T),te=R!==B;A(T),W(R),te&&s&&s(R)},[B,s]),Z=x,ee=n.validSlateStateAdapter(Z);return e.jsx(ie,{...L,...F,...q,...V,ref:o,children:e.jsx(X,{ref:Q,value:ee,onChange:Y,onFocus:a,onBlur:c,placeholder:u,isDisabled:j,isReadOnly:g,autoFocus:r,toolbar:g?null:e.jsx($,{isDisabled:j})})})};J.displayName="RichTextInput";exports.RichTextInput=J;
|
|
2
|
+
//# sourceMappingURL=rich-text-input-DXzaZuhE.cjs.js.map
|
package/dist/chunks/{rich-text-input-Dmp5hx2t.cjs.js.map → rich-text-input-DXzaZuhE.cjs.js.map}
RENAMED
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"rich-text-input-Dmp5hx2t.cjs.js","sources":["../../src/components/rich-text-input/rich-text-input.recipe.tsx","../../src/components/rich-text-input/rich-text-input.slots.tsx","../../../../node_modules/.pnpm/slate-history@0.113.1_slate@0.75.0/node_modules/slate-history/dist/index.es.js","../../src/components/rich-text-input/components/rich-text-editor.tsx","../../src/components/rich-text-input/components/formatting-menu.tsx","../../src/components/rich-text-input/components/rich-text-toolbar.tsx","../../src/components/rich-text-input/rich-text-input.tsx"],"sourcesContent":["import { defineSlotRecipe } from \"@chakra-ui/react\";\n\nexport const richTextInputRecipe = defineSlotRecipe({\n slots: [\"root\", \"toolbar\", \"editable\"],\n className: \"nimbus-rich-text-input\",\n base: {\n root: {\n display: \"flex\",\n flexDirection: \"column\",\n position: \"relative\",\n width: \"full\",\n borderRadius: \"200\",\n borderWidth: \"{sizes.25}\",\n colorPalette: \"slate\",\n borderColor: \"colorPalette.7\",\n backgroundColor: \"colorPalette.contrast\",\n\n // Invalid state styling\n \"&[data-invalid='true']\": {\n borderWidth: \"{sizes.50}\",\n borderColor: \"critical.7\",\n },\n },\n toolbar: {\n boxShadow: \"1\",\n\n // Disabled state styling for toolbar\n \"[data-disabled='true'] &\": {\n opacity: \"0.5\",\n },\n },\n editable: {\n padding: \"400\",\n minHeight: \"inherit\",\n outline: \"none\",\n\n // Disabled state styling for editable\n \"[data-disabled='true'] &\": {\n cursor: \"not-allowed\",\n opacity: \"0.5\",\n },\n\n // Styling for user-facing editor text\n \"& p\": {\n textStyle: \"md\",\n fontWeight: \"500\",\n },\n \"& h1\": {\n textStyle: \"2xl\",\n fontWeight: \"500\",\n },\n \"& h2\": {\n textStyle: \"xl\",\n fontWeight: \"500\",\n },\n \"& h3\": {\n textStyle: \"lg\",\n fontWeight: \"500\",\n },\n \"& h4\": {\n textStyle: \"md\",\n fontWeight: \"500\",\n },\n \"& h5\": {\n textStyle: \"xs\",\n fontWeight: \"500\",\n },\n \"& blockquote\": {\n textStyle: \"md\",\n fontWeight: \"400\",\n borderLeftWidth: \"{sizes.100}\",\n paddingLeft: \"400\",\n },\n \"& ul\": {\n paddingLeft: \"600\",\n listStyleType: \"disc\",\n },\n \"& ol\": {\n paddingLeft: \"600\",\n listStyleType: \"decimal\",\n },\n \"& code\": {\n padding: \"100\",\n fontFamily: \"mono\",\n },\n \"& pre\": {\n padding: \"300\",\n borderRadius: \"200\",\n overflow: \"auto\",\n \"& code\": {\n padding: \"0\",\n },\n },\n \"& a\": {\n color: \"primary.11\",\n textDecoration: \"underline\",\n cursor: \"pointer\",\n _hover: {\n textDecoration: \"none\",\n },\n },\n \"& strong\": {\n fontWeight: \"700\",\n },\n \"& em\": {\n fontStyle: \"italic\",\n },\n \"& u\": {\n textDecoration: \"underline\",\n },\n \"& del\": {\n textDecoration: \"line-through\",\n },\n \"& sup\": {\n fontSize: \"75%\",\n verticalAlign: \"super\",\n lineHeight: \"0\",\n },\n \"& sub\": {\n fontSize: \"75%\",\n verticalAlign: \"sub\",\n lineHeight: \"0\",\n },\n },\n },\n variants: {},\n});\n","import {\n type HTMLChakraProps,\n type RecipeVariantProps,\n type UnstyledProp,\n createSlotRecipeContext,\n} from \"@chakra-ui/react\";\nimport { richTextInputRecipe } from \"./rich-text-input.recipe\";\n\nconst { withProvider, withContext } = createSlotRecipeContext({\n recipe: richTextInputRecipe,\n});\n\n// Root slot\nexport type RichTextInputRootSlotProps = HTMLChakraProps<\n \"div\",\n RecipeVariantProps<typeof richTextInputRecipe> & UnstyledProp\n>;\n\nexport const RichTextInputRootSlot = withProvider<\n HTMLDivElement,\n RichTextInputRootSlotProps\n>(\"div\", \"root\");\n\n// Toolbar slot\nexport type RichTextInputToolbarSlotProps = HTMLChakraProps<\"div\">;\n\nexport const RichTextInputToolbarSlot = withContext<\n HTMLDivElement,\n RichTextInputToolbarSlotProps\n>(\"div\", \"toolbar\");\n\n// Editable slot\nexport type RichTextInputEditableSlotProps = HTMLChakraProps<\"div\">;\nexport const RichTextInputEditableSlot = withContext<\n HTMLDivElement,\n RichTextInputEditableSlotProps\n>(\"div\", \"editable\");\n","import { isPlainObject } from 'is-plain-object';\nimport { Operation, Editor, Transforms, Path } from 'slate';\n\n// eslint-disable-next-line no-redeclare\nvar History = {\n /**\n * Check if a value is a `History` object.\n */\n isHistory(value) {\n return isPlainObject(value) && Array.isArray(value.redos) && Array.isArray(value.undos) && (value.redos.length === 0 || Operation.isOperationList(value.redos[0].operations)) && (value.undos.length === 0 || Operation.isOperationList(value.undos[0].operations));\n }\n};\n\n/**\n * Weakmaps for attaching state to the editor.\n */\nvar HISTORY = new WeakMap();\nvar SAVING = new WeakMap();\nvar MERGING = new WeakMap();\nvar SPLITTING_ONCE = new WeakMap();\n// eslint-disable-next-line no-redeclare\nvar HistoryEditor = {\n /**\n * Check if a value is a `HistoryEditor` object.\n */\n isHistoryEditor(value) {\n return History.isHistory(value.history) && Editor.isEditor(value);\n },\n /**\n * Get the merge flag's current value.\n */\n isMerging(editor) {\n return MERGING.get(editor);\n },\n /**\n * Get the splitting once flag's current value.\n */\n isSplittingOnce(editor) {\n return SPLITTING_ONCE.get(editor);\n },\n setSplittingOnce(editor, value) {\n SPLITTING_ONCE.set(editor, value);\n },\n /**\n * Get the saving flag's current value.\n */\n isSaving(editor) {\n return SAVING.get(editor);\n },\n /**\n * Redo to the previous saved state.\n */\n redo(editor) {\n editor.redo();\n },\n /**\n * Undo to the previous saved state.\n */\n undo(editor) {\n editor.undo();\n },\n /**\n * Apply a series of changes inside a synchronous `fn`, These operations will\n * be merged into the previous history.\n */\n withMerging(editor, fn) {\n var prev = HistoryEditor.isMerging(editor);\n MERGING.set(editor, true);\n fn();\n MERGING.set(editor, prev);\n },\n /**\n * Apply a series of changes inside a synchronous `fn`, ensuring that the first\n * operation starts a new batch in the history. Subsequent operations will be\n * merged as usual.\n */\n withNewBatch(editor, fn) {\n var prev = HistoryEditor.isMerging(editor);\n MERGING.set(editor, true);\n SPLITTING_ONCE.set(editor, true);\n fn();\n MERGING.set(editor, prev);\n SPLITTING_ONCE.delete(editor);\n },\n /**\n * Apply a series of changes inside a synchronous `fn`, without merging any of\n * the new operations into previous save point in the history.\n */\n withoutMerging(editor, fn) {\n var prev = HistoryEditor.isMerging(editor);\n MERGING.set(editor, false);\n fn();\n MERGING.set(editor, prev);\n },\n /**\n * Apply a series of changes inside a synchronous `fn`, without saving any of\n * their operations into the history.\n */\n withoutSaving(editor, fn) {\n var prev = HistoryEditor.isSaving(editor);\n SAVING.set(editor, false);\n try {\n fn();\n } finally {\n SAVING.set(editor, prev);\n }\n }\n};\n\n/**\n * The `withHistory` plugin keeps track of the operation history of a Slate\n * editor as operations are applied to it, using undo and redo stacks.\n *\n * If you are using TypeScript, you must extend Slate's CustomTypes to use\n * this plugin.\n *\n * See https://docs.slatejs.org/concepts/11-typescript to learn how.\n */\nvar withHistory = editor => {\n var e = editor;\n var {\n apply\n } = e;\n e.history = {\n undos: [],\n redos: []\n };\n e.redo = () => {\n var {\n history\n } = e;\n var {\n redos\n } = history;\n if (redos.length > 0) {\n var batch = redos[redos.length - 1];\n if (batch.selectionBefore) {\n Transforms.setSelection(e, batch.selectionBefore);\n }\n HistoryEditor.withoutSaving(e, () => {\n Editor.withoutNormalizing(e, () => {\n for (var op of batch.operations) {\n e.apply(op);\n }\n });\n });\n history.redos.pop();\n e.writeHistory('undos', batch);\n }\n };\n e.undo = () => {\n var {\n history\n } = e;\n var {\n undos\n } = history;\n if (undos.length > 0) {\n var batch = undos[undos.length - 1];\n HistoryEditor.withoutSaving(e, () => {\n Editor.withoutNormalizing(e, () => {\n var inverseOps = batch.operations.map(Operation.inverse).reverse();\n for (var op of inverseOps) {\n e.apply(op);\n }\n if (batch.selectionBefore) {\n Transforms.setSelection(e, batch.selectionBefore);\n }\n });\n });\n e.writeHistory('redos', batch);\n history.undos.pop();\n }\n };\n e.apply = op => {\n var {\n operations,\n history\n } = e;\n var {\n undos\n } = history;\n var lastBatch = undos[undos.length - 1];\n var lastOp = lastBatch && lastBatch.operations[lastBatch.operations.length - 1];\n var save = HistoryEditor.isSaving(e);\n var merge = HistoryEditor.isMerging(e);\n if (save == null) {\n save = shouldSave(op);\n }\n if (save) {\n if (merge == null) {\n if (lastBatch == null) {\n merge = false;\n } else if (operations.length !== 0) {\n merge = true;\n } else {\n merge = shouldMerge(op, lastOp);\n }\n }\n if (HistoryEditor.isSplittingOnce(e)) {\n merge = false;\n HistoryEditor.setSplittingOnce(e, undefined);\n }\n if (lastBatch && merge) {\n lastBatch.operations.push(op);\n } else {\n var batch = {\n operations: [op],\n selectionBefore: e.selection\n };\n e.writeHistory('undos', batch);\n }\n while (undos.length > 100) {\n undos.shift();\n }\n history.redos = [];\n }\n apply(op);\n };\n e.writeHistory = (stack, batch) => {\n e.history[stack].push(batch);\n };\n return e;\n};\n/**\n * Check whether to merge an operation into the previous operation.\n */\nvar shouldMerge = (op, prev) => {\n if (prev && op.type === 'insert_text' && prev.type === 'insert_text' && op.offset === prev.offset + prev.text.length && Path.equals(op.path, prev.path)) {\n return true;\n }\n if (prev && op.type === 'remove_text' && prev.type === 'remove_text' && op.offset + op.text.length === prev.offset && Path.equals(op.path, prev.path)) {\n return true;\n }\n return false;\n};\n/**\n * Check whether an operation needs to be saved to the history.\n */\nvar shouldSave = (op, prev) => {\n if (op.type === 'set_selection') {\n return false;\n }\n return true;\n};\n\nexport { HISTORY, History, HistoryEditor, MERGING, SAVING, SPLITTING_ONCE, withHistory };\n//# sourceMappingURL=index.es.js.map\n","import {\n useMemo,\n useCallback,\n useImperativeHandle,\n forwardRef,\n type ForwardedRef,\n type FocusEventHandler,\n type ReactNode,\n} from \"react\";\nimport { createEditor, type Descendant } from \"slate\";\nimport { Slate, Editable, withReact } from \"slate-react\";\nimport { withHistory } from \"slate-history\";\nimport {\n RichTextInputEditableSlot,\n RichTextInputToolbarSlot,\n} from \"../rich-text-input.slots\";\nimport {\n Element,\n Leaf,\n withLinks,\n focusEditor,\n resetEditor,\n} from \"../utils/slate-helpers\";\nimport { createEmptyValue } from \"../utils/html-serialization\";\nimport { useKeyboardShortcuts } from \"../hooks/use-keyboard-shortcuts\";\nimport { EDITOR_DEFAULTS } from \"../constants\";\n\nexport interface RichTextEditorProps {\n value?: Descendant[];\n onChange: (value: Descendant[]) => void;\n onFocus?: FocusEventHandler<HTMLDivElement>;\n onBlur?: FocusEventHandler<HTMLDivElement>;\n placeholder?: string;\n isDisabled?: boolean;\n isReadOnly?: boolean;\n autoFocus?: boolean;\n toolbar?: ReactNode;\n}\n\nexport interface RichTextEditorRef {\n focus: () => void;\n resetValue: (html: string) => void;\n}\n\nexport const RichTextEditor = forwardRef<\n RichTextEditorRef,\n RichTextEditorProps\n>((props, forwardedRef: ForwardedRef<RichTextEditorRef>) => {\n const {\n value,\n onChange,\n onFocus,\n onBlur,\n placeholder = EDITOR_DEFAULTS.placeholder,\n isDisabled = EDITOR_DEFAULTS.isDisabled,\n isReadOnly = EDITOR_DEFAULTS.isReadOnly,\n autoFocus = EDITOR_DEFAULTS.autoFocus,\n toolbar,\n } = props;\n\n // Create editor with plugins\n const editor = useMemo(() => {\n const baseEditor = createEditor();\n return withLinks(withHistory(withReact(baseEditor)));\n }, []);\n\n // Handle keyboard shortcuts using hook\n const { handleKeyDown } = useKeyboardShortcuts({ editor });\n\n // Handle focus\n const handleFocus = useCallback(\n (event: React.FocusEvent<HTMLDivElement>) => {\n if (onFocus) {\n onFocus(event);\n }\n },\n [onFocus]\n );\n\n // Handle blur\n const handleBlur = useCallback(\n (event: React.FocusEvent<HTMLDivElement>) => {\n if (onBlur) {\n onBlur(event);\n }\n },\n [onBlur]\n );\n\n // Expose methods through ref\n useImperativeHandle(\n forwardedRef,\n () => ({\n focus: () => focusEditor(editor),\n resetValue: (html: string) => resetEditor(editor, html),\n }),\n [editor]\n );\n\n // Render element\n const renderElement = useCallback(\n (props: Parameters<typeof Element>[0]) => <Element {...props} />,\n []\n );\n\n // Render leaf\n const renderLeaf = useCallback(\n (props: Parameters<typeof Leaf>[0]) => <Leaf {...props} />,\n []\n );\n\n // Ensure we always have a valid value\n const defaultValue = createEmptyValue();\n const safeInitialValue =\n Array.isArray(value) && value.length > 0 ? value : defaultValue;\n\n return (\n <Slate editor={editor} value={safeInitialValue} onChange={onChange}>\n {toolbar && (\n <RichTextInputToolbarSlot>{toolbar}</RichTextInputToolbarSlot>\n )}\n <RichTextInputEditableSlot asChild>\n <Editable\n renderElement={renderElement}\n renderLeaf={renderLeaf}\n placeholder={placeholder}\n autoFocus={autoFocus}\n readOnly={isReadOnly || isDisabled}\n onKeyDown={handleKeyDown}\n onFocus={handleFocus}\n onBlur={handleBlur}\n aria-label=\"Rich text editor\"\n role=\"textbox\"\n aria-multiline=\"true\"\n />\n </RichTextInputEditableSlot>\n </Slate>\n );\n});\n\nRichTextEditor.displayName = \"RichTextEditor\";\n","import { useSlate } from \"slate-react\";\nimport { Menu, IconButton, Text, Box, Tooltip } from \"@/components\";\nimport {\n MoreHoriz,\n FormatStrikethrough,\n Code,\n} from \"@commercetools/nimbus-icons\";\nimport { usePreservedSelection } from \"../hooks/use-preserved-selection\";\nimport { useFormattingState } from \"../hooks/use-formatting-state\";\n\nexport interface FormattingMenuProps {\n isDisabled?: boolean;\n}\n\nexport const FormattingMenu = ({ isDisabled = false }: FormattingMenuProps) => {\n const editor = useSlate();\n const withPreservedSelection = usePreservedSelection(editor);\n\n // Use the formatting state hook for all state management\n const { allSelectedKeys, handleAllSelectionChange } = useFormattingState({\n withPreservedSelection,\n });\n\n return (\n <Menu.Root\n selectionMode=\"multiple\"\n selectedKeys={allSelectedKeys}\n onSelectionChange={handleAllSelectionChange}\n >\n <Tooltip.Root delay={0} closeDelay={0}>\n <Menu.Trigger asChild>\n <IconButton\n size=\"xs\"\n variant=\"ghost\"\n aria-label=\"More formatting options\"\n isDisabled={isDisabled}\n onMouseDown={(event) => event.preventDefault()}\n >\n <MoreHoriz />\n </IconButton>\n </Menu.Trigger>\n <Tooltip.Content placement=\"top\">More styles</Tooltip.Content>\n </Tooltip.Root>\n <Menu.Content>\n <Menu.Item id=\"strikethrough\">\n <Box slot=\"label\" display=\"flex\" alignItems=\"center\" gap=\"200\">\n <FormatStrikethrough />\n <Text textStyle=\"sm\">Strikethrough</Text>\n </Box>\n </Menu.Item>\n <Menu.Item id=\"code\">\n <Box slot=\"label\" display=\"flex\" alignItems=\"center\" gap=\"200\">\n <Code />\n <Text textStyle=\"sm\">Code</Text>\n </Box>\n </Menu.Item>\n <Menu.Item id=\"superscript\">\n <Box slot=\"label\" display=\"flex\" alignItems=\"center\" gap=\"200\">\n <Text>X²</Text>\n <Text textStyle=\"sm\">Superscript</Text>\n </Box>\n </Menu.Item>\n <Menu.Item id=\"subscript\">\n <Box slot=\"label\" display=\"flex\" alignItems=\"center\" gap=\"200\">\n <Text>X₂</Text>\n <Text textStyle=\"sm\">Subscript</Text>\n </Box>\n </Menu.Item>\n </Menu.Content>\n </Menu.Root>\n );\n};\n","import { useSlate } from \"slate-react\";\nimport {\n Toolbar,\n Menu,\n VisuallyHidden,\n Divider,\n ToggleButtonGroup,\n IconToggleButton,\n IconButton,\n Text,\n Box,\n Tooltip,\n} from \"@/components\";\nimport { Group } from \"@/components/group\";\nimport {\n FormatBold,\n FormatItalic,\n FormatUnderlined,\n FormatListBulleted,\n FormatListNumbered,\n KeyboardArrowDown,\n Undo,\n Redo,\n} from \"@commercetools/nimbus-icons\";\nimport { toggleMark } from \"../utils/slate-helpers\";\nimport { usePreservedSelection } from \"../hooks/use-preserved-selection\";\nimport { useToolbarState } from \"../hooks/use-toolbar-state\";\nimport { textStyles } from \"../constants\";\nimport { FormattingMenu } from \"./formatting-menu\";\n\nexport interface RichTextToolbarProps {\n isDisabled?: boolean;\n}\n\nexport const RichTextToolbar = ({\n isDisabled = false,\n}: RichTextToolbarProps) => {\n const editor = useSlate();\n const withPreservedSelection = usePreservedSelection(editor);\n\n // Use the toolbar state hook for all state management\n const {\n currentTextStyle,\n selectedTextStyleLabel,\n handleTextStyleChange,\n handleListToggle,\n selectedFormatKeys,\n selectedListKeys,\n hasUndos,\n hasRedos,\n } = useToolbarState({ withPreservedSelection });\n\n return (\n <Toolbar\n orientation=\"horizontal\"\n aria-label=\"Text formatting\"\n width=\"full\"\n overflow=\"hidden\"\n size=\"xs\"\n >\n {/* Text Style Menu */}\n <Group>\n <Menu.Root\n onAction={(styleId) => handleTextStyleChange(String(styleId))}\n >\n <Tooltip.Root delay={0} closeDelay={0}>\n {/* Menu trigger styles mimic the Select component */}\n <Menu.Trigger\n height=\"800\"\n width=\"4000\"\n bg=\"primary.1\"\n borderRadius=\"200\"\n _hover={{ bg: \"primary.2\" }}\n isDisabled={isDisabled}\n onMouseDown={(event) => event.preventDefault()}\n aria-label=\"Text style menu\"\n >\n <Box display=\"flex\" alignItems=\"center\" gap=\"200\" px=\"200\">\n <Box display=\"flex\" alignItems=\"center\" gap=\"200\" flexGrow=\"1\">\n <Text my=\"auto\" textStyle=\"sm\" fontWeight=\"500\">\n {selectedTextStyleLabel}\n </Text>\n </Box>\n <KeyboardArrowDown />\n </Box>\n </Menu.Trigger>\n <Tooltip.Content placement=\"top\">Text style</Tooltip.Content>\n </Tooltip.Root>\n <Menu.Content>\n {textStyles.map((style) => (\n <Menu.Item\n key={style.id}\n id={style.id}\n {...(currentTextStyle === style.id && {\n \"data-state\": \"checked\",\n })}\n >\n <Text {...style.props}>{style.label}</Text>\n </Menu.Item>\n ))}\n </Menu.Content>\n </Menu.Root>\n </Group>\n\n <Divider orientation=\"vertical\" />\n\n {/* Text Formatting Toggles */}\n <ToggleButtonGroup.Root\n selectionMode=\"multiple\"\n selectedKeys={selectedFormatKeys}\n isDisabled={isDisabled}\n >\n <Tooltip.Root delay={0} closeDelay={0}>\n <IconToggleButton\n id=\"bold\"\n size=\"xs\"\n variant=\"ghost\"\n aria-label=\"Bold\"\n isDisabled={isDisabled}\n onMouseDown={(event) => event.preventDefault()}\n onPress={withPreservedSelection(() => toggleMark(editor, \"bold\"))}\n >\n <FormatBold />\n <VisuallyHidden>Bold</VisuallyHidden>\n </IconToggleButton>\n <Tooltip.Content placement=\"top\">Bold</Tooltip.Content>\n </Tooltip.Root>\n <Tooltip.Root delay={0} closeDelay={0}>\n <IconToggleButton\n id=\"italic\"\n size=\"xs\"\n variant=\"ghost\"\n aria-label=\"Italic\"\n isDisabled={isDisabled}\n onMouseDown={(event) => event.preventDefault()}\n onPress={withPreservedSelection(() => toggleMark(editor, \"italic\"))}\n >\n <FormatItalic />\n <VisuallyHidden>Italic</VisuallyHidden>\n </IconToggleButton>\n <Tooltip.Content placement=\"top\">Italic</Tooltip.Content>\n </Tooltip.Root>\n <Tooltip.Root delay={0} closeDelay={0}>\n <IconToggleButton\n id=\"underline\"\n size=\"xs\"\n variant=\"ghost\"\n aria-label=\"Underline\"\n isDisabled={isDisabled}\n onMouseDown={(event) => event.preventDefault()}\n onPress={withPreservedSelection(() =>\n toggleMark(editor, \"underline\")\n )}\n >\n <FormatUnderlined />\n <VisuallyHidden>Underline</VisuallyHidden>\n </IconToggleButton>\n <Tooltip.Content placement=\"top\">Underline</Tooltip.Content>\n </Tooltip.Root>\n </ToggleButtonGroup.Root>\n\n {/* Formatting Menu for additional options */}\n <FormattingMenu isDisabled={isDisabled} />\n\n <Divider orientation=\"vertical\" />\n\n {/* Lists & Indentation */}\n <ToggleButtonGroup.Root\n selectionMode=\"single\"\n selectedKeys={selectedListKeys}\n onSelectionChange={handleListToggle}\n aria-label=\"List formatting\"\n isDisabled={isDisabled}\n >\n <Tooltip.Root delay={0} closeDelay={0}>\n <IconToggleButton\n id=\"bulleted-list\"\n size=\"xs\"\n variant=\"ghost\"\n aria-label=\"Bulleted List\"\n isDisabled={isDisabled}\n onMouseDown={(event) => event.preventDefault()}\n >\n <FormatListBulleted />\n </IconToggleButton>\n <Tooltip.Content placement=\"top\">Bulleted list</Tooltip.Content>\n </Tooltip.Root>\n <Tooltip.Root delay={0} closeDelay={0}>\n <IconToggleButton\n id=\"numbered-list\"\n size=\"xs\"\n variant=\"ghost\"\n aria-label=\"Numbered List\"\n isDisabled={isDisabled}\n onMouseDown={(event) => event.preventDefault()}\n >\n <FormatListNumbered />\n </IconToggleButton>\n <Tooltip.Content placement=\"top\">Numbered list</Tooltip.Content>\n </Tooltip.Root>\n </ToggleButtonGroup.Root>\n\n {/* Spacer to push undo/redo buttons to the right */}\n <Box flexGrow=\"1\" />\n\n <Group>\n <Tooltip.Root delay={0} closeDelay={0}>\n <IconButton\n size=\"xs\"\n variant=\"ghost\"\n aria-label=\"Undo\"\n isDisabled={!hasUndos || isDisabled}\n onPress={withPreservedSelection(() => editor.undo())}\n onMouseDown={(event) => event.preventDefault()}\n >\n <Undo />\n <VisuallyHidden>Undo</VisuallyHidden>\n </IconButton>\n <Tooltip.Content placement=\"top\">Undo</Tooltip.Content>\n </Tooltip.Root>\n <Tooltip.Root delay={0} closeDelay={0}>\n <IconButton\n size=\"xs\"\n variant=\"ghost\"\n aria-label=\"Redo\"\n isDisabled={!hasRedos || isDisabled}\n onPress={withPreservedSelection(() => editor.redo())}\n onMouseDown={(event) => event.preventDefault()}\n >\n <Redo />\n <VisuallyHidden>Redo</VisuallyHidden>\n </IconButton>\n <Tooltip.Content placement=\"top\">Redo</Tooltip.Content>\n </Tooltip.Root>\n </Group>\n </Toolbar>\n );\n};\n\nRichTextToolbar.displayName = \"RichTextToolbar\";\n","import { useState, useCallback, useRef, useEffect } from \"react\";\nimport { useSlotRecipe } from \"@chakra-ui/react\";\nimport { extractStyleProps } from \"@/utils/extractStyleProps\";\nimport { RichTextInputRootSlot } from \"./rich-text-input.slots\";\nimport {\n RichTextEditor,\n type RichTextEditorRef,\n} from \"./components/rich-text-editor\";\nimport { RichTextToolbar } from \"./components/rich-text-toolbar\";\nimport type { RichTextInputProps } from \"./rich-text-input.types\";\nimport {\n toHTML,\n fromHTML,\n createEmptyValue,\n validSlateStateAdapter,\n} from \"./utils\";\nimport { richTextInputRecipe } from \"./rich-text-input.recipe\";\n\n/**\n RichTextInput - A rich text input component with formatting capabilities.\n */\nexport const RichTextInput = (props: RichTextInputProps) => {\n const {\n ref: forwardedRef,\n value,\n defaultValue,\n onChange,\n onFocus,\n onBlur,\n placeholder = \"\",\n isDisabled = false,\n isReadOnly = false,\n isInvalid = false,\n autoFocus = false,\n ...restProps\n } = props;\n\n const recipe = useSlotRecipe({ recipe: richTextInputRecipe });\n const [recipeProps, remainingProps] = recipe.splitVariantProps({\n // Only semantic variants go here (none currently defined)\n ...restProps,\n });\n const [styleProps, functionalProps] = extractStyleProps(remainingProps);\n\n // Data attributes for state-based styling\n const dataAttributes = {\n \"data-disabled\": isDisabled ? \"true\" : undefined,\n \"data-invalid\": isInvalid ? \"true\" : undefined,\n \"data-readonly\": isReadOnly ? \"true\" : undefined,\n };\n\n // Internal state management\n const [internalValue, setInternalValue] = useState(() => {\n const initialHtml = value ?? defaultValue ?? \"\";\n try {\n return initialHtml ? fromHTML(initialHtml) : createEmptyValue();\n } catch (error) {\n console.warn(\"Failed to parse initial HTML, using empty value:\", error);\n return createEmptyValue();\n }\n });\n\n const [serializedValue, setSerializedValue] = useState(() => {\n return value ?? defaultValue ?? \"\";\n });\n\n const editorRef = useRef<RichTextEditorRef>(null);\n\n // Handle controlled value changes\n useEffect(() => {\n if (value !== undefined && value !== serializedValue) {\n const newSlateValue = value ? fromHTML(value) : createEmptyValue();\n setInternalValue(newSlateValue);\n setSerializedValue(value);\n }\n }, [value, serializedValue]);\n\n const handleChange = useCallback(\n (slateValue: ReturnType<typeof createEmptyValue>) => {\n const newHtml = toHTML(slateValue);\n const hasSerializedValueChanged = newHtml !== serializedValue;\n\n setInternalValue(slateValue);\n setSerializedValue(newHtml);\n\n // Only call onChange if the serialized HTML actually changed\n if (hasSerializedValueChanged && onChange) {\n onChange(newHtml);\n }\n },\n [serializedValue, onChange]\n );\n\n const currentValue = internalValue;\n\n // Safety check: ensure we always have a valid Slate value\n const safeValue = validSlateStateAdapter(currentValue);\n\n return (\n <RichTextInputRootSlot\n {...recipeProps}\n {...styleProps}\n {...functionalProps}\n {...dataAttributes}\n ref={forwardedRef}\n >\n <RichTextEditor\n ref={editorRef}\n value={safeValue}\n onChange={handleChange}\n onFocus={onFocus}\n onBlur={onBlur}\n placeholder={placeholder}\n isDisabled={isDisabled}\n isReadOnly={isReadOnly}\n autoFocus={autoFocus}\n toolbar={\n !isReadOnly ? <RichTextToolbar isDisabled={isDisabled} /> : null\n }\n />\n </RichTextInputRootSlot>\n );\n};\n\nRichTextInput.displayName = \"RichTextInput\";\n"],"names":["richTextInputRecipe","defineSlotRecipe","withProvider","withContext","createSlotRecipeContext","RichTextInputRootSlot","RichTextInputToolbarSlot","RichTextInputEditableSlot","History","value","isPlainObject","Operation","SAVING","MERGING","SPLITTING_ONCE","HistoryEditor","Editor","editor","fn","prev","withHistory","e","apply","history","redos","batch","Transforms","op","undos","inverseOps","operations","lastBatch","lastOp","save","merge","shouldSave","shouldMerge","stack","Path","RichTextEditor","forwardRef","props","forwardedRef","onChange","onFocus","onBlur","placeholder","EDITOR_DEFAULTS","isDisabled","isReadOnly","autoFocus","toolbar","useMemo","baseEditor","createEditor","withLinks","withReact","handleKeyDown","useKeyboardShortcuts","handleFocus","useCallback","event","handleBlur","useImperativeHandle","focusEditor","html","resetEditor","renderElement","jsx","Element","renderLeaf","Leaf","defaultValue","createEmptyValue","safeInitialValue","jsxs","Slate","Editable","FormattingMenu","useSlate","withPreservedSelection","usePreservedSelection","allSelectedKeys","handleAllSelectionChange","useFormattingState","Menu","Tooltip","IconButton","MoreHoriz","Box","FormatStrikethrough","Text","Code","RichTextToolbar","currentTextStyle","selectedTextStyleLabel","handleTextStyleChange","handleListToggle","selectedFormatKeys","selectedListKeys","hasUndos","hasRedos","useToolbarState","Toolbar","Group","styleId","KeyboardArrowDown","textStyles","style","Divider","ToggleButtonGroup","IconToggleButton","toggleMark","FormatBold","VisuallyHidden","FormatItalic","FormatUnderlined","FormatListBulleted","FormatListNumbered","Undo","Redo","RichTextInput","isInvalid","restProps","recipe","useSlotRecipe","recipeProps","remainingProps","styleProps","functionalProps","extractStyleProps","dataAttributes","internalValue","setInternalValue","useState","initialHtml","fromHTML","error","serializedValue","setSerializedValue","editorRef","useRef","useEffect","newSlateValue","handleChange","slateValue","newHtml","toHTML","hasSerializedValueChanged","currentValue","safeValue","validSlateStateAdapter"],"mappings":"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","x_google_ignoreList":[2]}
|
|
1
|
+
{"version":3,"file":"rich-text-input-DXzaZuhE.cjs.js","sources":["../../src/components/rich-text-input/rich-text-input.recipe.tsx","../../src/components/rich-text-input/rich-text-input.slots.tsx","../../../../node_modules/.pnpm/slate-history@0.113.1_slate@0.75.0/node_modules/slate-history/dist/index.es.js","../../src/components/rich-text-input/components/rich-text-editor.tsx","../../src/components/rich-text-input/components/formatting-menu.tsx","../../src/components/rich-text-input/components/rich-text-toolbar.tsx","../../src/components/rich-text-input/rich-text-input.tsx"],"sourcesContent":["import { defineSlotRecipe } from \"@chakra-ui/react\";\n\nexport const richTextInputRecipe = defineSlotRecipe({\n slots: [\"root\", \"toolbar\", \"editable\"],\n className: \"nimbus-rich-text-input\",\n base: {\n root: {\n display: \"flex\",\n flexDirection: \"column\",\n position: \"relative\",\n width: \"full\",\n borderRadius: \"200\",\n borderWidth: \"{sizes.25}\",\n colorPalette: \"slate\",\n borderColor: \"colorPalette.7\",\n backgroundColor: \"colorPalette.contrast\",\n\n // Invalid state styling\n \"&[data-invalid='true']\": {\n borderWidth: \"{sizes.50}\",\n borderColor: \"critical.7\",\n },\n },\n toolbar: {\n boxShadow: \"1\",\n\n // Disabled state styling for toolbar\n \"[data-disabled='true'] &\": {\n opacity: \"0.5\",\n },\n },\n editable: {\n padding: \"400\",\n minHeight: \"inherit\",\n outline: \"none\",\n\n // Disabled state styling for editable\n \"[data-disabled='true'] &\": {\n cursor: \"not-allowed\",\n opacity: \"0.5\",\n },\n\n // Styling for user-facing editor text\n \"& p\": {\n textStyle: \"md\",\n fontWeight: \"500\",\n },\n \"& h1\": {\n textStyle: \"2xl\",\n fontWeight: \"500\",\n },\n \"& h2\": {\n textStyle: \"xl\",\n fontWeight: \"500\",\n },\n \"& h3\": {\n textStyle: \"lg\",\n fontWeight: \"500\",\n },\n \"& h4\": {\n textStyle: \"md\",\n fontWeight: \"500\",\n },\n \"& h5\": {\n textStyle: \"xs\",\n fontWeight: \"500\",\n },\n \"& blockquote\": {\n textStyle: \"md\",\n fontWeight: \"400\",\n borderLeftWidth: \"{sizes.100}\",\n paddingLeft: \"400\",\n },\n \"& ul\": {\n paddingLeft: \"600\",\n listStyleType: \"disc\",\n },\n \"& ol\": {\n paddingLeft: \"600\",\n listStyleType: \"decimal\",\n },\n \"& code\": {\n padding: \"100\",\n fontFamily: \"mono\",\n },\n \"& pre\": {\n padding: \"300\",\n borderRadius: \"200\",\n overflow: \"auto\",\n \"& code\": {\n padding: \"0\",\n },\n },\n \"& a\": {\n color: \"primary.11\",\n textDecoration: \"underline\",\n cursor: \"pointer\",\n _hover: {\n textDecoration: \"none\",\n },\n },\n \"& strong\": {\n fontWeight: \"700\",\n },\n \"& em\": {\n fontStyle: \"italic\",\n },\n \"& u\": {\n textDecoration: \"underline\",\n },\n \"& del\": {\n textDecoration: \"line-through\",\n },\n \"& sup\": {\n fontSize: \"75%\",\n verticalAlign: \"super\",\n lineHeight: \"0\",\n },\n \"& sub\": {\n fontSize: \"75%\",\n verticalAlign: \"sub\",\n lineHeight: \"0\",\n },\n },\n },\n variants: {},\n});\n","import {\n type HTMLChakraProps,\n type RecipeVariantProps,\n type UnstyledProp,\n createSlotRecipeContext,\n} from \"@chakra-ui/react\";\nimport { richTextInputRecipe } from \"./rich-text-input.recipe\";\n\nconst { withProvider, withContext } = createSlotRecipeContext({\n recipe: richTextInputRecipe,\n});\n\n// Root slot\nexport type RichTextInputRootSlotProps = HTMLChakraProps<\n \"div\",\n RecipeVariantProps<typeof richTextInputRecipe> & UnstyledProp\n>;\n\nexport const RichTextInputRootSlot = withProvider<\n HTMLDivElement,\n RichTextInputRootSlotProps\n>(\"div\", \"root\");\n\n// Toolbar slot\nexport type RichTextInputToolbarSlotProps = HTMLChakraProps<\"div\">;\n\nexport const RichTextInputToolbarSlot = withContext<\n HTMLDivElement,\n RichTextInputToolbarSlotProps\n>(\"div\", \"toolbar\");\n\n// Editable slot\nexport type RichTextInputEditableSlotProps = HTMLChakraProps<\"div\">;\nexport const RichTextInputEditableSlot = withContext<\n HTMLDivElement,\n RichTextInputEditableSlotProps\n>(\"div\", \"editable\");\n","import { isPlainObject } from 'is-plain-object';\nimport { Operation, Editor, Transforms, Path } from 'slate';\n\n// eslint-disable-next-line no-redeclare\nvar History = {\n /**\n * Check if a value is a `History` object.\n */\n isHistory(value) {\n return isPlainObject(value) && Array.isArray(value.redos) && Array.isArray(value.undos) && (value.redos.length === 0 || Operation.isOperationList(value.redos[0].operations)) && (value.undos.length === 0 || Operation.isOperationList(value.undos[0].operations));\n }\n};\n\n/**\n * Weakmaps for attaching state to the editor.\n */\nvar HISTORY = new WeakMap();\nvar SAVING = new WeakMap();\nvar MERGING = new WeakMap();\nvar SPLITTING_ONCE = new WeakMap();\n// eslint-disable-next-line no-redeclare\nvar HistoryEditor = {\n /**\n * Check if a value is a `HistoryEditor` object.\n */\n isHistoryEditor(value) {\n return History.isHistory(value.history) && Editor.isEditor(value);\n },\n /**\n * Get the merge flag's current value.\n */\n isMerging(editor) {\n return MERGING.get(editor);\n },\n /**\n * Get the splitting once flag's current value.\n */\n isSplittingOnce(editor) {\n return SPLITTING_ONCE.get(editor);\n },\n setSplittingOnce(editor, value) {\n SPLITTING_ONCE.set(editor, value);\n },\n /**\n * Get the saving flag's current value.\n */\n isSaving(editor) {\n return SAVING.get(editor);\n },\n /**\n * Redo to the previous saved state.\n */\n redo(editor) {\n editor.redo();\n },\n /**\n * Undo to the previous saved state.\n */\n undo(editor) {\n editor.undo();\n },\n /**\n * Apply a series of changes inside a synchronous `fn`, These operations will\n * be merged into the previous history.\n */\n withMerging(editor, fn) {\n var prev = HistoryEditor.isMerging(editor);\n MERGING.set(editor, true);\n fn();\n MERGING.set(editor, prev);\n },\n /**\n * Apply a series of changes inside a synchronous `fn`, ensuring that the first\n * operation starts a new batch in the history. Subsequent operations will be\n * merged as usual.\n */\n withNewBatch(editor, fn) {\n var prev = HistoryEditor.isMerging(editor);\n MERGING.set(editor, true);\n SPLITTING_ONCE.set(editor, true);\n fn();\n MERGING.set(editor, prev);\n SPLITTING_ONCE.delete(editor);\n },\n /**\n * Apply a series of changes inside a synchronous `fn`, without merging any of\n * the new operations into previous save point in the history.\n */\n withoutMerging(editor, fn) {\n var prev = HistoryEditor.isMerging(editor);\n MERGING.set(editor, false);\n fn();\n MERGING.set(editor, prev);\n },\n /**\n * Apply a series of changes inside a synchronous `fn`, without saving any of\n * their operations into the history.\n */\n withoutSaving(editor, fn) {\n var prev = HistoryEditor.isSaving(editor);\n SAVING.set(editor, false);\n try {\n fn();\n } finally {\n SAVING.set(editor, prev);\n }\n }\n};\n\n/**\n * The `withHistory` plugin keeps track of the operation history of a Slate\n * editor as operations are applied to it, using undo and redo stacks.\n *\n * If you are using TypeScript, you must extend Slate's CustomTypes to use\n * this plugin.\n *\n * See https://docs.slatejs.org/concepts/11-typescript to learn how.\n */\nvar withHistory = editor => {\n var e = editor;\n var {\n apply\n } = e;\n e.history = {\n undos: [],\n redos: []\n };\n e.redo = () => {\n var {\n history\n } = e;\n var {\n redos\n } = history;\n if (redos.length > 0) {\n var batch = redos[redos.length - 1];\n if (batch.selectionBefore) {\n Transforms.setSelection(e, batch.selectionBefore);\n }\n HistoryEditor.withoutSaving(e, () => {\n Editor.withoutNormalizing(e, () => {\n for (var op of batch.operations) {\n e.apply(op);\n }\n });\n });\n history.redos.pop();\n e.writeHistory('undos', batch);\n }\n };\n e.undo = () => {\n var {\n history\n } = e;\n var {\n undos\n } = history;\n if (undos.length > 0) {\n var batch = undos[undos.length - 1];\n HistoryEditor.withoutSaving(e, () => {\n Editor.withoutNormalizing(e, () => {\n var inverseOps = batch.operations.map(Operation.inverse).reverse();\n for (var op of inverseOps) {\n e.apply(op);\n }\n if (batch.selectionBefore) {\n Transforms.setSelection(e, batch.selectionBefore);\n }\n });\n });\n e.writeHistory('redos', batch);\n history.undos.pop();\n }\n };\n e.apply = op => {\n var {\n operations,\n history\n } = e;\n var {\n undos\n } = history;\n var lastBatch = undos[undos.length - 1];\n var lastOp = lastBatch && lastBatch.operations[lastBatch.operations.length - 1];\n var save = HistoryEditor.isSaving(e);\n var merge = HistoryEditor.isMerging(e);\n if (save == null) {\n save = shouldSave(op);\n }\n if (save) {\n if (merge == null) {\n if (lastBatch == null) {\n merge = false;\n } else if (operations.length !== 0) {\n merge = true;\n } else {\n merge = shouldMerge(op, lastOp);\n }\n }\n if (HistoryEditor.isSplittingOnce(e)) {\n merge = false;\n HistoryEditor.setSplittingOnce(e, undefined);\n }\n if (lastBatch && merge) {\n lastBatch.operations.push(op);\n } else {\n var batch = {\n operations: [op],\n selectionBefore: e.selection\n };\n e.writeHistory('undos', batch);\n }\n while (undos.length > 100) {\n undos.shift();\n }\n history.redos = [];\n }\n apply(op);\n };\n e.writeHistory = (stack, batch) => {\n e.history[stack].push(batch);\n };\n return e;\n};\n/**\n * Check whether to merge an operation into the previous operation.\n */\nvar shouldMerge = (op, prev) => {\n if (prev && op.type === 'insert_text' && prev.type === 'insert_text' && op.offset === prev.offset + prev.text.length && Path.equals(op.path, prev.path)) {\n return true;\n }\n if (prev && op.type === 'remove_text' && prev.type === 'remove_text' && op.offset + op.text.length === prev.offset && Path.equals(op.path, prev.path)) {\n return true;\n }\n return false;\n};\n/**\n * Check whether an operation needs to be saved to the history.\n */\nvar shouldSave = (op, prev) => {\n if (op.type === 'set_selection') {\n return false;\n }\n return true;\n};\n\nexport { HISTORY, History, HistoryEditor, MERGING, SAVING, SPLITTING_ONCE, withHistory };\n//# sourceMappingURL=index.es.js.map\n","import {\n useMemo,\n useCallback,\n useImperativeHandle,\n forwardRef,\n type ForwardedRef,\n type FocusEventHandler,\n type ReactNode,\n} from \"react\";\nimport { createEditor, type Descendant } from \"slate\";\nimport { Slate, Editable, withReact } from \"slate-react\";\nimport { withHistory } from \"slate-history\";\nimport {\n RichTextInputEditableSlot,\n RichTextInputToolbarSlot,\n} from \"../rich-text-input.slots\";\nimport {\n Element,\n Leaf,\n withLinks,\n focusEditor,\n resetEditor,\n} from \"../utils/slate-helpers\";\nimport { createEmptyValue } from \"../utils/html-serialization\";\nimport { useKeyboardShortcuts } from \"../hooks/use-keyboard-shortcuts\";\nimport { EDITOR_DEFAULTS } from \"../constants\";\n\nexport interface RichTextEditorProps {\n value?: Descendant[];\n onChange: (value: Descendant[]) => void;\n onFocus?: FocusEventHandler<HTMLDivElement>;\n onBlur?: FocusEventHandler<HTMLDivElement>;\n placeholder?: string;\n isDisabled?: boolean;\n isReadOnly?: boolean;\n autoFocus?: boolean;\n toolbar?: ReactNode;\n}\n\nexport interface RichTextEditorRef {\n focus: () => void;\n resetValue: (html: string) => void;\n}\n\nexport const RichTextEditor = forwardRef<\n RichTextEditorRef,\n RichTextEditorProps\n>((props, forwardedRef: ForwardedRef<RichTextEditorRef>) => {\n const {\n value,\n onChange,\n onFocus,\n onBlur,\n placeholder = EDITOR_DEFAULTS.placeholder,\n isDisabled = EDITOR_DEFAULTS.isDisabled,\n isReadOnly = EDITOR_DEFAULTS.isReadOnly,\n autoFocus = EDITOR_DEFAULTS.autoFocus,\n toolbar,\n } = props;\n\n // Create editor with plugins\n const editor = useMemo(() => {\n const baseEditor = createEditor();\n return withLinks(withHistory(withReact(baseEditor)));\n }, []);\n\n // Handle keyboard shortcuts using hook\n const { handleKeyDown } = useKeyboardShortcuts({ editor });\n\n // Handle focus\n const handleFocus = useCallback(\n (event: React.FocusEvent<HTMLDivElement>) => {\n if (onFocus) {\n onFocus(event);\n }\n },\n [onFocus]\n );\n\n // Handle blur\n const handleBlur = useCallback(\n (event: React.FocusEvent<HTMLDivElement>) => {\n if (onBlur) {\n onBlur(event);\n }\n },\n [onBlur]\n );\n\n // Expose methods through ref\n useImperativeHandle(\n forwardedRef,\n () => ({\n focus: () => focusEditor(editor),\n resetValue: (html: string) => resetEditor(editor, html),\n }),\n [editor]\n );\n\n // Render element\n const renderElement = useCallback(\n (props: Parameters<typeof Element>[0]) => <Element {...props} />,\n []\n );\n\n // Render leaf\n const renderLeaf = useCallback(\n (props: Parameters<typeof Leaf>[0]) => <Leaf {...props} />,\n []\n );\n\n // Ensure we always have a valid value\n const defaultValue = createEmptyValue();\n const safeInitialValue =\n Array.isArray(value) && value.length > 0 ? value : defaultValue;\n\n return (\n <Slate editor={editor} value={safeInitialValue} onChange={onChange}>\n {toolbar && (\n <RichTextInputToolbarSlot>{toolbar}</RichTextInputToolbarSlot>\n )}\n <RichTextInputEditableSlot asChild>\n <Editable\n renderElement={renderElement}\n renderLeaf={renderLeaf}\n placeholder={placeholder}\n autoFocus={autoFocus}\n readOnly={isReadOnly || isDisabled}\n onKeyDown={handleKeyDown}\n onFocus={handleFocus}\n onBlur={handleBlur}\n aria-label=\"Rich text editor\"\n role=\"textbox\"\n aria-multiline=\"true\"\n />\n </RichTextInputEditableSlot>\n </Slate>\n );\n});\n\nRichTextEditor.displayName = \"RichTextEditor\";\n","import { useSlate } from \"slate-react\";\nimport { Menu, IconButton, Text, Box, Tooltip } from \"@/components\";\nimport {\n MoreHoriz,\n FormatStrikethrough,\n Code,\n} from \"@commercetools/nimbus-icons\";\nimport { usePreservedSelection } from \"../hooks/use-preserved-selection\";\nimport { useFormattingState } from \"../hooks/use-formatting-state\";\n\nexport interface FormattingMenuProps {\n isDisabled?: boolean;\n}\n\nexport const FormattingMenu = ({ isDisabled = false }: FormattingMenuProps) => {\n const editor = useSlate();\n const withPreservedSelection = usePreservedSelection(editor);\n\n // Use the formatting state hook for all state management\n const { allSelectedKeys, handleAllSelectionChange } = useFormattingState({\n withPreservedSelection,\n });\n\n return (\n <Menu.Root\n selectionMode=\"multiple\"\n selectedKeys={allSelectedKeys}\n onSelectionChange={handleAllSelectionChange}\n >\n <Tooltip.Root delay={0} closeDelay={0}>\n <Menu.Trigger asChild>\n <IconButton\n size=\"xs\"\n variant=\"ghost\"\n aria-label=\"More formatting options\"\n isDisabled={isDisabled}\n onMouseDown={(event) => event.preventDefault()}\n >\n <MoreHoriz />\n </IconButton>\n </Menu.Trigger>\n <Tooltip.Content placement=\"top\">More styles</Tooltip.Content>\n </Tooltip.Root>\n <Menu.Content>\n <Menu.Item id=\"strikethrough\">\n <Box slot=\"label\" display=\"flex\" alignItems=\"center\" gap=\"200\">\n <FormatStrikethrough />\n <Text textStyle=\"sm\">Strikethrough</Text>\n </Box>\n </Menu.Item>\n <Menu.Item id=\"code\">\n <Box slot=\"label\" display=\"flex\" alignItems=\"center\" gap=\"200\">\n <Code />\n <Text textStyle=\"sm\">Code</Text>\n </Box>\n </Menu.Item>\n <Menu.Item id=\"superscript\">\n <Box slot=\"label\" display=\"flex\" alignItems=\"center\" gap=\"200\">\n <Text>X²</Text>\n <Text textStyle=\"sm\">Superscript</Text>\n </Box>\n </Menu.Item>\n <Menu.Item id=\"subscript\">\n <Box slot=\"label\" display=\"flex\" alignItems=\"center\" gap=\"200\">\n <Text>X₂</Text>\n <Text textStyle=\"sm\">Subscript</Text>\n </Box>\n </Menu.Item>\n </Menu.Content>\n </Menu.Root>\n );\n};\n","import { useSlate } from \"slate-react\";\nimport {\n Toolbar,\n Menu,\n VisuallyHidden,\n Divider,\n ToggleButtonGroup,\n IconToggleButton,\n IconButton,\n Text,\n Box,\n Tooltip,\n} from \"@/components\";\nimport { Group } from \"@/components/group\";\nimport {\n FormatBold,\n FormatItalic,\n FormatUnderlined,\n FormatListBulleted,\n FormatListNumbered,\n KeyboardArrowDown,\n Undo,\n Redo,\n} from \"@commercetools/nimbus-icons\";\nimport { toggleMark } from \"../utils/slate-helpers\";\nimport { usePreservedSelection } from \"../hooks/use-preserved-selection\";\nimport { useToolbarState } from \"../hooks/use-toolbar-state\";\nimport { textStyles } from \"../constants\";\nimport { FormattingMenu } from \"./formatting-menu\";\n\nexport interface RichTextToolbarProps {\n isDisabled?: boolean;\n}\n\nexport const RichTextToolbar = ({\n isDisabled = false,\n}: RichTextToolbarProps) => {\n const editor = useSlate();\n const withPreservedSelection = usePreservedSelection(editor);\n\n // Use the toolbar state hook for all state management\n const {\n currentTextStyle,\n selectedTextStyleLabel,\n handleTextStyleChange,\n handleListToggle,\n selectedFormatKeys,\n selectedListKeys,\n hasUndos,\n hasRedos,\n } = useToolbarState({ withPreservedSelection });\n\n return (\n <Toolbar\n orientation=\"horizontal\"\n aria-label=\"Text formatting\"\n width=\"full\"\n overflow=\"hidden\"\n size=\"xs\"\n >\n {/* Text Style Menu */}\n <Group>\n <Menu.Root\n onAction={(styleId) => handleTextStyleChange(String(styleId))}\n >\n <Tooltip.Root delay={0} closeDelay={0}>\n {/* Menu trigger styles mimic the Select component */}\n <Menu.Trigger\n height=\"800\"\n width=\"4000\"\n bg=\"primary.1\"\n borderRadius=\"200\"\n _hover={{ bg: \"primary.2\" }}\n isDisabled={isDisabled}\n onMouseDown={(event) => event.preventDefault()}\n aria-label=\"Text style menu\"\n >\n <Box display=\"flex\" alignItems=\"center\" gap=\"200\" px=\"200\">\n <Box display=\"flex\" alignItems=\"center\" gap=\"200\" flexGrow=\"1\">\n <Text my=\"auto\" textStyle=\"sm\" fontWeight=\"500\">\n {selectedTextStyleLabel}\n </Text>\n </Box>\n <KeyboardArrowDown />\n </Box>\n </Menu.Trigger>\n <Tooltip.Content placement=\"top\">Text style</Tooltip.Content>\n </Tooltip.Root>\n <Menu.Content>\n {textStyles.map((style) => (\n <Menu.Item\n key={style.id}\n id={style.id}\n {...(currentTextStyle === style.id && {\n \"data-state\": \"checked\",\n })}\n >\n <Text {...style.props}>{style.label}</Text>\n </Menu.Item>\n ))}\n </Menu.Content>\n </Menu.Root>\n </Group>\n\n <Divider orientation=\"vertical\" />\n\n {/* Text Formatting Toggles */}\n <ToggleButtonGroup.Root\n selectionMode=\"multiple\"\n selectedKeys={selectedFormatKeys}\n isDisabled={isDisabled}\n >\n <Tooltip.Root delay={0} closeDelay={0}>\n <IconToggleButton\n id=\"bold\"\n size=\"xs\"\n variant=\"ghost\"\n aria-label=\"Bold\"\n isDisabled={isDisabled}\n onMouseDown={(event) => event.preventDefault()}\n onPress={withPreservedSelection(() => toggleMark(editor, \"bold\"))}\n >\n <FormatBold />\n <VisuallyHidden>Bold</VisuallyHidden>\n </IconToggleButton>\n <Tooltip.Content placement=\"top\">Bold</Tooltip.Content>\n </Tooltip.Root>\n <Tooltip.Root delay={0} closeDelay={0}>\n <IconToggleButton\n id=\"italic\"\n size=\"xs\"\n variant=\"ghost\"\n aria-label=\"Italic\"\n isDisabled={isDisabled}\n onMouseDown={(event) => event.preventDefault()}\n onPress={withPreservedSelection(() => toggleMark(editor, \"italic\"))}\n >\n <FormatItalic />\n <VisuallyHidden>Italic</VisuallyHidden>\n </IconToggleButton>\n <Tooltip.Content placement=\"top\">Italic</Tooltip.Content>\n </Tooltip.Root>\n <Tooltip.Root delay={0} closeDelay={0}>\n <IconToggleButton\n id=\"underline\"\n size=\"xs\"\n variant=\"ghost\"\n aria-label=\"Underline\"\n isDisabled={isDisabled}\n onMouseDown={(event) => event.preventDefault()}\n onPress={withPreservedSelection(() =>\n toggleMark(editor, \"underline\")\n )}\n >\n <FormatUnderlined />\n <VisuallyHidden>Underline</VisuallyHidden>\n </IconToggleButton>\n <Tooltip.Content placement=\"top\">Underline</Tooltip.Content>\n </Tooltip.Root>\n </ToggleButtonGroup.Root>\n\n {/* Formatting Menu for additional options */}\n <FormattingMenu isDisabled={isDisabled} />\n\n <Divider orientation=\"vertical\" />\n\n {/* Lists & Indentation */}\n <ToggleButtonGroup.Root\n selectionMode=\"single\"\n selectedKeys={selectedListKeys}\n onSelectionChange={handleListToggle}\n aria-label=\"List formatting\"\n isDisabled={isDisabled}\n >\n <Tooltip.Root delay={0} closeDelay={0}>\n <IconToggleButton\n id=\"bulleted-list\"\n size=\"xs\"\n variant=\"ghost\"\n aria-label=\"Bulleted List\"\n isDisabled={isDisabled}\n onMouseDown={(event) => event.preventDefault()}\n >\n <FormatListBulleted />\n </IconToggleButton>\n <Tooltip.Content placement=\"top\">Bulleted list</Tooltip.Content>\n </Tooltip.Root>\n <Tooltip.Root delay={0} closeDelay={0}>\n <IconToggleButton\n id=\"numbered-list\"\n size=\"xs\"\n variant=\"ghost\"\n aria-label=\"Numbered List\"\n isDisabled={isDisabled}\n onMouseDown={(event) => event.preventDefault()}\n >\n <FormatListNumbered />\n </IconToggleButton>\n <Tooltip.Content placement=\"top\">Numbered list</Tooltip.Content>\n </Tooltip.Root>\n </ToggleButtonGroup.Root>\n\n {/* Spacer to push undo/redo buttons to the right */}\n <Box flexGrow=\"1\" />\n\n <Group>\n <Tooltip.Root delay={0} closeDelay={0}>\n <IconButton\n size=\"xs\"\n variant=\"ghost\"\n aria-label=\"Undo\"\n isDisabled={!hasUndos || isDisabled}\n onPress={withPreservedSelection(() => editor.undo())}\n onMouseDown={(event) => event.preventDefault()}\n >\n <Undo />\n <VisuallyHidden>Undo</VisuallyHidden>\n </IconButton>\n <Tooltip.Content placement=\"top\">Undo</Tooltip.Content>\n </Tooltip.Root>\n <Tooltip.Root delay={0} closeDelay={0}>\n <IconButton\n size=\"xs\"\n variant=\"ghost\"\n aria-label=\"Redo\"\n isDisabled={!hasRedos || isDisabled}\n onPress={withPreservedSelection(() => editor.redo())}\n onMouseDown={(event) => event.preventDefault()}\n >\n <Redo />\n <VisuallyHidden>Redo</VisuallyHidden>\n </IconButton>\n <Tooltip.Content placement=\"top\">Redo</Tooltip.Content>\n </Tooltip.Root>\n </Group>\n </Toolbar>\n );\n};\n\nRichTextToolbar.displayName = \"RichTextToolbar\";\n","import { useState, useCallback, useRef, useEffect } from \"react\";\nimport { useSlotRecipe } from \"@chakra-ui/react\";\nimport { extractStyleProps } from \"@/utils/extractStyleProps\";\nimport { RichTextInputRootSlot } from \"./rich-text-input.slots\";\nimport {\n RichTextEditor,\n type RichTextEditorRef,\n} from \"./components/rich-text-editor\";\nimport { RichTextToolbar } from \"./components/rich-text-toolbar\";\nimport type { RichTextInputProps } from \"./rich-text-input.types\";\nimport {\n toHTML,\n fromHTML,\n createEmptyValue,\n validSlateStateAdapter,\n} from \"./utils\";\nimport { richTextInputRecipe } from \"./rich-text-input.recipe\";\n\n/**\n RichTextInput - A rich text input component with formatting capabilities.\n */\nexport const RichTextInput = (props: RichTextInputProps) => {\n const {\n ref: forwardedRef,\n value,\n defaultValue,\n onChange,\n onFocus,\n onBlur,\n placeholder = \"\",\n isDisabled = false,\n isReadOnly = false,\n isInvalid = false,\n autoFocus = false,\n ...restProps\n } = props;\n\n const recipe = useSlotRecipe({ recipe: richTextInputRecipe });\n const [recipeProps, remainingProps] = recipe.splitVariantProps({\n // Only semantic variants go here (none currently defined)\n ...restProps,\n });\n const [styleProps, functionalProps] = extractStyleProps(remainingProps);\n\n // Data attributes for state-based styling\n const dataAttributes = {\n \"data-disabled\": isDisabled ? \"true\" : undefined,\n \"data-invalid\": isInvalid ? \"true\" : undefined,\n \"data-readonly\": isReadOnly ? \"true\" : undefined,\n };\n\n // Internal state management\n const [internalValue, setInternalValue] = useState(() => {\n const initialHtml = value ?? defaultValue ?? \"\";\n try {\n return initialHtml ? fromHTML(initialHtml) : createEmptyValue();\n } catch (error) {\n console.warn(\"Failed to parse initial HTML, using empty value:\", error);\n return createEmptyValue();\n }\n });\n\n const [serializedValue, setSerializedValue] = useState(() => {\n return value ?? defaultValue ?? \"\";\n });\n\n const editorRef = useRef<RichTextEditorRef>(null);\n\n // Handle controlled value changes\n useEffect(() => {\n if (value !== undefined && value !== serializedValue) {\n const newSlateValue = value ? fromHTML(value) : createEmptyValue();\n setInternalValue(newSlateValue);\n setSerializedValue(value);\n }\n }, [value, serializedValue]);\n\n const handleChange = useCallback(\n (slateValue: ReturnType<typeof createEmptyValue>) => {\n const newHtml = toHTML(slateValue);\n const hasSerializedValueChanged = newHtml !== serializedValue;\n\n setInternalValue(slateValue);\n setSerializedValue(newHtml);\n\n // Only call onChange if the serialized HTML actually changed\n if (hasSerializedValueChanged && onChange) {\n onChange(newHtml);\n }\n },\n [serializedValue, onChange]\n );\n\n const currentValue = internalValue;\n\n // Safety check: ensure we always have a valid Slate value\n const safeValue = validSlateStateAdapter(currentValue);\n\n return (\n <RichTextInputRootSlot\n {...recipeProps}\n {...styleProps}\n {...functionalProps}\n {...dataAttributes}\n ref={forwardedRef}\n >\n <RichTextEditor\n ref={editorRef}\n value={safeValue}\n onChange={handleChange}\n onFocus={onFocus}\n onBlur={onBlur}\n placeholder={placeholder}\n isDisabled={isDisabled}\n isReadOnly={isReadOnly}\n autoFocus={autoFocus}\n toolbar={\n !isReadOnly ? <RichTextToolbar isDisabled={isDisabled} /> : null\n }\n />\n </RichTextInputRootSlot>\n );\n};\n\nRichTextInput.displayName = \"RichTextInput\";\n"],"names":["richTextInputRecipe","defineSlotRecipe","withProvider","withContext","createSlotRecipeContext","RichTextInputRootSlot","RichTextInputToolbarSlot","RichTextInputEditableSlot","History","value","isPlainObject","Operation","SAVING","MERGING","SPLITTING_ONCE","HistoryEditor","Editor","editor","fn","prev","withHistory","e","apply","history","redos","batch","Transforms","op","undos","inverseOps","operations","lastBatch","lastOp","save","merge","shouldSave","shouldMerge","stack","Path","RichTextEditor","forwardRef","props","forwardedRef","onChange","onFocus","onBlur","placeholder","EDITOR_DEFAULTS","isDisabled","isReadOnly","autoFocus","toolbar","useMemo","baseEditor","createEditor","withLinks","withReact","handleKeyDown","useKeyboardShortcuts","handleFocus","useCallback","event","handleBlur","useImperativeHandle","focusEditor","html","resetEditor","renderElement","jsx","Element","renderLeaf","Leaf","defaultValue","createEmptyValue","safeInitialValue","jsxs","Slate","Editable","FormattingMenu","useSlate","withPreservedSelection","usePreservedSelection","allSelectedKeys","handleAllSelectionChange","useFormattingState","Menu","Tooltip","IconButton","MoreHoriz","Box","FormatStrikethrough","Text","Code","RichTextToolbar","currentTextStyle","selectedTextStyleLabel","handleTextStyleChange","handleListToggle","selectedFormatKeys","selectedListKeys","hasUndos","hasRedos","useToolbarState","Toolbar","Group","styleId","KeyboardArrowDown","textStyles","style","Divider","ToggleButtonGroup","IconToggleButton","toggleMark","FormatBold","VisuallyHidden","FormatItalic","FormatUnderlined","FormatListBulleted","FormatListNumbered","Undo","Redo","RichTextInput","isInvalid","restProps","recipe","useSlotRecipe","recipeProps","remainingProps","styleProps","functionalProps","extractStyleProps","dataAttributes","internalValue","setInternalValue","useState","initialHtml","fromHTML","error","serializedValue","setSerializedValue","editorRef","useRef","useEffect","newSlateValue","handleChange","slateValue","newHtml","toHTML","hasSerializedValueChanged","currentValue","safeValue","validSlateStateAdapter"],"mappings":"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","x_google_ignoreList":[2]}
|