bromcom-ui-next 0.1.29 → 0.1.30

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 (426) hide show
  1. package/dist/bromcom-ui/_commonjsHelpers-CvGrISen.js.map +1 -0
  2. package/dist/bromcom-ui/bcm-accordion.entry.esm.js.map +1 -1
  3. package/dist/bromcom-ui/bcm-alert.entry.esm.js.map +1 -1
  4. package/dist/bromcom-ui/bcm-button.bcm-drawer.bcm-linked.bcm-modal.bcm-pop-confirm.bcm-popover.bcm-tooltip.entry.esm.js.map +1 -0
  5. package/dist/bromcom-ui/bcm-divider.entry.esm.js.map +1 -1
  6. package/dist/bromcom-ui/bcm-dropdown.entry.esm.js.map +1 -1
  7. package/dist/bromcom-ui/bcm-segmented-picker-option.entry.esm.js.map +1 -1
  8. package/dist/bromcom-ui/bcm-segmented-picker.entry.esm.js.map +1 -1
  9. package/dist/bromcom-ui/bcm-switch.entry.esm.js.map +1 -1
  10. package/dist/bromcom-ui/bcm-tabs.entry.esm.js.map +1 -1
  11. package/dist/bromcom-ui/bcm-text.entry.esm.js.map +1 -1
  12. package/dist/bromcom-ui/bromcom-ui.esm.js +1 -1
  13. package/dist/bromcom-ui/bromcom-ui.esm.js.map +1 -1
  14. package/dist/bromcom-ui/floating-ui.dom-ltNPqX34.js.map +1 -0
  15. package/dist/bromcom-ui/generate-id-Crb5QsB-.js.map +1 -0
  16. package/dist/bromcom-ui/index-40rmUZjU.js.map +1 -0
  17. package/dist/bromcom-ui/index-BCaJmHBB.js.map +1 -0
  18. package/dist/bromcom-ui/{p-8ace5a6a.entry.js → p-0c7c6896.entry.js} +2 -2
  19. package/dist/bromcom-ui/p-0c7c6896.entry.js.map +1 -0
  20. package/dist/bromcom-ui/p-11d0e649.entry.js +2 -0
  21. package/dist/bromcom-ui/p-11d0e649.entry.js.map +1 -0
  22. package/dist/bromcom-ui/{p-6b585adc.entry.js → p-12f38632.entry.js} +2 -2
  23. package/dist/bromcom-ui/p-12f38632.entry.js.map +1 -0
  24. package/dist/bromcom-ui/{p-5e0702d1.entry.js → p-13cbd1f5.entry.js} +2 -2
  25. package/dist/bromcom-ui/p-13cbd1f5.entry.js.map +1 -0
  26. package/dist/bromcom-ui/{p-2480e468.entry.js → p-1507908f.entry.js} +2 -2
  27. package/dist/bromcom-ui/p-1507908f.entry.js.map +1 -0
  28. package/dist/bromcom-ui/p-1ce9913f.entry.js +2 -0
  29. package/dist/bromcom-ui/p-1ce9913f.entry.js.map +1 -0
  30. package/dist/bromcom-ui/p-206d767e.entry.js +2 -0
  31. package/dist/bromcom-ui/p-206d767e.entry.js.map +1 -0
  32. package/dist/bromcom-ui/{p-ee5f877f.entry.js → p-3cf7a7f4.entry.js} +2 -2
  33. package/dist/bromcom-ui/p-3cf7a7f4.entry.js.map +1 -0
  34. package/dist/bromcom-ui/p-4505feba.entry.js +2 -0
  35. package/dist/bromcom-ui/p-4505feba.entry.js.map +1 -0
  36. package/dist/bromcom-ui/{p-089edfdc.entry.js → p-496014ca.entry.js} +2 -2
  37. package/dist/bromcom-ui/p-496014ca.entry.js.map +1 -0
  38. package/dist/bromcom-ui/{p-26d2db9e.entry.js → p-4a932cd3.entry.js} +2 -2
  39. package/dist/bromcom-ui/p-4a932cd3.entry.js.map +1 -0
  40. package/dist/bromcom-ui/p-4e554b8d.entry.js +2 -0
  41. package/dist/bromcom-ui/p-4e554b8d.entry.js.map +1 -0
  42. package/dist/bromcom-ui/{p-360bff8a.entry.js → p-57c4c4c4.entry.js} +2 -2
  43. package/dist/bromcom-ui/p-57c4c4c4.entry.js.map +1 -0
  44. package/dist/bromcom-ui/{p-211ca6e0.entry.js → p-61293ab2.entry.js} +2 -2
  45. package/dist/bromcom-ui/p-61293ab2.entry.js.map +1 -0
  46. package/dist/bromcom-ui/{p-83f64814.entry.js → p-61789456.entry.js} +2 -2
  47. package/dist/bromcom-ui/p-61789456.entry.js.map +1 -0
  48. package/dist/bromcom-ui/{p-488d6ef4.entry.js → p-65d0f188.entry.js} +2 -2
  49. package/dist/bromcom-ui/p-65d0f188.entry.js.map +1 -0
  50. package/dist/bromcom-ui/{p-11f3e129.entry.js → p-83f707dc.entry.js} +2 -2
  51. package/dist/bromcom-ui/p-83f707dc.entry.js.map +1 -0
  52. package/dist/bromcom-ui/p-8ba02e7e.entry.js +2 -0
  53. package/dist/bromcom-ui/p-8ba02e7e.entry.js.map +1 -0
  54. package/dist/bromcom-ui/{p-22edf049.entry.js → p-9e9bf32e.entry.js} +2 -2
  55. package/dist/bromcom-ui/p-9e9bf32e.entry.js.map +1 -0
  56. package/dist/bromcom-ui/p-BfTCfPZ1.js.map +1 -1
  57. package/dist/bromcom-ui/p-CEcVC0yX.js.map +1 -1
  58. package/dist/bromcom-ui/p-CRwAh9Np.js +3 -0
  59. package/dist/bromcom-ui/p-CRwAh9Np.js.map +1 -0
  60. package/dist/bromcom-ui/p-IBjzkjef.js.map +1 -1
  61. package/dist/bromcom-ui/{p-a88f20e0.entry.js → p-c87a6acf.entry.js} +2 -2
  62. package/dist/bromcom-ui/p-c87a6acf.entry.js.map +1 -0
  63. package/dist/bromcom-ui/{p-c34f0a66.entry.js → p-e0e235a8.entry.js} +2 -2
  64. package/dist/bromcom-ui/p-e0e235a8.entry.js.map +1 -0
  65. package/dist/bromcom-ui/{p-0101b4f2.entry.js → p-e1ce8b55.entry.js} +2 -2
  66. package/dist/bromcom-ui/p-e1ce8b55.entry.js.map +1 -0
  67. package/dist/bromcom-ui/p-e4dddb0b.entry.js +2 -0
  68. package/dist/bromcom-ui/p-e4dddb0b.entry.js.map +1 -0
  69. package/dist/bromcom-ui/p-f9426924.entry.js +2 -0
  70. package/dist/bromcom-ui/p-f9426924.entry.js.map +1 -0
  71. package/dist/bromcom-ui/{p-c0e7f9d6.entry.js → p-faa0e62c.entry.js} +2 -2
  72. package/dist/bromcom-ui/p-faa0e62c.entry.js.map +1 -0
  73. package/dist/bromcom-ui/{p-bdaf5653.entry.js → p-fcb4399f.entry.js} +2 -2
  74. package/dist/bromcom-ui/p-fcb4399f.entry.js.map +1 -0
  75. package/dist/bromcom-ui/tv-SlGJ5EfR.js.map +1 -0
  76. package/dist/bromcom-ui/validation-messages-CUvT12BL.js.map +1 -0
  77. package/dist/cjs/bcm-accordion-group.cjs.entry.js +2 -4
  78. package/dist/cjs/bcm-accordion.cjs.entry.js +3 -5
  79. package/dist/cjs/bcm-accordion.entry.cjs.js.map +1 -1
  80. package/dist/cjs/bcm-alert.cjs.entry.js +3 -5
  81. package/dist/cjs/bcm-alert.entry.cjs.js.map +1 -1
  82. package/dist/cjs/bcm-avatar.cjs.entry.js +1 -3
  83. package/dist/cjs/bcm-badge.cjs.entry.js +3 -5
  84. package/dist/cjs/bcm-basic-badge.cjs.entry.js +3 -5
  85. package/dist/cjs/bcm-button-group.cjs.entry.js +3 -5
  86. package/dist/cjs/bcm-button.bcm-drawer.bcm-linked.bcm-modal.bcm-pop-confirm.bcm-popover.bcm-tooltip.entry.cjs.js.map +1 -0
  87. package/dist/cjs/bcm-button_7.cjs.entry.js +4131 -0
  88. package/dist/cjs/bcm-checkbox.cjs.entry.js +2 -4
  89. package/dist/cjs/bcm-chip.cjs.entry.js +2 -4
  90. package/dist/cjs/bcm-divider.cjs.entry.js +3 -5
  91. package/dist/cjs/bcm-divider.entry.cjs.js.map +1 -1
  92. package/dist/cjs/bcm-dropdown-item.cjs.entry.js +3 -5
  93. package/dist/cjs/bcm-dropdown.cjs.entry.js +3 -13
  94. package/dist/cjs/bcm-dropdown.entry.cjs.js.map +1 -1
  95. package/dist/cjs/bcm-input.cjs.entry.js +3 -5
  96. package/dist/cjs/bcm-radio-group.cjs.entry.js +3 -5
  97. package/dist/cjs/bcm-radio.cjs.entry.js +2 -4
  98. package/dist/cjs/bcm-segmented-picker-option.cjs.entry.js +3 -5
  99. package/dist/cjs/bcm-segmented-picker-option.entry.cjs.js.map +1 -1
  100. package/dist/cjs/bcm-segmented-picker.cjs.entry.js +3 -5
  101. package/dist/cjs/bcm-segmented-picker.entry.cjs.js.map +1 -1
  102. package/dist/cjs/bcm-shortcut.cjs.entry.js +2 -4
  103. package/dist/cjs/bcm-switch.cjs.entry.js +4 -6
  104. package/dist/cjs/bcm-switch.entry.cjs.js.map +1 -1
  105. package/dist/cjs/bcm-tabs-content.cjs.entry.js +2 -4
  106. package/dist/cjs/bcm-tabs-list.cjs.entry.js +2 -4
  107. package/dist/cjs/bcm-tabs-trigger.cjs.entry.js +2 -4
  108. package/dist/cjs/bcm-tabs.cjs.entry.js +2 -4
  109. package/dist/cjs/bcm-tabs.entry.cjs.js.map +1 -1
  110. package/dist/cjs/bcm-text.cjs.entry.js +3 -5
  111. package/dist/cjs/bcm-text.entry.cjs.js.map +1 -1
  112. package/dist/cjs/bcm-textarea.cjs.entry.js +4 -6
  113. package/dist/cjs/bromcom-ui.cjs.js +3 -5
  114. package/dist/cjs/bromcom-ui.cjs.js.map +1 -1
  115. package/dist/cjs/generate-id-CG_BkTJu.js.map +1 -1
  116. package/dist/cjs/index-Bp6Dd2i1.js.map +1 -1
  117. package/dist/cjs/{index-BtiU-G2W.js → index-CmYzUr-k.js} +61 -372
  118. package/dist/cjs/index-CmYzUr-k.js.map +1 -0
  119. package/dist/cjs/index.cjs.js +0 -2
  120. package/dist/cjs/loader.cjs.js +2 -4
  121. package/dist/cjs/tv-ngpIbGlG.js.map +1 -1
  122. package/dist/collection/collection-manifest.json +5 -5
  123. package/dist/collection/components/accordion/accordion.component.js +8 -8
  124. package/dist/collection/components/accordion/accordion.component.js.map +1 -1
  125. package/dist/collection/components/accordion-group/accordion-group.component.js +3 -3
  126. package/dist/collection/components/accordion-group/types.js.map +1 -1
  127. package/dist/collection/components/alert/alert.component.js +6 -6
  128. package/dist/collection/components/alert/alert.css +1 -1
  129. package/dist/collection/components/avatar/avatar.component.js +14 -14
  130. package/dist/collection/components/badge/badge.component.js +15 -15
  131. package/dist/collection/components/basic-badge/basic-badge.component.js +9 -9
  132. package/dist/collection/components/button/button.component.js +32 -32
  133. package/dist/collection/components/button/button.css +1 -1
  134. package/dist/collection/components/button-group/button-group.component.js +15 -15
  135. package/dist/collection/components/checkbox/checkbox.component.js +13 -13
  136. package/dist/collection/components/chip/chip.component.js +8 -8
  137. package/dist/collection/components/divider/divider.component.js +4 -4
  138. package/dist/collection/components/divider/divider.css +1 -1
  139. package/dist/collection/components/drawer/drawer.component.js +429 -132
  140. package/dist/collection/components/drawer/drawer.component.js.map +1 -1
  141. package/dist/collection/components/drawer/drawer.css +1 -1
  142. package/dist/collection/components/drawer/types.js.map +1 -1
  143. package/dist/collection/components/dropdown/dropdown.component.js +3 -12
  144. package/dist/collection/components/dropdown/dropdown.component.js.map +1 -1
  145. package/dist/collection/components/dropdown/dropdown.css +1 -1
  146. package/dist/collection/components/dropdown-item/dropdown-item.component.js +9 -10
  147. package/dist/collection/components/dropdown-item/dropdown-item.component.js.map +1 -1
  148. package/dist/collection/components/input/input.component.js +44 -45
  149. package/dist/collection/components/input/input.component.js.map +1 -1
  150. package/dist/collection/components/linked/linked.component.js +507 -333
  151. package/dist/collection/components/linked/linked.component.js.map +1 -1
  152. package/dist/collection/components/linked/linked.css +1 -1
  153. package/dist/collection/components/modal/modal.component.js +137 -34
  154. package/dist/collection/components/modal/modal.component.js.map +1 -1
  155. package/dist/collection/components/modal/modal.css +1 -1
  156. package/dist/collection/components/pop-confirm/pop-confirm.component.js +668 -294
  157. package/dist/collection/components/pop-confirm/pop-confirm.component.js.map +1 -1
  158. package/dist/collection/components/pop-confirm/pop-confirm.css +1 -1
  159. package/dist/collection/components/popover/popover.component.js +533 -148
  160. package/dist/collection/components/popover/popover.component.js.map +1 -1
  161. package/dist/collection/components/popover/popover.css +1 -1
  162. package/dist/collection/components/radio/radio.component.js +13 -13
  163. package/dist/collection/components/radio-group/radio-group.component.js +15 -15
  164. package/dist/collection/components/segmented-picker/segmented-picker-option.component.js +10 -10
  165. package/dist/collection/components/segmented-picker/segmented-picker-option.component.js.map +1 -1
  166. package/dist/collection/components/segmented-picker/segmented-picker.component.js +7 -7
  167. package/dist/collection/components/segmented-picker/segmented-picker.component.js.map +1 -1
  168. package/dist/collection/components/shortcut/shortcut.js +4 -4
  169. package/dist/collection/components/switch/switch.component.js +17 -17
  170. package/dist/collection/components/switch/switch.css +1 -1
  171. package/dist/collection/components/tabs/tabs-content.component.js +3 -3
  172. package/dist/collection/components/tabs/tabs-list.component.js +3 -3
  173. package/dist/collection/components/tabs/tabs-trigger.component.js +8 -8
  174. package/dist/collection/components/tabs/tabs.component.js +6 -6
  175. package/dist/collection/components/tabs/tabs.component.js.map +1 -1
  176. package/dist/collection/components/text/text.component.js +6 -6
  177. package/dist/collection/components/text/text.css +1 -1
  178. package/dist/collection/components/textarea/textarea.component.js +39 -40
  179. package/dist/collection/components/textarea/textarea.component.js.map +1 -1
  180. package/dist/collection/components/tooltip/tooltip.component.js +567 -192
  181. package/dist/collection/components/tooltip/tooltip.component.js.map +1 -1
  182. package/dist/collection/components/tooltip/tooltip.css +1 -1
  183. package/dist/components/bcm-accordion-group.js +5 -3
  184. package/dist/components/bcm-accordion-group.js.map +1 -1
  185. package/dist/components/bcm-accordion.js +6 -4
  186. package/dist/components/bcm-accordion.js.map +1 -1
  187. package/dist/components/bcm-alert.js +6 -4
  188. package/dist/components/bcm-alert.js.map +1 -1
  189. package/dist/components/bcm-avatar.js +5 -3
  190. package/dist/components/bcm-avatar.js.map +1 -1
  191. package/dist/components/bcm-badge.js +1 -1
  192. package/dist/components/bcm-basic-badge.js +6 -4
  193. package/dist/components/bcm-basic-badge.js.map +1 -1
  194. package/dist/components/bcm-button-group.js +6 -4
  195. package/dist/components/bcm-button-group.js.map +1 -1
  196. package/dist/components/bcm-button.js +1 -1
  197. package/dist/components/bcm-checkbox.js +5 -3
  198. package/dist/components/bcm-checkbox.js.map +1 -1
  199. package/dist/components/bcm-chip.js +5 -3
  200. package/dist/components/bcm-chip.js.map +1 -1
  201. package/dist/components/bcm-divider.js +6 -4
  202. package/dist/components/bcm-divider.js.map +1 -1
  203. package/dist/components/bcm-drawer.js +228 -115
  204. package/dist/components/bcm-drawer.js.map +1 -1
  205. package/dist/components/bcm-dropdown-item.js +7 -5
  206. package/dist/components/bcm-dropdown-item.js.map +1 -1
  207. package/dist/components/bcm-dropdown.js +8 -15
  208. package/dist/components/bcm-dropdown.js.map +1 -1
  209. package/dist/components/bcm-input.js +6 -4
  210. package/dist/components/bcm-input.js.map +1 -1
  211. package/dist/components/bcm-linked.js +1 -1
  212. package/dist/components/bcm-modal.js +56 -4
  213. package/dist/components/bcm-modal.js.map +1 -1
  214. package/dist/components/bcm-pop-confirm.js +278 -171
  215. package/dist/components/bcm-pop-confirm.js.map +1 -1
  216. package/dist/components/bcm-popover.js +355 -110
  217. package/dist/components/bcm-popover.js.map +1 -1
  218. package/dist/components/bcm-radio-group.js +6 -4
  219. package/dist/components/bcm-radio-group.js.map +1 -1
  220. package/dist/components/bcm-radio.js +5 -3
  221. package/dist/components/bcm-radio.js.map +1 -1
  222. package/dist/components/bcm-segmented-picker-option.js +6 -4
  223. package/dist/components/bcm-segmented-picker-option.js.map +1 -1
  224. package/dist/components/bcm-segmented-picker.js +6 -4
  225. package/dist/components/bcm-segmented-picker.js.map +1 -1
  226. package/dist/components/bcm-shortcut.js +5 -3
  227. package/dist/components/bcm-shortcut.js.map +1 -1
  228. package/dist/components/bcm-switch.js +7 -5
  229. package/dist/components/bcm-switch.js.map +1 -1
  230. package/dist/components/bcm-tabs-content.js +5 -3
  231. package/dist/components/bcm-tabs-content.js.map +1 -1
  232. package/dist/components/bcm-tabs-list.js +5 -3
  233. package/dist/components/bcm-tabs-list.js.map +1 -1
  234. package/dist/components/bcm-tabs-trigger.js +5 -3
  235. package/dist/components/bcm-tabs-trigger.js.map +1 -1
  236. package/dist/components/bcm-tabs.js +5 -3
  237. package/dist/components/bcm-tabs.js.map +1 -1
  238. package/dist/components/bcm-text.js +6 -4
  239. package/dist/components/bcm-text.js.map +1 -1
  240. package/dist/components/bcm-textarea.js +7 -5
  241. package/dist/components/bcm-textarea.js.map +1 -1
  242. package/dist/components/bcm-tooltip.js +364 -127
  243. package/dist/components/bcm-tooltip.js.map +1 -1
  244. package/dist/components/index.js +41 -366
  245. package/dist/components/index.js.map +1 -1
  246. package/dist/components/p-6VLsKZvR.js +469 -0
  247. package/dist/components/p-6VLsKZvR.js.map +1 -0
  248. package/dist/components/p-BfTCfPZ1.js.map +1 -1
  249. package/dist/components/p-CEcVC0yX.js.map +1 -1
  250. package/dist/components/{p-CQF7wlXf.js → p-CaemikSK.js} +8 -6
  251. package/dist/components/p-CaemikSK.js.map +1 -0
  252. package/dist/components/{p-DHONP_n4.js → p-CsIBm0J5.js} +9 -7
  253. package/dist/components/p-CsIBm0J5.js.map +1 -0
  254. package/dist/components/{p-CzcTU1ty.js → p-DBDSgIvP.js} +40 -23
  255. package/dist/components/p-DBDSgIvP.js.map +1 -0
  256. package/dist/components/p-IBjzkjef.js.map +1 -1
  257. package/dist/esm/bcm-accordion-group.entry.js +2 -4
  258. package/dist/esm/bcm-accordion.entry.js +3 -5
  259. package/dist/esm/bcm-accordion.entry.js.map +1 -1
  260. package/dist/esm/bcm-alert.entry.js +3 -5
  261. package/dist/esm/bcm-alert.entry.js.map +1 -1
  262. package/dist/esm/bcm-avatar.entry.js +1 -3
  263. package/dist/esm/bcm-badge.entry.js +3 -5
  264. package/dist/esm/bcm-basic-badge.entry.js +3 -5
  265. package/dist/esm/bcm-button-group.entry.js +3 -5
  266. package/dist/esm/bcm-button.bcm-drawer.bcm-linked.bcm-modal.bcm-pop-confirm.bcm-popover.bcm-tooltip.entry.js.map +1 -0
  267. package/dist/esm/bcm-button_7.entry.js +4123 -0
  268. package/dist/esm/bcm-checkbox.entry.js +2 -4
  269. package/dist/esm/bcm-chip.entry.js +2 -4
  270. package/dist/esm/bcm-divider.entry.js +3 -5
  271. package/dist/esm/bcm-divider.entry.js.map +1 -1
  272. package/dist/esm/bcm-dropdown-item.entry.js +3 -5
  273. package/dist/esm/bcm-dropdown.entry.js +3 -13
  274. package/dist/esm/bcm-dropdown.entry.js.map +1 -1
  275. package/dist/esm/bcm-input.entry.js +3 -5
  276. package/dist/esm/bcm-radio-group.entry.js +3 -5
  277. package/dist/esm/bcm-radio.entry.js +2 -4
  278. package/dist/esm/bcm-segmented-picker-option.entry.js +3 -5
  279. package/dist/esm/bcm-segmented-picker-option.entry.js.map +1 -1
  280. package/dist/esm/bcm-segmented-picker.entry.js +3 -5
  281. package/dist/esm/bcm-segmented-picker.entry.js.map +1 -1
  282. package/dist/esm/bcm-shortcut.entry.js +2 -4
  283. package/dist/esm/bcm-switch.entry.js +4 -6
  284. package/dist/esm/bcm-switch.entry.js.map +1 -1
  285. package/dist/esm/bcm-tabs-content.entry.js +2 -4
  286. package/dist/esm/bcm-tabs-list.entry.js +2 -4
  287. package/dist/esm/bcm-tabs-trigger.entry.js +2 -4
  288. package/dist/esm/bcm-tabs.entry.js +2 -4
  289. package/dist/esm/bcm-tabs.entry.js.map +1 -1
  290. package/dist/esm/bcm-text.entry.js +3 -5
  291. package/dist/esm/bcm-text.entry.js.map +1 -1
  292. package/dist/esm/bcm-textarea.entry.js +4 -6
  293. package/dist/esm/bromcom-ui.js +4 -6
  294. package/dist/esm/bromcom-ui.js.map +1 -1
  295. package/dist/esm/generate-id-IBjzkjef.js.map +1 -1
  296. package/dist/esm/index-BfTCfPZ1.js.map +1 -1
  297. package/dist/esm/{index-BuuGCw0z.js → index-CRwAh9Np.js} +62 -372
  298. package/dist/esm/index-CRwAh9Np.js.map +1 -0
  299. package/dist/esm/index.js +0 -2
  300. package/dist/esm/loader.js +3 -5
  301. package/dist/esm/tv-CEcVC0yX.js.map +1 -1
  302. package/dist/types/components/accordion-group/types.d.ts +2 -2
  303. package/dist/types/components/drawer/drawer.component.d.ts +143 -3
  304. package/dist/types/components/drawer/types.d.ts +1 -1
  305. package/dist/types/components/dropdown/dropdown.component.d.ts +0 -3
  306. package/dist/types/components/linked/linked.component.d.ts +152 -36
  307. package/dist/types/components/modal/modal.component.d.ts +121 -0
  308. package/dist/types/components/pop-confirm/pop-confirm.component.d.ts +263 -143
  309. package/dist/types/components/popover/popover.component.d.ts +94 -39
  310. package/dist/types/components/tooltip/tooltip.component.d.ts +147 -56
  311. package/dist/types/components.d.ts +1569 -359
  312. package/dist/types/stencil-public-runtime.d.ts +50 -3
  313. package/package.json +1 -1
  314. package/dist/bromcom-ui/bcm-button.bcm-drawer.bcm-modal.entry.esm.js.map +0 -1
  315. package/dist/bromcom-ui/bcm-linked.entry.esm.js.map +0 -1
  316. package/dist/bromcom-ui/bcm-pop-confirm.entry.esm.js.map +0 -1
  317. package/dist/bromcom-ui/bcm-popover.entry.esm.js.map +0 -1
  318. package/dist/bromcom-ui/bcm-tooltip.entry.esm.js.map +0 -1
  319. package/dist/bromcom-ui/p-0101b4f2.entry.js.map +0 -1
  320. package/dist/bromcom-ui/p-089edfdc.entry.js.map +0 -1
  321. package/dist/bromcom-ui/p-08bc93c5.entry.js +0 -2
  322. package/dist/bromcom-ui/p-08bc93c5.entry.js.map +0 -1
  323. package/dist/bromcom-ui/p-09be61c3.entry.js +0 -2
  324. package/dist/bromcom-ui/p-09be61c3.entry.js.map +0 -1
  325. package/dist/bromcom-ui/p-11851391.entry.js +0 -2
  326. package/dist/bromcom-ui/p-11851391.entry.js.map +0 -1
  327. package/dist/bromcom-ui/p-11f3e129.entry.js.map +0 -1
  328. package/dist/bromcom-ui/p-211ca6e0.entry.js.map +0 -1
  329. package/dist/bromcom-ui/p-22edf049.entry.js.map +0 -1
  330. package/dist/bromcom-ui/p-2480e468.entry.js.map +0 -1
  331. package/dist/bromcom-ui/p-26d2db9e.entry.js.map +0 -1
  332. package/dist/bromcom-ui/p-2d0a6472.entry.js +0 -2
  333. package/dist/bromcom-ui/p-2d0a6472.entry.js.map +0 -1
  334. package/dist/bromcom-ui/p-360bff8a.entry.js.map +0 -1
  335. package/dist/bromcom-ui/p-488d6ef4.entry.js.map +0 -1
  336. package/dist/bromcom-ui/p-5e0702d1.entry.js.map +0 -1
  337. package/dist/bromcom-ui/p-63228f7e.entry.js +0 -2
  338. package/dist/bromcom-ui/p-63228f7e.entry.js.map +0 -1
  339. package/dist/bromcom-ui/p-6b585adc.entry.js.map +0 -1
  340. package/dist/bromcom-ui/p-6d7d73d5.entry.js +0 -2
  341. package/dist/bromcom-ui/p-6d7d73d5.entry.js.map +0 -1
  342. package/dist/bromcom-ui/p-7234af90.entry.js +0 -2
  343. package/dist/bromcom-ui/p-7234af90.entry.js.map +0 -1
  344. package/dist/bromcom-ui/p-83f64814.entry.js.map +0 -1
  345. package/dist/bromcom-ui/p-8ace5a6a.entry.js.map +0 -1
  346. package/dist/bromcom-ui/p-8d74249a.entry.js +0 -2
  347. package/dist/bromcom-ui/p-8d74249a.entry.js.map +0 -1
  348. package/dist/bromcom-ui/p-BuuGCw0z.js +0 -3
  349. package/dist/bromcom-ui/p-BuuGCw0z.js.map +0 -1
  350. package/dist/bromcom-ui/p-DxMLMJ3r.js +0 -2
  351. package/dist/bromcom-ui/p-DxMLMJ3r.js.map +0 -1
  352. package/dist/bromcom-ui/p-a88f20e0.entry.js.map +0 -1
  353. package/dist/bromcom-ui/p-bad299f2.entry.js +0 -2
  354. package/dist/bromcom-ui/p-bad299f2.entry.js.map +0 -1
  355. package/dist/bromcom-ui/p-bdaf5653.entry.js.map +0 -1
  356. package/dist/bromcom-ui/p-c0e7f9d6.entry.js.map +0 -1
  357. package/dist/bromcom-ui/p-c34f0a66.entry.js.map +0 -1
  358. package/dist/bromcom-ui/p-d7cea19f.entry.js +0 -2
  359. package/dist/bromcom-ui/p-d7cea19f.entry.js.map +0 -1
  360. package/dist/bromcom-ui/p-e5e0ac07.entry.js +0 -2
  361. package/dist/bromcom-ui/p-e5e0ac07.entry.js.map +0 -1
  362. package/dist/bromcom-ui/p-ee5f877f.entry.js.map +0 -1
  363. package/dist/bromcom-ui/p-fbccbffc.entry.js +0 -2
  364. package/dist/bromcom-ui/p-fbccbffc.entry.js.map +0 -1
  365. package/dist/cjs/bcm-accordion-group.cjs.entry.js.map +0 -1
  366. package/dist/cjs/bcm-accordion.cjs.entry.js.map +0 -1
  367. package/dist/cjs/bcm-alert.cjs.entry.js.map +0 -1
  368. package/dist/cjs/bcm-avatar.cjs.entry.js.map +0 -1
  369. package/dist/cjs/bcm-badge.cjs.entry.js.map +0 -1
  370. package/dist/cjs/bcm-basic-badge.cjs.entry.js.map +0 -1
  371. package/dist/cjs/bcm-button-group.cjs.entry.js.map +0 -1
  372. package/dist/cjs/bcm-button.bcm-drawer.bcm-modal.entry.cjs.js.map +0 -1
  373. package/dist/cjs/bcm-button_3.cjs.entry.js +0 -794
  374. package/dist/cjs/bcm-button_3.cjs.entry.js.map +0 -1
  375. package/dist/cjs/bcm-checkbox.cjs.entry.js.map +0 -1
  376. package/dist/cjs/bcm-chip.cjs.entry.js.map +0 -1
  377. package/dist/cjs/bcm-divider.cjs.entry.js.map +0 -1
  378. package/dist/cjs/bcm-dropdown-item.cjs.entry.js.map +0 -1
  379. package/dist/cjs/bcm-dropdown.cjs.entry.js.map +0 -1
  380. package/dist/cjs/bcm-input.cjs.entry.js.map +0 -1
  381. package/dist/cjs/bcm-linked.cjs.entry.js +0 -343
  382. package/dist/cjs/bcm-linked.cjs.entry.js.map +0 -1
  383. package/dist/cjs/bcm-linked.entry.cjs.js.map +0 -1
  384. package/dist/cjs/bcm-pop-confirm.cjs.entry.js +0 -250
  385. package/dist/cjs/bcm-pop-confirm.cjs.entry.js.map +0 -1
  386. package/dist/cjs/bcm-pop-confirm.entry.cjs.js.map +0 -1
  387. package/dist/cjs/bcm-popover.cjs.entry.js +0 -189
  388. package/dist/cjs/bcm-popover.cjs.entry.js.map +0 -1
  389. package/dist/cjs/bcm-popover.entry.cjs.js.map +0 -1
  390. package/dist/cjs/bcm-radio-group.cjs.entry.js.map +0 -1
  391. package/dist/cjs/bcm-radio.cjs.entry.js.map +0 -1
  392. package/dist/cjs/bcm-segmented-picker-option.cjs.entry.js.map +0 -1
  393. package/dist/cjs/bcm-segmented-picker.cjs.entry.js.map +0 -1
  394. package/dist/cjs/bcm-shortcut.cjs.entry.js.map +0 -1
  395. package/dist/cjs/bcm-switch.cjs.entry.js.map +0 -1
  396. package/dist/cjs/bcm-tabs-content.cjs.entry.js.map +0 -1
  397. package/dist/cjs/bcm-tabs-list.cjs.entry.js.map +0 -1
  398. package/dist/cjs/bcm-tabs-trigger.cjs.entry.js.map +0 -1
  399. package/dist/cjs/bcm-tabs.cjs.entry.js.map +0 -1
  400. package/dist/cjs/bcm-text.cjs.entry.js.map +0 -1
  401. package/dist/cjs/bcm-textarea.cjs.entry.js.map +0 -1
  402. package/dist/cjs/bcm-tooltip.cjs.entry.js +0 -180
  403. package/dist/cjs/bcm-tooltip.cjs.entry.js.map +0 -1
  404. package/dist/cjs/bcm-tooltip.entry.cjs.js.map +0 -1
  405. package/dist/cjs/floating-ui.dom-DyKmFgkP.js +0 -1605
  406. package/dist/cjs/floating-ui.dom-DyKmFgkP.js.map +0 -1
  407. package/dist/cjs/index-BtiU-G2W.js.map +0 -1
  408. package/dist/components/p-BHwftRkk.js +0 -379
  409. package/dist/components/p-BHwftRkk.js.map +0 -1
  410. package/dist/components/p-CQF7wlXf.js.map +0 -1
  411. package/dist/components/p-CzcTU1ty.js.map +0 -1
  412. package/dist/components/p-DHONP_n4.js.map +0 -1
  413. package/dist/esm/bcm-button.bcm-drawer.bcm-modal.entry.js.map +0 -1
  414. package/dist/esm/bcm-button_3.entry.js +0 -790
  415. package/dist/esm/bcm-button_3.entry.js.map +0 -1
  416. package/dist/esm/bcm-linked.entry.js +0 -341
  417. package/dist/esm/bcm-linked.entry.js.map +0 -1
  418. package/dist/esm/bcm-pop-confirm.entry.js +0 -248
  419. package/dist/esm/bcm-pop-confirm.entry.js.map +0 -1
  420. package/dist/esm/bcm-popover.entry.js +0 -187
  421. package/dist/esm/bcm-popover.entry.js.map +0 -1
  422. package/dist/esm/bcm-tooltip.entry.js +0 -178
  423. package/dist/esm/bcm-tooltip.entry.js.map +0 -1
  424. package/dist/esm/floating-ui.dom-DxMLMJ3r.js +0 -1598
  425. package/dist/esm/floating-ui.dom-DxMLMJ3r.js.map +0 -1
  426. package/dist/esm/index-BuuGCw0z.js.map +0 -1
@@ -1,16 +1,22 @@
1
1
  import { p as proxyCustomElement, H, c as createEvent, h } from './index.js';
2
- import { a as autoUpdate, c as computePosition, o as offset, f as flip, s as shift, b as arrow } from './p-CzcTU1ty.js';
2
+ import { o as offset, f as flip, s as shift, c as computePosition, a as autoUpdate, b as arrow } from './p-DBDSgIvP.js';
3
3
  import { t as tv } from './p-CEcVC0yX.js';
4
4
 
5
- const popoverCss = ":host{--popover-bg:var(--bcm-ui-color-background-base-default);display:inline-block}.bcm-ui-element{-webkit-font-smoothing:antialiased;-moz-osx-font-smoothing:grayscale;font-family:Inter,sans-serif}.static{position:static}.absolute{position:absolute}.relative{position:relative}.z-\\[9999\\]{z-index:9999}.flex{display:flex}.hidden{display:none}.h-4{height:1rem}.w-4{width:1rem}.min-w-max{min-width:max-content}.rotate-45{--tw-rotate:45deg}.rotate-45,.transform{transform:translate(var(--tw-translate-x),var(--tw-translate-y)) rotate(var(--tw-rotate)) skewX(var(--tw-skew-x)) skewY(var(--tw-skew-y)) scaleX(var(--tw-scale-x)) scaleY(var(--tw-scale-y))}.flex-col{flex-direction:column}.gap-1\\.5{gap:.375rem}.rounded-md{border-radius:var(--bcm-ui-border-radius-md,6px)}.bg-\\[--popover-bg\\]{background-color:var(--popover-bg)}.p-3{padding:.75rem}.text-size-3{font-size:var(--bcm-ui-font-size-3,12px);line-height:var(--bcm-ui-line-height-3,16px)}.text-size-4{font-size:var(--bcm-ui-font-size-4,14px);line-height:var(--bcm-ui-line-height-4,20px)}.text-size-5{font-size:var(--bcm-ui-font-size-5,16px);line-height:var(--bcm-ui-line-height-5,24px)}.font-normal{font-weight:400}.font-semibold{font-weight:600}.shadow{--tw-shadow:var(--bcm-ui-box-shadow-default);--tw-shadow-colored:var(--bcm-ui-box-shadow-default)}.shadow,.shadow-3{box-shadow:var(--tw-ring-offset-shadow,0 0 #0000),var(--tw-ring-shadow,0 0 #0000),var(--tw-shadow)}.shadow-3{--tw-shadow:var(--bcm-ui-box-shadow-3);--tw-shadow-colored:var(--bcm-ui-box-shadow-3)}";
5
+ const popoverCss = ".visible{visibility:visible}.transform{transform:translate(var(--tw-translate-x),var(--tw-translate-y)) rotate(var(--tw-rotate)) skewX(var(--tw-skew-x)) skewY(var(--tw-skew-y)) scaleX(var(--tw-scale-x)) scaleY(var(--tw-scale-y))}.border{border-width:1px}.transition{transition-duration:.15s;transition-property:color,background-color,border-color,text-decoration-color,fill,stroke,opacity,box-shadow,transform,filter,backdrop-filter;transition-timing-function:cubic-bezier(.4,0,.2,1)}:host{--popover-bg:var(--bcm-ui-color-background-base-default);display:inline-block}[popover]{border:none;overflow:visible;padding:0}[popover]:not(:popover-open){display:none}[popover]:popover-open{opacity:1;transform:scale(1);transition:opacity .15s ease-out,transform .15s ease-out}@starting-style{[popover]:popover-open{opacity:0;transform:scale(.95)}}[data-placement^=top] [part=arrow]{border-left:none;border-top:none}[data-placement^=bottom] [part=arrow]{border-bottom:none;border-right:none}[data-placement^=left] [part=arrow]{border-bottom:none;border-left:none}[data-placement^=right] [part=arrow]{border-right:none;border-top:none}.bcm-ui-element{-webkit-font-smoothing:antialiased;-moz-osx-font-smoothing:grayscale;font-family:Inter,sans-serif}.static{position:static}.fixed{position:fixed}.absolute{position:absolute}.relative{position:relative}.m-0{margin:0}.inline-block{display:inline-block}.flex{display:flex}.h-3{height:.75rem}.w-3{width:.75rem}.min-w-max{min-width:max-content}.rotate-45{--tw-rotate:45deg}.rotate-45,.transform{transform:translate(var(--tw-translate-x),var(--tw-translate-y)) rotate(var(--tw-rotate)) skewX(var(--tw-skew-x)) skewY(var(--tw-skew-y)) scaleX(var(--tw-scale-x)) scaleY(var(--tw-scale-y))}.flex-col{flex-direction:column}.gap-1\\.5{gap:.375rem}.rounded-md{border-radius:var(--bcm-ui-border-radius-md,6px)}.bg-\\[--popover-bg\\]{background-color:var(--popover-bg)}.p-3{padding:.75rem}.text-size-3{font-size:var(--bcm-ui-font-size-3,12px);line-height:var(--bcm-ui-line-height-3,16px)}.text-size-4{font-size:var(--bcm-ui-font-size-4,14px);line-height:var(--bcm-ui-line-height-4,20px)}.text-size-5{font-size:var(--bcm-ui-font-size-5,16px);line-height:var(--bcm-ui-line-height-5,24px)}.font-normal{font-weight:400}.font-semibold{font-weight:600}.shadow{--tw-shadow:var(--bcm-ui-box-shadow-default);--tw-shadow-colored:var(--bcm-ui-box-shadow-default)}.shadow,.shadow-3{box-shadow:var(--tw-ring-offset-shadow,0 0 #0000),var(--tw-ring-shadow,0 0 #0000),var(--tw-shadow)}.shadow-3{--tw-shadow:var(--bcm-ui-box-shadow-3);--tw-shadow-colored:var(--bcm-ui-box-shadow-3)}.blur{--tw-blur:blur(8px);filter:var(--tw-blur) var(--tw-brightness) var(--tw-contrast) var(--tw-grayscale) var(--tw-hue-rotate) var(--tw-invert) var(--tw-saturate) var(--tw-sepia) var(--tw-drop-shadow)}";
6
6
 
7
7
  const Popover = /*@__PURE__*/ proxyCustomElement(class Popover extends H {
8
- constructor() {
8
+ constructor(registerHost) {
9
9
  super();
10
- this.__registerHost();
10
+ if (registerHost !== false) {
11
+ this.__registerHost();
12
+ }
11
13
  this.__attachShadow();
12
- this.bcmPopoverOpen = createEvent(this, "bcmPopoverOpen", 1);
13
- this.bcmPopoverClose = createEvent(this, "bcmPopoverClose", 1);
14
+ this.bcmBeforeOpen = createEvent(this, "bcmBeforeOpen", 1);
15
+ this.bcmOpen = createEvent(this, "bcmOpen", 1);
16
+ this.bcmBeforeClose = createEvent(this, "bcmBeforeClose", 1);
17
+ this.bcmClose = createEvent(this, "bcmClose", 1);
18
+ // Unique ID for ARIA
19
+ this.popoverId = `popover-${Math.random().toString(36).substring(2, 11)}`;
14
20
  /**
15
21
  * @prop {('small' | 'medium' | 'large')} size - Defines the size of the popover.
16
22
  * Controls the text size and padding of the popover content.
@@ -24,105 +30,171 @@ const Popover = /*@__PURE__*/ proxyCustomElement(class Popover extends H {
24
30
  */
25
31
  this.placement = 'top';
26
32
  /**
27
- * @prop {('click' | 'hover')} trigger - Defines the interaction type to show/hide the popover.
28
- * 'click' toggles on click, 'hover' shows on mouse enter and hides on mouse leave.
33
+ * @prop {('click' | 'hover' | 'hover focus')} trigger - Defines the interaction type to show/hide the popover.
34
+ * 'click' toggles on click, 'hover' shows on mouse enter and hides on mouse leave, 'hover focus' combines both.
29
35
  * Default: 'click'
30
36
  */
31
37
  this.trigger = 'click';
32
38
  /**
33
- * @prop {number} hoverDelay - Delay in milliseconds before showing or hiding the popover when trigger is 'hover'.
34
- * Adds a delay to prevent flickering on quick mouse movements.
35
- * Default: 150
39
+ * @prop {number} showDelay - Delay in milliseconds before showing the popover.
40
+ * Useful to prevent popovers from appearing on quick mouse movements.
41
+ * Default: 0
42
+ */
43
+ this.showDelay = 0;
44
+ /**
45
+ * @prop {number} hideDelay - Delay in milliseconds before hiding the popover.
46
+ * Provides a grace period for mouse movements.
47
+ * Default: 0
36
48
  */
37
- this.hoverDelay = 150;
49
+ this.hideDelay = 0;
38
50
  /**
39
- * @prop {boolean} open - Indicates whether the popover is currently open.
40
- * Can be set programmatically or toggled by user interaction. Mutable.
51
+ * @prop {boolean} open - Controls the open state of the popover.
52
+ * Can be set programmatically or toggled by user interaction.
41
53
  * Default: false
42
54
  */
43
55
  this.open = false;
44
- this.togglePopover = () => {
45
- this.open = !this.open;
46
- if (this.open) {
47
- this.bcmPopoverOpen.emit();
48
- }
49
- else {
50
- this.bcmPopoverClose.emit();
56
+ /**
57
+ * @prop {boolean} closeOnOutsideClick - Whether to close the popover when clicking outside.
58
+ * Default: true
59
+ */
60
+ this.closeOnOutsideClick = true;
61
+ /**
62
+ * @prop {boolean} closeOnEscape - Whether to close the popover when pressing Escape key.
63
+ * Default: true
64
+ */
65
+ this.closeOnEscape = true;
66
+ /**
67
+ * @prop {boolean} arrow - Whether to show an arrow pointing to the trigger element.
68
+ * Default: true
69
+ */
70
+ this.arrow = true;
71
+ // Internal state
72
+ this.isOpen = false;
73
+ this.handleSlotChange = () => {
74
+ var _a;
75
+ const slot = (_a = this.host.shadowRoot) === null || _a === void 0 ? void 0 : _a.querySelector('slot:not([name])');
76
+ if (!slot)
77
+ return;
78
+ const elements = slot.assignedElements();
79
+ if (elements.length > 0) {
80
+ // Remove old listeners
81
+ this.removeTriggerListeners();
82
+ this.triggerRef = elements[0];
83
+ this.setupTriggerListeners();
84
+ this.setupAriaAttributes();
51
85
  }
52
- this.updatePosition();
53
86
  };
54
- this.showPopover = () => {
55
- clearTimeout(this.hoverTimeout);
56
- this.hoverTimeout = setTimeout(() => {
57
- this.open = true;
58
- this.bcmPopoverOpen.emit();
59
- this.updatePosition();
60
- }, this.hoverDelay);
87
+ this.handleMouseEnter = () => {
88
+ this.show();
61
89
  };
62
- this.hidePopover = () => {
63
- clearTimeout(this.hoverTimeout);
64
- this.hoverTimeout = setTimeout(() => {
65
- this.open = false;
66
- this.bcmPopoverClose.emit();
67
- }, this.hoverDelay);
90
+ this.handleMouseLeave = () => {
91
+ this.hide();
68
92
  };
69
- this.handleSlotChange = () => {
70
- const slot = this.el.shadowRoot.querySelector('slot');
71
- const elements = slot.assignedElements();
72
- this.targetElement = elements[0];
73
- if (this.targetElement) {
74
- this.targetElement.removeEventListener('click', this.togglePopover);
75
- this.targetElement.removeEventListener('mouseenter', this.showPopover);
76
- this.targetElement.removeEventListener('mouseleave', this.hidePopover);
77
- if (this.trigger === 'click') {
78
- this.targetElement.addEventListener('click', this.togglePopover);
79
- this.targetElement.setAttribute('aria-expanded', this.open.toString());
80
- }
81
- if (this.trigger === 'hover') {
82
- this.targetElement.addEventListener('mouseenter', this.showPopover);
83
- this.targetElement.addEventListener('mouseleave', this.hidePopover);
84
- }
85
- if (this.popoverElement && !this.cleanupAutoUpdate) {
86
- this.cleanupAutoUpdate = autoUpdate(this.targetElement, this.popoverElement, () => this.updatePosition());
87
- }
88
- }
93
+ this.handlePopoverMouseEnter = () => {
94
+ this.clearTimeouts();
95
+ };
96
+ this.handlePopoverMouseLeave = () => {
97
+ this.hide();
98
+ };
99
+ this.handleTriggerClick = (event) => {
100
+ event.stopPropagation();
101
+ this.toggle();
102
+ };
103
+ this.handleFocus = () => {
104
+ this.show();
105
+ };
106
+ this.handleBlur = () => {
107
+ this.hide();
89
108
  };
90
109
  this.handleOutsideClick = (event) => {
91
- if (!this.el.contains(event.target) && this.open) {
92
- this.open = false;
110
+ var _a;
111
+ if (!this.closeOnOutsideClick || !this.open)
112
+ return;
113
+ const target = event.target;
114
+ const path = event.composedPath();
115
+ const isInsideHost = this.host.contains(target) || path.includes(this.host);
116
+ const isInsidePopover = ((_a = this.popoverRef) === null || _a === void 0 ? void 0 : _a.contains(target)) || (this.popoverRef && path.includes(this.popoverRef));
117
+ if (!isInsideHost && !isInsidePopover) {
118
+ this.hide();
119
+ }
120
+ };
121
+ this.handleToggle = (event) => {
122
+ // Sync internal state with native popover state
123
+ if (event.newState === 'open' && !this.isOpen) {
124
+ this.isOpen = true;
125
+ }
126
+ else if (event.newState === 'closed' && this.isOpen) {
127
+ this.isOpen = false;
93
128
  }
94
129
  };
95
130
  this.updatePosition = async () => {
96
- if (!this.targetElement || !this.popoverElement || !this.arrowElement)
131
+ if (!this.triggerRef || !this.popoverRef)
132
+ return;
133
+ // Check if trigger element is still in viewport
134
+ const triggerRect = this.triggerRef.getBoundingClientRect();
135
+ const isInViewport = triggerRect.bottom > 0 && triggerRect.top < window.innerHeight && triggerRect.right > 0 && triggerRect.left < window.innerWidth;
136
+ // Hide popover if trigger is out of viewport
137
+ if (!isInViewport && this.open) {
138
+ this.hide();
97
139
  return;
98
- const { x, y, placement, middlewareData } = await computePosition(this.targetElement, this.popoverElement, {
140
+ }
141
+ // Virtual element for shadow DOM boundary
142
+ const virtualElement = {
143
+ getBoundingClientRect: () => this.triggerRef.getBoundingClientRect(),
144
+ };
145
+ const middleware = [offset(12), flip({ fallbackPlacements: ['top', 'left', 'bottom', 'right'] }), shift({ padding: 8 })];
146
+ if (this.arrow && this.arrowRef) {
147
+ middleware.push(arrow({ element: this.arrowRef }));
148
+ }
149
+ const { x, y, placement, middlewareData } = await computePosition(virtualElement, this.popoverRef, {
99
150
  placement: this.placement,
100
- middleware: [offset(12), flip({ fallbackPlacements: ['top', 'left', 'bottom', 'right'] }), shift({ padding: 8 }), arrow({ element: this.arrowElement })],
151
+ strategy: 'fixed',
152
+ middleware,
101
153
  });
102
- Object.assign(this.popoverElement.style, {
154
+ Object.assign(this.popoverRef.style, {
103
155
  left: `${x}px`,
104
156
  top: `${y}px`,
105
157
  });
106
- const { x: arrowX, y: arrowY } = middlewareData.arrow || { x: 0, y: 0 };
107
- const basePlacement = placement.split('-')[0];
108
- const staticSide = {
109
- top: 'bottom',
110
- right: 'left',
111
- bottom: 'top',
112
- left: 'right',
113
- }[basePlacement];
114
- Object.assign(this.arrowElement.style, {
115
- left: arrowX != null ? `${arrowX}px` : '',
116
- top: arrowY != null ? `${arrowY}px` : '',
117
- [staticSide]: '-4px',
118
- });
158
+ // Update placement attribute for CSS
159
+ this.popoverRef.setAttribute('data-placement', placement);
160
+ // Arrow positioning
161
+ if (this.arrow && this.arrowRef && middlewareData.arrow) {
162
+ const { x: arrowX, y: arrowY } = middlewareData.arrow;
163
+ const basePlacement = placement.split('-')[0];
164
+ const staticSide = {
165
+ top: 'bottom',
166
+ right: 'left',
167
+ bottom: 'top',
168
+ left: 'right',
169
+ }[basePlacement];
170
+ Object.assign(this.arrowRef.style, {
171
+ left: arrowX != null ? `${arrowX}px` : '',
172
+ top: arrowY != null ? `${arrowY}px` : '',
173
+ right: '',
174
+ bottom: '',
175
+ [staticSide]: '-4px',
176
+ });
177
+ }
119
178
  };
120
179
  this.popoverClass = tv({
121
180
  slots: {
122
- box: 'bcm-ui-element bcm-popover absolute flex flex-col bg-[--popover-bg] rounded-md shadow-3 p-3 gap-1.5 min-w-max z-[9999]',
181
+ box: [
182
+ 'bcm-ui-element',
183
+ 'bcm-popover',
184
+ 'fixed',
185
+ 'm-0',
186
+ 'flex',
187
+ 'flex-col',
188
+ 'bg-[--popover-bg]',
189
+ 'rounded-md',
190
+ 'shadow-3',
191
+ 'p-3',
192
+ 'gap-1.5',
193
+ 'min-w-max',
194
+ ],
123
195
  header: 'font-semibold text-color',
124
196
  content: 'font-normal text-color',
125
- arrow: 'absolute w-4 h-4 bg-[--popover-bg] transform rotate-45',
197
+ arrow: 'absolute w-3 h-3 bg-[--popover-bg] transform rotate-45',
126
198
  },
127
199
  variants: {
128
200
  size: {
@@ -130,67 +202,240 @@ const Popover = /*@__PURE__*/ proxyCustomElement(class Popover extends H {
130
202
  medium: { box: 'text-size-4' },
131
203
  large: { box: 'text-size-5' },
132
204
  },
133
- isOpen: {
134
- true: { box: 'flex' },
135
- false: { box: 'hidden' },
136
- },
137
205
  },
138
206
  defaultVariants: {
139
207
  size: 'medium',
140
- isOpen: false,
141
208
  },
142
209
  });
143
210
  }
144
- connectedCallback() {
145
- document.addEventListener('click', this.handleOutsideClick);
211
+ // Watch for open prop changes
212
+ handleOpenChange(newValue) {
213
+ if (newValue) {
214
+ this.showInternal();
215
+ }
216
+ else {
217
+ this.hideInternal();
218
+ }
146
219
  }
147
- disconnectedCallback() {
220
+ // Internal show logic
221
+ showInternal() {
148
222
  var _a;
149
- document.removeEventListener('click', this.handleOutsideClick);
150
- if (this.targetElement) {
151
- this.targetElement.removeEventListener('click', this.togglePopover);
152
- this.targetElement.removeEventListener('mouseenter', this.showPopover);
153
- this.targetElement.removeEventListener('mouseleave', this.hidePopover);
223
+ if (!this.popoverRef)
224
+ return;
225
+ this.isOpen = true;
226
+ this.popoverRef.showPopover();
227
+ this.startAutoUpdate();
228
+ this.updatePosition();
229
+ (_a = this.triggerRef) === null || _a === void 0 ? void 0 : _a.setAttribute('aria-expanded', 'true');
230
+ this.bcmOpen.emit();
231
+ if (this.closeOnOutsideClick) {
232
+ this.addOutsideClickListener();
154
233
  }
155
- (_a = this.cleanupAutoUpdate) === null || _a === void 0 ? void 0 : _a.call(this);
156
- this.cleanupAutoUpdate = null;
157
- clearTimeout(this.hoverTimeout);
234
+ }
235
+ // Internal hide logic
236
+ hideInternal() {
237
+ var _a;
238
+ if (!this.popoverRef)
239
+ return;
240
+ this.isOpen = false;
241
+ this.popoverRef.hidePopover();
242
+ this.stopAutoUpdate();
243
+ (_a = this.triggerRef) === null || _a === void 0 ? void 0 : _a.setAttribute('aria-expanded', 'false');
244
+ this.bcmClose.emit();
245
+ this.removeOutsideClickListener();
158
246
  }
159
247
  /**
160
- * @method {Promise<void>} openPopup - Programmatically opens the popover.
161
- * Triggers the showPopover logic to display the popover with the specified hover delay (if applicable).
162
- * @returns {Promise<void>} A promise that resolves when the popover is opened.
248
+ * Programmatically shows the popover.
249
+ * Respects the showDelay prop.
163
250
  */
164
- async openPopup() {
165
- this.showPopover();
251
+ async show() {
252
+ if (this.open)
253
+ return;
254
+ this.clearTimeouts();
255
+ if (this.showDelay > 0) {
256
+ this.showTimeout = window.setTimeout(() => {
257
+ this.bcmBeforeOpen.emit();
258
+ this.open = true;
259
+ }, this.showDelay);
260
+ }
261
+ else {
262
+ this.bcmBeforeOpen.emit();
263
+ this.open = true;
264
+ }
166
265
  }
167
266
  /**
168
- * @method {Promise<void>} closePopup - Programmatically closes the popover.
169
- * Triggers the hidePopover logic to hide the popover with the specified hover delay (if applicable).
170
- * @returns {Promise<void>} A promise that resolves when the popover is closed.
267
+ * Programmatically hides the popover.
268
+ * Respects the hideDelay prop.
171
269
  */
172
- async closePopup() {
173
- this.hidePopover();
270
+ async hide() {
271
+ if (!this.open)
272
+ return;
273
+ this.clearTimeouts();
274
+ if (this.hideDelay > 0) {
275
+ this.hideTimeout = window.setTimeout(() => {
276
+ this.bcmBeforeClose.emit();
277
+ this.open = false;
278
+ }, this.hideDelay);
279
+ }
280
+ else {
281
+ this.bcmBeforeClose.emit();
282
+ this.open = false;
283
+ }
284
+ }
285
+ /**
286
+ * Toggles the popover visibility.
287
+ */
288
+ async toggle() {
289
+ if (this.open) {
290
+ await this.hide();
291
+ }
292
+ else {
293
+ await this.show();
294
+ }
295
+ }
296
+ clearTimeouts() {
297
+ if (this.showTimeout) {
298
+ clearTimeout(this.showTimeout);
299
+ this.showTimeout = undefined;
300
+ }
301
+ if (this.hideTimeout) {
302
+ clearTimeout(this.hideTimeout);
303
+ this.hideTimeout = undefined;
304
+ }
305
+ }
306
+ startAutoUpdate() {
307
+ if (!this.triggerRef || !this.popoverRef)
308
+ return;
309
+ this.cleanupAutoUpdate = autoUpdate(this.triggerRef, this.popoverRef, () => this.updatePosition(), {
310
+ ancestorScroll: true,
311
+ ancestorResize: true,
312
+ elementResize: true,
313
+ layoutShift: true,
314
+ });
315
+ }
316
+ stopAutoUpdate() {
317
+ var _a;
318
+ (_a = this.cleanupAutoUpdate) === null || _a === void 0 ? void 0 : _a.call(this);
319
+ this.cleanupAutoUpdate = undefined;
320
+ }
321
+ setupTriggerListeners() {
322
+ var _a, _b;
323
+ if (!this.triggerRef)
324
+ return;
325
+ if (this.trigger === 'hover' || this.trigger === 'hover focus') {
326
+ this.triggerRef.addEventListener('mouseenter', this.handleMouseEnter);
327
+ this.triggerRef.addEventListener('mouseleave', this.handleMouseLeave);
328
+ (_a = this.popoverRef) === null || _a === void 0 ? void 0 : _a.addEventListener('mouseenter', this.handlePopoverMouseEnter);
329
+ (_b = this.popoverRef) === null || _b === void 0 ? void 0 : _b.addEventListener('mouseleave', this.handlePopoverMouseLeave);
330
+ }
331
+ if (this.trigger === 'click') {
332
+ this.triggerRef.addEventListener('click', this.handleTriggerClick);
333
+ }
334
+ if (this.trigger === 'hover focus') {
335
+ this.triggerRef.addEventListener('focus', this.handleFocus);
336
+ this.triggerRef.addEventListener('blur', this.handleBlur);
337
+ }
338
+ }
339
+ removeTriggerListeners() {
340
+ var _a, _b;
341
+ if (!this.triggerRef)
342
+ return;
343
+ this.triggerRef.removeEventListener('mouseenter', this.handleMouseEnter);
344
+ this.triggerRef.removeEventListener('mouseleave', this.handleMouseLeave);
345
+ this.triggerRef.removeEventListener('click', this.handleTriggerClick);
346
+ this.triggerRef.removeEventListener('focus', this.handleFocus);
347
+ this.triggerRef.removeEventListener('blur', this.handleBlur);
348
+ (_a = this.popoverRef) === null || _a === void 0 ? void 0 : _a.removeEventListener('mouseenter', this.handlePopoverMouseEnter);
349
+ (_b = this.popoverRef) === null || _b === void 0 ? void 0 : _b.removeEventListener('mouseleave', this.handlePopoverMouseLeave);
350
+ }
351
+ setupAriaAttributes() {
352
+ if (!this.triggerRef)
353
+ return;
354
+ this.triggerRef.setAttribute('aria-describedby', this.popoverId);
355
+ this.triggerRef.setAttribute('aria-expanded', String(this.open));
356
+ this.triggerRef.setAttribute('aria-haspopup', 'dialog');
357
+ }
358
+ handleKeyDown(event) {
359
+ var _a;
360
+ if (!this.closeOnEscape || !this.open)
361
+ return;
362
+ if (event.key === 'Escape') {
363
+ // Topmost popover check
364
+ const openPopovers = Array.from(document.querySelectorAll('bcm-popover[open]'));
365
+ const topPopover = openPopovers[openPopovers.length - 1];
366
+ if (topPopover === this.host) {
367
+ event.preventDefault();
368
+ this.hide();
369
+ (_a = this.triggerRef) === null || _a === void 0 ? void 0 : _a.focus();
370
+ }
371
+ }
372
+ }
373
+ addOutsideClickListener() {
374
+ // Add on next tick to avoid catching current click
375
+ setTimeout(() => {
376
+ document.addEventListener('click', this.handleOutsideClick, true);
377
+ }, 0);
378
+ }
379
+ removeOutsideClickListener() {
380
+ document.removeEventListener('click', this.handleOutsideClick, true);
381
+ }
382
+ componentDidLoad() {
383
+ var _a;
384
+ // Toggle event listener (Popover API)
385
+ (_a = this.popoverRef) === null || _a === void 0 ? void 0 : _a.addEventListener('toggle', this.handleToggle);
386
+ // Initial state sync
387
+ if (this.open) {
388
+ this.showInternal();
389
+ }
390
+ }
391
+ disconnectedCallback() {
392
+ this.clearTimeouts();
393
+ this.stopAutoUpdate();
394
+ this.removeTriggerListeners();
395
+ this.removeOutsideClickListener();
396
+ if (this.popoverRef) {
397
+ this.popoverRef.removeEventListener('toggle', this.handleToggle);
398
+ if (this.isOpen) {
399
+ try {
400
+ this.popoverRef.hidePopover();
401
+ }
402
+ catch (e) {
403
+ // Element might already be removed
404
+ }
405
+ }
406
+ }
174
407
  }
175
408
  render() {
176
- const { box, header, content, arrow } = this.popoverClass({
177
- isOpen: this.open,
409
+ const { box, header, content, arrow: arrowClass } = this.popoverClass({
178
410
  size: this.size,
179
411
  });
180
- return (h("div", { key: 'b81215e32d99dcfcc8515112267c3c2238379de8', class: "relative" }, h("slot", { key: 'd766006614697458b5343a55d387cb11ae1be04b', onSlotchange: () => this.handleSlotChange() }), h("div", { key: '1016451410fa02ec500f3ed3f29f2203830ccb40', part: "popover", class: box(), role: "dialog", "aria-hidden": !this.open ? 'true' : 'false', ref: el => (this.popoverElement = el) }, h("div", { key: '199e69dd49ac7f920f402e9b44acc946406ba625', class: arrow(), ref: el => (this.arrowElement = el), part: "arrow" }), h("div", { key: '3adfb07eae7e0c437768c1fb2a1d0b086ee40c4b', class: header(), part: "header" }, h("slot", { key: 'e6fc16d74640eca36ce78dc79cc8f2442f318516', name: "header" }, this.headerText)), h("div", { key: 'ac7b023e5c2ec83be9ef9d07e5b6215e71131813', class: content(), part: "content" }, h("slot", { key: '876c5b841f3ba597900b5950e8b56e0fa859ecdd', name: "content" }, this.message)))));
412
+ return (h("div", { key: '79e275204246ae56d255cf6eb3cd048631d4e89b', class: "inline-block" }, h("slot", { key: '787bce1db3d40d8e95631e4963011432f567ce38', onSlotchange: this.handleSlotChange }), h("div", { key: '11aac4ed45dfc6ea5ac73df72c1f95708c02b033', ref: el => (this.popoverRef = el), id: this.popoverId, part: "popover", class: box(),
413
+ // @ts-ignore - popover is a valid HTML attribute
414
+ popover: "manual", role: "dialog", "aria-labelledby": this.headerText ? `${this.popoverId}-header` : undefined }, this.arrow && h("div", { key: '86eff698c15414eac0b8341d0378deae0ffa9f22', ref: el => (this.arrowRef = el), part: "arrow", class: arrowClass() }), h("div", { key: '9ab131a4a26f552c9628dcec39dbfea8244abeb2', id: `${this.popoverId}-header`, part: "header", class: header() }, h("slot", { key: 'f9db05dc65149e097d086f7c93ee8962e7e2c32f', name: "header" }, this.headerText)), h("div", { key: '9e03b53071f8f3cf22e1347eaa812ecaf6e806a8', part: "content", class: content() }, h("slot", { key: '771733f668c6fd1d6f7a2f73b994a4ba906f2b6b', name: "content" }, this.message)))));
181
415
  }
182
- get el() { return this; }
416
+ get host() { return this; }
417
+ static get watchers() { return {
418
+ "open": ["handleOpenChange"]
419
+ }; }
183
420
  static get style() { return popoverCss; }
184
421
  }, [257, "bcm-popover", {
185
422
  "size": [1],
186
423
  "placement": [1],
187
424
  "trigger": [1],
188
- "hoverDelay": [2, "hover-delay"],
189
- "open": [1028],
425
+ "showDelay": [2, "show-delay"],
426
+ "hideDelay": [2, "hide-delay"],
427
+ "open": [1540],
428
+ "closeOnOutsideClick": [4, "close-on-outside-click"],
429
+ "closeOnEscape": [4, "close-on-escape"],
190
430
  "headerText": [1, "header-text"],
191
431
  "message": [1],
192
- "openPopup": [64],
193
- "closePopup": [64]
432
+ "arrow": [4],
433
+ "isOpen": [32],
434
+ "show": [64],
435
+ "hide": [64],
436
+ "toggle": [64]
437
+ }, [[4, "keydown", "handleKeyDown"]], {
438
+ "open": ["handleOpenChange"]
194
439
  }]);
195
440
  function defineCustomElement$1() {
196
441
  if (typeof customElements === "undefined") {