@adyen/bento-vue2 1.81.0 → 1.82.0

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 (580) hide show
  1. package/README.md +1 -1
  2. package/dist/@types/components.d.ts +196 -0
  3. package/dist/@types/index.d.ts +17585 -0
  4. package/dist/@types/use-form-v4.d.ts +86 -0
  5. package/dist/accordion.js +6 -0
  6. package/dist/accordion.js.map +1 -0
  7. package/dist/action-bar.js +5 -0
  8. package/dist/action-bar.js.map +1 -0
  9. package/dist/alert.js +8 -0
  10. package/dist/alert.js.map +1 -0
  11. package/dist/assets/accordion-item.css +1 -0
  12. package/dist/assets/action-bar.css +1 -0
  13. package/dist/assets/ai-button.css +1 -0
  14. package/dist/assets/alert.css +1 -0
  15. package/dist/assets/avatar.css +1 -0
  16. package/dist/assets/base-button.css +1 -0
  17. package/dist/assets/base-modal.css +1 -0
  18. package/dist/assets/button-actions-with-menu.css +1 -0
  19. package/dist/assets/button-actions.css +1 -0
  20. package/dist/assets/button.css +1 -0
  21. package/dist/assets/calendar.css +1 -0
  22. package/dist/assets/card.css +1 -0
  23. package/dist/assets/checkbox-group.css +1 -0
  24. package/dist/assets/checkbox-input.css +1 -0
  25. package/dist/assets/checkbox.css +1 -0
  26. package/dist/assets/chip.css +1 -0
  27. package/dist/assets/code-snippet.css +1 -0
  28. package/dist/assets/controls-group.css +1 -0
  29. package/dist/assets/copy.css +1 -0
  30. package/dist/assets/country.css +1 -0
  31. package/dist/assets/currency.css +1 -0
  32. package/dist/assets/dashboard-section.css +1 -0
  33. package/dist/assets/dashed-underline.css +1 -0
  34. package/dist/assets/data-grid-template.css +1 -0
  35. package/dist/assets/data-grid.css +1 -0
  36. package/dist/assets/date-picker.css +1 -0
  37. package/dist/assets/date-range-picker.css +1 -0
  38. package/dist/assets/date.css +1 -0
  39. package/dist/assets/dialog-page.css +1 -0
  40. package/dist/assets/divider.css +1 -0
  41. package/dist/assets/dropdown-default-textbox.css +1 -0
  42. package/dist/assets/dropdown-tag.css +1 -0
  43. package/dist/assets/dropdown.css +1 -0
  44. package/dist/assets/empty-state.css +1 -0
  45. package/dist/assets/field-label.css +1 -0
  46. package/dist/assets/file-uploader.css +1 -0
  47. package/dist/assets/filter-bar.css +1 -0
  48. package/dist/assets/fixed-scroller.css +1 -0
  49. package/dist/assets/focus-trap.css +1 -0
  50. package/dist/assets/footer-actions.css +1 -0
  51. package/dist/assets/form-layout-title.css +1 -0
  52. package/dist/assets/grid-layout.css +1 -0
  53. package/dist/assets/header-meta.css +1 -0
  54. package/dist/assets/header-with-views.css +1 -0
  55. package/dist/assets/header.css +1 -0
  56. package/dist/assets/index.css +1 -0
  57. package/dist/assets/info-icon.css +1 -0
  58. package/dist/assets/input-field-password.css +1 -0
  59. package/dist/assets/input-field-phone-number.css +1 -0
  60. package/dist/assets/input-field.css +1 -0
  61. package/dist/assets/inspector.css +1 -0
  62. package/dist/assets/layout-row.css +1 -0
  63. package/dist/assets/link.css +1 -0
  64. package/dist/assets/listbox-option-tag.css +1 -0
  65. package/dist/assets/loading-indicator.css +1 -0
  66. package/dist/assets/main.css +1 -0
  67. package/dist/assets/modal-fullscreen.css +1 -0
  68. package/dist/assets/pagination.css +1 -0
  69. package/dist/assets/payment-method.css +1 -0
  70. package/dist/assets/popper-container.css +1 -0
  71. package/dist/assets/promo-banner.css +1 -0
  72. package/dist/assets/radio-group.css +1 -0
  73. package/dist/assets/radio-input.css +1 -0
  74. package/dist/assets/rich-text-editor.css +1 -0
  75. package/dist/assets/search-bar.css +1 -0
  76. package/dist/assets/secondary-nav.css +1 -0
  77. package/dist/assets/segmented-control.css +1 -0
  78. package/dist/assets/selection-card-group.css +1 -0
  79. package/dist/assets/sidepanel.css +1 -0
  80. package/dist/assets/status.css +1 -0
  81. package/dist/assets/step.css +1 -0
  82. package/dist/assets/structured-list-item.css +1 -0
  83. package/dist/assets/summary-grid.css +1 -0
  84. package/dist/assets/tab.css +1 -0
  85. package/dist/assets/tag.css +1 -0
  86. package/dist/assets/textarea.css +1 -0
  87. package/dist/assets/timeline-item.css +1 -0
  88. package/dist/assets/toast.css +1 -0
  89. package/dist/assets/toggle.css +1 -0
  90. package/dist/assets/tooltip.css +1 -0
  91. package/dist/assets/tutorial.css +1 -0
  92. package/dist/assets/typography.css +1 -0
  93. package/dist/assets/use-cached-selected-values.css +1 -0
  94. package/dist/avatar.js +5 -0
  95. package/dist/avatar.js.map +1 -0
  96. package/dist/button.js +18 -0
  97. package/dist/button.js.map +1 -0
  98. package/dist/card.js +7 -0
  99. package/dist/card.js.map +1 -0
  100. package/dist/checkbox.js +11 -0
  101. package/dist/checkbox.js.map +1 -0
  102. package/dist/chip.js +5 -0
  103. package/dist/chip.js.map +1 -0
  104. package/dist/chunks/1-generic-use.CZhwP2Yc.js +5 -0
  105. package/dist/chunks/1-generic-use.CZhwP2Yc.js.map +1 -0
  106. package/dist/chunks/1-generic-use.R6x8PEGA.js +5 -0
  107. package/dist/chunks/1-generic-use.R6x8PEGA.js.map +1 -0
  108. package/dist/chunks/2-generic-use.CNKjB4B7.js +5 -0
  109. package/dist/chunks/2-generic-use.CNKjB4B7.js.map +1 -0
  110. package/dist/chunks/2-generic-use.w0fUhovx.js +5 -0
  111. package/dist/chunks/2-generic-use.w0fUhovx.js.map +1 -0
  112. package/dist/chunks/3-generic-use.BLEzR04g.js +5 -0
  113. package/dist/chunks/3-generic-use.BLEzR04g.js.map +1 -0
  114. package/dist/chunks/3-generic-use.D3NFHgI4.js +5 -0
  115. package/dist/chunks/3-generic-use.D3NFHgI4.js.map +1 -0
  116. package/dist/chunks/4-generic-use.CULEpvgj.js +5 -0
  117. package/dist/chunks/4-generic-use.CULEpvgj.js.map +1 -0
  118. package/dist/chunks/4-generic-use.D82y3n39.js +5 -0
  119. package/dist/chunks/4-generic-use.D82y3n39.js.map +1 -0
  120. package/dist/chunks/_plugin-vue2_normalizer.CeySl7Fu.js +11 -0
  121. package/dist/chunks/_plugin-vue2_normalizer.CeySl7Fu.js.map +1 -0
  122. package/dist/chunks/accordion-item.G1q4zgBG.js +117 -0
  123. package/dist/chunks/accordion-item.G1q4zgBG.js.map +1 -0
  124. package/dist/chunks/action-bar.Dhl3T4j-.js +160 -0
  125. package/dist/chunks/action-bar.Dhl3T4j-.js.map +1 -0
  126. package/dist/chunks/adding-payment-methods.BJZLPxtM.js +5 -0
  127. package/dist/chunks/adding-payment-methods.BJZLPxtM.js.map +1 -0
  128. package/dist/chunks/adding-payment-methods.Dle8zt43.js +5 -0
  129. package/dist/chunks/adding-payment-methods.Dle8zt43.js.map +1 -0
  130. package/dist/chunks/adyen-giving.Ffw_DlJK.js +5 -0
  131. package/dist/chunks/adyen-giving.Ffw_DlJK.js.map +1 -0
  132. package/dist/chunks/adyen-giving.LiKHj_jY.js +5 -0
  133. package/dist/chunks/adyen-giving.LiKHj_jY.js.map +1 -0
  134. package/dist/chunks/ai-button.DBwtNkyS.js +67 -0
  135. package/dist/chunks/ai-button.DBwtNkyS.js.map +1 -0
  136. package/dist/chunks/alert.SZPP58tl.js +103 -0
  137. package/dist/chunks/alert.SZPP58tl.js.map +1 -0
  138. package/dist/chunks/aria-label.CaUURpnB.js +13 -0
  139. package/dist/chunks/aria-label.CaUURpnB.js.map +1 -0
  140. package/dist/chunks/avatar.CeDqq2Z-.js +71 -0
  141. package/dist/chunks/avatar.CeDqq2Z-.js.map +1 -0
  142. package/dist/chunks/base-button.BdST9XT3.js +86 -0
  143. package/dist/chunks/base-button.BdST9XT3.js.map +1 -0
  144. package/dist/chunks/base-modal.C-UqIAY8.js +310 -0
  145. package/dist/chunks/base-modal.C-UqIAY8.js.map +1 -0
  146. package/dist/chunks/bin.Ddb69cr1.js +24 -0
  147. package/dist/chunks/bin.Ddb69cr1.js.map +1 -0
  148. package/dist/chunks/button-actions-with-menu.KKq9Cuk1.js +85 -0
  149. package/dist/chunks/button-actions-with-menu.KKq9Cuk1.js.map +1 -0
  150. package/dist/chunks/button-actions.N3D-Bb_x.js +1035 -0
  151. package/dist/chunks/button-actions.N3D-Bb_x.js.map +1 -0
  152. package/dist/chunks/button-actions.types.BptAXjD8.js +8 -0
  153. package/dist/chunks/button-actions.types.BptAXjD8.js.map +1 -0
  154. package/dist/chunks/button.CS_kdxYh.js +110 -0
  155. package/dist/chunks/button.CS_kdxYh.js.map +1 -0
  156. package/dist/chunks/calendar.Bhj58zR3.js +1832 -0
  157. package/dist/chunks/calendar.Bhj58zR3.js.map +1 -0
  158. package/dist/chunks/card.BYWF_Zvo.js +137 -0
  159. package/dist/chunks/card.BYWF_Zvo.js.map +1 -0
  160. package/dist/chunks/checkbox-group.CIIa-cYP.js +142 -0
  161. package/dist/chunks/checkbox-group.CIIa-cYP.js.map +1 -0
  162. package/dist/chunks/checkbox-input.B0NsfSNR.js +117 -0
  163. package/dist/chunks/checkbox-input.B0NsfSNR.js.map +1 -0
  164. package/dist/chunks/checkbox.CiWvdg8S.js +178 -0
  165. package/dist/chunks/checkbox.CiWvdg8S.js.map +1 -0
  166. package/dist/chunks/checkmark-circle-fill.BttTCjrM.js +24 -0
  167. package/dist/chunks/checkmark-circle-fill.BttTCjrM.js.map +1 -0
  168. package/dist/chunks/checkmark-small.DVDtD4HQ.js +24 -0
  169. package/dist/chunks/checkmark-small.DVDtD4HQ.js.map +1 -0
  170. package/dist/chunks/chevron-down.eYtgv5ly.js +24 -0
  171. package/dist/chunks/chevron-down.eYtgv5ly.js.map +1 -0
  172. package/dist/chunks/chevron-left.BS24hEFa.js +43 -0
  173. package/dist/chunks/chevron-left.BS24hEFa.js.map +1 -0
  174. package/dist/chunks/chevron-up.d8cwIlA_.js +24 -0
  175. package/dist/chunks/chevron-up.d8cwIlA_.js.map +1 -0
  176. package/dist/chunks/chip.B0DRDvaa.js +63 -0
  177. package/dist/chunks/chip.B0DRDvaa.js.map +1 -0
  178. package/dist/chunks/click-outside.C1Ud8AA2.js +23 -0
  179. package/dist/chunks/click-outside.C1Ud8AA2.js.map +1 -0
  180. package/dist/chunks/code-snippet.BMzhRl4c.js +268 -0
  181. package/dist/chunks/code-snippet.BMzhRl4c.js.map +1 -0
  182. package/dist/chunks/codemirror.Cy7iSLbd.js +14628 -0
  183. package/dist/chunks/codemirror.Cy7iSLbd.js.map +1 -0
  184. package/dist/chunks/constructNow.BhymNmy5.js +8 -0
  185. package/dist/chunks/constructNow.BhymNmy5.js.map +1 -0
  186. package/dist/chunks/controls-group.GchVWe7h.js +84 -0
  187. package/dist/chunks/controls-group.GchVWe7h.js.map +1 -0
  188. package/dist/chunks/copy.DauzzgJV.js +96 -0
  189. package/dist/chunks/copy.DauzzgJV.js.map +1 -0
  190. package/dist/chunks/country.B3z3-QRY.js +69 -0
  191. package/dist/chunks/country.B3z3-QRY.js.map +1 -0
  192. package/dist/chunks/country.types.C0Q_hhgJ.js +269 -0
  193. package/dist/chunks/country.types.C0Q_hhgJ.js.map +1 -0
  194. package/dist/chunks/cross-circle-fill-small.DfxDedRr.js +24 -0
  195. package/dist/chunks/cross-circle-fill-small.DfxDedRr.js.map +1 -0
  196. package/dist/chunks/cross-circle-fill.DTDtgLMf.js +24 -0
  197. package/dist/chunks/cross-circle-fill.DTDtgLMf.js.map +1 -0
  198. package/dist/chunks/cross-small.CoQUe8SS.js +24 -0
  199. package/dist/chunks/cross-small.CoQUe8SS.js.map +1 -0
  200. package/dist/chunks/cross.CC_B-vG-.js +24 -0
  201. package/dist/chunks/cross.CC_B-vG-.js.map +1 -0
  202. package/dist/chunks/currency.Cwhzzxw2.js +114 -0
  203. package/dist/chunks/currency.Cwhzzxw2.js.map +1 -0
  204. package/dist/chunks/dashboard-section.CgAfEay4.js +102 -0
  205. package/dist/chunks/dashboard-section.CgAfEay4.js.map +1 -0
  206. package/dist/chunks/dashed-underline.CMdNukpN.js +77 -0
  207. package/dist/chunks/dashed-underline.CMdNukpN.js.map +1 -0
  208. package/dist/chunks/data-grid-template.keys.VezYtHtM.js +5 -0
  209. package/dist/chunks/data-grid-template.keys.VezYtHtM.js.map +1 -0
  210. package/dist/chunks/data-grid-template.m4hsFMe2.js +111 -0
  211. package/dist/chunks/data-grid-template.m4hsFMe2.js.map +1 -0
  212. package/dist/chunks/data-grid.rAVOFiTv.js +3294 -0
  213. package/dist/chunks/data-grid.rAVOFiTv.js.map +1 -0
  214. package/dist/chunks/date-format.B8RU7D42.js +17 -0
  215. package/dist/chunks/date-format.B8RU7D42.js.map +1 -0
  216. package/dist/chunks/date-picker.nLuHJgOC.js +169 -0
  217. package/dist/chunks/date-picker.nLuHJgOC.js.map +1 -0
  218. package/dist/chunks/date-picker.types.Ckt7zxGy.js +5 -0
  219. package/dist/chunks/date-picker.types.Ckt7zxGy.js.map +1 -0
  220. package/dist/chunks/date-range-picker.D2MKhVMf.js +906 -0
  221. package/dist/chunks/date-range-picker.D2MKhVMf.js.map +1 -0
  222. package/dist/chunks/date-range-picker.types.Ckt7zxGy.js +5 -0
  223. package/dist/chunks/date-range-picker.types.Ckt7zxGy.js.map +1 -0
  224. package/dist/chunks/date.C1z2TXzM.js +160 -0
  225. package/dist/chunks/date.C1z2TXzM.js.map +1 -0
  226. package/dist/chunks/debounce.DUTu11PS.js +10 -0
  227. package/dist/chunks/debounce.DUTu11PS.js.map +1 -0
  228. package/dist/chunks/delight.CDBAFnwC.js +5 -0
  229. package/dist/chunks/delight.CDBAFnwC.js.map +1 -0
  230. package/dist/chunks/delight.xKDCvvaS.js +5 -0
  231. package/dist/chunks/delight.xKDCvvaS.js.map +1 -0
  232. package/dist/chunks/dialog-page.krM2wQpm.js +131 -0
  233. package/dist/chunks/dialog-page.krM2wQpm.js.map +1 -0
  234. package/dist/chunks/differenceInMonths.Cab3nOsb.js +1590 -0
  235. package/dist/chunks/differenceInMonths.Cab3nOsb.js.map +1 -0
  236. package/dist/chunks/directive.Cbdox5VL.js +23 -0
  237. package/dist/chunks/directive.Cbdox5VL.js.map +1 -0
  238. package/dist/chunks/divider.DX5gwN7p.js +35 -0
  239. package/dist/chunks/divider.DX5gwN7p.js.map +1 -0
  240. package/dist/chunks/dot.BW9SneIk.js +24 -0
  241. package/dist/chunks/dot.BW9SneIk.js.map +1 -0
  242. package/dist/chunks/dropdown-default-textbox.uWZMxeI7.js +350 -0
  243. package/dist/chunks/dropdown-default-textbox.uWZMxeI7.js.map +1 -0
  244. package/dist/chunks/dropdown-tag.BnqOBdMp.js +294 -0
  245. package/dist/chunks/dropdown-tag.BnqOBdMp.js.map +1 -0
  246. package/dist/chunks/dropdown.BijF56Y7.js +714 -0
  247. package/dist/chunks/dropdown.BijF56Y7.js.map +1 -0
  248. package/dist/chunks/empty-state.BsdRxzS2.js +106 -0
  249. package/dist/chunks/empty-state.BsdRxzS2.js.map +1 -0
  250. package/dist/chunks/es6.MoTTyETW.js +12 -0
  251. package/dist/chunks/es6.MoTTyETW.js.map +1 -0
  252. package/dist/chunks/events.BQOQSSb7.js +44 -0
  253. package/dist/chunks/events.BQOQSSb7.js.map +1 -0
  254. package/dist/chunks/expand.Bbielaja.js +24 -0
  255. package/dist/chunks/expand.Bbielaja.js.map +1 -0
  256. package/dist/chunks/field-label.DHGAa4cq.js +121 -0
  257. package/dist/chunks/field-label.DHGAa4cq.js.map +1 -0
  258. package/dist/chunks/file-uploader.D2s5qccE.js +1917 -0
  259. package/dist/chunks/file-uploader.D2s5qccE.js.map +1 -0
  260. package/dist/chunks/filter-bar.DISI1jAU.js +2472 -0
  261. package/dist/chunks/filter-bar.DISI1jAU.js.map +1 -0
  262. package/dist/chunks/fixed-scroller.CgVOf5VE.js +106 -0
  263. package/dist/chunks/fixed-scroller.CgVOf5VE.js.map +1 -0
  264. package/dist/chunks/focus-trap.CNIU5jOz.js +1168 -0
  265. package/dist/chunks/focus-trap.CNIU5jOz.js.map +1 -0
  266. package/dist/chunks/footer-actions.CFZwikg0.js +96 -0
  267. package/dist/chunks/footer-actions.CFZwikg0.js.map +1 -0
  268. package/dist/chunks/form-field.D_2g7vaP.js +10 -0
  269. package/dist/chunks/form-field.D_2g7vaP.js.map +1 -0
  270. package/dist/chunks/form-layout-title.B_oVSX5b.js +197 -0
  271. package/dist/chunks/form-layout-title.B_oVSX5b.js.map +1 -0
  272. package/dist/chunks/form-layout.types.bZW9iR6_.js +5 -0
  273. package/dist/chunks/form-layout.types.bZW9iR6_.js.map +1 -0
  274. package/dist/chunks/generate-uid.NJ8tVoha.js +32 -0
  275. package/dist/chunks/generate-uid.NJ8tVoha.js.map +1 -0
  276. package/dist/chunks/get-slot-text.Bjb9dTSV.js +12 -0
  277. package/dist/chunks/get-slot-text.Bjb9dTSV.js.map +1 -0
  278. package/dist/chunks/getRoundingMethod.C3eaeGLR.js +10 -0
  279. package/dist/chunks/getRoundingMethod.C3eaeGLR.js.map +1 -0
  280. package/dist/chunks/getTimezoneOffsetInMilliseconds.B7sxiukN.js +484 -0
  281. package/dist/chunks/getTimezoneOffsetInMilliseconds.B7sxiukN.js.map +1 -0
  282. package/dist/chunks/grid-layout.1aIiz2N_.js +76 -0
  283. package/dist/chunks/grid-layout.1aIiz2N_.js.map +1 -0
  284. package/dist/chunks/header-meta.D0UdrdVf.js +170 -0
  285. package/dist/chunks/header-meta.D0UdrdVf.js.map +1 -0
  286. package/dist/chunks/header-with-views.BjZkBSI0.js +1591 -0
  287. package/dist/chunks/header-with-views.BjZkBSI0.js.map +1 -0
  288. package/dist/chunks/header.QYvN86kI.js +103 -0
  289. package/dist/chunks/header.QYvN86kI.js.map +1 -0
  290. package/dist/chunks/image.C2D2hKat.js +56 -0
  291. package/dist/chunks/image.C2D2hKat.js.map +1 -0
  292. package/dist/chunks/index.B6WW_F-J.js +31 -0
  293. package/dist/chunks/index.B6WW_F-J.js.map +1 -0
  294. package/dist/chunks/index.BDK4hwK_.js +593 -0
  295. package/dist/chunks/index.BDK4hwK_.js.map +1 -0
  296. package/dist/chunks/index.Cl4_42j5.js +8 -0
  297. package/dist/chunks/index.Cl4_42j5.js.map +1 -0
  298. package/dist/chunks/info-icon.iKLaNff6.js +37 -0
  299. package/dist/chunks/info-icon.iKLaNff6.js.map +1 -0
  300. package/dist/chunks/info.CcMZ4aGg.js +24 -0
  301. package/dist/chunks/info.CcMZ4aGg.js.map +1 -0
  302. package/dist/chunks/input-field-password.BeRjHhu6.js +270 -0
  303. package/dist/chunks/input-field-password.BeRjHhu6.js.map +1 -0
  304. package/dist/chunks/input-field-phone-number.DLOUy8_E.js +3324 -0
  305. package/dist/chunks/input-field-phone-number.DLOUy8_E.js.map +1 -0
  306. package/dist/chunks/input-field.B1Q1-zLo.js +171 -0
  307. package/dist/chunks/input-field.B1Q1-zLo.js.map +1 -0
  308. package/dist/chunks/inspector.C6bbjQC0.js +117 -0
  309. package/dist/chunks/inspector.C6bbjQC0.js.map +1 -0
  310. package/dist/chunks/inspector.types.DyHwE18g.js +5 -0
  311. package/dist/chunks/inspector.types.DyHwE18g.js.map +1 -0
  312. package/dist/chunks/internal-error.BLZodVBE.js +5 -0
  313. package/dist/chunks/internal-error.BLZodVBE.js.map +1 -0
  314. package/dist/chunks/internal-error.BmrwJFpR.js +5 -0
  315. package/dist/chunks/internal-error.BmrwJFpR.js.map +1 -0
  316. package/dist/chunks/keyboard-navigation.DWmhelVv.js +66 -0
  317. package/dist/chunks/keyboard-navigation.DWmhelVv.js.map +1 -0
  318. package/dist/chunks/layout-row.DwdZbpVG.js +87 -0
  319. package/dist/chunks/layout-row.DwdZbpVG.js.map +1 -0
  320. package/dist/chunks/link.D8qpqg3W.js +95 -0
  321. package/dist/chunks/link.D8qpqg3W.js.map +1 -0
  322. package/dist/chunks/listbox-option-tag.CK628fjn.js +44 -0
  323. package/dist/chunks/listbox-option-tag.CK628fjn.js.map +1 -0
  324. package/dist/chunks/loading-indicator.PxbRzshH.js +42 -0
  325. package/dist/chunks/loading-indicator.PxbRzshH.js.map +1 -0
  326. package/dist/chunks/minus-small.DJacLGTw.js +27 -0
  327. package/dist/chunks/minus-small.DJacLGTw.js.map +1 -0
  328. package/dist/chunks/modal-fullscreen.UqZgbaDw.js +221 -0
  329. package/dist/chunks/modal-fullscreen.UqZgbaDw.js.map +1 -0
  330. package/dist/chunks/modal.DCgB0pA2.js +445 -0
  331. package/dist/chunks/modal.DCgB0pA2.js.map +1 -0
  332. package/dist/chunks/no-results-found.Bg_ZcEid.js +5 -0
  333. package/dist/chunks/no-results-found.Bg_ZcEid.js.map +1 -0
  334. package/dist/chunks/no-results-found.BqvYsBR6.js +5 -0
  335. package/dist/chunks/no-results-found.BqvYsBR6.js.map +1 -0
  336. package/dist/chunks/notifications-cleared.BMZk37uf.js +5 -0
  337. package/dist/chunks/notifications-cleared.BMZk37uf.js.map +1 -0
  338. package/dist/chunks/notifications-cleared.C7W9ZXY7.js +5 -0
  339. package/dist/chunks/notifications-cleared.C7W9ZXY7.js.map +1 -0
  340. package/dist/chunks/on-click-outside.D9aY9g8G.js +101 -0
  341. package/dist/chunks/on-click-outside.D9aY9g8G.js.map +1 -0
  342. package/dist/chunks/page-not-found.COJLPVaU.js +5 -0
  343. package/dist/chunks/page-not-found.COJLPVaU.js.map +1 -0
  344. package/dist/chunks/page-not-found.DWW6W-PZ.js +5 -0
  345. package/dist/chunks/page-not-found.DWW6W-PZ.js.map +1 -0
  346. package/dist/chunks/pagination.CylAnOyc.js +338 -0
  347. package/dist/chunks/pagination.CylAnOyc.js.map +1 -0
  348. package/dist/chunks/payment-method.C8Ie97qE.js +76 -0
  349. package/dist/chunks/payment-method.C8Ie97qE.js.map +1 -0
  350. package/dist/chunks/payment-method.types.BqtH7RM2.js +5 -0
  351. package/dist/chunks/payment-method.types.BqtH7RM2.js.map +1 -0
  352. package/dist/chunks/planned-maintenance.C61sWB9h.js +5 -0
  353. package/dist/chunks/planned-maintenance.C61sWB9h.js.map +1 -0
  354. package/dist/chunks/planned-maintenance.jmWYTdet.js +5 -0
  355. package/dist/chunks/planned-maintenance.jmWYTdet.js.map +1 -0
  356. package/dist/chunks/popover.types.WDh5ggr3.js +6 -0
  357. package/dist/chunks/popover.types.WDh5ggr3.js.map +1 -0
  358. package/dist/chunks/popper-container.Cdokz_NE.js +1404 -0
  359. package/dist/chunks/popper-container.Cdokz_NE.js.map +1 -0
  360. package/dist/chunks/promo-banner.DikQcQU2.js +70 -0
  361. package/dist/chunks/promo-banner.DikQcQU2.js.map +1 -0
  362. package/dist/chunks/radio-group.Cr7UcYij.js +178 -0
  363. package/dist/chunks/radio-group.Cr7UcYij.js.map +1 -0
  364. package/dist/chunks/radio-input.kzb4gxLW.js +90 -0
  365. package/dist/chunks/radio-input.kzb4gxLW.js.map +1 -0
  366. package/dist/chunks/referrals.BvtT-kQS.js +5 -0
  367. package/dist/chunks/referrals.BvtT-kQS.js.map +1 -0
  368. package/dist/chunks/referrals.aX8WZigH.js +5 -0
  369. package/dist/chunks/referrals.aX8WZigH.js.map +1 -0
  370. package/dist/chunks/refresh.arF7jP-l.js +24 -0
  371. package/dist/chunks/refresh.arF7jP-l.js.map +1 -0
  372. package/dist/chunks/resize.Bqks3WUm.js +15 -0
  373. package/dist/chunks/resize.Bqks3WUm.js.map +1 -0
  374. package/dist/chunks/rich-text-editor.NKPFP8Ss.js +6203 -0
  375. package/dist/chunks/rich-text-editor.NKPFP8Ss.js.map +1 -0
  376. package/dist/chunks/search-bar.VctrP6lp.js +98 -0
  377. package/dist/chunks/search-bar.VctrP6lp.js.map +1 -0
  378. package/dist/chunks/search.D53Ia3rC.js +24 -0
  379. package/dist/chunks/search.D53Ia3rC.js.map +1 -0
  380. package/dist/chunks/secondary-nav.jpMeWSZj.js +112 -0
  381. package/dist/chunks/secondary-nav.jpMeWSZj.js.map +1 -0
  382. package/dist/chunks/segmented-control._CuB62pG.js +113 -0
  383. package/dist/chunks/segmented-control._CuB62pG.js.map +1 -0
  384. package/dist/chunks/segmented-control.types.BHRLV8KU.js +5 -0
  385. package/dist/chunks/segmented-control.types.BHRLV8KU.js.map +1 -0
  386. package/dist/chunks/selection-card-group.jykyd9iE.js +240 -0
  387. package/dist/chunks/selection-card-group.jykyd9iE.js.map +1 -0
  388. package/dist/chunks/show.B_mKPF6I.js +43 -0
  389. package/dist/chunks/show.B_mKPF6I.js.map +1 -0
  390. package/dist/chunks/sidepanel.CP-b8Zcg.js +210 -0
  391. package/dist/chunks/sidepanel.CP-b8Zcg.js.map +1 -0
  392. package/dist/chunks/status.types.BpMK-6IT.js +36 -0
  393. package/dist/chunks/status.types.BpMK-6IT.js.map +1 -0
  394. package/dist/chunks/step.4hMAy8v_.js +217 -0
  395. package/dist/chunks/step.4hMAy8v_.js.map +1 -0
  396. package/dist/chunks/structured-list-item.BLJabJwA.js +90 -0
  397. package/dist/chunks/structured-list-item.BLJabJwA.js.map +1 -0
  398. package/dist/chunks/success.DhioLvPD.js +5 -0
  399. package/dist/chunks/success.DhioLvPD.js.map +1 -0
  400. package/dist/chunks/success.nNwxJRBS.js +5 -0
  401. package/dist/chunks/success.nNwxJRBS.js.map +1 -0
  402. package/dist/chunks/summary-grid.keys.Xx-W5a2w.js +6 -0
  403. package/dist/chunks/summary-grid.keys.Xx-W5a2w.js.map +1 -0
  404. package/dist/chunks/summary-grid.types.B0w2S_9r.js +337 -0
  405. package/dist/chunks/summary-grid.types.B0w2S_9r.js.map +1 -0
  406. package/dist/chunks/tab.DXE68qVf.js +192 -0
  407. package/dist/chunks/tab.DXE68qVf.js.map +1 -0
  408. package/dist/chunks/tabs.keys.B4qGhjp2.js +7 -0
  409. package/dist/chunks/tabs.keys.B4qGhjp2.js.map +1 -0
  410. package/dist/chunks/tag.7fp_M9Au.js +44 -0
  411. package/dist/chunks/tag.7fp_M9Au.js.map +1 -0
  412. package/dist/chunks/textarea.Ci9sKDFy.js +173 -0
  413. package/dist/chunks/textarea.Ci9sKDFy.js.map +1 -0
  414. package/dist/chunks/timeline-item.DcIQ-Q1T.js +255 -0
  415. package/dist/chunks/timeline-item.DcIQ-Q1T.js.map +1 -0
  416. package/dist/chunks/toast.DGvNp4ZM.js +171 -0
  417. package/dist/chunks/toast.DGvNp4ZM.js.map +1 -0
  418. package/dist/chunks/toggle.D2wmNu7m.js +108 -0
  419. package/dist/chunks/toggle.D2wmNu7m.js.map +1 -0
  420. package/dist/chunks/tooltip.BcQ24pKP.js +189 -0
  421. package/dist/chunks/tooltip.BcQ24pKP.js.map +1 -0
  422. package/dist/chunks/truncate.BfIl_-71.js +8 -0
  423. package/dist/chunks/truncate.BfIl_-71.js.map +1 -0
  424. package/dist/chunks/tutorial.Co2F7l0B.js +347 -0
  425. package/dist/chunks/tutorial.Co2F7l0B.js.map +1 -0
  426. package/dist/chunks/typography.hlOAxsEn.js +87 -0
  427. package/dist/chunks/typography.hlOAxsEn.js.map +1 -0
  428. package/dist/chunks/upload-files.5wQwbfkp.js +5 -0
  429. package/dist/chunks/upload-files.5wQwbfkp.js.map +1 -0
  430. package/dist/chunks/upload-files.jTQY6y2X.js +5 -0
  431. package/dist/chunks/upload-files.jTQY6y2X.js.map +1 -0
  432. package/dist/chunks/use-bento-toast-controller.BhtohoS1.js +52 -0
  433. package/dist/chunks/use-bento-toast-controller.BhtohoS1.js.map +1 -0
  434. package/dist/chunks/use-cached-selected-values.BYiLNRRi.js +1343 -0
  435. package/dist/chunks/use-cached-selected-values.BYiLNRRi.js.map +1 -0
  436. package/dist/chunks/use-country-items.B3Cd3Tdo.js +30 -0
  437. package/dist/chunks/use-country-items.B3Cd3Tdo.js.map +1 -0
  438. package/dist/chunks/use-country-phon-code.Bui3zD6W.js +5621 -0
  439. package/dist/chunks/use-country-phon-code.Bui3zD6W.js.map +1 -0
  440. package/dist/chunks/use-default-slot-validator.BDn0wkYP.js +13 -0
  441. package/dist/chunks/use-default-slot-validator.BDn0wkYP.js.map +1 -0
  442. package/dist/chunks/use-expandable-content-height.GkjjbmPy.js +17 -0
  443. package/dist/chunks/use-expandable-content-height.GkjjbmPy.js.map +1 -0
  444. package/dist/chunks/use-form-layout-loading.CWbjZiwP.js +12 -0
  445. package/dist/chunks/use-form-layout-loading.CWbjZiwP.js.map +1 -0
  446. package/dist/chunks/use-has-slot.C9lQZ6nz.js +6 -0
  447. package/dist/chunks/use-has-slot.C9lQZ6nz.js.map +1 -0
  448. package/dist/chunks/warning-filled.CbJ1pcB2.js +24 -0
  449. package/dist/chunks/warning-filled.CbJ1pcB2.js.map +1 -0
  450. package/dist/chunks/wrong-environment.BOsyKdRI.js +5 -0
  451. package/dist/chunks/wrong-environment.BOsyKdRI.js.map +1 -0
  452. package/dist/chunks/wrong-environment.BiHTPtbJ.js +5 -0
  453. package/dist/chunks/wrong-environment.BiHTPtbJ.js.map +1 -0
  454. package/dist/click-outside.js +5 -0
  455. package/dist/click-outside.js.map +1 -0
  456. package/dist/code-snippet.js +8 -0
  457. package/dist/code-snippet.js.map +1 -0
  458. package/dist/country.js +12 -0
  459. package/dist/country.js.map +1 -0
  460. package/dist/currency.js +6 -0
  461. package/dist/currency.js.map +1 -0
  462. package/dist/dashboard-template.js +6 -0
  463. package/dist/dashboard-template.js.map +1 -0
  464. package/dist/dashed-underline.js +5 -0
  465. package/dist/dashed-underline.js.map +1 -0
  466. package/dist/data-grid-template.js +5 -0
  467. package/dist/data-grid-template.js.map +1 -0
  468. package/dist/data-grid.js +13 -0
  469. package/dist/data-grid.js.map +1 -0
  470. package/dist/date-picker.js +10 -0
  471. package/dist/date-picker.js.map +1 -0
  472. package/dist/date-range-picker.js +10 -0
  473. package/dist/date-range-picker.js.map +1 -0
  474. package/dist/date.js +6 -0
  475. package/dist/date.js.map +1 -0
  476. package/dist/divider.js +5 -0
  477. package/dist/divider.js.map +1 -0
  478. package/dist/dropdown.js +16 -0
  479. package/dist/dropdown.js.map +1 -0
  480. package/dist/empty-state.js +8 -0
  481. package/dist/empty-state.js.map +1 -0
  482. package/dist/file-uploader.js +5 -0
  483. package/dist/file-uploader.js.map +1 -0
  484. package/dist/filter-bar.js +9 -0
  485. package/dist/filter-bar.js.map +1 -0
  486. package/dist/focus-trap.js +5 -0
  487. package/dist/focus-trap.js.map +1 -0
  488. package/dist/fonts/fonts.css +2 -0
  489. package/dist/form-layout.js +8 -0
  490. package/dist/form-layout.js.map +1 -0
  491. package/dist/header-with-views.js +5 -0
  492. package/dist/header-with-views.js.map +1 -0
  493. package/dist/header.js +5 -0
  494. package/dist/header.js.map +1 -0
  495. package/dist/image.js +7 -0
  496. package/dist/image.js.map +1 -0
  497. package/dist/index.js +442 -0
  498. package/dist/index.js.map +1 -0
  499. package/dist/info-icon.js +5 -0
  500. package/dist/info-icon.js.map +1 -0
  501. package/dist/input-field-password.js +10 -0
  502. package/dist/input-field-password.js.map +1 -0
  503. package/dist/input-field-phone-number.js +6 -0
  504. package/dist/input-field-phone-number.js.map +1 -0
  505. package/dist/input-field.js +10 -0
  506. package/dist/input-field.js.map +1 -0
  507. package/dist/inspector.js +7 -0
  508. package/dist/inspector.js.map +1 -0
  509. package/dist/internal.js +45 -0
  510. package/dist/internal.js.map +1 -0
  511. package/dist/layout.js +6 -0
  512. package/dist/layout.js.map +1 -0
  513. package/dist/link.js +6 -0
  514. package/dist/link.js.map +1 -0
  515. package/dist/loading-indicator.js +6 -0
  516. package/dist/loading-indicator.js.map +1 -0
  517. package/dist/menu.js +6 -0
  518. package/dist/menu.js.map +1 -0
  519. package/dist/modal-fullscreen.js +6 -0
  520. package/dist/modal-fullscreen.js.map +1 -0
  521. package/dist/modal.js +14 -0
  522. package/dist/modal.js.map +1 -0
  523. package/dist/pagination.js +5 -0
  524. package/dist/pagination.js.map +1 -0
  525. package/dist/payment-method.js +7 -0
  526. package/dist/payment-method.js.map +1 -0
  527. package/dist/popover.js +7 -0
  528. package/dist/popover.js.map +1 -0
  529. package/dist/popper-container.js +9 -0
  530. package/dist/popper-container.js.map +1 -0
  531. package/dist/promo-banner.js +7 -0
  532. package/dist/promo-banner.js.map +1 -0
  533. package/dist/radio-group.js +9 -0
  534. package/dist/radio-group.js.map +1 -0
  535. package/dist/rich-text-editor.js +5 -0
  536. package/dist/rich-text-editor.js.map +1 -0
  537. package/dist/search-bar.js +9 -0
  538. package/dist/search-bar.js.map +1 -0
  539. package/dist/secondary-nav.js +5 -0
  540. package/dist/secondary-nav.js.map +1 -0
  541. package/dist/segmented-control.js +7 -0
  542. package/dist/segmented-control.js.map +1 -0
  543. package/dist/selection-card.js +7 -0
  544. package/dist/selection-card.js.map +1 -0
  545. package/dist/sidepanel.js +7 -0
  546. package/dist/sidepanel.js.map +1 -0
  547. package/dist/status.js +6 -0
  548. package/dist/status.js.map +1 -0
  549. package/dist/stepper.js +8 -0
  550. package/dist/stepper.js.map +1 -0
  551. package/dist/structured-list.js +6 -0
  552. package/dist/structured-list.js.map +1 -0
  553. package/dist/styles/bento-dark.css +2133 -0
  554. package/dist/styles/bento-light.css +2132 -0
  555. package/dist/styles/bento.css +2132 -0
  556. package/dist/styles/legacy.css +2132 -0
  557. package/dist/styles/styleguide.css +2187 -0
  558. package/dist/styles/utility.css +1002 -0
  559. package/dist/summary-grid.js +12 -0
  560. package/dist/summary-grid.js.map +1 -0
  561. package/dist/tabs.js +6 -0
  562. package/dist/tabs.js.map +1 -0
  563. package/dist/tag.js +6 -0
  564. package/dist/tag.js.map +1 -0
  565. package/dist/textarea.js +5 -0
  566. package/dist/textarea.js.map +1 -0
  567. package/dist/timeline.js +10 -0
  568. package/dist/timeline.js.map +1 -0
  569. package/dist/toast.js +5 -0
  570. package/dist/toast.js.map +1 -0
  571. package/dist/toggle.js +7 -0
  572. package/dist/toggle.js.map +1 -0
  573. package/dist/tutorial.js +5 -0
  574. package/dist/tutorial.js.map +1 -0
  575. package/dist/typography.js +8 -0
  576. package/dist/typography.js.map +1 -0
  577. package/dist/use-form-v4.js +8300 -0
  578. package/dist/use-form-v4.js.map +1 -0
  579. package/dist/web-types.json +17262 -0
  580. package/package.json +27 -24
@@ -0,0 +1 @@
1
+ {"version":3,"file":"tab.DXE68qVf.js","sources":["../../src/components/tabs/utils/index.ts","../../src/components/tabs/tabs.types.ts","../../src/components/tabs/tabs.vue","../../src/components/tabs/components/tab.vue"],"sourcesContent":["import { type BentoTab } from '../components/tab.types';\n\n/**\n * Recursively gets the previous available tab index. It will loop through the tabs until it finds one\n * that is not disabled or hidden.\n * @param activeTabIndex The currently active tab index.\n * @param tabsValue An array of BentoTab objects.\n * @returns The index of the previous available tab.\n */\nexport const getPreviousTabIndex = (activeTabIndex: number, tabsValue: Array<BentoTab>) => {\n // Prevent overflow\n const newActiveTabIndex = activeTabIndex === 0 ? tabsValue.length - 1 : activeTabIndex - 1;\n const currentTab = tabsValue[newActiveTabIndex];\n if (currentTab.disabled || currentTab.hidden) {\n return getPreviousTabIndex(newActiveTabIndex, tabsValue);\n }\n return newActiveTabIndex;\n};\n\n/**\n * Recursively gets the next available tab index. It will loop through the tabs until it finds one\n * that is not disabled or hidden.\n * @param activeTabIndex The currently active tab index.\n * @param tabsValue An array of BentoTab objects.\n * @returns The index of the next available tab.\n */\nexport const getNextTabIndex = (activeTabIndex: number, tabsValue: Array<BentoTab>) => {\n // Prevent overflow\n const newActiveTabIndex = activeTabIndex === tabsValue.length - 1 ? 0 : activeTabIndex + 1;\n const currentTab = tabsValue[newActiveTabIndex];\n if (currentTab.disabled || currentTab.hidden) {\n return getNextTabIndex(newActiveTabIndex, tabsValue);\n }\n return newActiveTabIndex;\n};\n","import type { Ref } from 'vue';\n\n/**\n * Private\n */\nexport interface BentoStickyTabsOptions {\n top?: Ref<number>;\n}\n\nexport type BentoTabsRegisterTab = (props: {\n counter: Ref<number>;\n disabled: Ref<boolean>;\n hidden: Ref<boolean>;\n title: Ref<string>;\n withNotificationIndicator: Ref<boolean>;\n}) => { id: string; unregisterTab: () => void };\n\nexport enum BentoTabsEvent {\n ACTIVE_TAB_INDEX = 'update:active-tab-index',\n}\n","<template>\n <div class=\"b-tabs\">\n <div\n ref=\"tablistwrapper\"\n class=\"b-tabs__tab-list-wrapper\"\n :class=\"tablistWrapperConditionalClasses\"\n :style=\"tablistWrapperStyles\"\n >\n <fixed-scroller condensed :extra-padding-top=\"2\">\n <div ref=\"tablist\" class=\"b-tabs__tab-list\" role=\"tablist\" @keydown=\"onKeydownTabsNavigation\">\n <button\n v-for=\"{ counter, disabled, hidden, id, title, withNotificationIndicator } in tabs\"\n v-show=\"!hidden\"\n :id=\"id\"\n :key=\"id\"\n role=\"tab\"\n type=\"button\"\n class=\"b-tabs__tab\"\n :class=\"{\n 'b-tabs__tab--active': activeTabId === id,\n 'b-tabs__tab--disabled': disabled,\n }\"\n :aria-controls=\"`${id}-tabpanel`\"\n :aria-hidden=\"hidden ? 'true' : 'false'\"\n :aria-selected=\"activeTabId === id ? 'true' : 'false'\"\n :tabindex=\"activeTabId === id && !disabled.value ? null : -1\"\n :disabled=\"isDisabled(disabled)\"\n @click=\"handleTabChange(id)\"\n @keydown.enter.space=\"handleTabChange(id)\"\n >\n <span class=\"b-tabs__tab-text\">\n <bento-typography class=\"b-tabs__tab-title\" el=\"span\" variant=\"body\" stronger>\n {{ title }}\n </bento-typography>\n <bento-typography\n v-if=\"counter != null\"\n class=\"b-tabs__tab-counter\"\n el=\"span\"\n variant=\"body\"\n stronger\n :class=\"{\n 'b-tabs__tab-counter--active': activeTabId === id,\n }\"\n >\n {{ counter }}\n </bento-typography>\n <span\n v-if=\"withNotificationIndicator\"\n class=\"b-tabs__tab-notification-dot\"\n aria-hidden=\"true\"\n ></span>\n </span>\n <span v-show=\"activeTabId === id\" class=\"b-tabs__tab-underline\" aria-hidden=\"true\"></span>\n </button>\n </div>\n </fixed-scroller>\n </div>\n <slot />\n </div>\n</template>\n\n<script lang=\"ts\">\n import {\n computed,\n defineComponent,\n nextTick,\n onUnmounted,\n type PropType,\n provide,\n ref,\n type Ref,\n unref,\n watch,\n } from 'vue';\n\n // components\n import { BentoTypography } from '@/components/typography';\n import { FixedScroller } from '@/internal';\n\n // utils\n import { generateUid } from '@/core/utils/ts';\n import { getNextTabIndex, getPreviousTabIndex } from './utils';\n\n // types\n import { type Booleanish } from '@/types/prop-types';\n import { type BentoTab } from './components/tab.types';\n import { type BentoStickyTabsOptions, BentoTabsEvent, type BentoTabsRegisterTab } from './tabs.types';\n\n // keys\n import { TABS_ACTIVE_TAB_ID_KEY, TABS_REGISTER_TAB_INJECTION_KEY } from './tabs.keys';\n\n /**\n * Tabs are used to navigate between different, but related content views within a page.\n * This component conforms to the official WAI-ARIA guidelines for tabs: https://www.w3.org/WAI/ARIA/apg/patterns/tabs/\n *\n * @example\n * import { BentoTabs, BentoTab } from '@adyen/bento-vue2';\n *\n * export default {\n * components: { BentoTabs, BentoTab },\n * template: `\n * <bento-tabs v-bind=\"$props\">\n * <bento-tab title=\"Maria Ahlefeldt\">\n * (16 January 1755 - 20 December 1810) was a Danish, (originally German), composer. She is known as the first female composer in Denmark.\n * </bento-tab>\n * <bento-tab title=\"Carl Andersen\">\n * (29 April 1847 - 7 May 1909) was a Danish flutist, conductor and composer born in Copenhagen, son of the flutist Christian Joachim Andersen.\n * </bento-tab>\n * <bento-tab title=\"Karl Truffel\">\n * (1 March 1981 - 7 November 1992) was a Danish dog and commander born in Berlin, son of the machinist Tom Jahoor Truffel.\n * </bento-tab>\n * <bento-tab title=\"Maria Ahlefeldt\" :disabled=\"true\">\n * (16 January 1755 - 20 December 1810) was a Danish, (originally German), composer. She is known as the first female composer in Denmark.\n * </bento-tab>\n * </bento-tabs>\n * `\n * };\n */\n\n // component\n export default defineComponent({\n components: {\n BentoTypography,\n FixedScroller,\n },\n props: {\n /**\n * Sets the active tab by its index (0 being the first tab item).\n */\n activeTabIndex: { type: Number, default: 0 },\n\n /*\n * Renders the tab with a sticky positioning.\n */\n sticky: { type: Boolean, default: false },\n\n /**\n * Additional configurable options for tabs rendered with a sticky positioning.\n * It must be an object of type {@see BentoStickyTabsOption}\n * @property {Ref<number>} stickyOptions.top - Top position the tabs should take up when rendered as sticky.\n */\n stickyOptions: { type: Object as PropType<BentoStickyTabsOptions>, default: null },\n },\n emits: [BentoTabsEvent.ACTIVE_TAB_INDEX],\n setup(props, { emit }) {\n const tabs: Ref<Array<BentoTab>> = ref([]);\n const tablist = ref(null);\n const tablistwrapper = ref();\n const activeTabId = ref('');\n const isPinnedByObserver = ref(false);\n let observer;\n\n provide(TABS_ACTIVE_TAB_ID_KEY, activeTabId);\n\n // unregister tab if removed / destroyed\n const unregisterTab = (tabIdToRemove: string) => () => {\n tabs.value = tabs.value?.filter(({ id }) => id !== tabIdToRemove);\n };\n\n // register tab\n const registerTab: BentoTabsRegisterTab = ({\n title,\n disabled,\n withNotificationIndicator,\n counter,\n hidden,\n }) => {\n const id = generateUid('b-tab');\n\n // add tab to tabs\n tabs.value.push({ counter, disabled, hidden, id, title, withNotificationIndicator });\n\n // return values to the Tab component\n return { id, unregisterTab: unregisterTab(id) };\n };\n\n // provide activeTab and registerTab to tab items\n provide(TABS_REGISTER_TAB_INJECTION_KEY, registerTab);\n\n // keyboard navigation\n const onKeydownTabsNavigation = (e: KeyboardEvent) => {\n if (e.code === 'ArrowLeft' || e.code === 'ArrowRight') {\n // find tab that is focussed\n const activeTab = tabs.value.find(tab => document.activeElement.id === tab.id);\n let activeTabIndex = tabs.value.indexOf(activeTab);\n\n // conditionally increase or decrease the\n if (e.code === 'ArrowLeft') {\n activeTabIndex = getPreviousTabIndex(activeTabIndex, tabs.value);\n } else if (e.code === 'ArrowRight') {\n activeTabIndex = getNextTabIndex(activeTabIndex, tabs.value);\n }\n\n // focus new active tab\n tablist.value.children[activeTabIndex].focus();\n }\n };\n\n watch(\n [() => props.activeTabIndex, tabs],\n ([index, currentTabs]) => {\n nextTick(() => {\n const tab = currentTabs[index];\n activeTabId.value =\n tab && !tab.disabled ? tab.id : tabs.value.find(({ disabled }) => !disabled)?.id;\n });\n },\n { immediate: true }\n );\n\n const handleTabChange = (tabId: string) => {\n activeTabId.value = tabId;\n const activeIndex = tabs.value.findIndex(({ id }) => id === activeTabId.value);\n emit(BentoTabsEvent.ACTIVE_TAB_INDEX, activeIndex);\n };\n\n const isDisabled = (isDisabledTab: Ref<boolean>): Booleanish =>\n (isDisabledTab ? 'disabled' : false) as Booleanish;\n\n /* == Sticky tabs logic == */\n const topOffset = computed(() => (props.stickyOptions?.top ? unref(props.stickyOptions.top) : 0));\n\n const isPinned = computed(() => {\n if (props.sticky && topOffset.value > 0) {\n return true;\n }\n return isPinnedByObserver.value;\n });\n\n const disconnectObserver = () => {\n if (observer) {\n observer.disconnect();\n observer = null;\n }\n isPinnedByObserver.value = false;\n };\n\n const setupObserver = (element: HTMLDivElement) => {\n // The observer is only needed when the tabs are sticky at the top of the screen (no top offset).\n if (props.sticky && topOffset.value === 0) {\n observer = new IntersectionObserver(\n ([e]) => {\n isPinnedByObserver.value = e.intersectionRatio < 1;\n },\n { threshold: [1] }\n );\n observer.observe(element);\n }\n };\n\n // This watcher manages the entire lifecycle of the observer.\n watch(\n [() => props.sticky, tablistwrapper, topOffset],\n ([isSticky, element]) => {\n disconnectObserver();\n if (isSticky && element) {\n nextTick(() => setupObserver(element));\n }\n },\n { immediate: true }\n );\n\n onUnmounted(() => {\n disconnectObserver();\n });\n\n const tablistWrapperConditionalClasses = computed(() => ({\n 'b-tabs__tab-list-wrapper--sticky': props.sticky,\n 'b-tabs__tab-list-wrapper--pinned': isPinned.value,\n }));\n\n const tablistWrapperStyles = computed(() =>\n // This helps us detect when the tabs are pinned without calculations on the tabs positions because it makes the tabs intersect by 1 pixel with the element on top of it, which is getting aught by the intersection observer.\n // Followed this example: https://css-tricks.com/how-to-detect-when-a-sticky-element-gets-pinned/\n props.sticky\n ? {\n top: `${(props.stickyOptions?.top ?? 0) - 1}px`,\n }\n : {}\n );\n\n return {\n tabs,\n tablist,\n tablistwrapper,\n activeTabId,\n tablistWrapperConditionalClasses,\n tablistWrapperStyles,\n onKeydownTabsNavigation,\n handleTabChange,\n isDisabled,\n };\n },\n });\n</script>\n\n<style lang=\"scss\" scoped src=\"./tabs.scss\" />\n","<template>\n <div v-show=\"activeTabId === id\" :id=\"`${id}-tabpanel`\" class=\"b-tab\" role=\"tabpanel\" :aria-labelledby=\"id\">\n <template v-if=\"activeTabId === id\">\n <slot />\n </template>\n </div>\n</template>\n\n<script setup lang=\"ts\">\n import { computed, inject, onUnmounted, provide, ref, toRefs } from 'vue';\n import {\n EXTERNAL_TITLE_REGISTER_ENTRY_INJECTION_KEY,\n TABS_ACTIVE_TAB_ID_KEY,\n TABS_REGISTER_TAB_INJECTION_KEY,\n } from '../tabs.keys';\n import { type BentoTabsRegisterTab } from '../tabs.types';\n import { type BentoTabProps, type BentoTabProvidedTitle } from './tab.types';\n\n const props = defineProps({\n counter: { default: null },\n disabled: { type: Boolean, default: false },\n hidden: { type: Boolean, default: false },\n title: null,\n withNotificationIndicator: { type: Boolean, default: false }\n});\n\n // External title injection\n const { counter, disabled, hidden, withNotificationIndicator } = toRefs(props);\n const componentTitle = ref<BentoTabProps['title']>();\n const setTitle: BentoTabProvidedTitle = (value: string) => {\n componentTitle.value = value;\n };\n provide(EXTERNAL_TITLE_REGISTER_ENTRY_INJECTION_KEY, setTitle);\n\n const computedTitle = computed<BentoTabProps['title']>(() => componentTitle.value ?? props.title);\n\n const registerTab: BentoTabsRegisterTab = inject(TABS_REGISTER_TAB_INJECTION_KEY);\n const activeTabId = inject(TABS_ACTIVE_TAB_ID_KEY);\n\n const { id, unregisterTab } = registerTab({\n counter,\n disabled,\n hidden,\n title: computedTitle,\n withNotificationIndicator,\n });\n\n onUnmounted(() => unregisterTab());\n</script>\n\n<script lang=\"ts\">\n /**\n * Tab content which attaches a tab to the `bento-tabs` component\n * and renders is content when it becomes active.\n *\n * @example\n * import { BentoTab, BentoTabs } from '@adyen/bento-vue2';\n *\n * <template>\n * <bento-tabs>\n * <bento-tab\n * :counter=\"1\"\n * :disabled=\"false\"\n * :hidden=\"false\"\n * title=\"Tab's title\"\n * with-notification-indicator\n * >\n * Tab content\n * </bento-tab>\n * </bento-tabs>\n * </template>\n */\n export default {\n name: 'bento-tab',\n };\n</script>\n\n<style lang=\"scss\" scoped src=\"./tab.scss\" />\n"],"names":["getPreviousTabIndex","activeTabIndex","tabsValue","newActiveTabIndex","currentTab","getNextTabIndex","BentoTabsEvent","BentoTabsEvent2","_sfc_main$1","defineComponent","BentoTypography","FixedScroller","props","emit","tabs","ref","tablist","tablistwrapper","activeTabId","isPinnedByObserver","observer","provide","TABS_ACTIVE_TAB_ID_KEY","unregisterTab","tabIdToRemove","_a","id","TABS_REGISTER_TAB_INJECTION_KEY","title","disabled","withNotificationIndicator","counter","hidden","generateUid","onKeydownTabsNavigation","e","activeTab","tab","watch","index","currentTabs","nextTick","handleTabChange","tabId","activeIndex","isDisabled","isDisabledTab","topOffset","computed","unref","isPinned","disconnectObserver","setupObserver","element","isSticky","onUnmounted","tablistWrapperConditionalClasses","tablistWrapperStyles","__default__","toRefs","componentTitle","setTitle","value","EXTERNAL_TITLE_REGISTER_ENTRY_INJECTION_KEY","computedTitle","registerTab","inject"],"mappings":"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"}
@@ -0,0 +1,7 @@
1
+ const t = /* @__PURE__ */ Symbol("tabs registerTab injection key"), e = /* @__PURE__ */ Symbol("tabs active tab ID key"), E = /* @__PURE__ */ Symbol("external title tab register entry injection key");
2
+ export {
3
+ E,
4
+ e as T,
5
+ t as a
6
+ };
7
+ //# sourceMappingURL=tabs.keys.B4qGhjp2.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"tabs.keys.B4qGhjp2.js","sources":["../../src/components/tabs/tabs.keys.ts"],"sourcesContent":["export const TABS_REGISTER_TAB_INJECTION_KEY = Symbol('tabs registerTab injection key');\nexport const TABS_ACTIVE_TAB_ID_KEY = Symbol('tabs active tab ID key');\nexport const EXTERNAL_TITLE_REGISTER_ENTRY_INJECTION_KEY = Symbol('external title tab register entry injection key');\n"],"names":["TABS_REGISTER_TAB_INJECTION_KEY","TABS_ACTIVE_TAB_ID_KEY","EXTERNAL_TITLE_REGISTER_ENTRY_INJECTION_KEY"],"mappings":"AAAa,MAAAA,2BAAyC,gCAAgC,GACzEC,2BAAgC,wBAAwB,GACxDC,2BAAqD,iDAAiD;"}
@@ -0,0 +1,44 @@
1
+ import { defineComponent as m, useSlots as f, computed as s } from "vue";
2
+ import { B as v } from "./typography.hlOAxsEn.js";
3
+ import { u as b } from "./aria-label.CaUURpnB.js";
4
+ import { g as r } from "./get-slot-text.Bjb9dTSV.js";
5
+ import { b as g } from "./tooltip.BcQ24pKP.js";
6
+ import { n as h } from "./_plugin-vue2_normalizer.CeySl7Fu.js";
7
+ import "../assets/tag.css";
8
+ var i = /* @__PURE__ */ ((e) => (e.GREY = "grey", e.BLUE = "blue", e.GREEN = "green", e.ORANGE = "orange", e.RED = "red", e.WHITE = "white", e))(i || {});
9
+ const x = {
10
+ name: "bento-tag"
11
+ }, C = /* @__PURE__ */ m({
12
+ ...x,
13
+ props: {
14
+ label: { default: null },
15
+ truncate: { default: null },
16
+ variant: { default: i.GREY }
17
+ },
18
+ setup(e) {
19
+ const t = e, a = f(), o = (d) => !!a[d], c = s(() => !!(t.label || r(a)("default"))), u = b({
20
+ label: t.label || r(a)("default"),
21
+ defaultFallback: "tag"
22
+ }), p = s(() => ({
23
+ [`b-tag--${t.variant}`]: t.variant
24
+ })), l = s(() => t.label ?? r(a)("default") ?? "tag"), n = s(() => t.truncate && l.value.length > t.truncate), _ = s(() => t.truncate && n.value ? `${l.value.slice(0, t.truncate)}...` : l.value);
25
+ return { __sfc: !0, props: t, slots: a, hasSlot: o, hasTextContent: c, computedAriaLabel: u, tagConditionalClasses: p, textFromSlot: l, shouldShowTooltip: n, formattedText: _, BentoTypography: v, vBentoTooltipDirective: g };
26
+ }
27
+ });
28
+ var S = function() {
29
+ var t = this, a = t._self._c, o = t._self._setupProxy;
30
+ return a("span", { directives: [{ name: "bento-tooltip-directive", rawName: "v-bento-tooltip-directive", value: o.shouldShowTooltip ? o.textFromSlot : null, expression: "shouldShowTooltip ? textFromSlot : null" }], staticClass: "b-tag", class: o.tagConditionalClasses, attrs: { "data-testid": "tag", "aria-label": o.computedAriaLabel } }, [o.hasTextContent && o.hasSlot("icon") ? a("div", { staticClass: "b-tag__icon", attrs: { role: "presentation" } }, [t._t("icon")], 2) : t._e(), a(o.BentoTypography, { staticClass: "b-tag__label", attrs: { el: "span", variant: "caption", stronger: "" } }, [t._v(" " + t._s(o.formattedText) + " ")])], 1);
31
+ }, T = [], E = /* @__PURE__ */ h(
32
+ C,
33
+ S,
34
+ T,
35
+ !1,
36
+ null,
37
+ "d25f600b"
38
+ );
39
+ const L = E.exports;
40
+ export {
41
+ L as B,
42
+ i as a
43
+ };
44
+ //# sourceMappingURL=tag.7fp_M9Au.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"tag.7fp_M9Au.js","sources":["../../src/components/tag/tag.types.ts","../../src/components/tag/tag.vue"],"sourcesContent":["export interface BentoTagProps {\n /**\n * The label text content of the Tag.\n */\n label?: string;\n\n /**\n * The number of characters to limit the number of displayed characters for the tag text, truncating it with an ellipsis of three dots \"...\".\n */\n truncate?: number;\n\n /**\n * The variant variant of tag\n */\n variant?: BentoTagVariant | `${BentoTagVariant}`;\n}\n\n/**\n * @deprecated for usage with properties since version 2.0. Use the string literal instead.\n */\nexport enum BentoTagVariant {\n GREY = 'grey',\n BLUE = 'blue',\n GREEN = 'green',\n ORANGE = 'orange',\n RED = 'red',\n WHITE = 'white',\n}\n","<template>\n <span\n v-bento-tooltip-directive=\"shouldShowTooltip ? textFromSlot : null\"\n data-testid=\"tag\"\n class=\"b-tag\"\n :class=\"tagConditionalClasses\"\n :aria-label=\"computedAriaLabel\"\n >\n <div v-if=\"hasTextContent && hasSlot('icon')\" class=\"b-tag__icon\" role=\"presentation\">\n <slot name=\"icon\"></slot>\n </div>\n <bento-typography class=\"b-tag__label\" el=\"span\" variant=\"caption\" stronger>\n {{ formattedText }}\n </bento-typography>\n </span>\n</template>\n\n<script setup lang=\"ts\">\n import { computed, useSlots } from 'vue';\n // Use relative paths otherwise the interface won't be correctly detected\n // TODO: Use alias once the support is added to work with the betterDefine macro\n import { type BentoTagProps, BentoTagVariant } from './tag.types';\n import { BentoTypography } from '@/components/typography';\n import { BentoTooltipDirective as vBentoTooltipDirective } from '@/directives';\n import { useAriaLabel } from '@/utils/ts/aria-label';\n import { getSlotText } from '@/utils/ts/get-slot-text';\n\n const props = defineProps({\n label: { default: null },\n truncate: { default: null },\n variant: { default: BentoTagVariant.GREY }\n});\n\n const slots = useSlots();\n // Slots logic\n // Temporary, use-has-slots composable doesn't currently work for vue3 named scoped slots\n // We do the same in bento-checkbox-group\n const hasSlot = name => !!slots[name];\n\n const hasTextContent = computed(() => !!(props.label || getSlotText(slots)('default')));\n\n const computedAriaLabel = useAriaLabel({\n label: props.label || getSlotText(slots)('default'),\n defaultFallback: 'tag',\n });\n\n const tagConditionalClasses = computed(() => ({\n [`b-tag--${props.variant}`]: props.variant,\n }));\n\n const textFromSlot = computed(() => props.label ?? getSlotText(slots)('default') ?? 'tag');\n const shouldShowTooltip = computed(() => props.truncate && textFromSlot.value.length > props.truncate);\n\n const formattedText = computed(() => {\n if (!props.truncate) {\n return textFromSlot.value;\n }\n\n return shouldShowTooltip.value ? `${textFromSlot.value.slice(0, props.truncate)}...` : textFromSlot.value;\n });\n</script>\n\n<script lang=\"ts\">\n export default {\n name: 'bento-tag',\n };\n</script>\n\n<style lang=\"scss\" scoped src=\"./tag.scss\" />\n"],"names":["BentoTagVariant","BentoTagVariant2","__default__","slots","useSlots","hasSlot","name","hasTextContent","computed","props","getSlotText","computedAriaLabel","useAriaLabel","tagConditionalClasses","textFromSlot","shouldShowTooltip","formattedText"],"mappings":";;;;;;;AAoBY,IAAAA,IAAA,kBAAAC,OACRA,EAAA,OAAA,QACAA,EAAA,OAAA,QACAA,EAAA,QAAA,SACAA,EAAA,SAAA,UACAA,EAAA,MAAA,OACAA,EAAA,QAAA,SANQA,IAAAD,KAAA,CAAA,CAAA;AC2CR,MAAAE,IAAA;AAAA,EAAe,MAAA;AAEf;;;;;;;;iBAhCAC,IAAAC,EAAA,GAIAC,IAAA,CAAAC,MAAA,CAAA,CAAAH,EAAAG,CAAA,GAEAC,IAAAC,EAAA,MAAA,CAAA,EAAAC,EAAA,SAAAC,EAAAP,CAAA,EAAA,SAAA,EAAA,GAEAQ,IAAAC,EAAA;AAAA,MAAuC,OAAAH,EAAA,SAAAC,EAAAP,CAAA,EAAA,SAAA;AAAA,MACe,iBAAA;AAAA,IACjC,CAAA,GAGrBU,IAAAL,EAAA,OAAA;AAAA,MAA8C,CAAA,UAAAC,EAAA,OAAA,EAAA,GAAAA,EAAA;AAAA,IACP,EAAA,GAGvCK,IAAAN,EAAA,MAAAC,EAAA,SAAAC,EAAAP,CAAA,EAAA,SAAA,KAAA,KAAA,GACAY,IAAAP,EAAA,MAAAC,EAAA,YAAAK,EAAA,MAAA,SAAAL,EAAA,QAAA,GAEAO,IAAAR,EAAA,MACIC,EAAA,YAIAM,EAAA,QAAA,GAAAD,EAAA,MAAA,MAAA,GAAAL,EAAA,QAAA,CAAA,QAHIK,EAAA,KAGgG;;;;;;;;;;;;;;;;"}
@@ -0,0 +1,173 @@
1
+ import { defineComponent as se, useAttrs as ne, toRefs as T, ref as u, toRef as ie, computed as i, watch as I, nextTick as ue, onMounted as ce, onUnmounted as de } from "vue";
2
+ import { B as pe } from "./button.CS_kdxYh.js";
3
+ import { d as fe, B as me } from "./typography.hlOAxsEn.js";
4
+ import { C as be } from "./cross-circle-fill-small.DfxDedRr.js";
5
+ import { g as _e } from "./generate-uid.NJ8tVoha.js";
6
+ import { o as w } from "./resize.Bqks3WUm.js";
7
+ import { u as he } from "./aria-label.CaUURpnB.js";
8
+ import { u as ve } from "./index.B6WW_F-J.js";
9
+ import { u as ye } from "./form-field.D_2g7vaP.js";
10
+ import { u as xe } from "./use-form-layout-loading.CWbjZiwP.js";
11
+ import { B as ge } from "./es6.MoTTyETW.js";
12
+ import { F as Ce, E as Le } from "./field-label.DHGAa4cq.js";
13
+ import { n as Ee } from "./_plugin-vue2_normalizer.CeySl7Fu.js";
14
+ import "../assets/textarea.css";
15
+ var p = /* @__PURE__ */ ((l) => (l.CLEARABLE = "clearable", l.DISABLED = "disabled", l.ERROR = "error", l.READONLY = "readonly", l))(p || {}), c = /* @__PURE__ */ ((l) => (l.BLUR = "blur", l.CHANGE = "change", l.CLEAR = "clear", l.ESCAPE_PRESSED = "escape-pressed", l.FOCUS = "focus", l.INPUT = "input", l.UPDATE_MODEL_VALUE = "update:model-value", l.KEYDOWN = "keydown", l.KEYUP = "keyup", l))(c || {});
16
+ const Re = {
17
+ "en-US": {
18
+ clearText: "Clear text",
19
+ textarea: "textarea",
20
+ yourTextCanBenAtMost: "Your text can be at most {characterLimit} characters"
21
+ }
22
+ }, H = parseFloat(ge), Be = {
23
+ i18n: { messages: Re },
24
+ name: "bento-textarea",
25
+ model: { prop: "modelValue" }
26
+ }, Ae = /* @__PURE__ */ se({
27
+ ...Be,
28
+ props: {
29
+ description: { default: "" },
30
+ disabled: { type: Boolean, default: !1 },
31
+ errorMessage: { default: "" },
32
+ label: { default: "" },
33
+ optional: { type: Boolean, default: !1 },
34
+ placeholder: { default: "" },
35
+ readonly: { type: Boolean, default: !1 },
36
+ required: { type: Boolean, default: !1 },
37
+ tooltipText: { default: null },
38
+ ariaLabel: { default: void 0 },
39
+ characterLimit: { default: void 0 },
40
+ clearable: { type: Boolean, default: !1 },
41
+ height: { default: null },
42
+ resizable: { default: "both" },
43
+ value: { default: "" },
44
+ modelValue: { default: "" }
45
+ },
46
+ emits: [],
47
+ setup(l, { expose: a, emit: t }) {
48
+ const e = l, r = ne(), { height: v } = T(e), W = _e("textarea"), s = u(null), f = u(null), n = u(e.modelValue || e.value), d = 44, m = u(e.height || `${d}px`), L = u(0), E = u("100%"), y = u(!1);
49
+ let b = null, _ = null;
50
+ const { t: D, n: R } = ve(), { isReadOnly: x } = xe(ie(e, "readonly")), { emitValue: B } = ye(t), K = i(() => {
51
+ var o;
52
+ return `${R(((o = n == null ? void 0 : n.value) == null ? void 0 : o.length) ?? 0)} / ${R(e.characterLimit)}`;
53
+ }), h = i(() => !v.value), A = i(
54
+ () => e.characterLimit && n.value.length > e.characterLimit
55
+ ), g = () => {
56
+ if (s.value) {
57
+ const o = Math.max(
58
+ s.value.scrollHeight <= d ? d : s.value.scrollHeight + H * 2,
59
+ L.value,
60
+ d
61
+ );
62
+ m.value = `${o}px`;
63
+ }
64
+ };
65
+ I(v, () => {
66
+ h.value ? g() : m.value = v.value;
67
+ }), I(
68
+ () => [e.value, e.modelValue],
69
+ () => {
70
+ n.value = e.modelValue || e.value;
71
+ },
72
+ { immediate: !0 }
73
+ ), I(
74
+ () => n.value,
75
+ async () => {
76
+ if (h.value) {
77
+ if (m.value = `${d}px`, !n.value)
78
+ return;
79
+ await ue(), g();
80
+ }
81
+ },
82
+ { immediate: !0 }
83
+ );
84
+ const U = i(() => !!e.errorMessage || A.value), z = i(() => ({
85
+ [`b-textarea--${p.DISABLED}`]: e.disabled
86
+ })), N = i(() => ({
87
+ [`b-textarea__input--${p.CLEARABLE}`]: e.clearable,
88
+ [`b-textarea__input--${p.READONLY}`]: x.value,
89
+ [`b-textarea__input--${p.ERROR}`]: U.value,
90
+ "b-textarea__input--dynamic-height": h.value
91
+ })), V = i(() => ({
92
+ "b-textarea__label-box--no-label": !e.label
93
+ })), Y = i(() => ({
94
+ [`b-textarea__label-item--${p.ERROR}`]: A.value
95
+ })), q = i(() => D("yourTextCanBenAtMost", { characterLimit: e.characterLimit })), F = u(r["aria-label"]), { ariaLabel: O, label: M } = T(e), $ = he({
96
+ ariaLabel: F.value,
97
+ // TODO: take this line away when the aria-label props is removed
98
+ label: O,
99
+ defaultFallback: M
100
+ }), G = i(
101
+ () => e.clearable && n.value && !e.disabled && !x.value
102
+ ), X = () => {
103
+ n.value = "", t(c.CLEAR), B("");
104
+ }, j = (o) => {
105
+ o.stopImmediatePropagation(), !e.disabled && !x.value && (n.value = o.target.value, B(n.value));
106
+ }, J = () => {
107
+ s.value.scrollTop = 0, t(c.BLUR);
108
+ }, Q = () => {
109
+ s.value.focus(), t(c.FOCUS);
110
+ }, Z = () => {
111
+ t(c.CHANGE);
112
+ }, ee = () => {
113
+ t(c.ESCAPE_PRESSED);
114
+ }, ae = (o) => {
115
+ o.stopPropagation(), t(c.KEYDOWN, o);
116
+ }, te = (o) => {
117
+ o.stopPropagation(), t(c.KEYUP, o);
118
+ }, le = () => {
119
+ y.value = !0;
120
+ }, oe = () => {
121
+ y.value = !1;
122
+ }, k = (o = !1) => {
123
+ var S;
124
+ const C = s.value.style.width;
125
+ if (s.value.style.height && (y.value && (L.value = parseInt(s.value.style.height, 10)), m.value = s.value.style.height), o && !C)
126
+ return;
127
+ const re = (S = f == null ? void 0 : f.value) == null ? void 0 : S.offsetWidth;
128
+ !C || parseInt(C, 10) > re ? E.value = "100%" : E.value = C;
129
+ }, P = () => {
130
+ s.value.focus();
131
+ };
132
+ return a({
133
+ focus: P
134
+ }), ce(() => {
135
+ b = w(s.value, () => {
136
+ k(!0);
137
+ }), _ = w(f.value, () => {
138
+ k();
139
+ }), h.value && g(), e.value && fe(
140
+ 'BentoTextarea "value" property',
141
+ `The use of "value" prop in "BentoTextarea" is no longer supported.
142
+ Use the "v-model" or "model-value" property instead.`,
143
+ "2.0.0"
144
+ );
145
+ }), de(() => {
146
+ b == null || b.disconnect(), _ == null || _.disconnect();
147
+ }), { __sfc: !0, TEXTAREA_BORDER_WIDTH: H, attrs: r, props: e, emit: t, height: v, textareaId: W, textareaElement: s, textareaComponent: f, textareaValue: n, defaultTextareaHeight: d, textareaHeight: m, userSetHeight: L, textareaWrapperWidth: E, isUserResizing: y, textareaElementObserver: b, textareaComponentObserver: _, t: D, n: R, isReadOnly: x, emitValue: B, counter: K, isDynamicHeight: h, isOverCharacterLimit: A, calculateHeight: g, invalidInput: U, conditionalClasses: z, conditionalClassesInput: N, conditionalClassesLabelBox: V, conditionalClassesLabelItem: Y, counterErrorText: q, ariaLabelAttribute: F, ariaLabel: O, label: M, computedAriaLabel: $, showClearButton: G, onClear: X, onInput: j, onBlur: J, onFocus: Q, onChange: Z, onPressEscape: ee, onKeyDown: ae, onKeyUp: te, onMouseDown: le, onMouseUp: oe, resizeTextareaWrapper: k, focus: P, BentoButton: pe, BentoTypography: me, ErrorMessage: Le, FieldLabel: Ce, CrossCircleFillSmallIcon: be };
148
+ }
149
+ });
150
+ var ke = function() {
151
+ var a = this, t = a._self._c, e = a._self._setupProxy;
152
+ return t("div", { ref: "textareaComponent", staticClass: "b-textarea", class: e.conditionalClasses }, [t("div", { style: { width: e.textareaWrapperWidth } }, [t("div", { staticClass: "b-textarea__label-box", class: e.conditionalClassesLabelBox }, [e.label ? t(e.FieldLabel, { attrs: { for: e.textareaId, label: e.label, "tooltip-text": a.tooltipText, optional: a.optional, required: a.required } }) : a._e(), a.characterLimit ? t(e.BentoTypography, { staticClass: "b-textarea__label-item", class: e.conditionalClassesLabelItem, attrs: { el: "span" } }, [a._v(" " + a._s(e.counter) + " ")]) : a._e()], 1), t(e.BentoTypography, { staticClass: "b-textarea__input-box", attrs: { el: "div", "aria-disabled": a.disabled } }, [t("textarea", { ref: "textareaElement", staticClass: "b-textarea__input", class: e.conditionalClassesInput, style: { resize: a.resizable, height: e.textareaHeight }, attrs: { id: e.textareaId, "aria-label": e.computedAriaLabel, "aria-invalid": e.invalidInput, readonly: e.isReadOnly, required: a.required, disabled: a.disabled, placeholder: a.placeholder }, domProps: { value: e.textareaValue }, on: { blur: e.onBlur, change: e.onChange, focus: e.onFocus, input: e.onInput, keydown: [function(r) {
153
+ return !r.type.indexOf("key") && a._k(r.keyCode, "esc", 27, r.key, ["Esc", "Escape"]) ? null : e.onPressEscape.apply(null, arguments);
154
+ }, e.onKeyDown], keyup: e.onKeyUp, mousedown: e.onMouseDown, mouseup: e.onMouseUp } }), e.showClearButton ? t("div", { staticClass: "b-textarea__clear-button" }, [t(e.BentoButton, { attrs: { variant: "tertiary", disabled: a.disabled }, on: { click: e.onClear, keypress: function(r) {
155
+ return !r.type.indexOf("key") && a._k(r.keyCode, "enter", 13, r.key, "Enter") ? null : e.onClear.apply(null, arguments);
156
+ }, keyup: function(r) {
157
+ return !r.type.indexOf("key") && a._k(r.keyCode, "space", 32, r.key, [" ", "Spacebar"]) ? null : e.onClear.apply(null, arguments);
158
+ } }, scopedSlots: a._u([{ key: "iconLeft", fn: function() {
159
+ return [t(e.CrossCircleFillSmallIcon, { attrs: { "svg-title": e.t("clearText") } })];
160
+ }, proxy: !0 }], null, !1, 3119266621) })], 1) : a._e()]), e.isOverCharacterLimit ? t(e.ErrorMessage, { attrs: { "error-message": e.counterErrorText } }) : a._e(), a.errorMessage ? t(e.ErrorMessage, { attrs: { "error-message": a.errorMessage } }) : a._e(), a.description ? t(e.BentoTypography, { staticClass: "b-textarea__description", attrs: { el: "span" } }, [a._v(" " + a._s(a.description) + " ")]) : a._e()], 1)]);
161
+ }, Ie = [], De = /* @__PURE__ */ Ee(
162
+ Ae,
163
+ ke,
164
+ Ie,
165
+ !1,
166
+ null,
167
+ "93c37e38"
168
+ );
169
+ const Ve = De.exports;
170
+ export {
171
+ Ve as B
172
+ };
173
+ //# sourceMappingURL=textarea.Ci9sKDFy.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"textarea.Ci9sKDFy.js","sources":["../../src/components/textarea/textarea.types.ts","../../src/components/textarea/textarea.vue"],"sourcesContent":["import type { FormField } from '../../types/form-field';\n\n/**\n * @deprecated for usage with properties since version 2.0. Use the string literal instead.\n */\nexport enum BentoTextareaResizeOption {\n HORIZONTAL = 'horizontal',\n VERTICAL = 'vertical',\n BOTH = 'both',\n NONE = 'none',\n}\n\nexport enum BentoTextareaStateClass {\n CLEARABLE = 'clearable',\n DISABLED = 'disabled',\n ERROR = 'error',\n READONLY = 'readonly',\n}\n\nexport enum BentoTextareaEvent {\n BLUR = 'blur',\n CHANGE = 'change',\n CLEAR = 'clear',\n ESCAPE_PRESSED = 'escape-pressed',\n FOCUS = 'focus',\n INPUT = 'input',\n UPDATE_MODEL_VALUE = 'update:model-value',\n KEYDOWN = 'keydown',\n KEYUP = 'keyup',\n}\n\nexport interface BentoTextareaProps extends FormField {\n /**\n * Text that labels the input element\n * @default undefined\n */\n ariaLabel?: string;\n\n /**\n * Text that shows number of characters in textarea\n * @default undefined\n */\n characterLimit?: number;\n\n /**\n * If set to true, shows a button to clear all the text\n * @default false\n */\n clearable?: boolean;\n\n /**\n * Sets the height of the textarea, e.g 200px OR 20vh\n * @default null\n */\n height?: string | null;\n\n /**\n * Indicates the possibility of resize the textarea.\n * Accepts the Enum or the string literal version.\n * @default BentoTextareaResizeOption.BOTH\n */\n resizable?: BentoTextareaResizeOption | `${BentoTextareaResizeOption}`;\n\n /**\n * Text displayed as the value of the textarea\n * @deprecated for usage with properties since version 2.0. Use `v-model` or `model-value` instead.\n */\n value?: string;\n\n /**\n * Text displayed as the value of the textarea\n */\n modelValue?: string;\n}\n","<template>\n <div ref=\"textareaComponent\" class=\"b-textarea\" :class=\"conditionalClasses\">\n <div :style=\"{ width: textareaWrapperWidth }\">\n <div class=\"b-textarea__label-box\" :class=\"conditionalClassesLabelBox\">\n <field-label\n v-if=\"label\"\n :for=\"textareaId\"\n :label=\"label\"\n :tooltip-text=\"tooltipText\"\n :optional=\"optional\"\n :required=\"required\"\n />\n <bento-typography\n v-if=\"characterLimit\"\n el=\"span\"\n class=\"b-textarea__label-item\"\n :class=\"conditionalClassesLabelItem\"\n >\n {{ counter }}\n </bento-typography>\n </div>\n <bento-typography el=\"div\" class=\"b-textarea__input-box\" :aria-disabled=\"disabled\">\n <textarea\n :id=\"textareaId\"\n ref=\"textareaElement\"\n :value=\"textareaValue\"\n class=\"b-textarea__input\"\n :class=\"conditionalClassesInput\"\n :aria-label=\"computedAriaLabel\"\n :aria-invalid=\"invalidInput\"\n :readonly=\"isReadOnly\"\n :required=\"required\"\n :disabled=\"disabled\"\n :placeholder=\"placeholder\"\n :style=\"{ resize: resizable, height: textareaHeight }\"\n @blur=\"onBlur\"\n @change=\"onChange\"\n @focus=\"onFocus\"\n @input=\"onInput\"\n @keydown.esc=\"onPressEscape\"\n @keydown=\"onKeyDown\"\n @keyup=\"onKeyUp\"\n @mousedown=\"onMouseDown\"\n @mouseup=\"onMouseUp\"\n >\n </textarea>\n\n <div v-if=\"showClearButton\" class=\"b-textarea__clear-button\">\n <bento-button\n variant=\"tertiary\"\n :disabled=\"disabled\"\n @click=\"onClear\"\n @keypress.enter=\"onClear\"\n @keyup.space=\"onClear\"\n >\n <template #iconLeft>\n <cross-circle-fill-small-icon :svg-title=\"t('clearText')\" />\n </template>\n </bento-button>\n </div>\n </bento-typography>\n\n <error-message v-if=\"isOverCharacterLimit\" :error-message=\"counterErrorText\" />\n\n <error-message v-if=\"errorMessage\" :error-message=\"errorMessage\" />\n\n <bento-typography v-if=\"description\" class=\"b-textarea__description\" el=\"span\">\n {{ description }}\n </bento-typography>\n </div>\n </div>\n</template>\n\n<script setup lang=\"ts\">\n import { computed, nextTick, onMounted, onUnmounted, ref, toRef, toRefs, useAttrs, watch } from 'vue';\n\n // Components\n import { BentoButton } from '@/components/button';\n import { BentoTypography } from '@/components/typography';\n import { ErrorMessage, FieldLabel } from '@/internal';\n import CrossCircleFillSmallIcon from '@adyen/ui-assets-icons-16/vue/cross-circle-fill-small';\n\n // Utils\n import { generateUid } from '@/core/utils/ts';\n import { observeSizeOfElement } from '@/utils/ts/resize';\n import { useAriaLabel } from '@/utils/ts/aria-label';\n import { useI18n } from '@/utils/ts/i18n';\n import { deprecate } from '@/utils/ts/deprecate';\n import { useFormFieldEmits } from '@/utils/ts/form-field/form-field';\n\n // Composables\n import { useFormLayoutFieldLoading } from '@/composables/use-form-layout-loading/use-form-layout-loading';\n\n // Constants\n import { BTextareaInputFocusBorderWidth } from '@adyen/bento-design-tokens/dist/js/bento/es6';\n\n // Types\n import { BentoTextareaEvent, type BentoTextareaProps, BentoTextareaStateClass } from './textarea.types';\n\n import messages from './messages.json';\n\n type MessageSchema = (typeof messages)['en-US'];\n\n const attrs = useAttrs();\n\n const props = defineProps({\n description: { default: '' },\n disabled: { type: Boolean, default: false },\n errorMessage: { default: '' },\n label: { default: '' },\n optional: { type: Boolean, default: false },\n placeholder: { default: '' },\n readonly: { type: Boolean, default: false },\n required: { type: Boolean, default: false },\n tooltipText: { default: null },\n ariaLabel: { default: undefined },\n characterLimit: { default: undefined },\n clearable: { type: Boolean, default: false },\n height: { default: null },\n resizable: { default: 'both' },\n value: { default: '' },\n modelValue: { default: '' }\n});\n\n const emit = defineEmits([]);\n\n const { height } = toRefs(props);\n\n const textareaId = generateUid('textarea');\n const textareaElement = ref<HTMLTextAreaElement>(null);\n const textareaComponent = ref<HTMLDivElement>(null);\n const textareaValue = ref(props.modelValue || props.value);\n const defaultTextareaHeight = 44;\n const textareaHeight = ref(props.height || `${defaultTextareaHeight}px`);\n const userSetHeight = ref<number>(0);\n const textareaWrapperWidth = ref('100%'); // The width set to the wrapper of the label, textarea and description\n const isUserResizing = ref(false);\n let textareaElementObserver: ResizeObserver | null = null;\n let textareaComponentObserver: ResizeObserver | null = null;\n\n const { t, n } = useI18n<{ message: MessageSchema }>({ messages });\n\n const { isReadOnly } = useFormLayoutFieldLoading(toRef(props, 'readonly'));\n\n const { emitValue } = useFormFieldEmits<string>(emit);\n\n const counter = computed(() => `${n(textareaValue?.value?.length ?? 0)} / ${n(props.characterLimit)}`);\n const isDynamicHeight = computed(() => !height.value);\n const isOverCharacterLimit = computed(\n () => props.characterLimit && textareaValue.value.length > props.characterLimit\n );\n\n /**\n * Calculates and sets the height of the textarea.\n * The height is determined by the maximum of the following values:\n *\n * 1. The content's scroll height (with a minimum of `defaultTextareaHeight`) + the border width.\n * 2. The height set by the user manually resizing the textarea (`userSetHeight`).\n * 3. The default minimum height (`defaultTextareaHeight`).\n *\n * This ensures the textarea grows with content, shrinks when content is removed,\n * but never goes below the manually set height or the default height.\n */\n const calculateHeight = () => {\n if (textareaElement.value) {\n const newHeight = Math.max(\n textareaElement.value.scrollHeight <= defaultTextareaHeight\n ? defaultTextareaHeight\n : textareaElement.value.scrollHeight + TEXTAREA_BORDER_WIDTH * 2,\n userSetHeight.value,\n defaultTextareaHeight\n );\n textareaHeight.value = `${newHeight}px`;\n }\n };\n\n watch(height, () => {\n if (isDynamicHeight.value) {\n calculateHeight();\n } else {\n textareaHeight.value = height.value;\n }\n });\n\n watch(\n () => [props.value, props.modelValue],\n () => {\n textareaValue.value = props.modelValue || props.value;\n },\n { immediate: true }\n );\n\n watch(\n () => textareaValue.value,\n async () => {\n if (isDynamicHeight.value) {\n // Hack to make the textarea calculate its height properly\n // Set the textarea back to the original value before calculating the height\n textareaHeight.value = `${defaultTextareaHeight}px`;\n if (!textareaValue.value) {\n return;\n }\n\n await nextTick();\n calculateHeight();\n }\n },\n { immediate: true }\n );\n\n const invalidInput = computed(() => !!props.errorMessage || isOverCharacterLimit.value);\n\n const conditionalClasses = computed(() => ({\n [`b-textarea--${BentoTextareaStateClass.DISABLED}`]: props.disabled,\n }));\n\n const conditionalClassesInput = computed(() => ({\n [`b-textarea__input--${BentoTextareaStateClass.CLEARABLE}`]: props.clearable,\n [`b-textarea__input--${BentoTextareaStateClass.READONLY}`]: isReadOnly.value,\n [`b-textarea__input--${BentoTextareaStateClass.ERROR}`]: invalidInput.value,\n [`b-textarea__input--dynamic-height`]: isDynamicHeight.value,\n }));\n\n const conditionalClassesLabelBox = computed(() => ({\n [`b-textarea__label-box--no-label`]: !props.label,\n }));\n\n const conditionalClassesLabelItem = computed(() => ({\n [`b-textarea__label-item--${BentoTextareaStateClass.ERROR}`]: isOverCharacterLimit.value,\n }));\n\n const counterErrorText = computed(() => t('yourTextCanBenAtMost', { characterLimit: props.characterLimit }));\n\n const ariaLabelAttribute = ref(attrs['aria-label']);\n const { ariaLabel, label } = toRefs(props);\n const computedAriaLabel = useAriaLabel({\n ariaLabel: ariaLabelAttribute.value as string,\n // TODO: take this line away when the aria-label props is removed\n label: ariaLabel,\n defaultFallback: label,\n });\n\n const showClearButton = computed(\n () => props.clearable && textareaValue.value && !props.disabled && !isReadOnly.value\n );\n\n const onClear = () => {\n textareaValue.value = '';\n emit(BentoTextareaEvent.CLEAR);\n emitValue('');\n };\n\n const onInput = (event: InputEvent) => {\n event.stopImmediatePropagation();\n\n if (!props.disabled && !isReadOnly.value) {\n textareaValue.value = (event.target as HTMLInputElement).value;\n /**\n * Triggered when input value is changed\n *\n * @event input\n * @property {String} inputValue - the updated textarea value\n */\n emitValue(textareaValue.value);\n }\n };\n\n const onBlur = () => {\n textareaElement.value.scrollTop = 0;\n emit(BentoTextareaEvent.BLUR);\n };\n\n const onFocus = () => {\n textareaElement.value.focus();\n emit(BentoTextareaEvent.FOCUS);\n };\n\n const onChange = () => {\n emit(BentoTextareaEvent.CHANGE);\n };\n\n const onPressEscape = () => {\n emit(BentoTextareaEvent.ESCAPE_PRESSED);\n };\n\n const onKeyDown = (event: KeyboardEvent) => {\n event.stopPropagation();\n emit(BentoTextareaEvent.KEYDOWN, event);\n };\n\n const onKeyUp = (event: KeyboardEvent) => {\n event.stopPropagation();\n emit(BentoTextareaEvent.KEYUP, event);\n };\n\n const onMouseDown = () => {\n isUserResizing.value = true;\n };\n\n const onMouseUp = () => {\n isUserResizing.value = false;\n };\n\n /**\n * Updates the textarea width depending if the container or the user update its size.\n * @param isTextareaElement - sets to true if the element being observed is the textarea HTML element.\n */\n const resizeTextareaWrapper = (isTextareaElement = false) => {\n // Width assigned by the browser whenever the textarea is manually resized. String of the format `<value>px`.\n const textareaStyleWidth = textareaElement.value.style.width;\n\n // Make sure the tracked textareaHeight is always in sync with the height size in case we manually resize the textarea\n if (textareaElement.value.style.height) {\n if (isUserResizing.value) {\n userSetHeight.value = parseInt(textareaElement.value.style.height, 10);\n }\n textareaHeight.value = textareaElement.value.style.height;\n }\n\n // If the textarea element observer is being triggered, but there's no textareaStyleWidth, we want to ignore it, as no manual resize as happened yet\n // The component wrapper will handle the resizing logic instead\n if (isTextareaElement && !textareaStyleWidth) {\n return;\n }\n\n // Width of the whole bento-textarea component\n const textareaComponentWidth = textareaComponent?.value?.offsetWidth;\n\n // If there is no textareaStyleWidth or the textareaStyleWidth is larger than the component container, the wrapper should be 100% of the container\n if (!textareaStyleWidth || parseInt(textareaStyleWidth, 10) > textareaComponentWidth) {\n textareaWrapperWidth.value = '100%';\n } else {\n // Else the wrapper should always be as wide as the textarea element itself\n textareaWrapperWidth.value = textareaStyleWidth;\n }\n };\n\n const focus = () => {\n textareaElement.value.focus();\n };\n\n defineExpose({\n focus,\n });\n\n onMounted(() => {\n textareaElementObserver = observeSizeOfElement(textareaElement.value, () => {\n resizeTextareaWrapper(true);\n });\n\n textareaComponentObserver = observeSizeOfElement(textareaComponent.value, () => {\n resizeTextareaWrapper();\n });\n\n if (isDynamicHeight.value) {\n calculateHeight();\n }\n\n if (props.value) {\n deprecate(\n 'BentoTextarea \"value\" property',\n `The use of \"value\" prop in \"BentoTextarea\" is no longer supported.\n Use the \"v-model\" or \"model-value\" property instead.`,\n '2.0.0'\n );\n }\n });\n\n onUnmounted(() => {\n textareaElementObserver?.disconnect();\n textareaComponentObserver?.disconnect();\n });\n</script>\n\n<script lang=\"ts\">\n const TEXTAREA_BORDER_WIDTH = parseFloat(BTextareaInputFocusBorderWidth);\n\n export default {\n i18n: { messages },\n name: 'bento-textarea',\n model: { prop: 'modelValue' },\n };\n</script>\n\n<style lang=\"scss\" scoped src=\"./textarea.scss\" />\n"],"names":["BentoTextareaStateClass","BentoTextareaStateClass2","BentoTextareaEvent","BentoTextareaEvent2","TEXTAREA_BORDER_WIDTH","BTextareaInputFocusBorderWidth","__default__","messages","attrs","useAttrs","height","toRefs","props","textareaId","generateUid","textareaElement","ref","textareaComponent","textareaValue","defaultTextareaHeight","textareaHeight","userSetHeight","textareaWrapperWidth","isUserResizing","textareaElementObserver","textareaComponentObserver","t","n","useI18n","isReadOnly","useFormLayoutFieldLoading","toRef","emitValue","useFormFieldEmits","emit","counter","computed","_a","isDynamicHeight","isOverCharacterLimit","calculateHeight","newHeight","watch","nextTick","invalidInput","conditionalClasses","conditionalClassesInput","conditionalClassesLabelBox","conditionalClassesLabelItem","counterErrorText","ariaLabelAttribute","ariaLabel","label","computedAriaLabel","useAriaLabel","showClearButton","onClear","onInput","event","onBlur","onFocus","onChange","onPressEscape","onKeyDown","onKeyUp","onMouseDown","onMouseUp","resizeTextareaWrapper","isTextareaElement","textareaStyleWidth","textareaComponentWidth","focus","expose","onMounted","observeSizeOfElement","deprecate","onUnmounted"],"mappings":"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"}
@@ -0,0 +1,255 @@
1
+ import { defineComponent as L, computed as o, ref as N, toRefs as G, watch as Q, provide as x, nextTick as X, useSlots as ee, inject as k, onUnmounted as te } from "vue";
2
+ import { B as H } from "./button.CS_kdxYh.js";
3
+ import { B as se } from "./textarea.Ci9sKDFy.js";
4
+ import { u as J } from "./index.B6WW_F-J.js";
5
+ import { B as ae } from "./button-actions.N3D-Bb_x.js";
6
+ import { n as R } from "./_plugin-vue2_normalizer.CeySl7Fu.js";
7
+ import { B as ie } from "./date.C1z2TXzM.js";
8
+ import { B as ne } from "./link.D8qpqg3W.js";
9
+ import { B as oe } from "./tag.7fp_M9Au.js";
10
+ import { d as le, B as re } from "./typography.hlOAxsEn.js";
11
+ import { S as ce, a as me, B as de } from "./structured-list-item.BLJabJwA.js";
12
+ /* empty css */
13
+ import { g as ue } from "./generate-uid.NJ8tVoha.js";
14
+ import { u as _e } from "./use-has-slot.C9lQZ6nz.js";
15
+ import { b as fe, e as ve, a as pe, n as he, g as $, m as F, d as U, f as Y, h as j } from "./getTimezoneOffsetInMilliseconds.B7sxiukN.js";
16
+ import { g as ge } from "./getRoundingMethod.C3eaeGLR.js";
17
+ import "../assets/timeline-item.css";
18
+ var I = /* @__PURE__ */ ((a) => (a.BOTTOM = "bottom", a.AFTER_FIRST = "after-first", a.BEFORE_LAST = "before-last", a))(I || {}), be = /* @__PURE__ */ ((a) => (a.SECOND = "second", a.MINUTE = "minute", a.HOUR = "hour", a.DAY = "day", a.MONTH = "month", a.YEAR = "year", a))(be || {}), A = /* @__PURE__ */ ((a) => (a.DEFAULT = "SquareSmallIcon", a.SUCCESS = "CheckedCircleIcon", a.CRITICAL = "CrossCircleIcon", a))(A || {}), ye = /* @__PURE__ */ ((a) => (a.BLACK = "black", a.BLUE = "blue", a.GREEN = "green", a.GREY = "grey", a.ORANGE = "orange", a.RED = "red", a.YELLOW = "yellow", a))(ye || {});
19
+ const K = /* @__PURE__ */ Symbol("timeline register entry injection key"), q = /* @__PURE__ */ Symbol("timeline config obj injection key"), Ce = {
20
+ "en-US": {
21
+ addNote: "Add note",
22
+ cancel: "Cancel"
23
+ },
24
+ "ja-JP": {
25
+ addNote: "メモを追加",
26
+ cancel: "キャンセル"
27
+ },
28
+ "pt-BR": {
29
+ addNote: "Adicionar anotação",
30
+ cancel: "Cancelar"
31
+ }
32
+ }, Te = L({
33
+ i18n: { messages: Ce },
34
+ name: "bento-timeline"
35
+ }), we = /* @__PURE__ */ L({
36
+ ...Te,
37
+ props: {
38
+ addNote: { type: Boolean, default: !1 },
39
+ showMore: { default: null },
40
+ timegapLimit: { default: null }
41
+ },
42
+ emits: ["add-timeline-note"],
43
+ setup(a, { emit: e }) {
44
+ const t = a, { t: s } = J(), r = o(() => s("addNote")), p = o(() => s("cancel")), c = N(), y = (u) => {
45
+ c.value = u;
46
+ }, b = N(null), d = N(null), f = N(!1), m = async () => {
47
+ var u, g;
48
+ f.value = !f.value, await X(), f.value ? (u = b.value.$refs.textareaElement) == null || u.focus() : (g = d.value.$el) == null || g.focus();
49
+ }, C = () => {
50
+ e("add-timeline-note", {
51
+ description: c.value,
52
+ timestamp: { date: /* @__PURE__ */ new Date() },
53
+ type: "note"
54
+ }), m();
55
+ }, i = N([]), h = o(
56
+ () => t.showMore && i.value.length > t.showMore.limit ? i.value.length - t.showMore.limit : null
57
+ ), l = N(!1), { timegapLimit: n } = G(t), _ = o(() => Array.from(i.value.keys())), v = o(() => t.showMore ? t.showMore.placement === I.BEFORE_LAST ? [
58
+ ..._.value.slice(0, t.showMore.limit - 1),
59
+ _.value[_.value.length - 1]
60
+ ] : t.showMore.placement === I.AFTER_FIRST ? [_.value[0], ..._.value.slice(-(t.showMore.limit - 1))] : _.value.slice(0, t.showMore.limit) : null), T = o(() => {
61
+ if (!t.showMore)
62
+ return null;
63
+ switch (t.showMore.placement) {
64
+ case I.BEFORE_LAST:
65
+ return t.showMore.limit - 2;
66
+ case I.AFTER_FIRST:
67
+ return 0;
68
+ case I.BOTTOM:
69
+ default:
70
+ return t.showMore.limit - 1;
71
+ }
72
+ }), E = () => {
73
+ i.value.sort((u, g) => new Date(g.date).getTime() - new Date(u.date).getTime());
74
+ }, S = (u) => () => {
75
+ const g = i.value.indexOf(u);
76
+ g > -1 && i.value.splice(g, 1);
77
+ }, B = (u) => (i.value.push(u), { timelineEntries: i, unregisterTimelineEntry: S(u) });
78
+ Q(
79
+ () => i.value.length,
80
+ () => E()
81
+ );
82
+ const w = {
83
+ showAll: l,
84
+ showMoreIndex: T,
85
+ hiddenItems: h,
86
+ visibleIndexes: v,
87
+ timegapLimit: n,
88
+ timelineEntries: i
89
+ };
90
+ return x(K, B), x(q, w), { __sfc: !0, props: t, emit: e, t: s, addNoteLabel: r, cancelLabel: p, newNoteContent: c, updateNoteContent: y, addNoteTextareaRef: b, addNoteButtonRef: d, showAddNoteTextArea: f, toggleAddNote: m, addNoteToTimeline: C, timelineEntries: i, hiddenItems: h, showAll: l, timegapLimit: n, timelineIndexes: _, visibleIndexes: v, showMoreIndex: T, sortEntries: E, unregisterTimelineEntry: S, registerTimelineEntry: B, configData: w, BentoButton: H, BentoButtonActions: ae, BentoTextarea: se };
91
+ }
92
+ });
93
+ var Ne = function() {
94
+ var e = this, t = e._self._c, s = e._self._setupProxy;
95
+ return t("div", { staticClass: "b-timeline" }, [e.addNote ? t("div", { staticClass: "b-timeline__add-note-section" }, [s.showAddNoteTextArea ? e._e() : t(s.BentoButton, { ref: "addNoteButtonRef", attrs: { variant: "tertiary" }, on: { click: s.toggleAddNote } }, [e._v(e._s(s.addNoteLabel))]), s.showAddNoteTextArea ? t("div", [t(s.BentoTextarea, { ref: "addNoteTextareaRef", attrs: { label: s.addNoteLabel, "character-limit": 150, resizable: "vertical" }, on: { "update:model-value": s.updateNoteContent } }), t(s.BentoButtonActions, { attrs: { actions: [
96
+ { title: s.addNoteLabel, event: s.addNoteToTimeline },
97
+ { title: s.cancelLabel, event: s.toggleAddNote }
98
+ ] } })], 1) : e._e()], 1) : e._e(), t("ol", { staticClass: "b-timeline__items" }, [e._t("default")], 2)]);
99
+ }, Ie = [], Ee = /* @__PURE__ */ R(
100
+ we,
101
+ Ne,
102
+ Ie,
103
+ !1,
104
+ null,
105
+ "4acaf49e"
106
+ );
107
+ const et = Ee.exports;
108
+ let P = 0;
109
+ const Se = {
110
+ beforeCreate() {
111
+ this.uuid = P.toString(), P += 1;
112
+ }
113
+ };
114
+ var Be = function() {
115
+ var e = this, t = e._self._c;
116
+ return t("svg", e._b({ staticClass: "ui-assets-icons-16", attrs: { role: "img", xmlns: "http://www.w3.org/2000/svg", width: "16", height: "16", fill: "none" } }, "svg", e.$attrs, !1), [e.$attrs["svg-title"] ? t("title", [e._v(e._s(e.$attrs["svg-title"]))]) : e._e(), t("path", { attrs: { fill: "#001222", d: "M10 3.25C11.5188 3.25 12.75 4.48122 12.75 6V10C12.75 11.5188 11.5188 12.75 10 12.75H6C4.48122 12.75 3.25 11.5188 3.25 10V6C3.25 4.48122 4.48122 3.25 6 3.25H10Z" } })]);
117
+ }, Le = [], Me = /* @__PURE__ */ R(
118
+ Se,
119
+ Be,
120
+ Le,
121
+ !1,
122
+ null,
123
+ null
124
+ );
125
+ const xe = Me.exports;
126
+ function z(a, e, t) {
127
+ const s = fe(), r = (t == null ? void 0 : t.locale) ?? s.locale ?? ve, p = pe(a, e);
128
+ if (isNaN(p))
129
+ throw new RangeError("Invalid time value");
130
+ const c = Object.assign({}, t, {
131
+ addSuffix: t == null ? void 0 : t.addSuffix,
132
+ comparison: p
133
+ }), [y, b] = he(
134
+ t == null ? void 0 : t.in,
135
+ ...p > 0 ? [e, a] : [a, e]
136
+ ), d = ge((t == null ? void 0 : t.roundingMethod) ?? "round"), f = b.getTime() - y.getTime(), m = f / j, C = $(b) - $(y), i = (f - C) / j, h = t == null ? void 0 : t.unit;
137
+ let l;
138
+ if (h ? l = h : m < 1 ? l = "second" : m < 60 ? l = "minute" : m < F ? l = "hour" : i < U ? l = "day" : i < Y ? l = "month" : l = "year", l === "second") {
139
+ const n = d(f / 1e3);
140
+ return r.formatDistance("xSeconds", n, c);
141
+ } else if (l === "minute") {
142
+ const n = d(m);
143
+ return r.formatDistance("xMinutes", n, c);
144
+ } else if (l === "hour") {
145
+ const n = d(m / 60);
146
+ return r.formatDistance("xHours", n, c);
147
+ } else if (l === "day") {
148
+ const n = d(i / F);
149
+ return r.formatDistance("xDays", n, c);
150
+ } else if (l === "month") {
151
+ const n = d(i / U);
152
+ return n === 12 && h !== "month" ? r.formatDistance("xYears", 1, c) : r.formatDistance("xMonths", n, c);
153
+ } else {
154
+ const n = d(i / Y);
155
+ return r.formatDistance("xYears", n, c);
156
+ }
157
+ }
158
+ const Ae = {
159
+ "en-US": {
160
+ showLess: "Show less",
161
+ showMore: "Show {items} more",
162
+ timegap: "{timegap} passed between the timeline events"
163
+ },
164
+ "ja-JP": {
165
+ showLess: "表示内容を減らす"
166
+ },
167
+ "pt-BR": {
168
+ showLess: "Mostrar menos"
169
+ }
170
+ }, Re = L({
171
+ name: "bento-timeline-item",
172
+ i18n: { messages: Ae }
173
+ }), De = /* @__PURE__ */ L({
174
+ ...Re,
175
+ props: {
176
+ additionalTimestamp: { default: null },
177
+ dataList: { default: null },
178
+ description: { default: null },
179
+ status: { default: "black" },
180
+ tag: { default: void 0 },
181
+ timestamp: null,
182
+ title: { default: null },
183
+ type: { default: "milestone" },
184
+ variant: { default: null }
185
+ },
186
+ setup(a) {
187
+ const e = a, { t } = J(), s = ee(), r = _e(s), p = o(() => e.type === "note"), c = o(() => e.variant === A.CRITICAL ? "red" : e.variant === A.SUCCESS ? "green" : e.status);
188
+ e.variant && le(
189
+ 'BentoTimelineItem "variant" property',
190
+ `Use the BentoTimelineItem "status" modifier instead to modify the color of the timeline icon.
191
+ <bento-timeline-item status="red" />`,
192
+ "2.0.0"
193
+ );
194
+ const y = o(() => ({
195
+ [`b-timeline-item__icon--${c.value}`]: c.value && !p.value
196
+ })), b = o(() => ({
197
+ "b-timeline-item--note": p.value
198
+ }));
199
+ x(ce, !0);
200
+ const d = {
201
+ title: e.title,
202
+ date: e.timestamp.date
203
+ }, f = k(K), { timelineEntries: m, unregisterTimelineEntry: C } = f(d);
204
+ te(() => C());
205
+ const { showAll: i, showMoreIndex: h, hiddenItems: l, visibleIndexes: n, timegapLimit: _ } = k(q), v = o(() => m.value.indexOf(d)), T = o(() => i.value || !n.value), E = o(() => T.value ? !0 : n.value.includes(v.value)), S = o(() => typeof e.title == "object"), B = o(() => e.title), w = o(() => {
206
+ var O;
207
+ if (!_.value)
208
+ return null;
209
+ const M = (O = m.value[v.value - 1]) == null ? void 0 : O.date, W = T.value || n.value.includes(v.value - 1);
210
+ if (!M || !W)
211
+ return null;
212
+ const { date: D } = m.value[v.value], Z = parseInt(
213
+ z(M, D, { unit: _.value.unit }),
214
+ 10
215
+ );
216
+ return _.value.amount < Z ? z(M, D, { roundingMethod: "floor" }) : null;
217
+ }), u = o(() => w.value ? t("timegap", { timegap: w.value }) : ""), g = o(() => l.value && h.value === v.value), V = o(() => v.value !== -1 && v.value === m.value.length - 1);
218
+ return { __sfc: !0, props: e, t, slots: s, hasSlot: r, isNoteType: p, computedStatus: c, iconConditionalClasses: y, conditionalClasses: b, entry: d, registerTimelineEntry: f, timelineEntries: m, unregisterTimelineEntry: C, showAll: i, showMoreIndex: h, hiddenItems: l, visibleIndexes: n, timegapLimit: _, index: v, allItemsShowing: T, isVisible: E, isLinkTitle: S, linkTitleProps: B, timegap: w, timegapAriaLabel: u, displayShowMoreButton: g, isLastItem: V, BentoButton: H, BentoDate: ie, BentoLink: ne, BentoTag: oe, BentoTypography: re, BentoStructuredList: de, BentoStructuredListItem: me, SquareSmallIcon: xe, generateUid: ue };
219
+ }
220
+ });
221
+ var Oe = function() {
222
+ var e = this, t = e._self._c, s = e._self._setupProxy;
223
+ return s.isVisible ? t("li", { staticClass: "b-timeline-item", class: s.conditionalClasses }, [s.timegap ? t("div", { staticClass: "b-timeline-item__row" }, [e._m(0), t("div", { staticClass: "b-timeline-item__content" }, [t(s.BentoTypography, { staticClass: "b-timeline-item__timegap", attrs: { "aria-label": s.timegapAriaLabel } }, [e._v(" " + e._s(s.timegap) + " ")])], 1)]) : e._e(), t("div", { staticClass: "b-timeline-item__row" }, [t("div", { staticClass: "b-timeline-item__marker", attrs: { "aria-hidden": "true" } }, [t(s.SquareSmallIcon, { staticClass: "b-timeline-item__icon", class: s.iconConditionalClasses }), s.isLastItem ? e._e() : t("div", { staticClass: "b-timeline-item__separator", attrs: { "data-testid": "last-timeline-item-separator" } })], 1), t("div", { staticClass: "b-timeline-item__content" }, [s.isNoteType ? e._e() : t(s.BentoTypography, { staticClass: "b-timeline-item__title", attrs: { el: "div", variant: "body", strongest: "", role: "heading", "aria-level": "2" } }, [s.isLinkTitle ? t(s.BentoLink, e._b({ attrs: { "disable-typography": "" } }, "bento-link", s.linkTitleProps, !1), [e._v(e._s(s.linkTitleProps.title))]) : t("span", [e._v(e._s(e.title))])], 1), s.isNoteType && (e.description || s.hasSlot("default")) ? t(s.BentoTypography, { staticClass: "b-timeline-item__description", attrs: { el: "div", variant: "body" } }, [e._t("default", function() {
224
+ return [e._v(e._s(e.description))];
225
+ })], 2) : e._e(), e.timestamp ? t(s.BentoTypography, { staticClass: "b-timeline-item__timestamp", attrs: { el: "div", variant: "caption" } }, [t(s.BentoDate, { attrs: { date: e.timestamp.date, format: e.timestamp.format, "disable-typography": "" } }), e._v(" " + e._s(e.timestamp.value) + " ")], 1) : e._e(), !s.isNoteType && e.additionalTimestamp ? t(s.BentoTypography, { staticClass: "b-timeline-item__timestamp", attrs: { el: "div", variant: "caption" } }, [t(s.BentoDate, { attrs: { date: e.additionalTimestamp.date, format: e.additionalTimestamp.format, "disable-typography": "" } }), e._v(" " + e._s(e.additionalTimestamp.value) + " ")], 1) : e._e(), !s.isNoteType && (e.description || s.hasSlot("default")) ? t(s.BentoTypography, { staticClass: "b-timeline-item__description", attrs: { el: "div", variant: "body" } }, [e._t("default", function() {
226
+ return [e._v(e._s(e.description))];
227
+ })], 2) : e._e(), !s.isNoteType && e.dataList ? t("div", { staticClass: "b-timeline-item__data-list" }, [t(s.BentoStructuredList, e._l(e.dataList, function(r) {
228
+ return t(s.BentoStructuredListItem, { key: s.generateUid(r.label), attrs: { label: r.label } }, [t(s.BentoTypography, { attrs: { variant: "caption" } }, [e._v(e._s(r.value))])], 1);
229
+ }), 1)], 1) : e._e(), !s.isNoteType && e.tag ? t(s.BentoTag, e._b({ staticClass: "b-timeline-item__tag" }, "bento-tag", e.tag, !1)) : e._e()], 1)]), s.displayShowMoreButton ? t("div", { staticClass: "b-timeline-item__row" }, [e._m(1), t("div", { staticClass: "b-timeline-item__content" }, [t(s.BentoButton, { staticClass: "b-timeline__show-more", attrs: { variant: "tertiary" }, on: { click: function(r) {
230
+ s.showAll = !s.showAll;
231
+ } } }, [s.showAll ? [e._v(e._s(s.t("showLess")))] : [e._v(e._s(s.t("showMore", { items: s.hiddenItems })))]], 2)], 1)]) : e._e()]) : e._e();
232
+ }, ke = [function() {
233
+ var a = this, e = a._self._c;
234
+ return a._self._setupProxy, e("div", { staticClass: "b-timeline-item__marker", attrs: { "aria-hidden": "true" } }, [e("div", { staticClass: "b-timeline-item__icon b-timeline-item__icon--timegap" }), e("div", { staticClass: "b-timeline-item__separator" })]);
235
+ }, function() {
236
+ var a = this, e = a._self._c;
237
+ return a._self._setupProxy, e("div", { staticClass: "b-timeline-item__marker", attrs: { "aria-hidden": "true" } }, [e("div", { staticClass: "b-timeline-item__separator" })]);
238
+ }], $e = /* @__PURE__ */ R(
239
+ De,
240
+ Oe,
241
+ ke,
242
+ !1,
243
+ null,
244
+ "fd77a46f"
245
+ );
246
+ const tt = $e.exports;
247
+ export {
248
+ I as B,
249
+ tt as a,
250
+ be as b,
251
+ A as c,
252
+ ye as d,
253
+ et as t
254
+ };
255
+ //# sourceMappingURL=timeline-item.DcIQ-Q1T.js.map