@commercetools/nimbus 0.0.0-canary-20250826133439 → 0.0.0-canary-20250827101922

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 (277) hide show
  1. package/dist/accordion.d.ts +9 -0
  2. package/dist/alert.d.ts +9 -0
  3. package/dist/avatar.d.ts +9 -0
  4. package/dist/badge.d.ts +9 -0
  5. package/dist/box.d.ts +9 -0
  6. package/dist/button.d.ts +9 -0
  7. package/dist/calendar.d.ts +9 -0
  8. package/dist/card.d.ts +9 -0
  9. package/dist/checkbox.d.ts +9 -0
  10. package/dist/chunks/{alert-BhMfbMnN.cjs.js → alert-BZUgI30X.cjs.js} +2 -2
  11. package/dist/chunks/{alert-BhMfbMnN.cjs.js.map → alert-BZUgI30X.cjs.js.map} +1 -1
  12. package/dist/chunks/{alert-BvT6yjas.es.js → alert-BxQlH4k1.es.js} +2 -2
  13. package/dist/chunks/{alert-BvT6yjas.es.js.map → alert-BxQlH4k1.es.js.map} +1 -1
  14. package/dist/chunks/{button-Bg73nQk3.es.js → button-B4HX0fM_.es.js} +2 -2
  15. package/dist/chunks/{button-Bg73nQk3.es.js.map → button-B4HX0fM_.es.js.map} +1 -1
  16. package/dist/chunks/{button-BiBXrCVh.cjs.js → button-qv44IWcR.cjs.js} +2 -2
  17. package/dist/chunks/{button-BiBXrCVh.cjs.js.map → button-qv44IWcR.cjs.js.map} +1 -1
  18. package/dist/chunks/{calendar-Co4TTkzj.es.js → calendar-DABzfMco.es.js} +4 -4
  19. package/dist/chunks/{calendar-Co4TTkzj.es.js.map → calendar-DABzfMco.es.js.map} +1 -1
  20. package/dist/chunks/{calendar-BydrcPp3.cjs.js → calendar-v3st4EyG.cjs.js} +2 -2
  21. package/dist/chunks/{calendar-BydrcPp3.cjs.js.map → calendar-v3st4EyG.cjs.js.map} +1 -1
  22. package/dist/chunks/{checkbox-8eIhS2f6.cjs.js → checkbox-BN-_eQB9.cjs.js} +2 -2
  23. package/dist/chunks/{checkbox-8eIhS2f6.cjs.js.map → checkbox-BN-_eQB9.cjs.js.map} +1 -1
  24. package/dist/chunks/{checkbox-B2yJgtOJ.es.js → checkbox-VN2y-Prn.es.js} +2 -2
  25. package/dist/chunks/{checkbox-B2yJgtOJ.es.js.map → checkbox-VN2y-Prn.es.js.map} +1 -1
  26. package/dist/chunks/{combobox-CFH0OaAM.cjs.js → combobox-Ah0GQqSW.cjs.js} +2 -2
  27. package/dist/chunks/{combobox-CFH0OaAM.cjs.js.map → combobox-Ah0GQqSW.cjs.js.map} +1 -1
  28. package/dist/chunks/{combobox-CkVqkKdA.es.js → combobox-D_IGHRck.es.js} +5 -5
  29. package/dist/chunks/{combobox-CkVqkKdA.es.js.map → combobox-D_IGHRck.es.js.map} +1 -1
  30. package/dist/chunks/data-table-COrv-ddO.cjs.js +2 -0
  31. package/dist/chunks/{data-table-DIXPr3ke.cjs.js.map → data-table-COrv-ddO.cjs.js.map} +1 -1
  32. package/dist/chunks/{data-table-cBq9JXG7.es.js → data-table-DbhVtDHQ.es.js} +677 -676
  33. package/dist/chunks/{data-table-cBq9JXG7.es.js.map → data-table-DbhVtDHQ.es.js.map} +1 -1
  34. package/dist/chunks/{date-input-BSacD65z.es.js → date-input-BOKez7n5.es.js} +3 -3
  35. package/dist/chunks/{date-input-BSacD65z.es.js.map → date-input-BOKez7n5.es.js.map} +1 -1
  36. package/dist/chunks/{date-input-DwxNrZ3r.cjs.js → date-input-C6zs_WLw.cjs.js} +2 -2
  37. package/dist/chunks/{date-input-DwxNrZ3r.cjs.js.map → date-input-C6zs_WLw.cjs.js.map} +1 -1
  38. package/dist/chunks/{date-picker-Bx2J-sPg.es.js → date-picker-Bpi1PgR2.es.js} +7 -7
  39. package/dist/chunks/{date-picker-Bx2J-sPg.es.js.map → date-picker-Bpi1PgR2.es.js.map} +1 -1
  40. package/dist/chunks/{date-picker-UEQeFHA8.cjs.js → date-picker-DNROhe7B.cjs.js} +2 -2
  41. package/dist/chunks/{date-picker-UEQeFHA8.cjs.js.map → date-picker-DNROhe7B.cjs.js.map} +1 -1
  42. package/dist/chunks/{date-range-picker-DvaRIy3T.es.js → date-range-picker-CXKG84tw.es.js} +7 -7
  43. package/dist/chunks/{date-range-picker-DvaRIy3T.es.js.map → date-range-picker-CXKG84tw.es.js.map} +1 -1
  44. package/dist/chunks/{date-range-picker-Dx1nE1Br.cjs.js → date-range-picker-tyjYdQx1.cjs.js} +2 -2
  45. package/dist/chunks/{date-range-picker-Dx1nE1Br.cjs.js.map → date-range-picker-tyjYdQx1.cjs.js.map} +1 -1
  46. package/dist/chunks/{extractStyleProps-BEa9kwlY.es.js → extractStyleProps-DX5GBd9K.es.js} +2 -2
  47. package/dist/chunks/{extractStyleProps-BEa9kwlY.es.js.map → extractStyleProps-DX5GBd9K.es.js.map} +1 -1
  48. package/dist/chunks/{extractStyleProps-wjyId_vK.cjs.js → extractStyleProps-yFm0qaXg.cjs.js} +2 -2
  49. package/dist/chunks/{extractStyleProps-wjyId_vK.cjs.js.map → extractStyleProps-yFm0qaXg.cjs.js.map} +1 -1
  50. package/dist/chunks/{form-field-Do0NhI0D.es.js → form-field-DePRnFqm.es.js} +2 -2
  51. package/dist/chunks/{form-field-Do0NhI0D.es.js.map → form-field-DePRnFqm.es.js.map} +1 -1
  52. package/dist/chunks/{form-field-DiW_0hSy.cjs.js → form-field-JpzG70WX.cjs.js} +2 -2
  53. package/dist/chunks/{form-field-DiW_0hSy.cjs.js.map → form-field-JpzG70WX.cjs.js.map} +1 -1
  54. package/dist/chunks/{icon-button-BBkPfAM3.cjs.js → icon-button-CCrfnUUB.cjs.js} +2 -2
  55. package/dist/chunks/{icon-button-BBkPfAM3.cjs.js.map → icon-button-CCrfnUUB.cjs.js.map} +1 -1
  56. package/dist/chunks/{icon-button-D2qU4Eun.es.js → icon-button-O_dSWgZr.es.js} +2 -2
  57. package/dist/chunks/{icon-button-D2qU4Eun.es.js.map → icon-button-O_dSWgZr.es.js.map} +1 -1
  58. package/dist/chunks/{icon-toggle-button-L_kYjNhI.cjs.js → icon-toggle-button-D5Uji9qU.cjs.js} +2 -2
  59. package/dist/chunks/{icon-toggle-button-L_kYjNhI.cjs.js.map → icon-toggle-button-D5Uji9qU.cjs.js.map} +1 -1
  60. package/dist/chunks/{icon-toggle-button-wjYSiFhl.es.js → icon-toggle-button-sFqCJEvI.es.js} +2 -2
  61. package/dist/chunks/{icon-toggle-button-wjYSiFhl.es.js.map → icon-toggle-button-sFqCJEvI.es.js.map} +1 -1
  62. package/dist/chunks/index-COhQ_99G.cjs.js +4 -0
  63. package/dist/chunks/index-COhQ_99G.cjs.js.map +1 -0
  64. package/dist/chunks/{index-BDmBxsjm.es.js → index-DRWeBbu8.es.js} +31 -61
  65. package/dist/chunks/index-DRWeBbu8.es.js.map +1 -0
  66. package/dist/chunks/menu-BX993uzm.cjs.js +2 -0
  67. package/dist/chunks/menu-BX993uzm.cjs.js.map +1 -0
  68. package/dist/chunks/menu-DbKjf1RS.es.js +157 -0
  69. package/dist/chunks/menu-DbKjf1RS.es.js.map +1 -0
  70. package/dist/chunks/{multiline-text-input-MJPDSw2d.es.js → multiline-text-input-BvJxZ-xz.es.js} +2 -2
  71. package/dist/chunks/{multiline-text-input-MJPDSw2d.es.js.map → multiline-text-input-BvJxZ-xz.es.js.map} +1 -1
  72. package/dist/chunks/{multiline-text-input-BXpftZg5.cjs.js → multiline-text-input-mIiDJ-o1.cjs.js} +2 -2
  73. package/dist/chunks/{multiline-text-input-BXpftZg5.cjs.js.map → multiline-text-input-mIiDJ-o1.cjs.js.map} +1 -1
  74. package/dist/chunks/{nimbus-provider-DEQVQ5ZH.es.js → nimbus-provider-C68IpiXi.es.js} +2 -2
  75. package/dist/chunks/{nimbus-provider-DEQVQ5ZH.es.js.map → nimbus-provider-C68IpiXi.es.js.map} +1 -1
  76. package/dist/chunks/{nimbus-provider-DCCIMVE_.cjs.js → nimbus-provider-Yka95N38.cjs.js} +2 -2
  77. package/dist/chunks/{nimbus-provider-DCCIMVE_.cjs.js.map → nimbus-provider-Yka95N38.cjs.js.map} +1 -1
  78. package/dist/chunks/{number-input-DsQqe_99.cjs.js → number-input-BN6xiOXG.cjs.js} +2 -2
  79. package/dist/chunks/{number-input-DsQqe_99.cjs.js.map → number-input-BN6xiOXG.cjs.js.map} +1 -1
  80. package/dist/chunks/{number-input-CFa5dE3r.es.js → number-input-DFmXNyz2.es.js} +3 -3
  81. package/dist/chunks/{number-input-CFa5dE3r.es.js.map → number-input-DFmXNyz2.es.js.map} +1 -1
  82. package/dist/chunks/{password-input-BT594v5p.es.js → password-input-BtbZYHE8.es.js} +3 -3
  83. package/dist/chunks/{password-input-BT594v5p.es.js.map → password-input-BtbZYHE8.es.js.map} +1 -1
  84. package/dist/chunks/{password-input-D1LSzb9p.cjs.js → password-input-CGsQktks.cjs.js} +2 -2
  85. package/dist/chunks/{password-input-D1LSzb9p.cjs.js.map → password-input-CGsQktks.cjs.js.map} +1 -1
  86. package/dist/chunks/{progress-bar-DM8YmshZ.es.js → progress-bar-CDRI279T.es.js} +2 -2
  87. package/dist/chunks/{progress-bar-DM8YmshZ.es.js.map → progress-bar-CDRI279T.es.js.map} +1 -1
  88. package/dist/chunks/{progress-bar-QjY92GQn.cjs.js → progress-bar-nQCcdv_4.cjs.js} +2 -2
  89. package/dist/chunks/{progress-bar-QjY92GQn.cjs.js.map → progress-bar-nQCcdv_4.cjs.js.map} +1 -1
  90. package/dist/chunks/{radio-input-DRDeKoG2.es.js → radio-input-CE_kist9.es.js} +3 -3
  91. package/dist/chunks/{radio-input-DRDeKoG2.es.js.map → radio-input-CE_kist9.es.js.map} +1 -1
  92. package/dist/chunks/{radio-input-BOjuwflu.cjs.js → radio-input-CWRnpcxm.cjs.js} +2 -2
  93. package/dist/chunks/{radio-input-BOjuwflu.cjs.js.map → radio-input-CWRnpcxm.cjs.js.map} +1 -1
  94. package/dist/chunks/{range-calendar-Cup7ahCy.es.js → range-calendar-BNAIdxfK.es.js} +4 -4
  95. package/dist/chunks/{range-calendar-Cup7ahCy.es.js.map → range-calendar-BNAIdxfK.es.js.map} +1 -1
  96. package/dist/chunks/{range-calendar-C_x3yqnL.cjs.js → range-calendar-BW4gqU35.cjs.js} +2 -2
  97. package/dist/chunks/{range-calendar-C_x3yqnL.cjs.js.map → range-calendar-BW4gqU35.cjs.js.map} +1 -1
  98. package/dist/chunks/rich-text-input-D3xrDvLR.es.js +691 -0
  99. package/dist/chunks/rich-text-input-D3xrDvLR.es.js.map +1 -0
  100. package/dist/chunks/rich-text-input-iDEygf74.cjs.js +2 -0
  101. package/dist/chunks/rich-text-input-iDEygf74.cjs.js.map +1 -0
  102. package/dist/chunks/{select-BnN5zaBu.cjs.js → select-DihySN1w.cjs.js} +2 -2
  103. package/dist/chunks/{select-BnN5zaBu.cjs.js.map → select-DihySN1w.cjs.js.map} +1 -1
  104. package/dist/chunks/{select-Cr0CSahh.es.js → select-wby2GRxc.es.js} +16 -16
  105. package/dist/chunks/{select-Cr0CSahh.es.js.map → select-wby2GRxc.es.js.map} +1 -1
  106. package/dist/chunks/slate-helpers-BwRHJO4o.es.js +6919 -0
  107. package/dist/chunks/slate-helpers-BwRHJO4o.es.js.map +1 -0
  108. package/dist/chunks/slate-helpers-CMAwCMk0.cjs.js +24 -0
  109. package/dist/chunks/slate-helpers-CMAwCMk0.cjs.js.map +1 -0
  110. package/dist/chunks/split-button-CcVa5yVH.es.js +103 -0
  111. package/dist/chunks/split-button-CcVa5yVH.es.js.map +1 -0
  112. package/dist/chunks/split-button-RydlGh27.cjs.js +2 -0
  113. package/dist/chunks/split-button-RydlGh27.cjs.js.map +1 -0
  114. package/dist/chunks/{switch-DUiPm-aC.cjs.js → switch-D3w3xQ7Z.cjs.js} +2 -2
  115. package/dist/chunks/{switch-DUiPm-aC.cjs.js.map → switch-D3w3xQ7Z.cjs.js.map} +1 -1
  116. package/dist/chunks/{switch-BOvBbCnU.es.js → switch-DZBU6Cbk.es.js} +3 -3
  117. package/dist/chunks/{switch-BOvBbCnU.es.js.map → switch-DZBU6Cbk.es.js.map} +1 -1
  118. package/dist/chunks/{tag-group-wXtwUUis.cjs.js → tag-group-Cwcr_VDp.cjs.js} +2 -2
  119. package/dist/chunks/{tag-group-wXtwUUis.cjs.js.map → tag-group-Cwcr_VDp.cjs.js.map} +1 -1
  120. package/dist/chunks/{tag-group-C_oBSbrz.es.js → tag-group-DQ0jVbpR.es.js} +2 -2
  121. package/dist/chunks/{tag-group-C_oBSbrz.es.js.map → tag-group-DQ0jVbpR.es.js.map} +1 -1
  122. package/dist/chunks/{text-input-B7XCw3SS.es.js → text-input-DlNFZk9-.es.js} +3 -3
  123. package/dist/chunks/{text-input-B7XCw3SS.es.js.map → text-input-DlNFZk9-.es.js.map} +1 -1
  124. package/dist/chunks/{text-input-CCX8LUl1.cjs.js → text-input-i2bZeQZZ.cjs.js} +2 -2
  125. package/dist/chunks/{text-input-CCX8LUl1.cjs.js.map → text-input-i2bZeQZZ.cjs.js.map} +1 -1
  126. package/dist/chunks/{time-input-DiFCm9qO.es.js → time-input-BORpKwS7.es.js} +2 -2
  127. package/dist/chunks/{time-input-DiFCm9qO.es.js.map → time-input-BORpKwS7.es.js.map} +1 -1
  128. package/dist/chunks/{time-input-DQaDOtuT.cjs.js → time-input-Cc8RFGmz.cjs.js} +2 -2
  129. package/dist/chunks/{time-input-DQaDOtuT.cjs.js.map → time-input-Cc8RFGmz.cjs.js.map} +1 -1
  130. package/dist/chunks/{toggle-button-BpG_UgsK.es.js → toggle-button-C7BBLnfL.es.js} +9 -9
  131. package/dist/chunks/{toggle-button-BpG_UgsK.es.js.map → toggle-button-C7BBLnfL.es.js.map} +1 -1
  132. package/dist/chunks/{toggle-button-C9XUBlNB.cjs.js → toggle-button-DZpRqlmW.cjs.js} +2 -2
  133. package/dist/chunks/{toggle-button-C9XUBlNB.cjs.js.map → toggle-button-DZpRqlmW.cjs.js.map} +1 -1
  134. package/dist/chunks/{toolbar-D2CqoZzL.es.js → toolbar-CD5Nrn7W.es.js} +3 -3
  135. package/dist/chunks/{toolbar-D2CqoZzL.es.js.map → toolbar-CD5Nrn7W.es.js.map} +1 -1
  136. package/dist/chunks/{toolbar-BxIQI626.cjs.js → toolbar-Dbq_EngE.cjs.js} +2 -2
  137. package/dist/chunks/{toolbar-BxIQI626.cjs.js.map → toolbar-Dbq_EngE.cjs.js.map} +1 -1
  138. package/dist/chunks/use-formatting-state-Denpy3Zo.cjs.js +2 -0
  139. package/dist/chunks/use-formatting-state-Denpy3Zo.cjs.js.map +1 -0
  140. package/dist/chunks/use-formatting-state-RJvSR-Zg.es.js +247 -0
  141. package/dist/chunks/use-formatting-state-RJvSR-Zg.es.js.map +1 -0
  142. package/dist/code.d.ts +9 -0
  143. package/dist/combobox.d.ts +9 -0
  144. package/dist/components/alert.cjs +1 -1
  145. package/dist/components/alert.es.js +1 -1
  146. package/dist/components/button.cjs +1 -1
  147. package/dist/components/button.es.js +1 -1
  148. package/dist/components/calendar.cjs +1 -1
  149. package/dist/components/calendar.es.js +1 -1
  150. package/dist/components/checkbox.cjs +1 -1
  151. package/dist/components/checkbox.es.js +1 -1
  152. package/dist/components/combobox.cjs +1 -1
  153. package/dist/components/combobox.es.js +1 -1
  154. package/dist/components/components.cjs +1 -1
  155. package/dist/components/components.es.js +89 -86
  156. package/dist/components/components.es.js.map +1 -1
  157. package/dist/components/constants.cjs +2 -0
  158. package/dist/components/constants.cjs.map +1 -0
  159. package/dist/components/constants.es.js +125 -0
  160. package/dist/components/constants.es.js.map +1 -0
  161. package/dist/components/data-table.cjs +1 -1
  162. package/dist/components/data-table.es.js +1 -1
  163. package/dist/components/date-input.cjs +1 -1
  164. package/dist/components/date-input.es.js +1 -1
  165. package/dist/components/date-picker.cjs +1 -1
  166. package/dist/components/date-picker.es.js +1 -1
  167. package/dist/components/date-range-picker.cjs +1 -1
  168. package/dist/components/date-range-picker.es.js +1 -1
  169. package/dist/components/form-field.cjs +1 -1
  170. package/dist/components/form-field.es.js +1 -1
  171. package/dist/components/hooks.cjs +2 -0
  172. package/dist/components/hooks.cjs.map +1 -0
  173. package/dist/components/hooks.es.js +8 -0
  174. package/dist/components/hooks.es.js.map +1 -0
  175. package/dist/components/icon-button.cjs +1 -1
  176. package/dist/components/icon-button.es.js +1 -1
  177. package/dist/components/icon-toggle-button.cjs +1 -1
  178. package/dist/components/icon-toggle-button.es.js +1 -1
  179. package/dist/components/multiline-text-input.cjs +1 -1
  180. package/dist/components/multiline-text-input.es.js +1 -1
  181. package/dist/components/nimbus-provider.cjs +1 -1
  182. package/dist/components/nimbus-provider.es.js +1 -1
  183. package/dist/components/number-input.cjs +1 -1
  184. package/dist/components/number-input.es.js +1 -1
  185. package/dist/components/password-input.cjs +1 -1
  186. package/dist/components/password-input.es.js +1 -1
  187. package/dist/components/progress-bar.cjs +1 -1
  188. package/dist/components/progress-bar.es.js +1 -1
  189. package/dist/components/radio-input.cjs +1 -1
  190. package/dist/components/radio-input.es.js +1 -1
  191. package/dist/components/range-calendar.cjs +1 -1
  192. package/dist/components/range-calendar.es.js +1 -1
  193. package/dist/components/rich-text-input.cjs +2 -0
  194. package/dist/components/rich-text-input.cjs.map +1 -0
  195. package/dist/components/rich-text-input.es.js +5 -0
  196. package/dist/components/rich-text-input.es.js.map +1 -0
  197. package/dist/components/select.cjs +1 -1
  198. package/dist/components/select.es.js +1 -1
  199. package/dist/components/split-button.cjs +1 -1
  200. package/dist/components/split-button.es.js +1 -1
  201. package/dist/components/switch.cjs +1 -1
  202. package/dist/components/switch.es.js +1 -1
  203. package/dist/components/tag-group.cjs +1 -1
  204. package/dist/components/tag-group.es.js +1 -1
  205. package/dist/components/text-input.cjs +1 -1
  206. package/dist/components/text-input.es.js +1 -1
  207. package/dist/components/time-input.cjs +1 -1
  208. package/dist/components/time-input.es.js +1 -1
  209. package/dist/components/toggle-button.cjs +1 -1
  210. package/dist/components/toggle-button.es.js +1 -1
  211. package/dist/components/toolbar.cjs +1 -1
  212. package/dist/components/toolbar.es.js +1 -1
  213. package/dist/components/utils.cjs +2 -0
  214. package/dist/components/utils.cjs.map +1 -0
  215. package/dist/components/utils.es.js +76 -0
  216. package/dist/components/utils.es.js.map +1 -0
  217. package/dist/components.d.ts +76 -1
  218. package/dist/constants.d.ts +129 -0
  219. package/dist/data-table.d.ts +10 -0
  220. package/dist/date-input.d.ts +9 -0
  221. package/dist/date-picker.d.ts +9 -0
  222. package/dist/date-range-picker.d.ts +9 -0
  223. package/dist/dialog.d.ts +9 -0
  224. package/dist/divider.d.ts +9 -0
  225. package/dist/flex.d.ts +9 -0
  226. package/dist/form-field.d.ts +9 -0
  227. package/dist/grid.d.ts +9 -0
  228. package/dist/group.d.ts +9 -0
  229. package/dist/heading.d.ts +9 -0
  230. package/dist/hooks.d.ts +60 -0
  231. package/dist/icon-button.d.ts +9 -0
  232. package/dist/icon-toggle-button.d.ts +9 -0
  233. package/dist/icon.d.ts +9 -0
  234. package/dist/image.d.ts +9 -0
  235. package/dist/index.cjs +1 -1
  236. package/dist/index.cjs.map +1 -1
  237. package/dist/index.d.ts +115 -58
  238. package/dist/index.es.js +193 -192
  239. package/dist/kbd.d.ts +9 -0
  240. package/dist/link.d.ts +9 -0
  241. package/dist/list.d.ts +9 -0
  242. package/dist/loading-spinner.d.ts +9 -0
  243. package/dist/multiline-text-input.d.ts +9 -0
  244. package/dist/nimbus-provider.d.ts +9 -0
  245. package/dist/number-input.d.ts +9 -0
  246. package/dist/password-input.d.ts +9 -0
  247. package/dist/popover.d.ts +9 -0
  248. package/dist/progress-bar.d.ts +9 -0
  249. package/dist/radio-input.d.ts +9 -0
  250. package/dist/range-calendar.d.ts +9 -0
  251. package/dist/rich-text-input.d.ts +79 -0
  252. package/dist/select.d.ts +9 -0
  253. package/dist/setup-jsdom-polyfills.d.ts +9 -0
  254. package/dist/simple-grid.d.ts +9 -0
  255. package/dist/split-button.d.ts +9 -0
  256. package/dist/stack.d.ts +9 -0
  257. package/dist/switch.d.ts +9 -0
  258. package/dist/table.d.ts +9 -0
  259. package/dist/tag-group.d.ts +9 -0
  260. package/dist/text-input.d.ts +9 -0
  261. package/dist/text.d.ts +9 -0
  262. package/dist/time-input.d.ts +9 -0
  263. package/dist/toggle-button-group.d.ts +9 -0
  264. package/dist/toggle-button.d.ts +9 -0
  265. package/dist/toolbar.d.ts +13 -1
  266. package/dist/tooltip.d.ts +9 -0
  267. package/dist/utils.d.ts +164 -0
  268. package/dist/visually-hidden.d.ts +9 -0
  269. package/package.json +16 -8
  270. package/dist/chunks/data-table-DIXPr3ke.cjs.js +0 -2
  271. package/dist/chunks/index-BDmBxsjm.es.js.map +0 -1
  272. package/dist/chunks/index-XyB4gGC8.cjs.js +0 -4
  273. package/dist/chunks/index-XyB4gGC8.cjs.js.map +0 -1
  274. package/dist/chunks/split-button-DhYWuU3x.es.js +0 -262
  275. package/dist/chunks/split-button-DhYWuU3x.es.js.map +0 -1
  276. package/dist/chunks/split-button-DrujRAqS.cjs.js +0 -2
  277. package/dist/chunks/split-button-DrujRAqS.cjs.js.map +0 -1
@@ -1,262 +0,0 @@
1
- import { jsx as e, jsxs as p, Fragment as I } from "react/jsx-runtime";
2
- import h, { createContext as E, useContext as A } from "react";
3
- import { B as Y } from "./button-Bg73nQk3.es.js";
4
- import { I as Z } from "./icon-button-D2qU4Eun.es.js";
5
- import { createSlotRecipeContext as ee } from "@chakra-ui/react";
6
- import { m as te, j as oe } from "./index-BDmBxsjm.es.js";
7
- import { RadioButtonChecked as ne, RadioButtonUnchecked as re, CheckBox as se, CheckBoxOutlineBlank as ie, ChevronRight as ce, KeyboardArrowDown as ae } from "@commercetools/nimbus-icons";
8
- import { h as le, $ as ue, i as de, j as pe, k as me, l as he } from "./Dialog-C7IjW1jR.es.js";
9
- import { c as be, u as fe } from "./create-slot-recipe-context-DBNItnlK.es.js";
10
- import { a as Me } from "./Button-C-yUWwZg.es.js";
11
- import { e as g } from "./extractStyleProps-BEa9kwlY.es.js";
12
- import { I as Se } from "./icon-DTe62Nqz.es.js";
13
- import { B as Ce } from "./box-C8731OYq.es.js";
14
- import { f as ge, e as xe } from "./Separator-BUmWfQvi.es.js";
15
- import { g as Pe } from "./Collection-DFZhstai.es.js";
16
- const { withProvider: ye, withContext: b } = /* @__PURE__ */ be({
17
- recipe: te
18
- }), $e = /* @__PURE__ */ ye(
19
- "div",
20
- "root"
21
- ), N = /* @__PURE__ */ b("button", "trigger"), ve = /* @__PURE__ */ b("div", "popover"), Ie = /* @__PURE__ */ b("div", "content"), Be = /* @__PURE__ */ b(
22
- "div",
23
- "item"
24
- ), Re = /* @__PURE__ */ b("div", "separator"), we = /* @__PURE__ */ b("div", "section"), De = /* @__PURE__ */ b("div", "sectionLabel"), k = /* @__PURE__ */ E(void 0), Te = k.Provider, R = () => A(k), O = (t) => {
25
- const n = fe({ key: "menu" }), [r, s] = n.splitVariantProps(t), {
26
- children: c,
27
- trigger: i,
28
- isOpen: a,
29
- defaultOpen: f,
30
- onOpenChange: d,
31
- ...m
32
- } = s;
33
- return /* @__PURE__ */ e($e, { ...r, asChild: !0, children: /* @__PURE__ */ e(le, { ...{
34
- trigger: i,
35
- isOpen: a,
36
- defaultOpen: f,
37
- onOpenChange: d
38
- }, children: /* @__PURE__ */ e(Te, { value: m, children: c }) }) });
39
- };
40
- O.displayName = "Menu.Root";
41
- const K = ({
42
- children: t,
43
- asChild: n,
44
- ref: r,
45
- ...s
46
- }) => {
47
- const [c, i] = g(s);
48
- return n ? /* @__PURE__ */ e(N, { ref: r, asChild: !0, ...c, children: t }) : /* @__PURE__ */ e(N, { asChild: !0, ...c, children: /* @__PURE__ */ e(Me, { ref: r, ...i, children: t }) });
49
- };
50
- K.displayName = "Menu.Trigger";
51
- const L = /* @__PURE__ */ E(
52
- void 0
53
- ), V = L.Provider, Ne = () => A(L), w = ({
54
- children: t,
55
- placement: n,
56
- ref: r
57
- }) => {
58
- const s = R();
59
- if (!s)
60
- throw new Error("Menu.Content must be used within Menu.Root");
61
- const { placement: c, ...i } = s, a = n || c || "bottom start";
62
- return /* @__PURE__ */ e(V, { value: { selectionMode: i.selectionMode }, children: /* @__PURE__ */ e(ve, { asChild: !0, children: /* @__PURE__ */ e(ue, { placement: a, offset: 4, shouldFlip: !0, children: /* @__PURE__ */ e(Ie, { asChild: !0, children: /* @__PURE__ */ e(de, { ref: r, shouldFocusWrap: !0, autoFocus: "first", ...i, children: t }) }) }) }) });
63
- };
64
- w.displayName = "Menu.Content";
65
- const j = ({
66
- children: t,
67
- isCritical: n,
68
- ref: r,
69
- ...s
70
- }) => {
71
- const [c, i] = g(s), a = R(), d = Ne()?.selectionMode ?? a?.selectionMode;
72
- return /* @__PURE__ */ e(
73
- Be,
74
- {
75
- asChild: !0,
76
- ...c,
77
- "data-critical": n ? "" : void 0,
78
- children: /* @__PURE__ */ e(pe, { ref: r, ...i, children: ({ hasSubmenu: m, isSelected: u }) => /* @__PURE__ */ p(I, { children: [
79
- d && /* @__PURE__ */ p(Ce, { slot: "selection", role: "presentation", "aria-hidden": "true", children: [
80
- d === "single" && /* @__PURE__ */ p(I, { children: [
81
- u && /* @__PURE__ */ e(ne, {}),
82
- !u && /* @__PURE__ */ e(re, {})
83
- ] }),
84
- d === "multiple" && /* @__PURE__ */ p(I, { children: [
85
- u && /* @__PURE__ */ e(se, {}),
86
- !u && /* @__PURE__ */ e(ie, {})
87
- ] })
88
- ] }),
89
- t,
90
- m && /* @__PURE__ */ e(Se, { slot: "caretIcon", children: /* @__PURE__ */ e(ce, {}) })
91
- ] }) })
92
- }
93
- );
94
- };
95
- j.displayName = "Menu.Item";
96
- const F = ({ ref: t, ...n }) => {
97
- const [r, s] = g(n);
98
- return /* @__PURE__ */ e(Re, { asChild: !0, ...r, children: /* @__PURE__ */ e(ge, { ref: t, ...s }) });
99
- };
100
- F.displayName = "Menu.Separator";
101
- const G = ({
102
- children: t,
103
- ref: n,
104
- ...r
105
- }) => {
106
- const [s, c] = g(r);
107
- return /* @__PURE__ */ e(De, { asChild: !0, ...s, children: /* @__PURE__ */ e(xe, { ref: n, ...c, children: t }) });
108
- };
109
- G.displayName = "Menu.SectionLabel";
110
- const W = ({
111
- children: t,
112
- ref: n,
113
- label: r,
114
- items: s,
115
- ...c
116
- }) => {
117
- const i = R(), {
118
- selectionMode: a = i?.selectionMode,
119
- selectedKeys: f = i?.selectedKeys,
120
- defaultSelectedKeys: d = i?.defaultSelectedKeys,
121
- onSelectionChange: m = i?.onSelectionChange,
122
- disallowEmptySelection: u = i?.disallowEmptySelection,
123
- ...x
124
- } = c, [P, y] = g(x);
125
- return /* @__PURE__ */ e(V, { value: { selectionMode: a }, children: /* @__PURE__ */ e(we, { asChild: !0, ...P, children: /* @__PURE__ */ p(
126
- me,
127
- {
128
- ref: n,
129
- selectionMode: a,
130
- selectedKeys: f,
131
- defaultSelectedKeys: d,
132
- onSelectionChange: m,
133
- disallowEmptySelection: u,
134
- ...y,
135
- children: [
136
- /* @__PURE__ */ e(G, { children: r }),
137
- s ? /* @__PURE__ */ e(Pe, { items: s, children: t }) : t
138
- ]
139
- }
140
- ) }) });
141
- };
142
- W.displayName = "Menu.Section";
143
- const _ = ({
144
- children: t,
145
- ...n
146
- }) => /* @__PURE__ */ e(he, { ...n, children: t });
147
- _.displayName = "Menu.SubmenuTrigger";
148
- const z = ({ children: t, ...n }) => /* @__PURE__ */ e(w, { ...n, placement: "end", children: t });
149
- z.displayName = "Menu.Submenu";
150
- const B = {
151
- Root: O,
152
- Trigger: K,
153
- Content: w,
154
- Item: j,
155
- Separator: F,
156
- Section: W,
157
- Submenu: z,
158
- SubmenuTrigger: _
159
- }, { withProvider: Ee, withContext: D } = /* @__PURE__ */ ee({
160
- recipe: oe
161
- }), Ae = /* @__PURE__ */ Ee("div", "root"), ke = /* @__PURE__ */ D("div", "buttonGroup"), Oe = /* @__PURE__ */ D("button", "primaryButton"), Ke = /* @__PURE__ */ D("button", "dropdownTrigger"), Le = (t) => {
162
- const {
163
- size: n = "md",
164
- variant: r = "solid",
165
- tone: s,
166
- isDisabled: c = !1,
167
- "aria-label": i,
168
- onAction: a,
169
- isOpen: f,
170
- defaultOpen: d,
171
- onOpenChange: m
172
- } = t, u = { size: n, variant: r, tone: s }, x = (o) => {
173
- if (!h.isValidElement(o) || !o.props) return !1;
174
- const l = o.props;
175
- return "id" in l && typeof l.id == "string";
176
- }, P = (o) => !h.isValidElement(o) || !o.props ? !1 : "children" in o.props, y = h.Children.toArray(t.children), U = y.find(
177
- (o) => h.isValidElement(o) && o.props?.slot === "icon"
178
- ), $ = y.filter(
179
- (o) => !h.isValidElement(o) || o.props?.slot !== "icon"
180
- ), T = (o) => {
181
- let l = !1;
182
- return h.Children.forEach(o, (C) => {
183
- if (!l) {
184
- if (x(C) && !C.props.isDisabled) {
185
- l = !0;
186
- return;
187
- }
188
- P(C) && (l = T(C.props.children));
189
- }
190
- }), l;
191
- }, q = () => {
192
- const o = [], l = (v) => {
193
- h.Children.forEach(v, (M) => {
194
- x(M) && o.push({
195
- content: M.props.children,
196
- isDisabled: M.props.isDisabled || !1,
197
- actionId: M.props.id
198
- }), P(M) && l(M.props.children);
199
- });
200
- };
201
- return l($), o.find((v) => !v.isDisabled) || o[0] || {
202
- // TODO: Localize this
203
- content: "No actions available",
204
- isDisabled: !0,
205
- actionId: null
206
- };
207
- }, H = T($), S = q(), J = () => {
208
- !S.isDisabled && S.actionId && a && a(S.actionId);
209
- }, Q = c || S.isDisabled, X = c || !H;
210
- return /* @__PURE__ */ e(Ae, { variant: r, "data-mode": "split", children: /* @__PURE__ */ p(ke, { children: [
211
- /* @__PURE__ */ e(Oe, { asChild: !0, children: /* @__PURE__ */ p(
212
- Y,
213
- {
214
- ...u,
215
- isDisabled: Q,
216
- onPress: J,
217
- children: [
218
- U,
219
- S.content
220
- ]
221
- }
222
- ) }),
223
- /* @__PURE__ */ p(
224
- B.Root,
225
- {
226
- trigger: "press",
227
- isOpen: f,
228
- defaultOpen: d,
229
- onOpenChange: m,
230
- placement: "bottom end",
231
- selectionMode: "none",
232
- onAction: a ? (o) => a(String(o)) : void 0,
233
- children: [
234
- /* @__PURE__ */ e(B.Trigger, { asChild: !0, children: /* @__PURE__ */ e(Ke, { asChild: !0, children: /* @__PURE__ */ e(
235
- Z,
236
- {
237
- ...u,
238
- "aria-label": i,
239
- isDisabled: X,
240
- children: /* @__PURE__ */ e(ae, {})
241
- }
242
- ) }) }),
243
- /* @__PURE__ */ e(B.Content, { children: $ })
244
- ]
245
- }
246
- )
247
- ] }) });
248
- };
249
- Le.displayName = "SplitButton";
250
- export {
251
- B as M,
252
- Le as S,
253
- O as a,
254
- K as b,
255
- w as c,
256
- j as d,
257
- F as e,
258
- W as f,
259
- _ as g,
260
- z as h
261
- };
262
- //# sourceMappingURL=split-button-DhYWuU3x.es.js.map
@@ -1 +0,0 @@
1
- {"version":3,"file":"split-button-DhYWuU3x.es.js","sources":["../../src/components/menu/menu.slots.tsx","../../src/components/menu/components/menu.context.tsx","../../src/components/menu/components/menu.root.tsx","../../src/components/menu/components/menu.trigger.tsx","../../src/components/menu/components/menu.section-context.tsx","../../src/components/menu/components/menu.content.tsx","../../src/components/menu/components/menu.item.tsx","../../src/components/menu/components/menu.separator.tsx","../../src/components/menu/components/menu.section-label.tsx","../../src/components/menu/components/menu.section.tsx","../../src/components/menu/components/menu.submenu-trigger.tsx","../../src/components/menu/components/menu.submenu.tsx","../../src/components/menu/menu.tsx","../../src/components/split-button/split-button.slots.tsx","../../src/components/split-button/split-button.tsx"],"sourcesContent":["import {\n createSlotRecipeContext,\n type HTMLChakraProps,\n} from \"@chakra-ui/react/styled-system\";\nimport { menuSlotRecipe } from \"./menu.recipe\";\n\nconst { withProvider, withContext } = createSlotRecipeContext({\n recipe: menuSlotRecipe,\n});\n\n// Menu Root\nexport type MenuRootSlotProps = HTMLChakraProps<\"div\">;\nexport const MenuRootSlot = withProvider<HTMLDivElement, MenuRootSlotProps>(\n \"div\",\n \"root\"\n);\n\n// Menu Trigger\nexport type MenuTriggerSlotProps = HTMLChakraProps<\"button\">;\nexport const MenuTriggerSlot = withContext<\n HTMLButtonElement,\n MenuTriggerSlotProps\n>(\"button\", \"trigger\");\n\n// Menu Popover\nexport type MenuPopoverSlotProps = HTMLChakraProps<\"div\">;\nexport const MenuPopoverSlot = withContext<\n HTMLDivElement,\n MenuPopoverSlotProps\n>(\"div\", \"popover\");\n\n// Menu Content\nexport type MenuContentSlotProps = HTMLChakraProps<\"div\">;\nexport const MenuContentSlot = withContext<\n HTMLDivElement,\n MenuContentSlotProps\n>(\"div\", \"content\");\n\n// Menu Item\nexport type MenuItemSlotProps = HTMLChakraProps<\"div\">;\nexport const MenuItemSlot = withContext<HTMLDivElement, MenuItemSlotProps>(\n \"div\",\n \"item\"\n);\n\n// Menu Separator\nexport type MenuSeparatorSlotProps = HTMLChakraProps<\"div\">;\nexport const MenuSeparatorSlot = withContext<\n HTMLDivElement,\n MenuSeparatorSlotProps\n>(\"div\", \"separator\");\n\n// Menu Section\nexport type MenuSectionSlotProps = HTMLChakraProps<\"div\">;\nexport const MenuSectionSlot = withContext<\n HTMLDivElement,\n MenuSectionSlotProps\n>(\"div\", \"section\");\n\n// Menu Section Label\nexport type MenuSectionLabelSlotProps = HTMLChakraProps<\"div\">;\nexport const MenuSectionLabelSlot = withContext<\n HTMLDivElement,\n MenuSectionLabelSlotProps\n>(\"div\", \"sectionLabel\");\n\n// Menu Group Label\nexport type MenuSubmenuSlotProps = HTMLChakraProps<\"div\">;\nexport const MenuSubmenuSlot = withContext<\n HTMLDivElement,\n MenuSubmenuSlotProps\n>(\"div\", \"submenu\");\n","import { createContext, useContext } from \"react\";\nimport type { MenuRootProps } from \"./../menu.types\";\nimport type { MenuTriggerProps as RaMenuTriggerProps } from \"react-aria-components\";\n\n// Context should contain all Menu props (excluding MenuTrigger-specific props)\nexport type MenuContextValue = Omit<\n MenuRootProps,\n keyof RaMenuTriggerProps | \"children\" | \"trigger\"\n>;\n\nconst MenuContext = createContext<MenuContextValue | undefined>(undefined);\n\nexport const MenuProvider = MenuContext.Provider;\n\nexport const useMenuContext = () => {\n const context = useContext(MenuContext);\n return context;\n};\n","import { useSlotRecipe } from \"@chakra-ui/react/styled-system\";\nimport { MenuTrigger as RaMenuTrigger } from \"react-aria-components\";\nimport type { MenuRootProps } from \"../menu.types\";\nimport { MenuRootSlot } from \"../menu.slots\";\nimport { MenuProvider } from \"./menu.context\";\n\nexport const MenuRoot = (props: MenuRootProps) => {\n const recipe = useSlotRecipe({ key: \"menu\" });\n const [recipeProps, functionalProps] = recipe.splitVariantProps(props);\n\n // Separate MenuTrigger props from Menu props\n const {\n children,\n trigger,\n isOpen,\n defaultOpen,\n onOpenChange,\n ...menuContextProps\n } = functionalProps;\n\n const menuTriggerProps = {\n trigger,\n isOpen,\n defaultOpen,\n onOpenChange,\n };\n\n return (\n <MenuRootSlot {...recipeProps} asChild>\n <RaMenuTrigger {...menuTriggerProps}>\n <MenuProvider value={menuContextProps}>{children}</MenuProvider>\n </RaMenuTrigger>\n </MenuRootSlot>\n );\n};\n\nMenuRoot.displayName = \"Menu.Root\";\n","import { Button } from \"react-aria-components\";\nimport { MenuTriggerSlot } from \"../menu.slots\";\nimport type { MenuTriggerProps } from \"../menu.types\";\nimport { extractStyleProps } from \"@/utils/extractStyleProps\";\nimport type { ReactNode } from \"react\";\n\nexport const MenuTrigger = ({\n children,\n asChild,\n ref,\n ...props\n}: MenuTriggerProps) => {\n const [styleProps, restProps] = extractStyleProps(props);\n\n /**\n * The user supplied a Button as the trigger\n */\n if (asChild) {\n // When asChild is true, apply styles to the child element\n return (\n <MenuTriggerSlot ref={ref} asChild {...styleProps}>\n {children as ReactNode}\n </MenuTriggerSlot>\n );\n }\n\n /**\n * The user did not supply a Button as trigger, use an unstyled button\n * to wrap which ever element the user supplied and make it a trigger\n */\n return (\n <MenuTriggerSlot asChild {...styleProps}>\n <Button ref={ref} {...restProps}>\n {children}\n </Button>\n </MenuTriggerSlot>\n );\n};\n\nMenuTrigger.displayName = \"Menu.Trigger\";\n","import { createContext, useContext } from \"react\";\n\nexport interface MenuSectionContextValue {\n selectionMode?: \"single\" | \"multiple\" | \"none\";\n}\n/**\n * Why is a second context (MenuSectionContext) needed?\n *\n * MenuSectionContext enables section-level config for menu items, such as\n * selection mode, which may differ from the global menu context. This allows\n * advanced menus where each section can have its own selection behavior\n * (e.g., one section is single-select, another is multi-select).\n * By scoping context to a section, menu items inherit settings from their\n * nearest section, falling back to the global menu context if not present.\n * This pattern improves flexibility and composability for complex menus,\n * and avoids prop drilling or awkward prop merging.\n */\n\nconst MenuSectionContext = createContext<MenuSectionContextValue | undefined>(\n undefined\n);\n\nexport const MenuSectionProvider = MenuSectionContext.Provider;\n\nexport const useMenuSectionContext = () => {\n return useContext(MenuSectionContext);\n};\n","import { Menu, Popover } from \"react-aria-components\";\nimport { MenuContentSlot, MenuPopoverSlot } from \"../menu.slots\";\nimport type { MenuContentProps } from \"../menu.types\";\nimport { useMenuContext } from \"./menu.context\";\nimport { MenuSectionProvider } from \"./menu.section-context\";\n\nexport const MenuContent = ({\n children,\n placement: placementOverride,\n ref,\n}: MenuContentProps) => {\n const contextProps = useMenuContext();\n\n if (!contextProps) {\n throw new Error(\"Menu.Content must be used within Menu.Root\");\n }\n\n // Separate placement from other props since it's handled by Popover\n const { placement, ...menuProps } = contextProps;\n const finalPlacement = placementOverride || placement || \"bottom start\";\n\n return (\n <MenuSectionProvider value={{ selectionMode: menuProps.selectionMode }}>\n <MenuPopoverSlot asChild>\n <Popover placement={finalPlacement} offset={4} shouldFlip>\n <MenuContentSlot asChild>\n <Menu ref={ref} shouldFocusWrap autoFocus=\"first\" {...menuProps}>\n {children}\n </Menu>\n </MenuContentSlot>\n </Popover>\n </MenuPopoverSlot>\n </MenuSectionProvider>\n );\n};\n\nMenuContent.displayName = \"Menu.Content\";\n","import { MenuItem as RaMenuItem } from \"react-aria-components\";\nimport { MenuItemSlot } from \"../menu.slots\";\nimport type { MenuItemProps } from \"../menu.types\";\nimport { extractStyleProps } from \"@/utils/extractStyleProps\";\nimport {\n CheckBox as CheckboxCheckedIcon,\n CheckBoxOutlineBlank as CheckboxUncheckedIcon,\n ChevronRight,\n RadioButtonChecked,\n RadioButtonUnchecked,\n} from \"@commercetools/nimbus-icons\";\nimport { Icon } from \"@/components/icon\";\nimport { useMenuContext } from \"./menu.context\";\nimport { useMenuSectionContext } from \"./menu.section-context\";\nimport { Box } from \"@/components/box\";\n\nexport const MenuItem = ({\n children,\n isCritical,\n ref,\n ...props\n}: MenuItemProps) => {\n const [styleProps, restProps] = extractStyleProps(props);\n const menuContext = useMenuContext();\n const sectionContext = useMenuSectionContext();\n\n // Use section context if available, otherwise fall back to menu context\n const selectionMode =\n sectionContext?.selectionMode ?? menuContext?.selectionMode;\n\n return (\n <MenuItemSlot\n asChild\n {...styleProps}\n data-critical={isCritical ? \"\" : undefined}\n >\n <RaMenuItem ref={ref} {...restProps}>\n {({ hasSubmenu, isSelected }) => (\n <>\n {selectionMode && (\n <Box slot=\"selection\" role=\"presentation\" aria-hidden=\"true\">\n {selectionMode === \"single\" && (\n <>\n {isSelected && <RadioButtonChecked />}\n {!isSelected && <RadioButtonUnchecked />}\n </>\n )}\n {selectionMode === \"multiple\" && (\n <>\n {isSelected && <CheckboxCheckedIcon />}\n {!isSelected && <CheckboxUncheckedIcon />}\n </>\n )}\n </Box>\n )}\n {children}\n {hasSubmenu && (\n <Icon slot=\"caretIcon\">\n <ChevronRight />\n </Icon>\n )}\n </>\n )}\n </RaMenuItem>\n </MenuItemSlot>\n );\n};\n\nMenuItem.displayName = \"Menu.Item\";\n","import { Separator } from \"react-aria-components\";\nimport { MenuSeparatorSlot } from \"../menu.slots\";\nimport type { MenuSeparatorProps } from \"../menu.types\";\nimport { extractStyleProps } from \"@/utils/extractStyleProps\";\n\nexport const MenuSeparator = ({ ref, ...props }: MenuSeparatorProps) => {\n const [styleProps, restProps] = extractStyleProps(props);\n\n return (\n <MenuSeparatorSlot asChild {...styleProps}>\n <Separator ref={ref} {...restProps} />\n </MenuSeparatorSlot>\n );\n};\n\nMenuSeparator.displayName = \"Menu.Separator\";\n","import { Header } from \"react-aria-components\";\nimport { MenuSectionLabelSlot } from \"../menu.slots\";\nimport type { MenuSectionLabelProps } from \"../menu.types\";\nimport { extractStyleProps } from \"@/utils/extractStyleProps\";\n\n/**\n * Used in MenuSection for rendering the `label` property.\n */\nexport const MenuSectionLabel = ({\n children,\n ref,\n ...props\n}: MenuSectionLabelProps) => {\n const [styleProps, restProps] = extractStyleProps(props);\n\n return (\n <MenuSectionLabelSlot asChild {...styleProps}>\n <Header ref={ref} {...restProps}>\n {children}\n </Header>\n </MenuSectionLabelSlot>\n );\n};\n\nMenuSectionLabel.displayName = \"Menu.SectionLabel\";\n","import {\n MenuSection as RaMenuSection,\n Collection,\n} from \"react-aria-components\";\nimport { MenuSectionSlot } from \"../menu.slots\";\nimport type { MenuSectionProps } from \"../menu.types\";\nimport { extractStyleProps } from \"@/utils/extractStyleProps\";\nimport { useMenuContext } from \"./menu.context\";\nimport { MenuSectionProvider } from \"./menu.section-context\";\nimport { MenuSectionLabel } from \"./menu.section-label\";\nimport type { ReactNode } from \"react\";\n\nexport const MenuSection = <T extends object = object>({\n children,\n ref,\n label,\n items,\n ...props\n}: MenuSectionProps<T>) => {\n const contextProps = useMenuContext();\n\n // Extract selection-related props before extracting style props\n const {\n selectionMode = contextProps?.selectionMode,\n selectedKeys = contextProps?.selectedKeys,\n defaultSelectedKeys = contextProps?.defaultSelectedKeys,\n onSelectionChange = contextProps?.onSelectionChange,\n disallowEmptySelection = contextProps?.disallowEmptySelection,\n ...restProps\n } = props;\n\n const [styleProps, otherProps] = extractStyleProps(restProps);\n\n return (\n <MenuSectionProvider value={{ selectionMode }}>\n <MenuSectionSlot asChild {...styleProps}>\n <RaMenuSection\n ref={ref}\n selectionMode={selectionMode}\n selectedKeys={selectedKeys}\n defaultSelectedKeys={defaultSelectedKeys}\n onSelectionChange={onSelectionChange}\n disallowEmptySelection={disallowEmptySelection}\n {...otherProps}\n >\n <MenuSectionLabel>{label}</MenuSectionLabel>\n {items ? (\n <Collection items={items}>{children}</Collection>\n ) : (\n (children as ReactNode)\n )}\n </RaMenuSection>\n </MenuSectionSlot>\n </MenuSectionProvider>\n );\n};\n\nMenuSection.displayName = \"Menu.Section\";\n","import { SubmenuTrigger as RaSubmenuTrigger } from \"react-aria-components\";\nimport type { MenuSubmenuTriggerProps } from \"../menu.types\";\n\nexport const MenuSubmenuTrigger = ({\n children,\n ...props\n}: MenuSubmenuTriggerProps) => {\n return <RaSubmenuTrigger {...props}>{children}</RaSubmenuTrigger>;\n};\n\nMenuSubmenuTrigger.displayName = \"Menu.SubmenuTrigger\";\n","import type { MenuSubmenuProps } from \"../menu.types\";\nimport { MenuContent } from \"./menu.content\";\n\nexport const MenuSubmenu = ({ children, ...props }: MenuSubmenuProps) => {\n return (\n <MenuContent {...props} placement=\"end\">\n {children}\n </MenuContent>\n );\n};\n\nMenuSubmenu.displayName = \"Menu.Submenu\";\n","import { MenuRoot } from \"./components/menu.root\";\nimport { MenuTrigger } from \"./components/menu.trigger\";\nimport { MenuContent } from \"./components/menu.content\";\nimport { MenuItem } from \"./components/menu.item\";\nimport { MenuSeparator } from \"./components/menu.separator\";\nimport { MenuSection } from \"./components/menu.section\";\nimport { MenuSubmenuTrigger } from \"./components/menu.submenu-trigger\";\nimport { MenuSubmenu } from \"./components/menu.submenu\";\n\n// Re-export types\nexport type * from \"./menu.types\";\n\nexport const Menu = {\n Root: MenuRoot,\n Trigger: MenuTrigger,\n Content: MenuContent,\n Item: MenuItem,\n Separator: MenuSeparator,\n Section: MenuSection,\n Submenu: MenuSubmenu,\n SubmenuTrigger: MenuSubmenuTrigger,\n};\n\n// Exports for internal use by react-docgen\nexport {\n MenuRoot as _MenuRoot,\n MenuTrigger as _MenuTrigger,\n MenuContent as _MenuContent,\n MenuItem as _MenuItem,\n MenuSeparator as _MenuSeparator,\n MenuSection as _MenuSection,\n MenuSubmenuTrigger as _MenuSubmenuTrigger,\n MenuSubmenu as _MenuSubmenu,\n};\n","/* 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 Menu.Separator 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","menuSlotRecipe","MenuRootSlot","MenuTriggerSlot","MenuPopoverSlot","MenuContentSlot","MenuItemSlot","MenuSeparatorSlot","MenuSectionSlot","MenuSectionLabelSlot","MenuContext","createContext","MenuProvider","useMenuContext","useContext","MenuRoot","props","recipe","useSlotRecipe","recipeProps","functionalProps","children","trigger","isOpen","defaultOpen","onOpenChange","menuContextProps","jsx","RaMenuTrigger","MenuTrigger","asChild","ref","styleProps","restProps","extractStyleProps","Button","MenuSectionContext","MenuSectionProvider","useMenuSectionContext","MenuContent","placementOverride","contextProps","placement","menuProps","finalPlacement","Popover","Menu","MenuItem","isCritical","menuContext","selectionMode","RaMenuItem","hasSubmenu","isSelected","jsxs","Fragment","Box","RadioButtonChecked","RadioButtonUnchecked","CheckboxCheckedIcon","CheckboxUncheckedIcon","Icon","ChevronRight","MenuSeparator","Separator","MenuSectionLabel","Header","MenuSection","label","items","selectedKeys","defaultSelectedKeys","onSelectionChange","disallowEmptySelection","otherProps","RaMenuSection","Collection","MenuSubmenuTrigger","RaSubmenuTrigger","MenuSubmenu","splitButtonSlotRecipe","SplitButtonRootSlot","SplitButtonButtonGroupSlot","SplitButtonPrimaryButtonSlot","SplitButtonTriggerSlot","SplitButton","size","variant","tone","isDisabled","ariaLabel","onAction","buttonProps","isMenuItemWithId","element","React","hasChildren","childArray","iconElement","child","menuItems","hasActionableMenuItems","hasActionable","findPrimaryMenuItem","allMenuItems","collectMenuItems","item","hasActionableItems","buttonContent","executePrimaryAction","isPrimaryDisabled","isDropdownTriggerDisabled","key","IconButton","KeyboardArrowDown"],"mappings":"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"}
@@ -1,2 +0,0 @@
1
- "use strict";const e=require("react/jsx-runtime"),d=require("react"),ee=require("./button-BiBXrCVh.cjs.js"),te=require("./icon-button-BBkPfAM3.cjs.js"),ne=require("@chakra-ui/react"),K=require("./index-XyB4gGC8.cjs.js"),S=require("@commercetools/nimbus-icons"),M=require("./Dialog-Cbq66gyc.cjs.js"),L=require("./create-slot-recipe-context-HIF51Igr.cjs.js"),oe=require("./Button-DQ_WkLNH.cjs.js"),g=require("./extractStyleProps-wjyId_vK.cjs.js"),re=require("./icon-C_BZeqkm.cjs.js"),se=require("./box-BPfqlznQ.cjs.js"),V=require("./Separator-DBLZ41YB.cjs.js"),ie=require("./Collection-BsItrctR.cjs.js"),{withProvider:ce,withContext:b}=L.createSlotRecipeContext({recipe:K.menuSlotRecipe}),le=ce("div","root"),F=b("button","trigger"),ue=b("div","popover"),ae=b("div","content"),de=b("div","item"),pe=b("div","separator"),xe=b("div","section"),be=b("div","sectionLabel"),G=d.createContext(void 0),he=G.Provider,R=()=>d.useContext(G),q=t=>{const o=L.useSlotRecipe({key:"menu"}),[r,s]=o.splitVariantProps(t),{children:c,trigger:i,isOpen:l,defaultOpen:h,onOpenChange:p,...x}=s,u={trigger:i,isOpen:l,defaultOpen:h,onOpenChange:p};return e.jsx(le,{...r,asChild:!0,children:e.jsx(M.$3674c52c6b3c5bce$export$27d2ad3c5815583e,{...u,children:e.jsx(he,{value:x,children:c})})})};q.displayName="Menu.Root";const w=({children:t,asChild:o,ref:r,...s})=>{const[c,i]=g.extractStyleProps(s);return o?e.jsx(F,{ref:r,asChild:!0,...c,children:t}):e.jsx(F,{asChild:!0,...c,children:e.jsx(oe.$d2b4bc8c273e7be6$export$353f5b6fc5456de1,{ref:r,...i,children:t})})};w.displayName="Menu.Trigger";const W=d.createContext(void 0),z=W.Provider,me=()=>d.useContext(W),v=({children:t,placement:o,ref:r})=>{const s=R();if(!s)throw new Error("Menu.Content must be used within Menu.Root");const{placement:c,...i}=s,l=o||c||"bottom start";return e.jsx(z,{value:{selectionMode:i.selectionMode},children:e.jsx(ue,{asChild:!0,children:e.jsx(M.$07b14b47974efb58$export$5b6b19405a83ff9d,{placement:l,offset:4,shouldFlip:!0,children:e.jsx(ae,{asChild:!0,children:e.jsx(M.$3674c52c6b3c5bce$export$d9b273488cd8ce6f,{ref:r,shouldFocusWrap:!0,autoFocus:"first",...i,children:t})})})})})};v.displayName="Menu.Content";const D=({children:t,isCritical:o,ref:r,...s})=>{const[c,i]=g.extractStyleProps(s),l=R(),p=me()?.selectionMode??l?.selectionMode;return e.jsx(de,{asChild:!0,...c,"data-critical":o?"":void 0,children:e.jsx(M.$3674c52c6b3c5bce$export$2ce376c2cc3355c8,{ref:r,...i,children:({hasSubmenu:x,isSelected:u})=>e.jsxs(e.Fragment,{children:[p&&e.jsxs(se.Box,{slot:"selection",role:"presentation","aria-hidden":"true",children:[p==="single"&&e.jsxs(e.Fragment,{children:[u&&e.jsx(S.RadioButtonChecked,{}),!u&&e.jsx(S.RadioButtonUnchecked,{})]}),p==="multiple"&&e.jsxs(e.Fragment,{children:[u&&e.jsx(S.CheckBox,{}),!u&&e.jsx(S.CheckBoxOutlineBlank,{})]})]}),t,x&&e.jsx(re.Icon,{slot:"caretIcon",children:e.jsx(S.ChevronRight,{})})]})})})};D.displayName="Menu.Item";const T=({ref:t,...o})=>{const[r,s]=g.extractStyleProps(o);return e.jsx(pe,{asChild:!0,...r,children:e.jsx(V.$431f98aba6844401$export$1ff3c3f08ae963c0,{ref:t,...s})})};T.displayName="Menu.Separator";const U=({children:t,ref:o,...r})=>{const[s,c]=g.extractStyleProps(r);return e.jsx(be,{asChild:!0,...s,children:e.jsx(V.$72a5793c14baf454$export$8b251419efc915eb,{ref:o,...c,children:t})})};U.displayName="Menu.SectionLabel";const N=({children:t,ref:o,label:r,items:s,...c})=>{const i=R(),{selectionMode:l=i?.selectionMode,selectedKeys:h=i?.selectedKeys,defaultSelectedKeys:p=i?.defaultSelectedKeys,onSelectionChange:x=i?.onSelectionChange,disallowEmptySelection:u=i?.disallowEmptySelection,...j}=c,[P,y]=g.extractStyleProps(j);return e.jsx(z,{value:{selectionMode:l},children:e.jsx(xe,{asChild:!0,...P,children:e.jsxs(M.$3674c52c6b3c5bce$export$4b1545b4f2016d26,{ref:o,selectionMode:l,selectedKeys:h,defaultSelectedKeys:p,onSelectionChange:x,disallowEmptySelection:u,...y,children:[e.jsx(U,{children:r}),s?e.jsx(ie.$e1995378a142960e$export$fb8073518f34e6ec,{items:s,children:t}):t]})})})};N.displayName="Menu.Section";const E=({children:t,...o})=>e.jsx(M.$3674c52c6b3c5bce$export$ecabc99eeffab7ca,{...o,children:t});E.displayName="Menu.SubmenuTrigger";const A=({children:t,...o})=>e.jsx(v,{...o,placement:"end",children:t});A.displayName="Menu.Submenu";const $={Root:q,Trigger:w,Content:v,Item:D,Separator:T,Section:N,Submenu:A,SubmenuTrigger:E},{withProvider:Se,withContext:O}=ne.createSlotRecipeContext({recipe:K.splitButtonSlotRecipe}),Me=Se("div","root"),Ce=O("div","buttonGroup"),fe=O("button","primaryButton"),ge=O("button","dropdownTrigger"),H=t=>{const{size:o="md",variant:r="solid",tone:s,isDisabled:c=!1,"aria-label":i,onAction:l,isOpen:h,defaultOpen:p,onOpenChange:x}=t,u={size:o,variant:r,tone:s},j=n=>{if(!d.isValidElement(n)||!n.props)return!1;const a=n.props;return"id"in a&&typeof a.id=="string"},P=n=>!d.isValidElement(n)||!n.props?!1:"children"in n.props,y=d.Children.toArray(t.children),J=y.find(n=>d.isValidElement(n)&&n.props?.slot==="icon"),I=y.filter(n=>!d.isValidElement(n)||n.props?.slot!=="icon"),k=n=>{let a=!1;return d.Children.forEach(n,f=>{if(!a){if(j(f)&&!f.props.isDisabled){a=!0;return}P(f)&&(a=k(f.props.children))}}),a},Q=()=>{const n=[],a=B=>{d.Children.forEach(B,m=>{j(m)&&n.push({content:m.props.children,isDisabled:m.props.isDisabled||!1,actionId:m.props.id}),P(m)&&a(m.props.children)})};return a(I),n.find(B=>!B.isDisabled)||n[0]||{content:"No actions available",isDisabled:!0,actionId:null}},X=k(I),C=Q(),Y=()=>{!C.isDisabled&&C.actionId&&l&&l(C.actionId)},Z=c||C.isDisabled,_=c||!X;return e.jsx(Me,{variant:r,"data-mode":"split",children:e.jsxs(Ce,{children:[e.jsx(fe,{asChild:!0,children:e.jsxs(ee.Button,{...u,isDisabled:Z,onPress:Y,children:[J,C.content]})}),e.jsxs($.Root,{trigger:"press",isOpen:h,defaultOpen:p,onOpenChange:x,placement:"bottom end",selectionMode:"none",onAction:l?n=>l(String(n)):void 0,children:[e.jsx($.Trigger,{asChild:!0,children:e.jsx(ge,{asChild:!0,children:e.jsx(te.IconButton,{...u,"aria-label":i,isDisabled:_,children:e.jsx(S.KeyboardArrowDown,{})})})}),e.jsx($.Content,{children:I})]})]})})};H.displayName="SplitButton";exports.Menu=$;exports.MenuContent=v;exports.MenuItem=D;exports.MenuRoot=q;exports.MenuSection=N;exports.MenuSeparator=T;exports.MenuSubmenu=A;exports.MenuSubmenuTrigger=E;exports.MenuTrigger=w;exports.SplitButton=H;
2
- //# sourceMappingURL=split-button-DrujRAqS.cjs.js.map
@@ -1 +0,0 @@
1
- {"version":3,"file":"split-button-DrujRAqS.cjs.js","sources":["../../src/components/menu/menu.slots.tsx","../../src/components/menu/components/menu.context.tsx","../../src/components/menu/components/menu.root.tsx","../../src/components/menu/components/menu.trigger.tsx","../../src/components/menu/components/menu.section-context.tsx","../../src/components/menu/components/menu.content.tsx","../../src/components/menu/components/menu.item.tsx","../../src/components/menu/components/menu.separator.tsx","../../src/components/menu/components/menu.section-label.tsx","../../src/components/menu/components/menu.section.tsx","../../src/components/menu/components/menu.submenu-trigger.tsx","../../src/components/menu/components/menu.submenu.tsx","../../src/components/menu/menu.tsx","../../src/components/split-button/split-button.slots.tsx","../../src/components/split-button/split-button.tsx"],"sourcesContent":["import {\n createSlotRecipeContext,\n type HTMLChakraProps,\n} from \"@chakra-ui/react/styled-system\";\nimport { menuSlotRecipe } from \"./menu.recipe\";\n\nconst { withProvider, withContext } = createSlotRecipeContext({\n recipe: menuSlotRecipe,\n});\n\n// Menu Root\nexport type MenuRootSlotProps = HTMLChakraProps<\"div\">;\nexport const MenuRootSlot = withProvider<HTMLDivElement, MenuRootSlotProps>(\n \"div\",\n \"root\"\n);\n\n// Menu Trigger\nexport type MenuTriggerSlotProps = HTMLChakraProps<\"button\">;\nexport const MenuTriggerSlot = withContext<\n HTMLButtonElement,\n MenuTriggerSlotProps\n>(\"button\", \"trigger\");\n\n// Menu Popover\nexport type MenuPopoverSlotProps = HTMLChakraProps<\"div\">;\nexport const MenuPopoverSlot = withContext<\n HTMLDivElement,\n MenuPopoverSlotProps\n>(\"div\", \"popover\");\n\n// Menu Content\nexport type MenuContentSlotProps = HTMLChakraProps<\"div\">;\nexport const MenuContentSlot = withContext<\n HTMLDivElement,\n MenuContentSlotProps\n>(\"div\", \"content\");\n\n// Menu Item\nexport type MenuItemSlotProps = HTMLChakraProps<\"div\">;\nexport const MenuItemSlot = withContext<HTMLDivElement, MenuItemSlotProps>(\n \"div\",\n \"item\"\n);\n\n// Menu Separator\nexport type MenuSeparatorSlotProps = HTMLChakraProps<\"div\">;\nexport const MenuSeparatorSlot = withContext<\n HTMLDivElement,\n MenuSeparatorSlotProps\n>(\"div\", \"separator\");\n\n// Menu Section\nexport type MenuSectionSlotProps = HTMLChakraProps<\"div\">;\nexport const MenuSectionSlot = withContext<\n HTMLDivElement,\n MenuSectionSlotProps\n>(\"div\", \"section\");\n\n// Menu Section Label\nexport type MenuSectionLabelSlotProps = HTMLChakraProps<\"div\">;\nexport const MenuSectionLabelSlot = withContext<\n HTMLDivElement,\n MenuSectionLabelSlotProps\n>(\"div\", \"sectionLabel\");\n\n// Menu Group Label\nexport type MenuSubmenuSlotProps = HTMLChakraProps<\"div\">;\nexport const MenuSubmenuSlot = withContext<\n HTMLDivElement,\n MenuSubmenuSlotProps\n>(\"div\", \"submenu\");\n","import { createContext, useContext } from \"react\";\nimport type { MenuRootProps } from \"./../menu.types\";\nimport type { MenuTriggerProps as RaMenuTriggerProps } from \"react-aria-components\";\n\n// Context should contain all Menu props (excluding MenuTrigger-specific props)\nexport type MenuContextValue = Omit<\n MenuRootProps,\n keyof RaMenuTriggerProps | \"children\" | \"trigger\"\n>;\n\nconst MenuContext = createContext<MenuContextValue | undefined>(undefined);\n\nexport const MenuProvider = MenuContext.Provider;\n\nexport const useMenuContext = () => {\n const context = useContext(MenuContext);\n return context;\n};\n","import { useSlotRecipe } from \"@chakra-ui/react/styled-system\";\nimport { MenuTrigger as RaMenuTrigger } from \"react-aria-components\";\nimport type { MenuRootProps } from \"../menu.types\";\nimport { MenuRootSlot } from \"../menu.slots\";\nimport { MenuProvider } from \"./menu.context\";\n\nexport const MenuRoot = (props: MenuRootProps) => {\n const recipe = useSlotRecipe({ key: \"menu\" });\n const [recipeProps, functionalProps] = recipe.splitVariantProps(props);\n\n // Separate MenuTrigger props from Menu props\n const {\n children,\n trigger,\n isOpen,\n defaultOpen,\n onOpenChange,\n ...menuContextProps\n } = functionalProps;\n\n const menuTriggerProps = {\n trigger,\n isOpen,\n defaultOpen,\n onOpenChange,\n };\n\n return (\n <MenuRootSlot {...recipeProps} asChild>\n <RaMenuTrigger {...menuTriggerProps}>\n <MenuProvider value={menuContextProps}>{children}</MenuProvider>\n </RaMenuTrigger>\n </MenuRootSlot>\n );\n};\n\nMenuRoot.displayName = \"Menu.Root\";\n","import { Button } from \"react-aria-components\";\nimport { MenuTriggerSlot } from \"../menu.slots\";\nimport type { MenuTriggerProps } from \"../menu.types\";\nimport { extractStyleProps } from \"@/utils/extractStyleProps\";\nimport type { ReactNode } from \"react\";\n\nexport const MenuTrigger = ({\n children,\n asChild,\n ref,\n ...props\n}: MenuTriggerProps) => {\n const [styleProps, restProps] = extractStyleProps(props);\n\n /**\n * The user supplied a Button as the trigger\n */\n if (asChild) {\n // When asChild is true, apply styles to the child element\n return (\n <MenuTriggerSlot ref={ref} asChild {...styleProps}>\n {children as ReactNode}\n </MenuTriggerSlot>\n );\n }\n\n /**\n * The user did not supply a Button as trigger, use an unstyled button\n * to wrap which ever element the user supplied and make it a trigger\n */\n return (\n <MenuTriggerSlot asChild {...styleProps}>\n <Button ref={ref} {...restProps}>\n {children}\n </Button>\n </MenuTriggerSlot>\n );\n};\n\nMenuTrigger.displayName = \"Menu.Trigger\";\n","import { createContext, useContext } from \"react\";\n\nexport interface MenuSectionContextValue {\n selectionMode?: \"single\" | \"multiple\" | \"none\";\n}\n/**\n * Why is a second context (MenuSectionContext) needed?\n *\n * MenuSectionContext enables section-level config for menu items, such as\n * selection mode, which may differ from the global menu context. This allows\n * advanced menus where each section can have its own selection behavior\n * (e.g., one section is single-select, another is multi-select).\n * By scoping context to a section, menu items inherit settings from their\n * nearest section, falling back to the global menu context if not present.\n * This pattern improves flexibility and composability for complex menus,\n * and avoids prop drilling or awkward prop merging.\n */\n\nconst MenuSectionContext = createContext<MenuSectionContextValue | undefined>(\n undefined\n);\n\nexport const MenuSectionProvider = MenuSectionContext.Provider;\n\nexport const useMenuSectionContext = () => {\n return useContext(MenuSectionContext);\n};\n","import { Menu, Popover } from \"react-aria-components\";\nimport { MenuContentSlot, MenuPopoverSlot } from \"../menu.slots\";\nimport type { MenuContentProps } from \"../menu.types\";\nimport { useMenuContext } from \"./menu.context\";\nimport { MenuSectionProvider } from \"./menu.section-context\";\n\nexport const MenuContent = ({\n children,\n placement: placementOverride,\n ref,\n}: MenuContentProps) => {\n const contextProps = useMenuContext();\n\n if (!contextProps) {\n throw new Error(\"Menu.Content must be used within Menu.Root\");\n }\n\n // Separate placement from other props since it's handled by Popover\n const { placement, ...menuProps } = contextProps;\n const finalPlacement = placementOverride || placement || \"bottom start\";\n\n return (\n <MenuSectionProvider value={{ selectionMode: menuProps.selectionMode }}>\n <MenuPopoverSlot asChild>\n <Popover placement={finalPlacement} offset={4} shouldFlip>\n <MenuContentSlot asChild>\n <Menu ref={ref} shouldFocusWrap autoFocus=\"first\" {...menuProps}>\n {children}\n </Menu>\n </MenuContentSlot>\n </Popover>\n </MenuPopoverSlot>\n </MenuSectionProvider>\n );\n};\n\nMenuContent.displayName = \"Menu.Content\";\n","import { MenuItem as RaMenuItem } from \"react-aria-components\";\nimport { MenuItemSlot } from \"../menu.slots\";\nimport type { MenuItemProps } from \"../menu.types\";\nimport { extractStyleProps } from \"@/utils/extractStyleProps\";\nimport {\n CheckBox as CheckboxCheckedIcon,\n CheckBoxOutlineBlank as CheckboxUncheckedIcon,\n ChevronRight,\n RadioButtonChecked,\n RadioButtonUnchecked,\n} from \"@commercetools/nimbus-icons\";\nimport { Icon } from \"@/components/icon\";\nimport { useMenuContext } from \"./menu.context\";\nimport { useMenuSectionContext } from \"./menu.section-context\";\nimport { Box } from \"@/components/box\";\n\nexport const MenuItem = ({\n children,\n isCritical,\n ref,\n ...props\n}: MenuItemProps) => {\n const [styleProps, restProps] = extractStyleProps(props);\n const menuContext = useMenuContext();\n const sectionContext = useMenuSectionContext();\n\n // Use section context if available, otherwise fall back to menu context\n const selectionMode =\n sectionContext?.selectionMode ?? menuContext?.selectionMode;\n\n return (\n <MenuItemSlot\n asChild\n {...styleProps}\n data-critical={isCritical ? \"\" : undefined}\n >\n <RaMenuItem ref={ref} {...restProps}>\n {({ hasSubmenu, isSelected }) => (\n <>\n {selectionMode && (\n <Box slot=\"selection\" role=\"presentation\" aria-hidden=\"true\">\n {selectionMode === \"single\" && (\n <>\n {isSelected && <RadioButtonChecked />}\n {!isSelected && <RadioButtonUnchecked />}\n </>\n )}\n {selectionMode === \"multiple\" && (\n <>\n {isSelected && <CheckboxCheckedIcon />}\n {!isSelected && <CheckboxUncheckedIcon />}\n </>\n )}\n </Box>\n )}\n {children}\n {hasSubmenu && (\n <Icon slot=\"caretIcon\">\n <ChevronRight />\n </Icon>\n )}\n </>\n )}\n </RaMenuItem>\n </MenuItemSlot>\n );\n};\n\nMenuItem.displayName = \"Menu.Item\";\n","import { Separator } from \"react-aria-components\";\nimport { MenuSeparatorSlot } from \"../menu.slots\";\nimport type { MenuSeparatorProps } from \"../menu.types\";\nimport { extractStyleProps } from \"@/utils/extractStyleProps\";\n\nexport const MenuSeparator = ({ ref, ...props }: MenuSeparatorProps) => {\n const [styleProps, restProps] = extractStyleProps(props);\n\n return (\n <MenuSeparatorSlot asChild {...styleProps}>\n <Separator ref={ref} {...restProps} />\n </MenuSeparatorSlot>\n );\n};\n\nMenuSeparator.displayName = \"Menu.Separator\";\n","import { Header } from \"react-aria-components\";\nimport { MenuSectionLabelSlot } from \"../menu.slots\";\nimport type { MenuSectionLabelProps } from \"../menu.types\";\nimport { extractStyleProps } from \"@/utils/extractStyleProps\";\n\n/**\n * Used in MenuSection for rendering the `label` property.\n */\nexport const MenuSectionLabel = ({\n children,\n ref,\n ...props\n}: MenuSectionLabelProps) => {\n const [styleProps, restProps] = extractStyleProps(props);\n\n return (\n <MenuSectionLabelSlot asChild {...styleProps}>\n <Header ref={ref} {...restProps}>\n {children}\n </Header>\n </MenuSectionLabelSlot>\n );\n};\n\nMenuSectionLabel.displayName = \"Menu.SectionLabel\";\n","import {\n MenuSection as RaMenuSection,\n Collection,\n} from \"react-aria-components\";\nimport { MenuSectionSlot } from \"../menu.slots\";\nimport type { MenuSectionProps } from \"../menu.types\";\nimport { extractStyleProps } from \"@/utils/extractStyleProps\";\nimport { useMenuContext } from \"./menu.context\";\nimport { MenuSectionProvider } from \"./menu.section-context\";\nimport { MenuSectionLabel } from \"./menu.section-label\";\nimport type { ReactNode } from \"react\";\n\nexport const MenuSection = <T extends object = object>({\n children,\n ref,\n label,\n items,\n ...props\n}: MenuSectionProps<T>) => {\n const contextProps = useMenuContext();\n\n // Extract selection-related props before extracting style props\n const {\n selectionMode = contextProps?.selectionMode,\n selectedKeys = contextProps?.selectedKeys,\n defaultSelectedKeys = contextProps?.defaultSelectedKeys,\n onSelectionChange = contextProps?.onSelectionChange,\n disallowEmptySelection = contextProps?.disallowEmptySelection,\n ...restProps\n } = props;\n\n const [styleProps, otherProps] = extractStyleProps(restProps);\n\n return (\n <MenuSectionProvider value={{ selectionMode }}>\n <MenuSectionSlot asChild {...styleProps}>\n <RaMenuSection\n ref={ref}\n selectionMode={selectionMode}\n selectedKeys={selectedKeys}\n defaultSelectedKeys={defaultSelectedKeys}\n onSelectionChange={onSelectionChange}\n disallowEmptySelection={disallowEmptySelection}\n {...otherProps}\n >\n <MenuSectionLabel>{label}</MenuSectionLabel>\n {items ? (\n <Collection items={items}>{children}</Collection>\n ) : (\n (children as ReactNode)\n )}\n </RaMenuSection>\n </MenuSectionSlot>\n </MenuSectionProvider>\n );\n};\n\nMenuSection.displayName = \"Menu.Section\";\n","import { SubmenuTrigger as RaSubmenuTrigger } from \"react-aria-components\";\nimport type { MenuSubmenuTriggerProps } from \"../menu.types\";\n\nexport const MenuSubmenuTrigger = ({\n children,\n ...props\n}: MenuSubmenuTriggerProps) => {\n return <RaSubmenuTrigger {...props}>{children}</RaSubmenuTrigger>;\n};\n\nMenuSubmenuTrigger.displayName = \"Menu.SubmenuTrigger\";\n","import type { MenuSubmenuProps } from \"../menu.types\";\nimport { MenuContent } from \"./menu.content\";\n\nexport const MenuSubmenu = ({ children, ...props }: MenuSubmenuProps) => {\n return (\n <MenuContent {...props} placement=\"end\">\n {children}\n </MenuContent>\n );\n};\n\nMenuSubmenu.displayName = \"Menu.Submenu\";\n","import { MenuRoot } from \"./components/menu.root\";\nimport { MenuTrigger } from \"./components/menu.trigger\";\nimport { MenuContent } from \"./components/menu.content\";\nimport { MenuItem } from \"./components/menu.item\";\nimport { MenuSeparator } from \"./components/menu.separator\";\nimport { MenuSection } from \"./components/menu.section\";\nimport { MenuSubmenuTrigger } from \"./components/menu.submenu-trigger\";\nimport { MenuSubmenu } from \"./components/menu.submenu\";\n\n// Re-export types\nexport type * from \"./menu.types\";\n\nexport const Menu = {\n Root: MenuRoot,\n Trigger: MenuTrigger,\n Content: MenuContent,\n Item: MenuItem,\n Separator: MenuSeparator,\n Section: MenuSection,\n Submenu: MenuSubmenu,\n SubmenuTrigger: MenuSubmenuTrigger,\n};\n\n// Exports for internal use by react-docgen\nexport {\n MenuRoot as _MenuRoot,\n MenuTrigger as _MenuTrigger,\n MenuContent as _MenuContent,\n MenuItem as _MenuItem,\n MenuSeparator as _MenuSeparator,\n MenuSection as _MenuSection,\n MenuSubmenuTrigger as _MenuSubmenuTrigger,\n MenuSubmenu as _MenuSubmenu,\n};\n","/* 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 Menu.Separator 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","menuSlotRecipe","MenuRootSlot","MenuTriggerSlot","MenuPopoverSlot","MenuContentSlot","MenuItemSlot","MenuSeparatorSlot","MenuSectionSlot","MenuSectionLabelSlot","MenuContext","createContext","MenuProvider","useMenuContext","useContext","MenuRoot","props","recipe","useSlotRecipe","recipeProps","functionalProps","children","trigger","isOpen","defaultOpen","onOpenChange","menuContextProps","menuTriggerProps","jsx","RaMenuTrigger","MenuTrigger","asChild","ref","styleProps","restProps","extractStyleProps","Button","MenuSectionContext","MenuSectionProvider","useMenuSectionContext","MenuContent","placementOverride","contextProps","placement","menuProps","finalPlacement","Popover","Menu","MenuItem","isCritical","menuContext","selectionMode","RaMenuItem","hasSubmenu","isSelected","jsxs","Fragment","Box","RadioButtonChecked","RadioButtonUnchecked","CheckboxCheckedIcon","CheckboxUncheckedIcon","Icon","ChevronRight","MenuSeparator","Separator","MenuSectionLabel","Header","MenuSection","label","items","selectedKeys","defaultSelectedKeys","onSelectionChange","disallowEmptySelection","otherProps","RaMenuSection","Collection","MenuSubmenuTrigger","RaSubmenuTrigger","MenuSubmenu","splitButtonSlotRecipe","SplitButtonRootSlot","SplitButtonButtonGroupSlot","SplitButtonPrimaryButtonSlot","SplitButtonTriggerSlot","SplitButton","size","variant","tone","isDisabled","ariaLabel","onAction","buttonProps","isMenuItemWithId","element","React","hasChildren","childArray","iconElement","child","menuItems","hasActionableMenuItems","hasActionable","findPrimaryMenuItem","allMenuItems","collectMenuItems","item","hasActionableItems","buttonContent","executePrimaryAction","isPrimaryDisabled","isDropdownTriggerDisabled","key","IconButton","KeyboardArrowDown"],"mappings":"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"}