@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":"tab.types-DSPWRVCF.js","sources":["../../node_modules/@ark-ui/react/dist/utils/use-debounce.js","../../node_modules/@ark-ui/react/dist/components/tabs/use-tabs-context.js","../../node_modules/@ark-ui/react/dist/components/tabs/tab-content.js","../../node_modules/@ark-ui/react/dist/components/tabs/tab-indicator.js","../../node_modules/@ark-ui/react/dist/components/tabs/tab-list.js","../../node_modules/@ark-ui/react/dist/components/tabs/tab-trigger.js","../../node_modules/@zag-js/tabs/dist/index.mjs","../../node_modules/@ark-ui/react/dist/components/tabs/use-tabs.js","../../node_modules/@ark-ui/react/dist/components/tabs/tabs-root.js","../../node_modules/@ark-ui/react/dist/components/tabs/tabs-root-provider.js","../../node_modules/@chakra-ui/react/dist/esm/components/tabs/tabs.js","../../src/components/Tabs/components/Tab/tab.records.ts","../../src/components/Tabs/components/Tab/tab.component.tsx","../../src/components/Tabs/tabs.component.tsx","../../src/components/Tabs/components/Tab/tab.types.ts"],"sourcesContent":["'use client';\nimport { useState, useEffect } from 'react';\n\nfunction useDebounce(value, delay) {\n const [debouncedValue, setDebouncedValue] = useState(value);\n useEffect(() => {\n const timer = setTimeout(() => {\n setDebouncedValue(value);\n }, delay);\n return () => {\n clearTimeout(timer);\n };\n }, [value, delay]);\n return debouncedValue;\n}\n\nexport { useDebounce };\n","'use client';\nimport { createContext } from '../../utils/create-context.js';\n\nconst [TabsProvider, useTabsContext] = createContext({\n name: \"TabsContext\",\n hookName: \"useTabsContext\",\n providerName: \"<TabsProvider />\"\n});\n\nexport { TabsProvider, useTabsContext };\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 { createSplitProps } from '../../utils/create-split-props.js';\nimport { useRenderStrategyPropsContext } from '../../utils/render-strategy.js';\nimport { useDebounce } from '../../utils/use-debounce.js';\nimport { ark } from '../factory.js';\nimport { usePresence } from '../presence/use-presence.js';\nimport { PresenceProvider } from '../presence/use-presence-context.js';\nimport { useTabsContext } from './use-tabs-context.js';\n\nconst TabContent = forwardRef((props, ref) => {\n const [contentProps, localProps] = createSplitProps()(props, [\"value\"]);\n const tabs = useTabsContext();\n const renderStrategyProps = useRenderStrategyPropsContext();\n const presence = usePresence({\n ...renderStrategyProps,\n present: useDebounce(tabs.value === props.value, 0),\n immediate: true\n });\n const mergedProps = mergeProps(tabs.getContentProps(contentProps), presence.getPresenceProps(), localProps);\n return /* @__PURE__ */ jsx(PresenceProvider, { value: presence, children: presence.unmounted ? null : /* @__PURE__ */ jsx(ark.div, { ...mergedProps, ref: composeRefs(presence.ref, ref) }) });\n});\nTabContent.displayName = \"TabContent\";\n\nexport { TabContent };\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 { useTabsContext } from './use-tabs-context.js';\n\nconst TabIndicator = forwardRef((props, ref) => {\n const tabs = useTabsContext();\n const mergedProps = mergeProps(tabs.getIndicatorProps(), props);\n return /* @__PURE__ */ jsx(ark.div, { ...mergedProps, ref });\n});\nTabIndicator.displayName = \"TabIndicator\";\n\nexport { TabIndicator };\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 { useTabsContext } from './use-tabs-context.js';\n\nconst TabList = forwardRef((props, ref) => {\n const tabs = useTabsContext();\n const mergedProps = mergeProps(tabs.getListProps(), props);\n return /* @__PURE__ */ jsx(ark.div, { ...mergedProps, ref });\n});\nTabList.displayName = \"TabList\";\n\nexport { TabList };\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 { useTabsContext } from './use-tabs-context.js';\n\nconst TabTrigger = forwardRef((props, ref) => {\n const [tabProps, localProps] = createSplitProps()(props, [\"disabled\", \"value\"]);\n const tabs = useTabsContext();\n const mergedProps = mergeProps(tabs.getTriggerProps(tabProps), localProps);\n return /* @__PURE__ */ jsx(ark.button, { ...mergedProps, ref });\n});\nTabTrigger.displayName = \"TabTrigger\";\n\nexport { TabTrigger };\n","import { createAnatomy } from '@zag-js/anatomy';\nimport { isAnchorElement, trackElementRect, nextTick, raf, getFocusables, prevById, nextById, clickIfLink, itemById, queryAll, dataAttr, isOpeningInNewTab, isSafari, isSelfTarget, isComposingEvent, getEventKey } from '@zag-js/dom-query';\nimport { last, first, createSplitProps } from '@zag-js/utils';\nimport { setup } from '@zag-js/core';\nimport { createProps } from '@zag-js/types';\n\n// src/tabs.anatomy.ts\nvar anatomy = createAnatomy(\"tabs\").parts(\"root\", \"list\", \"trigger\", \"content\", \"indicator\");\nvar parts = anatomy.build();\nvar getRootId = (ctx) => ctx.ids?.root ?? `tabs:${ctx.id}`;\nvar getListId = (ctx) => ctx.ids?.list ?? `tabs:${ctx.id}:list`;\nvar getContentId = (ctx, id) => ctx.ids?.content ?? `tabs:${ctx.id}:content-${id}`;\nvar getTriggerId = (ctx, id) => ctx.ids?.trigger ?? `tabs:${ctx.id}:trigger-${id}`;\nvar getIndicatorId = (ctx) => ctx.ids?.indicator ?? `tabs:${ctx.id}:indicator`;\nvar getListEl = (ctx) => ctx.getById(getListId(ctx));\nvar getContentEl = (ctx, id) => ctx.getById(getContentId(ctx, id));\nvar getTriggerEl = (ctx, id) => ctx.getById(getTriggerId(ctx, id));\nvar getIndicatorEl = (ctx) => ctx.getById(getIndicatorId(ctx));\nvar getElements = (ctx) => {\n const ownerId = CSS.escape(getListId(ctx));\n const selector = `[role=tab][data-ownedby='${ownerId}']:not([disabled])`;\n return queryAll(getListEl(ctx), selector);\n};\nvar getFirstTriggerEl = (ctx) => first(getElements(ctx));\nvar getLastTriggerEl = (ctx) => last(getElements(ctx));\nvar getNextTriggerEl = (ctx, opts) => nextById(getElements(ctx), getTriggerId(ctx, opts.value), opts.loopFocus);\nvar getPrevTriggerEl = (ctx, opts) => prevById(getElements(ctx), getTriggerId(ctx, opts.value), opts.loopFocus);\nvar getOffsetRect = (el) => {\n return {\n left: el?.offsetLeft ?? 0,\n top: el?.offsetTop ?? 0,\n width: el?.offsetWidth ?? 0,\n height: el?.offsetHeight ?? 0\n };\n};\nvar getRectById = (ctx, id) => {\n const tab = itemById(getElements(ctx), getTriggerId(ctx, id));\n return resolveRect(getOffsetRect(tab));\n};\nvar resolveRect = (rect) => ({\n width: `${rect.width}px`,\n height: `${rect.height}px`,\n left: `${rect.left}px`,\n top: `${rect.top}px`\n});\n\n// src/tabs.connect.ts\nfunction connect(service, normalize) {\n const { state, send, context, prop, scope } = service;\n const translations = prop(\"translations\");\n const focused = state.matches(\"focused\");\n const isVertical = prop(\"orientation\") === \"vertical\";\n const isHorizontal = prop(\"orientation\") === \"horizontal\";\n const composite = prop(\"composite\");\n function getTriggerState(props2) {\n return {\n selected: context.get(\"value\") === props2.value,\n focused: context.get(\"focusedValue\") === props2.value,\n disabled: !!props2.disabled\n };\n }\n return {\n value: context.get(\"value\"),\n focusedValue: context.get(\"focusedValue\"),\n setValue(value) {\n send({ type: \"SET_VALUE\", value });\n },\n clearValue() {\n send({ type: \"CLEAR_VALUE\" });\n },\n setIndicatorRect(value) {\n const id = getTriggerId(scope, value);\n send({ type: \"SET_INDICATOR_RECT\", id });\n },\n syncTabIndex() {\n send({ type: \"SYNC_TAB_INDEX\" });\n },\n selectNext(fromValue) {\n send({ type: \"TAB_FOCUS\", value: fromValue, src: \"selectNext\" });\n send({ type: \"ARROW_NEXT\", src: \"selectNext\" });\n },\n selectPrev(fromValue) {\n send({ type: \"TAB_FOCUS\", value: fromValue, src: \"selectPrev\" });\n send({ type: \"ARROW_PREV\", src: \"selectPrev\" });\n },\n focus() {\n const value = context.get(\"value\");\n if (!value) return;\n getTriggerEl(scope, value)?.focus();\n },\n getRootProps() {\n return normalize.element({\n ...parts.root.attrs,\n id: getRootId(scope),\n \"data-orientation\": prop(\"orientation\"),\n \"data-focus\": dataAttr(focused),\n dir: prop(\"dir\")\n });\n },\n getListProps() {\n return normalize.element({\n ...parts.list.attrs,\n id: getListId(scope),\n role: \"tablist\",\n dir: prop(\"dir\"),\n \"data-focus\": dataAttr(focused),\n \"aria-orientation\": prop(\"orientation\"),\n \"data-orientation\": prop(\"orientation\"),\n \"aria-label\": translations?.listLabel,\n onKeyDown(event) {\n if (event.defaultPrevented) return;\n if (!isSelfTarget(event)) return;\n if (isComposingEvent(event)) return;\n const keyMap = {\n ArrowDown() {\n if (isHorizontal) return;\n send({ type: \"ARROW_NEXT\", key: \"ArrowDown\" });\n },\n ArrowUp() {\n if (isHorizontal) return;\n send({ type: \"ARROW_PREV\", key: \"ArrowUp\" });\n },\n ArrowLeft() {\n if (isVertical) return;\n send({ type: \"ARROW_PREV\", key: \"ArrowLeft\" });\n },\n ArrowRight() {\n if (isVertical) return;\n send({ type: \"ARROW_NEXT\", key: \"ArrowRight\" });\n },\n Home() {\n send({ type: \"HOME\" });\n },\n End() {\n send({ type: \"END\" });\n }\n };\n let key = getEventKey(event, {\n dir: prop(\"dir\"),\n orientation: prop(\"orientation\")\n });\n const exec = keyMap[key];\n if (exec) {\n event.preventDefault();\n exec(event);\n return;\n }\n }\n });\n },\n getTriggerState,\n getTriggerProps(props2) {\n const { value, disabled } = props2;\n const triggerState = getTriggerState(props2);\n return normalize.button({\n ...parts.trigger.attrs,\n role: \"tab\",\n type: \"button\",\n disabled,\n dir: prop(\"dir\"),\n \"data-orientation\": prop(\"orientation\"),\n \"data-disabled\": dataAttr(disabled),\n \"aria-disabled\": disabled,\n \"data-value\": value,\n \"aria-selected\": triggerState.selected,\n \"data-selected\": dataAttr(triggerState.selected),\n \"data-focus\": dataAttr(triggerState.focused),\n \"aria-controls\": triggerState.selected ? getContentId(scope, value) : void 0,\n \"data-ownedby\": getListId(scope),\n \"data-ssr\": dataAttr(context.get(\"ssr\")),\n id: getTriggerId(scope, value),\n tabIndex: triggerState.selected && composite ? 0 : -1,\n onFocus() {\n send({ type: \"TAB_FOCUS\", value });\n },\n onBlur(event) {\n const target = event.relatedTarget;\n if (target?.getAttribute(\"role\") !== \"tab\") {\n send({ type: \"TAB_BLUR\" });\n }\n },\n onClick(event) {\n if (event.defaultPrevented) return;\n if (isOpeningInNewTab(event)) return;\n if (disabled) return;\n if (isSafari()) {\n event.currentTarget.focus();\n }\n send({ type: \"TAB_CLICK\", value });\n }\n });\n },\n getContentProps(props2) {\n const { value } = props2;\n const selected = context.get(\"value\") === value;\n return normalize.element({\n ...parts.content.attrs,\n dir: prop(\"dir\"),\n id: getContentId(scope, value),\n tabIndex: composite ? 0 : -1,\n \"aria-labelledby\": getTriggerId(scope, value),\n role: \"tabpanel\",\n \"data-ownedby\": getListId(scope),\n \"data-selected\": dataAttr(selected),\n \"data-orientation\": prop(\"orientation\"),\n hidden: !selected\n });\n },\n getIndicatorProps() {\n const indicatorRect = context.get(\"indicatorRect\");\n const indicatorTransition = context.get(\"indicatorTransition\");\n return normalize.element({\n id: getIndicatorId(scope),\n ...parts.indicator.attrs,\n dir: prop(\"dir\"),\n \"data-orientation\": prop(\"orientation\"),\n style: {\n \"--transition-property\": \"left, right, top, bottom, width, height\",\n \"--left\": indicatorRect.left,\n \"--top\": indicatorRect.top,\n \"--width\": indicatorRect.width,\n \"--height\": indicatorRect.height,\n position: \"absolute\",\n willChange: \"var(--transition-property)\",\n transitionProperty: \"var(--transition-property)\",\n transitionDuration: indicatorTransition ? \"var(--transition-duration, 150ms)\" : \"0ms\",\n transitionTimingFunction: \"var(--transition-timing-function)\",\n [isHorizontal ? \"left\" : \"top\"]: isHorizontal ? \"var(--left)\" : \"var(--top)\"\n }\n });\n }\n };\n}\nvar { createMachine } = setup();\nvar machine = createMachine({\n props({ props: props2 }) {\n return {\n dir: \"ltr\",\n orientation: \"horizontal\",\n activationMode: \"automatic\",\n loopFocus: true,\n composite: true,\n navigate(details) {\n clickIfLink(details.node);\n },\n defaultValue: null,\n ...props2\n };\n },\n initialState() {\n return \"idle\";\n },\n context({ prop, bindable }) {\n return {\n value: bindable(() => ({\n defaultValue: prop(\"defaultValue\"),\n value: prop(\"value\"),\n onChange(value) {\n prop(\"onValueChange\")?.({ value });\n }\n })),\n focusedValue: bindable(() => ({\n defaultValue: prop(\"value\") || prop(\"defaultValue\"),\n sync: true,\n onChange(value) {\n prop(\"onFocusChange\")?.({ focusedValue: value });\n }\n })),\n ssr: bindable(() => ({ defaultValue: true })),\n indicatorTransition: bindable(() => ({ defaultValue: false })),\n indicatorRect: bindable(() => ({\n defaultValue: { left: \"0px\", top: \"0px\", width: \"0px\", height: \"0px\" }\n }))\n };\n },\n watch({ context, prop, track, action }) {\n track([() => context.get(\"value\")], () => {\n action([\"allowIndicatorTransition\", \"syncIndicatorRect\", \"syncTabIndex\", \"navigateIfNeeded\"]);\n });\n track([() => prop(\"dir\"), () => prop(\"orientation\")], () => {\n action([\"syncIndicatorRect\"]);\n });\n },\n on: {\n SET_VALUE: {\n actions: [\"setValue\"]\n },\n CLEAR_VALUE: {\n actions: [\"clearValue\"]\n },\n SET_INDICATOR_RECT: {\n actions: [\"setIndicatorRect\"]\n },\n SYNC_TAB_INDEX: {\n actions: [\"syncTabIndex\"]\n }\n },\n entry: [\"syncIndicatorRect\", \"syncTabIndex\", \"syncSsr\"],\n exit: [\"cleanupObserver\"],\n states: {\n idle: {\n on: {\n TAB_FOCUS: {\n target: \"focused\",\n actions: [\"setFocusedValue\"]\n },\n TAB_CLICK: {\n target: \"focused\",\n actions: [\"setFocusedValue\", \"setValue\"]\n }\n }\n },\n focused: {\n on: {\n TAB_CLICK: {\n actions: [\"setFocusedValue\", \"setValue\"]\n },\n ARROW_PREV: [\n {\n guard: \"selectOnFocus\",\n actions: [\"focusPrevTab\", \"selectFocusedTab\"]\n },\n {\n actions: [\"focusPrevTab\"]\n }\n ],\n ARROW_NEXT: [\n {\n guard: \"selectOnFocus\",\n actions: [\"focusNextTab\", \"selectFocusedTab\"]\n },\n {\n actions: [\"focusNextTab\"]\n }\n ],\n HOME: [\n {\n guard: \"selectOnFocus\",\n actions: [\"focusFirstTab\", \"selectFocusedTab\"]\n },\n {\n actions: [\"focusFirstTab\"]\n }\n ],\n END: [\n {\n guard: \"selectOnFocus\",\n actions: [\"focusLastTab\", \"selectFocusedTab\"]\n },\n {\n actions: [\"focusLastTab\"]\n }\n ],\n TAB_FOCUS: {\n actions: [\"setFocusedValue\"]\n },\n TAB_BLUR: {\n target: \"idle\",\n actions: [\"clearFocusedValue\"]\n }\n }\n }\n },\n implementations: {\n guards: {\n selectOnFocus: ({ prop }) => prop(\"activationMode\") === \"automatic\"\n },\n actions: {\n selectFocusedTab({ context, prop }) {\n raf(() => {\n const focusedValue = context.get(\"focusedValue\");\n if (!focusedValue) return;\n const nullable = prop(\"deselectable\") && context.get(\"value\") === focusedValue;\n const value = nullable ? null : focusedValue;\n context.set(\"value\", value);\n });\n },\n setFocusedValue({ context, event, flush }) {\n if (event.value == null) return;\n flush(() => {\n context.set(\"focusedValue\", event.value);\n });\n },\n clearFocusedValue({ context }) {\n context.set(\"focusedValue\", null);\n },\n setValue({ context, event, prop }) {\n const nullable = prop(\"deselectable\") && context.get(\"value\") === context.get(\"focusedValue\");\n context.set(\"value\", nullable ? null : event.value);\n },\n clearValue({ context }) {\n context.set(\"value\", null);\n },\n focusFirstTab({ scope }) {\n raf(() => {\n getFirstTriggerEl(scope)?.focus();\n });\n },\n focusLastTab({ scope }) {\n raf(() => {\n getLastTriggerEl(scope)?.focus();\n });\n },\n focusNextTab({ context, prop, scope, event }) {\n const focusedValue = event.value ?? context.get(\"focusedValue\");\n if (!focusedValue) return;\n const triggerEl = getNextTriggerEl(scope, {\n value: focusedValue,\n loopFocus: prop(\"loopFocus\")\n });\n raf(() => {\n if (prop(\"composite\")) {\n triggerEl?.focus();\n } else if (triggerEl?.dataset.value != null) {\n context.set(\"focusedValue\", triggerEl.dataset.value);\n }\n });\n },\n focusPrevTab({ context, prop, scope, event }) {\n const focusedValue = event.value ?? context.get(\"focusedValue\");\n if (!focusedValue) return;\n const triggerEl = getPrevTriggerEl(scope, {\n value: focusedValue,\n loopFocus: prop(\"loopFocus\")\n });\n raf(() => {\n if (prop(\"composite\")) {\n triggerEl?.focus();\n } else if (triggerEl?.dataset.value != null) {\n context.set(\"focusedValue\", triggerEl.dataset.value);\n }\n });\n },\n syncTabIndex({ context, scope }) {\n raf(() => {\n const value = context.get(\"value\");\n if (!value) return;\n const contentEl = getContentEl(scope, value);\n if (!contentEl) return;\n const focusables = getFocusables(contentEl);\n if (focusables.length > 0) {\n contentEl.removeAttribute(\"tabindex\");\n } else {\n contentEl.setAttribute(\"tabindex\", \"0\");\n }\n });\n },\n cleanupObserver({ refs }) {\n const cleanup = refs.get(\"indicatorCleanup\");\n if (cleanup) cleanup();\n },\n allowIndicatorTransition({ context }) {\n context.set(\"indicatorTransition\", true);\n },\n setIndicatorRect({ context, event, scope }) {\n const value = event.id ?? context.get(\"value\");\n const indicatorEl = getIndicatorEl(scope);\n if (!indicatorEl) return;\n if (!value) {\n context.set(\"indicatorTransition\", false);\n return;\n }\n const triggerEl = getTriggerEl(scope, value);\n if (!triggerEl) return;\n context.set(\"indicatorRect\", getRectById(scope, value));\n nextTick(() => {\n context.set(\"indicatorTransition\", false);\n });\n },\n syncSsr({ context }) {\n context.set(\"ssr\", false);\n },\n syncIndicatorRect({ context, refs, scope }) {\n const cleanup = refs.get(\"indicatorCleanup\");\n if (cleanup) cleanup();\n const value = context.get(\"value\");\n if (!value) {\n context.set(\"indicatorTransition\", false);\n return;\n }\n const triggerEl = getTriggerEl(scope, value);\n const indicatorEl = getIndicatorEl(scope);\n if (!triggerEl || !indicatorEl) return;\n const indicatorCleanup = trackElementRect([triggerEl], {\n measure(el) {\n return getOffsetRect(el);\n },\n onEntry({ rects }) {\n const [rect] = rects;\n context.set(\"indicatorRect\", resolveRect(rect));\n }\n });\n refs.set(\"indicatorCleanup\", indicatorCleanup);\n },\n navigateIfNeeded({ context, prop, scope }) {\n const value = context.get(\"value\");\n if (!value) return;\n const triggerEl = getTriggerEl(scope, value);\n if (isAnchorElement(triggerEl)) {\n prop(\"navigate\")?.({ value, node: triggerEl, href: triggerEl.href });\n }\n }\n }\n }\n});\nvar props = createProps()([\n \"activationMode\",\n \"composite\",\n \"deselectable\",\n \"dir\",\n \"getRootNode\",\n \"id\",\n \"ids\",\n \"loopFocus\",\n \"navigate\",\n \"onFocusChange\",\n \"onValueChange\",\n \"orientation\",\n \"translations\",\n \"value\",\n \"defaultValue\"\n]);\nvar splitProps = createSplitProps(props);\nvar triggerProps = createProps()([\"disabled\", \"value\"]);\nvar splitTriggerProps = createSplitProps(triggerProps);\nvar contentProps = createProps()([\"value\"]);\nvar splitContentProps = createSplitProps(contentProps);\n\nexport { anatomy, connect, contentProps, machine, props, splitContentProps, splitProps, splitTriggerProps, triggerProps };\n","'use client';\nimport { useMachine, normalizeProps } from '@zag-js/react';\nimport * as tabs from '@zag-js/tabs';\nimport { useId } from 'react';\nimport { useEnvironmentContext } from '../../providers/environment/use-environment-context.js';\nimport { useLocaleContext } from '../../providers/locale/use-locale-context.js';\n\nconst useTabs = (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(tabs.machine, machineProps);\n return tabs.connect(service, normalizeProps);\n};\n\nexport { useTabs };\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 { splitRenderStrategyProps, RenderStrategyPropsProvider } from '../../utils/render-strategy.js';\nimport { ark } from '../factory.js';\nimport { useTabs } from './use-tabs.js';\nimport { TabsProvider } from './use-tabs-context.js';\n\nconst TabsRoot = forwardRef((props, ref) => {\n const [renderStrategyProps, tabsProps] = splitRenderStrategyProps(props);\n const [useTabsProps, localprops] = createSplitProps()(tabsProps, [\n \"activationMode\",\n \"composite\",\n \"defaultValue\",\n \"deselectable\",\n \"id\",\n \"ids\",\n \"loopFocus\",\n \"navigate\",\n \"onFocusChange\",\n \"onValueChange\",\n \"orientation\",\n \"translations\",\n \"value\"\n ]);\n const tabs = useTabs(useTabsProps);\n const mergedProps = mergeProps(tabs.getRootProps(), localprops);\n return /* @__PURE__ */ jsx(TabsProvider, { value: tabs, children: /* @__PURE__ */ jsx(RenderStrategyPropsProvider, { value: renderStrategyProps, children: /* @__PURE__ */ jsx(ark.div, { ...mergedProps, ref }) }) });\n});\nTabsRoot.displayName = \"TabsRoot\";\n\nexport { TabsRoot };\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 { splitRenderStrategyProps, RenderStrategyPropsProvider } from '../../utils/render-strategy.js';\nimport { ark } from '../factory.js';\nimport { TabsProvider } from './use-tabs-context.js';\n\nconst TabsRootProvider = forwardRef((props, ref) => {\n const [renderStrategyProps, tabsProps] = splitRenderStrategyProps(props);\n const [{ value: tabs }, localprops] = createSplitProps()(tabsProps, [\"value\"]);\n const mergedProps = mergeProps(tabs.getRootProps(), localprops);\n return /* @__PURE__ */ jsx(TabsProvider, { value: tabs, children: /* @__PURE__ */ jsx(RenderStrategyPropsProvider, { value: renderStrategyProps, children: /* @__PURE__ */ jsx(ark.div, { ...mergedProps, ref }) }) });\n});\nTabsRootProvider.displayName = \"TabsRootProvider\";\n\nexport { TabsRootProvider };\n","\"use strict\";\n\"use client\";\nimport { Tabs } from '@ark-ui/react/tabs';\nimport { createSlotRecipeContext } from '../../styled-system/create-slot-recipe-context.js';\n\nconst {\n withProvider,\n withContext,\n useStyles: useTabsStyles,\n PropsProvider\n} = createSlotRecipeContext({ key: \"tabs\" });\nconst TabsRootProvider = withProvider(Tabs.RootProvider, \"root\", { forwardAsChild: true });\nconst TabsRoot = withProvider(\n Tabs.Root,\n \"root\",\n { forwardAsChild: true }\n);\nconst TabsPropsProvider = PropsProvider;\nconst TabsTrigger = withContext(\n Tabs.Trigger,\n \"trigger\",\n { forwardAsChild: true }\n);\nconst TabsContent = withContext(\n Tabs.Content,\n \"content\",\n { forwardAsChild: true }\n);\nconst TabsContentGroup = withContext(\"div\", \"contentGroup\");\nconst TabsList = withContext(\n Tabs.List,\n \"list\",\n { forwardAsChild: true }\n);\nconst TabsIndicator = withContext(\n Tabs.Indicator,\n \"indicator\",\n { forwardAsChild: true }\n);\n\nexport { TabsContent, TabsContentGroup, TabsIndicator, TabsList, TabsPropsProvider, TabsRoot, TabsRootProvider, TabsTrigger, useTabsStyles };\n","import { TabSize } from './tab.types';\nimport { NotificationCounterSize } from 'components/NotificationCounter/notificationCounter.types';\nimport { HeadingSize } from 'components/Heading/heading.types';\n\nexport const tabNotificationCounterSize: Record<TabSize, NotificationCounterSize> = {\n xs: 'sm',\n sm: 'md',\n md: 'md',\n lg: 'lg',\n};\n\nexport const tabLabelSize: Record<TabSize, HeadingSize> = {\n xs: 'xs',\n sm: 'xs',\n md: 'sm',\n lg: 'md',\n};\n","import React from 'react';\nimport { Tabs } from '@chakra-ui/react/tabs';\nimport { Icon, IconName } from 'components/Icon';\nimport {\n NotificationCounter,\n NotificationCounterProps,\n} from 'components/NotificationCounter/notificationCounter.component';\nimport { TabIconPosition, TabSize } from './tab.types';\nimport { tabLabelSize, tabNotificationCounterSize } from './tab.records';\nimport { Heading } from 'components/Heading/heading.component';\n\nexport interface TabProps extends Tabs.TriggerProps {\n /** The name of the icon to be displayed. */\n iconName?: IconName;\n /** The position of the icon. */\n iconPosition?: TabIconPosition;\n /** The label of the tab. */\n label: string;\n /** Props to customize the notification counter. */\n notificationCounterProps?: Omit<NotificationCounterProps, 'size'>;\n /** Whether to show the notification counter to the right of the label or not. */\n showNotificationCounter?: boolean;\n /**\n * The size of the tab.\n * @default md\n */\n size?: TabSize;\n /** The value of the tab. */\n value: string;\n /** Data test id for the tab. */\n 'data-testid'?: string;\n}\n\nexport const Tab = ({\n iconName,\n iconPosition = 'left',\n label,\n notificationCounterProps,\n showNotificationCounter,\n size = 'md',\n ['data-testid']: dataTestId = 'kibble-tab',\n ...rest\n}: TabProps): React.JSX.Element => {\n return (\n <Tabs.Trigger className=\"Tab\" data-testid={dataTestId} {...rest}>\n {!!iconName && iconPosition === 'left' && (\n <Icon\n className=\"Tab__Icon\"\n data-testid={`${dataTestId}-icon-left`}\n name={iconName}\n size={size}\n variant=\"default\"\n />\n )}\n <Heading as=\"span\" className=\"Tab__Label\" data-testid={`${dataTestId}-label`} size={tabLabelSize[size]}>\n {label}\n </Heading>\n {!!iconName && iconPosition === 'right' && (\n <Icon className=\"Tab__Icon\" data-testid={`${dataTestId}-icon-right`} name={iconName} size={size} />\n )}\n {showNotificationCounter && (\n <NotificationCounter\n className=\"Tab__NotificationCounter\"\n data-testid={`${dataTestId}-notification-counter`}\n {...notificationCounterProps}\n size={tabNotificationCounterSize[size]}\n />\n )}\n </Tabs.Trigger>\n );\n};\n","import React from 'react';\nimport { Tabs as CTabs } from '@chakra-ui/react/tabs';\nimport { TabSize } from './components/Tab/tab.types';\nimport { Tab, TabProps } from './components/Tab/tab.component';\nimport { Alignment } from 'shared/types/alignment';\nimport { Box } from 'chakra';\n\nexport interface TabsProps extends Omit<CTabs.RootProps, 'onChange' | 'variant'> {\n /** Alignment of the tabs. */\n align?: Alignment;\n /** Callback function when the tab changes. */\n onChange?: (value: string) => void;\n /**\n * When true, the tab list scrolls horizontally instead of wrapping or overflowing.\n * @default false\n */\n scrollable?: boolean;\n /**\n * Size of the tabs.\n * @default md\n */\n size?: TabSize;\n /** Array of tabs. Each tab should have a value prop. */\n tabs: TabProps[];\n /** Array of tab contents, each tab content should have a value prop that matches the value of their corresponding tab. */\n tabsContent?: CTabs.ContentProps[];\n /**\n * Data test id for the tabs.\n * @default kibble-tabs\n */\n 'data-testid'?: string;\n /** The current value of the tabs. */\n value?: string | null;\n}\n\nexport const Tabs = ({\n align = 'start',\n onChange,\n scrollable = false,\n size = 'md',\n tabs,\n tabsContent,\n ['data-testid']: dataTestId = 'kibble-tabs',\n ...rest\n}: TabsProps): React.JSX.Element => {\n const tabList = (\n <CTabs.List className=\"Tabs__List\" data-testid={`${dataTestId}-trigger-list`}>\n {tabs.map((tab, index) => (\n <Tab\n key={`tab-${index}`}\n {...tab}\n data-testid={`${dataTestId}-trigger-${tab.value}`}\n size={size}\n {...(scrollable && { style: { flexShrink: 0 } })}\n />\n ))}\n </CTabs.List>\n );\n\n return (\n <CTabs.Root\n className=\"Tabs\"\n data-testid={dataTestId}\n justify={align || rest.justify}\n size={size}\n onValueChange={({ value }) => onChange?.(value)}\n {...rest}\n >\n {scrollable ? (\n <Box overflowX=\"auto\" scrollbarWidth=\"none\">\n {tabList}\n </Box>\n ) : (\n tabList\n )}\n {!!tabsContent &&\n tabsContent.map((tabContent, index) => (\n <CTabs.Content\n key={`${dataTestId}-tabContent-${index}`}\n data-testid={`${dataTestId}-content-${tabs[index].value}`}\n {...tabContent}\n />\n ))}\n </CTabs.Root>\n );\n};\n","export const tabSizes = ['xs', 'sm', 'md', 'lg'] as const;\nexport type TabSize = (typeof tabSizes)[number];\n\nexport const tabIconPositions = ['left', 'right'] as const;\nexport type TabIconPosition = (typeof tabIconPositions)[number];\n"],"names":["useDebounce","value","delay","debouncedValue","setDebouncedValue","useState","useEffect","timer","TabsProvider","useTabsContext","createContext","TabContent","forwardRef","props","ref","contentProps","localProps","createSplitProps","tabs","renderStrategyProps","useRenderStrategyPropsContext","presence","usePresence","mergedProps","mergeProps","jsx","PresenceProvider","ark","composeRefs","TabIndicator","TabList","TabTrigger","tabProps","anatomy","createAnatomy","parts","getRootId","ctx","getListId","getContentId","id","getTriggerId","getIndicatorId","getListEl","getContentEl","getTriggerEl","getIndicatorEl","getElements","selector","queryAll","getFirstTriggerEl","first","getLastTriggerEl","last","getNextTriggerEl","opts","nextById","getPrevTriggerEl","prevById","getOffsetRect","el","getRectById","tab","itemById","resolveRect","rect","connect","service","normalize","state","send","context","prop","scope","translations","focused","isVertical","isHorizontal","composite","getTriggerState","props2","fromValue","dataAttr","event","isSelfTarget","isComposingEvent","keyMap","key","getEventKey","exec","disabled","triggerState","isOpeningInNewTab","isSafari","selected","indicatorRect","indicatorTransition","createMachine","setup","machine","details","clickIfLink","bindable","track","action","raf","focusedValue","flush","nullable","triggerEl","contentEl","getFocusables","refs","cleanup","nextTick","indicatorEl","indicatorCleanup","trackElementRect","rects","isAnchorElement","createProps","useTabs","useId","getRootNode","useEnvironmentContext","dir","useLocaleContext","machineProps","useMachine","tabs.machine","tabs.connect","normalizeProps","TabsRoot","tabsProps","splitRenderStrategyProps","useTabsProps","localprops","RenderStrategyPropsProvider","TabsRootProvider","withProvider","withContext","createSlotRecipeContext","Tabs.RootProvider","Tabs.Root","TabsTrigger","Tabs.Trigger","TabsContent","Tabs.Content","TabsList","Tabs.List","Tabs.Indicator","tabNotificationCounterSize","tabLabelSize","Tab","iconName","iconPosition","label","notificationCounterProps","showNotificationCounter","size","dataTestId","rest","jsxs","Icon","Heading","NotificationCounter","Tabs","align","onChange","scrollable","tabsContent","tabList","CTabs.List","index","CTabs.Root","Box","tabContent","CTabs.Content","tabSizes","tabIconPositions"],"mappings":"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","x_google_ignoreList":[0,1,2,3,4,5,6,7,8,9,10]}
1
+ {"version":3,"file":"tab.types-xN2lQJLC.js","sources":["../../node_modules/@ark-ui/react/dist/utils/use-debounce.js","../../node_modules/@ark-ui/react/dist/components/tabs/use-tabs-context.js","../../node_modules/@ark-ui/react/dist/components/tabs/tab-content.js","../../node_modules/@ark-ui/react/dist/components/tabs/tab-indicator.js","../../node_modules/@ark-ui/react/dist/components/tabs/tab-list.js","../../node_modules/@ark-ui/react/dist/components/tabs/tab-trigger.js","../../node_modules/@zag-js/tabs/dist/index.mjs","../../node_modules/@ark-ui/react/dist/components/tabs/use-tabs.js","../../node_modules/@ark-ui/react/dist/components/tabs/tabs-root.js","../../node_modules/@ark-ui/react/dist/components/tabs/tabs-root-provider.js","../../node_modules/@chakra-ui/react/dist/esm/components/tabs/tabs.js","../../src/components/Tabs/components/Tab/tab.records.ts","../../src/components/Tabs/components/Tab/tab.component.tsx","../../src/components/Tabs/tabs.component.tsx","../../src/components/Tabs/components/Tab/tab.types.ts"],"sourcesContent":["'use client';\nimport { useState, useEffect } from 'react';\n\nfunction useDebounce(value, delay) {\n const [debouncedValue, setDebouncedValue] = useState(value);\n useEffect(() => {\n const timer = setTimeout(() => {\n setDebouncedValue(value);\n }, delay);\n return () => {\n clearTimeout(timer);\n };\n }, [value, delay]);\n return debouncedValue;\n}\n\nexport { useDebounce };\n","'use client';\nimport { createContext } from '../../utils/create-context.js';\n\nconst [TabsProvider, useTabsContext] = createContext({\n name: \"TabsContext\",\n hookName: \"useTabsContext\",\n providerName: \"<TabsProvider />\"\n});\n\nexport { TabsProvider, useTabsContext };\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 { createSplitProps } from '../../utils/create-split-props.js';\nimport { useRenderStrategyPropsContext } from '../../utils/render-strategy.js';\nimport { useDebounce } from '../../utils/use-debounce.js';\nimport { ark } from '../factory.js';\nimport { usePresence } from '../presence/use-presence.js';\nimport { PresenceProvider } from '../presence/use-presence-context.js';\nimport { useTabsContext } from './use-tabs-context.js';\n\nconst TabContent = forwardRef((props, ref) => {\n const [contentProps, localProps] = createSplitProps()(props, [\"value\"]);\n const tabs = useTabsContext();\n const renderStrategyProps = useRenderStrategyPropsContext();\n const presence = usePresence({\n ...renderStrategyProps,\n present: useDebounce(tabs.value === props.value, 0),\n immediate: true\n });\n const mergedProps = mergeProps(tabs.getContentProps(contentProps), presence.getPresenceProps(), localProps);\n return /* @__PURE__ */ jsx(PresenceProvider, { value: presence, children: presence.unmounted ? null : /* @__PURE__ */ jsx(ark.div, { ...mergedProps, ref: composeRefs(presence.ref, ref) }) });\n});\nTabContent.displayName = \"TabContent\";\n\nexport { TabContent };\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 { useTabsContext } from './use-tabs-context.js';\n\nconst TabIndicator = forwardRef((props, ref) => {\n const tabs = useTabsContext();\n const mergedProps = mergeProps(tabs.getIndicatorProps(), props);\n return /* @__PURE__ */ jsx(ark.div, { ...mergedProps, ref });\n});\nTabIndicator.displayName = \"TabIndicator\";\n\nexport { TabIndicator };\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 { useTabsContext } from './use-tabs-context.js';\n\nconst TabList = forwardRef((props, ref) => {\n const tabs = useTabsContext();\n const mergedProps = mergeProps(tabs.getListProps(), props);\n return /* @__PURE__ */ jsx(ark.div, { ...mergedProps, ref });\n});\nTabList.displayName = \"TabList\";\n\nexport { TabList };\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 { useTabsContext } from './use-tabs-context.js';\n\nconst TabTrigger = forwardRef((props, ref) => {\n const [tabProps, localProps] = createSplitProps()(props, [\"disabled\", \"value\"]);\n const tabs = useTabsContext();\n const mergedProps = mergeProps(tabs.getTriggerProps(tabProps), localProps);\n return /* @__PURE__ */ jsx(ark.button, { ...mergedProps, ref });\n});\nTabTrigger.displayName = \"TabTrigger\";\n\nexport { TabTrigger };\n","import { createAnatomy } from '@zag-js/anatomy';\nimport { isAnchorElement, trackElementRect, nextTick, raf, getFocusables, prevById, nextById, clickIfLink, itemById, queryAll, dataAttr, isOpeningInNewTab, isSafari, isSelfTarget, isComposingEvent, getEventKey } from '@zag-js/dom-query';\nimport { last, first, createSplitProps } from '@zag-js/utils';\nimport { setup } from '@zag-js/core';\nimport { createProps } from '@zag-js/types';\n\n// src/tabs.anatomy.ts\nvar anatomy = createAnatomy(\"tabs\").parts(\"root\", \"list\", \"trigger\", \"content\", \"indicator\");\nvar parts = anatomy.build();\nvar getRootId = (ctx) => ctx.ids?.root ?? `tabs:${ctx.id}`;\nvar getListId = (ctx) => ctx.ids?.list ?? `tabs:${ctx.id}:list`;\nvar getContentId = (ctx, id) => ctx.ids?.content ?? `tabs:${ctx.id}:content-${id}`;\nvar getTriggerId = (ctx, id) => ctx.ids?.trigger ?? `tabs:${ctx.id}:trigger-${id}`;\nvar getIndicatorId = (ctx) => ctx.ids?.indicator ?? `tabs:${ctx.id}:indicator`;\nvar getListEl = (ctx) => ctx.getById(getListId(ctx));\nvar getContentEl = (ctx, id) => ctx.getById(getContentId(ctx, id));\nvar getTriggerEl = (ctx, id) => ctx.getById(getTriggerId(ctx, id));\nvar getIndicatorEl = (ctx) => ctx.getById(getIndicatorId(ctx));\nvar getElements = (ctx) => {\n const ownerId = CSS.escape(getListId(ctx));\n const selector = `[role=tab][data-ownedby='${ownerId}']:not([disabled])`;\n return queryAll(getListEl(ctx), selector);\n};\nvar getFirstTriggerEl = (ctx) => first(getElements(ctx));\nvar getLastTriggerEl = (ctx) => last(getElements(ctx));\nvar getNextTriggerEl = (ctx, opts) => nextById(getElements(ctx), getTriggerId(ctx, opts.value), opts.loopFocus);\nvar getPrevTriggerEl = (ctx, opts) => prevById(getElements(ctx), getTriggerId(ctx, opts.value), opts.loopFocus);\nvar getOffsetRect = (el) => {\n return {\n left: el?.offsetLeft ?? 0,\n top: el?.offsetTop ?? 0,\n width: el?.offsetWidth ?? 0,\n height: el?.offsetHeight ?? 0\n };\n};\nvar getRectById = (ctx, id) => {\n const tab = itemById(getElements(ctx), getTriggerId(ctx, id));\n return resolveRect(getOffsetRect(tab));\n};\nvar resolveRect = (rect) => ({\n width: `${rect.width}px`,\n height: `${rect.height}px`,\n left: `${rect.left}px`,\n top: `${rect.top}px`\n});\n\n// src/tabs.connect.ts\nfunction connect(service, normalize) {\n const { state, send, context, prop, scope } = service;\n const translations = prop(\"translations\");\n const focused = state.matches(\"focused\");\n const isVertical = prop(\"orientation\") === \"vertical\";\n const isHorizontal = prop(\"orientation\") === \"horizontal\";\n const composite = prop(\"composite\");\n function getTriggerState(props2) {\n return {\n selected: context.get(\"value\") === props2.value,\n focused: context.get(\"focusedValue\") === props2.value,\n disabled: !!props2.disabled\n };\n }\n return {\n value: context.get(\"value\"),\n focusedValue: context.get(\"focusedValue\"),\n setValue(value) {\n send({ type: \"SET_VALUE\", value });\n },\n clearValue() {\n send({ type: \"CLEAR_VALUE\" });\n },\n setIndicatorRect(value) {\n const id = getTriggerId(scope, value);\n send({ type: \"SET_INDICATOR_RECT\", id });\n },\n syncTabIndex() {\n send({ type: \"SYNC_TAB_INDEX\" });\n },\n selectNext(fromValue) {\n send({ type: \"TAB_FOCUS\", value: fromValue, src: \"selectNext\" });\n send({ type: \"ARROW_NEXT\", src: \"selectNext\" });\n },\n selectPrev(fromValue) {\n send({ type: \"TAB_FOCUS\", value: fromValue, src: \"selectPrev\" });\n send({ type: \"ARROW_PREV\", src: \"selectPrev\" });\n },\n focus() {\n const value = context.get(\"value\");\n if (!value) return;\n getTriggerEl(scope, value)?.focus();\n },\n getRootProps() {\n return normalize.element({\n ...parts.root.attrs,\n id: getRootId(scope),\n \"data-orientation\": prop(\"orientation\"),\n \"data-focus\": dataAttr(focused),\n dir: prop(\"dir\")\n });\n },\n getListProps() {\n return normalize.element({\n ...parts.list.attrs,\n id: getListId(scope),\n role: \"tablist\",\n dir: prop(\"dir\"),\n \"data-focus\": dataAttr(focused),\n \"aria-orientation\": prop(\"orientation\"),\n \"data-orientation\": prop(\"orientation\"),\n \"aria-label\": translations?.listLabel,\n onKeyDown(event) {\n if (event.defaultPrevented) return;\n if (!isSelfTarget(event)) return;\n if (isComposingEvent(event)) return;\n const keyMap = {\n ArrowDown() {\n if (isHorizontal) return;\n send({ type: \"ARROW_NEXT\", key: \"ArrowDown\" });\n },\n ArrowUp() {\n if (isHorizontal) return;\n send({ type: \"ARROW_PREV\", key: \"ArrowUp\" });\n },\n ArrowLeft() {\n if (isVertical) return;\n send({ type: \"ARROW_PREV\", key: \"ArrowLeft\" });\n },\n ArrowRight() {\n if (isVertical) return;\n send({ type: \"ARROW_NEXT\", key: \"ArrowRight\" });\n },\n Home() {\n send({ type: \"HOME\" });\n },\n End() {\n send({ type: \"END\" });\n }\n };\n let key = getEventKey(event, {\n dir: prop(\"dir\"),\n orientation: prop(\"orientation\")\n });\n const exec = keyMap[key];\n if (exec) {\n event.preventDefault();\n exec(event);\n return;\n }\n }\n });\n },\n getTriggerState,\n getTriggerProps(props2) {\n const { value, disabled } = props2;\n const triggerState = getTriggerState(props2);\n return normalize.button({\n ...parts.trigger.attrs,\n role: \"tab\",\n type: \"button\",\n disabled,\n dir: prop(\"dir\"),\n \"data-orientation\": prop(\"orientation\"),\n \"data-disabled\": dataAttr(disabled),\n \"aria-disabled\": disabled,\n \"data-value\": value,\n \"aria-selected\": triggerState.selected,\n \"data-selected\": dataAttr(triggerState.selected),\n \"data-focus\": dataAttr(triggerState.focused),\n \"aria-controls\": triggerState.selected ? getContentId(scope, value) : void 0,\n \"data-ownedby\": getListId(scope),\n \"data-ssr\": dataAttr(context.get(\"ssr\")),\n id: getTriggerId(scope, value),\n tabIndex: triggerState.selected && composite ? 0 : -1,\n onFocus() {\n send({ type: \"TAB_FOCUS\", value });\n },\n onBlur(event) {\n const target = event.relatedTarget;\n if (target?.getAttribute(\"role\") !== \"tab\") {\n send({ type: \"TAB_BLUR\" });\n }\n },\n onClick(event) {\n if (event.defaultPrevented) return;\n if (isOpeningInNewTab(event)) return;\n if (disabled) return;\n if (isSafari()) {\n event.currentTarget.focus();\n }\n send({ type: \"TAB_CLICK\", value });\n }\n });\n },\n getContentProps(props2) {\n const { value } = props2;\n const selected = context.get(\"value\") === value;\n return normalize.element({\n ...parts.content.attrs,\n dir: prop(\"dir\"),\n id: getContentId(scope, value),\n tabIndex: composite ? 0 : -1,\n \"aria-labelledby\": getTriggerId(scope, value),\n role: \"tabpanel\",\n \"data-ownedby\": getListId(scope),\n \"data-selected\": dataAttr(selected),\n \"data-orientation\": prop(\"orientation\"),\n hidden: !selected\n });\n },\n getIndicatorProps() {\n const indicatorRect = context.get(\"indicatorRect\");\n const indicatorTransition = context.get(\"indicatorTransition\");\n return normalize.element({\n id: getIndicatorId(scope),\n ...parts.indicator.attrs,\n dir: prop(\"dir\"),\n \"data-orientation\": prop(\"orientation\"),\n style: {\n \"--transition-property\": \"left, right, top, bottom, width, height\",\n \"--left\": indicatorRect.left,\n \"--top\": indicatorRect.top,\n \"--width\": indicatorRect.width,\n \"--height\": indicatorRect.height,\n position: \"absolute\",\n willChange: \"var(--transition-property)\",\n transitionProperty: \"var(--transition-property)\",\n transitionDuration: indicatorTransition ? \"var(--transition-duration, 150ms)\" : \"0ms\",\n transitionTimingFunction: \"var(--transition-timing-function)\",\n [isHorizontal ? \"left\" : \"top\"]: isHorizontal ? \"var(--left)\" : \"var(--top)\"\n }\n });\n }\n };\n}\nvar { createMachine } = setup();\nvar machine = createMachine({\n props({ props: props2 }) {\n return {\n dir: \"ltr\",\n orientation: \"horizontal\",\n activationMode: \"automatic\",\n loopFocus: true,\n composite: true,\n navigate(details) {\n clickIfLink(details.node);\n },\n defaultValue: null,\n ...props2\n };\n },\n initialState() {\n return \"idle\";\n },\n context({ prop, bindable }) {\n return {\n value: bindable(() => ({\n defaultValue: prop(\"defaultValue\"),\n value: prop(\"value\"),\n onChange(value) {\n prop(\"onValueChange\")?.({ value });\n }\n })),\n focusedValue: bindable(() => ({\n defaultValue: prop(\"value\") || prop(\"defaultValue\"),\n sync: true,\n onChange(value) {\n prop(\"onFocusChange\")?.({ focusedValue: value });\n }\n })),\n ssr: bindable(() => ({ defaultValue: true })),\n indicatorTransition: bindable(() => ({ defaultValue: false })),\n indicatorRect: bindable(() => ({\n defaultValue: { left: \"0px\", top: \"0px\", width: \"0px\", height: \"0px\" }\n }))\n };\n },\n watch({ context, prop, track, action }) {\n track([() => context.get(\"value\")], () => {\n action([\"allowIndicatorTransition\", \"syncIndicatorRect\", \"syncTabIndex\", \"navigateIfNeeded\"]);\n });\n track([() => prop(\"dir\"), () => prop(\"orientation\")], () => {\n action([\"syncIndicatorRect\"]);\n });\n },\n on: {\n SET_VALUE: {\n actions: [\"setValue\"]\n },\n CLEAR_VALUE: {\n actions: [\"clearValue\"]\n },\n SET_INDICATOR_RECT: {\n actions: [\"setIndicatorRect\"]\n },\n SYNC_TAB_INDEX: {\n actions: [\"syncTabIndex\"]\n }\n },\n entry: [\"syncIndicatorRect\", \"syncTabIndex\", \"syncSsr\"],\n exit: [\"cleanupObserver\"],\n states: {\n idle: {\n on: {\n TAB_FOCUS: {\n target: \"focused\",\n actions: [\"setFocusedValue\"]\n },\n TAB_CLICK: {\n target: \"focused\",\n actions: [\"setFocusedValue\", \"setValue\"]\n }\n }\n },\n focused: {\n on: {\n TAB_CLICK: {\n actions: [\"setFocusedValue\", \"setValue\"]\n },\n ARROW_PREV: [\n {\n guard: \"selectOnFocus\",\n actions: [\"focusPrevTab\", \"selectFocusedTab\"]\n },\n {\n actions: [\"focusPrevTab\"]\n }\n ],\n ARROW_NEXT: [\n {\n guard: \"selectOnFocus\",\n actions: [\"focusNextTab\", \"selectFocusedTab\"]\n },\n {\n actions: [\"focusNextTab\"]\n }\n ],\n HOME: [\n {\n guard: \"selectOnFocus\",\n actions: [\"focusFirstTab\", \"selectFocusedTab\"]\n },\n {\n actions: [\"focusFirstTab\"]\n }\n ],\n END: [\n {\n guard: \"selectOnFocus\",\n actions: [\"focusLastTab\", \"selectFocusedTab\"]\n },\n {\n actions: [\"focusLastTab\"]\n }\n ],\n TAB_FOCUS: {\n actions: [\"setFocusedValue\"]\n },\n TAB_BLUR: {\n target: \"idle\",\n actions: [\"clearFocusedValue\"]\n }\n }\n }\n },\n implementations: {\n guards: {\n selectOnFocus: ({ prop }) => prop(\"activationMode\") === \"automatic\"\n },\n actions: {\n selectFocusedTab({ context, prop }) {\n raf(() => {\n const focusedValue = context.get(\"focusedValue\");\n if (!focusedValue) return;\n const nullable = prop(\"deselectable\") && context.get(\"value\") === focusedValue;\n const value = nullable ? null : focusedValue;\n context.set(\"value\", value);\n });\n },\n setFocusedValue({ context, event, flush }) {\n if (event.value == null) return;\n flush(() => {\n context.set(\"focusedValue\", event.value);\n });\n },\n clearFocusedValue({ context }) {\n context.set(\"focusedValue\", null);\n },\n setValue({ context, event, prop }) {\n const nullable = prop(\"deselectable\") && context.get(\"value\") === context.get(\"focusedValue\");\n context.set(\"value\", nullable ? null : event.value);\n },\n clearValue({ context }) {\n context.set(\"value\", null);\n },\n focusFirstTab({ scope }) {\n raf(() => {\n getFirstTriggerEl(scope)?.focus();\n });\n },\n focusLastTab({ scope }) {\n raf(() => {\n getLastTriggerEl(scope)?.focus();\n });\n },\n focusNextTab({ context, prop, scope, event }) {\n const focusedValue = event.value ?? context.get(\"focusedValue\");\n if (!focusedValue) return;\n const triggerEl = getNextTriggerEl(scope, {\n value: focusedValue,\n loopFocus: prop(\"loopFocus\")\n });\n raf(() => {\n if (prop(\"composite\")) {\n triggerEl?.focus();\n } else if (triggerEl?.dataset.value != null) {\n context.set(\"focusedValue\", triggerEl.dataset.value);\n }\n });\n },\n focusPrevTab({ context, prop, scope, event }) {\n const focusedValue = event.value ?? context.get(\"focusedValue\");\n if (!focusedValue) return;\n const triggerEl = getPrevTriggerEl(scope, {\n value: focusedValue,\n loopFocus: prop(\"loopFocus\")\n });\n raf(() => {\n if (prop(\"composite\")) {\n triggerEl?.focus();\n } else if (triggerEl?.dataset.value != null) {\n context.set(\"focusedValue\", triggerEl.dataset.value);\n }\n });\n },\n syncTabIndex({ context, scope }) {\n raf(() => {\n const value = context.get(\"value\");\n if (!value) return;\n const contentEl = getContentEl(scope, value);\n if (!contentEl) return;\n const focusables = getFocusables(contentEl);\n if (focusables.length > 0) {\n contentEl.removeAttribute(\"tabindex\");\n } else {\n contentEl.setAttribute(\"tabindex\", \"0\");\n }\n });\n },\n cleanupObserver({ refs }) {\n const cleanup = refs.get(\"indicatorCleanup\");\n if (cleanup) cleanup();\n },\n allowIndicatorTransition({ context }) {\n context.set(\"indicatorTransition\", true);\n },\n setIndicatorRect({ context, event, scope }) {\n const value = event.id ?? context.get(\"value\");\n const indicatorEl = getIndicatorEl(scope);\n if (!indicatorEl) return;\n if (!value) {\n context.set(\"indicatorTransition\", false);\n return;\n }\n const triggerEl = getTriggerEl(scope, value);\n if (!triggerEl) return;\n context.set(\"indicatorRect\", getRectById(scope, value));\n nextTick(() => {\n context.set(\"indicatorTransition\", false);\n });\n },\n syncSsr({ context }) {\n context.set(\"ssr\", false);\n },\n syncIndicatorRect({ context, refs, scope }) {\n const cleanup = refs.get(\"indicatorCleanup\");\n if (cleanup) cleanup();\n const value = context.get(\"value\");\n if (!value) {\n context.set(\"indicatorTransition\", false);\n return;\n }\n const triggerEl = getTriggerEl(scope, value);\n const indicatorEl = getIndicatorEl(scope);\n if (!triggerEl || !indicatorEl) return;\n const indicatorCleanup = trackElementRect([triggerEl], {\n measure(el) {\n return getOffsetRect(el);\n },\n onEntry({ rects }) {\n const [rect] = rects;\n context.set(\"indicatorRect\", resolveRect(rect));\n }\n });\n refs.set(\"indicatorCleanup\", indicatorCleanup);\n },\n navigateIfNeeded({ context, prop, scope }) {\n const value = context.get(\"value\");\n if (!value) return;\n const triggerEl = getTriggerEl(scope, value);\n if (isAnchorElement(triggerEl)) {\n prop(\"navigate\")?.({ value, node: triggerEl, href: triggerEl.href });\n }\n }\n }\n }\n});\nvar props = createProps()([\n \"activationMode\",\n \"composite\",\n \"deselectable\",\n \"dir\",\n \"getRootNode\",\n \"id\",\n \"ids\",\n \"loopFocus\",\n \"navigate\",\n \"onFocusChange\",\n \"onValueChange\",\n \"orientation\",\n \"translations\",\n \"value\",\n \"defaultValue\"\n]);\nvar splitProps = createSplitProps(props);\nvar triggerProps = createProps()([\"disabled\", \"value\"]);\nvar splitTriggerProps = createSplitProps(triggerProps);\nvar contentProps = createProps()([\"value\"]);\nvar splitContentProps = createSplitProps(contentProps);\n\nexport { anatomy, connect, contentProps, machine, props, splitContentProps, splitProps, splitTriggerProps, triggerProps };\n","'use client';\nimport { useMachine, normalizeProps } from '@zag-js/react';\nimport * as tabs from '@zag-js/tabs';\nimport { useId } from 'react';\nimport { useEnvironmentContext } from '../../providers/environment/use-environment-context.js';\nimport { useLocaleContext } from '../../providers/locale/use-locale-context.js';\n\nconst useTabs = (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(tabs.machine, machineProps);\n return tabs.connect(service, normalizeProps);\n};\n\nexport { useTabs };\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 { splitRenderStrategyProps, RenderStrategyPropsProvider } from '../../utils/render-strategy.js';\nimport { ark } from '../factory.js';\nimport { useTabs } from './use-tabs.js';\nimport { TabsProvider } from './use-tabs-context.js';\n\nconst TabsRoot = forwardRef((props, ref) => {\n const [renderStrategyProps, tabsProps] = splitRenderStrategyProps(props);\n const [useTabsProps, localprops] = createSplitProps()(tabsProps, [\n \"activationMode\",\n \"composite\",\n \"defaultValue\",\n \"deselectable\",\n \"id\",\n \"ids\",\n \"loopFocus\",\n \"navigate\",\n \"onFocusChange\",\n \"onValueChange\",\n \"orientation\",\n \"translations\",\n \"value\"\n ]);\n const tabs = useTabs(useTabsProps);\n const mergedProps = mergeProps(tabs.getRootProps(), localprops);\n return /* @__PURE__ */ jsx(TabsProvider, { value: tabs, children: /* @__PURE__ */ jsx(RenderStrategyPropsProvider, { value: renderStrategyProps, children: /* @__PURE__ */ jsx(ark.div, { ...mergedProps, ref }) }) });\n});\nTabsRoot.displayName = \"TabsRoot\";\n\nexport { TabsRoot };\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 { splitRenderStrategyProps, RenderStrategyPropsProvider } from '../../utils/render-strategy.js';\nimport { ark } from '../factory.js';\nimport { TabsProvider } from './use-tabs-context.js';\n\nconst TabsRootProvider = forwardRef((props, ref) => {\n const [renderStrategyProps, tabsProps] = splitRenderStrategyProps(props);\n const [{ value: tabs }, localprops] = createSplitProps()(tabsProps, [\"value\"]);\n const mergedProps = mergeProps(tabs.getRootProps(), localprops);\n return /* @__PURE__ */ jsx(TabsProvider, { value: tabs, children: /* @__PURE__ */ jsx(RenderStrategyPropsProvider, { value: renderStrategyProps, children: /* @__PURE__ */ jsx(ark.div, { ...mergedProps, ref }) }) });\n});\nTabsRootProvider.displayName = \"TabsRootProvider\";\n\nexport { TabsRootProvider };\n","\"use strict\";\n\"use client\";\nimport { Tabs } from '@ark-ui/react/tabs';\nimport { createSlotRecipeContext } from '../../styled-system/create-slot-recipe-context.js';\n\nconst {\n withProvider,\n withContext,\n useStyles: useTabsStyles,\n PropsProvider\n} = createSlotRecipeContext({ key: \"tabs\" });\nconst TabsRootProvider = withProvider(Tabs.RootProvider, \"root\", { forwardAsChild: true });\nconst TabsRoot = withProvider(\n Tabs.Root,\n \"root\",\n { forwardAsChild: true }\n);\nconst TabsPropsProvider = PropsProvider;\nconst TabsTrigger = withContext(\n Tabs.Trigger,\n \"trigger\",\n { forwardAsChild: true }\n);\nconst TabsContent = withContext(\n Tabs.Content,\n \"content\",\n { forwardAsChild: true }\n);\nconst TabsContentGroup = withContext(\"div\", \"contentGroup\");\nconst TabsList = withContext(\n Tabs.List,\n \"list\",\n { forwardAsChild: true }\n);\nconst TabsIndicator = withContext(\n Tabs.Indicator,\n \"indicator\",\n { forwardAsChild: true }\n);\n\nexport { TabsContent, TabsContentGroup, TabsIndicator, TabsList, TabsPropsProvider, TabsRoot, TabsRootProvider, TabsTrigger, useTabsStyles };\n","import { TabSize } from './tab.types';\nimport { NotificationCounterSize } from 'components/NotificationCounter/notificationCounter.types';\nimport { HeadingSize } from 'components/Heading/heading.types';\n\nexport const tabNotificationCounterSize: Record<TabSize, NotificationCounterSize> = {\n xs: 'sm',\n sm: 'md',\n md: 'md',\n lg: 'lg',\n};\n\nexport const tabLabelSize: Record<TabSize, HeadingSize> = {\n xs: 'xs',\n sm: 'xs',\n md: 'sm',\n lg: 'md',\n};\n","import React from 'react';\nimport { Tabs } from '@chakra-ui/react/tabs';\nimport { Icon, IconName } from 'components/Icon';\nimport {\n NotificationCounter,\n NotificationCounterProps,\n} from 'components/NotificationCounter/notificationCounter.component';\nimport { TabIconPosition, TabSize } from './tab.types';\nimport { tabLabelSize, tabNotificationCounterSize } from './tab.records';\nimport { Heading } from 'components/Heading/heading.component';\n\nexport interface TabProps extends Tabs.TriggerProps {\n /** The name of the icon to be displayed. */\n iconName?: IconName;\n /** The position of the icon. */\n iconPosition?: TabIconPosition;\n /** The label of the tab. */\n label: string;\n /** Props to customize the notification counter. */\n notificationCounterProps?: Omit<NotificationCounterProps, 'size'>;\n /** Whether to show the notification counter to the right of the label or not. */\n showNotificationCounter?: boolean;\n /**\n * The size of the tab.\n * @default md\n */\n size?: TabSize;\n /** The value of the tab. */\n value: string;\n /** Data test id for the tab. */\n 'data-testid'?: string;\n}\n\nexport const Tab = ({\n iconName,\n iconPosition = 'left',\n label,\n notificationCounterProps,\n showNotificationCounter,\n size = 'md',\n ['data-testid']: dataTestId = 'kibble-tab',\n ...rest\n}: TabProps): React.JSX.Element => {\n return (\n <Tabs.Trigger className=\"Tab\" data-testid={dataTestId} {...rest}>\n {!!iconName && iconPosition === 'left' && (\n <Icon\n className=\"Tab__Icon\"\n data-testid={`${dataTestId}-icon-left`}\n name={iconName}\n size={size}\n variant=\"default\"\n />\n )}\n <Heading as=\"span\" className=\"Tab__Label\" data-testid={`${dataTestId}-label`} size={tabLabelSize[size]}>\n {label}\n </Heading>\n {!!iconName && iconPosition === 'right' && (\n <Icon className=\"Tab__Icon\" data-testid={`${dataTestId}-icon-right`} name={iconName} size={size} />\n )}\n {showNotificationCounter && (\n <NotificationCounter\n className=\"Tab__NotificationCounter\"\n data-testid={`${dataTestId}-notification-counter`}\n {...notificationCounterProps}\n size={tabNotificationCounterSize[size]}\n />\n )}\n </Tabs.Trigger>\n );\n};\n","import React from 'react';\nimport { Tabs as CTabs } from '@chakra-ui/react/tabs';\nimport { TabSize } from './components/Tab/tab.types';\nimport { Tab, TabProps } from './components/Tab/tab.component';\nimport { Alignment } from 'shared/types/alignment';\nimport { Box } from 'chakra';\n\nexport interface TabsProps extends Omit<CTabs.RootProps, 'onChange' | 'variant'> {\n /** Alignment of the tabs. */\n align?: Alignment;\n /** Callback function when the tab changes. */\n onChange?: (value: string) => void;\n /**\n * When true, the tab list scrolls horizontally instead of wrapping or overflowing.\n * @default false\n */\n scrollable?: boolean;\n /**\n * Size of the tabs.\n * @default md\n */\n size?: TabSize;\n /** Array of tabs. Each tab should have a value prop. */\n tabs: TabProps[];\n /** Array of tab contents, each tab content should have a value prop that matches the value of their corresponding tab. */\n tabsContent?: CTabs.ContentProps[];\n /**\n * Data test id for the tabs.\n * @default kibble-tabs\n */\n 'data-testid'?: string;\n /** The current value of the tabs. */\n value?: string | null;\n}\n\nexport const Tabs = ({\n align = 'start',\n onChange,\n scrollable = false,\n size = 'md',\n tabs,\n tabsContent,\n ['data-testid']: dataTestId = 'kibble-tabs',\n ...rest\n}: TabsProps): React.JSX.Element => {\n const tabList = (\n <CTabs.List className=\"Tabs__List\" data-testid={`${dataTestId}-trigger-list`}>\n {tabs.map((tab, index) => (\n <Tab\n key={`tab-${index}`}\n {...tab}\n data-testid={`${dataTestId}-trigger-${tab.value}`}\n size={size}\n {...(scrollable && { style: { flexShrink: 0 } })}\n />\n ))}\n </CTabs.List>\n );\n\n return (\n <CTabs.Root\n className=\"Tabs\"\n data-testid={dataTestId}\n justify={align || rest.justify}\n size={size}\n onValueChange={({ value }) => onChange?.(value)}\n {...rest}\n >\n {scrollable ? (\n <Box overflowX=\"auto\" scrollbarWidth=\"none\">\n {tabList}\n </Box>\n ) : (\n tabList\n )}\n {!!tabsContent &&\n tabsContent.map((tabContent, index) => (\n <CTabs.Content\n key={`${dataTestId}-tabContent-${index}`}\n data-testid={`${dataTestId}-content-${tabs[index].value}`}\n {...tabContent}\n />\n ))}\n </CTabs.Root>\n );\n};\n","export const tabSizes = ['xs', 'sm', 'md', 'lg'] as const;\nexport type TabSize = (typeof tabSizes)[number];\n\nexport const tabIconPositions = ['left', 'right'] as const;\nexport type TabIconPosition = (typeof tabIconPositions)[number];\n"],"names":["useDebounce","value","delay","debouncedValue","setDebouncedValue","useState","useEffect","timer","TabsProvider","useTabsContext","createContext","TabContent","forwardRef","props","ref","contentProps","localProps","createSplitProps","tabs","renderStrategyProps","useRenderStrategyPropsContext","presence","usePresence","mergedProps","mergeProps","jsx","PresenceProvider","ark","composeRefs","TabIndicator","TabList","TabTrigger","tabProps","anatomy","createAnatomy","parts","getRootId","ctx","getListId","getContentId","id","getTriggerId","getIndicatorId","getListEl","getContentEl","getTriggerEl","getIndicatorEl","getElements","selector","queryAll","getFirstTriggerEl","first","getLastTriggerEl","last","getNextTriggerEl","opts","nextById","getPrevTriggerEl","prevById","getOffsetRect","el","getRectById","tab","itemById","resolveRect","rect","connect","service","normalize","state","send","context","prop","scope","translations","focused","isVertical","isHorizontal","composite","getTriggerState","props2","fromValue","dataAttr","event","isSelfTarget","isComposingEvent","keyMap","key","getEventKey","exec","disabled","triggerState","isOpeningInNewTab","isSafari","selected","indicatorRect","indicatorTransition","createMachine","setup","machine","details","clickIfLink","bindable","track","action","raf","focusedValue","flush","nullable","triggerEl","contentEl","getFocusables","refs","cleanup","nextTick","indicatorEl","indicatorCleanup","trackElementRect","rects","isAnchorElement","createProps","useTabs","useId","getRootNode","useEnvironmentContext","dir","useLocaleContext","machineProps","useMachine","tabs.machine","tabs.connect","normalizeProps","TabsRoot","tabsProps","splitRenderStrategyProps","useTabsProps","localprops","RenderStrategyPropsProvider","TabsRootProvider","withProvider","withContext","createSlotRecipeContext","Tabs.RootProvider","Tabs.Root","TabsTrigger","Tabs.Trigger","TabsContent","Tabs.Content","TabsList","Tabs.List","Tabs.Indicator","tabNotificationCounterSize","tabLabelSize","Tab","iconName","iconPosition","label","notificationCounterProps","showNotificationCounter","size","dataTestId","rest","jsxs","Icon","Heading","NotificationCounter","Tabs","align","onChange","scrollable","tabsContent","tabList","CTabs.List","index","CTabs.Root","Box","tabContent","CTabs.Content","tabSizes","tabIconPositions"],"mappings":"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","x_google_ignoreList":[0,1,2,3,4,5,6,7,8,9,10]}
@@ -2,11 +2,11 @@ import { j as e } from "./jsx-runtime-C5mzlN2N.js";
2
2
  import v, { useCallback as g } from "react";
3
3
  import { B as s } from "./index-9BerxEcw.js";
4
4
  import { B as j } from "./button.component-BO6oee_V.js";
5
- import { W as w } from "./heading.component-CpSAN3cv.js";
6
- import { M as W } from "./menu.component-WHzMw5ZI.js";
7
- import { S as $ } from "./spinner.component-CNHQ8UDz.js";
5
+ import { W as w } from "./heading.component-BBTU00_w.js";
6
+ import { M as W } from "./menu.component-DwnU1N2a.js";
7
+ import { S as $ } from "./spinner.component-CQ-JWUon.js";
8
8
  import { T as y } from "./tag.component-CMsZIhN-.js";
9
- import { W as B } from "./text.component-DhuUgP3j.js";
9
+ import { W as B } from "./text.component-C9jh_JMO.js";
10
10
  import { F as i } from "./flex-CX-8gE9T.js";
11
11
  import { H as T } from "./h-stack-8q5nAOg0.js";
12
12
  var d = /* @__PURE__ */ ((n) => (n.Inactive = "Inactive", n.Deleted = "Deleted", n))(d || {});
@@ -167,4 +167,4 @@ export {
167
167
  G as T,
168
168
  d as a
169
169
  };
170
- //# sourceMappingURL=tagBlock.component-CT7_RyJ-.js.map
170
+ //# sourceMappingURL=tagBlock.component-CNwLyYYb.js.map
@@ -1 +1 @@
1
- {"version":3,"file":"tagBlock.component-CT7_RyJ-.js","sources":["../../src/components/TagBlock/tagBlock.types.ts","../../src/components/TagBlock/tagBlock.component.tsx"],"sourcesContent":["export enum TagDisabledState {\n Inactive = 'Inactive',\n Deleted = 'Deleted',\n}\n\nexport interface TagBlockTag {\n label: string;\n value: string;\n groupLabel?: string;\n}\n","import React, { useCallback } from 'react';\nimport { Box } from '@chakra-ui/react/box';\nimport { Flex } from '@chakra-ui/react/flex';\nimport { HStack } from '@chakra-ui/react/stack';\nimport { Button } from 'components/Button/button.component';\nimport { Heading } from 'components/Heading/heading.component';\nimport { Menu, MenuProps } from 'components/Menu/menu.component';\nimport { Spinner } from 'components/Spinner/spinner.component';\nimport { Tag } from 'components/Tag/tag.component';\nimport { Text } from 'components/Text/text.component';\nimport { TagBlockTag, TagDisabledState } from './tagBlock.types';\nimport { MenuButtonProps } from 'components/Menu/components/MenuButton/menuButton.component';\n\ninterface BaseTagBlockProps {\n /**\n * If true, tags will be grouped by the `groupName` property of the tag object. If false, tags will be displayed in a single group.\n * @default false\n */\n displayTagsInGroups?: boolean;\n /**\n * The error message to be displayed if the `hasError` prop is set to true.\n * @default This field contains an error\n */\n errorText?: string;\n /**\n * If true, the tag block will show an error message and have error styling. You can customize the error message with the `errorText` prop.\n * @default false\n */\n hasError?: boolean;\n /**\n * If true, a loading spinner will cover the tag block preventing users from making further selections.\n * @default false\n */\n loading?: boolean;\n /** Configuration for the Menu component. See `Menu` stories for more information. */\n menuProps?: MenuProps;\n /** Callback function fired when user clicks the clear all button which unselects all items in the menu and removes all tags from the tag block. */\n onClearAll?: () => void;\n /** Callback function fired when user clicks the close button on an individual tag to remove the tag from the tag block. Args include the tag id of the deleted tag and an array of the remaining selected tags. */\n onRemoveTag?: (tag: string, selectedTags: TagBlockTag[]) => void;\n /** The selected items to be shown as tags in the tag block. */\n tags: TagBlockTag[];\n /** The title of the tag block, if provided, will be shown next to the add new menu button. */\n title?: string;\n /** Data test id for the tag block. */\n 'data-testid'?: string;\n}\n\ninterface DefaultTagBlockProps extends BaseTagBlockProps {\n /**\n * If true, a delete button will be shown so that the block can be removed. If set to true the `handleDelete` prop should also be specified.\n * @default false\n */\n canBeDeleted?: false;\n /** Function passed to be called when clicking the delete button on the tag block. Only relevant if the `canBeDeleted` prop is true. */\n onDelete?: never;\n}\n\ninterface DeletableTagBlockProps extends BaseTagBlockProps {\n /**\n * If true, a delete button will be shown so that the block can be removed. If set to true the `handleDelete` prop should also be specified.\n * @default false\n */\n canBeDeleted: true;\n /** Function passed to be called when clicking the delete button on the tag block. Only relevant if the `canBeDeleted` prop is true. */\n onDelete: () => void;\n}\n\nexport type TagBlockProps = DefaultTagBlockProps | DeletableTagBlockProps;\n\nconst defaultMenuButtonProps: MenuButtonProps = {\n size: 'sm',\n variant: 'secondarySubtle',\n iconName: 'plus',\n text: 'Add',\n hideCaret: true,\n};\n\nexport const TagBlock = ({\n title,\n menuProps,\n tags,\n canBeDeleted = false,\n onClearAll,\n onRemoveTag,\n onDelete,\n hasError = false,\n errorText = 'This field contains an error',\n displayTagsInGroups,\n loading = false,\n ['data-testid']: dataTestId = 'kibble-tag-block',\n}: TagBlockProps): React.JSX.Element => {\n const handleRemoveTag = useCallback(\n (value: string): void => {\n if (onRemoveTag) {\n onRemoveTag(value, tags);\n }\n },\n [onRemoveTag, tags],\n );\n\n const tagsByGroup = React.useMemo(() => {\n if (!displayTagsInGroups) {\n return [];\n }\n const grouped = {} as Record<string, TagBlockTag[]>;\n for (const tag of tags) {\n const group = tag.groupLabel || '-';\n if (!grouped[group]) {\n grouped[group] = [];\n }\n grouped[group].push(tag);\n }\n return Object.entries(grouped).map(([groupLabel, tags]) => ({\n groupLabel,\n tags,\n }));\n }, [tags, displayTagsInGroups]);\n\n const renderTags = useCallback(\n (tags: TagBlockTag[]) => {\n return tags.map((tag) => {\n const isDisabled =\n tag.label.includes(TagDisabledState.Inactive) || tag.label.includes(TagDisabledState.Deleted);\n\n return (\n <Tag\n className=\"TagBlock__Tag\"\n data-testid={`${dataTestId}-tag`}\n mr={1}\n mb={1}\n key={tag.value}\n label={tag.label}\n onClose={(): void => handleRemoveTag(tag.value)}\n closeButtonDisplay=\"always\"\n fontWeight=\"normal\"\n color={isDisabled ? 'text.placeholder' : 'text'}\n size=\"md\"\n />\n );\n });\n },\n [handleRemoveTag, dataTestId],\n );\n\n return (\n <Box\n className=\"TagBlock\"\n data-testid={dataTestId}\n position=\"relative\"\n mb={3}\n py={2}\n pl={4}\n pr={2}\n bg=\"background.subtle\"\n borderRadius=\"lg\"\n boxShadow={hasError ? `0 0 0 2px var(--chakra-colors-border-danger)` : ''}\n border=\"1px\"\n borderColor=\"border\"\n overflow={loading ? 'hidden' : undefined}\n >\n <Flex\n className=\"TagBlock__ButtonContainer\"\n data-testid={`${dataTestId}-button-container`}\n justifyContent=\"space-between\"\n >\n <HStack gap={1} minH={10}>\n {title && (\n <Text className=\"TagBlock__Title\" mr={2} fontWeight=\"bold\">\n {title}\n </Text>\n )}\n <Menu\n data-testid={`${dataTestId}-menu`}\n {...menuProps}\n buttonProps={menuProps?.buttonProps || defaultMenuButtonProps}\n />\n <Button\n className=\"TagBlock__Button--ClearAll\"\n data-testid={`${dataTestId}-clear-all-button`}\n size=\"sm\"\n iconName=\"arrowCircle\"\n variant=\"ghostNeutral\"\n onClick={onClearAll}\n disabled={tags.length <= 0}\n >\n Clear All\n </Button>\n </HStack>\n {canBeDeleted && (\n <Box>\n <Button\n className=\"TagBlock__Button--Delete\"\n data-testid={`${dataTestId}-delete-button`}\n iconName=\"trashcan\"\n variant=\"ghostNeutral\"\n onClick={onDelete}\n justifySelf=\"flex-end\"\n />\n </Box>\n )}\n </Flex>\n {Boolean(tags.length) && (\n <Flex\n className=\"TagBlock__TagContainer\"\n data-testid={`${dataTestId}-tag-container`}\n mt={2}\n pb={1}\n alignContent=\"space-between\"\n flexWrap=\"wrap\"\n justifyContent=\"flex-start\"\n alignItems=\"flex-start\"\n >\n {displayTagsInGroups && tagsByGroup.length ? (\n <Flex direction=\"column\">\n {tagsByGroup.map(({ groupLabel, tags }) => (\n <Box key={groupLabel} mb={2}>\n <Box className=\"TagBlock__GroupTitle\" data-testid={`${dataTestId}-group-title`}>\n <Heading size=\"xs\" pb={2}>\n {groupLabel}\n </Heading>\n </Box>\n <Flex\n alignContent=\"space-between\"\n flexWrap=\"wrap\"\n justifyContent=\"flex-start\"\n alignItems=\"flex-start\"\n >\n {renderTags(tags)}\n </Flex>\n </Box>\n ))}\n </Flex>\n ) : (\n renderTags(tags)\n )}\n </Flex>\n )}\n {loading && <Spinner fullScreen />}\n {hasError && (\n <Text className=\"TagBlock__Error\" data-testid={`${dataTestId}-error`} mt={2} size=\"xs\" variant=\"danger\">\n {errorText}\n </Text>\n )}\n </Box>\n );\n};\n"],"names":["TagDisabledState","defaultMenuButtonProps","TagBlock","title","menuProps","tags","canBeDeleted","onClearAll","onRemoveTag","onDelete","hasError","errorText","displayTagsInGroups","loading","dataTestId","handleRemoveTag","useCallback","value","tagsByGroup","React","grouped","tag","group","groupLabel","renderTags","isDisabled","jsx","Tag","jsxs","Box","Flex","HStack","Text","Menu","Button","Heading","Spinner"],"mappings":"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"}
1
+ {"version":3,"file":"tagBlock.component-CNwLyYYb.js","sources":["../../src/components/TagBlock/tagBlock.types.ts","../../src/components/TagBlock/tagBlock.component.tsx"],"sourcesContent":["export enum TagDisabledState {\n Inactive = 'Inactive',\n Deleted = 'Deleted',\n}\n\nexport interface TagBlockTag {\n label: string;\n value: string;\n groupLabel?: string;\n}\n","import React, { useCallback } from 'react';\nimport { Box } from '@chakra-ui/react/box';\nimport { Flex } from '@chakra-ui/react/flex';\nimport { HStack } from '@chakra-ui/react/stack';\nimport { Button } from 'components/Button/button.component';\nimport { Heading } from 'components/Heading/heading.component';\nimport { Menu, MenuProps } from 'components/Menu/menu.component';\nimport { Spinner } from 'components/Spinner/spinner.component';\nimport { Tag } from 'components/Tag/tag.component';\nimport { Text } from 'components/Text/text.component';\nimport { TagBlockTag, TagDisabledState } from './tagBlock.types';\nimport { MenuButtonProps } from 'components/Menu/components/MenuButton/menuButton.component';\n\ninterface BaseTagBlockProps {\n /**\n * If true, tags will be grouped by the `groupName` property of the tag object. If false, tags will be displayed in a single group.\n * @default false\n */\n displayTagsInGroups?: boolean;\n /**\n * The error message to be displayed if the `hasError` prop is set to true.\n * @default This field contains an error\n */\n errorText?: string;\n /**\n * If true, the tag block will show an error message and have error styling. You can customize the error message with the `errorText` prop.\n * @default false\n */\n hasError?: boolean;\n /**\n * If true, a loading spinner will cover the tag block preventing users from making further selections.\n * @default false\n */\n loading?: boolean;\n /** Configuration for the Menu component. See `Menu` stories for more information. */\n menuProps?: MenuProps;\n /** Callback function fired when user clicks the clear all button which unselects all items in the menu and removes all tags from the tag block. */\n onClearAll?: () => void;\n /** Callback function fired when user clicks the close button on an individual tag to remove the tag from the tag block. Args include the tag id of the deleted tag and an array of the remaining selected tags. */\n onRemoveTag?: (tag: string, selectedTags: TagBlockTag[]) => void;\n /** The selected items to be shown as tags in the tag block. */\n tags: TagBlockTag[];\n /** The title of the tag block, if provided, will be shown next to the add new menu button. */\n title?: string;\n /** Data test id for the tag block. */\n 'data-testid'?: string;\n}\n\ninterface DefaultTagBlockProps extends BaseTagBlockProps {\n /**\n * If true, a delete button will be shown so that the block can be removed. If set to true the `handleDelete` prop should also be specified.\n * @default false\n */\n canBeDeleted?: false;\n /** Function passed to be called when clicking the delete button on the tag block. Only relevant if the `canBeDeleted` prop is true. */\n onDelete?: never;\n}\n\ninterface DeletableTagBlockProps extends BaseTagBlockProps {\n /**\n * If true, a delete button will be shown so that the block can be removed. If set to true the `handleDelete` prop should also be specified.\n * @default false\n */\n canBeDeleted: true;\n /** Function passed to be called when clicking the delete button on the tag block. Only relevant if the `canBeDeleted` prop is true. */\n onDelete: () => void;\n}\n\nexport type TagBlockProps = DefaultTagBlockProps | DeletableTagBlockProps;\n\nconst defaultMenuButtonProps: MenuButtonProps = {\n size: 'sm',\n variant: 'secondarySubtle',\n iconName: 'plus',\n text: 'Add',\n hideCaret: true,\n};\n\nexport const TagBlock = ({\n title,\n menuProps,\n tags,\n canBeDeleted = false,\n onClearAll,\n onRemoveTag,\n onDelete,\n hasError = false,\n errorText = 'This field contains an error',\n displayTagsInGroups,\n loading = false,\n ['data-testid']: dataTestId = 'kibble-tag-block',\n}: TagBlockProps): React.JSX.Element => {\n const handleRemoveTag = useCallback(\n (value: string): void => {\n if (onRemoveTag) {\n onRemoveTag(value, tags);\n }\n },\n [onRemoveTag, tags],\n );\n\n const tagsByGroup = React.useMemo(() => {\n if (!displayTagsInGroups) {\n return [];\n }\n const grouped = {} as Record<string, TagBlockTag[]>;\n for (const tag of tags) {\n const group = tag.groupLabel || '-';\n if (!grouped[group]) {\n grouped[group] = [];\n }\n grouped[group].push(tag);\n }\n return Object.entries(grouped).map(([groupLabel, tags]) => ({\n groupLabel,\n tags,\n }));\n }, [tags, displayTagsInGroups]);\n\n const renderTags = useCallback(\n (tags: TagBlockTag[]) => {\n return tags.map((tag) => {\n const isDisabled =\n tag.label.includes(TagDisabledState.Inactive) || tag.label.includes(TagDisabledState.Deleted);\n\n return (\n <Tag\n className=\"TagBlock__Tag\"\n data-testid={`${dataTestId}-tag`}\n mr={1}\n mb={1}\n key={tag.value}\n label={tag.label}\n onClose={(): void => handleRemoveTag(tag.value)}\n closeButtonDisplay=\"always\"\n fontWeight=\"normal\"\n color={isDisabled ? 'text.placeholder' : 'text'}\n size=\"md\"\n />\n );\n });\n },\n [handleRemoveTag, dataTestId],\n );\n\n return (\n <Box\n className=\"TagBlock\"\n data-testid={dataTestId}\n position=\"relative\"\n mb={3}\n py={2}\n pl={4}\n pr={2}\n bg=\"background.subtle\"\n borderRadius=\"lg\"\n boxShadow={hasError ? `0 0 0 2px var(--chakra-colors-border-danger)` : ''}\n border=\"1px\"\n borderColor=\"border\"\n overflow={loading ? 'hidden' : undefined}\n >\n <Flex\n className=\"TagBlock__ButtonContainer\"\n data-testid={`${dataTestId}-button-container`}\n justifyContent=\"space-between\"\n >\n <HStack gap={1} minH={10}>\n {title && (\n <Text className=\"TagBlock__Title\" mr={2} fontWeight=\"bold\">\n {title}\n </Text>\n )}\n <Menu\n data-testid={`${dataTestId}-menu`}\n {...menuProps}\n buttonProps={menuProps?.buttonProps || defaultMenuButtonProps}\n />\n <Button\n className=\"TagBlock__Button--ClearAll\"\n data-testid={`${dataTestId}-clear-all-button`}\n size=\"sm\"\n iconName=\"arrowCircle\"\n variant=\"ghostNeutral\"\n onClick={onClearAll}\n disabled={tags.length <= 0}\n >\n Clear All\n </Button>\n </HStack>\n {canBeDeleted && (\n <Box>\n <Button\n className=\"TagBlock__Button--Delete\"\n data-testid={`${dataTestId}-delete-button`}\n iconName=\"trashcan\"\n variant=\"ghostNeutral\"\n onClick={onDelete}\n justifySelf=\"flex-end\"\n />\n </Box>\n )}\n </Flex>\n {Boolean(tags.length) && (\n <Flex\n className=\"TagBlock__TagContainer\"\n data-testid={`${dataTestId}-tag-container`}\n mt={2}\n pb={1}\n alignContent=\"space-between\"\n flexWrap=\"wrap\"\n justifyContent=\"flex-start\"\n alignItems=\"flex-start\"\n >\n {displayTagsInGroups && tagsByGroup.length ? (\n <Flex direction=\"column\">\n {tagsByGroup.map(({ groupLabel, tags }) => (\n <Box key={groupLabel} mb={2}>\n <Box className=\"TagBlock__GroupTitle\" data-testid={`${dataTestId}-group-title`}>\n <Heading size=\"xs\" pb={2}>\n {groupLabel}\n </Heading>\n </Box>\n <Flex\n alignContent=\"space-between\"\n flexWrap=\"wrap\"\n justifyContent=\"flex-start\"\n alignItems=\"flex-start\"\n >\n {renderTags(tags)}\n </Flex>\n </Box>\n ))}\n </Flex>\n ) : (\n renderTags(tags)\n )}\n </Flex>\n )}\n {loading && <Spinner fullScreen />}\n {hasError && (\n <Text className=\"TagBlock__Error\" data-testid={`${dataTestId}-error`} mt={2} size=\"xs\" variant=\"danger\">\n {errorText}\n </Text>\n )}\n </Box>\n );\n};\n"],"names":["TagDisabledState","defaultMenuButtonProps","TagBlock","title","menuProps","tags","canBeDeleted","onClearAll","onRemoveTag","onDelete","hasError","errorText","displayTagsInGroups","loading","dataTestId","handleRemoveTag","useCallback","value","tagsByGroup","React","grouped","tag","group","groupLabel","renderTags","isDisabled","jsx","Tag","jsxs","Box","Flex","HStack","Text","Menu","Button","Heading","Spinner"],"mappings":"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"}
@@ -1,2 +1,2 @@
1
- "use strict";const e=require("./jsx-runtime-BjDatQAs.js"),d=require("react"),a=require("./index-BQRnVsAg.js"),h=require("./button.component-DjdgBXDC.js"),E=require("./heading.component-DnoZOXdz.js"),N=require("./menu.component-D2V9Q1Y5.js"),v=require("./spinner.component-Dq6u4vVL.js"),q=require("./tag.component-C98Wf07v.js"),_=require("./text.component-BDDz5KQP.js"),i=require("./flex-BOU6tYUd.js"),w=require("./h-stack-D4MnHHRc.js"),T=n=>n&&n.__esModule?n:{default:n},$=T(d);var c=(n=>(n.Inactive="Inactive",n.Deleted="Deleted",n))(c||{});const y={size:"sm",variant:"secondarySubtle",iconName:"plus",text:"Add",hideCaret:!0},D=({title:n,menuProps:p,tags:o,canBeDeleted:B=!1,onClearAll:k,onRemoveTag:u,onDelete:R,hasError:m=!1,errorText:C="This field contains an error",displayTagsInGroups:x,loading:j=!1,["data-testid"]:r="kibble-tag-block"})=>{const b=d.useCallback(s=>{u&&u(s,o)},[u,o]),f=$.default.useMemo(()=>{if(!x)return[];const s={};for(const t of o){const l=t.groupLabel||"-";s[l]||(s[l]=[]),s[l].push(t)}return Object.entries(s).map(([t,l])=>({groupLabel:t,tags:l}))},[o,x]),g=d.useCallback(s=>s.map(t=>{const l=t.label.includes(c.Inactive)||t.label.includes(c.Deleted);return e.jsxRuntimeExports.jsx(q.Tag,{className:"TagBlock__Tag","data-testid":`${r}-tag`,mr:1,mb:1,label:t.label,onClose:()=>b(t.value),closeButtonDisplay:"always",fontWeight:"normal",color:l?"text.placeholder":"text",size:"md"},t.value)}),[b,r]);return e.jsxRuntimeExports.jsxs(a.Box,{className:"TagBlock","data-testid":r,position:"relative",mb:3,py:2,pl:4,pr:2,bg:"background.subtle",borderRadius:"lg",boxShadow:m?"0 0 0 2px var(--chakra-colors-border-danger)":"",border:"1px",borderColor:"border",overflow:j?"hidden":void 0,children:[e.jsxRuntimeExports.jsxs(i.Flex,{className:"TagBlock__ButtonContainer","data-testid":`${r}-button-container`,justifyContent:"space-between",children:[e.jsxRuntimeExports.jsxs(w.HStack,{gap:1,minH:10,children:[n&&e.jsxRuntimeExports.jsx(_.WrappedText,{className:"TagBlock__Title",mr:2,fontWeight:"bold",children:n}),e.jsxRuntimeExports.jsx(N.Menu,{"data-testid":`${r}-menu`,...p,buttonProps:p?.buttonProps||y}),e.jsxRuntimeExports.jsx(h.Button,{className:"TagBlock__Button--ClearAll","data-testid":`${r}-clear-all-button`,size:"sm",iconName:"arrowCircle",variant:"ghostNeutral",onClick:k,disabled:o.length<=0,children:"Clear All"})]}),B&&e.jsxRuntimeExports.jsx(a.Box,{children:e.jsxRuntimeExports.jsx(h.Button,{className:"TagBlock__Button--Delete","data-testid":`${r}-delete-button`,iconName:"trashcan",variant:"ghostNeutral",onClick:R,justifySelf:"flex-end"})})]}),!!o.length&&e.jsxRuntimeExports.jsx(i.Flex,{className:"TagBlock__TagContainer","data-testid":`${r}-tag-container`,mt:2,pb:1,alignContent:"space-between",flexWrap:"wrap",justifyContent:"flex-start",alignItems:"flex-start",children:x&&f.length?e.jsxRuntimeExports.jsx(i.Flex,{direction:"column",children:f.map(({groupLabel:s,tags:t})=>e.jsxRuntimeExports.jsxs(a.Box,{mb:2,children:[e.jsxRuntimeExports.jsx(a.Box,{className:"TagBlock__GroupTitle","data-testid":`${r}-group-title`,children:e.jsxRuntimeExports.jsx(E.WrappedHeading,{size:"xs",pb:2,children:s})}),e.jsxRuntimeExports.jsx(i.Flex,{alignContent:"space-between",flexWrap:"wrap",justifyContent:"flex-start",alignItems:"flex-start",children:g(t)})]},s))}):g(o)}),j&&e.jsxRuntimeExports.jsx(v.Spinner,{fullScreen:!0}),m&&e.jsxRuntimeExports.jsx(_.WrappedText,{className:"TagBlock__Error","data-testid":`${r}-error`,mt:2,size:"xs",variant:"danger",children:C})]})};exports.TagBlock=D;exports.TagDisabledState=c;
2
- //# sourceMappingURL=tagBlock.component-B899iqQP.js.map
1
+ "use strict";const e=require("./jsx-runtime-BjDatQAs.js"),d=require("react"),a=require("./index-BQRnVsAg.js"),h=require("./button.component-DjdgBXDC.js"),E=require("./heading.component-DeM4h5rY.js"),N=require("./menu.component-CNbEm3SL.js"),v=require("./spinner.component-0tE7mnxi.js"),q=require("./tag.component-C98Wf07v.js"),_=require("./text.component-D5GpbfNx.js"),i=require("./flex-BOU6tYUd.js"),w=require("./h-stack-D4MnHHRc.js"),T=n=>n&&n.__esModule?n:{default:n},$=T(d);var c=(n=>(n.Inactive="Inactive",n.Deleted="Deleted",n))(c||{});const y={size:"sm",variant:"secondarySubtle",iconName:"plus",text:"Add",hideCaret:!0},D=({title:n,menuProps:p,tags:o,canBeDeleted:B=!1,onClearAll:k,onRemoveTag:u,onDelete:R,hasError:m=!1,errorText:C="This field contains an error",displayTagsInGroups:x,loading:j=!1,["data-testid"]:r="kibble-tag-block"})=>{const b=d.useCallback(s=>{u&&u(s,o)},[u,o]),f=$.default.useMemo(()=>{if(!x)return[];const s={};for(const t of o){const l=t.groupLabel||"-";s[l]||(s[l]=[]),s[l].push(t)}return Object.entries(s).map(([t,l])=>({groupLabel:t,tags:l}))},[o,x]),g=d.useCallback(s=>s.map(t=>{const l=t.label.includes(c.Inactive)||t.label.includes(c.Deleted);return e.jsxRuntimeExports.jsx(q.Tag,{className:"TagBlock__Tag","data-testid":`${r}-tag`,mr:1,mb:1,label:t.label,onClose:()=>b(t.value),closeButtonDisplay:"always",fontWeight:"normal",color:l?"text.placeholder":"text",size:"md"},t.value)}),[b,r]);return e.jsxRuntimeExports.jsxs(a.Box,{className:"TagBlock","data-testid":r,position:"relative",mb:3,py:2,pl:4,pr:2,bg:"background.subtle",borderRadius:"lg",boxShadow:m?"0 0 0 2px var(--chakra-colors-border-danger)":"",border:"1px",borderColor:"border",overflow:j?"hidden":void 0,children:[e.jsxRuntimeExports.jsxs(i.Flex,{className:"TagBlock__ButtonContainer","data-testid":`${r}-button-container`,justifyContent:"space-between",children:[e.jsxRuntimeExports.jsxs(w.HStack,{gap:1,minH:10,children:[n&&e.jsxRuntimeExports.jsx(_.WrappedText,{className:"TagBlock__Title",mr:2,fontWeight:"bold",children:n}),e.jsxRuntimeExports.jsx(N.Menu,{"data-testid":`${r}-menu`,...p,buttonProps:p?.buttonProps||y}),e.jsxRuntimeExports.jsx(h.Button,{className:"TagBlock__Button--ClearAll","data-testid":`${r}-clear-all-button`,size:"sm",iconName:"arrowCircle",variant:"ghostNeutral",onClick:k,disabled:o.length<=0,children:"Clear All"})]}),B&&e.jsxRuntimeExports.jsx(a.Box,{children:e.jsxRuntimeExports.jsx(h.Button,{className:"TagBlock__Button--Delete","data-testid":`${r}-delete-button`,iconName:"trashcan",variant:"ghostNeutral",onClick:R,justifySelf:"flex-end"})})]}),!!o.length&&e.jsxRuntimeExports.jsx(i.Flex,{className:"TagBlock__TagContainer","data-testid":`${r}-tag-container`,mt:2,pb:1,alignContent:"space-between",flexWrap:"wrap",justifyContent:"flex-start",alignItems:"flex-start",children:x&&f.length?e.jsxRuntimeExports.jsx(i.Flex,{direction:"column",children:f.map(({groupLabel:s,tags:t})=>e.jsxRuntimeExports.jsxs(a.Box,{mb:2,children:[e.jsxRuntimeExports.jsx(a.Box,{className:"TagBlock__GroupTitle","data-testid":`${r}-group-title`,children:e.jsxRuntimeExports.jsx(E.WrappedHeading,{size:"xs",pb:2,children:s})}),e.jsxRuntimeExports.jsx(i.Flex,{alignContent:"space-between",flexWrap:"wrap",justifyContent:"flex-start",alignItems:"flex-start",children:g(t)})]},s))}):g(o)}),j&&e.jsxRuntimeExports.jsx(v.Spinner,{fullScreen:!0}),m&&e.jsxRuntimeExports.jsx(_.WrappedText,{className:"TagBlock__Error","data-testid":`${r}-error`,mt:2,size:"xs",variant:"danger",children:C})]})};exports.TagBlock=D;exports.TagDisabledState=c;
2
+ //# sourceMappingURL=tagBlock.component-fnt27QP6.js.map
@@ -1 +1 @@
1
- {"version":3,"file":"tagBlock.component-B899iqQP.js","sources":["../../src/components/TagBlock/tagBlock.types.ts","../../src/components/TagBlock/tagBlock.component.tsx"],"sourcesContent":["export enum TagDisabledState {\n Inactive = 'Inactive',\n Deleted = 'Deleted',\n}\n\nexport interface TagBlockTag {\n label: string;\n value: string;\n groupLabel?: string;\n}\n","import React, { useCallback } from 'react';\nimport { Box } from '@chakra-ui/react/box';\nimport { Flex } from '@chakra-ui/react/flex';\nimport { HStack } from '@chakra-ui/react/stack';\nimport { Button } from 'components/Button/button.component';\nimport { Heading } from 'components/Heading/heading.component';\nimport { Menu, MenuProps } from 'components/Menu/menu.component';\nimport { Spinner } from 'components/Spinner/spinner.component';\nimport { Tag } from 'components/Tag/tag.component';\nimport { Text } from 'components/Text/text.component';\nimport { TagBlockTag, TagDisabledState } from './tagBlock.types';\nimport { MenuButtonProps } from 'components/Menu/components/MenuButton/menuButton.component';\n\ninterface BaseTagBlockProps {\n /**\n * If true, tags will be grouped by the `groupName` property of the tag object. If false, tags will be displayed in a single group.\n * @default false\n */\n displayTagsInGroups?: boolean;\n /**\n * The error message to be displayed if the `hasError` prop is set to true.\n * @default This field contains an error\n */\n errorText?: string;\n /**\n * If true, the tag block will show an error message and have error styling. You can customize the error message with the `errorText` prop.\n * @default false\n */\n hasError?: boolean;\n /**\n * If true, a loading spinner will cover the tag block preventing users from making further selections.\n * @default false\n */\n loading?: boolean;\n /** Configuration for the Menu component. See `Menu` stories for more information. */\n menuProps?: MenuProps;\n /** Callback function fired when user clicks the clear all button which unselects all items in the menu and removes all tags from the tag block. */\n onClearAll?: () => void;\n /** Callback function fired when user clicks the close button on an individual tag to remove the tag from the tag block. Args include the tag id of the deleted tag and an array of the remaining selected tags. */\n onRemoveTag?: (tag: string, selectedTags: TagBlockTag[]) => void;\n /** The selected items to be shown as tags in the tag block. */\n tags: TagBlockTag[];\n /** The title of the tag block, if provided, will be shown next to the add new menu button. */\n title?: string;\n /** Data test id for the tag block. */\n 'data-testid'?: string;\n}\n\ninterface DefaultTagBlockProps extends BaseTagBlockProps {\n /**\n * If true, a delete button will be shown so that the block can be removed. If set to true the `handleDelete` prop should also be specified.\n * @default false\n */\n canBeDeleted?: false;\n /** Function passed to be called when clicking the delete button on the tag block. Only relevant if the `canBeDeleted` prop is true. */\n onDelete?: never;\n}\n\ninterface DeletableTagBlockProps extends BaseTagBlockProps {\n /**\n * If true, a delete button will be shown so that the block can be removed. If set to true the `handleDelete` prop should also be specified.\n * @default false\n */\n canBeDeleted: true;\n /** Function passed to be called when clicking the delete button on the tag block. Only relevant if the `canBeDeleted` prop is true. */\n onDelete: () => void;\n}\n\nexport type TagBlockProps = DefaultTagBlockProps | DeletableTagBlockProps;\n\nconst defaultMenuButtonProps: MenuButtonProps = {\n size: 'sm',\n variant: 'secondarySubtle',\n iconName: 'plus',\n text: 'Add',\n hideCaret: true,\n};\n\nexport const TagBlock = ({\n title,\n menuProps,\n tags,\n canBeDeleted = false,\n onClearAll,\n onRemoveTag,\n onDelete,\n hasError = false,\n errorText = 'This field contains an error',\n displayTagsInGroups,\n loading = false,\n ['data-testid']: dataTestId = 'kibble-tag-block',\n}: TagBlockProps): React.JSX.Element => {\n const handleRemoveTag = useCallback(\n (value: string): void => {\n if (onRemoveTag) {\n onRemoveTag(value, tags);\n }\n },\n [onRemoveTag, tags],\n );\n\n const tagsByGroup = React.useMemo(() => {\n if (!displayTagsInGroups) {\n return [];\n }\n const grouped = {} as Record<string, TagBlockTag[]>;\n for (const tag of tags) {\n const group = tag.groupLabel || '-';\n if (!grouped[group]) {\n grouped[group] = [];\n }\n grouped[group].push(tag);\n }\n return Object.entries(grouped).map(([groupLabel, tags]) => ({\n groupLabel,\n tags,\n }));\n }, [tags, displayTagsInGroups]);\n\n const renderTags = useCallback(\n (tags: TagBlockTag[]) => {\n return tags.map((tag) => {\n const isDisabled =\n tag.label.includes(TagDisabledState.Inactive) || tag.label.includes(TagDisabledState.Deleted);\n\n return (\n <Tag\n className=\"TagBlock__Tag\"\n data-testid={`${dataTestId}-tag`}\n mr={1}\n mb={1}\n key={tag.value}\n label={tag.label}\n onClose={(): void => handleRemoveTag(tag.value)}\n closeButtonDisplay=\"always\"\n fontWeight=\"normal\"\n color={isDisabled ? 'text.placeholder' : 'text'}\n size=\"md\"\n />\n );\n });\n },\n [handleRemoveTag, dataTestId],\n );\n\n return (\n <Box\n className=\"TagBlock\"\n data-testid={dataTestId}\n position=\"relative\"\n mb={3}\n py={2}\n pl={4}\n pr={2}\n bg=\"background.subtle\"\n borderRadius=\"lg\"\n boxShadow={hasError ? `0 0 0 2px var(--chakra-colors-border-danger)` : ''}\n border=\"1px\"\n borderColor=\"border\"\n overflow={loading ? 'hidden' : undefined}\n >\n <Flex\n className=\"TagBlock__ButtonContainer\"\n data-testid={`${dataTestId}-button-container`}\n justifyContent=\"space-between\"\n >\n <HStack gap={1} minH={10}>\n {title && (\n <Text className=\"TagBlock__Title\" mr={2} fontWeight=\"bold\">\n {title}\n </Text>\n )}\n <Menu\n data-testid={`${dataTestId}-menu`}\n {...menuProps}\n buttonProps={menuProps?.buttonProps || defaultMenuButtonProps}\n />\n <Button\n className=\"TagBlock__Button--ClearAll\"\n data-testid={`${dataTestId}-clear-all-button`}\n size=\"sm\"\n iconName=\"arrowCircle\"\n variant=\"ghostNeutral\"\n onClick={onClearAll}\n disabled={tags.length <= 0}\n >\n Clear All\n </Button>\n </HStack>\n {canBeDeleted && (\n <Box>\n <Button\n className=\"TagBlock__Button--Delete\"\n data-testid={`${dataTestId}-delete-button`}\n iconName=\"trashcan\"\n variant=\"ghostNeutral\"\n onClick={onDelete}\n justifySelf=\"flex-end\"\n />\n </Box>\n )}\n </Flex>\n {Boolean(tags.length) && (\n <Flex\n className=\"TagBlock__TagContainer\"\n data-testid={`${dataTestId}-tag-container`}\n mt={2}\n pb={1}\n alignContent=\"space-between\"\n flexWrap=\"wrap\"\n justifyContent=\"flex-start\"\n alignItems=\"flex-start\"\n >\n {displayTagsInGroups && tagsByGroup.length ? (\n <Flex direction=\"column\">\n {tagsByGroup.map(({ groupLabel, tags }) => (\n <Box key={groupLabel} mb={2}>\n <Box className=\"TagBlock__GroupTitle\" data-testid={`${dataTestId}-group-title`}>\n <Heading size=\"xs\" pb={2}>\n {groupLabel}\n </Heading>\n </Box>\n <Flex\n alignContent=\"space-between\"\n flexWrap=\"wrap\"\n justifyContent=\"flex-start\"\n alignItems=\"flex-start\"\n >\n {renderTags(tags)}\n </Flex>\n </Box>\n ))}\n </Flex>\n ) : (\n renderTags(tags)\n )}\n </Flex>\n )}\n {loading && <Spinner fullScreen />}\n {hasError && (\n <Text className=\"TagBlock__Error\" data-testid={`${dataTestId}-error`} mt={2} size=\"xs\" variant=\"danger\">\n {errorText}\n </Text>\n )}\n </Box>\n );\n};\n"],"names":["TagDisabledState","defaultMenuButtonProps","TagBlock","title","menuProps","tags","canBeDeleted","onClearAll","onRemoveTag","onDelete","hasError","errorText","displayTagsInGroups","loading","dataTestId","handleRemoveTag","useCallback","value","tagsByGroup","React","grouped","tag","group","groupLabel","renderTags","isDisabled","jsx","Tag","jsxs","Box","Flex","HStack","Text","Menu","Button","Heading","Spinner"],"mappings":"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"}
1
+ {"version":3,"file":"tagBlock.component-fnt27QP6.js","sources":["../../src/components/TagBlock/tagBlock.types.ts","../../src/components/TagBlock/tagBlock.component.tsx"],"sourcesContent":["export enum TagDisabledState {\n Inactive = 'Inactive',\n Deleted = 'Deleted',\n}\n\nexport interface TagBlockTag {\n label: string;\n value: string;\n groupLabel?: string;\n}\n","import React, { useCallback } from 'react';\nimport { Box } from '@chakra-ui/react/box';\nimport { Flex } from '@chakra-ui/react/flex';\nimport { HStack } from '@chakra-ui/react/stack';\nimport { Button } from 'components/Button/button.component';\nimport { Heading } from 'components/Heading/heading.component';\nimport { Menu, MenuProps } from 'components/Menu/menu.component';\nimport { Spinner } from 'components/Spinner/spinner.component';\nimport { Tag } from 'components/Tag/tag.component';\nimport { Text } from 'components/Text/text.component';\nimport { TagBlockTag, TagDisabledState } from './tagBlock.types';\nimport { MenuButtonProps } from 'components/Menu/components/MenuButton/menuButton.component';\n\ninterface BaseTagBlockProps {\n /**\n * If true, tags will be grouped by the `groupName` property of the tag object. If false, tags will be displayed in a single group.\n * @default false\n */\n displayTagsInGroups?: boolean;\n /**\n * The error message to be displayed if the `hasError` prop is set to true.\n * @default This field contains an error\n */\n errorText?: string;\n /**\n * If true, the tag block will show an error message and have error styling. You can customize the error message with the `errorText` prop.\n * @default false\n */\n hasError?: boolean;\n /**\n * If true, a loading spinner will cover the tag block preventing users from making further selections.\n * @default false\n */\n loading?: boolean;\n /** Configuration for the Menu component. See `Menu` stories for more information. */\n menuProps?: MenuProps;\n /** Callback function fired when user clicks the clear all button which unselects all items in the menu and removes all tags from the tag block. */\n onClearAll?: () => void;\n /** Callback function fired when user clicks the close button on an individual tag to remove the tag from the tag block. Args include the tag id of the deleted tag and an array of the remaining selected tags. */\n onRemoveTag?: (tag: string, selectedTags: TagBlockTag[]) => void;\n /** The selected items to be shown as tags in the tag block. */\n tags: TagBlockTag[];\n /** The title of the tag block, if provided, will be shown next to the add new menu button. */\n title?: string;\n /** Data test id for the tag block. */\n 'data-testid'?: string;\n}\n\ninterface DefaultTagBlockProps extends BaseTagBlockProps {\n /**\n * If true, a delete button will be shown so that the block can be removed. If set to true the `handleDelete` prop should also be specified.\n * @default false\n */\n canBeDeleted?: false;\n /** Function passed to be called when clicking the delete button on the tag block. Only relevant if the `canBeDeleted` prop is true. */\n onDelete?: never;\n}\n\ninterface DeletableTagBlockProps extends BaseTagBlockProps {\n /**\n * If true, a delete button will be shown so that the block can be removed. If set to true the `handleDelete` prop should also be specified.\n * @default false\n */\n canBeDeleted: true;\n /** Function passed to be called when clicking the delete button on the tag block. Only relevant if the `canBeDeleted` prop is true. */\n onDelete: () => void;\n}\n\nexport type TagBlockProps = DefaultTagBlockProps | DeletableTagBlockProps;\n\nconst defaultMenuButtonProps: MenuButtonProps = {\n size: 'sm',\n variant: 'secondarySubtle',\n iconName: 'plus',\n text: 'Add',\n hideCaret: true,\n};\n\nexport const TagBlock = ({\n title,\n menuProps,\n tags,\n canBeDeleted = false,\n onClearAll,\n onRemoveTag,\n onDelete,\n hasError = false,\n errorText = 'This field contains an error',\n displayTagsInGroups,\n loading = false,\n ['data-testid']: dataTestId = 'kibble-tag-block',\n}: TagBlockProps): React.JSX.Element => {\n const handleRemoveTag = useCallback(\n (value: string): void => {\n if (onRemoveTag) {\n onRemoveTag(value, tags);\n }\n },\n [onRemoveTag, tags],\n );\n\n const tagsByGroup = React.useMemo(() => {\n if (!displayTagsInGroups) {\n return [];\n }\n const grouped = {} as Record<string, TagBlockTag[]>;\n for (const tag of tags) {\n const group = tag.groupLabel || '-';\n if (!grouped[group]) {\n grouped[group] = [];\n }\n grouped[group].push(tag);\n }\n return Object.entries(grouped).map(([groupLabel, tags]) => ({\n groupLabel,\n tags,\n }));\n }, [tags, displayTagsInGroups]);\n\n const renderTags = useCallback(\n (tags: TagBlockTag[]) => {\n return tags.map((tag) => {\n const isDisabled =\n tag.label.includes(TagDisabledState.Inactive) || tag.label.includes(TagDisabledState.Deleted);\n\n return (\n <Tag\n className=\"TagBlock__Tag\"\n data-testid={`${dataTestId}-tag`}\n mr={1}\n mb={1}\n key={tag.value}\n label={tag.label}\n onClose={(): void => handleRemoveTag(tag.value)}\n closeButtonDisplay=\"always\"\n fontWeight=\"normal\"\n color={isDisabled ? 'text.placeholder' : 'text'}\n size=\"md\"\n />\n );\n });\n },\n [handleRemoveTag, dataTestId],\n );\n\n return (\n <Box\n className=\"TagBlock\"\n data-testid={dataTestId}\n position=\"relative\"\n mb={3}\n py={2}\n pl={4}\n pr={2}\n bg=\"background.subtle\"\n borderRadius=\"lg\"\n boxShadow={hasError ? `0 0 0 2px var(--chakra-colors-border-danger)` : ''}\n border=\"1px\"\n borderColor=\"border\"\n overflow={loading ? 'hidden' : undefined}\n >\n <Flex\n className=\"TagBlock__ButtonContainer\"\n data-testid={`${dataTestId}-button-container`}\n justifyContent=\"space-between\"\n >\n <HStack gap={1} minH={10}>\n {title && (\n <Text className=\"TagBlock__Title\" mr={2} fontWeight=\"bold\">\n {title}\n </Text>\n )}\n <Menu\n data-testid={`${dataTestId}-menu`}\n {...menuProps}\n buttonProps={menuProps?.buttonProps || defaultMenuButtonProps}\n />\n <Button\n className=\"TagBlock__Button--ClearAll\"\n data-testid={`${dataTestId}-clear-all-button`}\n size=\"sm\"\n iconName=\"arrowCircle\"\n variant=\"ghostNeutral\"\n onClick={onClearAll}\n disabled={tags.length <= 0}\n >\n Clear All\n </Button>\n </HStack>\n {canBeDeleted && (\n <Box>\n <Button\n className=\"TagBlock__Button--Delete\"\n data-testid={`${dataTestId}-delete-button`}\n iconName=\"trashcan\"\n variant=\"ghostNeutral\"\n onClick={onDelete}\n justifySelf=\"flex-end\"\n />\n </Box>\n )}\n </Flex>\n {Boolean(tags.length) && (\n <Flex\n className=\"TagBlock__TagContainer\"\n data-testid={`${dataTestId}-tag-container`}\n mt={2}\n pb={1}\n alignContent=\"space-between\"\n flexWrap=\"wrap\"\n justifyContent=\"flex-start\"\n alignItems=\"flex-start\"\n >\n {displayTagsInGroups && tagsByGroup.length ? (\n <Flex direction=\"column\">\n {tagsByGroup.map(({ groupLabel, tags }) => (\n <Box key={groupLabel} mb={2}>\n <Box className=\"TagBlock__GroupTitle\" data-testid={`${dataTestId}-group-title`}>\n <Heading size=\"xs\" pb={2}>\n {groupLabel}\n </Heading>\n </Box>\n <Flex\n alignContent=\"space-between\"\n flexWrap=\"wrap\"\n justifyContent=\"flex-start\"\n alignItems=\"flex-start\"\n >\n {renderTags(tags)}\n </Flex>\n </Box>\n ))}\n </Flex>\n ) : (\n renderTags(tags)\n )}\n </Flex>\n )}\n {loading && <Spinner fullScreen />}\n {hasError && (\n <Text className=\"TagBlock__Error\" data-testid={`${dataTestId}-error`} mt={2} size=\"xs\" variant=\"danger\">\n {errorText}\n </Text>\n )}\n </Box>\n );\n};\n"],"names":["TagDisabledState","defaultMenuButtonProps","TagBlock","title","menuProps","tags","canBeDeleted","onClearAll","onRemoveTag","onDelete","hasError","errorText","displayTagsInGroups","loading","dataTestId","handleRemoveTag","useCallback","value","tagsByGroup","React","grouped","tag","group","groupLabel","renderTags","isDisabled","jsx","Tag","jsxs","Box","Flex","HStack","Text","Menu","Button","Heading","Spinner"],"mappings":"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"}
@@ -1,6 +1,6 @@
1
1
  import { j as o } from "./jsx-runtime-C5mzlN2N.js";
2
2
  import { c as r } from "./create-recipe-context-DfQ-MTih.js";
3
- import { w as x } from "./withTruncation-B2GhwmHG.js";
3
+ import { w as x } from "./withTruncation-DW62mTHW.js";
4
4
  const { withContext: i } = r({
5
5
  key: "text"
6
6
  }), n = i("p"), t = ({ children: e, ["data-testid"]: s = "kibble-text", ...a }) => /* @__PURE__ */ o.jsx(n, { className: "Text", "data-testid": s, ...a, children: e });
@@ -9,4 +9,4 @@ const d = x(t);
9
9
  export {
10
10
  d as W
11
11
  };
12
- //# sourceMappingURL=text.component-DhuUgP3j.js.map
12
+ //# sourceMappingURL=text.component-C9jh_JMO.js.map
@@ -1 +1 @@
1
- {"version":3,"file":"text.component-DhuUgP3j.js","sources":["../../node_modules/@chakra-ui/react/dist/esm/components/text/index.js","../../src/components/Text/text.component.tsx"],"sourcesContent":["\"use strict\";\n\"use client\";\nimport { createRecipeContext } from '../../styled-system/create-recipe-context.js';\n\nconst { withContext, PropsProvider } = createRecipeContext({\n key: \"text\"\n});\nconst Text = withContext(\"p\");\nconst TextPropsProvider = PropsProvider;\n\nexport { Text, TextPropsProvider };\n","import React from 'react';\nimport { Text as CText, TextProps as CTextProps } from '@chakra-ui/react/text';\nimport { withTruncation, WithTruncationProps } from 'hocs/withTruncation';\nimport { TextSize } from './text.types';\nimport { TypographyVariant } from 'shared/types/typography';\nimport { ConditionalValue } from '@chakra-ui/react/styled-system';\n\nexport interface TextProps extends WithTruncationProps, Omit<CTextProps, 'truncate'> {\n /**\n * Size of the text.\n * @default md\n */\n size?: ConditionalValue<TextSize>;\n /**\n * Color variant of the text.\n * @default default\n */\n variant?: TypographyVariant;\n /**\n * Data test id for the text.\n * @default kibble-text\n */\n 'data-testid'?: string;\n}\n\nconst Text = ({ children, ['data-testid']: dataTestId = 'kibble-text', ...rest }: TextProps): React.JSX.Element => {\n return (\n <CText className=\"Text\" data-testid={dataTestId} {...rest}>\n {children}\n </CText>\n );\n};\n\nText.displayName = 'Text';\n\nconst WrappedText = withTruncation(Text);\n\nexport { WrappedText as Text };\n"],"names":["withContext","createRecipeContext","Text","children","dataTestId","rest","jsx","CText","WrappedText","withTruncation"],"mappings":";;;AAIA,MAAM,EAAE,aAAAA,EAA2B,IAAIC,EAAoB;AAAA,EACzD,KAAK;AACP,CAAC,GACKC,IAAOF,EAAY,GAAG,GCkBtBE,IAAO,CAAC,EAAE,UAAAC,GAAU,CAAC,gBAAgBC,IAAa,eAAe,GAAGC,QAEtEC,gBAAAA,EAAA,IAACC,KAAM,WAAU,QAAO,eAAaH,GAAa,GAAGC,GAClD,UAAAF,GACH;AAIJD,EAAK,cAAc;AAEb,MAAAM,IAAcC,EAAeP,CAAI;","x_google_ignoreList":[0]}
1
+ {"version":3,"file":"text.component-C9jh_JMO.js","sources":["../../node_modules/@chakra-ui/react/dist/esm/components/text/index.js","../../src/components/Text/text.component.tsx"],"sourcesContent":["\"use strict\";\n\"use client\";\nimport { createRecipeContext } from '../../styled-system/create-recipe-context.js';\n\nconst { withContext, PropsProvider } = createRecipeContext({\n key: \"text\"\n});\nconst Text = withContext(\"p\");\nconst TextPropsProvider = PropsProvider;\n\nexport { Text, TextPropsProvider };\n","import React from 'react';\nimport { Text as CText, TextProps as CTextProps } from '@chakra-ui/react/text';\nimport { withTruncation, WithTruncationProps } from 'hocs/withTruncation';\nimport { TextSize } from './text.types';\nimport { TypographyVariant } from 'shared/types/typography';\nimport { ConditionalValue } from '@chakra-ui/react/styled-system';\n\nexport interface TextProps extends WithTruncationProps, Omit<CTextProps, 'truncate'> {\n /**\n * Size of the text.\n * @default md\n */\n size?: ConditionalValue<TextSize>;\n /**\n * Color variant of the text.\n * @default default\n */\n variant?: TypographyVariant;\n /**\n * Data test id for the text.\n * @default kibble-text\n */\n 'data-testid'?: string;\n}\n\nconst Text = ({ children, ['data-testid']: dataTestId = 'kibble-text', ...rest }: TextProps): React.JSX.Element => {\n return (\n <CText className=\"Text\" data-testid={dataTestId} {...rest}>\n {children}\n </CText>\n );\n};\n\nText.displayName = 'Text';\n\nconst WrappedText = withTruncation(Text);\n\nexport { WrappedText as Text };\n"],"names":["withContext","createRecipeContext","Text","children","dataTestId","rest","jsx","CText","WrappedText","withTruncation"],"mappings":";;;AAIA,MAAM,EAAE,aAAAA,EAA2B,IAAIC,EAAoB;AAAA,EACzD,KAAK;AACP,CAAC,GACKC,IAAOF,EAAY,GAAG,GCkBtBE,IAAO,CAAC,EAAE,UAAAC,GAAU,CAAC,gBAAgBC,IAAa,eAAe,GAAGC,QAEtEC,gBAAAA,EAAA,IAACC,KAAM,WAAU,QAAO,eAAaH,GAAa,GAAGC,GAClD,UAAAF,GACH;AAIJD,EAAK,cAAc;AAEb,MAAAM,IAAcC,EAAeP,CAAI;","x_google_ignoreList":[0]}
@@ -1,2 +1,2 @@
1
- "use strict";const n=require("./jsx-runtime-BjDatQAs.js"),r=require("./create-recipe-context-CDw-39SC.js"),c=require("./withTruncation-pzYbtqYw.js"),{withContext:x}=r.createRecipeContext({key:"text"}),a=x("p"),t=({children:e,["data-testid"]:s="kibble-text",...i})=>n.jsxRuntimeExports.jsx(a,{className:"Text","data-testid":s,...i,children:e});t.displayName="Text";const o=c.withTruncation(t);exports.WrappedText=o;
2
- //# sourceMappingURL=text.component-BDDz5KQP.js.map
1
+ "use strict";const n=require("./jsx-runtime-BjDatQAs.js"),r=require("./create-recipe-context-CDw-39SC.js"),c=require("./withTruncation-D0mlwwep.js"),{withContext:x}=r.createRecipeContext({key:"text"}),a=x("p"),t=({children:e,["data-testid"]:s="kibble-text",...i})=>n.jsxRuntimeExports.jsx(a,{className:"Text","data-testid":s,...i,children:e});t.displayName="Text";const o=c.withTruncation(t);exports.WrappedText=o;
2
+ //# sourceMappingURL=text.component-D5GpbfNx.js.map
@@ -1 +1 @@
1
- {"version":3,"file":"text.component-BDDz5KQP.js","sources":["../../node_modules/@chakra-ui/react/dist/esm/components/text/index.js","../../src/components/Text/text.component.tsx"],"sourcesContent":["\"use strict\";\n\"use client\";\nimport { createRecipeContext } from '../../styled-system/create-recipe-context.js';\n\nconst { withContext, PropsProvider } = createRecipeContext({\n key: \"text\"\n});\nconst Text = withContext(\"p\");\nconst TextPropsProvider = PropsProvider;\n\nexport { Text, TextPropsProvider };\n","import React from 'react';\nimport { Text as CText, TextProps as CTextProps } from '@chakra-ui/react/text';\nimport { withTruncation, WithTruncationProps } from 'hocs/withTruncation';\nimport { TextSize } from './text.types';\nimport { TypographyVariant } from 'shared/types/typography';\nimport { ConditionalValue } from '@chakra-ui/react/styled-system';\n\nexport interface TextProps extends WithTruncationProps, Omit<CTextProps, 'truncate'> {\n /**\n * Size of the text.\n * @default md\n */\n size?: ConditionalValue<TextSize>;\n /**\n * Color variant of the text.\n * @default default\n */\n variant?: TypographyVariant;\n /**\n * Data test id for the text.\n * @default kibble-text\n */\n 'data-testid'?: string;\n}\n\nconst Text = ({ children, ['data-testid']: dataTestId = 'kibble-text', ...rest }: TextProps): React.JSX.Element => {\n return (\n <CText className=\"Text\" data-testid={dataTestId} {...rest}>\n {children}\n </CText>\n );\n};\n\nText.displayName = 'Text';\n\nconst WrappedText = withTruncation(Text);\n\nexport { WrappedText as Text };\n"],"names":["withContext","createRecipeContext","Text","children","dataTestId","rest","jsx","CText","WrappedText","withTruncation"],"mappings":"qJAIM,CAAE,YAAAA,CAA2B,EAAIC,sBAAoB,CACzD,IAAK,MACP,CAAC,EACKC,EAAOF,EAAY,GAAG,ECkBtBE,EAAO,CAAC,CAAE,SAAAC,EAAU,CAAC,eAAgBC,EAAa,cAAe,GAAGC,KAEtEC,EAAA,kBAAA,IAACC,GAAM,UAAU,OAAO,cAAaH,EAAa,GAAGC,EAClD,SAAAF,EACH,EAIJD,EAAK,YAAc,OAEb,MAAAM,EAAcC,iBAAeP,CAAI","x_google_ignoreList":[0]}
1
+ {"version":3,"file":"text.component-D5GpbfNx.js","sources":["../../node_modules/@chakra-ui/react/dist/esm/components/text/index.js","../../src/components/Text/text.component.tsx"],"sourcesContent":["\"use strict\";\n\"use client\";\nimport { createRecipeContext } from '../../styled-system/create-recipe-context.js';\n\nconst { withContext, PropsProvider } = createRecipeContext({\n key: \"text\"\n});\nconst Text = withContext(\"p\");\nconst TextPropsProvider = PropsProvider;\n\nexport { Text, TextPropsProvider };\n","import React from 'react';\nimport { Text as CText, TextProps as CTextProps } from '@chakra-ui/react/text';\nimport { withTruncation, WithTruncationProps } from 'hocs/withTruncation';\nimport { TextSize } from './text.types';\nimport { TypographyVariant } from 'shared/types/typography';\nimport { ConditionalValue } from '@chakra-ui/react/styled-system';\n\nexport interface TextProps extends WithTruncationProps, Omit<CTextProps, 'truncate'> {\n /**\n * Size of the text.\n * @default md\n */\n size?: ConditionalValue<TextSize>;\n /**\n * Color variant of the text.\n * @default default\n */\n variant?: TypographyVariant;\n /**\n * Data test id for the text.\n * @default kibble-text\n */\n 'data-testid'?: string;\n}\n\nconst Text = ({ children, ['data-testid']: dataTestId = 'kibble-text', ...rest }: TextProps): React.JSX.Element => {\n return (\n <CText className=\"Text\" data-testid={dataTestId} {...rest}>\n {children}\n </CText>\n );\n};\n\nText.displayName = 'Text';\n\nconst WrappedText = withTruncation(Text);\n\nexport { WrappedText as Text };\n"],"names":["withContext","createRecipeContext","Text","children","dataTestId","rest","jsx","CText","WrappedText","withTruncation"],"mappings":"qJAIM,CAAE,YAAAA,CAA2B,EAAIC,sBAAoB,CACzD,IAAK,MACP,CAAC,EACKC,EAAOF,EAAY,GAAG,ECkBtBE,EAAO,CAAC,CAAE,SAAAC,EAAU,CAAC,eAAgBC,EAAa,cAAe,GAAGC,KAEtEC,EAAA,kBAAA,IAACC,GAAM,UAAU,OAAO,cAAaH,EAAa,GAAGC,EAClD,SAAAF,EACH,EAIJD,EAAK,YAAc,OAEb,MAAAM,EAAcC,iBAAeP,CAAI","x_google_ignoreList":[0]}
@@ -1,2 +1,2 @@
1
- "use strict";const e=require("./jsx-runtime-BjDatQAs.js"),u=require("react"),g=require("./withFormControl-QV_Jridv.js"),q=require("./button.component-DjdgBXDC.js"),E=require("./characterCounter.component-BRHLt929.js"),N=require("./flex-BOU6tYUd.js"),w=require("./input-group-DUdSDk4o.js"),F=require("./create-recipe-context-CDw-39SC.js"),b=require("./use-locale-context-ym21RUxU.js"),y=require("./use-field-context-Cm29IQ7H.js"),P=require("./index-CQURjLlA.js"),T=t=>t&&t.__esModule?t:{default:t},k=T(u),l=u.forwardRef((t,s)=>{const r=y.useFieldContext(),i=P.mergeProps(r?.getInputProps(),t);return e.jsxRuntimeExports.jsx(b.ark.input,{...i,ref:s})});l.displayName="FieldInput";const{withContext:D}=F.createRecipeContext({key:"input"}),B=D(l),G={sm:"xs",md:"sm",lg:"md"},d=k.default.forwardRef(({charLimit:t=void 0,clearable:s=!1,disabled:r=!1,inputRef:i,invalid:x,leftAddon:m,leftElement:f,onClear:a,onContrast:C,rightAddon:_,rightElement:c,size:p="md",value:n,["data-testid"]:o="kibble-text-input",...h},j)=>{const I=()=>{a&&a(n||"")};s&&n&&!r&&(c=e.jsxRuntimeExports.jsx(q.Button,{className:"TextInput__ClearButton","data-testid":`${o}-clear-button`,size:G[p],variant:"ghostNeutral",onClick:I,iconName:"close"}));const R=u.useMemo(()=>n?.toString()?.length||0,[n]);return e.jsxRuntimeExports.jsxs(N.Flex,{className:"TextInput__Wrapper",w:"100%",flexDirection:"column",gap:1,alignItems:"flex-end",children:[e.jsxRuntimeExports.jsx(w.InputGroup,{className:"TextInput__InputGroup","data-testid":`${o}-input-group`,startElement:f,startElementProps:{color:"inherit",_groupDisabled:{opacity:.6}},endElement:c,endElementProps:{color:"inherit",paddingInline:1.5,_groupDisabled:{opacity:.6}},startAddon:m,endAddon:_,children:e.jsxRuntimeExports.jsx(B,{"data-testid":o,className:"TextInput",ref:i||j,value:n,size:p,disabled:r,...x&&{"aria-invalid":!0},variant:C?"onContrast":"default",...h})}),!!t&&e.jsxRuntimeExports.jsx(E.CharacterCounter,{"data-testid":`${o}-character-counter`,withLimit:!0,limit:t,currentCount:R})]})});d.displayName="TextInput";const M=g.withFormControl(d);exports.WrappedTextInput=M;
2
- //# sourceMappingURL=textInput.component-CwTc0h_F.js.map
1
+ "use strict";const e=require("./jsx-runtime-BjDatQAs.js"),u=require("react"),g=require("./withFormControl-d2CEvsH2.js"),q=require("./button.component-DjdgBXDC.js"),E=require("./characterCounter.component-CczgC612.js"),N=require("./flex-BOU6tYUd.js"),w=require("./input-group-DUdSDk4o.js"),F=require("./create-recipe-context-CDw-39SC.js"),b=require("./use-locale-context-ym21RUxU.js"),y=require("./use-field-context-Cm29IQ7H.js"),P=require("./index-CQURjLlA.js"),T=t=>t&&t.__esModule?t:{default:t},k=T(u),l=u.forwardRef((t,s)=>{const r=y.useFieldContext(),i=P.mergeProps(r?.getInputProps(),t);return e.jsxRuntimeExports.jsx(b.ark.input,{...i,ref:s})});l.displayName="FieldInput";const{withContext:D}=F.createRecipeContext({key:"input"}),B=D(l),G={sm:"xs",md:"sm",lg:"md"},d=k.default.forwardRef(({charLimit:t=void 0,clearable:s=!1,disabled:r=!1,inputRef:i,invalid:x,leftAddon:m,leftElement:f,onClear:a,onContrast:C,rightAddon:_,rightElement:c,size:p="md",value:n,["data-testid"]:o="kibble-text-input",...h},j)=>{const I=()=>{a&&a(n||"")};s&&n&&!r&&(c=e.jsxRuntimeExports.jsx(q.Button,{className:"TextInput__ClearButton","data-testid":`${o}-clear-button`,size:G[p],variant:"ghostNeutral",onClick:I,iconName:"close"}));const R=u.useMemo(()=>n?.toString()?.length||0,[n]);return e.jsxRuntimeExports.jsxs(N.Flex,{className:"TextInput__Wrapper",w:"100%",flexDirection:"column",gap:1,alignItems:"flex-end",children:[e.jsxRuntimeExports.jsx(w.InputGroup,{className:"TextInput__InputGroup","data-testid":`${o}-input-group`,startElement:f,startElementProps:{color:"inherit",_groupDisabled:{opacity:.6}},endElement:c,endElementProps:{color:"inherit",paddingInline:1.5,_groupDisabled:{opacity:.6}},startAddon:m,endAddon:_,children:e.jsxRuntimeExports.jsx(B,{"data-testid":o,className:"TextInput",ref:i||j,value:n,size:p,disabled:r,...x&&{"aria-invalid":!0},variant:C?"onContrast":"default",...h})}),!!t&&e.jsxRuntimeExports.jsx(E.CharacterCounter,{"data-testid":`${o}-character-counter`,withLimit:!0,limit:t,currentCount:R})]})});d.displayName="TextInput";const M=g.withFormControl(d);exports.WrappedTextInput=M;
2
+ //# sourceMappingURL=textInput.component-BDJuvT1c.js.map
@@ -1 +1 @@
1
- {"version":3,"file":"textInput.component-CwTc0h_F.js","sources":["../../node_modules/@ark-ui/react/dist/components/field/field-input.js","../../node_modules/@chakra-ui/react/dist/esm/components/input/input.js","../../src/components/TextInput/textInput.records.ts","../../src/components/TextInput/textInput.component.tsx"],"sourcesContent":["'use client';\nimport { jsx } from 'react/jsx-runtime';\nimport { mergeProps } from '@zag-js/react';\nimport { forwardRef } from 'react';\nimport { ark } from '../factory.js';\nimport { useFieldContext } from './use-field-context.js';\n\nconst FieldInput = forwardRef((props, ref) => {\n const field = useFieldContext();\n const mergedProps = mergeProps(field?.getInputProps(), props);\n return /* @__PURE__ */ jsx(ark.input, { ...mergedProps, ref });\n});\nFieldInput.displayName = \"FieldInput\";\n\nexport { FieldInput };\n","\"use strict\";\n\"use client\";\nimport { Field } from '@ark-ui/react/field';\nimport { createRecipeContext } from '../../styled-system/create-recipe-context.js';\n\nconst { withContext, PropsProvider } = createRecipeContext({\n key: \"input\"\n});\nconst Input = withContext(Field.Input);\nconst InputPropsProvider = PropsProvider;\n\nexport { Input, InputPropsProvider };\n","import { ButtonSize } from 'components/Button/button.types';\nimport { FormControlSize } from 'hocs/withFormControl/withFormControl.types';\n\nexport const closeButtonSizeMap: Record<FormControlSize, ButtonSize> = {\n sm: 'xs',\n md: 'sm',\n lg: 'md',\n};\n","import React, { useMemo } from 'react';\nimport { Flex } from '@chakra-ui/react/flex';\nimport { withFormControl, WithFormControlProps } from 'hocs/withFormControl/withFormControl';\nimport { Input as CInput, InputProps as CInputProps } from '@chakra-ui/react/input';\nimport { InputGroup } from '@chakra-ui/react/input-group';\nimport { FormControlSize } from 'hocs/withFormControl/withFormControl.types';\nimport { Button } from 'components/Button/button.component';\nimport { CharacterCounter } from 'components/CharacterCounter/characterCounter.component';\nimport { closeButtonSizeMap } from './textInput.records';\n\nexport interface TextInputBaseProps extends WithFormControlProps {\n /** The maximum number of characters that can be entered into the input. */\n charLimit?: number;\n /** Ref to the input element. */\n inputRef?: React.Ref<HTMLInputElement | null>;\n /** Left addon element. */\n leftAddon?: React.ReactNode;\n /** Left element inside the input. */\n leftElement?: React.ReactNode;\n /**\n * If true, the input will render a contrasting variant.\n * @default false\n */\n onContrast?: boolean;\n /** Placeholder text for the input field. */\n placeholder?: string;\n /** Right addon element. */\n rightAddon?: React.ReactNode;\n /** Right element inside the input. */\n rightElement?: React.ReactNode;\n /** The size of the input. */\n size?: FormControlSize;\n /**\n * Data test id for the text input.\n * @default kibble-text-input\n */\n 'data-testid'?: string;\n}\n\nexport interface DefaultTextInputProps extends TextInputBaseProps {\n /**\n * If true, the input will have a button to clear out the field.\n * @default false\n */\n clearable?: never;\n /** Callback function when the clear button is clicked. */\n onClear?: never;\n}\n\nexport interface ClearableTextInputProps extends TextInputBaseProps {\n /**\n * If true, the input will have a button to clear out the field.\n * @default false\n */\n clearable?: boolean;\n /** Callback function when the clear button is clicked. */\n onClear?: (val: string | number | readonly string[]) => void;\n}\n\nexport type KTextInputProps = DefaultTextInputProps | ClearableTextInputProps;\n\nexport type TextInputProps = KTextInputProps & CInputProps;\n\nconst TextInput = React.forwardRef<HTMLInputElement, TextInputProps>(\n (\n {\n charLimit = undefined,\n clearable = false,\n disabled = false,\n inputRef,\n invalid,\n leftAddon,\n leftElement,\n onClear,\n onContrast,\n rightAddon,\n rightElement,\n size = 'md',\n value,\n ['data-testid']: dataTestId = 'kibble-text-input',\n ...rest\n },\n ref,\n ): React.JSX.Element => {\n const handleClear = (): void => {\n if (onClear) {\n onClear(value || '');\n }\n };\n\n if (clearable && !!value && !disabled) {\n rightElement = (\n <Button\n className=\"TextInput__ClearButton\"\n data-testid={`${dataTestId}-clear-button`}\n size={closeButtonSizeMap[size as FormControlSize]}\n variant=\"ghostNeutral\"\n onClick={handleClear}\n iconName=\"close\"\n />\n );\n }\n\n const currentCharCount = useMemo(() => value?.toString()?.length || 0, [value]);\n\n return (\n <Flex className=\"TextInput__Wrapper\" w=\"100%\" flexDirection=\"column\" gap={1} alignItems=\"flex-end\">\n <InputGroup\n className=\"TextInput__InputGroup\"\n data-testid={`${dataTestId}-input-group`}\n startElement={leftElement}\n startElementProps={{\n color: 'inherit',\n _groupDisabled: { opacity: 0.6 },\n }}\n endElement={rightElement}\n endElementProps={{\n color: 'inherit',\n paddingInline: 1.5,\n _groupDisabled: { opacity: 0.6 },\n }}\n startAddon={leftAddon}\n endAddon={rightAddon}\n >\n <CInput\n data-testid={dataTestId}\n className=\"TextInput\"\n ref={inputRef || ref}\n value={value}\n size={size}\n disabled={disabled}\n {...(invalid && { 'aria-invalid': true })}\n variant={onContrast ? 'onContrast' : 'default'}\n {...rest}\n />\n </InputGroup>\n {!!charLimit && (\n <CharacterCounter\n data-testid={`${dataTestId}-character-counter`}\n withLimit={true}\n limit={charLimit}\n currentCount={currentCharCount}\n />\n )}\n </Flex>\n );\n },\n);\n\nTextInput.displayName = 'TextInput';\nconst WrappedTextInput = withFormControl<TextInputProps>(TextInput);\n\nexport { WrappedTextInput as TextInput };\n"],"names":["FieldInput","forwardRef","props","ref","field","useFieldContext","mergedProps","mergeProps","jsx","ark","withContext","createRecipeContext","Input","Field.Input","closeButtonSizeMap","TextInput","React","charLimit","clearable","disabled","inputRef","invalid","leftAddon","leftElement","onClear","onContrast","rightAddon","rightElement","size","value","dataTestId","rest","handleClear","Button","currentCharCount","useMemo","jsxs","Flex","InputGroup","CInput","CharacterCounter","WrappedTextInput","withFormControl"],"mappings":"wfAOMA,EAAaC,EAAU,WAAC,CAACC,EAAOC,IAAQ,CAC5C,MAAMC,EAAQC,EAAAA,gBAAiB,EACzBC,EAAcC,EAAU,WAACH,GAAO,cAAa,EAAIF,CAAK,EAC5D,OAAuBM,EAAAA,kBAAAA,IAAIC,EAAAA,IAAI,MAAO,CAAE,GAAGH,EAAa,IAAAH,EAAK,CAC/D,CAAC,EACDH,EAAW,YAAc,aCPzB,KAAM,CAAE,YAAAU,CAA2B,EAAIC,sBAAoB,CACzD,IAAK,OACP,CAAC,EACKC,EAAQF,EAAYG,CAAW,ECLxBC,EAA0D,CACrE,GAAI,KACJ,GAAI,KACJ,GAAI,IACN,ECwDMC,EAAYC,EAAM,QAAA,WACtB,CACE,CACE,UAAAC,EAAY,OACZ,UAAAC,EAAY,GACZ,SAAAC,EAAW,GACX,SAAAC,EACA,QAAAC,EACA,UAAAC,EACA,YAAAC,EACA,QAAAC,EACA,WAAAC,EACA,WAAAC,EACA,aAAAC,EACA,KAAAC,EAAO,KACP,MAAAC,EACA,CAAC,eAAgBC,EAAa,oBAC9B,GAAGC,GAEL5B,IACsB,CACtB,MAAM6B,EAAc,IAAY,CAC1BR,GACFA,EAAQK,GAAS,EAAE,CAEvB,EAEIX,GAAeW,GAAS,CAACV,IAEzBQ,EAAAnB,EAAA,kBAAA,IAACyB,EAAA,OAAA,CACC,UAAU,yBACV,cAAa,GAAGH,CAAU,gBAC1B,KAAMhB,EAAmBc,CAAuB,EAChD,QAAQ,eACR,QAASI,EACT,SAAS,OAAA,CACX,GAIE,MAAAE,EAAmBC,UAAQ,IAAMN,GAAO,YAAY,QAAU,EAAG,CAACA,CAAK,CAAC,EAG5E,OAAAO,EAAA,kBAAA,KAACC,EAAK,KAAA,CAAA,UAAU,qBAAqB,EAAE,OAAO,cAAc,SAAS,IAAK,EAAG,WAAW,WACtF,SAAA,CAAA7B,EAAA,kBAAA,IAAC8B,EAAA,WAAA,CACC,UAAU,wBACV,cAAa,GAAGR,CAAU,eAC1B,aAAcP,EACd,kBAAmB,CACjB,MAAO,UACP,eAAgB,CAAE,QAAS,EAAI,CACjC,EACA,WAAYI,EACZ,gBAAiB,CACf,MAAO,UACP,cAAe,IACf,eAAgB,CAAE,QAAS,EAAI,CACjC,EACA,WAAYL,EACZ,SAAUI,EAEV,SAAAlB,EAAA,kBAAA,IAAC+B,EAAA,CACC,cAAaT,EACb,UAAU,YACV,IAAKV,GAAYjB,EACjB,MAAA0B,EACA,KAAAD,EACA,SAAAT,EACC,GAAIE,GAAW,CAAE,eAAgB,EAAK,EACvC,QAASI,EAAa,aAAe,UACpC,GAAGM,CAAA,CAAA,CACN,CACF,EACC,CAAC,CAACd,GACDT,EAAA,kBAAA,IAACgC,EAAA,iBAAA,CACC,cAAa,GAAGV,CAAU,qBAC1B,UAAW,GACX,MAAOb,EACP,aAAciB,CAAA,CAAA,CAChB,EAEJ,CAAA,CAGN,EAEAnB,EAAU,YAAc,YAClB,MAAA0B,EAAmBC,kBAAgC3B,CAAS","x_google_ignoreList":[0,1]}
1
+ {"version":3,"file":"textInput.component-BDJuvT1c.js","sources":["../../node_modules/@ark-ui/react/dist/components/field/field-input.js","../../node_modules/@chakra-ui/react/dist/esm/components/input/input.js","../../src/components/TextInput/textInput.records.ts","../../src/components/TextInput/textInput.component.tsx"],"sourcesContent":["'use client';\nimport { jsx } from 'react/jsx-runtime';\nimport { mergeProps } from '@zag-js/react';\nimport { forwardRef } from 'react';\nimport { ark } from '../factory.js';\nimport { useFieldContext } from './use-field-context.js';\n\nconst FieldInput = forwardRef((props, ref) => {\n const field = useFieldContext();\n const mergedProps = mergeProps(field?.getInputProps(), props);\n return /* @__PURE__ */ jsx(ark.input, { ...mergedProps, ref });\n});\nFieldInput.displayName = \"FieldInput\";\n\nexport { FieldInput };\n","\"use strict\";\n\"use client\";\nimport { Field } from '@ark-ui/react/field';\nimport { createRecipeContext } from '../../styled-system/create-recipe-context.js';\n\nconst { withContext, PropsProvider } = createRecipeContext({\n key: \"input\"\n});\nconst Input = withContext(Field.Input);\nconst InputPropsProvider = PropsProvider;\n\nexport { Input, InputPropsProvider };\n","import { ButtonSize } from 'components/Button/button.types';\nimport { FormControlSize } from 'hocs/withFormControl/withFormControl.types';\n\nexport const closeButtonSizeMap: Record<FormControlSize, ButtonSize> = {\n sm: 'xs',\n md: 'sm',\n lg: 'md',\n};\n","import React, { useMemo } from 'react';\nimport { Flex } from '@chakra-ui/react/flex';\nimport { withFormControl, WithFormControlProps } from 'hocs/withFormControl/withFormControl';\nimport { Input as CInput, InputProps as CInputProps } from '@chakra-ui/react/input';\nimport { InputGroup } from '@chakra-ui/react/input-group';\nimport { FormControlSize } from 'hocs/withFormControl/withFormControl.types';\nimport { Button } from 'components/Button/button.component';\nimport { CharacterCounter } from 'components/CharacterCounter/characterCounter.component';\nimport { closeButtonSizeMap } from './textInput.records';\n\nexport interface TextInputBaseProps extends WithFormControlProps {\n /** The maximum number of characters that can be entered into the input. */\n charLimit?: number;\n /** Ref to the input element. */\n inputRef?: React.Ref<HTMLInputElement | null>;\n /** Left addon element. */\n leftAddon?: React.ReactNode;\n /** Left element inside the input. */\n leftElement?: React.ReactNode;\n /**\n * If true, the input will render a contrasting variant.\n * @default false\n */\n onContrast?: boolean;\n /** Placeholder text for the input field. */\n placeholder?: string;\n /** Right addon element. */\n rightAddon?: React.ReactNode;\n /** Right element inside the input. */\n rightElement?: React.ReactNode;\n /** The size of the input. */\n size?: FormControlSize;\n /**\n * Data test id for the text input.\n * @default kibble-text-input\n */\n 'data-testid'?: string;\n}\n\nexport interface DefaultTextInputProps extends TextInputBaseProps {\n /**\n * If true, the input will have a button to clear out the field.\n * @default false\n */\n clearable?: never;\n /** Callback function when the clear button is clicked. */\n onClear?: never;\n}\n\nexport interface ClearableTextInputProps extends TextInputBaseProps {\n /**\n * If true, the input will have a button to clear out the field.\n * @default false\n */\n clearable?: boolean;\n /** Callback function when the clear button is clicked. */\n onClear?: (val: string | number | readonly string[]) => void;\n}\n\nexport type KTextInputProps = DefaultTextInputProps | ClearableTextInputProps;\n\nexport type TextInputProps = KTextInputProps & CInputProps;\n\nconst TextInput = React.forwardRef<HTMLInputElement, TextInputProps>(\n (\n {\n charLimit = undefined,\n clearable = false,\n disabled = false,\n inputRef,\n invalid,\n leftAddon,\n leftElement,\n onClear,\n onContrast,\n rightAddon,\n rightElement,\n size = 'md',\n value,\n ['data-testid']: dataTestId = 'kibble-text-input',\n ...rest\n },\n ref,\n ): React.JSX.Element => {\n const handleClear = (): void => {\n if (onClear) {\n onClear(value || '');\n }\n };\n\n if (clearable && !!value && !disabled) {\n rightElement = (\n <Button\n className=\"TextInput__ClearButton\"\n data-testid={`${dataTestId}-clear-button`}\n size={closeButtonSizeMap[size as FormControlSize]}\n variant=\"ghostNeutral\"\n onClick={handleClear}\n iconName=\"close\"\n />\n );\n }\n\n const currentCharCount = useMemo(() => value?.toString()?.length || 0, [value]);\n\n return (\n <Flex className=\"TextInput__Wrapper\" w=\"100%\" flexDirection=\"column\" gap={1} alignItems=\"flex-end\">\n <InputGroup\n className=\"TextInput__InputGroup\"\n data-testid={`${dataTestId}-input-group`}\n startElement={leftElement}\n startElementProps={{\n color: 'inherit',\n _groupDisabled: { opacity: 0.6 },\n }}\n endElement={rightElement}\n endElementProps={{\n color: 'inherit',\n paddingInline: 1.5,\n _groupDisabled: { opacity: 0.6 },\n }}\n startAddon={leftAddon}\n endAddon={rightAddon}\n >\n <CInput\n data-testid={dataTestId}\n className=\"TextInput\"\n ref={inputRef || ref}\n value={value}\n size={size}\n disabled={disabled}\n {...(invalid && { 'aria-invalid': true })}\n variant={onContrast ? 'onContrast' : 'default'}\n {...rest}\n />\n </InputGroup>\n {!!charLimit && (\n <CharacterCounter\n data-testid={`${dataTestId}-character-counter`}\n withLimit={true}\n limit={charLimit}\n currentCount={currentCharCount}\n />\n )}\n </Flex>\n );\n },\n);\n\nTextInput.displayName = 'TextInput';\nconst WrappedTextInput = withFormControl<TextInputProps>(TextInput);\n\nexport { WrappedTextInput as TextInput };\n"],"names":["FieldInput","forwardRef","props","ref","field","useFieldContext","mergedProps","mergeProps","jsx","ark","withContext","createRecipeContext","Input","Field.Input","closeButtonSizeMap","TextInput","React","charLimit","clearable","disabled","inputRef","invalid","leftAddon","leftElement","onClear","onContrast","rightAddon","rightElement","size","value","dataTestId","rest","handleClear","Button","currentCharCount","useMemo","jsxs","Flex","InputGroup","CInput","CharacterCounter","WrappedTextInput","withFormControl"],"mappings":"wfAOMA,EAAaC,EAAU,WAAC,CAACC,EAAOC,IAAQ,CAC5C,MAAMC,EAAQC,EAAAA,gBAAiB,EACzBC,EAAcC,EAAU,WAACH,GAAO,cAAa,EAAIF,CAAK,EAC5D,OAAuBM,EAAAA,kBAAAA,IAAIC,EAAAA,IAAI,MAAO,CAAE,GAAGH,EAAa,IAAAH,EAAK,CAC/D,CAAC,EACDH,EAAW,YAAc,aCPzB,KAAM,CAAE,YAAAU,CAA2B,EAAIC,sBAAoB,CACzD,IAAK,OACP,CAAC,EACKC,EAAQF,EAAYG,CAAW,ECLxBC,EAA0D,CACrE,GAAI,KACJ,GAAI,KACJ,GAAI,IACN,ECwDMC,EAAYC,EAAM,QAAA,WACtB,CACE,CACE,UAAAC,EAAY,OACZ,UAAAC,EAAY,GACZ,SAAAC,EAAW,GACX,SAAAC,EACA,QAAAC,EACA,UAAAC,EACA,YAAAC,EACA,QAAAC,EACA,WAAAC,EACA,WAAAC,EACA,aAAAC,EACA,KAAAC,EAAO,KACP,MAAAC,EACA,CAAC,eAAgBC,EAAa,oBAC9B,GAAGC,GAEL5B,IACsB,CACtB,MAAM6B,EAAc,IAAY,CAC1BR,GACFA,EAAQK,GAAS,EAAE,CAEvB,EAEIX,GAAeW,GAAS,CAACV,IAEzBQ,EAAAnB,EAAA,kBAAA,IAACyB,EAAA,OAAA,CACC,UAAU,yBACV,cAAa,GAAGH,CAAU,gBAC1B,KAAMhB,EAAmBc,CAAuB,EAChD,QAAQ,eACR,QAASI,EACT,SAAS,OAAA,CACX,GAIE,MAAAE,EAAmBC,UAAQ,IAAMN,GAAO,YAAY,QAAU,EAAG,CAACA,CAAK,CAAC,EAG5E,OAAAO,EAAA,kBAAA,KAACC,EAAK,KAAA,CAAA,UAAU,qBAAqB,EAAE,OAAO,cAAc,SAAS,IAAK,EAAG,WAAW,WACtF,SAAA,CAAA7B,EAAA,kBAAA,IAAC8B,EAAA,WAAA,CACC,UAAU,wBACV,cAAa,GAAGR,CAAU,eAC1B,aAAcP,EACd,kBAAmB,CACjB,MAAO,UACP,eAAgB,CAAE,QAAS,EAAI,CACjC,EACA,WAAYI,EACZ,gBAAiB,CACf,MAAO,UACP,cAAe,IACf,eAAgB,CAAE,QAAS,EAAI,CACjC,EACA,WAAYL,EACZ,SAAUI,EAEV,SAAAlB,EAAA,kBAAA,IAAC+B,EAAA,CACC,cAAaT,EACb,UAAU,YACV,IAAKV,GAAYjB,EACjB,MAAA0B,EACA,KAAAD,EACA,SAAAT,EACC,GAAIE,GAAW,CAAE,eAAgB,EAAK,EACvC,QAASI,EAAa,aAAe,UACpC,GAAGM,CAAA,CAAA,CACN,CACF,EACC,CAAC,CAACd,GACDT,EAAA,kBAAA,IAACgC,EAAA,iBAAA,CACC,cAAa,GAAGV,CAAU,qBAC1B,UAAW,GACX,MAAOb,EACP,aAAciB,CAAA,CAAA,CAChB,EAEJ,CAAA,CAGN,EAEAnB,EAAU,YAAc,YAClB,MAAA0B,EAAmBC,kBAAgC3B,CAAS","x_google_ignoreList":[0,1]}