@televet/kibble-ui 5.0.28-rb.0 → 5.0.28

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 (262) hide show
  1. package/dist/chunks/{alert.component-nhRTQ5KK.js → alert.component-B0gDwaKQ.js} +2 -2
  2. package/dist/chunks/{alert.component-nhRTQ5KK.js.map → alert.component-B0gDwaKQ.js.map} +1 -1
  3. package/dist/chunks/{alert.component-OcRbeRJa.js → alert.component-B2kzYzhv.js} +3 -3
  4. package/dist/chunks/{alert.component-OcRbeRJa.js.map → alert.component-B2kzYzhv.js.map} +1 -1
  5. package/dist/chunks/{avatarGroup.component-CJCQSIyr.js → avatarGroup.component-CUOKTQHZ.js} +2 -2
  6. package/dist/chunks/{avatarGroup.component-CJCQSIyr.js.map → avatarGroup.component-CUOKTQHZ.js.map} +1 -1
  7. package/dist/chunks/{avatarGroup.component-BPhQpVYM.js → avatarGroup.component-z6SzTzKR.js} +3 -3
  8. package/dist/chunks/{avatarGroup.component-BPhQpVYM.js.map → avatarGroup.component-z6SzTzKR.js.map} +1 -1
  9. package/dist/chunks/{buttonGroup.component-pR0mvmm7.js → buttonGroup.component-CHbRCpMI.js} +2 -2
  10. package/dist/chunks/{buttonGroup.component-pR0mvmm7.js.map → buttonGroup.component-CHbRCpMI.js.map} +1 -1
  11. package/dist/chunks/{buttonGroup.component-CO5lC36l.js → buttonGroup.component-CYJxaqK1.js} +2 -2
  12. package/dist/chunks/{buttonGroup.component-CO5lC36l.js.map → buttonGroup.component-CYJxaqK1.js.map} +1 -1
  13. package/dist/chunks/calendar.component-BpDNoBAZ.js +62 -0
  14. package/dist/chunks/calendar.component-BpDNoBAZ.js.map +1 -0
  15. package/dist/chunks/calendar.component-C2bzItDq.js +2 -0
  16. package/dist/chunks/calendar.component-C2bzItDq.js.map +1 -0
  17. package/dist/chunks/{characterCounter.component-BRHLt929.js → characterCounter.component-CczgC612.js} +2 -2
  18. package/dist/chunks/{characterCounter.component-BRHLt929.js.map → characterCounter.component-CczgC612.js.map} +1 -1
  19. package/dist/chunks/{characterCounter.component-DI_FQNUR.js → characterCounter.component-Cm9yEHjz.js} +2 -2
  20. package/dist/chunks/{characterCounter.component-DI_FQNUR.js.map → characterCounter.component-Cm9yEHjz.js.map} +1 -1
  21. package/dist/chunks/{checkbox.component-DUJCiZr2.js → checkbox.component-Bytw6Mk1.js} +3 -3
  22. package/dist/chunks/{checkbox.component-DUJCiZr2.js.map → checkbox.component-Bytw6Mk1.js.map} +1 -1
  23. package/dist/chunks/{checkbox.component-C132vkan.js → checkbox.component-CrTnnQ30.js} +2 -2
  24. package/dist/chunks/{checkbox.component-C132vkan.js.map → checkbox.component-CrTnnQ30.js.map} +1 -1
  25. package/dist/chunks/{checkboxGroup.component-DW9qUlSm.js → checkboxGroup.component-Bf_yc-Fl.js} +3 -3
  26. package/dist/chunks/{checkboxGroup.component-DW9qUlSm.js.map → checkboxGroup.component-Bf_yc-Fl.js.map} +1 -1
  27. package/dist/chunks/{checkboxGroup.component-2U0ZW1TD.js → checkboxGroup.component-CndHvReL.js} +2 -2
  28. package/dist/chunks/{checkboxGroup.component-2U0ZW1TD.js.map → checkboxGroup.component-CndHvReL.js.map} +1 -1
  29. package/dist/chunks/{conversationCard.component-CscMIq51.js → conversationCard.component-BKXSq7NS.js} +2 -2
  30. package/dist/chunks/{conversationCard.component-CscMIq51.js.map → conversationCard.component-BKXSq7NS.js.map} +1 -1
  31. package/dist/chunks/{conversationCard.component-DByFo4jj.js → conversationCard.component-Mn3eYMW_.js} +6 -6
  32. package/dist/chunks/{conversationCard.component-DByFo4jj.js.map → conversationCard.component-Mn3eYMW_.js.map} +1 -1
  33. package/dist/chunks/{datePicker.component-CLTjEX7i.js → datePicker.component-CHBO_Jrk.js} +5 -5
  34. package/dist/chunks/{datePicker.component-CLTjEX7i.js.map → datePicker.component-CHBO_Jrk.js.map} +1 -1
  35. package/dist/chunks/{datePicker.component-BuGpHTzS.js → datePicker.component-DQ0a5vhA.js} +2 -2
  36. package/dist/chunks/{datePicker.component-BuGpHTzS.js.map → datePicker.component-DQ0a5vhA.js.map} +1 -1
  37. package/dist/chunks/{datePicker.provider-i35-VNAb.js → datePicker.provider-CDhsnFSD.js} +2 -2
  38. package/dist/chunks/{datePicker.provider-i35-VNAb.js.map → datePicker.provider-CDhsnFSD.js.map} +1 -1
  39. package/dist/chunks/{datePicker.provider-CttuPiiS.js → datePicker.provider-o-sEPUJe.js} +7 -7
  40. package/dist/chunks/{datePicker.provider-CttuPiiS.js.map → datePicker.provider-o-sEPUJe.js.map} +1 -1
  41. package/dist/chunks/dateTimePicker.component-B1tTKUZU.js +306 -0
  42. package/dist/chunks/dateTimePicker.component-B1tTKUZU.js.map +1 -0
  43. package/dist/chunks/dateTimePicker.component-oLZ5KXWa.js +2 -0
  44. package/dist/chunks/dateTimePicker.component-oLZ5KXWa.js.map +1 -0
  45. package/dist/chunks/endOfMonth-ClO3w4vF.js +2 -0
  46. package/dist/chunks/endOfMonth-ClO3w4vF.js.map +1 -0
  47. package/dist/chunks/endOfMonth-D0kCU08_.js +19 -0
  48. package/dist/chunks/endOfMonth-D0kCU08_.js.map +1 -0
  49. package/dist/chunks/{format-CqTHHSak.js → format-dJJ72A--.js} +3 -3
  50. package/dist/chunks/{format-CqTHHSak.js.map → format-dJJ72A--.js.map} +1 -1
  51. package/dist/chunks/{heading.component-CpSAN3cv.js → heading.component-BBTU00_w.js} +2 -2
  52. package/dist/chunks/{heading.component-CpSAN3cv.js.map → heading.component-BBTU00_w.js.map} +1 -1
  53. package/dist/chunks/{heading.component-DnoZOXdz.js → heading.component-DeM4h5rY.js} +2 -2
  54. package/dist/chunks/{heading.component-DnoZOXdz.js.map → heading.component-DeM4h5rY.js.map} +1 -1
  55. package/dist/chunks/isToday-Q8lj3mkM.js +23 -0
  56. package/dist/chunks/{isToday-iCYsPDMT.js.map → isToday-Q8lj3mkM.js.map} +1 -1
  57. package/dist/chunks/{maintenanceBanner.types-DerZF_8G.js → maintenanceBanner.types-BiSgtHkP.js} +2 -2
  58. package/dist/chunks/{maintenanceBanner.types-DerZF_8G.js.map → maintenanceBanner.types-BiSgtHkP.js.map} +1 -1
  59. package/dist/chunks/{maintenanceBanner.types-BsNjAlXa.js → maintenanceBanner.types-CfHYj6Nu.js} +2 -2
  60. package/dist/chunks/{maintenanceBanner.types-BsNjAlXa.js.map → maintenanceBanner.types-CfHYj6Nu.js.map} +1 -1
  61. package/dist/chunks/{menu.component-D2V9Q1Y5.js → menu.component-CNbEm3SL.js} +2 -2
  62. package/dist/chunks/{menu.component-D2V9Q1Y5.js.map → menu.component-CNbEm3SL.js.map} +1 -1
  63. package/dist/chunks/{menu.component-WHzMw5ZI.js → menu.component-DwnU1N2a.js} +5 -5
  64. package/dist/chunks/{menu.component-WHzMw5ZI.js.map → menu.component-DwnU1N2a.js.map} +1 -1
  65. package/dist/chunks/{modal.types-Bj6PrItn.js → modal.types-CfN8ElV6.js} +2 -2
  66. package/dist/chunks/{modal.types-Bj6PrItn.js.map → modal.types-CfN8ElV6.js.map} +1 -1
  67. package/dist/chunks/{modal.types-rx31rD9D.js → modal.types-DlvB1lQC.js} +2 -2
  68. package/dist/chunks/{modal.types-rx31rD9D.js.map → modal.types-DlvB1lQC.js.map} +1 -1
  69. package/dist/chunks/{notificationCounter.component-CBwi5vXa.js → notificationCounter.component-BUxWlpKh.js} +2 -2
  70. package/dist/chunks/{notificationCounter.component-CBwi5vXa.js.map → notificationCounter.component-BUxWlpKh.js.map} +1 -1
  71. package/dist/chunks/{notificationCounter.component-6Q3q8jWj.js → notificationCounter.component-DhfVkkOQ.js} +2 -2
  72. package/dist/chunks/{notificationCounter.component-6Q3q8jWj.js.map → notificationCounter.component-DhfVkkOQ.js.map} +1 -1
  73. package/dist/chunks/{numberInput.component-DGPEz0Fv.js → numberInput.component-B0P7w6Av.js} +2 -2
  74. package/dist/chunks/{numberInput.component-DGPEz0Fv.js.map → numberInput.component-B0P7w6Av.js.map} +1 -1
  75. package/dist/chunks/{numberInput.component-CRDRjrTH.js → numberInput.component-Bpl3NGJU.js} +2 -2
  76. package/dist/chunks/{numberInput.component-CRDRjrTH.js.map → numberInput.component-Bpl3NGJU.js.map} +1 -1
  77. package/dist/chunks/{pinInput.types-bIGh7aUS.js → pinInput.types-B0WLZ-4e.js} +2 -2
  78. package/dist/chunks/{pinInput.types-bIGh7aUS.js.map → pinInput.types-B0WLZ-4e.js.map} +1 -1
  79. package/dist/chunks/{pinInput.types-Can9f1Eu.js → pinInput.types-xxX7jDUo.js} +2 -2
  80. package/dist/chunks/{pinInput.types-Can9f1Eu.js.map → pinInput.types-xxX7jDUo.js.map} +1 -1
  81. package/dist/chunks/{popover.component-DIYT1Lc0.js → popover.component-65oNmbmB.js} +3 -3
  82. package/dist/chunks/{popover.component-DIYT1Lc0.js.map → popover.component-65oNmbmB.js.map} +1 -1
  83. package/dist/chunks/{popover.component-DTjA1GSd.js → popover.component-Cw6-018C.js} +2 -2
  84. package/dist/chunks/{popover.component-DTjA1GSd.js.map → popover.component-Cw6-018C.js.map} +1 -1
  85. package/dist/chunks/{radioGroup.types-U1ep9nrN.js → radioGroup.types-4D0zmi0v.js} +2 -2
  86. package/dist/chunks/{radioGroup.types-U1ep9nrN.js.map → radioGroup.types-4D0zmi0v.js.map} +1 -1
  87. package/dist/chunks/{radioGroup.types-DzSpA07h.js → radioGroup.types-Dbfon_Lr.js} +4 -4
  88. package/dist/chunks/{radioGroup.types-DzSpA07h.js.map → radioGroup.types-Dbfon_Lr.js.map} +1 -1
  89. package/dist/chunks/{rating.component-DsHkKmA7.js → rating.component-DOUCmD0Y.js} +2 -2
  90. package/dist/chunks/{rating.component-DsHkKmA7.js.map → rating.component-DOUCmD0Y.js.map} +1 -1
  91. package/dist/chunks/{rating.component-BWBPSEEk.js → rating.component-DlCpQ5GH.js} +2 -2
  92. package/dist/chunks/{rating.component-BWBPSEEk.js.map → rating.component-DlCpQ5GH.js.map} +1 -1
  93. package/dist/chunks/{ratingDots.component-BhWM7kTg.js → ratingDots.component-Qk8qlPmN.js} +3 -3
  94. package/dist/chunks/{ratingDots.component-BhWM7kTg.js.map → ratingDots.component-Qk8qlPmN.js.map} +1 -1
  95. package/dist/chunks/{ratingDots.component-CZ370iI3.js → ratingDots.component-pc5p1mua.js} +2 -2
  96. package/dist/chunks/{ratingDots.component-CZ370iI3.js.map → ratingDots.component-pc5p1mua.js.map} +1 -1
  97. package/dist/chunks/{select.component-OrsHXCMz.js → select.component-CzyXxbhS.js} +2 -2
  98. package/dist/chunks/{select.component-OrsHXCMz.js.map → select.component-CzyXxbhS.js.map} +1 -1
  99. package/dist/chunks/{select.component-DckP-f8y.js → select.component-DIrbeCPd.js} +5 -5
  100. package/dist/chunks/{select.component-DckP-f8y.js.map → select.component-DIrbeCPd.js.map} +1 -1
  101. package/dist/chunks/{semanticTokens.records-YFGbKTL1.js → semanticTokens.records-CmeaObFQ.js} +2 -2
  102. package/dist/chunks/{semanticTokens.records-YFGbKTL1.js.map → semanticTokens.records-CmeaObFQ.js.map} +1 -1
  103. package/dist/chunks/{semanticTokens.records-C_ewkfqj.js → semanticTokens.records-Di2_gv9n.js} +9 -9
  104. package/dist/chunks/{semanticTokens.records-C_ewkfqj.js.map → semanticTokens.records-Di2_gv9n.js.map} +1 -1
  105. package/dist/chunks/{sortableList.component-CbxbBLVQ.js → sortableList.component-05kG3QEM.js} +2 -2
  106. package/dist/chunks/{sortableList.component-CbxbBLVQ.js.map → sortableList.component-05kG3QEM.js.map} +1 -1
  107. package/dist/chunks/{sortableList.component-2yX2pXs7.js → sortableList.component-DX9EP39N.js} +2 -2
  108. package/dist/chunks/{sortableList.component-2yX2pXs7.js.map → sortableList.component-DX9EP39N.js.map} +1 -1
  109. package/dist/chunks/{spinner.component-Dq6u4vVL.js → spinner.component-0tE7mnxi.js} +2 -2
  110. package/dist/chunks/{spinner.component-Dq6u4vVL.js.map → spinner.component-0tE7mnxi.js.map} +1 -1
  111. package/dist/chunks/{spinner.component-CNHQ8UDz.js → spinner.component-CQ-JWUon.js} +2 -2
  112. package/dist/chunks/{spinner.component-CNHQ8UDz.js.map → spinner.component-CQ-JWUon.js.map} +1 -1
  113. package/dist/chunks/{switch.component-BYEMhBCA.js → switch.component-BKahX4Bw.js} +2 -2
  114. package/dist/chunks/{switch.component-BYEMhBCA.js.map → switch.component-BKahX4Bw.js.map} +1 -1
  115. package/dist/chunks/{switch.component-DjN67nap.js → switch.component-WMd5cinZ.js} +2 -2
  116. package/dist/chunks/{switch.component-DjN67nap.js.map → switch.component-WMd5cinZ.js.map} +1 -1
  117. package/dist/chunks/{tab.types-JAJ5Xxff.js → tab.types-CTlxVEvQ.js} +3 -3
  118. package/dist/chunks/{tab.types-JAJ5Xxff.js.map → tab.types-CTlxVEvQ.js.map} +1 -1
  119. package/dist/chunks/{tab.types-DSPWRVCF.js → tab.types-xN2lQJLC.js} +2 -2
  120. package/dist/chunks/{tab.types-DSPWRVCF.js.map → tab.types-xN2lQJLC.js.map} +1 -1
  121. package/dist/chunks/{tagBlock.component-CT7_RyJ-.js → tagBlock.component-CNwLyYYb.js} +5 -5
  122. package/dist/chunks/{tagBlock.component-CT7_RyJ-.js.map → tagBlock.component-CNwLyYYb.js.map} +1 -1
  123. package/dist/chunks/{tagBlock.component-B899iqQP.js → tagBlock.component-fnt27QP6.js} +2 -2
  124. package/dist/chunks/{tagBlock.component-B899iqQP.js.map → tagBlock.component-fnt27QP6.js.map} +1 -1
  125. package/dist/chunks/{text.component-DhuUgP3j.js → text.component-C9jh_JMO.js} +2 -2
  126. package/dist/chunks/{text.component-DhuUgP3j.js.map → text.component-C9jh_JMO.js.map} +1 -1
  127. package/dist/chunks/{text.component-BDDz5KQP.js → text.component-D5GpbfNx.js} +2 -2
  128. package/dist/chunks/{text.component-BDDz5KQP.js.map → text.component-D5GpbfNx.js.map} +1 -1
  129. package/dist/chunks/{textInput.component-CwTc0h_F.js → textInput.component-BDJuvT1c.js} +2 -2
  130. package/dist/chunks/{textInput.component-CwTc0h_F.js.map → textInput.component-BDJuvT1c.js.map} +1 -1
  131. package/dist/chunks/{textInput.component-BeiTxTkS.js → textInput.component-DAan7BwF.js} +3 -3
  132. package/dist/chunks/{textInput.component-BeiTxTkS.js.map → textInput.component-DAan7BwF.js.map} +1 -1
  133. package/dist/chunks/{textarea.component-BIg_XX_R.js → textarea.component-1Gvjelye.js} +2 -2
  134. package/dist/chunks/{textarea.component-BIg_XX_R.js.map → textarea.component-1Gvjelye.js.map} +1 -1
  135. package/dist/chunks/{textarea.component-C6Wt1Pk8.js → textarea.component-B-tQg_4m.js} +3 -3
  136. package/dist/chunks/{textarea.component-C6Wt1Pk8.js.map → textarea.component-B-tQg_4m.js.map} +1 -1
  137. package/dist/chunks/theme-BFbOz0Jj.js.map +1 -1
  138. package/dist/chunks/theme-BOK659O0.js.map +1 -1
  139. package/dist/chunks/{theme.provider-BeSlhtUQ.js → theme.provider-CD72J0A7.js} +17 -6
  140. package/dist/chunks/{theme.provider-BeSlhtUQ.js.map → theme.provider-CD72J0A7.js.map} +1 -1
  141. package/dist/chunks/{theme.provider-DYehMUhm.js → theme.provider-DpFjsbLx.js} +2 -2
  142. package/dist/chunks/{theme.provider-DYehMUhm.js.map → theme.provider-DpFjsbLx.js.map} +1 -1
  143. package/dist/chunks/{timePicker.component-BCMX6aqb.js → timePicker.component-CvQ9kF_7.js} +4 -4
  144. package/dist/chunks/{timePicker.component-BCMX6aqb.js.map → timePicker.component-CvQ9kF_7.js.map} +1 -1
  145. package/dist/chunks/{timePicker.component-D5hw80VV.js → timePicker.component-D2gDf5fp.js} +2 -2
  146. package/dist/chunks/{timePicker.component-D5hw80VV.js.map → timePicker.component-D2gDf5fp.js.map} +1 -1
  147. package/dist/chunks/{timeRange.component-D3Db8lvh.js → timeRange.component-DL2vskjy.js} +2 -2
  148. package/dist/chunks/{timeRange.component-D3Db8lvh.js.map → timeRange.component-DL2vskjy.js.map} +1 -1
  149. package/dist/chunks/{timeRange.component-BZHpZeAX.js → timeRange.component-DfOq2mGR.js} +2 -2
  150. package/dist/chunks/{timeRange.component-BZHpZeAX.js.map → timeRange.component-DfOq2mGR.js.map} +1 -1
  151. package/dist/chunks/{timestamp.component-BfmZPfy5.js → timestamp.component-CRTYMLmn.js} +2 -2
  152. package/dist/chunks/{timestamp.component-BfmZPfy5.js.map → timestamp.component-CRTYMLmn.js.map} +1 -1
  153. package/dist/chunks/{timestamp.component-DkLjxUsy.js → timestamp.component-CRz-1i68.js} +4 -4
  154. package/dist/chunks/{timestamp.component-DkLjxUsy.js.map → timestamp.component-CRz-1i68.js.map} +1 -1
  155. package/dist/chunks/{withFormControl-DW9A6BSL.js → withFormControl-DVeqCX53.js} +2 -2
  156. package/dist/chunks/{withFormControl-DW9A6BSL.js.map → withFormControl-DVeqCX53.js.map} +1 -1
  157. package/dist/chunks/{withFormControl-QV_Jridv.js → withFormControl-d2CEvsH2.js} +2 -2
  158. package/dist/chunks/{withFormControl-QV_Jridv.js.map → withFormControl-d2CEvsH2.js.map} +1 -1
  159. package/dist/chunks/withTruncation-D0mlwwep.js +2 -0
  160. package/dist/chunks/{withTruncation-B2GhwmHG.js.map → withTruncation-D0mlwwep.js.map} +1 -1
  161. package/dist/chunks/withTruncation-DW62mTHW.js +103 -0
  162. package/dist/chunks/withTruncation-DW62mTHW.js.map +1 -0
  163. package/dist/cjs/components/Alert/index.cjs +1 -1
  164. package/dist/cjs/components/AvatarGroup/index.cjs +1 -1
  165. package/dist/cjs/components/ButtonGroup/index.cjs +1 -1
  166. package/dist/cjs/components/Calendar/index.cjs +1 -1
  167. package/dist/cjs/components/CharacterCounter/index.cjs +1 -1
  168. package/dist/cjs/components/Checkbox/index.cjs +1 -1
  169. package/dist/cjs/components/CheckboxGroup/index.cjs +1 -1
  170. package/dist/cjs/components/ConversationCard/index.cjs +1 -1
  171. package/dist/cjs/components/DatePicker/index.cjs +1 -1
  172. package/dist/cjs/components/DateTimePicker/index.cjs +1 -1
  173. package/dist/cjs/components/Heading/index.cjs +1 -1
  174. package/dist/cjs/components/MaintenanceBanner/index.cjs +1 -1
  175. package/dist/cjs/components/Menu/index.cjs +1 -1
  176. package/dist/cjs/components/Modal/index.cjs +1 -1
  177. package/dist/cjs/components/NotificationCounter/index.cjs +1 -1
  178. package/dist/cjs/components/NumberInput/index.cjs +1 -1
  179. package/dist/cjs/components/PinInput/index.cjs +1 -1
  180. package/dist/cjs/components/Popover/index.cjs +1 -1
  181. package/dist/cjs/components/RadioGroup/index.cjs +1 -1
  182. package/dist/cjs/components/Rating/index.cjs +1 -1
  183. package/dist/cjs/components/RatingDots/index.cjs +1 -1
  184. package/dist/cjs/components/Select/index.cjs +1 -1
  185. package/dist/cjs/components/SortableList/index.cjs +1 -1
  186. package/dist/cjs/components/Spinner/index.cjs +1 -1
  187. package/dist/cjs/components/Switch/index.cjs +1 -1
  188. package/dist/cjs/components/Tabs/index.cjs +1 -1
  189. package/dist/cjs/components/TagBlock/index.cjs +1 -1
  190. package/dist/cjs/components/Text/index.cjs +1 -1
  191. package/dist/cjs/components/TextInput/index.cjs +1 -1
  192. package/dist/cjs/components/Textarea/index.cjs +1 -1
  193. package/dist/cjs/components/TimePicker/index.cjs +1 -1
  194. package/dist/cjs/components/TimeRange/index.cjs +1 -1
  195. package/dist/cjs/components/Timestamp/index.cjs +1 -1
  196. package/dist/cjs/components/index.cjs +1 -1
  197. package/dist/cjs/index.cjs +1 -1
  198. package/dist/cjs/theme/index.cjs +1 -1
  199. package/dist/cjs/theme/semanticTokens/index.cjs +1 -1
  200. package/dist/cjs/theme/semanticTokens/index.cjs.map +1 -1
  201. package/dist/esm/components/Alert/index.js +1 -1
  202. package/dist/esm/components/AvatarGroup/index.js +1 -1
  203. package/dist/esm/components/ButtonGroup/index.js +1 -1
  204. package/dist/esm/components/Calendar/index.js +4 -2
  205. package/dist/esm/components/CharacterCounter/index.js +1 -1
  206. package/dist/esm/components/Checkbox/index.js +1 -1
  207. package/dist/esm/components/CheckboxGroup/index.js +1 -1
  208. package/dist/esm/components/ConversationCard/index.js +1 -1
  209. package/dist/esm/components/DatePicker/index.js +2 -2
  210. package/dist/esm/components/DateTimePicker/index.js +1 -1
  211. package/dist/esm/components/Heading/index.js +1 -1
  212. package/dist/esm/components/MaintenanceBanner/index.js +1 -1
  213. package/dist/esm/components/Menu/index.js +1 -1
  214. package/dist/esm/components/Modal/index.js +1 -1
  215. package/dist/esm/components/NotificationCounter/index.js +1 -1
  216. package/dist/esm/components/NumberInput/index.js +1 -1
  217. package/dist/esm/components/PinInput/index.js +1 -1
  218. package/dist/esm/components/Popover/index.js +1 -1
  219. package/dist/esm/components/RadioGroup/index.js +1 -1
  220. package/dist/esm/components/Rating/index.js +1 -1
  221. package/dist/esm/components/RatingDots/index.js +1 -1
  222. package/dist/esm/components/Select/index.js +1 -1
  223. package/dist/esm/components/SortableList/index.js +1 -1
  224. package/dist/esm/components/Spinner/index.js +1 -1
  225. package/dist/esm/components/Switch/index.js +1 -1
  226. package/dist/esm/components/Tabs/index.js +1 -1
  227. package/dist/esm/components/TagBlock/index.js +1 -1
  228. package/dist/esm/components/Text/index.js +1 -1
  229. package/dist/esm/components/TextInput/index.js +1 -1
  230. package/dist/esm/components/Textarea/index.js +1 -1
  231. package/dist/esm/components/TimePicker/index.js +1 -1
  232. package/dist/esm/components/TimeRange/index.js +1 -1
  233. package/dist/esm/components/Timestamp/index.js +1 -1
  234. package/dist/esm/components/index.js +127 -125
  235. package/dist/esm/index.js +155 -153
  236. package/dist/esm/theme/index.js +1 -1
  237. package/dist/esm/theme/semanticTokens/index.js +39 -15
  238. package/dist/esm/theme/semanticTokens/index.js.map +1 -1
  239. package/dist/types/components/Calendar/calendar.component.d.ts +19 -1
  240. package/dist/types/components/Calendar/calendar.utils.d.ts +3 -0
  241. package/dist/types/components/Calendar/calendarFooterButton.component.d.ts +41 -0
  242. package/dist/types/components/Calendar/index.d.ts +2 -0
  243. package/dist/types/components/Heading/heading.recipe.d.ts +1 -1
  244. package/dist/types/components/Link/link.recipe.d.ts +1 -1
  245. package/dist/types/components/Modal/modal.recipe.d.ts +1 -1
  246. package/dist/types/components/Text/text.recipe.d.ts +1 -1
  247. package/dist/types/shared/types/theme.d.ts +1 -1
  248. package/dist/types/theme/semanticTokens/semanticTokens.config.d.ts +37 -37
  249. package/dist/types/theme/tokens/colors/colors.config.d.ts +1 -1
  250. package/package.json +1 -1
  251. package/dist/chunks/calendar.component-BFSyxaB6.js +0 -2
  252. package/dist/chunks/calendar.component-BFSyxaB6.js.map +0 -1
  253. package/dist/chunks/calendar.component-CegJR9ey.js +0 -18
  254. package/dist/chunks/calendar.component-CegJR9ey.js.map +0 -1
  255. package/dist/chunks/dateTimePicker.component-BlWhC5aT.js +0 -2
  256. package/dist/chunks/dateTimePicker.component-BlWhC5aT.js.map +0 -1
  257. package/dist/chunks/dateTimePicker.component-CLAI_Q6e.js +0 -317
  258. package/dist/chunks/dateTimePicker.component-CLAI_Q6e.js.map +0 -1
  259. package/dist/chunks/isToday-iCYsPDMT.js +0 -23
  260. package/dist/chunks/withTruncation-B2GhwmHG.js +0 -92
  261. package/dist/chunks/withTruncation-pzYbtqYw.js +0 -2
  262. package/dist/chunks/withTruncation-pzYbtqYw.js.map +0 -1
@@ -1 +1 @@
1
- {"version":3,"file":"menu.component-WHzMw5ZI.js","sources":["../../node_modules/@ark-ui/react/dist/components/menu/use-menu-context.js","../../node_modules/@ark-ui/react/dist/components/menu/menu-arrow.js","../../node_modules/@ark-ui/react/dist/components/menu/menu-arrow-tip.js","../../node_modules/@ark-ui/react/dist/components/menu/use-menu-item-context.js","../../node_modules/@ark-ui/react/dist/components/menu/use-menu-option-item-props-context.js","../../node_modules/@ark-ui/react/dist/components/menu/menu-checkbox-item.js","../../node_modules/@ark-ui/react/dist/components/menu/menu-content.js","../../node_modules/@ark-ui/react/dist/components/menu/menu-context-trigger.js","../../node_modules/@ark-ui/react/dist/components/menu/menu-indicator.js","../../node_modules/@ark-ui/react/dist/components/menu/menu-item.js","../../node_modules/@ark-ui/react/dist/components/menu/use-menu-item-group-context.js","../../node_modules/@ark-ui/react/dist/components/menu/menu-item-group.js","../../node_modules/@ark-ui/react/dist/components/menu/menu-item-group-label.js","../../node_modules/@ark-ui/react/dist/components/menu/menu-item-indicator.js","../../node_modules/@ark-ui/react/dist/components/menu/menu-item-text.js","../../node_modules/@ark-ui/react/dist/components/menu/menu-positioner.js","../../node_modules/@ark-ui/react/dist/components/menu/menu-radio-item.js","../../node_modules/@ark-ui/react/dist/components/menu/menu-radio-item-group.js","../../node_modules/@ark-ui/react/dist/utils/use-effect-once.js","../../node_modules/@ark-ui/react/dist/components/menu/use-menu.js","../../node_modules/@ark-ui/react/dist/components/menu/use-menu-machine-context.js","../../node_modules/@ark-ui/react/dist/components/menu/use-menu-trigger-item-context.js","../../node_modules/@ark-ui/react/dist/components/menu/menu-root.js","../../node_modules/@ark-ui/react/dist/components/menu/menu-root-provider.js","../../node_modules/@ark-ui/react/dist/components/menu/menu-separator.js","../../node_modules/@ark-ui/react/dist/components/menu/menu-trigger.js","../../node_modules/@ark-ui/react/dist/components/menu/menu-trigger-item.js","../../node_modules/@chakra-ui/react/dist/esm/components/menu/menu.js","../../src/components/Menu/components/MenuButton/menuButton.component.tsx","../../src/components/Menu/components/MenuItem/menuItem.component.tsx","../../src/components/Menu/components/MenuToggleButtons/menuToggleButtons.component.tsx","../../src/components/Menu/menu.component.tsx"],"sourcesContent":["'use client';\nimport { createContext } from '../../utils/create-context.js';\n\nconst [MenuProvider, useMenuContext] = createContext({\n name: \"MenuContext\",\n hookName: \"useMenuContext\",\n providerName: \"<MenuProvider />\",\n strict: false\n});\n\nexport { MenuProvider, useMenuContext };\n","'use client';\nimport { jsx } from 'react/jsx-runtime';\nimport { mergeProps } from '@zag-js/react';\nimport { forwardRef } from 'react';\nimport { ark } from '../factory.js';\nimport { useMenuContext } from './use-menu-context.js';\n\nconst MenuArrow = forwardRef((props, ref) => {\n const menu = useMenuContext();\n const mergedProps = mergeProps(menu.getArrowProps(), props);\n return /* @__PURE__ */ jsx(ark.div, { ...mergedProps, ref });\n});\nMenuArrow.displayName = \"MenuArrow\";\n\nexport { MenuArrow };\n","'use client';\nimport { jsx } from 'react/jsx-runtime';\nimport { mergeProps } from '@zag-js/react';\nimport { forwardRef } from 'react';\nimport { ark } from '../factory.js';\nimport { useMenuContext } from './use-menu-context.js';\n\nconst MenuArrowTip = forwardRef((props, ref) => {\n const menu = useMenuContext();\n const mergedProps = mergeProps(menu.getArrowTipProps(), props);\n return /* @__PURE__ */ jsx(ark.div, { ...mergedProps, ref });\n});\nMenuArrowTip.displayName = \"MenuArrowTip\";\n\nexport { MenuArrowTip };\n","'use client';\nimport { createContext } from '../../utils/create-context.js';\n\nconst [MenuItemProvider, useMenuItemContext] = createContext({\n name: \"MenuItemContext\",\n hookName: \"useMenuItemContext\",\n providerName: \"<MenuItemProvider />\"\n});\n\nexport { MenuItemProvider, useMenuItemContext };\n","'use client';\nimport { createContext } from '../../utils/create-context.js';\n\nconst [MenuItemPropsProvider, useMenuItemPropsContext] = createContext({\n name: \"MenuItemPropsContext\",\n hookName: \"useMenuItemPropsContext\",\n providerName: \"<MenuItemPropsProvider />\"\n});\n\nexport { MenuItemPropsProvider, useMenuItemPropsContext };\n","'use client';\nimport { jsx } from 'react/jsx-runtime';\nimport { mergeProps } from '@zag-js/react';\nimport { forwardRef } from 'react';\nimport { createSplitProps } from '../../utils/create-split-props.js';\nimport { ark } from '../factory.js';\nimport { useMenuContext } from './use-menu-context.js';\nimport { MenuItemProvider } from './use-menu-item-context.js';\nimport { MenuItemPropsProvider } from './use-menu-option-item-props-context.js';\n\nconst MenuCheckboxItem = forwardRef((props, ref) => {\n const [partialOptionItemProps, localProps] = createSplitProps()(props, [\n \"checked\",\n \"closeOnSelect\",\n \"disabled\",\n \"onCheckedChange\",\n \"value\",\n \"valueText\"\n ]);\n const optionItemProps = {\n ...partialOptionItemProps,\n type: \"checkbox\"\n };\n const menu = useMenuContext();\n const mergedProps = mergeProps(menu.getOptionItemProps(optionItemProps), localProps);\n const optionItemState = menu.getOptionItemState(optionItemProps);\n return /* @__PURE__ */ jsx(MenuItemPropsProvider, { value: optionItemProps, children: /* @__PURE__ */ jsx(MenuItemProvider, { value: optionItemState, children: /* @__PURE__ */ jsx(ark.div, { ...mergedProps, ref }) }) });\n});\nMenuCheckboxItem.displayName = \"MenuCheckboxItem\";\n\nexport { MenuCheckboxItem };\n","'use client';\nimport { jsx } from 'react/jsx-runtime';\nimport { mergeProps } from '@zag-js/react';\nimport { forwardRef } from 'react';\nimport { composeRefs } from '../../utils/compose-refs.js';\nimport { ark } from '../factory.js';\nimport { usePresenceContext } from '../presence/use-presence-context.js';\nimport { useMenuContext } from './use-menu-context.js';\n\nconst MenuContent = forwardRef((props, ref) => {\n const menu = useMenuContext();\n const presence = usePresenceContext();\n const mergedProps = mergeProps(menu.getContentProps(), presence.getPresenceProps(), props);\n if (presence.unmounted) {\n return null;\n }\n return /* @__PURE__ */ jsx(ark.div, { ...mergedProps, ref: composeRefs(presence.ref, ref) });\n});\nMenuContent.displayName = \"MenuContent\";\n\nexport { MenuContent };\n","'use client';\nimport { jsx } from 'react/jsx-runtime';\nimport { mergeProps } from '@zag-js/react';\nimport { forwardRef } from 'react';\nimport { ark } from '../factory.js';\nimport { useMenuContext } from './use-menu-context.js';\n\nconst MenuContextTrigger = forwardRef((props, ref) => {\n const menu = useMenuContext();\n const mergedProps = mergeProps(menu.getContextTriggerProps(), props);\n return /* @__PURE__ */ jsx(ark.button, { ...mergedProps, ref });\n});\nMenuContextTrigger.displayName = \"MenuContextTrigger\";\n\nexport { MenuContextTrigger };\n","'use client';\nimport { jsx } from 'react/jsx-runtime';\nimport { mergeProps } from '@zag-js/react';\nimport { forwardRef } from 'react';\nimport { ark } from '../factory.js';\nimport { useMenuContext } from './use-menu-context.js';\n\nconst MenuIndicator = forwardRef((props, ref) => {\n const menu = useMenuContext();\n const mergedProps = mergeProps(menu.getIndicatorProps(), props);\n return /* @__PURE__ */ jsx(ark.div, { ...mergedProps, ref });\n});\nMenuIndicator.displayName = \"MenuIndicator\";\n\nexport { MenuIndicator };\n","'use client';\nimport { jsx } from 'react/jsx-runtime';\nimport { mergeProps } from '@zag-js/react';\nimport { forwardRef, useEffect } from 'react';\nimport { createSplitProps } from '../../utils/create-split-props.js';\nimport { ark } from '../factory.js';\nimport { useMenuContext } from './use-menu-context.js';\nimport { MenuItemProvider } from './use-menu-item-context.js';\nimport { MenuItemPropsProvider } from './use-menu-option-item-props-context.js';\n\nconst MenuItem = forwardRef((props, ref) => {\n const [itemProps, localProps] = createSplitProps()(props, [\n \"closeOnSelect\",\n \"disabled\",\n \"value\",\n \"valueText\",\n \"onSelect\"\n ]);\n const menu = useMenuContext();\n const mergedProps = mergeProps(menu.getItemProps(itemProps), localProps);\n const itemState = menu.getItemState(itemProps);\n useEffect(() => {\n return menu.addItemListener({ id: itemState.id, onSelect: itemProps.onSelect });\n }, [itemState.id, itemProps.onSelect]);\n return /* @__PURE__ */ jsx(MenuItemPropsProvider, { value: itemProps, children: /* @__PURE__ */ jsx(MenuItemProvider, { value: itemState, children: /* @__PURE__ */ jsx(ark.div, { ...mergedProps, ref }) }) });\n});\nMenuItem.displayName = \"MenuItem\";\n\nexport { MenuItem };\n","'use client';\nimport { createContext } from '../../utils/create-context.js';\n\nconst [MenuItemGroupProvider, useMenuItemGroupContext] = createContext({\n name: \"MenuItemGroupContext\",\n hookName: \"useMenuItemGroupContext\",\n providerName: \"<MenuItemGroupProvider />\"\n});\n\nexport { MenuItemGroupProvider, useMenuItemGroupContext };\n","'use client';\nimport { jsx } from 'react/jsx-runtime';\nimport { mergeProps } from '@zag-js/react';\nimport { forwardRef, useId } from 'react';\nimport { createSplitProps } from '../../utils/create-split-props.js';\nimport { ark } from '../factory.js';\nimport { useMenuContext } from './use-menu-context.js';\nimport { MenuItemGroupProvider } from './use-menu-item-group-context.js';\n\nconst MenuItemGroup = forwardRef((props, ref) => {\n const [optionalItemGroupProps, localProps] = createSplitProps()(props, [\"id\"]);\n const menu = useMenuContext();\n const id = useId();\n const itemGroupProps = { id, ...optionalItemGroupProps };\n const mergedProps = mergeProps(menu.getItemGroupProps(itemGroupProps), localProps);\n return /* @__PURE__ */ jsx(MenuItemGroupProvider, { value: itemGroupProps, children: /* @__PURE__ */ jsx(ark.div, { ...mergedProps, ref }) });\n});\nMenuItemGroup.displayName = \"MenuItemGroup\";\n\nexport { MenuItemGroup };\n","'use client';\nimport { jsx } from 'react/jsx-runtime';\nimport { mergeProps } from '@zag-js/react';\nimport { forwardRef } from 'react';\nimport { ark } from '../factory.js';\nimport { useMenuContext } from './use-menu-context.js';\nimport { useMenuItemGroupContext } from './use-menu-item-group-context.js';\n\nconst MenuItemGroupLabel = forwardRef((props, ref) => {\n const menu = useMenuContext();\n const itemGroup = useMenuItemGroupContext();\n const mergedProps = mergeProps(menu.getItemGroupLabelProps({ htmlFor: itemGroup.id }), props);\n return /* @__PURE__ */ jsx(ark.div, { ...mergedProps, ref });\n});\nMenuItemGroupLabel.displayName = \"MenuItemGroupLabel\";\n\nexport { MenuItemGroupLabel };\n","'use client';\nimport { jsx } from 'react/jsx-runtime';\nimport { mergeProps } from '@zag-js/react';\nimport { forwardRef } from 'react';\nimport { ark } from '../factory.js';\nimport { useMenuContext } from './use-menu-context.js';\nimport { useMenuItemPropsContext } from './use-menu-option-item-props-context.js';\n\nconst MenuItemIndicator = forwardRef((props, ref) => {\n const menu = useMenuContext();\n const itemProps = useMenuItemPropsContext();\n const mergedProps = mergeProps(menu.getItemIndicatorProps(itemProps), props);\n return /* @__PURE__ */ jsx(ark.div, { ...mergedProps, ref });\n});\nMenuItemIndicator.displayName = \"MenuItemIndicator\";\n\nexport { MenuItemIndicator };\n","'use client';\nimport { jsx } from 'react/jsx-runtime';\nimport { mergeProps } from '@zag-js/react';\nimport { forwardRef } from 'react';\nimport { ark } from '../factory.js';\nimport { useMenuContext } from './use-menu-context.js';\nimport { useMenuItemPropsContext } from './use-menu-option-item-props-context.js';\n\nconst MenuItemText = forwardRef((props, ref) => {\n const menu = useMenuContext();\n const itemProps = useMenuItemPropsContext();\n const mergedProps = mergeProps(menu.getItemTextProps(itemProps), props);\n return /* @__PURE__ */ jsx(ark.div, { ...mergedProps, ref });\n});\nMenuItemText.displayName = \"MenuItemText\";\n\nexport { MenuItemText };\n","'use client';\nimport { jsx } from 'react/jsx-runtime';\nimport { mergeProps } from '@zag-js/react';\nimport { forwardRef } from 'react';\nimport { ark } from '../factory.js';\nimport { usePresenceContext } from '../presence/use-presence-context.js';\nimport { useMenuContext } from './use-menu-context.js';\n\nconst MenuPositioner = forwardRef((props, ref) => {\n const menu = useMenuContext();\n const mergedProps = mergeProps(menu.getPositionerProps(), props);\n const presence = usePresenceContext();\n if (presence.unmounted) {\n return null;\n }\n return /* @__PURE__ */ jsx(ark.div, { ...mergedProps, ref });\n});\nMenuPositioner.displayName = \"MenuPositioner\";\n\nexport { MenuPositioner };\n","'use client';\nimport { jsx } from 'react/jsx-runtime';\nimport { mergeProps } from '@zag-js/react';\nimport { forwardRef } from 'react';\nimport { createSplitProps } from '../../utils/create-split-props.js';\nimport { ark } from '../factory.js';\nimport { useMenuContext } from './use-menu-context.js';\nimport { MenuItemProvider } from './use-menu-item-context.js';\nimport { useMenuItemGroupContext } from './use-menu-item-group-context.js';\nimport { MenuItemPropsProvider } from './use-menu-option-item-props-context.js';\n\nconst MenuRadioItem = forwardRef((props, ref) => {\n const [partialItemProps, localProps] = createSplitProps()(props, [\n \"closeOnSelect\",\n \"disabled\",\n \"value\",\n \"valueText\"\n ]);\n const menu = useMenuContext();\n const itemGroup = useMenuItemGroupContext();\n const optionItemProps = {\n ...partialItemProps,\n checked: itemGroup.value === partialItemProps.value,\n type: \"radio\",\n onCheckedChange: () => itemGroup.onValueChange?.({ value: partialItemProps.value })\n };\n const mergedProps = mergeProps(menu.getOptionItemProps(optionItemProps), localProps);\n const optionItemState = menu.getOptionItemState(optionItemProps);\n return /* @__PURE__ */ jsx(MenuItemPropsProvider, { value: optionItemProps, children: /* @__PURE__ */ jsx(MenuItemProvider, { value: optionItemState, children: /* @__PURE__ */ jsx(ark.div, { ...mergedProps, ref }) }) });\n});\nMenuRadioItem.displayName = \"MenuRadioItem\";\n\nexport { MenuRadioItem };\n","'use client';\nimport { jsx } from 'react/jsx-runtime';\nimport { mergeProps } from '@zag-js/react';\nimport { forwardRef, useId } from 'react';\nimport { createSplitProps } from '../../utils/create-split-props.js';\nimport { ark } from '../factory.js';\nimport { useMenuContext } from './use-menu-context.js';\nimport { MenuItemGroupProvider } from './use-menu-item-group-context.js';\n\nconst MenuRadioItemGroup = forwardRef((props, ref) => {\n const [optionalItemGroupProps, localProps] = createSplitProps()(props, [\n \"id\",\n \"onValueChange\",\n \"value\"\n ]);\n const menu = useMenuContext();\n const id = useId();\n const itemGroupProps = { id, ...optionalItemGroupProps };\n const mergedProps = mergeProps(menu.getItemGroupProps({ id: itemGroupProps.id }), localProps);\n return /* @__PURE__ */ jsx(MenuItemGroupProvider, { value: itemGroupProps, children: /* @__PURE__ */ jsx(ark.div, { ...mergedProps, ref }) });\n});\nMenuRadioItemGroup.displayName = \"MenuRadioItemGroup\";\n\nexport { MenuRadioItemGroup };\n","'use client';\nimport { useRef, useEffect } from 'react';\n\nconst useEffectOnce = (cb) => {\n const savedCallback = useRef(cb);\n const effectGuard = useRef(false);\n useEffect(() => {\n savedCallback.current = cb;\n });\n useEffect(() => {\n if (effectGuard.current !== true) {\n effectGuard.current = true;\n savedCallback.current();\n }\n }, []);\n};\n\nexport { useEffectOnce };\n","'use client';\nimport * as menu from '@zag-js/menu';\nimport { useMachine, normalizeProps } from '@zag-js/react';\nimport { useId } from 'react';\nimport { useEnvironmentContext } from '../../providers/environment/use-environment-context.js';\nimport { useLocaleContext } from '../../providers/locale/use-locale-context.js';\n\nconst useMenu = (props) => {\n const id = useId();\n const { getRootNode } = useEnvironmentContext();\n const { dir } = useLocaleContext();\n const machineProps = {\n id,\n dir,\n getRootNode,\n ...props\n };\n const service = useMachine(menu.machine, machineProps);\n const api = menu.connect(service, normalizeProps);\n return { api, service };\n};\n\nexport { useMenu };\n","'use client';\nimport { createContext } from '../../utils/create-context.js';\n\nconst [MenuMachineProvider, useMenuMachineContext] = createContext({\n name: \"MenuMachineContext\",\n hookName: \"useMenuMachineContext\",\n providerName: \"<MenuMachineProvider />\",\n strict: false\n});\n\nexport { MenuMachineProvider, useMenuMachineContext };\n","'use client';\nimport { createContext } from '../../utils/create-context.js';\n\nconst [MenuTriggerItemProvider, useMenuTriggerItemContext] = createContext({\n name: \"MenuMachineContext\",\n hookName: \"useMenuMachineContext\",\n providerName: \"<MenuMachineProvider />\",\n strict: false\n});\n\nexport { MenuTriggerItemProvider, useMenuTriggerItemContext };\n","'use client';\nimport { jsx } from 'react/jsx-runtime';\nimport { mergeProps } from '@zag-js/react';\nimport { useCallback } from 'react';\nimport { createSplitProps } from '../../utils/create-split-props.js';\nimport { useEffectOnce } from '../../utils/use-effect-once.js';\nimport { splitPresenceProps } from '../presence/split-presence-props.js';\nimport { usePresence } from '../presence/use-presence.js';\nimport { PresenceProvider } from '../presence/use-presence-context.js';\nimport { useMenu } from './use-menu.js';\nimport { useMenuContext, MenuProvider } from './use-menu-context.js';\nimport { useMenuMachineContext, MenuMachineProvider } from './use-menu-machine-context.js';\nimport { MenuTriggerItemProvider } from './use-menu-trigger-item-context.js';\n\nconst MenuRoot = (props) => {\n const [presenceProps, menuProps] = splitPresenceProps(props);\n const [useMenuProps, localProps] = createSplitProps()(menuProps, [\n \"anchorPoint\",\n \"aria-label\",\n \"closeOnSelect\",\n \"composite\",\n \"defaultHighlightedValue\",\n \"defaultOpen\",\n \"highlightedValue\",\n \"id\",\n \"ids\",\n \"loopFocus\",\n \"navigate\",\n \"onEscapeKeyDown\",\n \"onFocusOutside\",\n \"onHighlightChange\",\n \"onInteractOutside\",\n \"onOpenChange\",\n \"onPointerDownOutside\",\n \"onSelect\",\n \"open\",\n \"positioning\",\n \"typeahead\"\n ]);\n const parentApi = useMenuContext();\n const parentMachine = useMenuMachineContext();\n const { api, service } = useMenu(useMenuProps);\n const presence = usePresence(mergeProps({ present: api.open }, presenceProps));\n useEffectOnce(() => {\n if (!parentMachine) return;\n if (!parentApi) return;\n parentApi.setChild(service);\n api.setParent(parentMachine);\n });\n const triggerItemContext = useCallback(() => parentApi?.getTriggerItemProps(api), [api, parentApi]);\n return /* @__PURE__ */ jsx(MenuTriggerItemProvider, { value: triggerItemContext, children: /* @__PURE__ */ jsx(MenuMachineProvider, { value: service, children: /* @__PURE__ */ jsx(MenuProvider, { value: api, children: /* @__PURE__ */ jsx(PresenceProvider, { value: presence, ...localProps }) }) }) });\n};\n\nexport { MenuRoot };\n","'use client';\nimport { jsx } from 'react/jsx-runtime';\nimport { mergeProps } from '@zag-js/react';\nimport { useCallback } from 'react';\nimport { useEffectOnce } from '../../utils/use-effect-once.js';\nimport { splitPresenceProps } from '../presence/split-presence-props.js';\nimport { usePresence } from '../presence/use-presence.js';\nimport { PresenceProvider } from '../presence/use-presence-context.js';\nimport { useMenuContext, MenuProvider } from './use-menu-context.js';\nimport { useMenuMachineContext, MenuMachineProvider } from './use-menu-machine-context.js';\nimport { MenuTriggerItemProvider } from './use-menu-trigger-item-context.js';\n\nconst MenuRootProvider = (props) => {\n const parentApi = useMenuContext();\n const parentMachine = useMenuMachineContext();\n const [presenceProps, { value: menu, children }] = splitPresenceProps(props);\n const { api, service } = menu;\n const presence = usePresence(mergeProps({ present: api.open }, presenceProps));\n useEffectOnce(() => {\n if (!parentMachine) return;\n if (!parentApi) return;\n parentApi.setChild(service);\n api.setParent(parentMachine);\n });\n const triggerItemContext = useCallback(() => parentApi?.getTriggerItemProps(api), [api, parentApi]);\n return /* @__PURE__ */ jsx(MenuTriggerItemProvider, { value: triggerItemContext, children: /* @__PURE__ */ jsx(MenuMachineProvider, { value: service, children: /* @__PURE__ */ jsx(MenuProvider, { value: api, children: /* @__PURE__ */ jsx(PresenceProvider, { value: presence, children }) }) }) });\n};\n\nexport { MenuRootProvider };\n","'use client';\nimport { jsx } from 'react/jsx-runtime';\nimport { mergeProps } from '@zag-js/react';\nimport { forwardRef } from 'react';\nimport { ark } from '../factory.js';\nimport { useMenuContext } from './use-menu-context.js';\n\nconst MenuSeparator = forwardRef((props, ref) => {\n const menu = useMenuContext();\n const mergedProps = mergeProps(menu.getSeparatorProps(), props);\n return /* @__PURE__ */ jsx(ark.hr, { ...mergedProps, ref });\n});\nMenuSeparator.displayName = \"MenuSeparator\";\n\nexport { MenuSeparator };\n","'use client';\nimport { jsx } from 'react/jsx-runtime';\nimport { mergeProps } from '@zag-js/react';\nimport { forwardRef } from 'react';\nimport { ark } from '../factory.js';\nimport { usePresenceContext } from '../presence/use-presence-context.js';\nimport { useMenuContext } from './use-menu-context.js';\n\nconst MenuTrigger = forwardRef((props, ref) => {\n const menu = useMenuContext();\n const presence = usePresenceContext();\n const mergedProps = mergeProps(\n {\n ...menu.getTriggerProps(),\n \"aria-controls\": presence.unmounted ? void 0 : menu.getTriggerProps()[\"aria-controls\"]\n },\n props\n );\n return /* @__PURE__ */ jsx(ark.button, { ...mergedProps, ref });\n});\nMenuTrigger.displayName = \"MenuTrigger\";\n\nexport { MenuTrigger };\n","'use client';\nimport { jsx } from 'react/jsx-runtime';\nimport { mergeProps } from '@zag-js/react';\nimport { forwardRef } from 'react';\nimport { ark } from '../factory.js';\nimport { useMenuTriggerItemContext } from './use-menu-trigger-item-context.js';\n\nconst MenuTriggerItem = forwardRef((props, ref) => {\n const getTriggerItemProps = useMenuTriggerItemContext();\n const mergedProps = mergeProps(getTriggerItemProps?.() ?? {}, props);\n return /* @__PURE__ */ jsx(ark.div, { ...mergedProps, ref });\n});\nMenuTriggerItem.displayName = \"MenuTriggerItem\";\n\nexport { MenuTriggerItem };\n","\"use strict\";\n\"use client\";\nimport { jsx } from 'react/jsx-runtime';\nimport { Menu } from '@ark-ui/react/menu';\nimport { createSlotRecipeContext } from '../../styled-system/create-slot-recipe-context.js';\nimport { CheckIcon } from '../icons.js';\n\nconst {\n withRootProvider,\n withContext,\n useStyles: useMenuStyles,\n PropsProvider\n} = createSlotRecipeContext({ key: \"menu\" });\nconst MenuRootProvider = withRootProvider(\n Menu.RootProvider\n);\nconst MenuRoot = withRootProvider(Menu.Root, {\n defaultProps: { lazyMount: true, unmountOnExit: true }\n});\nconst MenuPropsProvider = PropsProvider;\nconst MenuTrigger = withContext(\n Menu.Trigger,\n \"trigger\",\n { forwardAsChild: true }\n);\nconst MenuContextTrigger = withContext(Menu.ContextTrigger, \"contextTrigger\", { forwardAsChild: true });\nconst MenuPositioner = withContext(\n Menu.Positioner,\n \"positioner\",\n { forwardAsChild: true }\n);\nconst MenuSeparator = withContext(\n Menu.Separator,\n \"separator\",\n { forwardAsChild: true }\n);\nconst MenuContent = withContext(\n Menu.Content,\n \"content\",\n { forwardAsChild: true }\n);\nconst MenuArrowTip = withContext(\n Menu.ArrowTip,\n \"arrowTip\",\n { forwardAsChild: true }\n);\nconst MenuArrow = withContext(\n Menu.Arrow,\n \"arrow\",\n { forwardAsChild: true, defaultProps: { children: /* @__PURE__ */ jsx(MenuArrowTip, {}) } }\n);\nconst MenuIndicator = withContext(\n Menu.Indicator,\n \"indicator\",\n { forwardAsChild: true }\n);\nconst MenuItemGroup = withContext(\n Menu.ItemGroup,\n \"itemGroup\",\n { forwardAsChild: true }\n);\nconst MenuItemGroupLabel = withContext(Menu.ItemGroupLabel, \"itemGroupLabel\", { forwardAsChild: true });\nconst MenuItem = withContext(\n Menu.Item,\n \"item\",\n { forwardAsChild: true }\n);\nconst MenuTriggerItem = withContext(Menu.TriggerItem, \"item\", { forwardAsChild: true });\nconst MenuItemText = withContext(\n Menu.ItemText,\n \"itemText\",\n { forwardAsChild: true }\n);\nconst MenuItemCommand = withContext(\n \"kbd\",\n \"itemCommand\"\n);\nconst MenuItemIndicator = withContext(Menu.ItemIndicator, \"itemIndicator\", {\n forwardAsChild: true,\n defaultProps: { children: /* @__PURE__ */ jsx(CheckIcon, { boxSize: \"4\" }) }\n});\nconst MenuCheckboxItem = withContext(Menu.CheckboxItem, \"item\", { forwardAsChild: true });\nconst MenuRadioItemGroup = withContext(Menu.RadioItemGroup, \"itemGroup\", { forwardAsChild: true });\nconst MenuRadioItem = withContext(\n Menu.RadioItem,\n \"item\",\n { forwardAsChild: true }\n);\nconst MenuContext = Menu.Context;\nconst MenuItemContext = Menu.ItemContext;\n\nexport { MenuArrow, MenuArrowTip, MenuCheckboxItem, MenuContent, MenuContext, MenuContextTrigger, MenuIndicator, MenuItem, MenuItemCommand, MenuItemContext, MenuItemGroup, MenuItemGroupLabel, MenuItemIndicator, MenuItemText, MenuPositioner, MenuPropsProvider, MenuRadioItem, MenuRadioItemGroup, MenuRoot, MenuRootProvider, MenuSeparator, MenuTrigger, MenuTriggerItem, useMenuStyles };\n","import { Flex } from '@chakra-ui/react/flex';\nimport { Box } from '@chakra-ui/react/box';\nimport { Button, ButtonProps } from 'components/Button/button.component';\nimport { Icon } from 'components/Icon/icon.component';\nimport { Text, TextProps } from 'components/Text/text.component';\nimport { Tooltip, TooltipProps } from 'components/Tooltip/tooltip.component';\nimport React, { useCallback, useEffect, useState } from 'react';\n\nexport interface MenuButtonProps extends Omit<ButtonProps, 'children'> {\n /** If true, the caret will be hidden.\n * @default false\n */\n hideCaret?: boolean;\n /** Text to display in the menu button. */\n text?: string;\n /** Props to customize the text. */\n textProps?: TextProps;\n /** Props to customize the tooltip. */\n tooltipProps?: Omit<TooltipProps, 'children' | 'label' | 'isOpen' | 'onClose'>;\n /** If true, the tooltip will be shown. */\n showTooltip?: boolean;\n /** Determines if the menu is open. */\n isMenuOpen?: boolean;\n}\n\nexport const MenuButton = ({\n hideCaret = false,\n size = 'md',\n text,\n textProps,\n variant,\n onClick,\n ['data-testid']: dataTestId = 'kibble-menu-button',\n ...rest\n}: MenuButtonProps): React.JSX.Element => {\n return (\n <Button\n className=\"Menu__Button\"\n data-testid={dataTestId}\n size={size}\n variant={variant}\n {...rest}\n {...(!text && hideCaret && { paddingInline: 0, paddingBlock: 0 })}\n onClick={(e) => {\n e.stopPropagation();\n onClick?.(e);\n }}\n >\n {text && (\n <Text\n className=\"Menu__ButtonText\"\n data-testid={`${dataTestId}-text`}\n fontWeight=\"semibold\"\n size={size}\n color={variant ? 'inherit' : textProps?.color || 'text.contrast'}\n truncated\n {...textProps}\n >\n {text}\n </Text>\n )}\n {!hideCaret && (\n <Flex className=\"Menu__ButtonCaret\" data-testid={`${dataTestId}-caret`}>\n <Icon name=\"chevronDown\" size={size === 'lg' ? 'sm' : 'xs'} />\n </Flex>\n )}\n </Button>\n );\n};\n\nexport const MenuButtonTooltip = ({ tooltipProps, isMenuOpen, ...rest }: MenuButtonProps): React.JSX.Element => {\n // Needed to manage tooltip open state separately to avoid sticky issues when we open and close menu list\n const [isTooltipOpen, setIsTooltipOpen] = useState(false);\n\n const onMouseEnter = useCallback((): void => {\n if (!isMenuOpen) {\n setIsTooltipOpen(true);\n }\n }, [isMenuOpen]);\n\n const onMouseLeave = useCallback((): void => {\n if (!isMenuOpen) {\n setIsTooltipOpen(false);\n }\n }, [isMenuOpen]);\n\n // Close tooltip when menu opens\n useEffect(() => {\n if (isMenuOpen) {\n setIsTooltipOpen(false);\n }\n }, [isMenuOpen]);\n\n return (\n <Tooltip label={rest.text || ''} open={isTooltipOpen && !isMenuOpen} {...tooltipProps}>\n <Box\n onClick={(e) => {\n e.preventDefault();\n e.stopPropagation();\n setIsTooltipOpen(false);\n }}\n onMouseEnter={onMouseEnter}\n onMouseLeave={onMouseLeave}\n >\n <MenuButton {...rest} />\n </Box>\n </Tooltip>\n );\n};\n","import { Flex } from '@chakra-ui/react/flex';\nimport { Menu as CMenu } from '@chakra-ui/react/menu';\nimport React, { useCallback, useState } from 'react';\nimport { Text } from 'components/Text/text.component';\nimport { MenuItemType } from './menuItem.types';\nimport { Menu, MenuProps } from 'components/Menu';\nimport { TypographyVariant } from 'shared/types/typography';\nimport { Checkbox } from 'components/Checkbox/checkbox.component';\nimport { Icon } from 'components/Icon/icon.component';\nimport { Tooltip } from 'components/Tooltip';\n\ninterface BaseMenuItemProps {\n /** Label to display in the menu item. */\n label?: React.ReactNode;\n /** Left element to display in the menu item. */\n leftElement?: React.ReactNode;\n /** Group label to display in the menu item. */\n groupLabel?: string;\n /** Callback function to be called when the menu item is selected. */\n onSelect?: (value: string) => void;\n /** If true, the text will be truncated. */\n shouldTruncateText?: boolean;\n /** Type of the menu item.\n * @default default\n */\n type?: MenuItemType;\n /** Value of the menu item. */\n value: string;\n /** Variant of the menu item. */\n variant?: TypographyVariant;\n /** Data test id for the menu item.\n * @default kibble-menu-item\n */\n 'data-testid'?: string;\n}\n\ninterface DefaultMenuItemProps extends Omit<CMenu.ItemProps, 'onSelect' | 'isDisabled'> {\n /** Type of the menu item.\n * @default default\n */\n type?: 'default';\n /** If true, the menu item will be selected. */\n selected?: boolean;\n /** Tooltip label to display in the menu item. */\n tooltipLabel?: string;\n}\n\ninterface CheckboxMenuItemProps extends Omit<CMenu.CheckboxItemProps, 'onSelect'> {\n /** Type of the menu item.\n * @default checkbox\n */\n type: 'checkbox';\n /** If true, the checkbox will be checked. */\n checked: boolean;\n /** Tooltip label to display in the menu item. */\n tooltipLabel?: string;\n}\n\ninterface SubmenuMenuItemProps extends Omit<MenuProps, 'children' | 'buttonProps'> {\n /** Type of the menu item.\n * @default submenu\n */\n type: 'submenu';\n /** Value text for keyboard navigation. */\n valueText?: string;\n}\n\nexport type MenuItemProps = BaseMenuItemProps & (DefaultMenuItemProps | CheckboxMenuItemProps | SubmenuMenuItemProps);\n\nexport const MenuItem = ({\n label,\n leftElement,\n onSelect,\n shouldTruncateText,\n type = 'default',\n variant,\n ['data-testid']: dataTestId = 'kibble-menu-item',\n ...rest\n}: MenuItemProps): React.JSX.Element => {\n const [isSubmenuOpen, setIsSubmenuOpen] = useState(false);\n\n const handleItemSelect = useCallback(() => {\n if (onSelect) {\n onSelect(rest.value);\n }\n }, [onSelect, rest.value]);\n\n if (type === 'submenu') {\n const {\n valueText,\n listProps,\n positionerProps,\n portalled = true,\n open,\n lazyMount = true,\n unmountOnExit = true,\n } = rest as Omit<SubmenuMenuItemProps, 'type'>;\n\n return (\n <Menu\n lazyMount={lazyMount}\n unmountOnExit={unmountOnExit}\n submenuTrigger={\n <CMenu.TriggerItem\n className=\"Menu__Item--Submenu\"\n data-testid={`${dataTestId}-submenu`}\n justifyContent=\"space-between\"\n aria-valuetext={valueText}\n position=\"relative\"\n onClick={(): void => {\n // If the submenu is controlled, call the onSelect callback passed to the menu\n if (open !== undefined && onSelect) {\n onSelect(rest.value);\n } else {\n // Otherwise, toggle the internalsubmenu open state\n setIsSubmenuOpen(!isSubmenuOpen);\n }\n }}\n >\n <MenuItemLabel\n label={label}\n leftElement={leftElement}\n shouldTruncateText={shouldTruncateText}\n variant={variant}\n />\n <Icon name=\"chevronRight\" size=\"sm\" />\n </CMenu.TriggerItem>\n }\n portalled={portalled}\n open={open !== undefined ? open : isSubmenuOpen}\n listProps={listProps}\n positionerProps={positionerProps}\n />\n );\n }\n\n if (type === 'checkbox') {\n const { checked, value, disabled, tooltipLabel, ...checkboxRest } = rest as CheckboxMenuItemProps;\n return (\n <CMenu.Item\n className=\"Menu__Item--Checkbox\"\n data-testid={`${dataTestId}-checkbox`}\n value={value}\n closeOnSelect={false}\n onSelect={disabled ? undefined : handleItemSelect}\n gap={3}\n disabled={disabled}\n {...checkboxRest}\n >\n <Checkbox checked={!!checked} disabled={disabled} size=\"md\" fullWidth={false} />\n <MenuItemLabel\n label={label}\n leftElement={leftElement}\n shouldTruncateText={shouldTruncateText}\n variant={variant}\n tooltipLabel={tooltipLabel}\n />\n </CMenu.Item>\n );\n }\n\n if (type === 'default') {\n const { selected = false, disabled, value, tooltipLabel, ...defaultRest } = rest as DefaultMenuItemProps;\n return (\n <CMenu.Item\n className=\"Menu__Item--Default\"\n data-testid={`${dataTestId}-default`}\n value={value}\n onSelect={disabled ? undefined : handleItemSelect}\n disabled={disabled}\n {...(selected && { bgColor: 'background.secondaryAlpha.hover' })}\n {...defaultRest}\n >\n <MenuItemLabel\n label={label}\n leftElement={leftElement}\n shouldTruncateText={shouldTruncateText}\n variant={selected ? 'info' : variant}\n tooltipLabel={tooltipLabel}\n />\n </CMenu.Item>\n );\n }\n\n return <></>;\n};\n\nconst MenuItemLabel = ({\n label,\n leftElement,\n shouldTruncateText,\n variant,\n tooltipLabel,\n}: {\n label?: React.ReactNode;\n leftElement?: React.ReactNode;\n shouldTruncateText?: boolean;\n variant?: TypographyVariant;\n tooltipLabel?: string;\n}): React.JSX.Element => {\n const content = (\n <Flex className=\"Menu__ItemLabel\" alignItems=\"center\" gap={3}>\n {leftElement}\n {typeof label === 'string' ? (\n <Text size=\"sm\" truncated={shouldTruncateText} variant={variant}>\n {label}\n </Text>\n ) : (\n label\n )}\n </Flex>\n );\n return tooltipLabel ? <Tooltip label={tooltipLabel}>{content}</Tooltip> : content;\n};\n","import { Box } from '@chakra-ui/react/box';\nimport { Flex } from '@chakra-ui/react/flex';\nimport { Button } from 'components/Button/button.component';\n\ninterface MenuToggleButtonsProps {\n /** Determines if there are selected items. */\n hasSelectedItems?: boolean;\n /** Name of the group. */\n groupName?: string;\n /** Callback function to toggle the selected items. */\n onToggle: ({ groupName, clear }: { clear: boolean; groupName?: string }) => void;\n /** Data test id for the menu toggle buttons.\n * @default kibble-menu-toggle-buttons\n */\n 'data-testid'?: string;\n}\n\nexport const MenuToggleButtons = ({\n groupName,\n hasSelectedItems = false,\n onToggle,\n ['data-testid']: dataTestId = 'kibble-menu-toggle-buttons',\n}: MenuToggleButtonsProps): React.JSX.Element => {\n const isGrouped = !!groupName;\n return (\n <Box className=\"Menu__ToggleButtons\" data-testid={dataTestId} {...(isGrouped && { textAlign: 'right', w: '50%' })}>\n {isGrouped ? (\n <>\n {hasSelectedItems ? (\n <ClearAllButton hasSelectedItems={hasSelectedItems} groupName={groupName} onToggle={onToggle} />\n ) : (\n <SelectAllButton groupName={groupName} onToggle={onToggle} />\n )}\n </>\n ) : (\n <Flex justifyContent=\"space-between\">\n <SelectAllButton groupName={groupName} onToggle={onToggle} />\n <ClearAllButton hasSelectedItems={hasSelectedItems} groupName={groupName} onToggle={onToggle} />\n </Flex>\n )}\n </Box>\n );\n};\n\nconst SelectAllButton = ({ groupName, onToggle }: MenuToggleButtonsProps): React.JSX.Element => {\n return (\n <Button variant=\"ghost\" size=\"xs\" onClick={(): void => onToggle({ groupName, clear: false })}>\n Select All\n </Button>\n );\n};\n\nconst ClearAllButton = ({ hasSelectedItems, groupName, onToggle }: MenuToggleButtonsProps): React.JSX.Element => {\n return (\n <Button\n variant=\"ghostNeutral\"\n iconName=\"arrowCircle\"\n size=\"xs\"\n disabled={!hasSelectedItems}\n onClick={(): void => onToggle({ groupName, clear: true })}\n >\n Clear All\n </Button>\n );\n};\n","import React, { useCallback, useEffect, useMemo, useState } from 'react';\nimport { Menu as CMenu } from '@chakra-ui/react/menu';\nimport { Portal } from '@chakra-ui/react/portal';\nimport { MenuButton, MenuButtonTooltip, MenuButtonProps } from './components/MenuButton/menuButton.component';\nimport { MenuItem, MenuItemProps } from './components/MenuItem/menuItem.component';\nimport { Box } from '@chakra-ui/react/box';\nimport { Text } from 'components/Text/text.component';\nimport { TextInput } from 'components/TextInput/textInput.component';\nimport { Flex } from '@chakra-ui/react/flex';\nimport { Spinner } from 'components/Spinner/spinner.component';\nimport { MenuToggleButtons } from './components/MenuToggleButtons/menuToggleButtons.component';\nimport { usePortalContentRef } from 'hooks/usePortalContentRef';\nimport { MenuListOnOpenChangeProps } from './menu.types';\nimport { MenuListProps } from './components/MenuList/menuList.types';\n\nexport interface MenuProps extends Omit<CMenu.RootProps, 'children' | 'onSelect' | 'onOpenChange'> {\n /** Props to customize the menu button trigger. */\n buttonProps?: MenuButtonProps;\n /** Props to customize the menu list. */\n listProps?: MenuListProps;\n /** Props to customize the positioner of the menu. */\n positionerProps?: CMenu.PositionerProps;\n /**\n * If true, the menu will be rendered in a Portal.\n * @default false\n */\n portalled?: boolean;\n /** Callback function to be called when the menu is opened or closed. */\n onOpenChange?: ({ open, allSelectedItems }: MenuListOnOpenChangeProps) => void;\n /** Data test id for the menu.\n * @default kibble-menu\n */\n 'data-testid'?: string;\n}\n\ninterface InternalMenuProps extends MenuProps {\n /** React element to be used as the trigger for the submenu.\n * @internal\n */\n submenuTrigger?: React.ReactNode;\n}\n\nexport const Menu = ({\n buttonProps,\n listProps,\n positionerProps,\n portalled = false,\n submenuTrigger,\n lazyMount = true,\n onOpenChange,\n ['data-testid']: dataTestId = 'kibble-menu',\n ...rest\n}: InternalMenuProps): React.JSX.Element => {\n const { contentRef } = usePortalContentRef();\n const {\n canSelectAll,\n canSelectGroups,\n emptyState = 'No results found',\n groupSortOrder,\n loading,\n maxH = '480px',\n menuItems = [],\n minW = '240px',\n onSearch,\n onSelect: onListSelect,\n onSelectAll,\n searchable,\n searchPlaceholder = 'Search...',\n shouldTruncateText,\n ...restListProps\n } = listProps || {};\n const [isOpen, setIsOpen] = useState(false);\n const [searchText, setSearchText] = useState<string>('');\n const [filteredMenuItems, setFilteredMenuItems] = useState<MenuItemProps[]>(menuItems);\n\n // Menu Items\n const groupedItems = useMemo(() => {\n const groups: Record<string, Record<string, MenuItemProps[]>> = {};\n\n filteredMenuItems?.forEach((item) => {\n const group = item.groupLabel || 'default';\n // Default and submenu items are grouped under \"default\"\n const type = item.type === 'checkbox' ? 'checkbox' : 'default';\n\n if (!groups[group]) {\n groups[group] = {};\n }\n\n if (!groups[group][type]) {\n groups[group][type] = [];\n }\n\n groups[group][type].push(item);\n });\n\n return groups;\n }, [filteredMenuItems]);\n\n const groups = useMemo(() => {\n const entries = Object.entries(groupedItems);\n\n if (!groupSortOrder || groupSortOrder.length === 0) {\n return entries;\n }\n\n // Sort groups based on groupSortOrder\n return entries.sort(([groupLabelA], [groupLabelB]) => {\n const indexA = groupSortOrder.indexOf(groupLabelA);\n const indexB = groupSortOrder.indexOf(groupLabelB);\n\n // If both groups are in the sort order, sort by their index\n if (indexA !== -1 && indexB !== -1) {\n return indexA - indexB;\n }\n\n // If only groupA is in the sort order, it comes first\n if (indexA !== -1) {\n return -1;\n }\n\n // If only groupB is in the sort order, it comes first\n if (indexB !== -1) {\n return 1;\n }\n\n // If neither group is in the sort order, maintain original order\n return 0;\n });\n }, [groupedItems, groupSortOrder]);\n\n // Checkbox State Management\n const checkboxItems = useMemo(() => menuItems?.filter((item) => item.type === 'checkbox') || [], [menuItems]);\n\n // Helper functions for checkbox state management\n const isChecked = useCallback(\n (value: string) => {\n return checkboxItems.some((item) => item.value === value && item.checked);\n },\n [checkboxItems],\n );\n\n // Helper function to get selected menu items based on selected values\n const selectedCheckboxItems = useMemo(() => {\n return checkboxItems.filter((item) => item.checked);\n }, [checkboxItems]);\n\n const handleToggleSelectAll = useCallback(\n ({ groupName, clear }: { groupName?: string; clear: boolean }) => {\n let newSelectedItems: MenuItemProps[];\n // Only allow checkbox items that are not disabled to be toggled\n const filteredCheckboxItems = filteredMenuItems.filter((item) => item.type === 'checkbox' && !item.disabled);\n\n // If the group name is provided, only toggle the items in the group\n if (groupName) {\n // Get the items in the group\n const groupedItems = filteredCheckboxItems.filter((item) => item.groupLabel === groupName);\n\n // If the clear flag is true, remove the items in the group\n newSelectedItems = clear\n ? selectedCheckboxItems.filter((cItem) => cItem.groupLabel !== groupName)\n : // Otherwise, add the items in the group to the selected items\n [...new Set([...selectedCheckboxItems, ...groupedItems])];\n } else {\n // If the group name is not provided, toggle all the items\n newSelectedItems = clear\n ? []\n : filteredCheckboxItems.map((item) => {\n return { ...item, checked: true };\n });\n }\n\n // Call the onSelectAll callback with the updated values\n onSelectAll?.({ allSelectedItems: newSelectedItems });\n },\n [onSelectAll, filteredMenuItems, selectedCheckboxItems],\n );\n\n const handleSelect = useCallback(\n (item: MenuItemProps) => {\n // If the item is a checkbox, update the selected checkbox values\n if (item.type === 'checkbox') {\n // Get the new list of selected checkbox items\n const allSelectedItems = isChecked(item.value)\n ? selectedCheckboxItems.filter((cItem) => cItem.value !== item.value)\n : [...selectedCheckboxItems, item];\n\n // If the item has it's own onSelect, call it with just the item value\n if (item.onSelect) {\n item.onSelect(item.value);\n return;\n }\n\n // Otherwise call the onSelect callback with the updated values\n onListSelect?.({ item, allSelectedItems });\n return;\n }\n\n // Otherwise this is a default item, so first check if the item has it's own onSelect callback\n if (item.onSelect) {\n item.onSelect(item.value);\n return;\n }\n\n // Otherwise call the onSelect callback with just the item itself\n onListSelect?.({ item, allSelectedItems: [item] });\n },\n [onListSelect, isChecked, selectedCheckboxItems],\n );\n\n // Search\n const filterOptions = useCallback((searchInput: string, itemsToFilter: MenuItemProps[]) => {\n if (searchInput === '' || !searchInput) {\n return itemsToFilter;\n }\n\n return itemsToFilter.filter((item): boolean => {\n const labelText = typeof item.label === 'string' ? item.label : item.valueText;\n\n return !!labelText?.toLowerCase().includes(searchInput.toLowerCase());\n });\n }, []);\n\n const handleSearch = useCallback(\n (e: React.ChangeEvent<HTMLInputElement>) => {\n const searchInput = e.target.value;\n setSearchText(searchInput);\n\n if (onSearch) {\n onSearch(e);\n }\n },\n [onSearch],\n );\n\n const clearSearch = useCallback(() => {\n setSearchText('');\n\n if (onSearch) {\n onSearch({\n target: { value: '' },\n } as React.ChangeEvent<HTMLInputElement>);\n }\n }, [onSearch]);\n\n // Cleanup\n const handleOpenChange = useCallback(\n (open: boolean) => {\n setIsOpen(open); // Track open state\n if (!open) {\n setSearchText('');\n setFilteredMenuItems(menuItems);\n }\n\n if (onOpenChange) {\n onOpenChange({ open, allSelectedItems: selectedCheckboxItems });\n }\n },\n [menuItems, onOpenChange, selectedCheckboxItems],\n );\n\n useEffect(() => {\n if (onSearch) {\n setFilteredMenuItems(menuItems);\n } else {\n setFilteredMenuItems(filterOptions(searchText, menuItems));\n }\n }, [searchText, onSearch, filterOptions, menuItems]);\n\n return (\n <CMenu.Root\n lazyMount={lazyMount}\n unmountOnExit={lazyMount}\n onOpenChange={(details) => {\n handleOpenChange(details.open);\n }}\n {...rest}\n >\n {!submenuTrigger ? (\n <CMenu.Trigger asChild className=\"Menu__Trigger\" data-testid={`${dataTestId}-trigger`}>\n {buttonProps?.showTooltip ? (\n <MenuButtonTooltip isMenuOpen={isOpen} {...buttonProps} />\n ) : (\n <MenuButton {...buttonProps} />\n )}\n </CMenu.Trigger>\n ) : (\n submenuTrigger\n )}\n <Portal disabled={!portalled} container={contentRef || undefined}>\n <CMenu.Positioner className=\"Menu\" data-testid={dataTestId} {...positionerProps}>\n <CMenu.Content\n className=\"Menu__Content\"\n data-testid={`${dataTestId}-content`}\n maxH={maxH}\n minW={minW}\n {...restListProps}\n {...(searchable && { pt: '0' })}\n onClick={(e) => {\n e.stopPropagation();\n restListProps?.onClick?.(e);\n }}\n >\n {searchable && (\n <Box\n className=\"Menu__SearchBarContainer\"\n data-testid={`${dataTestId}-search-bar-container`}\n px={3}\n py={2}\n position=\"sticky\"\n top={0}\n bg=\"background\"\n zIndex=\"docked\"\n >\n <TextInput\n className=\"Menu__SearchBar\"\n data-testid={`${dataTestId}-search-bar`}\n placeholder={searchPlaceholder}\n onChange={handleSearch}\n size=\"sm\"\n value={searchText}\n clearable\n onClear={clearSearch}\n // Necessary to prevent the Menu from intercepting the Space key press and opening the menu when the search input is focused\n onKeyDown={(e) => {\n if (e.code === 'Space') {\n e.stopPropagation();\n }\n }}\n />\n </Box>\n )}\n {canSelectAll && (\n <Box\n className=\"Menu__CheckboxGroupHeader\"\n data-testid={`${dataTestId}-checkbox-group-header`}\n px={3}\n mt={searchable ? 1 : 2}\n >\n {canSelectAll && !!checkboxItems.length && (\n <MenuToggleButtons\n onToggle={handleToggleSelectAll}\n hasSelectedItems={!!selectedCheckboxItems.length}\n />\n )}\n </Box>\n )}\n {loading && (\n <Flex justifyContent=\"center\" py={5}>\n <Spinner fullScreen />\n </Flex>\n )}\n <Box className=\"Menu__List\" data-testid={`${dataTestId}-list`}>\n {groups.length ? (\n <>\n {groups.map(([groupLabel, types]) => {\n const isDefaultGroup = groupLabel === 'default';\n const itemTypes = Object.keys(types);\n const MenuGroupContainer = !isDefaultGroup ? CMenu.ItemGroup : React.Fragment;\n const groupValues = types['checkbox']?.map((item) => item.value);\n const hasSelectedItems = groupValues?.some((value) =>\n selectedCheckboxItems.some((item) => item.value === value && item.checked),\n );\n return (\n <MenuGroupContainer key={groupLabel}>\n {!isDefaultGroup && (\n <CMenu.ItemGroupLabel>\n <Flex alignItems=\"center\" justifyContent=\"space-between\">\n {groupLabel}\n {canSelectGroups && itemTypes.includes('checkbox') && (\n <MenuToggleButtons\n groupName={groupLabel}\n onToggle={handleToggleSelectAll}\n hasSelectedItems={hasSelectedItems}\n />\n )}\n </Flex>\n </CMenu.ItemGroupLabel>\n )}\n {Object.entries(types).map(([type, items]) =>\n items.map((item, index) => {\n const { groupLabel, ...rest } = item;\n return (\n <MenuItem\n key={`menu-item-${groupLabel}-${type}-${index}`}\n shouldTruncateText={shouldTruncateText}\n {...(item.type === 'checkbox' && {\n checked: isChecked(item.value),\n })}\n onSelect={() => handleSelect(item)}\n {...(item.type === 'submenu' && {\n positionerProps,\n })}\n {...rest}\n data-testid={`${dataTestId}-item-${item.label}`}\n />\n );\n }),\n )}\n </MenuGroupContainer>\n );\n })}\n </>\n ) : (\n <>\n <Box p={3}>\n {typeof emptyState === 'string' ? (\n <Box textAlign=\"center\">\n <Text size=\"sm\" variant=\"subtle\" data-testid={`${dataTestId}-empty-state`}>\n {emptyState}\n </Text>\n </Box>\n ) : (\n emptyState\n )}\n </Box>\n </>\n )}\n </Box>\n </CMenu.Content>\n </CMenu.Positioner>\n </Portal>\n </CMenu.Root>\n );\n};\n"],"names":["MenuProvider","useMenuContext","createContext","MenuArrow","forwardRef","props","ref","menu","mergedProps","mergeProps","jsx","ark","MenuArrowTip","MenuItemProvider","useMenuItemContext","MenuItemPropsProvider","useMenuItemPropsContext","MenuCheckboxItem","partialOptionItemProps","localProps","createSplitProps","optionItemProps","optionItemState","MenuContent","presence","usePresenceContext","composeRefs","MenuContextTrigger","MenuIndicator","MenuItem","itemProps","itemState","useEffect","MenuItemGroupProvider","useMenuItemGroupContext","MenuItemGroup","optionalItemGroupProps","itemGroupProps","useId","MenuItemGroupLabel","itemGroup","MenuItemIndicator","MenuItemText","MenuPositioner","MenuRadioItem","partialItemProps","MenuRadioItemGroup","useEffectOnce","cb","savedCallback","useRef","effectGuard","useMenu","id","getRootNode","useEnvironmentContext","dir","useLocaleContext","machineProps","service","useMachine","menu.machine","menu.connect","normalizeProps","MenuMachineProvider","useMenuMachineContext","MenuTriggerItemProvider","useMenuTriggerItemContext","MenuRoot","presenceProps","menuProps","splitPresenceProps","useMenuProps","parentApi","parentMachine","api","usePresence","triggerItemContext","useCallback","PresenceProvider","MenuRootProvider","children","MenuSeparator","MenuTrigger","MenuTriggerItem","getTriggerItemProps","withRootProvider","withContext","createSlotRecipeContext","Menu.RootProvider","Menu.Root","Menu.Trigger","Menu.ContextTrigger","Menu.Positioner","Menu.Separator","Menu.Content","Menu.ArrowTip","Menu.Arrow","Menu.Indicator","Menu.ItemGroup","Menu.ItemGroupLabel","Menu.Item","Menu.TriggerItem","Menu.ItemText","Menu.ItemIndicator","CheckIcon","Menu.CheckboxItem","Menu.RadioItemGroup","Menu.RadioItem","MenuButton","hideCaret","size","text","textProps","variant","onClick","dataTestId","rest","jsxs","Button","e","Text","Flex","Icon","MenuButtonTooltip","tooltipProps","isMenuOpen","isTooltipOpen","setIsTooltipOpen","useState","onMouseEnter","onMouseLeave","Tooltip","Box","label","leftElement","onSelect","shouldTruncateText","type","isSubmenuOpen","setIsSubmenuOpen","handleItemSelect","valueText","listProps","positionerProps","portalled","open","lazyMount","unmountOnExit","Menu","CMenu.TriggerItem","MenuItemLabel","checked","value","disabled","tooltipLabel","checkboxRest","CMenu.Item","Checkbox","selected","defaultRest","Fragment","content","MenuToggleButtons","groupName","hasSelectedItems","onToggle","isGrouped","ClearAllButton","SelectAllButton","buttonProps","submenuTrigger","onOpenChange","contentRef","usePortalContentRef","canSelectAll","canSelectGroups","emptyState","groupSortOrder","loading","maxH","menuItems","minW","onSearch","onListSelect","onSelectAll","searchable","searchPlaceholder","restListProps","isOpen","setIsOpen","searchText","setSearchText","filteredMenuItems","setFilteredMenuItems","groupedItems","useMemo","groups","item","group","entries","groupLabelA","groupLabelB","indexA","indexB","checkboxItems","isChecked","selectedCheckboxItems","handleToggleSelectAll","clear","newSelectedItems","filteredCheckboxItems","cItem","handleSelect","allSelectedItems","filterOptions","searchInput","itemsToFilter","handleSearch","clearSearch","handleOpenChange","CMenu.Root","details","CMenu.Trigger","Portal","CMenu.Positioner","CMenu.Content","TextInput","Spinner","groupLabel","types","isDefaultGroup","itemTypes","MenuGroupContainer","React","CMenu.ItemGroup","CMenu.ItemGroupLabel","items","index"],"mappings":"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","x_google_ignoreList":[0,1,2,3,4,5,6,7,8,9,10,11,12,13,14,15,16,17,18,19,20,21,22,23,24,25,26,27]}
1
+ {"version":3,"file":"menu.component-DwnU1N2a.js","sources":["../../node_modules/@ark-ui/react/dist/components/menu/use-menu-context.js","../../node_modules/@ark-ui/react/dist/components/menu/menu-arrow.js","../../node_modules/@ark-ui/react/dist/components/menu/menu-arrow-tip.js","../../node_modules/@ark-ui/react/dist/components/menu/use-menu-item-context.js","../../node_modules/@ark-ui/react/dist/components/menu/use-menu-option-item-props-context.js","../../node_modules/@ark-ui/react/dist/components/menu/menu-checkbox-item.js","../../node_modules/@ark-ui/react/dist/components/menu/menu-content.js","../../node_modules/@ark-ui/react/dist/components/menu/menu-context-trigger.js","../../node_modules/@ark-ui/react/dist/components/menu/menu-indicator.js","../../node_modules/@ark-ui/react/dist/components/menu/menu-item.js","../../node_modules/@ark-ui/react/dist/components/menu/use-menu-item-group-context.js","../../node_modules/@ark-ui/react/dist/components/menu/menu-item-group.js","../../node_modules/@ark-ui/react/dist/components/menu/menu-item-group-label.js","../../node_modules/@ark-ui/react/dist/components/menu/menu-item-indicator.js","../../node_modules/@ark-ui/react/dist/components/menu/menu-item-text.js","../../node_modules/@ark-ui/react/dist/components/menu/menu-positioner.js","../../node_modules/@ark-ui/react/dist/components/menu/menu-radio-item.js","../../node_modules/@ark-ui/react/dist/components/menu/menu-radio-item-group.js","../../node_modules/@ark-ui/react/dist/utils/use-effect-once.js","../../node_modules/@ark-ui/react/dist/components/menu/use-menu.js","../../node_modules/@ark-ui/react/dist/components/menu/use-menu-machine-context.js","../../node_modules/@ark-ui/react/dist/components/menu/use-menu-trigger-item-context.js","../../node_modules/@ark-ui/react/dist/components/menu/menu-root.js","../../node_modules/@ark-ui/react/dist/components/menu/menu-root-provider.js","../../node_modules/@ark-ui/react/dist/components/menu/menu-separator.js","../../node_modules/@ark-ui/react/dist/components/menu/menu-trigger.js","../../node_modules/@ark-ui/react/dist/components/menu/menu-trigger-item.js","../../node_modules/@chakra-ui/react/dist/esm/components/menu/menu.js","../../src/components/Menu/components/MenuButton/menuButton.component.tsx","../../src/components/Menu/components/MenuItem/menuItem.component.tsx","../../src/components/Menu/components/MenuToggleButtons/menuToggleButtons.component.tsx","../../src/components/Menu/menu.component.tsx"],"sourcesContent":["'use client';\nimport { createContext } from '../../utils/create-context.js';\n\nconst [MenuProvider, useMenuContext] = createContext({\n name: \"MenuContext\",\n hookName: \"useMenuContext\",\n providerName: \"<MenuProvider />\",\n strict: false\n});\n\nexport { MenuProvider, useMenuContext };\n","'use client';\nimport { jsx } from 'react/jsx-runtime';\nimport { mergeProps } from '@zag-js/react';\nimport { forwardRef } from 'react';\nimport { ark } from '../factory.js';\nimport { useMenuContext } from './use-menu-context.js';\n\nconst MenuArrow = forwardRef((props, ref) => {\n const menu = useMenuContext();\n const mergedProps = mergeProps(menu.getArrowProps(), props);\n return /* @__PURE__ */ jsx(ark.div, { ...mergedProps, ref });\n});\nMenuArrow.displayName = \"MenuArrow\";\n\nexport { MenuArrow };\n","'use client';\nimport { jsx } from 'react/jsx-runtime';\nimport { mergeProps } from '@zag-js/react';\nimport { forwardRef } from 'react';\nimport { ark } from '../factory.js';\nimport { useMenuContext } from './use-menu-context.js';\n\nconst MenuArrowTip = forwardRef((props, ref) => {\n const menu = useMenuContext();\n const mergedProps = mergeProps(menu.getArrowTipProps(), props);\n return /* @__PURE__ */ jsx(ark.div, { ...mergedProps, ref });\n});\nMenuArrowTip.displayName = \"MenuArrowTip\";\n\nexport { MenuArrowTip };\n","'use client';\nimport { createContext } from '../../utils/create-context.js';\n\nconst [MenuItemProvider, useMenuItemContext] = createContext({\n name: \"MenuItemContext\",\n hookName: \"useMenuItemContext\",\n providerName: \"<MenuItemProvider />\"\n});\n\nexport { MenuItemProvider, useMenuItemContext };\n","'use client';\nimport { createContext } from '../../utils/create-context.js';\n\nconst [MenuItemPropsProvider, useMenuItemPropsContext] = createContext({\n name: \"MenuItemPropsContext\",\n hookName: \"useMenuItemPropsContext\",\n providerName: \"<MenuItemPropsProvider />\"\n});\n\nexport { MenuItemPropsProvider, useMenuItemPropsContext };\n","'use client';\nimport { jsx } from 'react/jsx-runtime';\nimport { mergeProps } from '@zag-js/react';\nimport { forwardRef } from 'react';\nimport { createSplitProps } from '../../utils/create-split-props.js';\nimport { ark } from '../factory.js';\nimport { useMenuContext } from './use-menu-context.js';\nimport { MenuItemProvider } from './use-menu-item-context.js';\nimport { MenuItemPropsProvider } from './use-menu-option-item-props-context.js';\n\nconst MenuCheckboxItem = forwardRef((props, ref) => {\n const [partialOptionItemProps, localProps] = createSplitProps()(props, [\n \"checked\",\n \"closeOnSelect\",\n \"disabled\",\n \"onCheckedChange\",\n \"value\",\n \"valueText\"\n ]);\n const optionItemProps = {\n ...partialOptionItemProps,\n type: \"checkbox\"\n };\n const menu = useMenuContext();\n const mergedProps = mergeProps(menu.getOptionItemProps(optionItemProps), localProps);\n const optionItemState = menu.getOptionItemState(optionItemProps);\n return /* @__PURE__ */ jsx(MenuItemPropsProvider, { value: optionItemProps, children: /* @__PURE__ */ jsx(MenuItemProvider, { value: optionItemState, children: /* @__PURE__ */ jsx(ark.div, { ...mergedProps, ref }) }) });\n});\nMenuCheckboxItem.displayName = \"MenuCheckboxItem\";\n\nexport { MenuCheckboxItem };\n","'use client';\nimport { jsx } from 'react/jsx-runtime';\nimport { mergeProps } from '@zag-js/react';\nimport { forwardRef } from 'react';\nimport { composeRefs } from '../../utils/compose-refs.js';\nimport { ark } from '../factory.js';\nimport { usePresenceContext } from '../presence/use-presence-context.js';\nimport { useMenuContext } from './use-menu-context.js';\n\nconst MenuContent = forwardRef((props, ref) => {\n const menu = useMenuContext();\n const presence = usePresenceContext();\n const mergedProps = mergeProps(menu.getContentProps(), presence.getPresenceProps(), props);\n if (presence.unmounted) {\n return null;\n }\n return /* @__PURE__ */ jsx(ark.div, { ...mergedProps, ref: composeRefs(presence.ref, ref) });\n});\nMenuContent.displayName = \"MenuContent\";\n\nexport { MenuContent };\n","'use client';\nimport { jsx } from 'react/jsx-runtime';\nimport { mergeProps } from '@zag-js/react';\nimport { forwardRef } from 'react';\nimport { ark } from '../factory.js';\nimport { useMenuContext } from './use-menu-context.js';\n\nconst MenuContextTrigger = forwardRef((props, ref) => {\n const menu = useMenuContext();\n const mergedProps = mergeProps(menu.getContextTriggerProps(), props);\n return /* @__PURE__ */ jsx(ark.button, { ...mergedProps, ref });\n});\nMenuContextTrigger.displayName = \"MenuContextTrigger\";\n\nexport { MenuContextTrigger };\n","'use client';\nimport { jsx } from 'react/jsx-runtime';\nimport { mergeProps } from '@zag-js/react';\nimport { forwardRef } from 'react';\nimport { ark } from '../factory.js';\nimport { useMenuContext } from './use-menu-context.js';\n\nconst MenuIndicator = forwardRef((props, ref) => {\n const menu = useMenuContext();\n const mergedProps = mergeProps(menu.getIndicatorProps(), props);\n return /* @__PURE__ */ jsx(ark.div, { ...mergedProps, ref });\n});\nMenuIndicator.displayName = \"MenuIndicator\";\n\nexport { MenuIndicator };\n","'use client';\nimport { jsx } from 'react/jsx-runtime';\nimport { mergeProps } from '@zag-js/react';\nimport { forwardRef, useEffect } from 'react';\nimport { createSplitProps } from '../../utils/create-split-props.js';\nimport { ark } from '../factory.js';\nimport { useMenuContext } from './use-menu-context.js';\nimport { MenuItemProvider } from './use-menu-item-context.js';\nimport { MenuItemPropsProvider } from './use-menu-option-item-props-context.js';\n\nconst MenuItem = forwardRef((props, ref) => {\n const [itemProps, localProps] = createSplitProps()(props, [\n \"closeOnSelect\",\n \"disabled\",\n \"value\",\n \"valueText\",\n \"onSelect\"\n ]);\n const menu = useMenuContext();\n const mergedProps = mergeProps(menu.getItemProps(itemProps), localProps);\n const itemState = menu.getItemState(itemProps);\n useEffect(() => {\n return menu.addItemListener({ id: itemState.id, onSelect: itemProps.onSelect });\n }, [itemState.id, itemProps.onSelect]);\n return /* @__PURE__ */ jsx(MenuItemPropsProvider, { value: itemProps, children: /* @__PURE__ */ jsx(MenuItemProvider, { value: itemState, children: /* @__PURE__ */ jsx(ark.div, { ...mergedProps, ref }) }) });\n});\nMenuItem.displayName = \"MenuItem\";\n\nexport { MenuItem };\n","'use client';\nimport { createContext } from '../../utils/create-context.js';\n\nconst [MenuItemGroupProvider, useMenuItemGroupContext] = createContext({\n name: \"MenuItemGroupContext\",\n hookName: \"useMenuItemGroupContext\",\n providerName: \"<MenuItemGroupProvider />\"\n});\n\nexport { MenuItemGroupProvider, useMenuItemGroupContext };\n","'use client';\nimport { jsx } from 'react/jsx-runtime';\nimport { mergeProps } from '@zag-js/react';\nimport { forwardRef, useId } from 'react';\nimport { createSplitProps } from '../../utils/create-split-props.js';\nimport { ark } from '../factory.js';\nimport { useMenuContext } from './use-menu-context.js';\nimport { MenuItemGroupProvider } from './use-menu-item-group-context.js';\n\nconst MenuItemGroup = forwardRef((props, ref) => {\n const [optionalItemGroupProps, localProps] = createSplitProps()(props, [\"id\"]);\n const menu = useMenuContext();\n const id = useId();\n const itemGroupProps = { id, ...optionalItemGroupProps };\n const mergedProps = mergeProps(menu.getItemGroupProps(itemGroupProps), localProps);\n return /* @__PURE__ */ jsx(MenuItemGroupProvider, { value: itemGroupProps, children: /* @__PURE__ */ jsx(ark.div, { ...mergedProps, ref }) });\n});\nMenuItemGroup.displayName = \"MenuItemGroup\";\n\nexport { MenuItemGroup };\n","'use client';\nimport { jsx } from 'react/jsx-runtime';\nimport { mergeProps } from '@zag-js/react';\nimport { forwardRef } from 'react';\nimport { ark } from '../factory.js';\nimport { useMenuContext } from './use-menu-context.js';\nimport { useMenuItemGroupContext } from './use-menu-item-group-context.js';\n\nconst MenuItemGroupLabel = forwardRef((props, ref) => {\n const menu = useMenuContext();\n const itemGroup = useMenuItemGroupContext();\n const mergedProps = mergeProps(menu.getItemGroupLabelProps({ htmlFor: itemGroup.id }), props);\n return /* @__PURE__ */ jsx(ark.div, { ...mergedProps, ref });\n});\nMenuItemGroupLabel.displayName = \"MenuItemGroupLabel\";\n\nexport { MenuItemGroupLabel };\n","'use client';\nimport { jsx } from 'react/jsx-runtime';\nimport { mergeProps } from '@zag-js/react';\nimport { forwardRef } from 'react';\nimport { ark } from '../factory.js';\nimport { useMenuContext } from './use-menu-context.js';\nimport { useMenuItemPropsContext } from './use-menu-option-item-props-context.js';\n\nconst MenuItemIndicator = forwardRef((props, ref) => {\n const menu = useMenuContext();\n const itemProps = useMenuItemPropsContext();\n const mergedProps = mergeProps(menu.getItemIndicatorProps(itemProps), props);\n return /* @__PURE__ */ jsx(ark.div, { ...mergedProps, ref });\n});\nMenuItemIndicator.displayName = \"MenuItemIndicator\";\n\nexport { MenuItemIndicator };\n","'use client';\nimport { jsx } from 'react/jsx-runtime';\nimport { mergeProps } from '@zag-js/react';\nimport { forwardRef } from 'react';\nimport { ark } from '../factory.js';\nimport { useMenuContext } from './use-menu-context.js';\nimport { useMenuItemPropsContext } from './use-menu-option-item-props-context.js';\n\nconst MenuItemText = forwardRef((props, ref) => {\n const menu = useMenuContext();\n const itemProps = useMenuItemPropsContext();\n const mergedProps = mergeProps(menu.getItemTextProps(itemProps), props);\n return /* @__PURE__ */ jsx(ark.div, { ...mergedProps, ref });\n});\nMenuItemText.displayName = \"MenuItemText\";\n\nexport { MenuItemText };\n","'use client';\nimport { jsx } from 'react/jsx-runtime';\nimport { mergeProps } from '@zag-js/react';\nimport { forwardRef } from 'react';\nimport { ark } from '../factory.js';\nimport { usePresenceContext } from '../presence/use-presence-context.js';\nimport { useMenuContext } from './use-menu-context.js';\n\nconst MenuPositioner = forwardRef((props, ref) => {\n const menu = useMenuContext();\n const mergedProps = mergeProps(menu.getPositionerProps(), props);\n const presence = usePresenceContext();\n if (presence.unmounted) {\n return null;\n }\n return /* @__PURE__ */ jsx(ark.div, { ...mergedProps, ref });\n});\nMenuPositioner.displayName = \"MenuPositioner\";\n\nexport { MenuPositioner };\n","'use client';\nimport { jsx } from 'react/jsx-runtime';\nimport { mergeProps } from '@zag-js/react';\nimport { forwardRef } from 'react';\nimport { createSplitProps } from '../../utils/create-split-props.js';\nimport { ark } from '../factory.js';\nimport { useMenuContext } from './use-menu-context.js';\nimport { MenuItemProvider } from './use-menu-item-context.js';\nimport { useMenuItemGroupContext } from './use-menu-item-group-context.js';\nimport { MenuItemPropsProvider } from './use-menu-option-item-props-context.js';\n\nconst MenuRadioItem = forwardRef((props, ref) => {\n const [partialItemProps, localProps] = createSplitProps()(props, [\n \"closeOnSelect\",\n \"disabled\",\n \"value\",\n \"valueText\"\n ]);\n const menu = useMenuContext();\n const itemGroup = useMenuItemGroupContext();\n const optionItemProps = {\n ...partialItemProps,\n checked: itemGroup.value === partialItemProps.value,\n type: \"radio\",\n onCheckedChange: () => itemGroup.onValueChange?.({ value: partialItemProps.value })\n };\n const mergedProps = mergeProps(menu.getOptionItemProps(optionItemProps), localProps);\n const optionItemState = menu.getOptionItemState(optionItemProps);\n return /* @__PURE__ */ jsx(MenuItemPropsProvider, { value: optionItemProps, children: /* @__PURE__ */ jsx(MenuItemProvider, { value: optionItemState, children: /* @__PURE__ */ jsx(ark.div, { ...mergedProps, ref }) }) });\n});\nMenuRadioItem.displayName = \"MenuRadioItem\";\n\nexport { MenuRadioItem };\n","'use client';\nimport { jsx } from 'react/jsx-runtime';\nimport { mergeProps } from '@zag-js/react';\nimport { forwardRef, useId } from 'react';\nimport { createSplitProps } from '../../utils/create-split-props.js';\nimport { ark } from '../factory.js';\nimport { useMenuContext } from './use-menu-context.js';\nimport { MenuItemGroupProvider } from './use-menu-item-group-context.js';\n\nconst MenuRadioItemGroup = forwardRef((props, ref) => {\n const [optionalItemGroupProps, localProps] = createSplitProps()(props, [\n \"id\",\n \"onValueChange\",\n \"value\"\n ]);\n const menu = useMenuContext();\n const id = useId();\n const itemGroupProps = { id, ...optionalItemGroupProps };\n const mergedProps = mergeProps(menu.getItemGroupProps({ id: itemGroupProps.id }), localProps);\n return /* @__PURE__ */ jsx(MenuItemGroupProvider, { value: itemGroupProps, children: /* @__PURE__ */ jsx(ark.div, { ...mergedProps, ref }) });\n});\nMenuRadioItemGroup.displayName = \"MenuRadioItemGroup\";\n\nexport { MenuRadioItemGroup };\n","'use client';\nimport { useRef, useEffect } from 'react';\n\nconst useEffectOnce = (cb) => {\n const savedCallback = useRef(cb);\n const effectGuard = useRef(false);\n useEffect(() => {\n savedCallback.current = cb;\n });\n useEffect(() => {\n if (effectGuard.current !== true) {\n effectGuard.current = true;\n savedCallback.current();\n }\n }, []);\n};\n\nexport { useEffectOnce };\n","'use client';\nimport * as menu from '@zag-js/menu';\nimport { useMachine, normalizeProps } from '@zag-js/react';\nimport { useId } from 'react';\nimport { useEnvironmentContext } from '../../providers/environment/use-environment-context.js';\nimport { useLocaleContext } from '../../providers/locale/use-locale-context.js';\n\nconst useMenu = (props) => {\n const id = useId();\n const { getRootNode } = useEnvironmentContext();\n const { dir } = useLocaleContext();\n const machineProps = {\n id,\n dir,\n getRootNode,\n ...props\n };\n const service = useMachine(menu.machine, machineProps);\n const api = menu.connect(service, normalizeProps);\n return { api, service };\n};\n\nexport { useMenu };\n","'use client';\nimport { createContext } from '../../utils/create-context.js';\n\nconst [MenuMachineProvider, useMenuMachineContext] = createContext({\n name: \"MenuMachineContext\",\n hookName: \"useMenuMachineContext\",\n providerName: \"<MenuMachineProvider />\",\n strict: false\n});\n\nexport { MenuMachineProvider, useMenuMachineContext };\n","'use client';\nimport { createContext } from '../../utils/create-context.js';\n\nconst [MenuTriggerItemProvider, useMenuTriggerItemContext] = createContext({\n name: \"MenuMachineContext\",\n hookName: \"useMenuMachineContext\",\n providerName: \"<MenuMachineProvider />\",\n strict: false\n});\n\nexport { MenuTriggerItemProvider, useMenuTriggerItemContext };\n","'use client';\nimport { jsx } from 'react/jsx-runtime';\nimport { mergeProps } from '@zag-js/react';\nimport { useCallback } from 'react';\nimport { createSplitProps } from '../../utils/create-split-props.js';\nimport { useEffectOnce } from '../../utils/use-effect-once.js';\nimport { splitPresenceProps } from '../presence/split-presence-props.js';\nimport { usePresence } from '../presence/use-presence.js';\nimport { PresenceProvider } from '../presence/use-presence-context.js';\nimport { useMenu } from './use-menu.js';\nimport { useMenuContext, MenuProvider } from './use-menu-context.js';\nimport { useMenuMachineContext, MenuMachineProvider } from './use-menu-machine-context.js';\nimport { MenuTriggerItemProvider } from './use-menu-trigger-item-context.js';\n\nconst MenuRoot = (props) => {\n const [presenceProps, menuProps] = splitPresenceProps(props);\n const [useMenuProps, localProps] = createSplitProps()(menuProps, [\n \"anchorPoint\",\n \"aria-label\",\n \"closeOnSelect\",\n \"composite\",\n \"defaultHighlightedValue\",\n \"defaultOpen\",\n \"highlightedValue\",\n \"id\",\n \"ids\",\n \"loopFocus\",\n \"navigate\",\n \"onEscapeKeyDown\",\n \"onFocusOutside\",\n \"onHighlightChange\",\n \"onInteractOutside\",\n \"onOpenChange\",\n \"onPointerDownOutside\",\n \"onSelect\",\n \"open\",\n \"positioning\",\n \"typeahead\"\n ]);\n const parentApi = useMenuContext();\n const parentMachine = useMenuMachineContext();\n const { api, service } = useMenu(useMenuProps);\n const presence = usePresence(mergeProps({ present: api.open }, presenceProps));\n useEffectOnce(() => {\n if (!parentMachine) return;\n if (!parentApi) return;\n parentApi.setChild(service);\n api.setParent(parentMachine);\n });\n const triggerItemContext = useCallback(() => parentApi?.getTriggerItemProps(api), [api, parentApi]);\n return /* @__PURE__ */ jsx(MenuTriggerItemProvider, { value: triggerItemContext, children: /* @__PURE__ */ jsx(MenuMachineProvider, { value: service, children: /* @__PURE__ */ jsx(MenuProvider, { value: api, children: /* @__PURE__ */ jsx(PresenceProvider, { value: presence, ...localProps }) }) }) });\n};\n\nexport { MenuRoot };\n","'use client';\nimport { jsx } from 'react/jsx-runtime';\nimport { mergeProps } from '@zag-js/react';\nimport { useCallback } from 'react';\nimport { useEffectOnce } from '../../utils/use-effect-once.js';\nimport { splitPresenceProps } from '../presence/split-presence-props.js';\nimport { usePresence } from '../presence/use-presence.js';\nimport { PresenceProvider } from '../presence/use-presence-context.js';\nimport { useMenuContext, MenuProvider } from './use-menu-context.js';\nimport { useMenuMachineContext, MenuMachineProvider } from './use-menu-machine-context.js';\nimport { MenuTriggerItemProvider } from './use-menu-trigger-item-context.js';\n\nconst MenuRootProvider = (props) => {\n const parentApi = useMenuContext();\n const parentMachine = useMenuMachineContext();\n const [presenceProps, { value: menu, children }] = splitPresenceProps(props);\n const { api, service } = menu;\n const presence = usePresence(mergeProps({ present: api.open }, presenceProps));\n useEffectOnce(() => {\n if (!parentMachine) return;\n if (!parentApi) return;\n parentApi.setChild(service);\n api.setParent(parentMachine);\n });\n const triggerItemContext = useCallback(() => parentApi?.getTriggerItemProps(api), [api, parentApi]);\n return /* @__PURE__ */ jsx(MenuTriggerItemProvider, { value: triggerItemContext, children: /* @__PURE__ */ jsx(MenuMachineProvider, { value: service, children: /* @__PURE__ */ jsx(MenuProvider, { value: api, children: /* @__PURE__ */ jsx(PresenceProvider, { value: presence, children }) }) }) });\n};\n\nexport { MenuRootProvider };\n","'use client';\nimport { jsx } from 'react/jsx-runtime';\nimport { mergeProps } from '@zag-js/react';\nimport { forwardRef } from 'react';\nimport { ark } from '../factory.js';\nimport { useMenuContext } from './use-menu-context.js';\n\nconst MenuSeparator = forwardRef((props, ref) => {\n const menu = useMenuContext();\n const mergedProps = mergeProps(menu.getSeparatorProps(), props);\n return /* @__PURE__ */ jsx(ark.hr, { ...mergedProps, ref });\n});\nMenuSeparator.displayName = \"MenuSeparator\";\n\nexport { MenuSeparator };\n","'use client';\nimport { jsx } from 'react/jsx-runtime';\nimport { mergeProps } from '@zag-js/react';\nimport { forwardRef } from 'react';\nimport { ark } from '../factory.js';\nimport { usePresenceContext } from '../presence/use-presence-context.js';\nimport { useMenuContext } from './use-menu-context.js';\n\nconst MenuTrigger = forwardRef((props, ref) => {\n const menu = useMenuContext();\n const presence = usePresenceContext();\n const mergedProps = mergeProps(\n {\n ...menu.getTriggerProps(),\n \"aria-controls\": presence.unmounted ? void 0 : menu.getTriggerProps()[\"aria-controls\"]\n },\n props\n );\n return /* @__PURE__ */ jsx(ark.button, { ...mergedProps, ref });\n});\nMenuTrigger.displayName = \"MenuTrigger\";\n\nexport { MenuTrigger };\n","'use client';\nimport { jsx } from 'react/jsx-runtime';\nimport { mergeProps } from '@zag-js/react';\nimport { forwardRef } from 'react';\nimport { ark } from '../factory.js';\nimport { useMenuTriggerItemContext } from './use-menu-trigger-item-context.js';\n\nconst MenuTriggerItem = forwardRef((props, ref) => {\n const getTriggerItemProps = useMenuTriggerItemContext();\n const mergedProps = mergeProps(getTriggerItemProps?.() ?? {}, props);\n return /* @__PURE__ */ jsx(ark.div, { ...mergedProps, ref });\n});\nMenuTriggerItem.displayName = \"MenuTriggerItem\";\n\nexport { MenuTriggerItem };\n","\"use strict\";\n\"use client\";\nimport { jsx } from 'react/jsx-runtime';\nimport { Menu } from '@ark-ui/react/menu';\nimport { createSlotRecipeContext } from '../../styled-system/create-slot-recipe-context.js';\nimport { CheckIcon } from '../icons.js';\n\nconst {\n withRootProvider,\n withContext,\n useStyles: useMenuStyles,\n PropsProvider\n} = createSlotRecipeContext({ key: \"menu\" });\nconst MenuRootProvider = withRootProvider(\n Menu.RootProvider\n);\nconst MenuRoot = withRootProvider(Menu.Root, {\n defaultProps: { lazyMount: true, unmountOnExit: true }\n});\nconst MenuPropsProvider = PropsProvider;\nconst MenuTrigger = withContext(\n Menu.Trigger,\n \"trigger\",\n { forwardAsChild: true }\n);\nconst MenuContextTrigger = withContext(Menu.ContextTrigger, \"contextTrigger\", { forwardAsChild: true });\nconst MenuPositioner = withContext(\n Menu.Positioner,\n \"positioner\",\n { forwardAsChild: true }\n);\nconst MenuSeparator = withContext(\n Menu.Separator,\n \"separator\",\n { forwardAsChild: true }\n);\nconst MenuContent = withContext(\n Menu.Content,\n \"content\",\n { forwardAsChild: true }\n);\nconst MenuArrowTip = withContext(\n Menu.ArrowTip,\n \"arrowTip\",\n { forwardAsChild: true }\n);\nconst MenuArrow = withContext(\n Menu.Arrow,\n \"arrow\",\n { forwardAsChild: true, defaultProps: { children: /* @__PURE__ */ jsx(MenuArrowTip, {}) } }\n);\nconst MenuIndicator = withContext(\n Menu.Indicator,\n \"indicator\",\n { forwardAsChild: true }\n);\nconst MenuItemGroup = withContext(\n Menu.ItemGroup,\n \"itemGroup\",\n { forwardAsChild: true }\n);\nconst MenuItemGroupLabel = withContext(Menu.ItemGroupLabel, \"itemGroupLabel\", { forwardAsChild: true });\nconst MenuItem = withContext(\n Menu.Item,\n \"item\",\n { forwardAsChild: true }\n);\nconst MenuTriggerItem = withContext(Menu.TriggerItem, \"item\", { forwardAsChild: true });\nconst MenuItemText = withContext(\n Menu.ItemText,\n \"itemText\",\n { forwardAsChild: true }\n);\nconst MenuItemCommand = withContext(\n \"kbd\",\n \"itemCommand\"\n);\nconst MenuItemIndicator = withContext(Menu.ItemIndicator, \"itemIndicator\", {\n forwardAsChild: true,\n defaultProps: { children: /* @__PURE__ */ jsx(CheckIcon, { boxSize: \"4\" }) }\n});\nconst MenuCheckboxItem = withContext(Menu.CheckboxItem, \"item\", { forwardAsChild: true });\nconst MenuRadioItemGroup = withContext(Menu.RadioItemGroup, \"itemGroup\", { forwardAsChild: true });\nconst MenuRadioItem = withContext(\n Menu.RadioItem,\n \"item\",\n { forwardAsChild: true }\n);\nconst MenuContext = Menu.Context;\nconst MenuItemContext = Menu.ItemContext;\n\nexport { MenuArrow, MenuArrowTip, MenuCheckboxItem, MenuContent, MenuContext, MenuContextTrigger, MenuIndicator, MenuItem, MenuItemCommand, MenuItemContext, MenuItemGroup, MenuItemGroupLabel, MenuItemIndicator, MenuItemText, MenuPositioner, MenuPropsProvider, MenuRadioItem, MenuRadioItemGroup, MenuRoot, MenuRootProvider, MenuSeparator, MenuTrigger, MenuTriggerItem, useMenuStyles };\n","import { Flex } from '@chakra-ui/react/flex';\nimport { Box } from '@chakra-ui/react/box';\nimport { Button, ButtonProps } from 'components/Button/button.component';\nimport { Icon } from 'components/Icon/icon.component';\nimport { Text, TextProps } from 'components/Text/text.component';\nimport { Tooltip, TooltipProps } from 'components/Tooltip/tooltip.component';\nimport React, { useCallback, useEffect, useState } from 'react';\n\nexport interface MenuButtonProps extends Omit<ButtonProps, 'children'> {\n /** If true, the caret will be hidden.\n * @default false\n */\n hideCaret?: boolean;\n /** Text to display in the menu button. */\n text?: string;\n /** Props to customize the text. */\n textProps?: TextProps;\n /** Props to customize the tooltip. */\n tooltipProps?: Omit<TooltipProps, 'children' | 'label' | 'isOpen' | 'onClose'>;\n /** If true, the tooltip will be shown. */\n showTooltip?: boolean;\n /** Determines if the menu is open. */\n isMenuOpen?: boolean;\n}\n\nexport const MenuButton = ({\n hideCaret = false,\n size = 'md',\n text,\n textProps,\n variant,\n onClick,\n ['data-testid']: dataTestId = 'kibble-menu-button',\n ...rest\n}: MenuButtonProps): React.JSX.Element => {\n return (\n <Button\n className=\"Menu__Button\"\n data-testid={dataTestId}\n size={size}\n variant={variant}\n {...rest}\n {...(!text && hideCaret && { paddingInline: 0, paddingBlock: 0 })}\n onClick={(e) => {\n e.stopPropagation();\n onClick?.(e);\n }}\n >\n {text && (\n <Text\n className=\"Menu__ButtonText\"\n data-testid={`${dataTestId}-text`}\n fontWeight=\"semibold\"\n size={size}\n color={variant ? 'inherit' : textProps?.color || 'text.contrast'}\n truncated\n {...textProps}\n >\n {text}\n </Text>\n )}\n {!hideCaret && (\n <Flex className=\"Menu__ButtonCaret\" data-testid={`${dataTestId}-caret`}>\n <Icon name=\"chevronDown\" size={size === 'lg' ? 'sm' : 'xs'} />\n </Flex>\n )}\n </Button>\n );\n};\n\nexport const MenuButtonTooltip = ({ tooltipProps, isMenuOpen, ...rest }: MenuButtonProps): React.JSX.Element => {\n // Needed to manage tooltip open state separately to avoid sticky issues when we open and close menu list\n const [isTooltipOpen, setIsTooltipOpen] = useState(false);\n\n const onMouseEnter = useCallback((): void => {\n if (!isMenuOpen) {\n setIsTooltipOpen(true);\n }\n }, [isMenuOpen]);\n\n const onMouseLeave = useCallback((): void => {\n if (!isMenuOpen) {\n setIsTooltipOpen(false);\n }\n }, [isMenuOpen]);\n\n // Close tooltip when menu opens\n useEffect(() => {\n if (isMenuOpen) {\n setIsTooltipOpen(false);\n }\n }, [isMenuOpen]);\n\n return (\n <Tooltip label={rest.text || ''} open={isTooltipOpen && !isMenuOpen} {...tooltipProps}>\n <Box\n onClick={(e) => {\n e.preventDefault();\n e.stopPropagation();\n setIsTooltipOpen(false);\n }}\n onMouseEnter={onMouseEnter}\n onMouseLeave={onMouseLeave}\n >\n <MenuButton {...rest} />\n </Box>\n </Tooltip>\n );\n};\n","import { Flex } from '@chakra-ui/react/flex';\nimport { Menu as CMenu } from '@chakra-ui/react/menu';\nimport React, { useCallback, useState } from 'react';\nimport { Text } from 'components/Text/text.component';\nimport { MenuItemType } from './menuItem.types';\nimport { Menu, MenuProps } from 'components/Menu';\nimport { TypographyVariant } from 'shared/types/typography';\nimport { Checkbox } from 'components/Checkbox/checkbox.component';\nimport { Icon } from 'components/Icon/icon.component';\nimport { Tooltip } from 'components/Tooltip';\n\ninterface BaseMenuItemProps {\n /** Label to display in the menu item. */\n label?: React.ReactNode;\n /** Left element to display in the menu item. */\n leftElement?: React.ReactNode;\n /** Group label to display in the menu item. */\n groupLabel?: string;\n /** Callback function to be called when the menu item is selected. */\n onSelect?: (value: string) => void;\n /** If true, the text will be truncated. */\n shouldTruncateText?: boolean;\n /** Type of the menu item.\n * @default default\n */\n type?: MenuItemType;\n /** Value of the menu item. */\n value: string;\n /** Variant of the menu item. */\n variant?: TypographyVariant;\n /** Data test id for the menu item.\n * @default kibble-menu-item\n */\n 'data-testid'?: string;\n}\n\ninterface DefaultMenuItemProps extends Omit<CMenu.ItemProps, 'onSelect' | 'isDisabled'> {\n /** Type of the menu item.\n * @default default\n */\n type?: 'default';\n /** If true, the menu item will be selected. */\n selected?: boolean;\n /** Tooltip label to display in the menu item. */\n tooltipLabel?: string;\n}\n\ninterface CheckboxMenuItemProps extends Omit<CMenu.CheckboxItemProps, 'onSelect'> {\n /** Type of the menu item.\n * @default checkbox\n */\n type: 'checkbox';\n /** If true, the checkbox will be checked. */\n checked: boolean;\n /** Tooltip label to display in the menu item. */\n tooltipLabel?: string;\n}\n\ninterface SubmenuMenuItemProps extends Omit<MenuProps, 'children' | 'buttonProps'> {\n /** Type of the menu item.\n * @default submenu\n */\n type: 'submenu';\n /** Value text for keyboard navigation. */\n valueText?: string;\n}\n\nexport type MenuItemProps = BaseMenuItemProps & (DefaultMenuItemProps | CheckboxMenuItemProps | SubmenuMenuItemProps);\n\nexport const MenuItem = ({\n label,\n leftElement,\n onSelect,\n shouldTruncateText,\n type = 'default',\n variant,\n ['data-testid']: dataTestId = 'kibble-menu-item',\n ...rest\n}: MenuItemProps): React.JSX.Element => {\n const [isSubmenuOpen, setIsSubmenuOpen] = useState(false);\n\n const handleItemSelect = useCallback(() => {\n if (onSelect) {\n onSelect(rest.value);\n }\n }, [onSelect, rest.value]);\n\n if (type === 'submenu') {\n const {\n valueText,\n listProps,\n positionerProps,\n portalled = true,\n open,\n lazyMount = true,\n unmountOnExit = true,\n } = rest as Omit<SubmenuMenuItemProps, 'type'>;\n\n return (\n <Menu\n lazyMount={lazyMount}\n unmountOnExit={unmountOnExit}\n submenuTrigger={\n <CMenu.TriggerItem\n className=\"Menu__Item--Submenu\"\n data-testid={`${dataTestId}-submenu`}\n justifyContent=\"space-between\"\n aria-valuetext={valueText}\n position=\"relative\"\n onClick={(): void => {\n // If the submenu is controlled, call the onSelect callback passed to the menu\n if (open !== undefined && onSelect) {\n onSelect(rest.value);\n } else {\n // Otherwise, toggle the internalsubmenu open state\n setIsSubmenuOpen(!isSubmenuOpen);\n }\n }}\n >\n <MenuItemLabel\n label={label}\n leftElement={leftElement}\n shouldTruncateText={shouldTruncateText}\n variant={variant}\n />\n <Icon name=\"chevronRight\" size=\"sm\" />\n </CMenu.TriggerItem>\n }\n portalled={portalled}\n open={open !== undefined ? open : isSubmenuOpen}\n listProps={listProps}\n positionerProps={positionerProps}\n />\n );\n }\n\n if (type === 'checkbox') {\n const { checked, value, disabled, tooltipLabel, ...checkboxRest } = rest as CheckboxMenuItemProps;\n return (\n <CMenu.Item\n className=\"Menu__Item--Checkbox\"\n data-testid={`${dataTestId}-checkbox`}\n value={value}\n closeOnSelect={false}\n onSelect={disabled ? undefined : handleItemSelect}\n gap={3}\n disabled={disabled}\n {...checkboxRest}\n >\n <Checkbox checked={!!checked} disabled={disabled} size=\"md\" fullWidth={false} />\n <MenuItemLabel\n label={label}\n leftElement={leftElement}\n shouldTruncateText={shouldTruncateText}\n variant={variant}\n tooltipLabel={tooltipLabel}\n />\n </CMenu.Item>\n );\n }\n\n if (type === 'default') {\n const { selected = false, disabled, value, tooltipLabel, ...defaultRest } = rest as DefaultMenuItemProps;\n return (\n <CMenu.Item\n className=\"Menu__Item--Default\"\n data-testid={`${dataTestId}-default`}\n value={value}\n onSelect={disabled ? undefined : handleItemSelect}\n disabled={disabled}\n {...(selected && { bgColor: 'background.secondaryAlpha.hover' })}\n {...defaultRest}\n >\n <MenuItemLabel\n label={label}\n leftElement={leftElement}\n shouldTruncateText={shouldTruncateText}\n variant={selected ? 'info' : variant}\n tooltipLabel={tooltipLabel}\n />\n </CMenu.Item>\n );\n }\n\n return <></>;\n};\n\nconst MenuItemLabel = ({\n label,\n leftElement,\n shouldTruncateText,\n variant,\n tooltipLabel,\n}: {\n label?: React.ReactNode;\n leftElement?: React.ReactNode;\n shouldTruncateText?: boolean;\n variant?: TypographyVariant;\n tooltipLabel?: string;\n}): React.JSX.Element => {\n const content = (\n <Flex className=\"Menu__ItemLabel\" alignItems=\"center\" gap={3}>\n {leftElement}\n {typeof label === 'string' ? (\n <Text size=\"sm\" truncated={shouldTruncateText} variant={variant}>\n {label}\n </Text>\n ) : (\n label\n )}\n </Flex>\n );\n return tooltipLabel ? <Tooltip label={tooltipLabel}>{content}</Tooltip> : content;\n};\n","import { Box } from '@chakra-ui/react/box';\nimport { Flex } from '@chakra-ui/react/flex';\nimport { Button } from 'components/Button/button.component';\n\ninterface MenuToggleButtonsProps {\n /** Determines if there are selected items. */\n hasSelectedItems?: boolean;\n /** Name of the group. */\n groupName?: string;\n /** Callback function to toggle the selected items. */\n onToggle: ({ groupName, clear }: { clear: boolean; groupName?: string }) => void;\n /** Data test id for the menu toggle buttons.\n * @default kibble-menu-toggle-buttons\n */\n 'data-testid'?: string;\n}\n\nexport const MenuToggleButtons = ({\n groupName,\n hasSelectedItems = false,\n onToggle,\n ['data-testid']: dataTestId = 'kibble-menu-toggle-buttons',\n}: MenuToggleButtonsProps): React.JSX.Element => {\n const isGrouped = !!groupName;\n return (\n <Box className=\"Menu__ToggleButtons\" data-testid={dataTestId} {...(isGrouped && { textAlign: 'right', w: '50%' })}>\n {isGrouped ? (\n <>\n {hasSelectedItems ? (\n <ClearAllButton hasSelectedItems={hasSelectedItems} groupName={groupName} onToggle={onToggle} />\n ) : (\n <SelectAllButton groupName={groupName} onToggle={onToggle} />\n )}\n </>\n ) : (\n <Flex justifyContent=\"space-between\">\n <SelectAllButton groupName={groupName} onToggle={onToggle} />\n <ClearAllButton hasSelectedItems={hasSelectedItems} groupName={groupName} onToggle={onToggle} />\n </Flex>\n )}\n </Box>\n );\n};\n\nconst SelectAllButton = ({ groupName, onToggle }: MenuToggleButtonsProps): React.JSX.Element => {\n return (\n <Button variant=\"ghost\" size=\"xs\" onClick={(): void => onToggle({ groupName, clear: false })}>\n Select All\n </Button>\n );\n};\n\nconst ClearAllButton = ({ hasSelectedItems, groupName, onToggle }: MenuToggleButtonsProps): React.JSX.Element => {\n return (\n <Button\n variant=\"ghostNeutral\"\n iconName=\"arrowCircle\"\n size=\"xs\"\n disabled={!hasSelectedItems}\n onClick={(): void => onToggle({ groupName, clear: true })}\n >\n Clear All\n </Button>\n );\n};\n","import React, { useCallback, useEffect, useMemo, useState } from 'react';\nimport { Menu as CMenu } from '@chakra-ui/react/menu';\nimport { Portal } from '@chakra-ui/react/portal';\nimport { MenuButton, MenuButtonTooltip, MenuButtonProps } from './components/MenuButton/menuButton.component';\nimport { MenuItem, MenuItemProps } from './components/MenuItem/menuItem.component';\nimport { Box } from '@chakra-ui/react/box';\nimport { Text } from 'components/Text/text.component';\nimport { TextInput } from 'components/TextInput/textInput.component';\nimport { Flex } from '@chakra-ui/react/flex';\nimport { Spinner } from 'components/Spinner/spinner.component';\nimport { MenuToggleButtons } from './components/MenuToggleButtons/menuToggleButtons.component';\nimport { usePortalContentRef } from 'hooks/usePortalContentRef';\nimport { MenuListOnOpenChangeProps } from './menu.types';\nimport { MenuListProps } from './components/MenuList/menuList.types';\n\nexport interface MenuProps extends Omit<CMenu.RootProps, 'children' | 'onSelect' | 'onOpenChange'> {\n /** Props to customize the menu button trigger. */\n buttonProps?: MenuButtonProps;\n /** Props to customize the menu list. */\n listProps?: MenuListProps;\n /** Props to customize the positioner of the menu. */\n positionerProps?: CMenu.PositionerProps;\n /**\n * If true, the menu will be rendered in a Portal.\n * @default false\n */\n portalled?: boolean;\n /** Callback function to be called when the menu is opened or closed. */\n onOpenChange?: ({ open, allSelectedItems }: MenuListOnOpenChangeProps) => void;\n /** Data test id for the menu.\n * @default kibble-menu\n */\n 'data-testid'?: string;\n}\n\ninterface InternalMenuProps extends MenuProps {\n /** React element to be used as the trigger for the submenu.\n * @internal\n */\n submenuTrigger?: React.ReactNode;\n}\n\nexport const Menu = ({\n buttonProps,\n listProps,\n positionerProps,\n portalled = false,\n submenuTrigger,\n lazyMount = true,\n onOpenChange,\n ['data-testid']: dataTestId = 'kibble-menu',\n ...rest\n}: InternalMenuProps): React.JSX.Element => {\n const { contentRef } = usePortalContentRef();\n const {\n canSelectAll,\n canSelectGroups,\n emptyState = 'No results found',\n groupSortOrder,\n loading,\n maxH = '480px',\n menuItems = [],\n minW = '240px',\n onSearch,\n onSelect: onListSelect,\n onSelectAll,\n searchable,\n searchPlaceholder = 'Search...',\n shouldTruncateText,\n ...restListProps\n } = listProps || {};\n const [isOpen, setIsOpen] = useState(false);\n const [searchText, setSearchText] = useState<string>('');\n const [filteredMenuItems, setFilteredMenuItems] = useState<MenuItemProps[]>(menuItems);\n\n // Menu Items\n const groupedItems = useMemo(() => {\n const groups: Record<string, Record<string, MenuItemProps[]>> = {};\n\n filteredMenuItems?.forEach((item) => {\n const group = item.groupLabel || 'default';\n // Default and submenu items are grouped under \"default\"\n const type = item.type === 'checkbox' ? 'checkbox' : 'default';\n\n if (!groups[group]) {\n groups[group] = {};\n }\n\n if (!groups[group][type]) {\n groups[group][type] = [];\n }\n\n groups[group][type].push(item);\n });\n\n return groups;\n }, [filteredMenuItems]);\n\n const groups = useMemo(() => {\n const entries = Object.entries(groupedItems);\n\n if (!groupSortOrder || groupSortOrder.length === 0) {\n return entries;\n }\n\n // Sort groups based on groupSortOrder\n return entries.sort(([groupLabelA], [groupLabelB]) => {\n const indexA = groupSortOrder.indexOf(groupLabelA);\n const indexB = groupSortOrder.indexOf(groupLabelB);\n\n // If both groups are in the sort order, sort by their index\n if (indexA !== -1 && indexB !== -1) {\n return indexA - indexB;\n }\n\n // If only groupA is in the sort order, it comes first\n if (indexA !== -1) {\n return -1;\n }\n\n // If only groupB is in the sort order, it comes first\n if (indexB !== -1) {\n return 1;\n }\n\n // If neither group is in the sort order, maintain original order\n return 0;\n });\n }, [groupedItems, groupSortOrder]);\n\n // Checkbox State Management\n const checkboxItems = useMemo(() => menuItems?.filter((item) => item.type === 'checkbox') || [], [menuItems]);\n\n // Helper functions for checkbox state management\n const isChecked = useCallback(\n (value: string) => {\n return checkboxItems.some((item) => item.value === value && item.checked);\n },\n [checkboxItems],\n );\n\n // Helper function to get selected menu items based on selected values\n const selectedCheckboxItems = useMemo(() => {\n return checkboxItems.filter((item) => item.checked);\n }, [checkboxItems]);\n\n const handleToggleSelectAll = useCallback(\n ({ groupName, clear }: { groupName?: string; clear: boolean }) => {\n let newSelectedItems: MenuItemProps[];\n // Only allow checkbox items that are not disabled to be toggled\n const filteredCheckboxItems = filteredMenuItems.filter((item) => item.type === 'checkbox' && !item.disabled);\n\n // If the group name is provided, only toggle the items in the group\n if (groupName) {\n // Get the items in the group\n const groupedItems = filteredCheckboxItems.filter((item) => item.groupLabel === groupName);\n\n // If the clear flag is true, remove the items in the group\n newSelectedItems = clear\n ? selectedCheckboxItems.filter((cItem) => cItem.groupLabel !== groupName)\n : // Otherwise, add the items in the group to the selected items\n [...new Set([...selectedCheckboxItems, ...groupedItems])];\n } else {\n // If the group name is not provided, toggle all the items\n newSelectedItems = clear\n ? []\n : filteredCheckboxItems.map((item) => {\n return { ...item, checked: true };\n });\n }\n\n // Call the onSelectAll callback with the updated values\n onSelectAll?.({ allSelectedItems: newSelectedItems });\n },\n [onSelectAll, filteredMenuItems, selectedCheckboxItems],\n );\n\n const handleSelect = useCallback(\n (item: MenuItemProps) => {\n // If the item is a checkbox, update the selected checkbox values\n if (item.type === 'checkbox') {\n // Get the new list of selected checkbox items\n const allSelectedItems = isChecked(item.value)\n ? selectedCheckboxItems.filter((cItem) => cItem.value !== item.value)\n : [...selectedCheckboxItems, item];\n\n // If the item has it's own onSelect, call it with just the item value\n if (item.onSelect) {\n item.onSelect(item.value);\n return;\n }\n\n // Otherwise call the onSelect callback with the updated values\n onListSelect?.({ item, allSelectedItems });\n return;\n }\n\n // Otherwise this is a default item, so first check if the item has it's own onSelect callback\n if (item.onSelect) {\n item.onSelect(item.value);\n return;\n }\n\n // Otherwise call the onSelect callback with just the item itself\n onListSelect?.({ item, allSelectedItems: [item] });\n },\n [onListSelect, isChecked, selectedCheckboxItems],\n );\n\n // Search\n const filterOptions = useCallback((searchInput: string, itemsToFilter: MenuItemProps[]) => {\n if (searchInput === '' || !searchInput) {\n return itemsToFilter;\n }\n\n return itemsToFilter.filter((item): boolean => {\n const labelText = typeof item.label === 'string' ? item.label : item.valueText;\n\n return !!labelText?.toLowerCase().includes(searchInput.toLowerCase());\n });\n }, []);\n\n const handleSearch = useCallback(\n (e: React.ChangeEvent<HTMLInputElement>) => {\n const searchInput = e.target.value;\n setSearchText(searchInput);\n\n if (onSearch) {\n onSearch(e);\n }\n },\n [onSearch],\n );\n\n const clearSearch = useCallback(() => {\n setSearchText('');\n\n if (onSearch) {\n onSearch({\n target: { value: '' },\n } as React.ChangeEvent<HTMLInputElement>);\n }\n }, [onSearch]);\n\n // Cleanup\n const handleOpenChange = useCallback(\n (open: boolean) => {\n setIsOpen(open); // Track open state\n if (!open) {\n setSearchText('');\n setFilteredMenuItems(menuItems);\n }\n\n if (onOpenChange) {\n onOpenChange({ open, allSelectedItems: selectedCheckboxItems });\n }\n },\n [menuItems, onOpenChange, selectedCheckboxItems],\n );\n\n useEffect(() => {\n if (onSearch) {\n setFilteredMenuItems(menuItems);\n } else {\n setFilteredMenuItems(filterOptions(searchText, menuItems));\n }\n }, [searchText, onSearch, filterOptions, menuItems]);\n\n return (\n <CMenu.Root\n lazyMount={lazyMount}\n unmountOnExit={lazyMount}\n onOpenChange={(details) => {\n handleOpenChange(details.open);\n }}\n {...rest}\n >\n {!submenuTrigger ? (\n <CMenu.Trigger asChild className=\"Menu__Trigger\" data-testid={`${dataTestId}-trigger`}>\n {buttonProps?.showTooltip ? (\n <MenuButtonTooltip isMenuOpen={isOpen} {...buttonProps} />\n ) : (\n <MenuButton {...buttonProps} />\n )}\n </CMenu.Trigger>\n ) : (\n submenuTrigger\n )}\n <Portal disabled={!portalled} container={contentRef || undefined}>\n <CMenu.Positioner className=\"Menu\" data-testid={dataTestId} {...positionerProps}>\n <CMenu.Content\n className=\"Menu__Content\"\n data-testid={`${dataTestId}-content`}\n maxH={maxH}\n minW={minW}\n {...restListProps}\n {...(searchable && { pt: '0' })}\n onClick={(e) => {\n e.stopPropagation();\n restListProps?.onClick?.(e);\n }}\n >\n {searchable && (\n <Box\n className=\"Menu__SearchBarContainer\"\n data-testid={`${dataTestId}-search-bar-container`}\n px={3}\n py={2}\n position=\"sticky\"\n top={0}\n bg=\"background\"\n zIndex=\"docked\"\n >\n <TextInput\n className=\"Menu__SearchBar\"\n data-testid={`${dataTestId}-search-bar`}\n placeholder={searchPlaceholder}\n onChange={handleSearch}\n size=\"sm\"\n value={searchText}\n clearable\n onClear={clearSearch}\n // Necessary to prevent the Menu from intercepting the Space key press and opening the menu when the search input is focused\n onKeyDown={(e) => {\n if (e.code === 'Space') {\n e.stopPropagation();\n }\n }}\n />\n </Box>\n )}\n {canSelectAll && (\n <Box\n className=\"Menu__CheckboxGroupHeader\"\n data-testid={`${dataTestId}-checkbox-group-header`}\n px={3}\n mt={searchable ? 1 : 2}\n >\n {canSelectAll && !!checkboxItems.length && (\n <MenuToggleButtons\n onToggle={handleToggleSelectAll}\n hasSelectedItems={!!selectedCheckboxItems.length}\n />\n )}\n </Box>\n )}\n {loading && (\n <Flex justifyContent=\"center\" py={5}>\n <Spinner fullScreen />\n </Flex>\n )}\n <Box className=\"Menu__List\" data-testid={`${dataTestId}-list`}>\n {groups.length ? (\n <>\n {groups.map(([groupLabel, types]) => {\n const isDefaultGroup = groupLabel === 'default';\n const itemTypes = Object.keys(types);\n const MenuGroupContainer = !isDefaultGroup ? CMenu.ItemGroup : React.Fragment;\n const groupValues = types['checkbox']?.map((item) => item.value);\n const hasSelectedItems = groupValues?.some((value) =>\n selectedCheckboxItems.some((item) => item.value === value && item.checked),\n );\n return (\n <MenuGroupContainer key={groupLabel}>\n {!isDefaultGroup && (\n <CMenu.ItemGroupLabel>\n <Flex alignItems=\"center\" justifyContent=\"space-between\">\n {groupLabel}\n {canSelectGroups && itemTypes.includes('checkbox') && (\n <MenuToggleButtons\n groupName={groupLabel}\n onToggle={handleToggleSelectAll}\n hasSelectedItems={hasSelectedItems}\n />\n )}\n </Flex>\n </CMenu.ItemGroupLabel>\n )}\n {Object.entries(types).map(([type, items]) =>\n items.map((item, index) => {\n const { groupLabel, ...rest } = item;\n return (\n <MenuItem\n key={`menu-item-${groupLabel}-${type}-${index}`}\n shouldTruncateText={shouldTruncateText}\n {...(item.type === 'checkbox' && {\n checked: isChecked(item.value),\n })}\n onSelect={() => handleSelect(item)}\n {...(item.type === 'submenu' && {\n positionerProps,\n })}\n {...rest}\n data-testid={`${dataTestId}-item-${item.label}`}\n />\n );\n }),\n )}\n </MenuGroupContainer>\n );\n })}\n </>\n ) : (\n <>\n <Box p={3}>\n {typeof emptyState === 'string' ? (\n <Box textAlign=\"center\">\n <Text size=\"sm\" variant=\"subtle\" data-testid={`${dataTestId}-empty-state`}>\n {emptyState}\n </Text>\n </Box>\n ) : (\n emptyState\n )}\n </Box>\n </>\n )}\n </Box>\n </CMenu.Content>\n </CMenu.Positioner>\n </Portal>\n </CMenu.Root>\n );\n};\n"],"names":["MenuProvider","useMenuContext","createContext","MenuArrow","forwardRef","props","ref","menu","mergedProps","mergeProps","jsx","ark","MenuArrowTip","MenuItemProvider","useMenuItemContext","MenuItemPropsProvider","useMenuItemPropsContext","MenuCheckboxItem","partialOptionItemProps","localProps","createSplitProps","optionItemProps","optionItemState","MenuContent","presence","usePresenceContext","composeRefs","MenuContextTrigger","MenuIndicator","MenuItem","itemProps","itemState","useEffect","MenuItemGroupProvider","useMenuItemGroupContext","MenuItemGroup","optionalItemGroupProps","itemGroupProps","useId","MenuItemGroupLabel","itemGroup","MenuItemIndicator","MenuItemText","MenuPositioner","MenuRadioItem","partialItemProps","MenuRadioItemGroup","useEffectOnce","cb","savedCallback","useRef","effectGuard","useMenu","id","getRootNode","useEnvironmentContext","dir","useLocaleContext","machineProps","service","useMachine","menu.machine","menu.connect","normalizeProps","MenuMachineProvider","useMenuMachineContext","MenuTriggerItemProvider","useMenuTriggerItemContext","MenuRoot","presenceProps","menuProps","splitPresenceProps","useMenuProps","parentApi","parentMachine","api","usePresence","triggerItemContext","useCallback","PresenceProvider","MenuRootProvider","children","MenuSeparator","MenuTrigger","MenuTriggerItem","getTriggerItemProps","withRootProvider","withContext","createSlotRecipeContext","Menu.RootProvider","Menu.Root","Menu.Trigger","Menu.ContextTrigger","Menu.Positioner","Menu.Separator","Menu.Content","Menu.ArrowTip","Menu.Arrow","Menu.Indicator","Menu.ItemGroup","Menu.ItemGroupLabel","Menu.Item","Menu.TriggerItem","Menu.ItemText","Menu.ItemIndicator","CheckIcon","Menu.CheckboxItem","Menu.RadioItemGroup","Menu.RadioItem","MenuButton","hideCaret","size","text","textProps","variant","onClick","dataTestId","rest","jsxs","Button","e","Text","Flex","Icon","MenuButtonTooltip","tooltipProps","isMenuOpen","isTooltipOpen","setIsTooltipOpen","useState","onMouseEnter","onMouseLeave","Tooltip","Box","label","leftElement","onSelect","shouldTruncateText","type","isSubmenuOpen","setIsSubmenuOpen","handleItemSelect","valueText","listProps","positionerProps","portalled","open","lazyMount","unmountOnExit","Menu","CMenu.TriggerItem","MenuItemLabel","checked","value","disabled","tooltipLabel","checkboxRest","CMenu.Item","Checkbox","selected","defaultRest","Fragment","content","MenuToggleButtons","groupName","hasSelectedItems","onToggle","isGrouped","ClearAllButton","SelectAllButton","buttonProps","submenuTrigger","onOpenChange","contentRef","usePortalContentRef","canSelectAll","canSelectGroups","emptyState","groupSortOrder","loading","maxH","menuItems","minW","onSearch","onListSelect","onSelectAll","searchable","searchPlaceholder","restListProps","isOpen","setIsOpen","searchText","setSearchText","filteredMenuItems","setFilteredMenuItems","groupedItems","useMemo","groups","item","group","entries","groupLabelA","groupLabelB","indexA","indexB","checkboxItems","isChecked","selectedCheckboxItems","handleToggleSelectAll","clear","newSelectedItems","filteredCheckboxItems","cItem","handleSelect","allSelectedItems","filterOptions","searchInput","itemsToFilter","handleSearch","clearSearch","handleOpenChange","CMenu.Root","details","CMenu.Trigger","Portal","CMenu.Positioner","CMenu.Content","TextInput","Spinner","groupLabel","types","isDefaultGroup","itemTypes","MenuGroupContainer","React","CMenu.ItemGroup","CMenu.ItemGroupLabel","items","index"],"mappings":"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","x_google_ignoreList":[0,1,2,3,4,5,6,7,8,9,10,11,12,13,14,15,16,17,18,19,20,21,22,23,24,25,26,27]}
@@ -1,2 +1,2 @@
1
- "use strict";const t=require("./jsx-runtime-BjDatQAs.js"),E=require("react"),l=require("./button.component-DjdgBXDC.js"),k=require("./flex-BOU6tYUd.js"),e=require("./dialog-CZFwddWp.js"),q=require("./heading.component-DnoZOXdz.js"),b=require("./usePortalContentRef-CTrvBQ7I.js"),y=require("./use-breakpoint-uBg4-8yY.js"),$=require("./index-Ts8g8jZd.js"),S=({children:n,destructive:r,disabled:d,hideCancel:o=!1,loading:c,loadingText:u,onCancel:x,onSubmit:m,submitText:p="Submit",cancelText:j="Cancel",buttonPosition:R="space-between",["data-testid"]:i="kibble-modal-footer",...a})=>t.jsxRuntimeExports.jsx(e.DialogFooter,{className:"Modal__Footer","data-testid":i,...a,children:n||t.jsxRuntimeExports.jsxs(k.Flex,{alignItems:"center",justifyContent:R,w:"100%",children:[!o&&t.jsxRuntimeExports.jsx(e.DialogActionTrigger,{asChild:!0,className:"Modal__CancelButton","data-testid":`${i}-cancel-button`,children:t.jsxRuntimeExports.jsx(l.Button,{variant:"tertiary",onClick:x,children:j})}),t.jsxRuntimeExports.jsx(l.Button,{className:"Modal__SubmitButton","data-testid":`${i}-submit-button`,onClick:m,loading:c,loadingText:u,disabled:d,type:"submit",variant:r?"primaryDestructive":"primary",children:p})]})}),w=({children:n,footerProps:r,fullScreenMobile:d=!0,header:o,headerProps:c,hideCloseButton:u=!1,closeButtonProps:x,hideFooter:m=!1,motionPreset:p="slide-in-bottom",placement:j="center",showExpandButton:R=!1,size:i="md",trigger:a,["data-testid"]:s="kibble-modal",portalled:f=!0,contentProps:_,positionerProps:C,...B})=>{const{contentRef:M}=b.usePortalContentRef(),g=E.useRef(null),N={contentRef:g},[h,D]=E.useState(!1),v=y.useBreakpointValue({base:d?"full":i,md:i});return t.jsxRuntimeExports.jsxs(e.DialogRoot,{motionPreset:p,placement:j,size:v,expanded:h,"data-testid":`${s}-root`,...B,children:[a&&t.jsxRuntimeExports.jsx(e.DialogTrigger,{asChild:!0,children:a}),t.jsxRuntimeExports.jsxs($.Portal,{disabled:!f,container:M||void 0,children:[t.jsxRuntimeExports.jsx(e.DialogBackdrop,{}),t.jsxRuntimeExports.jsx(e.DialogPositioner,{...C,children:t.jsxRuntimeExports.jsx(e.DialogContent,{className:"Modal","data-testid":`${s}-content`,..._,ref:g,children:t.jsxRuntimeExports.jsxs(b.PortalContext.Provider,{value:N,children:[!u&&t.jsxRuntimeExports.jsx(e.DialogCloseTrigger,{asChild:!0,className:"Modal__CloseButton","data-testid":"kibble-modal-close-button",children:t.jsxRuntimeExports.jsx(l.Button,{iconName:"close",variant:"ghostNeutral",...x})}),R&&t.jsxRuntimeExports.jsx(l.Button,{className:"Modal__ExpandButton","data-testid":`${s}-expand-button`,variant:"ghostNeutral",iconName:h?"arrowsIn":"arrowsOut",position:"absolute",top:2,right:12,onClick:()=>D(P=>!P)}),t.jsxRuntimeExports.jsx(e.DialogHeader,{className:"Modal__Header","data-testid":`${s}-header`,children:o&&(typeof o=="string"?t.jsxRuntimeExports.jsx(e.DialogTitle,{className:"Modal__Title","data-testid":`${s}-title`,asChild:!0,children:t.jsxRuntimeExports.jsx(q.WrappedHeading,{p:0,size:"md",...c,children:o})}):t.jsxRuntimeExports.jsx(e.DialogTitle,{className:"Modal__Title","data-testid":`${s}-title`,children:o}))}),t.jsxRuntimeExports.jsx(e.DialogBody,{className:"Modal__Body","data-testid":`${s}-body`,children:n}),!m&&t.jsxRuntimeExports.jsx(S,{...r})]})})})]})]})},z=["xs","sm","md","lg","cover","full"],F=["center","top","bottom"],H=["inside","outside"],V=["scale","slide-in-bottom","slide-in-top","slide-in-left","slide-in-right","none"];exports.Modal=w;exports.modalMotionPresets=V;exports.modalPlacements=F;exports.modalScrollBehaviors=H;exports.modalSizes=z;
2
- //# sourceMappingURL=modal.types-Bj6PrItn.js.map
1
+ "use strict";const t=require("./jsx-runtime-BjDatQAs.js"),E=require("react"),l=require("./button.component-DjdgBXDC.js"),k=require("./flex-BOU6tYUd.js"),e=require("./dialog-CZFwddWp.js"),q=require("./heading.component-DeM4h5rY.js"),b=require("./usePortalContentRef-CTrvBQ7I.js"),y=require("./use-breakpoint-uBg4-8yY.js"),$=require("./index-Ts8g8jZd.js"),S=({children:n,destructive:r,disabled:d,hideCancel:o=!1,loading:c,loadingText:u,onCancel:x,onSubmit:m,submitText:p="Submit",cancelText:j="Cancel",buttonPosition:R="space-between",["data-testid"]:i="kibble-modal-footer",...a})=>t.jsxRuntimeExports.jsx(e.DialogFooter,{className:"Modal__Footer","data-testid":i,...a,children:n||t.jsxRuntimeExports.jsxs(k.Flex,{alignItems:"center",justifyContent:R,w:"100%",children:[!o&&t.jsxRuntimeExports.jsx(e.DialogActionTrigger,{asChild:!0,className:"Modal__CancelButton","data-testid":`${i}-cancel-button`,children:t.jsxRuntimeExports.jsx(l.Button,{variant:"tertiary",onClick:x,children:j})}),t.jsxRuntimeExports.jsx(l.Button,{className:"Modal__SubmitButton","data-testid":`${i}-submit-button`,onClick:m,loading:c,loadingText:u,disabled:d,type:"submit",variant:r?"primaryDestructive":"primary",children:p})]})}),w=({children:n,footerProps:r,fullScreenMobile:d=!0,header:o,headerProps:c,hideCloseButton:u=!1,closeButtonProps:x,hideFooter:m=!1,motionPreset:p="slide-in-bottom",placement:j="center",showExpandButton:R=!1,size:i="md",trigger:a,["data-testid"]:s="kibble-modal",portalled:f=!0,contentProps:_,positionerProps:C,...B})=>{const{contentRef:M}=b.usePortalContentRef(),g=E.useRef(null),N={contentRef:g},[h,D]=E.useState(!1),v=y.useBreakpointValue({base:d?"full":i,md:i});return t.jsxRuntimeExports.jsxs(e.DialogRoot,{motionPreset:p,placement:j,size:v,expanded:h,"data-testid":`${s}-root`,...B,children:[a&&t.jsxRuntimeExports.jsx(e.DialogTrigger,{asChild:!0,children:a}),t.jsxRuntimeExports.jsxs($.Portal,{disabled:!f,container:M||void 0,children:[t.jsxRuntimeExports.jsx(e.DialogBackdrop,{}),t.jsxRuntimeExports.jsx(e.DialogPositioner,{...C,children:t.jsxRuntimeExports.jsx(e.DialogContent,{className:"Modal","data-testid":`${s}-content`,..._,ref:g,children:t.jsxRuntimeExports.jsxs(b.PortalContext.Provider,{value:N,children:[!u&&t.jsxRuntimeExports.jsx(e.DialogCloseTrigger,{asChild:!0,className:"Modal__CloseButton","data-testid":"kibble-modal-close-button",children:t.jsxRuntimeExports.jsx(l.Button,{iconName:"close",variant:"ghostNeutral",...x})}),R&&t.jsxRuntimeExports.jsx(l.Button,{className:"Modal__ExpandButton","data-testid":`${s}-expand-button`,variant:"ghostNeutral",iconName:h?"arrowsIn":"arrowsOut",position:"absolute",top:2,right:12,onClick:()=>D(P=>!P)}),t.jsxRuntimeExports.jsx(e.DialogHeader,{className:"Modal__Header","data-testid":`${s}-header`,children:o&&(typeof o=="string"?t.jsxRuntimeExports.jsx(e.DialogTitle,{className:"Modal__Title","data-testid":`${s}-title`,asChild:!0,children:t.jsxRuntimeExports.jsx(q.WrappedHeading,{p:0,size:"md",...c,children:o})}):t.jsxRuntimeExports.jsx(e.DialogTitle,{className:"Modal__Title","data-testid":`${s}-title`,children:o}))}),t.jsxRuntimeExports.jsx(e.DialogBody,{className:"Modal__Body","data-testid":`${s}-body`,children:n}),!m&&t.jsxRuntimeExports.jsx(S,{...r})]})})})]})]})},z=["xs","sm","md","lg","cover","full"],F=["center","top","bottom"],H=["inside","outside"],V=["scale","slide-in-bottom","slide-in-top","slide-in-left","slide-in-right","none"];exports.Modal=w;exports.modalMotionPresets=V;exports.modalPlacements=F;exports.modalScrollBehaviors=H;exports.modalSizes=z;
2
+ //# sourceMappingURL=modal.types-CfN8ElV6.js.map
@@ -1 +1 @@
1
- {"version":3,"file":"modal.types-Bj6PrItn.js","sources":["../../src/components/Modal/components/ModalFooter/modalFooter.component.tsx","../../src/components/Modal/modal.component.tsx","../../src/components/Modal/modal.types.ts"],"sourcesContent":["import React from 'react';\nimport { Dialog } from '@chakra-ui/react/dialog';\nimport { Flex } from '@chakra-ui/react/flex';\nimport { Button } from 'components/Button/button.component';\n\nexport interface ModalFooterProps extends Dialog.FooterProps {\n /** Content to be rendered in the footer. */\n children?: React.ReactNode;\n /** If true, the submit button will be displayed as a destructive button.\n * @default false\n */\n destructive?: boolean;\n /** If true, the footer will be disabled. */\n disabled?: boolean;\n /** If true, the cancel button will not be displayed.\n * @default false\n */\n hideCancel?: boolean;\n /** If true, the submit button will be displayed with a loading state. */\n loading?: boolean;\n /** Text to display in the loading state. */\n loadingText?: string;\n /** Text to display in the cancel button. */\n cancelText?: string;\n /** Callback function to be called when the cancel button is clicked. */\n onCancel?: () => void;\n /** Callback function to be called when the submit button is clicked. */\n onSubmit?: () => void | Promise<void>;\n /** Text to display in the submit button. */\n submitText?: string;\n /** Position of the buttons.\n * @default space-between\n */\n buttonPosition?: 'start' | 'end' | 'space-between';\n /** Data test id for the footer.\n * @default kibble-modal-footer\n */\n 'data-testid'?: string;\n}\n\nexport const ModalFooter = ({\n children,\n destructive,\n disabled,\n hideCancel = false,\n loading,\n loadingText,\n onCancel,\n onSubmit,\n submitText = 'Submit',\n cancelText = 'Cancel',\n buttonPosition = 'space-between',\n ['data-testid']: dataTestId = 'kibble-modal-footer',\n ...rest\n}: ModalFooterProps): React.JSX.Element => {\n return (\n <Dialog.Footer className=\"Modal__Footer\" data-testid={dataTestId} {...rest}>\n {children ? (\n children\n ) : (\n <Flex alignItems=\"center\" justifyContent={buttonPosition} w=\"100%\">\n {!hideCancel && (\n <Dialog.ActionTrigger asChild className=\"Modal__CancelButton\" data-testid={`${dataTestId}-cancel-button`}>\n <Button variant=\"tertiary\" onClick={onCancel}>\n {cancelText}\n </Button>\n </Dialog.ActionTrigger>\n )}\n <Button\n className=\"Modal__SubmitButton\"\n data-testid={`${dataTestId}-submit-button`}\n onClick={onSubmit}\n loading={loading}\n loadingText={loadingText}\n disabled={disabled}\n type=\"submit\"\n variant={destructive ? 'primaryDestructive' : 'primary'}\n >\n {submitText}\n </Button>\n </Flex>\n )}\n </Dialog.Footer>\n );\n};\n","import React, { useRef, useState } from 'react';\nimport { Dialog } from '@chakra-ui/react/dialog';\nimport { Portal } from '@chakra-ui/react/portal';\nimport { ConditionalValue } from '@chakra-ui/react/styled-system';\nimport { ModalFooter, ModalFooterProps } from './components/ModalFooter/modalFooter.component';\nimport { Heading, HeadingProps } from 'components/Heading/heading.component';\nimport { ModalMotionPreset, ModalPlacement, ModalSize } from './modal.types';\nimport { Button, ButtonProps } from 'components/Button/button.component';\nimport { useBreakpointValue } from '@chakra-ui/react';\nimport { PortalContext, usePortalContentRef } from 'hooks/usePortalContentRef';\n\nexport interface ModalProps extends Dialog.RootProps {\n /** Props to customize the default footer. If a custom footer is needed, you can use the `children` prop to build your own. */\n footerProps?: ModalFooterProps;\n /**\n * Whether to use full screen on mobile devices.\n * @default true\n */\n fullScreenMobile?: boolean;\n /** The header of the modal. */\n header?: React.ReactNode;\n /** Props to customize the header when passed as a string. */\n headerProps?: HeadingProps;\n /**\n * Whether to hide the close button.\n * @default false\n */\n hideCloseButton?: boolean;\n /** Props to customize the close button. */\n closeButtonProps?: Omit<ButtonProps, 'iconName' | 'onClick'>;\n /**\n * Whether to hide the modal footer.\n * @default false\n */\n hideFooter?: boolean;\n /** The animation preset for the modal.\n * @default slide-in-bottom\n */\n motionPreset?: ModalMotionPreset;\n /** The placement of the modal.\n * @default center\n */\n placement?: ModalPlacement;\n /**\n * Whether to show the expand button.\n * @default false\n */\n showExpandButton?: boolean;\n /** The size of the modal.\n * @default md\n */\n size?: ConditionalValue<ModalSize>;\n /** The element used to open the modal. If no trigger is provided, the modal will need to be controlled with the `open` and `onOpenChange` props. */\n trigger?: React.ReactNode;\n /**\n * Whether to render the modal in a portal. Set to false if this modal is nested inside another modal.\n * @default true\n */\n portalled?: boolean;\n /** Props to customize the content of the modal. */\n contentProps?: Dialog.ContentProps;\n /** Props to customize the positioner of the modal. */\n positionerProps?: Dialog.PositionerProps;\n /** Data test id for the modal.\n * @default kibble-modal\n */\n 'data-testid'?: string;\n}\n\nexport const Modal = ({\n children,\n footerProps,\n fullScreenMobile = true,\n header,\n headerProps,\n hideCloseButton = false,\n closeButtonProps,\n hideFooter = false,\n motionPreset = 'slide-in-bottom',\n placement = 'center',\n showExpandButton = false,\n size = 'md',\n trigger,\n ['data-testid']: dataTestId = 'kibble-modal',\n portalled = true,\n contentProps,\n positionerProps,\n ...rest\n}: ModalProps): React.JSX.Element => {\n const { contentRef: parentContentRef } = usePortalContentRef();\n const modalContentRef = useRef<HTMLDivElement>(null!);\n const contextValue = { contentRef: modalContentRef };\n const [isExpanded, setIsExpanded] = useState(false);\n const computedSize = useBreakpointValue({\n base: fullScreenMobile ? 'full' : size,\n md: size,\n });\n\n return (\n <Dialog.Root\n motionPreset={motionPreset}\n placement={placement}\n size={computedSize}\n expanded={isExpanded}\n data-testid={`${dataTestId}-root`}\n {...rest}\n >\n {trigger && <Dialog.Trigger asChild>{trigger}</Dialog.Trigger>}\n <Portal disabled={!portalled} container={parentContentRef || undefined}>\n <Dialog.Backdrop />\n <Dialog.Positioner {...positionerProps}>\n <Dialog.Content\n className=\"Modal\"\n data-testid={`${dataTestId}-content`}\n {...contentProps}\n ref={modalContentRef}\n >\n <PortalContext.Provider value={contextValue}>\n {!hideCloseButton && (\n <Dialog.CloseTrigger asChild className=\"Modal__CloseButton\" data-testid=\"kibble-modal-close-button\">\n <Button iconName=\"close\" variant=\"ghostNeutral\" {...closeButtonProps} />\n </Dialog.CloseTrigger>\n )}\n {showExpandButton && (\n <Button\n className=\"Modal__ExpandButton\"\n data-testid={`${dataTestId}-expand-button`}\n variant=\"ghostNeutral\"\n iconName={isExpanded ? 'arrowsIn' : 'arrowsOut'}\n position=\"absolute\"\n top={2}\n right={12}\n onClick={() => setIsExpanded((prev) => !prev)}\n />\n )}\n <Dialog.Header className=\"Modal__Header\" data-testid={`${dataTestId}-header`}>\n {header &&\n (typeof header === 'string' ? (\n <Dialog.Title className=\"Modal__Title\" data-testid={`${dataTestId}-title`} asChild>\n <Heading p={0} size=\"md\" {...headerProps}>\n {header}\n </Heading>\n </Dialog.Title>\n ) : (\n <Dialog.Title className=\"Modal__Title\" data-testid={`${dataTestId}-title`}>\n {header}\n </Dialog.Title>\n ))}\n </Dialog.Header>\n <Dialog.Body className=\"Modal__Body\" data-testid={`${dataTestId}-body`}>\n {children}\n </Dialog.Body>\n {!hideFooter && <ModalFooter {...footerProps} />}\n </PortalContext.Provider>\n </Dialog.Content>\n </Dialog.Positioner>\n </Portal>\n </Dialog.Root>\n );\n};\n","export const modalSizes = ['xs', 'sm', 'md', 'lg', 'cover', 'full'] as const;\nexport type ModalSize = (typeof modalSizes)[number];\n\nexport const modalPlacements = ['center', 'top', 'bottom'] as const;\nexport type ModalPlacement = (typeof modalPlacements)[number];\n\nexport const modalScrollBehaviors = ['inside', 'outside'] as const;\nexport type ModalScrollBehavior = (typeof modalScrollBehaviors)[number];\n\nexport const modalMotionPresets = [\n 'scale',\n 'slide-in-bottom',\n 'slide-in-top',\n 'slide-in-left',\n 'slide-in-right',\n 'none',\n] as const;\nexport type ModalMotionPreset = (typeof modalMotionPresets)[number];\n"],"names":["ModalFooter","children","destructive","disabled","hideCancel","loading","loadingText","onCancel","onSubmit","submitText","cancelText","buttonPosition","dataTestId","rest","Dialog.Footer","Flex","Dialog.ActionTrigger","Button","jsx","Modal","footerProps","fullScreenMobile","header","headerProps","hideCloseButton","closeButtonProps","hideFooter","motionPreset","placement","showExpandButton","size","trigger","portalled","contentProps","positionerProps","parentContentRef","usePortalContentRef","modalContentRef","useRef","contextValue","isExpanded","setIsExpanded","useState","computedSize","useBreakpointValue","jsxs","Dialog.Root","Dialog.Trigger","Portal","Dialog.Backdrop","Dialog.Positioner","Dialog.Content","PortalContext","Dialog.CloseTrigger","prev","Dialog.Header","Dialog.Title","Heading","Dialog.Body","modalSizes","modalPlacements","modalScrollBehaviors","modalMotionPresets"],"mappings":"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"}
1
+ {"version":3,"file":"modal.types-CfN8ElV6.js","sources":["../../src/components/Modal/components/ModalFooter/modalFooter.component.tsx","../../src/components/Modal/modal.component.tsx","../../src/components/Modal/modal.types.ts"],"sourcesContent":["import React from 'react';\nimport { Dialog } from '@chakra-ui/react/dialog';\nimport { Flex } from '@chakra-ui/react/flex';\nimport { Button } from 'components/Button/button.component';\n\nexport interface ModalFooterProps extends Dialog.FooterProps {\n /** Content to be rendered in the footer. */\n children?: React.ReactNode;\n /** If true, the submit button will be displayed as a destructive button.\n * @default false\n */\n destructive?: boolean;\n /** If true, the footer will be disabled. */\n disabled?: boolean;\n /** If true, the cancel button will not be displayed.\n * @default false\n */\n hideCancel?: boolean;\n /** If true, the submit button will be displayed with a loading state. */\n loading?: boolean;\n /** Text to display in the loading state. */\n loadingText?: string;\n /** Text to display in the cancel button. */\n cancelText?: string;\n /** Callback function to be called when the cancel button is clicked. */\n onCancel?: () => void;\n /** Callback function to be called when the submit button is clicked. */\n onSubmit?: () => void | Promise<void>;\n /** Text to display in the submit button. */\n submitText?: string;\n /** Position of the buttons.\n * @default space-between\n */\n buttonPosition?: 'start' | 'end' | 'space-between';\n /** Data test id for the footer.\n * @default kibble-modal-footer\n */\n 'data-testid'?: string;\n}\n\nexport const ModalFooter = ({\n children,\n destructive,\n disabled,\n hideCancel = false,\n loading,\n loadingText,\n onCancel,\n onSubmit,\n submitText = 'Submit',\n cancelText = 'Cancel',\n buttonPosition = 'space-between',\n ['data-testid']: dataTestId = 'kibble-modal-footer',\n ...rest\n}: ModalFooterProps): React.JSX.Element => {\n return (\n <Dialog.Footer className=\"Modal__Footer\" data-testid={dataTestId} {...rest}>\n {children ? (\n children\n ) : (\n <Flex alignItems=\"center\" justifyContent={buttonPosition} w=\"100%\">\n {!hideCancel && (\n <Dialog.ActionTrigger asChild className=\"Modal__CancelButton\" data-testid={`${dataTestId}-cancel-button`}>\n <Button variant=\"tertiary\" onClick={onCancel}>\n {cancelText}\n </Button>\n </Dialog.ActionTrigger>\n )}\n <Button\n className=\"Modal__SubmitButton\"\n data-testid={`${dataTestId}-submit-button`}\n onClick={onSubmit}\n loading={loading}\n loadingText={loadingText}\n disabled={disabled}\n type=\"submit\"\n variant={destructive ? 'primaryDestructive' : 'primary'}\n >\n {submitText}\n </Button>\n </Flex>\n )}\n </Dialog.Footer>\n );\n};\n","import React, { useRef, useState } from 'react';\nimport { Dialog } from '@chakra-ui/react/dialog';\nimport { Portal } from '@chakra-ui/react/portal';\nimport { ConditionalValue } from '@chakra-ui/react/styled-system';\nimport { ModalFooter, ModalFooterProps } from './components/ModalFooter/modalFooter.component';\nimport { Heading, HeadingProps } from 'components/Heading/heading.component';\nimport { ModalMotionPreset, ModalPlacement, ModalSize } from './modal.types';\nimport { Button, ButtonProps } from 'components/Button/button.component';\nimport { useBreakpointValue } from '@chakra-ui/react';\nimport { PortalContext, usePortalContentRef } from 'hooks/usePortalContentRef';\n\nexport interface ModalProps extends Dialog.RootProps {\n /** Props to customize the default footer. If a custom footer is needed, you can use the `children` prop to build your own. */\n footerProps?: ModalFooterProps;\n /**\n * Whether to use full screen on mobile devices.\n * @default true\n */\n fullScreenMobile?: boolean;\n /** The header of the modal. */\n header?: React.ReactNode;\n /** Props to customize the header when passed as a string. */\n headerProps?: HeadingProps;\n /**\n * Whether to hide the close button.\n * @default false\n */\n hideCloseButton?: boolean;\n /** Props to customize the close button. */\n closeButtonProps?: Omit<ButtonProps, 'iconName' | 'onClick'>;\n /**\n * Whether to hide the modal footer.\n * @default false\n */\n hideFooter?: boolean;\n /** The animation preset for the modal.\n * @default slide-in-bottom\n */\n motionPreset?: ModalMotionPreset;\n /** The placement of the modal.\n * @default center\n */\n placement?: ModalPlacement;\n /**\n * Whether to show the expand button.\n * @default false\n */\n showExpandButton?: boolean;\n /** The size of the modal.\n * @default md\n */\n size?: ConditionalValue<ModalSize>;\n /** The element used to open the modal. If no trigger is provided, the modal will need to be controlled with the `open` and `onOpenChange` props. */\n trigger?: React.ReactNode;\n /**\n * Whether to render the modal in a portal. Set to false if this modal is nested inside another modal.\n * @default true\n */\n portalled?: boolean;\n /** Props to customize the content of the modal. */\n contentProps?: Dialog.ContentProps;\n /** Props to customize the positioner of the modal. */\n positionerProps?: Dialog.PositionerProps;\n /** Data test id for the modal.\n * @default kibble-modal\n */\n 'data-testid'?: string;\n}\n\nexport const Modal = ({\n children,\n footerProps,\n fullScreenMobile = true,\n header,\n headerProps,\n hideCloseButton = false,\n closeButtonProps,\n hideFooter = false,\n motionPreset = 'slide-in-bottom',\n placement = 'center',\n showExpandButton = false,\n size = 'md',\n trigger,\n ['data-testid']: dataTestId = 'kibble-modal',\n portalled = true,\n contentProps,\n positionerProps,\n ...rest\n}: ModalProps): React.JSX.Element => {\n const { contentRef: parentContentRef } = usePortalContentRef();\n const modalContentRef = useRef<HTMLDivElement>(null!);\n const contextValue = { contentRef: modalContentRef };\n const [isExpanded, setIsExpanded] = useState(false);\n const computedSize = useBreakpointValue({\n base: fullScreenMobile ? 'full' : size,\n md: size,\n });\n\n return (\n <Dialog.Root\n motionPreset={motionPreset}\n placement={placement}\n size={computedSize}\n expanded={isExpanded}\n data-testid={`${dataTestId}-root`}\n {...rest}\n >\n {trigger && <Dialog.Trigger asChild>{trigger}</Dialog.Trigger>}\n <Portal disabled={!portalled} container={parentContentRef || undefined}>\n <Dialog.Backdrop />\n <Dialog.Positioner {...positionerProps}>\n <Dialog.Content\n className=\"Modal\"\n data-testid={`${dataTestId}-content`}\n {...contentProps}\n ref={modalContentRef}\n >\n <PortalContext.Provider value={contextValue}>\n {!hideCloseButton && (\n <Dialog.CloseTrigger asChild className=\"Modal__CloseButton\" data-testid=\"kibble-modal-close-button\">\n <Button iconName=\"close\" variant=\"ghostNeutral\" {...closeButtonProps} />\n </Dialog.CloseTrigger>\n )}\n {showExpandButton && (\n <Button\n className=\"Modal__ExpandButton\"\n data-testid={`${dataTestId}-expand-button`}\n variant=\"ghostNeutral\"\n iconName={isExpanded ? 'arrowsIn' : 'arrowsOut'}\n position=\"absolute\"\n top={2}\n right={12}\n onClick={() => setIsExpanded((prev) => !prev)}\n />\n )}\n <Dialog.Header className=\"Modal__Header\" data-testid={`${dataTestId}-header`}>\n {header &&\n (typeof header === 'string' ? (\n <Dialog.Title className=\"Modal__Title\" data-testid={`${dataTestId}-title`} asChild>\n <Heading p={0} size=\"md\" {...headerProps}>\n {header}\n </Heading>\n </Dialog.Title>\n ) : (\n <Dialog.Title className=\"Modal__Title\" data-testid={`${dataTestId}-title`}>\n {header}\n </Dialog.Title>\n ))}\n </Dialog.Header>\n <Dialog.Body className=\"Modal__Body\" data-testid={`${dataTestId}-body`}>\n {children}\n </Dialog.Body>\n {!hideFooter && <ModalFooter {...footerProps} />}\n </PortalContext.Provider>\n </Dialog.Content>\n </Dialog.Positioner>\n </Portal>\n </Dialog.Root>\n );\n};\n","export const modalSizes = ['xs', 'sm', 'md', 'lg', 'cover', 'full'] as const;\nexport type ModalSize = (typeof modalSizes)[number];\n\nexport const modalPlacements = ['center', 'top', 'bottom'] as const;\nexport type ModalPlacement = (typeof modalPlacements)[number];\n\nexport const modalScrollBehaviors = ['inside', 'outside'] as const;\nexport type ModalScrollBehavior = (typeof modalScrollBehaviors)[number];\n\nexport const modalMotionPresets = [\n 'scale',\n 'slide-in-bottom',\n 'slide-in-top',\n 'slide-in-left',\n 'slide-in-right',\n 'none',\n] as const;\nexport type ModalMotionPreset = (typeof modalMotionPresets)[number];\n"],"names":["ModalFooter","children","destructive","disabled","hideCancel","loading","loadingText","onCancel","onSubmit","submitText","cancelText","buttonPosition","dataTestId","rest","Dialog.Footer","Flex","Dialog.ActionTrigger","Button","jsx","Modal","footerProps","fullScreenMobile","header","headerProps","hideCloseButton","closeButtonProps","hideFooter","motionPreset","placement","showExpandButton","size","trigger","portalled","contentProps","positionerProps","parentContentRef","usePortalContentRef","modalContentRef","useRef","contextValue","isExpanded","setIsExpanded","useState","computedSize","useBreakpointValue","jsxs","Dialog.Root","Dialog.Trigger","Portal","Dialog.Backdrop","Dialog.Positioner","Dialog.Content","PortalContext","Dialog.CloseTrigger","prev","Dialog.Header","Dialog.Title","Heading","Dialog.Body","modalSizes","modalPlacements","modalScrollBehaviors","modalMotionPresets"],"mappings":"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"}
@@ -3,7 +3,7 @@ import { useRef as P, useState as $ } from "react";
3
3
  import { B as l } from "./button.component-BO6oee_V.js";
4
4
  import { F as k } from "./flex-CX-8gE9T.js";
5
5
  import { D as R, a as S, b as F, c as w, d as E, e as z, f as H, g as V, h as W, i as g, j as A } from "./dialog-CJpn28QG.js";
6
- import { W as O } from "./heading.component-CpSAN3cv.js";
6
+ import { W as O } from "./heading.component-BBTU00_w.js";
7
7
  import { u as q, P as G } from "./usePortalContentRef-DO_jc4W9.js";
8
8
  import { u as J } from "./use-breakpoint-MQ7agQJe.js";
9
9
  import { P as K } from "./index-DcmJgLUo.js";
@@ -121,4 +121,4 @@ export {
121
121
  lt as c,
122
122
  ot as m
123
123
  };
124
- //# sourceMappingURL=modal.types-rx31rD9D.js.map
124
+ //# sourceMappingURL=modal.types-DlvB1lQC.js.map