@commercetools/nimbus 0.0.0-canary-20250904053156 → 0.0.0-canary-20250916130207

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.
Files changed (510) hide show
  1. package/dist/accordion.d.ts +53 -88
  2. package/dist/chunks/{Button-CNBS3n5a.es.js → Button-BVaauB-c.es.js} +7 -7
  3. package/dist/chunks/{Button-CNBS3n5a.es.js.map → Button-BVaauB-c.es.js.map} +1 -1
  4. package/dist/chunks/Button-BtJHe9xY.cjs.js.map +1 -1
  5. package/dist/chunks/{DateField-Dm2Qlhbk.es.js → DateField-CoKm-f2B.es.js} +23 -23
  6. package/dist/chunks/{DateField-Dm2Qlhbk.es.js.map → DateField-CoKm-f2B.es.js.map} +1 -1
  7. package/dist/chunks/DateField-rweHHCKR.cjs.js.map +1 -1
  8. package/dist/chunks/{DatePicker-B1Unwe6C.es.js → DatePicker-Df8zjP9h.es.js} +23 -23
  9. package/dist/chunks/{DatePicker-B1Unwe6C.es.js.map → DatePicker-Df8zjP9h.es.js.map} +1 -1
  10. package/dist/chunks/{DatePicker-_aG-c1ms.cjs.js → DatePicker-e_53Dtsm.cjs.js} +2 -2
  11. package/dist/chunks/{DatePicker-_aG-c1ms.cjs.js.map → DatePicker-e_53Dtsm.cjs.js.map} +1 -1
  12. package/dist/chunks/{Dialog-C9HXv1rP.es.js → Dialog-Cva4CZ0O.es.js} +25 -25
  13. package/dist/chunks/{Dialog-C9HXv1rP.es.js.map → Dialog-Cva4CZ0O.es.js.map} +1 -1
  14. package/dist/chunks/{Dialog-DZm5Sj40.cjs.js → Dialog-K19USc7c.cjs.js} +2 -2
  15. package/dist/chunks/{Dialog-DZm5Sj40.cjs.js.map → Dialog-K19USc7c.cjs.js.map} +1 -1
  16. package/dist/chunks/{DragAndDrop-ChYb3tCX.es.js → DragAndDrop-Bbd4HbfU.es.js} +3 -3
  17. package/dist/chunks/{DragAndDrop-ChYb3tCX.es.js.map → DragAndDrop-Bbd4HbfU.es.js.map} +1 -1
  18. package/dist/chunks/DragAndDrop-cOfUfFj8.cjs.js.map +1 -1
  19. package/dist/chunks/FieldError-CXcEMuBf.es.js.map +1 -1
  20. package/dist/chunks/FieldError-DyGFfqST.cjs.js.map +1 -1
  21. package/dist/chunks/FocusScope-DPn5XtSy.cjs.js.map +1 -1
  22. package/dist/chunks/{FocusScope-CNO0fzPs.es.js → FocusScope-LBESYsSE.es.js} +5 -5
  23. package/dist/chunks/{FocusScope-CNO0fzPs.es.js.map → FocusScope-LBESYsSE.es.js.map} +1 -1
  24. package/dist/chunks/Form-BuOomA4T.cjs.js.map +1 -1
  25. package/dist/chunks/Form-CXcEMuBf.es.js.map +1 -1
  26. package/dist/chunks/{Group-Cfixd-fh.es.js → Group-DUCWhg7j.es.js} +5 -5
  27. package/dist/chunks/{Group-Cfixd-fh.es.js.map → Group-DUCWhg7j.es.js.map} +1 -1
  28. package/dist/chunks/Group-MdeByg6t.cjs.js.map +1 -1
  29. package/dist/chunks/{Header-CZkkXWBA.es.js → Header-Cfm2XlNT.es.js} +5 -5
  30. package/dist/chunks/{Header-CZkkXWBA.es.js.map → Header-Cfm2XlNT.es.js.map} +1 -1
  31. package/dist/chunks/{Header-D24AtheW.cjs.js → Header-zz3aj0c7.cjs.js} +2 -2
  32. package/dist/chunks/{Header-D24AtheW.cjs.js.map → Header-zz3aj0c7.cjs.js.map} +1 -1
  33. package/dist/chunks/{Heading-DEfy_f01.es.js → Heading-BX1t1Kmm.es.js} +15 -15
  34. package/dist/chunks/{Heading-DEfy_f01.es.js.map → Heading-BX1t1Kmm.es.js.map} +1 -1
  35. package/dist/chunks/Heading-BaW6t55l.cjs.js.map +1 -1
  36. package/dist/chunks/Hidden-CNJIJ63M.cjs.js.map +1 -1
  37. package/dist/chunks/Hidden-j3Lbt7xL.es.js.map +1 -1
  38. package/dist/chunks/{Input-BiHwUBo4.es.js → Input-FFG42ja6.es.js} +5 -5
  39. package/dist/chunks/{Input-BiHwUBo4.es.js.map → Input-FFG42ja6.es.js.map} +1 -1
  40. package/dist/chunks/Input-HBDt7LmM.cjs.js.map +1 -1
  41. package/dist/chunks/Keyboard-Clnp4zAC.es.js.map +1 -1
  42. package/dist/chunks/Keyboard-rYf2KxZN.cjs.js.map +1 -1
  43. package/dist/chunks/{Label-B2YyCdLl.es.js → Label-BdaLJ5Ha.es.js} +2 -2
  44. package/dist/chunks/{Label-B2YyCdLl.es.js.map → Label-BdaLJ5Ha.es.js.map} +1 -1
  45. package/dist/chunks/Label-BgrYyYXn.cjs.js.map +1 -1
  46. package/dist/chunks/{ListBox-Dnuz2Daa.cjs.js → ListBox-BHUS7cW2.cjs.js} +2 -2
  47. package/dist/chunks/{ListBox-Dnuz2Daa.cjs.js.map → ListBox-BHUS7cW2.cjs.js.map} +1 -1
  48. package/dist/chunks/{ListBox-DWMnhpDd.es.js → ListBox-BinkXiqM.es.js} +15 -15
  49. package/dist/chunks/{ListBox-DWMnhpDd.es.js.map → ListBox-BinkXiqM.es.js.map} +1 -1
  50. package/dist/chunks/OverlayArrow-CYjyBtg8.cjs.js.map +1 -1
  51. package/dist/chunks/{OverlayArrow-sJzRZNbO.es.js → OverlayArrow-Kk4VWzmN.es.js} +3 -3
  52. package/dist/chunks/{OverlayArrow-sJzRZNbO.es.js.map → OverlayArrow-Kk4VWzmN.es.js.map} +1 -1
  53. package/dist/chunks/ProgressBar-BA3sLh1k.cjs.js.map +1 -1
  54. package/dist/chunks/{ProgressBar-DjaUQI7N.es.js → ProgressBar-CwFHab_J.es.js} +5 -5
  55. package/dist/chunks/{ProgressBar-DjaUQI7N.es.js.map → ProgressBar-CwFHab_J.es.js.map} +1 -1
  56. package/dist/chunks/RSPContexts-B4yvXuBR.es.js.map +1 -1
  57. package/dist/chunks/RSPContexts-CkSl9jRK.cjs.js.map +1 -1
  58. package/dist/chunks/SSRProvider-Bc-sMhsT.cjs.js.map +1 -1
  59. package/dist/chunks/{SSRProvider-Cu8KibIK.es.js → SSRProvider-v-LddFEs.es.js} +2 -2
  60. package/dist/chunks/{SSRProvider-Cu8KibIK.es.js.map → SSRProvider-v-LddFEs.es.js.map} +1 -1
  61. package/dist/chunks/{SelectionManager-CtwcAiw4.es.js → SelectionManager-C-DrFCWk.es.js} +11 -11
  62. package/dist/chunks/{SelectionManager-CtwcAiw4.es.js.map → SelectionManager-C-DrFCWk.es.js.map} +1 -1
  63. package/dist/chunks/{SelectionManager-x0j8UpyW.cjs.js → SelectionManager-CmUHDDN6.cjs.js} +2 -2
  64. package/dist/chunks/{SelectionManager-x0j8UpyW.cjs.js.map → SelectionManager-CmUHDDN6.cjs.js.map} +1 -1
  65. package/dist/chunks/Separator-CTkcgvBE.cjs.js +18 -0
  66. package/dist/chunks/{Separator-CcMEmnGS.cjs.js.map → Separator-CTkcgvBE.cjs.js.map} +1 -1
  67. package/dist/chunks/{Separator-BCuq0iz5.es.js → Separator-D9Sio9QB.es.js} +7 -7
  68. package/dist/chunks/{Separator-BCuq0iz5.es.js.map → Separator-D9Sio9QB.es.js.map} +1 -1
  69. package/dist/chunks/Text-BWSfeB9p.cjs.js.map +1 -1
  70. package/dist/chunks/Text-DOcU1ycg.es.js.map +1 -1
  71. package/dist/chunks/TextArea-D3FFXnUy.cjs.js.map +1 -1
  72. package/dist/chunks/{TextArea-BmpgvS0R.es.js → TextArea-VPSW7sXC.es.js} +5 -5
  73. package/dist/chunks/{TextArea-BmpgvS0R.es.js.map → TextArea-VPSW7sXC.es.js.map} +1 -1
  74. package/dist/chunks/ToggleButton-CPAdPTCr.cjs.js.map +1 -1
  75. package/dist/chunks/{ToggleButton-C3JL0pgD.es.js → ToggleButton-CRaJMq4q.es.js} +7 -7
  76. package/dist/chunks/{ToggleButton-C3JL0pgD.es.js.map → ToggleButton-CRaJMq4q.es.js.map} +1 -1
  77. package/dist/chunks/{VisuallyHidden-VHEPK04F.es.js → VisuallyHidden-B0NiNh0E.es.js} +3 -3
  78. package/dist/chunks/{VisuallyHidden-VHEPK04F.es.js.map → VisuallyHidden-B0NiNh0E.es.js.map} +1 -1
  79. package/dist/chunks/VisuallyHidden-Bv_AJXZ7.cjs.js.map +1 -1
  80. package/dist/chunks/accordion-D06jBMOb.es.js +276 -0
  81. package/dist/chunks/accordion-D06jBMOb.es.js.map +1 -0
  82. package/dist/chunks/accordion-PyQH8Q_y.cjs.js +2 -0
  83. package/dist/chunks/accordion-PyQH8Q_y.cjs.js.map +1 -0
  84. package/dist/chunks/alert-BhezYOzs.cjs.js +2 -0
  85. package/dist/chunks/alert-BhezYOzs.cjs.js.map +1 -0
  86. package/dist/chunks/{alert-fGOiy9nj.es.js → alert-L8PXimjc.es.js} +59 -52
  87. package/dist/chunks/alert-L8PXimjc.es.js.map +1 -0
  88. package/dist/chunks/{badge-BJd-Q81M.es.js → badge-CHmfeeRs.es.js} +2 -2
  89. package/dist/chunks/{badge-BJd-Q81M.es.js.map → badge-CHmfeeRs.es.js.map} +1 -1
  90. package/dist/chunks/{button-DEgBQobR.es.js → button-BXR4T980.es.js} +7 -7
  91. package/dist/chunks/{button-DEgBQobR.es.js.map → button-BXR4T980.es.js.map} +1 -1
  92. package/dist/chunks/{button-DJYITnqc.cjs.js → button-BooV4ncX.cjs.js} +2 -2
  93. package/dist/chunks/{button-DJYITnqc.cjs.js.map → button-BooV4ncX.cjs.js.map} +1 -1
  94. package/dist/chunks/{calendar-Csq6ml4F.es.js → calendar-DBk-sVXs.es.js} +11 -11
  95. package/dist/chunks/{calendar-Csq6ml4F.es.js.map → calendar-DBk-sVXs.es.js.map} +1 -1
  96. package/dist/chunks/{calendar-BdL5nJXs.cjs.js → calendar-Dyy7Fm8f.cjs.js} +2 -2
  97. package/dist/chunks/{calendar-BdL5nJXs.cjs.js.map → calendar-Dyy7Fm8f.cjs.js.map} +1 -1
  98. package/dist/chunks/{card-BfUdf1Fy.es.js → card-D9fWUQqs.es.js} +3 -3
  99. package/dist/chunks/{card-BfUdf1Fy.es.js.map → card-D9fWUQqs.es.js.map} +1 -1
  100. package/dist/chunks/{checkbox-D-x7pyAC.cjs.js → checkbox-DDB06avu.cjs.js} +2 -2
  101. package/dist/chunks/{checkbox-D-x7pyAC.cjs.js.map → checkbox-DDB06avu.cjs.js.map} +1 -1
  102. package/dist/chunks/{checkbox-BFQXCWuz.es.js → checkbox-Vo5d1nT3.es.js} +10 -10
  103. package/dist/chunks/{checkbox-BFQXCWuz.es.js.map → checkbox-Vo5d1nT3.es.js.map} +1 -1
  104. package/dist/chunks/{combobox-DXzhNwE_.es.js → combobox-7BYJqsr6.es.js} +31 -31
  105. package/dist/chunks/{combobox-DXzhNwE_.es.js.map → combobox-7BYJqsr6.es.js.map} +1 -1
  106. package/dist/chunks/{combobox-Zdlr1WyV.cjs.js → combobox-BNYcRoYl.cjs.js} +2 -2
  107. package/dist/chunks/{combobox-Zdlr1WyV.cjs.js.map → combobox-BNYcRoYl.cjs.js.map} +1 -1
  108. package/dist/chunks/{context-R4YUlO9Y.es.js → context-DHW7D0wv.es.js} +2 -2
  109. package/dist/chunks/{context-R4YUlO9Y.es.js.map → context-DHW7D0wv.es.js.map} +1 -1
  110. package/dist/chunks/context-OoV8SSWX.cjs.js.map +1 -1
  111. package/dist/chunks/{data-table-M8ZE7bUF.es.js → data-table-6OCmas4y.es.js} +28 -28
  112. package/dist/chunks/{data-table-M8ZE7bUF.es.js.map → data-table-6OCmas4y.es.js.map} +1 -1
  113. package/dist/chunks/{data-table-DjXI7oCC.cjs.js → data-table-DFhiLq16.cjs.js} +2 -2
  114. package/dist/chunks/{data-table-DjXI7oCC.cjs.js.map → data-table-DFhiLq16.cjs.js.map} +1 -1
  115. package/dist/chunks/{date-input-C4NM5AFC.cjs.js → date-input-DaemC1P1.cjs.js} +2 -2
  116. package/dist/chunks/{date-input-C4NM5AFC.cjs.js.map → date-input-DaemC1P1.cjs.js.map} +1 -1
  117. package/dist/chunks/{date-input-BGa-cgj-.es.js → date-input-DzpneTE3.es.js} +4 -4
  118. package/dist/chunks/{date-input-BGa-cgj-.es.js.map → date-input-DzpneTE3.es.js.map} +1 -1
  119. package/dist/chunks/date-picker-Bmlxwhhp.es.js +222 -0
  120. package/dist/chunks/date-picker-Bmlxwhhp.es.js.map +1 -0
  121. package/dist/chunks/date-picker-Bqf7Y-W-.cjs.js +2 -0
  122. package/dist/chunks/date-picker-Bqf7Y-W-.cjs.js.map +1 -0
  123. package/dist/chunks/{date-range-picker-DLEQGtgO.cjs.js → date-range-picker-DHnuq-hT.cjs.js} +2 -2
  124. package/dist/chunks/{date-range-picker-DLEQGtgO.cjs.js.map → date-range-picker-DHnuq-hT.cjs.js.map} +1 -1
  125. package/dist/chunks/{date-range-picker-DL00UKjF.es.js → date-range-picker-b-Qkz44d.es.js} +15 -15
  126. package/dist/chunks/{date-range-picker-DL00UKjF.es.js.map → date-range-picker-b-Qkz44d.es.js.map} +1 -1
  127. package/dist/chunks/{divider-BdtT_f-U.es.js → divider-C11VwZPX.es.js} +3 -3
  128. package/dist/chunks/{divider-BdtT_f-U.es.js.map → divider-C11VwZPX.es.js.map} +1 -1
  129. package/dist/chunks/{divider-o2LVtQJm.cjs.js → divider-Lm98hgn6.cjs.js} +2 -2
  130. package/dist/chunks/{divider-o2LVtQJm.cjs.js.map → divider-Lm98hgn6.cjs.js.map} +1 -1
  131. package/dist/chunks/emotion-is-prop-valid.esm-BUuA3iy8.es.js +16 -0
  132. package/dist/chunks/emotion-is-prop-valid.esm-BUuA3iy8.es.js.map +1 -0
  133. package/dist/chunks/emotion-is-prop-valid.esm-ux_11lix.cjs.js +2 -0
  134. package/dist/chunks/emotion-is-prop-valid.esm-ux_11lix.cjs.js.map +1 -0
  135. package/dist/chunks/{extractStyleProps-bWKBkEco.cjs.js → extractStyleProps-CDKV7i5o.cjs.js} +2 -2
  136. package/dist/chunks/{extractStyleProps-bWKBkEco.cjs.js.map → extractStyleProps-CDKV7i5o.cjs.js.map} +1 -1
  137. package/dist/chunks/{extractStyleProps-CFQKiz8b.es.js → extractStyleProps-vXiS8lCp.es.js} +2 -2
  138. package/dist/chunks/{extractStyleProps-CFQKiz8b.es.js.map → extractStyleProps-vXiS8lCp.es.js.map} +1 -1
  139. package/dist/chunks/filterDOMProps-BSVCO5jK.es.js.map +1 -1
  140. package/dist/chunks/filterDOMProps-WUskt27c.cjs.js.map +1 -1
  141. package/dist/chunks/{focusSafely-DJpphVHF.es.js → focusSafely-DS3RePi9.es.js} +3 -3
  142. package/dist/chunks/{focusSafely-DJpphVHF.es.js.map → focusSafely-DS3RePi9.es.js.map} +1 -1
  143. package/dist/chunks/focusSafely-jDMW9aEx.cjs.js.map +1 -1
  144. package/dist/chunks/focusWithoutScrolling-BlyUcXdY.cjs.js.map +1 -1
  145. package/dist/chunks/focusWithoutScrolling-CDw3JYiq.es.js.map +1 -1
  146. package/dist/chunks/{form-field-DDTIZj9s.es.js → form-field-BF03DSg5.es.js} +4 -4
  147. package/dist/chunks/{form-field-DDTIZj9s.es.js.map → form-field-BF03DSg5.es.js.map} +1 -1
  148. package/dist/chunks/{form-field-D1lcT5f5.cjs.js → form-field-DMiHuyrx.cjs.js} +2 -2
  149. package/dist/chunks/{form-field-D1lcT5f5.cjs.js.map → form-field-DMiHuyrx.cjs.js.map} +1 -1
  150. package/dist/chunks/{group-CqfSQXe7.es.js → group-FqYM3Go1.es.js} +2 -2
  151. package/dist/chunks/{group-CqfSQXe7.es.js.map → group-FqYM3Go1.es.js.map} +1 -1
  152. package/dist/chunks/{icon-button-CPXhdrQY.cjs.js → icon-button-CFLScvMi.cjs.js} +2 -2
  153. package/dist/chunks/{icon-button-CPXhdrQY.cjs.js.map → icon-button-CFLScvMi.cjs.js.map} +1 -1
  154. package/dist/chunks/{icon-button-DPtCLr1A.es.js → icon-button-CKidhzN0.es.js} +2 -2
  155. package/dist/chunks/{icon-button-DPtCLr1A.es.js.map → icon-button-CKidhzN0.es.js.map} +1 -1
  156. package/dist/chunks/{icon-toggle-button-BItuQ_Lh.es.js → icon-toggle-button-CfrW8nn2.es.js} +2 -2
  157. package/dist/chunks/{icon-toggle-button-BItuQ_Lh.es.js.map → icon-toggle-button-CfrW8nn2.es.js.map} +1 -1
  158. package/dist/chunks/{icon-toggle-button-BG-F1KE7.cjs.js → icon-toggle-button-DJsMgc_N.cjs.js} +2 -2
  159. package/dist/chunks/{icon-toggle-button-BG-F1KE7.cjs.js.map → icon-toggle-button-DJsMgc_N.cjs.js.map} +1 -1
  160. package/dist/chunks/{index-BDXHumM1.es.js → index-BZioZQfA.es.js} +15 -8
  161. package/dist/chunks/index-BZioZQfA.es.js.map +1 -0
  162. package/dist/chunks/index-QBeUpHcK.cjs.js +4 -0
  163. package/dist/chunks/index-QBeUpHcK.cjs.js.map +1 -0
  164. package/dist/chunks/intlStrings-Cd44R5hT.es.js.map +1 -1
  165. package/dist/chunks/intlStrings-ClBuC6xN.cjs.js.map +1 -1
  166. package/dist/chunks/{kbd-BXN9aXRE.es.js → kbd-D10CDyIE.es.js} +2 -2
  167. package/dist/chunks/{kbd-BXN9aXRE.es.js.map → kbd-D10CDyIE.es.js.map} +1 -1
  168. package/dist/chunks/{link-CFK97sc0.es.js → link-CwFZrz1A.es.js} +4 -4
  169. package/dist/chunks/{link-CFK97sc0.es.js.map → link-CwFZrz1A.es.js.map} +1 -1
  170. package/dist/chunks/link-DWa1zIUJ.cjs.js.map +1 -1
  171. package/dist/chunks/loading-spinner-CSKBo1bM.cjs.js +2 -0
  172. package/dist/chunks/loading-spinner-CSKBo1bM.cjs.js.map +1 -0
  173. package/dist/chunks/{loading-spinner-CvggCl-H.es.js → loading-spinner-D3xWum_0.es.js} +29 -16
  174. package/dist/chunks/loading-spinner-D3xWum_0.es.js.map +1 -0
  175. package/dist/chunks/{make-element-focusable-C4ZHUSEU.es.js → make-element-focusable-BjLmsXKn.es.js} +3 -3
  176. package/dist/chunks/{make-element-focusable-C4ZHUSEU.es.js.map → make-element-focusable-BjLmsXKn.es.js.map} +1 -1
  177. package/dist/chunks/{menu-aLEA43vB.es.js → menu-DZVU5Z-r.es.js} +7 -7
  178. package/dist/chunks/{menu-aLEA43vB.es.js.map → menu-DZVU5Z-r.es.js.map} +1 -1
  179. package/dist/chunks/{menu-DxXsyeUG.cjs.js → menu-bzi7WVh0.cjs.js} +2 -2
  180. package/dist/chunks/{menu-DxXsyeUG.cjs.js.map → menu-bzi7WVh0.cjs.js.map} +1 -1
  181. package/dist/chunks/mergeProps-BA5Cwf5w.cjs.js.map +1 -1
  182. package/dist/chunks/{mergeProps-B_9syxhT.es.js → mergeProps-uJMZqSEt.es.js} +2 -2
  183. package/dist/chunks/{mergeProps-B_9syxhT.es.js.map → mergeProps-uJMZqSEt.es.js.map} +1 -1
  184. package/dist/chunks/{multiline-text-input-sr-8f5JV.es.js → multiline-text-input-BxC-HBJS.es.js} +4 -4
  185. package/dist/chunks/{multiline-text-input-sr-8f5JV.es.js.map → multiline-text-input-BxC-HBJS.es.js.map} +1 -1
  186. package/dist/chunks/{multiline-text-input-z1pACPVX.cjs.js → multiline-text-input-XDsu-5Ir.cjs.js} +2 -2
  187. package/dist/chunks/{multiline-text-input-z1pACPVX.cjs.js.map → multiline-text-input-XDsu-5Ir.cjs.js.map} +1 -1
  188. package/dist/chunks/{nimbus-provider-ClSAgdoD.cjs.js → nimbus-provider-DU9neylH.cjs.js} +2 -2
  189. package/dist/chunks/{nimbus-provider-ClSAgdoD.cjs.js.map → nimbus-provider-DU9neylH.cjs.js.map} +1 -1
  190. package/dist/chunks/{nimbus-provider-DaWtjnp-.es.js → nimbus-provider-mSQ00EQj.es.js} +3 -3
  191. package/dist/chunks/{nimbus-provider-DaWtjnp-.es.js.map → nimbus-provider-mSQ00EQj.es.js.map} +1 -1
  192. package/dist/chunks/number-DHvo-MDe.cjs.js.map +1 -1
  193. package/dist/chunks/number-dMxJejI6.es.js.map +1 -1
  194. package/dist/chunks/{number-input-D4DKdybl.es.js → number-input-86JlfGyD.es.js} +311 -297
  195. package/dist/chunks/number-input-86JlfGyD.es.js.map +1 -0
  196. package/dist/chunks/number-input-C6V-OoKY.cjs.js +2 -0
  197. package/dist/chunks/number-input-C6V-OoKY.cjs.js.map +1 -0
  198. package/dist/chunks/openLink-Ctl0AdAy.es.js.map +1 -1
  199. package/dist/chunks/openLink-DkCJYbzq.cjs.js.map +1 -1
  200. package/dist/chunks/pagination-D-PpTgDZ.es.js +160 -0
  201. package/dist/chunks/pagination-D-PpTgDZ.es.js.map +1 -0
  202. package/dist/chunks/pagination-DFmOo7da.cjs.js +2 -0
  203. package/dist/chunks/pagination-DFmOo7da.cjs.js.map +1 -0
  204. package/dist/chunks/password-input-BVDnOfvR.cjs.js +2 -0
  205. package/dist/chunks/password-input-BVDnOfvR.cjs.js.map +1 -0
  206. package/dist/chunks/password-input-BizG9N1_.es.js +67 -0
  207. package/dist/chunks/password-input-BizG9N1_.es.js.map +1 -0
  208. package/dist/chunks/platform-BDLy2vDY.cjs.js.map +1 -1
  209. package/dist/chunks/platform-Z5fvtFmM.es.js.map +1 -1
  210. package/dist/chunks/{progress-bar-Wka_eryr.es.js → progress-bar-8JDUwg7A.es.js} +4 -4
  211. package/dist/chunks/{progress-bar-Wka_eryr.es.js.map → progress-bar-8JDUwg7A.es.js.map} +1 -1
  212. package/dist/chunks/{progress-bar-Dz8r8vuu.cjs.js → progress-bar-EQdUUcCZ.cjs.js} +2 -2
  213. package/dist/chunks/{progress-bar-Dz8r8vuu.cjs.js.map → progress-bar-EQdUUcCZ.cjs.js.map} +1 -1
  214. package/dist/chunks/{radio-input-B0qTg-Fb.es.js → radio-input-CSatNmXz.es.js} +18 -18
  215. package/dist/chunks/{radio-input-B0qTg-Fb.es.js.map → radio-input-CSatNmXz.es.js.map} +1 -1
  216. package/dist/chunks/{radio-input-D_pe6uBJ.cjs.js → radio-input-CpWPWVHJ.cjs.js} +2 -2
  217. package/dist/chunks/{radio-input-D_pe6uBJ.cjs.js.map → radio-input-CpWPWVHJ.cjs.js.map} +1 -1
  218. package/dist/chunks/{range-calendar-CoAszOTq.es.js → range-calendar-6mWVLehI.es.js} +11 -11
  219. package/dist/chunks/{range-calendar-CoAszOTq.es.js.map → range-calendar-6mWVLehI.es.js.map} +1 -1
  220. package/dist/chunks/{range-calendar-T1Wlvm-Z.cjs.js → range-calendar-jXa_w-79.cjs.js} +2 -2
  221. package/dist/chunks/{range-calendar-T1Wlvm-Z.cjs.js.map → range-calendar-jXa_w-79.cjs.js.map} +1 -1
  222. package/dist/chunks/rich-text-input-B3s6cy-T.cjs.js +2 -0
  223. package/dist/chunks/rich-text-input-B3s6cy-T.cjs.js.map +1 -0
  224. package/dist/chunks/{rich-text-input-9MdutxJr.es.js → rich-text-input-D4cP13Oo.es.js} +182 -195
  225. package/dist/chunks/rich-text-input-D4cP13Oo.es.js.map +1 -0
  226. package/dist/chunks/scrollIntoView-BzIqpHLO.cjs.js.map +1 -1
  227. package/dist/chunks/{scrollIntoView-BYF_8_6g.es.js → scrollIntoView-DW7gkKpB.es.js} +2 -2
  228. package/dist/chunks/{scrollIntoView-BYF_8_6g.es.js.map → scrollIntoView-DW7gkKpB.es.js.map} +1 -1
  229. package/dist/chunks/select-BAV0cdM5.cjs.js +2 -0
  230. package/dist/chunks/select-BAV0cdM5.cjs.js.map +1 -0
  231. package/dist/chunks/{select-Dz2O_cFR.es.js → select-BEko2rwu.es.js} +124 -114
  232. package/dist/chunks/select-BEko2rwu.es.js.map +1 -0
  233. package/dist/chunks/slate-helpers-BwRHJO4o.es.js +6919 -0
  234. package/dist/chunks/slate-helpers-BwRHJO4o.es.js.map +1 -0
  235. package/dist/chunks/slate-helpers-CMAwCMk0.cjs.js +24 -0
  236. package/dist/chunks/slate-helpers-CMAwCMk0.cjs.js.map +1 -0
  237. package/dist/chunks/split-button-1uPesHKO.cjs.js +2 -0
  238. package/dist/chunks/split-button-1uPesHKO.cjs.js.map +1 -0
  239. package/dist/chunks/split-button-BR8DktKd.es.js +101 -0
  240. package/dist/chunks/split-button-BR8DktKd.es.js.map +1 -0
  241. package/dist/chunks/{switch-BToNhl42.cjs.js → switch-BjdhpPWV.cjs.js} +2 -2
  242. package/dist/chunks/{switch-BToNhl42.cjs.js.map → switch-BjdhpPWV.cjs.js.map} +1 -1
  243. package/dist/chunks/{switch-Poa2k7a5.es.js → switch-D08_asL7.es.js} +7 -7
  244. package/dist/chunks/{switch-Poa2k7a5.es.js.map → switch-D08_asL7.es.js.map} +1 -1
  245. package/dist/chunks/{tag-group-BCNooINR.es.js → tag-group-C8xH9Mqk.es.js} +22 -22
  246. package/dist/chunks/{tag-group-BCNooINR.es.js.map → tag-group-C8xH9Mqk.es.js.map} +1 -1
  247. package/dist/chunks/{tag-group-DzXa9m7w.cjs.js → tag-group-D6_THomO.cjs.js} +2 -2
  248. package/dist/chunks/{tag-group-DzXa9m7w.cjs.js.map → tag-group-D6_THomO.cjs.js.map} +1 -1
  249. package/dist/chunks/{text-DfQpupDi.es.js → text-Bi4Gre95.es.js} +2 -2
  250. package/dist/chunks/{text-DfQpupDi.es.js.map → text-Bi4Gre95.es.js.map} +1 -1
  251. package/dist/chunks/{text-input-5jfm2V1Y.cjs.js → text-input-BtBwAmoa.cjs.js} +2 -2
  252. package/dist/chunks/{text-input-5jfm2V1Y.cjs.js.map → text-input-BtBwAmoa.cjs.js.map} +1 -1
  253. package/dist/chunks/{text-input-Dqx8GVHm.es.js → text-input-bPh9j1cv.es.js} +5 -5
  254. package/dist/chunks/{text-input-Dqx8GVHm.es.js.map → text-input-bPh9j1cv.es.js.map} +1 -1
  255. package/dist/chunks/{time-input-B_PIpe-Z.cjs.js → time-input-DP2ci38H.cjs.js} +2 -2
  256. package/dist/chunks/{time-input-B_PIpe-Z.cjs.js.map → time-input-DP2ci38H.cjs.js.map} +1 -1
  257. package/dist/chunks/{time-input-DxKFrUee.es.js → time-input-Dg7SfITo.es.js} +3 -3
  258. package/dist/chunks/{time-input-DxKFrUee.es.js.map → time-input-Dg7SfITo.es.js.map} +1 -1
  259. package/dist/chunks/{toggle-button-Cg00z4JT.cjs.js → toggle-button-D8qdeoHu.cjs.js} +2 -2
  260. package/dist/chunks/{toggle-button-Cg00z4JT.cjs.js.map → toggle-button-D8qdeoHu.cjs.js.map} +1 -1
  261. package/dist/chunks/{toggle-button-C1bAVGF3.es.js → toggle-button-DeqTwBN5.es.js} +5 -5
  262. package/dist/chunks/{toggle-button-C1bAVGF3.es.js.map → toggle-button-DeqTwBN5.es.js.map} +1 -1
  263. package/dist/chunks/{toggle-button-group-jRdpdYyd.es.js → toggle-button-group-DXmJCAH5.es.js} +2 -2
  264. package/dist/chunks/{toggle-button-group-jRdpdYyd.es.js.map → toggle-button-group-DXmJCAH5.es.js.map} +1 -1
  265. package/dist/chunks/{toolbar-ClUkHnY4.cjs.js → toolbar-BfEvyuOt.cjs.js} +2 -2
  266. package/dist/chunks/{toolbar-ClUkHnY4.cjs.js.map → toolbar-BfEvyuOt.cjs.js.map} +1 -1
  267. package/dist/chunks/{toolbar-Oxkd8pfI.es.js → toolbar-Dv9YKOSU.es.js} +6 -6
  268. package/dist/chunks/{toolbar-Oxkd8pfI.es.js.map → toolbar-Dv9YKOSU.es.js.map} +1 -1
  269. package/dist/chunks/{tooltip-B1YdruCE.es.js → tooltip-BE3LzL7I.es.js} +8 -8
  270. package/dist/chunks/{tooltip-B1YdruCE.es.js.map → tooltip-BE3LzL7I.es.js.map} +1 -1
  271. package/dist/chunks/tooltip-g8-hEdZp.cjs.js.map +1 -1
  272. package/dist/chunks/use-formatting-state-Denpy3Zo.cjs.js +2 -0
  273. package/dist/chunks/use-formatting-state-Denpy3Zo.cjs.js.map +1 -0
  274. package/dist/chunks/use-formatting-state-RJvSR-Zg.es.js +247 -0
  275. package/dist/chunks/use-formatting-state-RJvSR-Zg.es.js.map +1 -0
  276. package/dist/chunks/useButton-BgBfaV_L.cjs.js.map +1 -1
  277. package/dist/chunks/{useButton-DAeSjgg9.es.js → useButton-CYfXo2Jm.es.js} +4 -4
  278. package/dist/chunks/{useButton-DAeSjgg9.es.js.map → useButton-CYfXo2Jm.es.js.map} +1 -1
  279. package/dist/chunks/{useCollator-BHMZd1r6.es.js → useCollator-Y-oU82PA.es.js} +2 -2
  280. package/dist/chunks/{useCollator-BHMZd1r6.es.js.map → useCollator-Y-oU82PA.es.js.map} +1 -1
  281. package/dist/chunks/useCollator-YVJAe1GI.cjs.js.map +1 -1
  282. package/dist/chunks/useControlledState-D0L6S_5r.cjs.js.map +1 -1
  283. package/dist/chunks/useControlledState-u436Wbp1.es.js.map +1 -1
  284. package/dist/chunks/{useDateFormatter-C7Kxzwro.es.js → useDateFormatter-BuXtxdR1.es.js} +3 -3
  285. package/dist/chunks/{useDateFormatter-C7Kxzwro.es.js.map → useDateFormatter-BuXtxdR1.es.js.map} +1 -1
  286. package/dist/chunks/useDateFormatter-CS19Cch2.cjs.js.map +1 -1
  287. package/dist/chunks/{useEvent-YHhqZvpU.es.js → useEvent-Bxxy8Y3o.es.js} +2 -2
  288. package/dist/chunks/{useEvent-YHhqZvpU.es.js.map → useEvent-Bxxy8Y3o.es.js.map} +1 -1
  289. package/dist/chunks/useEvent-CuUOU5WV.cjs.js.map +1 -1
  290. package/dist/chunks/useField-DmqO9k7a.cjs.js.map +1 -1
  291. package/dist/chunks/{useField-Ce9zQxmx.es.js → useField-Do87rtEk.es.js} +3 -3
  292. package/dist/chunks/{useField-Ce9zQxmx.es.js.map → useField-Do87rtEk.es.js.map} +1 -1
  293. package/dist/chunks/useFilter-CG8lxfCP.cjs.js.map +1 -1
  294. package/dist/chunks/{useFilter-DOfNzeZ9.es.js → useFilter-ClBjQ7pb.es.js} +2 -2
  295. package/dist/chunks/{useFilter-DOfNzeZ9.es.js.map → useFilter-ClBjQ7pb.es.js.map} +1 -1
  296. package/dist/chunks/{useFocus-DkWJ2TJC.es.js → useFocus-BmMqaBAE.es.js} +2 -2
  297. package/dist/chunks/{useFocus-DkWJ2TJC.es.js.map → useFocus-BmMqaBAE.es.js.map} +1 -1
  298. package/dist/chunks/useFocus-BtJ38vev.cjs.js.map +1 -1
  299. package/dist/chunks/useFocusRing-CzFer4bD.cjs.js.map +1 -1
  300. package/dist/chunks/{useFocusRing-updnkDQg.es.js → useFocusRing-SQNQ9yn0.es.js} +4 -4
  301. package/dist/chunks/{useFocusRing-updnkDQg.es.js.map → useFocusRing-SQNQ9yn0.es.js.map} +1 -1
  302. package/dist/chunks/{useFocusVisible-CWDaG0ze.es.js → useFocusVisible-BrqHqmb9.es.js} +3 -3
  303. package/dist/chunks/{useFocusVisible-CWDaG0ze.es.js.map → useFocusVisible-BrqHqmb9.es.js.map} +1 -1
  304. package/dist/chunks/useFocusVisible-Co0C61s7.cjs.js.map +1 -1
  305. package/dist/chunks/useFocusWithin-BDSWp3rw.cjs.js.map +1 -1
  306. package/dist/chunks/{useFocusWithin-ByYlHjju.es.js → useFocusWithin-Db5nhiOm.es.js} +2 -2
  307. package/dist/chunks/{useFocusWithin-ByYlHjju.es.js.map → useFocusWithin-Db5nhiOm.es.js.map} +1 -1
  308. package/dist/chunks/{useFocusable-CrsD8ZcF.es.js → useFocusable-BqRFi3ok.es.js} +5 -5
  309. package/dist/chunks/{useFocusable-CrsD8ZcF.es.js.map → useFocusable-BqRFi3ok.es.js.map} +1 -1
  310. package/dist/chunks/useFocusable-DCgmQxS1.cjs.js.map +1 -1
  311. package/dist/chunks/useFormReset--wPlnEOl.cjs.js.map +1 -1
  312. package/dist/chunks/{useFormReset-DurgUJL-.es.js → useFormReset-S3fDvX8g.es.js} +2 -2
  313. package/dist/chunks/{useFormReset-DurgUJL-.es.js.map → useFormReset-S3fDvX8g.es.js.map} +1 -1
  314. package/dist/chunks/useFormValidation-BEaCuNx1.cjs.js.map +1 -1
  315. package/dist/chunks/{useFormValidation-4hZ1_a6w.es.js → useFormValidation-CzvY15hR.es.js} +3 -3
  316. package/dist/chunks/{useFormValidation-4hZ1_a6w.es.js.map → useFormValidation-CzvY15hR.es.js.map} +1 -1
  317. package/dist/chunks/useGlobalListeners-BOOfV5Wh.es.js.map +1 -1
  318. package/dist/chunks/useGlobalListeners-DcmIlwrO.cjs.js.map +1 -1
  319. package/dist/chunks/useHighlightSelectionDescription-CpDw-Mgj.cjs.js.map +1 -1
  320. package/dist/chunks/{useHighlightSelectionDescription-BQg1WcM3.es.js → useHighlightSelectionDescription-VzA5DMaE.es.js} +6 -6
  321. package/dist/chunks/{useHighlightSelectionDescription-BQg1WcM3.es.js.map → useHighlightSelectionDescription-VzA5DMaE.es.js.map} +1 -1
  322. package/dist/chunks/{useHover-DhoE75lX.es.js → useHover-B6UI1gbJ.es.js} +2 -2
  323. package/dist/chunks/{useHover-DhoE75lX.es.js.map → useHover-B6UI1gbJ.es.js.map} +1 -1
  324. package/dist/chunks/useHover-CiP9jMFy.cjs.js.map +1 -1
  325. package/dist/chunks/{useLabel-BBmkkrPP.es.js → useLabel-BZKxdTDn.es.js} +2 -2
  326. package/dist/chunks/{useLabel-BBmkkrPP.es.js.map → useLabel-BZKxdTDn.es.js.map} +1 -1
  327. package/dist/chunks/useLabel-Y8tWagLu.cjs.js.map +1 -1
  328. package/dist/chunks/{useLocalizedStringFormatter-BRnRyxJp.es.js → useLocalizedStringFormatter-BpL9LNnx.es.js} +2 -2
  329. package/dist/chunks/{useLocalizedStringFormatter-BRnRyxJp.es.js.map → useLocalizedStringFormatter-BpL9LNnx.es.js.map} +1 -1
  330. package/dist/chunks/useLocalizedStringFormatter-sB0mFYtL.cjs.js.map +1 -1
  331. package/dist/chunks/useObjectRef-CaJ5pgjX.es.js.map +1 -1
  332. package/dist/chunks/useObjectRef-dXOJdONs.cjs.js.map +1 -1
  333. package/dist/chunks/{usePress-DHhWHfMz.es.js → usePress-BuSQ4Y3L.es.js} +6 -6
  334. package/dist/chunks/{usePress-DHhWHfMz.es.js.map → usePress-BuSQ4Y3L.es.js.map} +1 -1
  335. package/dist/chunks/usePress-C8-hLXJw.cjs.js.map +1 -1
  336. package/dist/chunks/useProgressBar-DWH4I0qR.cjs.js.map +1 -1
  337. package/dist/chunks/{useProgressBar-DHFmTHqL.es.js → useProgressBar-g3lb_jPQ.es.js} +4 -4
  338. package/dist/chunks/{useProgressBar-DHFmTHqL.es.js.map → useProgressBar-g3lb_jPQ.es.js.map} +1 -1
  339. package/dist/chunks/{useSingleSelectListState-C_48GoKf.cjs.js → useSingleSelectListState-C-E1yca1.cjs.js} +2 -2
  340. package/dist/chunks/{useSingleSelectListState-C_48GoKf.cjs.js.map → useSingleSelectListState-C-E1yca1.cjs.js.map} +1 -1
  341. package/dist/chunks/{useSingleSelectListState-DZavH1SN.es.js → useSingleSelectListState-CUkiyLA6.es.js} +2 -2
  342. package/dist/chunks/{useSingleSelectListState-DZavH1SN.es.js.map → useSingleSelectListState-CUkiyLA6.es.js.map} +1 -1
  343. package/dist/chunks/useSpinButton-DA7sVP3T.cjs.js.map +1 -1
  344. package/dist/chunks/{useSpinButton-C9DPDo0r.es.js → useSpinButton-DedtXIGZ.es.js} +3 -3
  345. package/dist/chunks/{useSpinButton-C9DPDo0r.es.js.map → useSpinButton-DedtXIGZ.es.js.map} +1 -1
  346. package/dist/chunks/{useSyncRef-DGRbdR4H.es.js → useSyncRef-Cipkqs1s.es.js} +2 -2
  347. package/dist/chunks/{useSyncRef-DGRbdR4H.es.js.map → useSyncRef-Cipkqs1s.es.js.map} +1 -1
  348. package/dist/chunks/useSyncRef-bcjp9eId.cjs.js.map +1 -1
  349. package/dist/chunks/useTextField-BcthGRd8.cjs.js.map +1 -1
  350. package/dist/chunks/{useTextField-BnL6tOdd.es.js → useTextField-tbVMyexr.es.js} +7 -7
  351. package/dist/chunks/{useTextField-BnL6tOdd.es.js.map → useTextField-tbVMyexr.es.js.map} +1 -1
  352. package/dist/chunks/{useToggle-DqruaaTq.es.js → useToggle-CoHAX6Sy.es.js} +5 -5
  353. package/dist/chunks/{useToggle-DqruaaTq.es.js.map → useToggle-CoHAX6Sy.es.js.map} +1 -1
  354. package/dist/chunks/useToggle-VJWgbeCC.cjs.js.map +1 -1
  355. package/dist/chunks/useToggleState-Dl-o05wQ.cjs.js.map +1 -1
  356. package/dist/chunks/useToggleState-Uh0wTgdI.es.js.map +1 -1
  357. package/dist/chunks/{useToolbar-CLH6Sjes.es.js → useToolbar-B1WYuGxA.es.js} +4 -4
  358. package/dist/chunks/{useToolbar-CLH6Sjes.es.js.map → useToolbar-B1WYuGxA.es.js.map} +1 -1
  359. package/dist/chunks/useToolbar-Bqn3EANT.cjs.js.map +1 -1
  360. package/dist/chunks/useUpdateEffect-C5YQs_1w.cjs.js.map +1 -1
  361. package/dist/chunks/useUpdateEffect-CCDx8D4X.es.js.map +1 -1
  362. package/dist/chunks/utils-BGHwK7fd.cjs.js.map +1 -1
  363. package/dist/chunks/utils-BHdR5Nww.cjs.js.map +1 -1
  364. package/dist/chunks/{utils-BkdW_cdL.es.js → utils-CsKCu3xh.es.js} +2 -2
  365. package/dist/chunks/{utils-BkdW_cdL.es.js.map → utils-CsKCu3xh.es.js.map} +1 -1
  366. package/dist/chunks/{utils-jpfA6kxk.es.js → utils-d3Zmq36h.es.js} +2 -2
  367. package/dist/chunks/{utils-jpfA6kxk.es.js.map → utils-d3Zmq36h.es.js.map} +1 -1
  368. package/dist/chunks/{visually-hidden-BluyWhUI.es.js → visually-hidden-09RsVX6x.es.js} +2 -2
  369. package/dist/chunks/{visually-hidden-BluyWhUI.es.js.map → visually-hidden-09RsVX6x.es.js.map} +1 -1
  370. package/dist/components/accordion.cjs +1 -1
  371. package/dist/components/accordion.es.js +1 -1
  372. package/dist/components/alert.cjs +1 -1
  373. package/dist/components/alert.es.js +1 -1
  374. package/dist/components/badge.es.js +1 -1
  375. package/dist/components/button.cjs +1 -1
  376. package/dist/components/button.es.js +1 -1
  377. package/dist/components/calendar.cjs +1 -1
  378. package/dist/components/calendar.es.js +1 -1
  379. package/dist/components/card.es.js +1 -1
  380. package/dist/components/checkbox.cjs +1 -1
  381. package/dist/components/checkbox.es.js +1 -1
  382. package/dist/components/combobox.cjs +1 -1
  383. package/dist/components/combobox.es.js +1 -1
  384. package/dist/components/components.cjs +1 -1
  385. package/dist/components/components.es.js +70 -68
  386. package/dist/components/components.es.js.map +1 -1
  387. package/dist/components/data-table.cjs +1 -1
  388. package/dist/components/data-table.es.js +1 -1
  389. package/dist/components/date-input.cjs +1 -1
  390. package/dist/components/date-input.es.js +1 -1
  391. package/dist/components/date-picker.cjs +1 -1
  392. package/dist/components/date-picker.es.js +1 -1
  393. package/dist/components/date-range-picker.cjs +1 -1
  394. package/dist/components/date-range-picker.es.js +1 -1
  395. package/dist/components/divider.cjs +1 -1
  396. package/dist/components/divider.es.js +1 -1
  397. package/dist/components/form-field.cjs +1 -1
  398. package/dist/components/form-field.es.js +1 -1
  399. package/dist/components/group.es.js +1 -1
  400. package/dist/components/hooks.cjs +1 -1
  401. package/dist/components/hooks.es.js +1 -1
  402. package/dist/components/icon-button.cjs +1 -1
  403. package/dist/components/icon-button.es.js +1 -1
  404. package/dist/components/icon-toggle-button.cjs +1 -1
  405. package/dist/components/icon-toggle-button.es.js +1 -1
  406. package/dist/components/kbd.es.js +1 -1
  407. package/dist/components/link.es.js +1 -1
  408. package/dist/components/loading-spinner.cjs +1 -1
  409. package/dist/components/loading-spinner.es.js +1 -1
  410. package/dist/components/multiline-text-input.cjs +1 -1
  411. package/dist/components/multiline-text-input.es.js +1 -1
  412. package/dist/components/nimbus-provider.cjs +1 -1
  413. package/dist/components/nimbus-provider.es.js +1 -1
  414. package/dist/components/number-input.cjs +1 -1
  415. package/dist/components/number-input.es.js +1 -1
  416. package/dist/components/pagination.cjs +2 -0
  417. package/dist/components/pagination.cjs.map +1 -0
  418. package/dist/components/pagination.es.js +5 -0
  419. package/dist/components/pagination.es.js.map +1 -0
  420. package/dist/components/password-input.cjs +1 -1
  421. package/dist/components/password-input.es.js +1 -1
  422. package/dist/components/popover.cjs +1 -1
  423. package/dist/components/popover.es.js +1 -1
  424. package/dist/components/progress-bar.cjs +1 -1
  425. package/dist/components/progress-bar.es.js +1 -1
  426. package/dist/components/radio-input.cjs +1 -1
  427. package/dist/components/radio-input.es.js +1 -1
  428. package/dist/components/range-calendar.cjs +1 -1
  429. package/dist/components/range-calendar.es.js +1 -1
  430. package/dist/components/rich-text-input.cjs +1 -1
  431. package/dist/components/rich-text-input.es.js +1 -1
  432. package/dist/components/select.cjs +1 -1
  433. package/dist/components/select.es.js +1 -1
  434. package/dist/components/split-button.cjs +1 -1
  435. package/dist/components/split-button.es.js +1 -1
  436. package/dist/components/switch.cjs +1 -1
  437. package/dist/components/switch.es.js +1 -1
  438. package/dist/components/tag-group.cjs +1 -1
  439. package/dist/components/tag-group.es.js +1 -1
  440. package/dist/components/text-input.cjs +1 -1
  441. package/dist/components/text-input.es.js +1 -1
  442. package/dist/components/text.es.js +1 -1
  443. package/dist/components/time-input.cjs +1 -1
  444. package/dist/components/time-input.es.js +1 -1
  445. package/dist/components/toggle-button-group.es.js +1 -1
  446. package/dist/components/toggle-button.cjs +1 -1
  447. package/dist/components/toggle-button.es.js +1 -1
  448. package/dist/components/toolbar.cjs +1 -1
  449. package/dist/components/toolbar.es.js +1 -1
  450. package/dist/components/tooltip.es.js +2 -2
  451. package/dist/components/utils.cjs +1 -1
  452. package/dist/components/utils.es.js +2 -2
  453. package/dist/components/visually-hidden.es.js +1 -1
  454. package/dist/components.d.ts +98 -88
  455. package/dist/index.cjs +1 -1
  456. package/dist/index.cjs.map +1 -1
  457. package/dist/index.d.ts +98 -87
  458. package/dist/index.es.js +62 -60
  459. package/dist/index.es.js.map +1 -1
  460. package/dist/pagination.d.ts +46 -0
  461. package/dist/select.d.ts +9 -0
  462. package/dist/split-button.d.ts +5 -3
  463. package/package.json +19 -18
  464. package/dist/chunks/Separator-CcMEmnGS.cjs.js +0 -18
  465. package/dist/chunks/accordion-EDJoghXQ.cjs.js +0 -2
  466. package/dist/chunks/accordion-EDJoghXQ.cjs.js.map +0 -1
  467. package/dist/chunks/accordion-UL4pfC2d.es.js +0 -223
  468. package/dist/chunks/accordion-UL4pfC2d.es.js.map +0 -1
  469. package/dist/chunks/alert-Ce4-sHmy.cjs.js +0 -2
  470. package/dist/chunks/alert-Ce4-sHmy.cjs.js.map +0 -1
  471. package/dist/chunks/alert-fGOiy9nj.es.js.map +0 -1
  472. package/dist/chunks/date-picker-ChoImuv_.cjs.js +0 -2
  473. package/dist/chunks/date-picker-ChoImuv_.cjs.js.map +0 -1
  474. package/dist/chunks/date-picker-S6C2mWMs.es.js +0 -190
  475. package/dist/chunks/date-picker-S6C2mWMs.es.js.map +0 -1
  476. package/dist/chunks/emotion-is-prop-valid.esm-Bb7Ou5_X.cjs.js +0 -2
  477. package/dist/chunks/emotion-is-prop-valid.esm-Bb7Ou5_X.cjs.js.map +0 -1
  478. package/dist/chunks/emotion-is-prop-valid.esm-qvxbqhmq.es.js +0 -16
  479. package/dist/chunks/emotion-is-prop-valid.esm-qvxbqhmq.es.js.map +0 -1
  480. package/dist/chunks/index-B3DGNvyC.cjs.js +0 -4
  481. package/dist/chunks/index-B3DGNvyC.cjs.js.map +0 -1
  482. package/dist/chunks/index-BDXHumM1.es.js.map +0 -1
  483. package/dist/chunks/loading-spinner-CvggCl-H.es.js.map +0 -1
  484. package/dist/chunks/loading-spinner-DdYXuYkg.cjs.js +0 -2
  485. package/dist/chunks/loading-spinner-DdYXuYkg.cjs.js.map +0 -1
  486. package/dist/chunks/number-input-BszmEIip.cjs.js +0 -2
  487. package/dist/chunks/number-input-BszmEIip.cjs.js.map +0 -1
  488. package/dist/chunks/number-input-D4DKdybl.es.js.map +0 -1
  489. package/dist/chunks/password-input-7AyAmLgJ.es.js +0 -50
  490. package/dist/chunks/password-input-7AyAmLgJ.es.js.map +0 -1
  491. package/dist/chunks/password-input-BtvFF-4B.cjs.js +0 -2
  492. package/dist/chunks/password-input-BtvFF-4B.cjs.js.map +0 -1
  493. package/dist/chunks/rich-text-input-9MdutxJr.es.js.map +0 -1
  494. package/dist/chunks/rich-text-input-D36fnIHb.cjs.js +0 -7
  495. package/dist/chunks/rich-text-input-D36fnIHb.cjs.js.map +0 -1
  496. package/dist/chunks/select-DFNyky2d.cjs.js +0 -2
  497. package/dist/chunks/select-DFNyky2d.cjs.js.map +0 -1
  498. package/dist/chunks/select-Dz2O_cFR.es.js.map +0 -1
  499. package/dist/chunks/slate-helpers-CcSj-DBm.cjs.js +0 -24
  500. package/dist/chunks/slate-helpers-CcSj-DBm.cjs.js.map +0 -1
  501. package/dist/chunks/slate-helpers-DsTiLoO8.es.js +0 -9042
  502. package/dist/chunks/slate-helpers-DsTiLoO8.es.js.map +0 -1
  503. package/dist/chunks/split-button-BIMKDmUe.cjs.js +0 -2
  504. package/dist/chunks/split-button-BIMKDmUe.cjs.js.map +0 -1
  505. package/dist/chunks/split-button-C5Op1s7Z.es.js +0 -103
  506. package/dist/chunks/split-button-C5Op1s7Z.es.js.map +0 -1
  507. package/dist/chunks/use-formatting-state-B26nE9CO.es.js +0 -113
  508. package/dist/chunks/use-formatting-state-B26nE9CO.es.js.map +0 -1
  509. package/dist/chunks/use-formatting-state-D7zenGZW.cjs.js +0 -2
  510. package/dist/chunks/use-formatting-state-D7zenGZW.cjs.js.map +0 -1
@@ -1,2 +0,0 @@
1
- "use strict";const e=require("react/jsx-runtime"),o=require("react"),R=require("./button-DJYITnqc.cjs.js"),T=require("./icon-button-CPXhdrQY.cjs.js"),V=require("@chakra-ui/react"),O=require("./index-B3DGNvyC.cjs.js"),G=require("@commercetools/nimbus-icons"),u=require("./menu-DxXsyeUG.cjs.js"),{withProvider:N,withContext:d}=V.createSlotRecipeContext({recipe:O.splitButtonSlotRecipe}),z=N("div","root"),K=d("div","buttonGroup"),L=d("button","primaryButton"),W=d("button","dropdownTrigger"),D=p=>{const{size:S="md",variant:b="solid",tone:g,isDisabled:m=!1,"aria-label":y,onAction:l,isOpen:C,defaultOpen:j,onOpenChange:M}=p,h={size:S,variant:b,tone:g},f=t=>{if(!o.isValidElement(t)||!t.props)return!1;const n=t.props;return"id"in n&&typeof n.id=="string"},I=t=>!o.isValidElement(t)||!t.props?!1:"children"in t.props,x=o.Children.toArray(p.children),A=x.find(t=>o.isValidElement(t)&&t.props?.slot==="icon"),a=x.filter(t=>!o.isValidElement(t)||t.props?.slot!=="icon"),B=t=>{let n=!1;return o.Children.forEach(t,r=>{if(!n){if(f(r)&&!r.props.isDisabled){n=!0;return}I(r)&&(n=B(r.props.children))}}),n},q=()=>{const t=[],n=c=>{o.Children.forEach(c,i=>{f(i)&&t.push({content:i.props.children,isDisabled:i.props.isDisabled||!1,actionId:i.props.id}),I(i)&&n(i.props.children)})};return n(a),t.find(c=>!c.isDisabled)||t[0]||{content:"No actions available",isDisabled:!0,actionId:null}},E=B(a),s=q(),P=()=>{!s.isDisabled&&s.actionId&&l&&l(s.actionId)},v=m||s.isDisabled,w=m||!E;return e.jsx(z,{variant:b,"data-mode":"split",children:e.jsxs(K,{children:[e.jsx(L,{asChild:!0,children:e.jsxs(R.Button,{...h,isDisabled:v,onPress:P,children:[A,s.content]})}),e.jsxs(u.Menu.Root,{trigger:"press",isOpen:C,defaultOpen:j,onOpenChange:M,placement:"bottom end",selectionMode:"none",onAction:l?t=>l(String(t)):void 0,children:[e.jsx(u.Menu.Trigger,{asChild:!0,children:e.jsx(W,{asChild:!0,children:e.jsx(T.IconButton,{...h,"aria-label":y,isDisabled:w,children:e.jsx(G.KeyboardArrowDown,{})})})}),e.jsx(u.Menu.Content,{children:a})]})]})})};D.displayName="SplitButton";exports.SplitButton=D;
2
- //# sourceMappingURL=split-button-BIMKDmUe.cjs.js.map
@@ -1 +0,0 @@
1
- {"version":3,"file":"split-button-BIMKDmUe.cjs.js","sources":["../../src/components/split-button/split-button.slots.tsx","../../src/components/split-button/split-button.tsx"],"sourcesContent":["/* eslint-disable @typescript-eslint/no-empty-object-type */\nimport {\n createSlotRecipeContext,\n type HTMLChakraProps,\n type RecipeVariantProps,\n} from \"@chakra-ui/react\";\nimport { splitButtonSlotRecipe } from \"./split-button.recipe\";\n\nconst { withProvider, withContext } = createSlotRecipeContext({\n recipe: splitButtonSlotRecipe,\n});\n\n// Root Container\nexport interface SplitButtonRootSlotProps\n extends HTMLChakraProps<\n \"div\",\n RecipeVariantProps<typeof splitButtonSlotRecipe>\n > {}\nexport const SplitButtonRootSlot = withProvider<\n HTMLDivElement,\n SplitButtonRootSlotProps\n>(\"div\", \"root\");\n\n// Button Group Container\nexport interface SplitButtonButtonGroupSlotProps\n extends HTMLChakraProps<\"div\"> {}\nexport const SplitButtonButtonGroupSlot = withContext<\n HTMLDivElement,\n SplitButtonButtonGroupSlotProps\n>(\"div\", \"buttonGroup\");\n\n// Primary Action Button\nexport interface SplitButtonPrimaryButtonSlotProps\n extends HTMLChakraProps<\"button\"> {}\nexport const SplitButtonPrimaryButtonSlot = withContext<\n HTMLButtonElement,\n SplitButtonPrimaryButtonSlotProps\n>(\"button\", \"primaryButton\");\n\n// Dropdown Trigger Button\nexport interface SplitButtonTriggerSlotProps\n extends HTMLChakraProps<\"button\"> {}\nexport const SplitButtonTriggerSlot = withContext<\n HTMLButtonElement,\n SplitButtonTriggerSlotProps\n>(\"button\", \"dropdownTrigger\");\n","import React from \"react\";\nimport { Button } from \"@/components/button\";\nimport { IconButton } from \"@/components/icon-button\";\nimport { Menu } from \"@/components/menu\";\nimport type { SplitButtonProps } from \"./split-button.types\";\nimport {\n SplitButtonRootSlot,\n SplitButtonButtonGroupSlot,\n SplitButtonPrimaryButtonSlot,\n SplitButtonTriggerSlot,\n} from \"./split-button.slots\";\nimport { KeyboardArrowDown } from \"@commercetools/nimbus-icons\";\n\n// Re-export types\nexport type * from \"./split-button.types\";\n\n/**\n * # SplitButton\n *\n * A split-button component that combines a primary action button with a dropdown menu.\n *\n * Shows a primary action button + dropdown trigger. The primary button automatically\n * executes the first enabled Menu.Item action, while the dropdown trigger opens a menu\n * with all available options.\n *\n * Use with Menu.Item, Menu.Section, and Divider components for content.\n */\nexport const SplitButton = (props: SplitButtonProps) => {\n const {\n size = \"md\",\n variant = \"solid\",\n tone,\n isDisabled = false,\n \"aria-label\": ariaLabel,\n onAction,\n isOpen,\n defaultOpen,\n onOpenChange,\n } = props;\n\n const buttonProps = { size, variant, tone };\n\n /**\n * CORE CONCEPT: In split button mode, we need to populate the primary button\n * with content from a Menu.Item (specified by defaultAction prop).\n *\n * Why this complexity exists:\n * - Users define actions as <Menu.Item id=\"save\">Save Document</Menu.Item>\n * - We need to extract \"Save Document\" text to show on the primary button\n * - Menu.Items can be nested inside Menu.Section components\n * - We need to handle disabled states and fallbacks\n */\n\n // Type guards for safe prop access\n interface MenuItemProps {\n id: string;\n children: React.ReactNode;\n isDisabled?: boolean;\n isCritical?: boolean;\n }\n\n interface ComponentWithChildren {\n children: React.ReactNode;\n }\n\n // Check if element is a Menu.Item with required props\n const isMenuItemWithId = (\n element: React.ReactNode\n ): element is React.ReactElement<MenuItemProps> => {\n if (!React.isValidElement(element) || !element.props) return false;\n const props = element.props as Record<string, unknown>;\n return \"id\" in props && typeof props.id === \"string\";\n };\n\n // Check if element has children prop\n const hasChildren = (\n element: React.ReactNode\n ): element is React.ReactElement<ComponentWithChildren> => {\n if (!React.isValidElement(element) || !element.props) return false;\n const props = element.props as Record<string, unknown>;\n return \"children\" in props;\n };\n\n // Separate Icon slots from Menu items\n const childArray = React.Children.toArray(props.children);\n const iconElement = childArray.find(\n (child): child is React.ReactElement =>\n React.isValidElement(child) &&\n (child.props as { slot?: string })?.slot === \"icon\"\n );\n const menuItems = childArray.filter(\n (child) =>\n !React.isValidElement(child) ||\n (child.props as { slot?: string })?.slot !== \"icon\"\n );\n\n /**\n * Check if there are any actionable (enabled) Menu.Items in the children.\n * This is used to determine if the dropdown trigger should be disabled.\n */\n const hasActionableMenuItems = (children: React.ReactNode): boolean => {\n let hasActionable = false;\n\n React.Children.forEach(children, (child) => {\n if (hasActionable) return;\n\n // Check if this is an enabled Menu.Item\n if (isMenuItemWithId(child) && !child.props.isDisabled) {\n hasActionable = true;\n return;\n }\n\n // Recurse into Menu.Section or any component with children\n if (hasChildren(child)) {\n hasActionable = hasActionableMenuItems(child.props.children);\n }\n });\n\n return hasActionable;\n };\n\n /**\n * Find the primary Menu.Item using the same logic as the original PrimaryActionDropdown.\n * Selects the first enabled Menu.Item, or falls back to the first Menu.Item if all are disabled.\n */\n const findPrimaryMenuItem = () => {\n const allMenuItems: Array<{\n content: React.ReactNode;\n isDisabled: boolean;\n actionId: string | null;\n }> = [];\n\n // Recursively collect all Menu.Items from children (including nested ones)\n const collectMenuItems = (children: React.ReactNode): void => {\n React.Children.forEach(children, (child) => {\n if (isMenuItemWithId(child)) {\n allMenuItems.push({\n content: child.props.children,\n isDisabled: child.props.isDisabled || false,\n actionId: child.props.id,\n });\n }\n\n // Recurse into Menu.Section or any component with children\n if (hasChildren(child)) {\n collectMenuItems(child.props.children);\n }\n });\n };\n\n collectMenuItems(menuItems);\n\n // Find first enabled Menu.Item, or fallback to first Menu.Item\n const primaryMenuItem =\n allMenuItems.find((item) => !item.isDisabled) || allMenuItems[0];\n\n return (\n primaryMenuItem || {\n // TODO: Localize this\n content: \"No actions available\",\n isDisabled: true,\n actionId: null,\n }\n );\n };\n\n // Check if there are any actionable menu items for dropdown functionality\n const hasActionableItems = hasActionableMenuItems(menuItems);\n\n // Get the primary button content using smart selection\n const buttonContent = findPrimaryMenuItem();\n\n const executePrimaryAction = () => {\n if (!buttonContent.isDisabled && buttonContent.actionId && onAction) {\n onAction(buttonContent.actionId);\n }\n };\n\n const isPrimaryDisabled = isDisabled || buttonContent.isDisabled;\n const isDropdownTriggerDisabled = isDisabled || !hasActionableItems;\n\n return (\n <SplitButtonRootSlot variant={variant} data-mode=\"split\">\n <SplitButtonButtonGroupSlot>\n {/* Primary Action Button */}\n <SplitButtonPrimaryButtonSlot asChild>\n <Button\n {...buttonProps}\n isDisabled={isPrimaryDisabled}\n onPress={executePrimaryAction}\n >\n {iconElement}\n {buttonContent.content}\n </Button>\n </SplitButtonPrimaryButtonSlot>\n\n {/* Menu Trigger and Dropdown */}\n <Menu.Root\n trigger=\"press\"\n isOpen={isOpen}\n defaultOpen={defaultOpen}\n onOpenChange={onOpenChange}\n placement=\"bottom end\"\n selectionMode=\"none\"\n onAction={onAction ? (key) => onAction(String(key)) : undefined}\n >\n <Menu.Trigger asChild>\n <SplitButtonTriggerSlot asChild>\n <IconButton\n {...buttonProps}\n aria-label={ariaLabel}\n isDisabled={isDropdownTriggerDisabled}\n >\n <KeyboardArrowDown />\n </IconButton>\n </SplitButtonTriggerSlot>\n </Menu.Trigger>\n\n <Menu.Content>{menuItems}</Menu.Content>\n </Menu.Root>\n </SplitButtonButtonGroupSlot>\n </SplitButtonRootSlot>\n );\n};\n\nSplitButton.displayName = \"SplitButton\";\n\n// Export for internal use by react-docgen\nexport { SplitButton as _SplitButton };\n"],"names":["withProvider","withContext","createSlotRecipeContext","splitButtonSlotRecipe","SplitButtonRootSlot","SplitButtonButtonGroupSlot","SplitButtonPrimaryButtonSlot","SplitButtonTriggerSlot","SplitButton","props","size","variant","tone","isDisabled","ariaLabel","onAction","isOpen","defaultOpen","onOpenChange","buttonProps","isMenuItemWithId","element","React","hasChildren","childArray","iconElement","child","menuItems","hasActionableMenuItems","children","hasActionable","findPrimaryMenuItem","allMenuItems","collectMenuItems","item","hasActionableItems","buttonContent","executePrimaryAction","isPrimaryDisabled","isDropdownTriggerDisabled","jsx","jsxs","Button","Menu","key","IconButton","KeyboardArrowDown"],"mappings":"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"}
@@ -1,103 +0,0 @@
1
- import { jsx as n, jsxs as c } from "react/jsx-runtime";
2
- import i from "react";
3
- import { B as V } from "./button-DEgBQobR.es.js";
4
- import { I as O } from "./icon-button-DPtCLr1A.es.js";
5
- import { createSlotRecipeContext as j } from "@chakra-ui/react";
6
- import { a as G } from "./index-BDXHumM1.es.js";
7
- import { KeyboardArrowDown as N } from "@commercetools/nimbus-icons";
8
- import { M as d } from "./menu-aLEA43vB.es.js";
9
- const { withProvider: _, withContext: u } = /* @__PURE__ */ j({
10
- recipe: G
11
- }), z = /* @__PURE__ */ _("div", "root"), K = /* @__PURE__ */ u("div", "buttonGroup"), L = /* @__PURE__ */ u("button", "primaryButton"), W = /* @__PURE__ */ u("button", "dropdownTrigger"), k = (m) => {
12
- const {
13
- size: B = "md",
14
- variant: f = "solid",
15
- tone: y,
16
- isDisabled: b = !1,
17
- "aria-label": C,
18
- onAction: a,
19
- isOpen: M,
20
- defaultOpen: A,
21
- onOpenChange: E
22
- } = m, h = { size: B, variant: f, tone: y }, I = (t) => {
23
- if (!i.isValidElement(t) || !t.props) return !1;
24
- const o = t.props;
25
- return "id" in o && typeof o.id == "string";
26
- }, D = (t) => !i.isValidElement(t) || !t.props ? !1 : "children" in t.props, S = i.Children.toArray(m.children), P = S.find(
27
- (t) => i.isValidElement(t) && t.props?.slot === "icon"
28
- ), l = S.filter(
29
- (t) => !i.isValidElement(t) || t.props?.slot !== "icon"
30
- ), g = (t) => {
31
- let o = !1;
32
- return i.Children.forEach(t, (s) => {
33
- if (!o) {
34
- if (I(s) && !s.props.isDisabled) {
35
- o = !0;
36
- return;
37
- }
38
- D(s) && (o = g(s.props.children));
39
- }
40
- }), o;
41
- }, v = () => {
42
- const t = [], o = (p) => {
43
- i.Children.forEach(p, (r) => {
44
- I(r) && t.push({
45
- content: r.props.children,
46
- isDisabled: r.props.isDisabled || !1,
47
- actionId: r.props.id
48
- }), D(r) && o(r.props.children);
49
- });
50
- };
51
- return o(l), t.find((p) => !p.isDisabled) || t[0] || {
52
- // TODO: Localize this
53
- content: "No actions available",
54
- isDisabled: !0,
55
- actionId: null
56
- };
57
- }, w = g(l), e = v(), x = () => {
58
- !e.isDisabled && e.actionId && a && a(e.actionId);
59
- }, R = b || e.isDisabled, T = b || !w;
60
- return /* @__PURE__ */ n(z, { variant: f, "data-mode": "split", children: /* @__PURE__ */ c(K, { children: [
61
- /* @__PURE__ */ n(L, { asChild: !0, children: /* @__PURE__ */ c(
62
- V,
63
- {
64
- ...h,
65
- isDisabled: R,
66
- onPress: x,
67
- children: [
68
- P,
69
- e.content
70
- ]
71
- }
72
- ) }),
73
- /* @__PURE__ */ c(
74
- d.Root,
75
- {
76
- trigger: "press",
77
- isOpen: M,
78
- defaultOpen: A,
79
- onOpenChange: E,
80
- placement: "bottom end",
81
- selectionMode: "none",
82
- onAction: a ? (t) => a(String(t)) : void 0,
83
- children: [
84
- /* @__PURE__ */ n(d.Trigger, { asChild: !0, children: /* @__PURE__ */ n(W, { asChild: !0, children: /* @__PURE__ */ n(
85
- O,
86
- {
87
- ...h,
88
- "aria-label": C,
89
- isDisabled: T,
90
- children: /* @__PURE__ */ n(N, {})
91
- }
92
- ) }) }),
93
- /* @__PURE__ */ n(d.Content, { children: l })
94
- ]
95
- }
96
- )
97
- ] }) });
98
- };
99
- k.displayName = "SplitButton";
100
- export {
101
- k as S
102
- };
103
- //# sourceMappingURL=split-button-C5Op1s7Z.es.js.map
@@ -1 +0,0 @@
1
- {"version":3,"file":"split-button-C5Op1s7Z.es.js","sources":["../../src/components/split-button/split-button.slots.tsx","../../src/components/split-button/split-button.tsx"],"sourcesContent":["/* eslint-disable @typescript-eslint/no-empty-object-type */\nimport {\n createSlotRecipeContext,\n type HTMLChakraProps,\n type RecipeVariantProps,\n} from \"@chakra-ui/react\";\nimport { splitButtonSlotRecipe } from \"./split-button.recipe\";\n\nconst { withProvider, withContext } = createSlotRecipeContext({\n recipe: splitButtonSlotRecipe,\n});\n\n// Root Container\nexport interface SplitButtonRootSlotProps\n extends HTMLChakraProps<\n \"div\",\n RecipeVariantProps<typeof splitButtonSlotRecipe>\n > {}\nexport const SplitButtonRootSlot = withProvider<\n HTMLDivElement,\n SplitButtonRootSlotProps\n>(\"div\", \"root\");\n\n// Button Group Container\nexport interface SplitButtonButtonGroupSlotProps\n extends HTMLChakraProps<\"div\"> {}\nexport const SplitButtonButtonGroupSlot = withContext<\n HTMLDivElement,\n SplitButtonButtonGroupSlotProps\n>(\"div\", \"buttonGroup\");\n\n// Primary Action Button\nexport interface SplitButtonPrimaryButtonSlotProps\n extends HTMLChakraProps<\"button\"> {}\nexport const SplitButtonPrimaryButtonSlot = withContext<\n HTMLButtonElement,\n SplitButtonPrimaryButtonSlotProps\n>(\"button\", \"primaryButton\");\n\n// Dropdown Trigger Button\nexport interface SplitButtonTriggerSlotProps\n extends HTMLChakraProps<\"button\"> {}\nexport const SplitButtonTriggerSlot = withContext<\n HTMLButtonElement,\n SplitButtonTriggerSlotProps\n>(\"button\", \"dropdownTrigger\");\n","import React from \"react\";\nimport { Button } from \"@/components/button\";\nimport { IconButton } from \"@/components/icon-button\";\nimport { Menu } from \"@/components/menu\";\nimport type { SplitButtonProps } from \"./split-button.types\";\nimport {\n SplitButtonRootSlot,\n SplitButtonButtonGroupSlot,\n SplitButtonPrimaryButtonSlot,\n SplitButtonTriggerSlot,\n} from \"./split-button.slots\";\nimport { KeyboardArrowDown } from \"@commercetools/nimbus-icons\";\n\n// Re-export types\nexport type * from \"./split-button.types\";\n\n/**\n * # SplitButton\n *\n * A split-button component that combines a primary action button with a dropdown menu.\n *\n * Shows a primary action button + dropdown trigger. The primary button automatically\n * executes the first enabled Menu.Item action, while the dropdown trigger opens a menu\n * with all available options.\n *\n * Use with Menu.Item, Menu.Section, and Divider components for content.\n */\nexport const SplitButton = (props: SplitButtonProps) => {\n const {\n size = \"md\",\n variant = \"solid\",\n tone,\n isDisabled = false,\n \"aria-label\": ariaLabel,\n onAction,\n isOpen,\n defaultOpen,\n onOpenChange,\n } = props;\n\n const buttonProps = { size, variant, tone };\n\n /**\n * CORE CONCEPT: In split button mode, we need to populate the primary button\n * with content from a Menu.Item (specified by defaultAction prop).\n *\n * Why this complexity exists:\n * - Users define actions as <Menu.Item id=\"save\">Save Document</Menu.Item>\n * - We need to extract \"Save Document\" text to show on the primary button\n * - Menu.Items can be nested inside Menu.Section components\n * - We need to handle disabled states and fallbacks\n */\n\n // Type guards for safe prop access\n interface MenuItemProps {\n id: string;\n children: React.ReactNode;\n isDisabled?: boolean;\n isCritical?: boolean;\n }\n\n interface ComponentWithChildren {\n children: React.ReactNode;\n }\n\n // Check if element is a Menu.Item with required props\n const isMenuItemWithId = (\n element: React.ReactNode\n ): element is React.ReactElement<MenuItemProps> => {\n if (!React.isValidElement(element) || !element.props) return false;\n const props = element.props as Record<string, unknown>;\n return \"id\" in props && typeof props.id === \"string\";\n };\n\n // Check if element has children prop\n const hasChildren = (\n element: React.ReactNode\n ): element is React.ReactElement<ComponentWithChildren> => {\n if (!React.isValidElement(element) || !element.props) return false;\n const props = element.props as Record<string, unknown>;\n return \"children\" in props;\n };\n\n // Separate Icon slots from Menu items\n const childArray = React.Children.toArray(props.children);\n const iconElement = childArray.find(\n (child): child is React.ReactElement =>\n React.isValidElement(child) &&\n (child.props as { slot?: string })?.slot === \"icon\"\n );\n const menuItems = childArray.filter(\n (child) =>\n !React.isValidElement(child) ||\n (child.props as { slot?: string })?.slot !== \"icon\"\n );\n\n /**\n * Check if there are any actionable (enabled) Menu.Items in the children.\n * This is used to determine if the dropdown trigger should be disabled.\n */\n const hasActionableMenuItems = (children: React.ReactNode): boolean => {\n let hasActionable = false;\n\n React.Children.forEach(children, (child) => {\n if (hasActionable) return;\n\n // Check if this is an enabled Menu.Item\n if (isMenuItemWithId(child) && !child.props.isDisabled) {\n hasActionable = true;\n return;\n }\n\n // Recurse into Menu.Section or any component with children\n if (hasChildren(child)) {\n hasActionable = hasActionableMenuItems(child.props.children);\n }\n });\n\n return hasActionable;\n };\n\n /**\n * Find the primary Menu.Item using the same logic as the original PrimaryActionDropdown.\n * Selects the first enabled Menu.Item, or falls back to the first Menu.Item if all are disabled.\n */\n const findPrimaryMenuItem = () => {\n const allMenuItems: Array<{\n content: React.ReactNode;\n isDisabled: boolean;\n actionId: string | null;\n }> = [];\n\n // Recursively collect all Menu.Items from children (including nested ones)\n const collectMenuItems = (children: React.ReactNode): void => {\n React.Children.forEach(children, (child) => {\n if (isMenuItemWithId(child)) {\n allMenuItems.push({\n content: child.props.children,\n isDisabled: child.props.isDisabled || false,\n actionId: child.props.id,\n });\n }\n\n // Recurse into Menu.Section or any component with children\n if (hasChildren(child)) {\n collectMenuItems(child.props.children);\n }\n });\n };\n\n collectMenuItems(menuItems);\n\n // Find first enabled Menu.Item, or fallback to first Menu.Item\n const primaryMenuItem =\n allMenuItems.find((item) => !item.isDisabled) || allMenuItems[0];\n\n return (\n primaryMenuItem || {\n // TODO: Localize this\n content: \"No actions available\",\n isDisabled: true,\n actionId: null,\n }\n );\n };\n\n // Check if there are any actionable menu items for dropdown functionality\n const hasActionableItems = hasActionableMenuItems(menuItems);\n\n // Get the primary button content using smart selection\n const buttonContent = findPrimaryMenuItem();\n\n const executePrimaryAction = () => {\n if (!buttonContent.isDisabled && buttonContent.actionId && onAction) {\n onAction(buttonContent.actionId);\n }\n };\n\n const isPrimaryDisabled = isDisabled || buttonContent.isDisabled;\n const isDropdownTriggerDisabled = isDisabled || !hasActionableItems;\n\n return (\n <SplitButtonRootSlot variant={variant} data-mode=\"split\">\n <SplitButtonButtonGroupSlot>\n {/* Primary Action Button */}\n <SplitButtonPrimaryButtonSlot asChild>\n <Button\n {...buttonProps}\n isDisabled={isPrimaryDisabled}\n onPress={executePrimaryAction}\n >\n {iconElement}\n {buttonContent.content}\n </Button>\n </SplitButtonPrimaryButtonSlot>\n\n {/* Menu Trigger and Dropdown */}\n <Menu.Root\n trigger=\"press\"\n isOpen={isOpen}\n defaultOpen={defaultOpen}\n onOpenChange={onOpenChange}\n placement=\"bottom end\"\n selectionMode=\"none\"\n onAction={onAction ? (key) => onAction(String(key)) : undefined}\n >\n <Menu.Trigger asChild>\n <SplitButtonTriggerSlot asChild>\n <IconButton\n {...buttonProps}\n aria-label={ariaLabel}\n isDisabled={isDropdownTriggerDisabled}\n >\n <KeyboardArrowDown />\n </IconButton>\n </SplitButtonTriggerSlot>\n </Menu.Trigger>\n\n <Menu.Content>{menuItems}</Menu.Content>\n </Menu.Root>\n </SplitButtonButtonGroupSlot>\n </SplitButtonRootSlot>\n );\n};\n\nSplitButton.displayName = \"SplitButton\";\n\n// Export for internal use by react-docgen\nexport { SplitButton as _SplitButton };\n"],"names":["withProvider","withContext","createSlotRecipeContext","splitButtonSlotRecipe","SplitButtonRootSlot","SplitButtonButtonGroupSlot","SplitButtonPrimaryButtonSlot","SplitButtonTriggerSlot","SplitButton","props","size","variant","tone","isDisabled","ariaLabel","onAction","isOpen","defaultOpen","onOpenChange","buttonProps","isMenuItemWithId","element","React","hasChildren","childArray","iconElement","child","menuItems","hasActionableMenuItems","children","hasActionable","findPrimaryMenuItem","allMenuItems","collectMenuItems","item","hasActionableItems","buttonContent","executePrimaryAction","isPrimaryDisabled","isDropdownTriggerDisabled","jsx","jsxs","Button","Menu","key","IconButton","KeyboardArrowDown"],"mappings":"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"}
@@ -1,113 +0,0 @@
1
- import { useCallback as h, useMemo as o } from "react";
2
- import { h as x, b as f, S as E, j as C, R as A, u as g, a as d, d as S, i as a, k as T } from "./slate-helpers-DsTiLoO8.es.js";
3
- import { HOTKEYS as K, blockTypes as D, textStyles as R, BASIC_FORMATTING as F, SCRIPT_FORMATTING as M } from "../components/constants.es.js";
4
- const L = ({ editor: t }) => ({ handleKeyDown: h(
5
- (r) => {
6
- if ((r.metaKey || r.ctrlKey) && r.key === "z") {
7
- r.preventDefault(), r.shiftKey ? t.redo() : t.undo();
8
- return;
9
- }
10
- for (const c in K)
11
- if (x(c, r)) {
12
- r.preventDefault();
13
- const i = K[c];
14
- f(t, i);
15
- return;
16
- }
17
- if (r.shiftKey && r.key === "Enter") {
18
- r.preventDefault(), t.insertText(E.placeholderCharacter);
19
- return;
20
- }
21
- },
22
- [t]
23
- ) }), O = (t) => h(
24
- (e) => () => {
25
- const { selection: r } = t;
26
- e(), r && !t.selection && C.select(t, r), A.isFocused(t) || A.focus(t);
27
- },
28
- [t]
29
- ), G = ({
30
- withPreservedSelection: t
31
- }) => {
32
- const e = g(), r = o(() => D.find(
33
- (s) => d(e, s)
34
- ) || "paragraph", [e.selection, e.children]), c = R.find((s) => s.id === r), i = c?.label || "", b = h(
35
- (s) => {
36
- t(() => {
37
- S(e, s);
38
- })();
39
- },
40
- [e, t]
41
- ), n = h(
42
- (s) => {
43
- t(() => {
44
- const u = Array.from(s)[0], k = d(e, "bulleted-list") ? "bulleted-list" : d(e, "numbered-list") ? "numbered-list" : null;
45
- u ? S(e, u) : k && S(e, k);
46
- })();
47
- },
48
- [e, t]
49
- ), l = o(() => {
50
- const s = [];
51
- return a(e, "bold") && s.push("bold"), a(e, "italic") && s.push("italic"), a(e, "underline") && s.push("underline"), new Set(s);
52
- }, [e.selection, e.children, T.marks(e)]), y = o(() => {
53
- const s = [];
54
- return d(e, "bulleted-list") && s.push("bulleted-list"), d(e, "numbered-list") && s.push("numbered-list"), new Set(s);
55
- }, [e.selection, e.children]), p = o(() => e.history && e.history.undos.length > 0, [e.selection, e.children]), m = o(() => e.history && e.history.redos.length > 0, [e.selection, e.children]);
56
- return {
57
- currentTextStyle: r,
58
- selectedTextStyle: c,
59
- selectedTextStyleLabel: i,
60
- handleTextStyleChange: b,
61
- handleListToggle: n,
62
- selectedFormatKeys: l,
63
- selectedListKeys: y,
64
- hasUndos: p,
65
- hasRedos: m
66
- };
67
- }, H = ({
68
- withPreservedSelection: t
69
- }) => {
70
- const e = g(), r = o(() => {
71
- const n = [];
72
- return F.forEach((l) => {
73
- a(e, l) && n.push(l);
74
- }), new Set(n);
75
- }, [e.selection, e.children, T.marks(e)]), c = o(() => {
76
- const n = [];
77
- return M.forEach((l) => {
78
- a(e, l) && n.push(l);
79
- }), new Set(n);
80
- }, [e.selection, e.children, T.marks(e)]), i = o(() => /* @__PURE__ */ new Set([
81
- ...Array.from(r),
82
- ...Array.from(c)
83
- ]), [r, c]), b = h(
84
- (n) => {
85
- if (n === "all") return;
86
- const l = Array.from(n), y = Array.from(i), p = l.filter(
87
- (s) => !y.includes(s)
88
- ), m = y.filter(
89
- (s) => !l.includes(s)
90
- );
91
- [...p, ...m].forEach((s) => {
92
- s === "superscript" || s === "subscript" ? t(() => {
93
- const u = a(e, "superscript") ? "superscript" : a(e, "subscript") ? "subscript" : null;
94
- p.includes(s) ? (u && u !== s && f(e, u), f(e, s)) : f(e, s);
95
- })() : t(() => f(e, s))();
96
- });
97
- },
98
- [e, i, t]
99
- );
100
- return {
101
- selectedKeys: r,
102
- selectedScriptKeys: c,
103
- allSelectedKeys: i,
104
- handleAllSelectionChange: b
105
- };
106
- };
107
- export {
108
- L as a,
109
- G as b,
110
- H as c,
111
- O as u
112
- };
113
- //# sourceMappingURL=use-formatting-state-B26nE9CO.es.js.map
@@ -1 +0,0 @@
1
- {"version":3,"file":"use-formatting-state-B26nE9CO.es.js","sources":["../../src/components/rich-text-input/hooks/use-keyboard-shortcuts.ts","../../src/components/rich-text-input/hooks/use-preserved-selection.ts","../../src/components/rich-text-input/hooks/use-toolbar-state.ts","../../src/components/rich-text-input/hooks/use-formatting-state.ts"],"sourcesContent":["/**\n * Hook for handling keyboard shortcuts in the rich text editor\n *\n * Used by:\n * - components/rich-text-editor.tsx: Attaches keyboard event handler to the editor\n *\n * Purpose:\n * - Centralizes all keyboard shortcut logic for the editor\n * - Handles formatting shortcuts (Cmd+B, Cmd+I, etc.)\n * - Manages undo/redo keyboard combinations\n * - Processes soft line breaks (Shift+Enter)\n * - Extracted from rich-text-editor.tsx to improve organization and testability\n *\n * @param editor - The Slate editor instance for applying changes\n * @returns Object containing the keyboard event handler\n */\nimport { useCallback } from \"react\";\nimport { Editor } from \"slate\";\nimport isHotkey from \"is-hotkey\";\nimport { HOTKEYS } from \"../constants\";\nimport { toggleMark } from \"../utils/slate-helpers\";\nimport { Softbreaker } from \"../utils/slate-helpers\";\n\nexport interface UseKeyboardShortcutsProps {\n editor: Editor;\n}\n\nexport const useKeyboardShortcuts = ({ editor }: UseKeyboardShortcutsProps) => {\n const handleKeyDown = useCallback(\n (event: React.KeyboardEvent) => {\n // Handle undo/redo shortcuts\n if ((event.metaKey || event.ctrlKey) && event.key === \"z\") {\n event.preventDefault();\n if (event.shiftKey) {\n editor.redo();\n } else {\n editor.undo();\n }\n return;\n }\n\n // Handle formatting shortcuts\n for (const hotkey in HOTKEYS) {\n if (isHotkey(hotkey, event)) {\n event.preventDefault();\n const mark = HOTKEYS[hotkey as keyof typeof HOTKEYS];\n toggleMark(editor, mark);\n return;\n }\n }\n\n // Handle soft line breaks (Shift+Enter)\n if (event.shiftKey && event.key === \"Enter\") {\n event.preventDefault();\n editor.insertText(Softbreaker.placeholderCharacter);\n return;\n }\n },\n [editor]\n );\n\n return { handleKeyDown };\n};\n","import { useCallback } from \"react\";\nimport { Editor, Transforms } from \"slate\";\nimport { ReactEditor } from \"slate-react\";\n\n/**\n * Hook that provides a helper function to preserve selection when toolbar actions are executed.\n * This prevents losing text selection when interacting with toolbar buttons and menus.\n *\n * TODO: This works for toggle buttons, but not for menus.\n *\n * @param editor - The Slate editor instance\n * @returns A function that wraps actions to preserve selection and focus\n */\nexport const usePreservedSelection = (editor: Editor) => {\n return useCallback(\n (action: () => void) => {\n return () => {\n // Save the current selection\n const { selection } = editor;\n\n // Execute the action\n action();\n\n // Restore selection if it was lost\n if (selection && !editor.selection) {\n Transforms.select(editor, selection);\n }\n\n // Ensure editor stays focused\n if (!ReactEditor.isFocused(editor)) {\n ReactEditor.focus(editor);\n }\n };\n },\n [editor]\n );\n};\n","/**\n * Hook for managing rich text toolbar state and interactions\n *\n * Used by:\n * - components/rich-text-toolbar.tsx: Manages all toolbar state and event handlers\n *\n * Purpose:\n * - Centralizes complex toolbar state management logic\n * - Handles text style changes, list toggling, format detection\n * - Manages undo/redo button states\n * - Extracted from rich-text-toolbar.tsx to improve organization and testability\n * - Provides clean separation between UI and business logic\n *\n * @param withPreservedSelection - Function for preserving editor selection during operations\n * @returns Object containing all toolbar state and event handlers\n */\nimport { useMemo, useCallback } from \"react\";\nimport { Editor } from \"slate\";\nimport { useSlate } from \"slate-react\";\nimport type { Key } from \"react-aria\";\nimport { textStyles, blockTypes, type BlockType } from \"../constants\";\nimport {\n isMarkActive,\n isBlockActive,\n toggleBlock,\n} from \"../utils/slate-helpers\";\nimport type { CustomElement } from \"../utils/types\";\n\nexport interface UseToolbarStateProps {\n withPreservedSelection: (fn: () => void) => () => void;\n}\n\nexport const useToolbarState = ({\n withPreservedSelection,\n}: UseToolbarStateProps) => {\n const editor = useSlate();\n\n // Get current block type - using useSlate() means this automatically updates\n const currentTextStyle = useMemo(() => {\n return (\n blockTypes.find((type) =>\n isBlockActive(editor, type as CustomElement[\"type\"])\n ) || \"paragraph\"\n );\n }, [editor.selection, editor.children]);\n\n const selectedTextStyle = textStyles.find((v) => v.id === currentTextStyle);\n const selectedTextStyleLabel = selectedTextStyle?.label || \"\";\n\n // Handle text style changes\n const handleTextStyleChange = useCallback(\n (styleId: string) => {\n withPreservedSelection(() => {\n toggleBlock(editor, styleId as BlockType);\n })();\n },\n [editor, withPreservedSelection]\n );\n\n // Handle list formatting\n const handleListToggle = useCallback(\n (selectedKeys: Set<Key>) => {\n withPreservedSelection(() => {\n const selected = Array.from(selectedKeys)[0] as BlockType | undefined;\n const currentlyActive = isBlockActive(editor, \"bulleted-list\")\n ? \"bulleted-list\"\n : isBlockActive(editor, \"numbered-list\")\n ? \"numbered-list\"\n : null;\n\n if (selected) {\n toggleBlock(editor, selected);\n } else if (currentlyActive) {\n toggleBlock(editor, currentlyActive);\n }\n })();\n },\n [editor, withPreservedSelection]\n );\n\n // Get currently selected formatting keys - simplified deps\n const selectedFormatKeys = useMemo(() => {\n const keys: string[] = [];\n if (isMarkActive(editor, \"bold\")) keys.push(\"bold\");\n if (isMarkActive(editor, \"italic\")) keys.push(\"italic\");\n if (isMarkActive(editor, \"underline\")) keys.push(\"underline\");\n return new Set(keys);\n }, [editor.selection, editor.children, Editor.marks(editor)]);\n\n // Get currently selected list formatting key\n const selectedListKeys = useMemo(() => {\n const keys: string[] = [];\n if (isBlockActive(editor, \"bulleted-list\")) keys.push(\"bulleted-list\");\n if (isBlockActive(editor, \"numbered-list\")) keys.push(\"numbered-list\");\n return new Set(keys);\n }, [editor.selection, editor.children]);\n\n // Check history state for undo/redo buttons\n const hasUndos = useMemo(() => {\n return editor.history && editor.history.undos.length > 0;\n }, [editor.selection, editor.children]);\n\n const hasRedos = useMemo(() => {\n return editor.history && editor.history.redos.length > 0;\n }, [editor.selection, editor.children]);\n\n return {\n currentTextStyle,\n selectedTextStyle,\n selectedTextStyleLabel,\n handleTextStyleChange,\n handleListToggle,\n selectedFormatKeys,\n selectedListKeys,\n hasUndos,\n hasRedos,\n };\n};\n","/**\n * Hook for managing formatting menu state with mutual exclusion logic\n *\n * Used by:\n * - components/formatting-menu.tsx: Manages complex formatting state and interactions\n *\n * Purpose:\n * - Handles mutual exclusion between superscript and subscript formatting\n * - Manages state for all formatting options in the \"More Options\" menu\n * - Processes complex selection changes with custom logic\n * - Extracted from formatting-menu.tsx to improve organization and testability\n * - Separates complex business logic from UI rendering\n *\n * @param withPreservedSelection - Function for preserving editor selection during operations\n * @returns Object containing formatting state and selection change handler\n */\nimport { useMemo, useCallback } from \"react\";\nimport { Editor } from \"slate\";\nimport { useSlate } from \"slate-react\";\nimport type { Key } from \"react-aria\";\nimport { BASIC_FORMATTING, SCRIPT_FORMATTING } from \"../constants\";\nimport { isMarkActive, toggleMark } from \"../utils/slate-helpers\";\n\nexport interface UseFormattingStateProps {\n withPreservedSelection: (fn: () => void) => () => void;\n}\n\nexport const useFormattingState = ({\n withPreservedSelection,\n}: UseFormattingStateProps) => {\n const editor = useSlate();\n\n // Get currently selected formatting keys (strikethrough and code)\n const selectedKeys = useMemo(() => {\n const keys: string[] = [];\n BASIC_FORMATTING.forEach((format) => {\n if (isMarkActive(editor, format)) keys.push(format);\n });\n return new Set(keys);\n }, [editor.selection, editor.children, Editor.marks(editor)]);\n\n // Get currently selected script formatting key (superscript or subscript - mutually exclusive)\n const selectedScriptKeys = useMemo(() => {\n const keys: string[] = [];\n SCRIPT_FORMATTING.forEach((format) => {\n if (isMarkActive(editor, format)) keys.push(format);\n });\n return new Set(keys);\n }, [editor.selection, editor.children, Editor.marks(editor)]);\n\n // Combine all selected keys for display purposes\n const allSelectedKeys = useMemo(() => {\n return new Set([\n ...Array.from(selectedKeys),\n ...Array.from(selectedScriptKeys),\n ]);\n }, [selectedKeys, selectedScriptKeys]);\n\n // Handle all selection changes with custom logic for mutual exclusion\n const handleAllSelectionChange = useCallback(\n (keys: \"all\" | Set<Key>) => {\n if (keys === \"all\") return;\n\n const keyArray = Array.from(keys) as string[];\n const currentKeys = Array.from(allSelectedKeys);\n\n // Find newly selected keys (toggle on)\n const newlySelected = keyArray.filter(\n (key) => !currentKeys.includes(key)\n );\n // Find newly deselected keys (toggle off)\n const newlyDeselected = currentKeys.filter(\n (key) => !keyArray.includes(key)\n );\n\n // Handle changes for each key\n [...newlySelected, ...newlyDeselected].forEach((key) => {\n if (key === \"superscript\" || key === \"subscript\") {\n // Handle script formatting with mutual exclusion\n withPreservedSelection(() => {\n const currentlyActive = isMarkActive(editor, \"superscript\")\n ? \"superscript\"\n : isMarkActive(editor, \"subscript\")\n ? \"subscript\"\n : null;\n\n if (newlySelected.includes(key)) {\n // If selecting a script format, deactivate the other one first\n if (currentlyActive && currentlyActive !== key) {\n toggleMark(editor, currentlyActive);\n }\n toggleMark(editor, key);\n } else {\n // Deselecting\n toggleMark(editor, key);\n }\n })();\n } else {\n // Handle regular formatting (strikethrough, code)\n withPreservedSelection(() => toggleMark(editor, key))();\n }\n });\n },\n [editor, allSelectedKeys, withPreservedSelection]\n );\n\n return {\n selectedKeys,\n selectedScriptKeys,\n allSelectedKeys,\n handleAllSelectionChange,\n };\n};\n"],"names":["useKeyboardShortcuts","editor","useCallback","event","hotkey","HOTKEYS","isHotkey","mark","toggleMark","Softbreaker","usePreservedSelection","action","selection","Transforms","ReactEditor","useToolbarState","withPreservedSelection","useSlate","currentTextStyle","useMemo","blockTypes","type","isBlockActive","selectedTextStyle","textStyles","v","selectedTextStyleLabel","handleTextStyleChange","styleId","toggleBlock","handleListToggle","selectedKeys","selected","currentlyActive","selectedFormatKeys","keys","isMarkActive","Editor","selectedListKeys","hasUndos","hasRedos","useFormattingState","BASIC_FORMATTING","format","selectedScriptKeys","SCRIPT_FORMATTING","allSelectedKeys","handleAllSelectionChange","keyArray","currentKeys","newlySelected","key","newlyDeselected"],"mappings":"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"}
@@ -1,2 +0,0 @@
1
- "use strict";const c=require("react"),t=require("./slate-helpers-CcSj-DBm.cjs.js"),d=require("../components/constants.cjs"),g=({editor:r})=>({handleKeyDown:c.useCallback(l=>{if((l.metaKey||l.ctrlKey)&&l.key==="z"){l.preventDefault(),l.shiftKey?r.redo():r.undo();return}for(const i in d.HOTKEYS)if(t.isHotkey(i,l)){l.preventDefault();const u=d.HOTKEYS[i];t.toggleMark(r,u);return}if(l.shiftKey&&l.key==="Enter"){l.preventDefault(),r.insertText(t.Softbreaker.placeholderCharacter);return}},[r])}),p=r=>c.useCallback(e=>()=>{const{selection:l}=r;e(),l&&!r.selection&&t.Transforms.select(r,l),t.ReactEditor.isFocused(r)||t.ReactEditor.focus(r)},[r]),m=({withPreservedSelection:r})=>{const e=t.useSlate(),l=c.useMemo(()=>d.blockTypes.find(s=>t.isBlockActive(e,s))||"paragraph",[e.selection,e.children]),i=d.textStyles.find(s=>s.id===l),u=i?.label||"",h=c.useCallback(s=>{r(()=>{t.toggleBlock(e,s)})()},[e,r]),n=c.useCallback(s=>{r(()=>{const a=Array.from(s)[0],b=t.isBlockActive(e,"bulleted-list")?"bulleted-list":t.isBlockActive(e,"numbered-list")?"numbered-list":null;a?t.toggleBlock(e,a):b&&t.toggleBlock(e,b)})()},[e,r]),o=c.useMemo(()=>{const s=[];return t.isMarkActive(e,"bold")&&s.push("bold"),t.isMarkActive(e,"italic")&&s.push("italic"),t.isMarkActive(e,"underline")&&s.push("underline"),new Set(s)},[e.selection,e.children,t.Editor.marks(e)]),f=c.useMemo(()=>{const s=[];return t.isBlockActive(e,"bulleted-list")&&s.push("bulleted-list"),t.isBlockActive(e,"numbered-list")&&s.push("numbered-list"),new Set(s)},[e.selection,e.children]),y=c.useMemo(()=>e.history&&e.history.undos.length>0,[e.selection,e.children]),k=c.useMemo(()=>e.history&&e.history.redos.length>0,[e.selection,e.children]);return{currentTextStyle:l,selectedTextStyle:i,selectedTextStyleLabel:u,handleTextStyleChange:h,handleListToggle:n,selectedFormatKeys:o,selectedListKeys:f,hasUndos:y,hasRedos:k}},A=({withPreservedSelection:r})=>{const e=t.useSlate(),l=c.useMemo(()=>{const n=[];return d.BASIC_FORMATTING.forEach(o=>{t.isMarkActive(e,o)&&n.push(o)}),new Set(n)},[e.selection,e.children,t.Editor.marks(e)]),i=c.useMemo(()=>{const n=[];return d.SCRIPT_FORMATTING.forEach(o=>{t.isMarkActive(e,o)&&n.push(o)}),new Set(n)},[e.selection,e.children,t.Editor.marks(e)]),u=c.useMemo(()=>new Set([...Array.from(l),...Array.from(i)]),[l,i]),h=c.useCallback(n=>{if(n==="all")return;const o=Array.from(n),f=Array.from(u),y=o.filter(s=>!f.includes(s)),k=f.filter(s=>!o.includes(s));[...y,...k].forEach(s=>{s==="superscript"||s==="subscript"?r(()=>{const a=t.isMarkActive(e,"superscript")?"superscript":t.isMarkActive(e,"subscript")?"subscript":null;y.includes(s)&&a&&a!==s&&t.toggleMark(e,a),t.toggleMark(e,s)})():r(()=>t.toggleMark(e,s))()})},[e,u,r]);return{selectedKeys:l,selectedScriptKeys:i,allSelectedKeys:u,handleAllSelectionChange:h}};exports.useFormattingState=A;exports.useKeyboardShortcuts=g;exports.usePreservedSelection=p;exports.useToolbarState=m;
2
- //# sourceMappingURL=use-formatting-state-D7zenGZW.cjs.js.map
@@ -1 +0,0 @@
1
- {"version":3,"file":"use-formatting-state-D7zenGZW.cjs.js","sources":["../../src/components/rich-text-input/hooks/use-keyboard-shortcuts.ts","../../src/components/rich-text-input/hooks/use-preserved-selection.ts","../../src/components/rich-text-input/hooks/use-toolbar-state.ts","../../src/components/rich-text-input/hooks/use-formatting-state.ts"],"sourcesContent":["/**\n * Hook for handling keyboard shortcuts in the rich text editor\n *\n * Used by:\n * - components/rich-text-editor.tsx: Attaches keyboard event handler to the editor\n *\n * Purpose:\n * - Centralizes all keyboard shortcut logic for the editor\n * - Handles formatting shortcuts (Cmd+B, Cmd+I, etc.)\n * - Manages undo/redo keyboard combinations\n * - Processes soft line breaks (Shift+Enter)\n * - Extracted from rich-text-editor.tsx to improve organization and testability\n *\n * @param editor - The Slate editor instance for applying changes\n * @returns Object containing the keyboard event handler\n */\nimport { useCallback } from \"react\";\nimport { Editor } from \"slate\";\nimport isHotkey from \"is-hotkey\";\nimport { HOTKEYS } from \"../constants\";\nimport { toggleMark } from \"../utils/slate-helpers\";\nimport { Softbreaker } from \"../utils/slate-helpers\";\n\nexport interface UseKeyboardShortcutsProps {\n editor: Editor;\n}\n\nexport const useKeyboardShortcuts = ({ editor }: UseKeyboardShortcutsProps) => {\n const handleKeyDown = useCallback(\n (event: React.KeyboardEvent) => {\n // Handle undo/redo shortcuts\n if ((event.metaKey || event.ctrlKey) && event.key === \"z\") {\n event.preventDefault();\n if (event.shiftKey) {\n editor.redo();\n } else {\n editor.undo();\n }\n return;\n }\n\n // Handle formatting shortcuts\n for (const hotkey in HOTKEYS) {\n if (isHotkey(hotkey, event)) {\n event.preventDefault();\n const mark = HOTKEYS[hotkey as keyof typeof HOTKEYS];\n toggleMark(editor, mark);\n return;\n }\n }\n\n // Handle soft line breaks (Shift+Enter)\n if (event.shiftKey && event.key === \"Enter\") {\n event.preventDefault();\n editor.insertText(Softbreaker.placeholderCharacter);\n return;\n }\n },\n [editor]\n );\n\n return { handleKeyDown };\n};\n","import { useCallback } from \"react\";\nimport { Editor, Transforms } from \"slate\";\nimport { ReactEditor } from \"slate-react\";\n\n/**\n * Hook that provides a helper function to preserve selection when toolbar actions are executed.\n * This prevents losing text selection when interacting with toolbar buttons and menus.\n *\n * TODO: This works for toggle buttons, but not for menus.\n *\n * @param editor - The Slate editor instance\n * @returns A function that wraps actions to preserve selection and focus\n */\nexport const usePreservedSelection = (editor: Editor) => {\n return useCallback(\n (action: () => void) => {\n return () => {\n // Save the current selection\n const { selection } = editor;\n\n // Execute the action\n action();\n\n // Restore selection if it was lost\n if (selection && !editor.selection) {\n Transforms.select(editor, selection);\n }\n\n // Ensure editor stays focused\n if (!ReactEditor.isFocused(editor)) {\n ReactEditor.focus(editor);\n }\n };\n },\n [editor]\n );\n};\n","/**\n * Hook for managing rich text toolbar state and interactions\n *\n * Used by:\n * - components/rich-text-toolbar.tsx: Manages all toolbar state and event handlers\n *\n * Purpose:\n * - Centralizes complex toolbar state management logic\n * - Handles text style changes, list toggling, format detection\n * - Manages undo/redo button states\n * - Extracted from rich-text-toolbar.tsx to improve organization and testability\n * - Provides clean separation between UI and business logic\n *\n * @param withPreservedSelection - Function for preserving editor selection during operations\n * @returns Object containing all toolbar state and event handlers\n */\nimport { useMemo, useCallback } from \"react\";\nimport { Editor } from \"slate\";\nimport { useSlate } from \"slate-react\";\nimport type { Key } from \"react-aria\";\nimport { textStyles, blockTypes, type BlockType } from \"../constants\";\nimport {\n isMarkActive,\n isBlockActive,\n toggleBlock,\n} from \"../utils/slate-helpers\";\nimport type { CustomElement } from \"../utils/types\";\n\nexport interface UseToolbarStateProps {\n withPreservedSelection: (fn: () => void) => () => void;\n}\n\nexport const useToolbarState = ({\n withPreservedSelection,\n}: UseToolbarStateProps) => {\n const editor = useSlate();\n\n // Get current block type - using useSlate() means this automatically updates\n const currentTextStyle = useMemo(() => {\n return (\n blockTypes.find((type) =>\n isBlockActive(editor, type as CustomElement[\"type\"])\n ) || \"paragraph\"\n );\n }, [editor.selection, editor.children]);\n\n const selectedTextStyle = textStyles.find((v) => v.id === currentTextStyle);\n const selectedTextStyleLabel = selectedTextStyle?.label || \"\";\n\n // Handle text style changes\n const handleTextStyleChange = useCallback(\n (styleId: string) => {\n withPreservedSelection(() => {\n toggleBlock(editor, styleId as BlockType);\n })();\n },\n [editor, withPreservedSelection]\n );\n\n // Handle list formatting\n const handleListToggle = useCallback(\n (selectedKeys: Set<Key>) => {\n withPreservedSelection(() => {\n const selected = Array.from(selectedKeys)[0] as BlockType | undefined;\n const currentlyActive = isBlockActive(editor, \"bulleted-list\")\n ? \"bulleted-list\"\n : isBlockActive(editor, \"numbered-list\")\n ? \"numbered-list\"\n : null;\n\n if (selected) {\n toggleBlock(editor, selected);\n } else if (currentlyActive) {\n toggleBlock(editor, currentlyActive);\n }\n })();\n },\n [editor, withPreservedSelection]\n );\n\n // Get currently selected formatting keys - simplified deps\n const selectedFormatKeys = useMemo(() => {\n const keys: string[] = [];\n if (isMarkActive(editor, \"bold\")) keys.push(\"bold\");\n if (isMarkActive(editor, \"italic\")) keys.push(\"italic\");\n if (isMarkActive(editor, \"underline\")) keys.push(\"underline\");\n return new Set(keys);\n }, [editor.selection, editor.children, Editor.marks(editor)]);\n\n // Get currently selected list formatting key\n const selectedListKeys = useMemo(() => {\n const keys: string[] = [];\n if (isBlockActive(editor, \"bulleted-list\")) keys.push(\"bulleted-list\");\n if (isBlockActive(editor, \"numbered-list\")) keys.push(\"numbered-list\");\n return new Set(keys);\n }, [editor.selection, editor.children]);\n\n // Check history state for undo/redo buttons\n const hasUndos = useMemo(() => {\n return editor.history && editor.history.undos.length > 0;\n }, [editor.selection, editor.children]);\n\n const hasRedos = useMemo(() => {\n return editor.history && editor.history.redos.length > 0;\n }, [editor.selection, editor.children]);\n\n return {\n currentTextStyle,\n selectedTextStyle,\n selectedTextStyleLabel,\n handleTextStyleChange,\n handleListToggle,\n selectedFormatKeys,\n selectedListKeys,\n hasUndos,\n hasRedos,\n };\n};\n","/**\n * Hook for managing formatting menu state with mutual exclusion logic\n *\n * Used by:\n * - components/formatting-menu.tsx: Manages complex formatting state and interactions\n *\n * Purpose:\n * - Handles mutual exclusion between superscript and subscript formatting\n * - Manages state for all formatting options in the \"More Options\" menu\n * - Processes complex selection changes with custom logic\n * - Extracted from formatting-menu.tsx to improve organization and testability\n * - Separates complex business logic from UI rendering\n *\n * @param withPreservedSelection - Function for preserving editor selection during operations\n * @returns Object containing formatting state and selection change handler\n */\nimport { useMemo, useCallback } from \"react\";\nimport { Editor } from \"slate\";\nimport { useSlate } from \"slate-react\";\nimport type { Key } from \"react-aria\";\nimport { BASIC_FORMATTING, SCRIPT_FORMATTING } from \"../constants\";\nimport { isMarkActive, toggleMark } from \"../utils/slate-helpers\";\n\nexport interface UseFormattingStateProps {\n withPreservedSelection: (fn: () => void) => () => void;\n}\n\nexport const useFormattingState = ({\n withPreservedSelection,\n}: UseFormattingStateProps) => {\n const editor = useSlate();\n\n // Get currently selected formatting keys (strikethrough and code)\n const selectedKeys = useMemo(() => {\n const keys: string[] = [];\n BASIC_FORMATTING.forEach((format) => {\n if (isMarkActive(editor, format)) keys.push(format);\n });\n return new Set(keys);\n }, [editor.selection, editor.children, Editor.marks(editor)]);\n\n // Get currently selected script formatting key (superscript or subscript - mutually exclusive)\n const selectedScriptKeys = useMemo(() => {\n const keys: string[] = [];\n SCRIPT_FORMATTING.forEach((format) => {\n if (isMarkActive(editor, format)) keys.push(format);\n });\n return new Set(keys);\n }, [editor.selection, editor.children, Editor.marks(editor)]);\n\n // Combine all selected keys for display purposes\n const allSelectedKeys = useMemo(() => {\n return new Set([\n ...Array.from(selectedKeys),\n ...Array.from(selectedScriptKeys),\n ]);\n }, [selectedKeys, selectedScriptKeys]);\n\n // Handle all selection changes with custom logic for mutual exclusion\n const handleAllSelectionChange = useCallback(\n (keys: \"all\" | Set<Key>) => {\n if (keys === \"all\") return;\n\n const keyArray = Array.from(keys) as string[];\n const currentKeys = Array.from(allSelectedKeys);\n\n // Find newly selected keys (toggle on)\n const newlySelected = keyArray.filter(\n (key) => !currentKeys.includes(key)\n );\n // Find newly deselected keys (toggle off)\n const newlyDeselected = currentKeys.filter(\n (key) => !keyArray.includes(key)\n );\n\n // Handle changes for each key\n [...newlySelected, ...newlyDeselected].forEach((key) => {\n if (key === \"superscript\" || key === \"subscript\") {\n // Handle script formatting with mutual exclusion\n withPreservedSelection(() => {\n const currentlyActive = isMarkActive(editor, \"superscript\")\n ? \"superscript\"\n : isMarkActive(editor, \"subscript\")\n ? \"subscript\"\n : null;\n\n if (newlySelected.includes(key)) {\n // If selecting a script format, deactivate the other one first\n if (currentlyActive && currentlyActive !== key) {\n toggleMark(editor, currentlyActive);\n }\n toggleMark(editor, key);\n } else {\n // Deselecting\n toggleMark(editor, key);\n }\n })();\n } else {\n // Handle regular formatting (strikethrough, code)\n withPreservedSelection(() => toggleMark(editor, key))();\n }\n });\n },\n [editor, allSelectedKeys, withPreservedSelection]\n );\n\n return {\n selectedKeys,\n selectedScriptKeys,\n allSelectedKeys,\n handleAllSelectionChange,\n };\n};\n"],"names":["useKeyboardShortcuts","editor","useCallback","event","hotkey","HOTKEYS","isHotkey","mark","toggleMark","Softbreaker","usePreservedSelection","action","selection","Transforms","ReactEditor","useToolbarState","withPreservedSelection","useSlate","currentTextStyle","useMemo","blockTypes","type","isBlockActive","selectedTextStyle","textStyles","v","selectedTextStyleLabel","handleTextStyleChange","styleId","toggleBlock","handleListToggle","selectedKeys","selected","currentlyActive","selectedFormatKeys","keys","isMarkActive","Editor","selectedListKeys","hasUndos","hasRedos","useFormattingState","BASIC_FORMATTING","format","selectedScriptKeys","SCRIPT_FORMATTING","allSelectedKeys","handleAllSelectionChange","keyArray","currentKeys","newlySelected","key","newlyDeselected"],"mappings":"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"}