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,56 +1,128 @@
1
1
  import { h, Host } from "@stencil/core";
2
- import { computePosition, shift, offset, autoUpdate, flip } from "@floating-ui/dom";
2
+ import { computePosition, shift, offset, autoUpdate, flip, arrow } from "@floating-ui/dom";
3
+ import { tv } from "../../utils/tv";
4
+ /**
5
+ * @component BcmLinked
6
+ * @description A flexible linked floating element component that displays contextual content relative to a trigger element.
7
+ * Built on the native Popover API for top-layer rendering and Floating UI for intelligent positioning.
8
+ * Supports different trigger types (click, hover, focus, manual) and comprehensive event system.
9
+ *
10
+ * @example Basic Click Trigger
11
+ * <bcm-linked trigger="click">
12
+ * <button slot="trigger">Click Me</button>
13
+ * <div>Floating content here</div>
14
+ * </bcm-linked>
15
+ *
16
+ * @example Hover Trigger with Delays
17
+ * <bcm-linked trigger="hover" show-delay="200" hide-delay="100">
18
+ * <span slot="trigger">Hover Me</span>
19
+ * <div>This appears on hover</div>
20
+ * </bcm-linked>
21
+ *
22
+ * @example Manual Control
23
+ * <bcm-linked id="my-linked" trigger="manual">
24
+ * <button slot="trigger">Trigger</button>
25
+ * <div>Controlled content</div>
26
+ * </bcm-linked>
27
+ * <script>
28
+ * const linked = document.querySelector('#my-linked');
29
+ * linked.show(); // Opens the floating element
30
+ * linked.hide(); // Closes the floating element
31
+ * </script>
32
+ *
33
+ * @slot trigger - The trigger element that controls the floating element visibility
34
+ * @slot - Default slot for the floating content
35
+ *
36
+ * @csspart floating - The floating container element
37
+ * @csspart arrow - The arrow element pointing to the trigger
38
+ * @csspart content - The content wrapper element
39
+ */
3
40
  export class BcmLinked {
4
41
  constructor() {
5
- // Trigger configuration
42
+ // Unique ID for ARIA
43
+ this.componentId = `linked-${Math.random().toString(36).substring(2, 11)}`;
44
+ /**
45
+ * @prop {boolean} visible - Controls the visibility state of the floating element.
46
+ * Can be set programmatically or toggled by user interaction.
47
+ * Default: false
48
+ */
49
+ this.visible = false;
50
+ /**
51
+ * @prop {TriggerType} trigger - Defines the interaction type to show/hide the floating element.
52
+ * 'click' toggles on click, 'hover' shows on mouse enter and hides on mouse leave,
53
+ * 'focus' shows on focus and hides on blur, 'manual' requires programmatic control.
54
+ * Default: 'click'
55
+ */
6
56
  this.trigger = 'click';
57
+ /**
58
+ * @prop {Placement} placement - Defines the position of the floating element relative to the trigger.
59
+ * Default: 'bottom-start'
60
+ */
7
61
  this.placement = 'bottom-start';
8
- // Timing configuration
62
+ /**
63
+ * @prop {number} showDelay - Delay in milliseconds before showing the floating element.
64
+ * Default: 0
65
+ */
9
66
  this.showDelay = 0;
67
+ /**
68
+ * @prop {number} hideDelay - Delay in milliseconds before hiding the floating element.
69
+ * Default: 0
70
+ */
10
71
  this.hideDelay = 0;
11
- // Positioning configuration
12
- this.offset = 8;
13
- this.arrow = false;
72
+ /**
73
+ * @prop {number} offsetDistance - Distance in pixels between the floating element and the trigger.
74
+ * Default: 8
75
+ */
76
+ this.offsetDistance = 8;
77
+ /**
78
+ * @prop {boolean} showArrow - Whether to show an arrow pointing to the trigger element.
79
+ * Default: true
80
+ */
81
+ this.showArrow = true;
82
+ /**
83
+ * @prop {boolean} disabled - Disables the floating element, preventing it from showing.
84
+ * Default: false
85
+ */
14
86
  this.disabled = false;
15
- // Style configuration
16
- this.zIndex = 1000;
17
- this.appendToBody = false;
18
- this.destroyOnHide = false;
19
- // State
87
+ /**
88
+ * @prop {boolean} closeOnOutsideClick - Whether to close when clicking outside.
89
+ * Default: true
90
+ */
91
+ this.closeOnOutsideClick = true;
92
+ /**
93
+ * @prop {boolean} closeOnEscape - Whether to close when pressing Escape key.
94
+ * Default: true
95
+ */
96
+ this.closeOnEscape = true;
97
+ // Internal state
20
98
  this.isVisible = false;
21
- this.isReady = false;
22
- this.handleMouseEnter = () => {
23
- this.clearTimeouts();
24
- if (this.showDelay > 0) {
25
- this.showTimeout = setTimeout(() => this.show(), this.showDelay);
26
- }
27
- else {
28
- this.show();
99
+ this.handleTriggerSlotChange = () => {
100
+ var _a;
101
+ const slot = (_a = this.host.shadowRoot) === null || _a === void 0 ? void 0 : _a.querySelector('slot[name="trigger"]');
102
+ if (!slot)
103
+ return;
104
+ const elements = slot.assignedElements();
105
+ if (elements.length > 0) {
106
+ this.removeTriggerListeners();
107
+ this.triggerRef = elements[0];
108
+ this.setupTriggerListeners();
109
+ this.setupAriaAttributes();
29
110
  }
30
111
  };
112
+ this.handleMouseEnter = () => {
113
+ this.show();
114
+ };
31
115
  this.handleMouseLeave = () => {
32
- this.clearTimeouts();
33
- if (this.hideDelay > 0) {
34
- this.hideTimeout = setTimeout(() => this.hide(), this.hideDelay);
35
- }
36
- else {
37
- this.hide();
38
- }
116
+ this.hide();
39
117
  };
40
118
  this.handleFloatingMouseEnter = () => {
41
119
  this.clearTimeouts();
42
120
  };
43
121
  this.handleFloatingMouseLeave = () => {
44
- this.clearTimeouts();
45
- if (this.hideDelay > 0) {
46
- this.hideTimeout = setTimeout(() => this.hide(), this.hideDelay);
47
- }
48
- else {
49
- this.hide();
50
- }
122
+ this.hide();
51
123
  };
52
- this.handleClick = (e) => {
53
- e.stopPropagation();
124
+ this.handleTriggerClick = (event) => {
125
+ event.stopPropagation();
54
126
  this.toggle();
55
127
  };
56
128
  this.handleFocus = () => {
@@ -59,156 +131,229 @@ export class BcmLinked {
59
131
  this.handleBlur = () => {
60
132
  this.hide();
61
133
  };
134
+ this.handleOutsideClick = (event) => {
135
+ var _a;
136
+ if (!this.closeOnOutsideClick || !this.visible)
137
+ return;
138
+ const target = event.target;
139
+ const path = event.composedPath();
140
+ const isInsideHost = this.host.contains(target) || path.includes(this.host);
141
+ const isInsideFloating = ((_a = this.floatingRef) === null || _a === void 0 ? void 0 : _a.contains(target)) || (this.floatingRef && path.includes(this.floatingRef));
142
+ if (!isInsideHost && !isInsideFloating) {
143
+ this.hide();
144
+ }
145
+ };
146
+ this.handleToggle = (event) => {
147
+ if (event.newState === 'open' && !this.isVisible) {
148
+ this.isVisible = true;
149
+ }
150
+ else if (event.newState === 'closed' && this.isVisible) {
151
+ this.isVisible = false;
152
+ }
153
+ };
154
+ this.linkedClass = tv({
155
+ slots: {
156
+ wrapper: 'inline-block',
157
+ floating: ['bcm-ui-element', 'fixed', 'bg-color-basic-base', 'rounded-md', 'shadow-lg', 'border', 'border-color-basic-subtle'],
158
+ arrow: ['absolute', 'w-2', 'h-2', 'bg-color-basic-base', 'border', 'border-color-basic-subtle', 'rotate-45'],
159
+ content: 'bg-color-basic-base',
160
+ },
161
+ });
62
162
  }
63
- // Watch for changes
64
- setupTarget() {
65
- this.disconnectTarget();
66
- this.connectTarget();
67
- }
68
- onVisibilityChange(newValue) {
163
+ // Watch for visibility prop changes
164
+ handleVisibleChange(newValue) {
165
+ if (this.disabled)
166
+ return;
69
167
  if (newValue) {
70
- this.updatePosition();
71
- this.bcmShown.emit();
168
+ this.showInternal();
72
169
  }
73
170
  else {
74
- this.bcmHidden.emit();
171
+ this.hideInternal();
75
172
  }
76
173
  }
77
- async componentDidLoad() {
78
- // Wait for render
79
- await new Promise(resolve => requestAnimationFrame(resolve));
80
- this.floatingEl = this.host.querySelector('.floating-content');
81
- if (this.floatingEl) {
82
- this.isReady = true;
83
- this.connectTarget();
84
- this.setupFloatingObserver();
85
- console.log('✅ bcm-linked initialized successfully');
174
+ handleDisabledChange(isDisabled) {
175
+ if (isDisabled && this.visible) {
176
+ this.hide();
86
177
  }
87
- else {
88
- console.error('❌ Could not find .floating-content element');
178
+ }
179
+ handlePositionPropsChange() {
180
+ if (this.visible) {
181
+ this.updatePosition();
89
182
  }
90
183
  }
91
- disconnectedCallback() {
92
- var _a, _b;
93
- this.disconnectTarget();
94
- this.clearTimeouts();
95
- (_a = this.cleanup) === null || _a === void 0 ? void 0 : _a.call(this);
96
- (_b = this.resizeObserver) === null || _b === void 0 ? void 0 : _b.disconnect();
97
- // Restore element to original position if component is destroyed while in portal
98
- if (this.appendToBody && this.floatingEl && this.originalParent) {
99
- this.originalParent.appendChild(this.floatingEl);
184
+ // Internal show logic
185
+ showInternal() {
186
+ var _a;
187
+ if (!this.floatingRef || this.disabled)
188
+ return;
189
+ this.bcmShow.emit();
190
+ this.isVisible = true;
191
+ this.floatingRef.showPopover();
192
+ this.startAutoUpdate();
193
+ this.updatePosition();
194
+ (_a = this.triggerRef) === null || _a === void 0 ? void 0 : _a.setAttribute('aria-expanded', 'true');
195
+ if (this.closeOnOutsideClick && this.trigger !== 'manual') {
196
+ this.addOutsideClickListener();
100
197
  }
198
+ // Emit bcmShown after animation
199
+ requestAnimationFrame(() => {
200
+ this.bcmShown.emit();
201
+ });
101
202
  }
102
- connectTarget() {
103
- if (!this.isReady)
203
+ // Internal hide logic
204
+ hideInternal() {
205
+ var _a;
206
+ if (!this.floatingRef)
104
207
  return;
105
- // Find target element
106
- this.targetEl =
107
- this.targetElement || (this.targetId ? document.getElementById(this.targetId) : null) || this.host.previousElementSibling || this.host.parentElement;
108
- if (!this.targetEl) {
109
- console.warn('bcm-linked: No target element found');
208
+ this.bcmHide.emit();
209
+ this.isVisible = false;
210
+ this.floatingRef.hidePopover();
211
+ this.stopAutoUpdate();
212
+ (_a = this.triggerRef) === null || _a === void 0 ? void 0 : _a.setAttribute('aria-expanded', 'false');
213
+ this.removeOutsideClickListener();
214
+ // Emit bcmHidden after animation
215
+ setTimeout(() => {
216
+ this.bcmHidden.emit();
217
+ }, 150);
218
+ }
219
+ /**
220
+ * Programmatically shows the floating element.
221
+ * Respects the showDelay prop.
222
+ */
223
+ async show() {
224
+ if (this.visible || this.disabled)
110
225
  return;
226
+ this.clearTimeouts();
227
+ if (this.showDelay > 0) {
228
+ this.showTimeout = window.setTimeout(() => {
229
+ this.bcmBeforeShow.emit();
230
+ this.visible = true;
231
+ }, this.showDelay);
111
232
  }
112
- // Setup event listeners based on trigger type
113
- this.setupEventListeners();
114
- // Setup auto-update for position
115
- if (this.targetEl && this.floatingEl) {
116
- this.cleanup = autoUpdate(this.targetEl, this.floatingEl, () => {
117
- if (this.isVisible) {
118
- this.updatePosition();
119
- }
120
- });
233
+ else {
234
+ this.bcmBeforeShow.emit();
235
+ this.visible = true;
121
236
  }
122
- // Setup resize observer for responsive positioning
123
- this.resizeObserver = new ResizeObserver(() => {
124
- if (this.isVisible) {
125
- this.updatePosition();
126
- }
127
- });
128
- this.resizeObserver.observe(this.floatingEl);
129
237
  }
130
- disconnectTarget() {
131
- var _a, _b;
132
- if (this.targetEl) {
133
- this.removeEventListeners();
238
+ /**
239
+ * Programmatically hides the floating element.
240
+ * Respects the hideDelay prop.
241
+ */
242
+ async hide() {
243
+ if (!this.visible)
244
+ return;
245
+ this.clearTimeouts();
246
+ if (this.hideDelay > 0) {
247
+ this.hideTimeout = window.setTimeout(() => {
248
+ this.bcmBeforeHide.emit();
249
+ this.visible = false;
250
+ }, this.hideDelay);
251
+ }
252
+ else {
253
+ this.bcmBeforeHide.emit();
254
+ this.visible = false;
255
+ }
256
+ }
257
+ /**
258
+ * Toggles the floating element visibility.
259
+ */
260
+ async toggle() {
261
+ if (this.visible) {
262
+ await this.hide();
263
+ }
264
+ else {
265
+ await this.show();
266
+ }
267
+ }
268
+ /**
269
+ * Updates the position of the floating element.
270
+ * Useful when the trigger element moves or resizes.
271
+ */
272
+ async updatePosition() {
273
+ await this.calculatePosition();
274
+ }
275
+ clearTimeouts() {
276
+ if (this.showTimeout) {
277
+ clearTimeout(this.showTimeout);
278
+ this.showTimeout = undefined;
279
+ }
280
+ if (this.hideTimeout) {
281
+ clearTimeout(this.hideTimeout);
282
+ this.hideTimeout = undefined;
134
283
  }
135
- (_a = this.cleanup) === null || _a === void 0 ? void 0 : _a.call(this);
136
- (_b = this.resizeObserver) === null || _b === void 0 ? void 0 : _b.disconnect();
137
284
  }
138
- setupEventListeners() {
285
+ setupAriaAttributes() {
286
+ if (!this.triggerRef)
287
+ return;
288
+ this.triggerRef.setAttribute('aria-describedby', this.componentId);
289
+ this.triggerRef.setAttribute('aria-expanded', String(this.visible));
290
+ this.triggerRef.setAttribute('aria-haspopup', 'true');
291
+ }
292
+ setupTriggerListeners() {
139
293
  var _a, _b;
140
- if (!this.targetEl || this.disabled)
294
+ if (!this.triggerRef || this.disabled)
141
295
  return;
142
296
  switch (this.trigger) {
143
297
  case 'hover':
144
- this.targetEl.addEventListener('mouseenter', this.handleMouseEnter);
145
- this.targetEl.addEventListener('mouseleave', this.handleMouseLeave);
146
- (_a = this.floatingEl) === null || _a === void 0 ? void 0 : _a.addEventListener('mouseenter', this.handleFloatingMouseEnter);
147
- (_b = this.floatingEl) === null || _b === void 0 ? void 0 : _b.addEventListener('mouseleave', this.handleFloatingMouseLeave);
298
+ this.triggerRef.addEventListener('mouseenter', this.handleMouseEnter);
299
+ this.triggerRef.addEventListener('mouseleave', this.handleMouseLeave);
300
+ (_a = this.floatingRef) === null || _a === void 0 ? void 0 : _a.addEventListener('mouseenter', this.handleFloatingMouseEnter);
301
+ (_b = this.floatingRef) === null || _b === void 0 ? void 0 : _b.addEventListener('mouseleave', this.handleFloatingMouseLeave);
148
302
  break;
149
303
  case 'click':
150
- this.targetEl.addEventListener('click', this.handleClick);
151
- this.setupClickOutside();
304
+ this.triggerRef.addEventListener('click', this.handleTriggerClick);
152
305
  break;
153
306
  case 'focus':
154
- this.targetEl.addEventListener('focus', this.handleFocus);
155
- this.targetEl.addEventListener('blur', this.handleBlur);
307
+ this.triggerRef.addEventListener('focus', this.handleFocus);
308
+ this.triggerRef.addEventListener('blur', this.handleBlur);
309
+ break;
310
+ case 'manual':
311
+ // No automatic listeners
156
312
  break;
157
313
  }
158
314
  }
159
- removeEventListeners() {
315
+ removeTriggerListeners() {
160
316
  var _a, _b;
161
- if (!this.targetEl)
317
+ if (!this.triggerRef)
162
318
  return;
163
- this.targetEl.removeEventListener('mouseenter', this.handleMouseEnter);
164
- this.targetEl.removeEventListener('mouseleave', this.handleMouseLeave);
165
- this.targetEl.removeEventListener('click', this.handleClick);
166
- this.targetEl.removeEventListener('focus', this.handleFocus);
167
- this.targetEl.removeEventListener('blur', this.handleBlur);
168
- (_a = this.floatingEl) === null || _a === void 0 ? void 0 : _a.removeEventListener('mouseenter', this.handleFloatingMouseEnter);
169
- (_b = this.floatingEl) === null || _b === void 0 ? void 0 : _b.removeEventListener('mouseleave', this.handleFloatingMouseLeave);
170
- this.removeClickOutside();
319
+ this.triggerRef.removeEventListener('mouseenter', this.handleMouseEnter);
320
+ this.triggerRef.removeEventListener('mouseleave', this.handleMouseLeave);
321
+ this.triggerRef.removeEventListener('click', this.handleTriggerClick);
322
+ this.triggerRef.removeEventListener('focus', this.handleFocus);
323
+ this.triggerRef.removeEventListener('blur', this.handleBlur);
324
+ (_a = this.floatingRef) === null || _a === void 0 ? void 0 : _a.removeEventListener('mouseenter', this.handleFloatingMouseEnter);
325
+ (_b = this.floatingRef) === null || _b === void 0 ? void 0 : _b.removeEventListener('mouseleave', this.handleFloatingMouseLeave);
171
326
  }
172
- setupClickOutside() {
173
- this.clickOutsideHandler = (e) => {
174
- var _a, _b;
175
- const target = e.target;
176
- if (!((_a = this.floatingEl) === null || _a === void 0 ? void 0 : _a.contains(target)) && !((_b = this.targetEl) === null || _b === void 0 ? void 0 : _b.contains(target)) && !this.host.contains(target)) {
327
+ handleKeyDown(event) {
328
+ var _a;
329
+ if (!this.closeOnEscape || !this.visible)
330
+ return;
331
+ if (event.key === 'Escape') {
332
+ const openLinked = Array.from(document.querySelectorAll('bcm-linked[visible]'));
333
+ const topLinked = openLinked[openLinked.length - 1];
334
+ if (topLinked === this.host) {
335
+ event.preventDefault();
177
336
  this.hide();
337
+ (_a = this.triggerRef) === null || _a === void 0 ? void 0 : _a.focus();
178
338
  }
179
- };
180
- document.addEventListener('click', this.clickOutsideHandler, true);
181
- }
182
- removeClickOutside() {
183
- if (this.clickOutsideHandler) {
184
- document.removeEventListener('click', this.clickOutsideHandler, true);
185
- this.clickOutsideHandler = undefined;
186
339
  }
187
340
  }
188
- clearTimeouts() {
189
- if (this.showTimeout) {
190
- clearTimeout(this.showTimeout);
191
- this.showTimeout = undefined;
192
- }
193
- if (this.hideTimeout) {
194
- clearTimeout(this.hideTimeout);
195
- this.hideTimeout = undefined;
196
- }
341
+ addOutsideClickListener() {
342
+ setTimeout(() => {
343
+ document.addEventListener('click', this.handleOutsideClick, true);
344
+ }, 0);
197
345
  }
198
- async updatePosition() {
199
- if (!this.targetEl || !this.floatingEl || !this.isVisible)
346
+ removeOutsideClickListener() {
347
+ document.removeEventListener('click', this.handleOutsideClick, true);
348
+ }
349
+ async calculatePosition() {
350
+ if (!this.triggerRef || !this.floatingRef || !this.isVisible)
200
351
  return;
201
- // Use autoPlacement only for bottom-start (dropdown default)
202
- // For other placements, respect the manual placement with flip fallback
203
- // const useAutoPlacement = this.placement === 'bottom-start';
204
- const middleware = [
205
- offset(this.offset),
206
- // useAutoPlacement
207
- // ? autoPlacement({
208
- // allowedPlacements: ['bottom-start', 'bottom-end', 'bottom', 'top-start', 'top-end', 'top', 'right-start', 'right-end', 'right', 'left-start', 'left-end', 'left'],
209
- // boundary: document.body,
210
- // })
211
- // :
352
+ const virtualElement = {
353
+ getBoundingClientRect: () => this.triggerRef.getBoundingClientRect(),
354
+ };
355
+ const middlewareList = [
356
+ offset(this.offsetDistance),
212
357
  flip({
213
358
  fallbackPlacements: ['top', 'bottom', 'left', 'right', 'top-start', 'top-end', 'bottom-start', 'bottom-end', 'left-start', 'left-end', 'right-start', 'right-end'],
214
359
  }),
@@ -216,109 +361,88 @@ export class BcmLinked {
216
361
  padding: 8,
217
362
  }),
218
363
  ];
219
- const { x, y, placement } = await computePosition(this.targetEl, this.floatingEl, {
364
+ if (this.showArrow && this.arrowRef) {
365
+ middlewareList.push(arrow({ element: this.arrowRef }));
366
+ }
367
+ const { x, y, placement, middlewareData } = await computePosition(virtualElement, this.floatingRef, {
220
368
  placement: this.placement,
221
- middleware,
369
+ middleware: middlewareList,
222
370
  strategy: 'fixed',
223
371
  });
224
- Object.assign(this.floatingEl.style, {
372
+ Object.assign(this.floatingRef.style, {
225
373
  left: `${x}px`,
226
374
  top: `${y}px`,
227
- zIndex: this.zIndex.toString(),
228
375
  });
229
- // Update arrow if enabled
230
- if (this.arrow) {
231
- this.updateArrow(placement);
376
+ // Arrow positioning
377
+ if (this.showArrow && this.arrowRef && middlewareData.arrow) {
378
+ const { x: arrowX, y: arrowY } = middlewareData.arrow;
379
+ const staticSide = {
380
+ top: 'bottom',
381
+ right: 'left',
382
+ bottom: 'top',
383
+ left: 'right',
384
+ }[placement.split('-')[0]];
385
+ Object.assign(this.arrowRef.style, {
386
+ left: arrowX != null ? `${arrowX}px` : '',
387
+ top: arrowY != null ? `${arrowY}px` : '',
388
+ right: '',
389
+ bottom: '',
390
+ [staticSide]: '-4px',
391
+ });
232
392
  }
393
+ this.floatingRef.setAttribute('data-placement', placement);
233
394
  }
234
- updateArrow(placement) {
235
- var _a;
236
- const arrow = (_a = this.floatingEl) === null || _a === void 0 ? void 0 : _a.querySelector('.floating-arrow');
237
- if (!arrow)
395
+ startAutoUpdate() {
396
+ if (!this.triggerRef || !this.floatingRef)
238
397
  return;
239
- // Remove all arrow classes
240
- arrow.className = 'floating-arrow';
241
- // Add placement-specific class
242
- const side = placement.split('-')[0];
243
- arrow.classList.add(`arrow-${side}`);
244
- }
245
- async show() {
246
- if (this.disabled || this.isVisible)
247
- return;
248
- this.bcmShow.emit();
249
- // Portalling: Move the floating element to the body
250
- if (this.appendToBody && this.floatingEl) {
251
- this.originalParent = this.floatingEl.parentNode;
252
- this.originalNextSibling = this.floatingEl.nextSibling;
253
- document.body.appendChild(this.floatingEl);
254
- }
255
- this.isVisible = true;
256
- // Use requestAnimationFrame to ensure the element is visible before positioning
257
- await new Promise(resolve => requestAnimationFrame(resolve));
258
- await this.updatePosition();
398
+ this.cleanupAutoUpdate = autoUpdate(this.triggerRef, this.floatingRef, () => this.calculatePosition(), {
399
+ ancestorScroll: true,
400
+ ancestorResize: true,
401
+ elementResize: true,
402
+ layoutShift: true,
403
+ });
259
404
  }
260
- async hide() {
261
- if (!this.isVisible)
262
- return;
263
- this.bcmHide.emit();
264
- this.isVisible = false;
265
- // Portalling: Restore the floating element to its original position
266
- if (this.appendToBody && this.floatingEl && this.originalParent) {
267
- if (this.originalNextSibling) {
268
- this.originalParent.insertBefore(this.floatingEl, this.originalNextSibling);
269
- }
270
- else {
271
- this.originalParent.appendChild(this.floatingEl);
272
- }
273
- this.originalParent = undefined;
274
- this.originalNextSibling = undefined;
275
- }
276
- if (this.destroyOnHide && this.floatingEl && this.floatingEl.parentNode) {
277
- this.floatingEl.parentNode.removeChild(this.floatingEl);
278
- }
405
+ stopAutoUpdate() {
406
+ var _a;
407
+ (_a = this.cleanupAutoUpdate) === null || _a === void 0 ? void 0 : _a.call(this);
408
+ this.cleanupAutoUpdate = undefined;
279
409
  }
280
- async toggle() {
281
- if (this.isVisible) {
282
- await this.hide();
283
- }
284
- else {
285
- await this.show();
410
+ componentDidLoad() {
411
+ var _a;
412
+ // Toggle event listener (Popover API)
413
+ (_a = this.floatingRef) === null || _a === void 0 ? void 0 : _a.addEventListener('toggle', this.handleToggle);
414
+ // Initial trigger setup - manually trigger slot change handler
415
+ this.handleTriggerSlotChange();
416
+ // Initial state sync
417
+ if (this.visible) {
418
+ this.showInternal();
286
419
  }
287
420
  }
288
- async updatePositioning() {
289
- await this.updatePosition();
290
- }
291
- setupFloatingObserver() {
292
- if (!this.floatingEl)
293
- return;
294
- // Observe floating element size changes for position updates
295
- this.resizeObserver = new ResizeObserver(() => {
421
+ disconnectedCallback() {
422
+ this.clearTimeouts();
423
+ this.stopAutoUpdate();
424
+ this.removeTriggerListeners();
425
+ this.removeOutsideClickListener();
426
+ if (this.floatingRef) {
427
+ this.floatingRef.removeEventListener('toggle', this.handleToggle);
296
428
  if (this.isVisible) {
297
- this.updatePosition();
429
+ try {
430
+ this.floatingRef.hidePopover();
431
+ }
432
+ catch (e) {
433
+ // Element might already be removed
434
+ }
298
435
  }
299
- });
300
- this.resizeObserver.observe(this.floatingEl);
436
+ }
301
437
  }
302
438
  render() {
303
- const floatingClasses = {
304
- 'floating-content': true,
305
- 'floating-visible': this.isVisible,
306
- 'floating-hidden': !this.isVisible,
307
- 'floating-with-arrow': this.arrow,
308
- 'floating-destroy-on-hide': this.destroyOnHide,
309
- };
310
- return (h(Host, { key: 'f5835cc1b6044476e66402d23a3becf18d3f2049' }, h("div", { key: '2c7f92bbe85bc938a767734ef4b27702247fb390', class: floatingClasses, style: {
311
- position: 'fixed',
312
- top: '0px',
313
- left: '0px',
314
- zIndex: this.zIndex.toString(),
315
- display: this.isVisible ? 'block' : 'none',
316
- visibility: this.isVisible ? 'visible' : 'hidden',
317
- opacity: this.isVisible ? '1' : '0',
318
- pointerEvents: this.isVisible ? 'auto' : 'none',
319
- } }, this.arrow && h("div", { key: 'f6eedac02b29b3ca00a9a84eea940ac89089f30c', class: "floating-arrow" }), h("div", { key: '7cb19f085de1d77a41fd9897be90999e78a0a54d', class: "floating-wrapper" }, h("slot", { key: 'a4b4289642850e3c2f7f27771b3d28bc41c8248a' }))), h("div", { key: '61cd7af9a4a47c87c308e1e67f96efb987c97312', style: { display: 'none' } }, h("slot", { key: '7160df275f5c7c66733158f95266598d0d207a17', name: "fallback" }))));
439
+ const { wrapper, floating, arrow, content } = this.linkedClass();
440
+ return (h(Host, { key: 'f58760b6589329f9eabc42f39b6503fad10cf330' }, h("div", { key: 'adb9003eec4ca786bdddc657ba28cbc0a80baf57', class: wrapper() }, h("slot", { key: '61323463e76c395668d02288e5bdcb44826a31ea', name: "trigger", onSlotchange: this.handleTriggerSlotChange }), h("div", { key: '3b395b18152cd302b4511ef89928374f33012594', ref: el => (this.floatingRef = el), id: this.componentId, part: "floating", class: floating(),
441
+ // @ts-ignore - popover is a valid HTML attribute
442
+ popover: "manual", role: "dialog" }, this.showArrow && h("div", { key: '3f5311d21f7fce74c94ac0435a8d2fc076036b10', ref: el => (this.arrowRef = el), part: "arrow", class: arrow() }), h("div", { key: 'ee41f30c7f73c113f129f938fd721476658b5744', part: "content", class: content() }, h("slot", { key: '106502e2f8db8fdc90412fcf59da40d2de377988' }))))));
320
443
  }
321
444
  static get is() { return "bcm-linked"; }
445
+ static get encapsulation() { return "shadow"; }
322
446
  static get originalStyleUrls() {
323
447
  return {
324
448
  "$": ["linked.css"]
@@ -331,51 +455,31 @@ export class BcmLinked {
331
455
  }
332
456
  static get properties() {
333
457
  return {
334
- "targetId": {
335
- "type": "string",
336
- "attribute": "target-id",
337
- "mutable": false,
458
+ "visible": {
459
+ "type": "boolean",
460
+ "mutable": true,
338
461
  "complexType": {
339
- "original": "string",
340
- "resolved": "string",
462
+ "original": "boolean",
463
+ "resolved": "boolean",
341
464
  "references": {}
342
465
  },
343
466
  "required": false,
344
- "optional": true,
467
+ "optional": false,
345
468
  "docs": {
346
- "tags": [],
469
+ "tags": [{
470
+ "name": "prop",
471
+ "text": "{boolean} visible - Controls the visibility state of the floating element.\nCan be set programmatically or toggled by user interaction.\nDefault: false"
472
+ }],
347
473
  "text": ""
348
474
  },
349
475
  "getter": false,
350
476
  "setter": false,
351
- "reflect": true
352
- },
353
- "targetElement": {
354
- "type": "unknown",
355
- "attribute": "target-element",
356
- "mutable": false,
357
- "complexType": {
358
- "original": "HTMLElement",
359
- "resolved": "HTMLElement",
360
- "references": {
361
- "HTMLElement": {
362
- "location": "global",
363
- "id": "global::HTMLElement"
364
- }
365
- }
366
- },
367
- "required": false,
368
- "optional": true,
369
- "docs": {
370
- "tags": [],
371
- "text": ""
372
- },
373
- "getter": false,
374
- "setter": false
477
+ "reflect": true,
478
+ "attribute": "visible",
479
+ "defaultValue": "false"
375
480
  },
376
481
  "trigger": {
377
482
  "type": "string",
378
- "attribute": "trigger",
379
483
  "mutable": false,
380
484
  "complexType": {
381
485
  "original": "TriggerType",
@@ -391,17 +495,20 @@ export class BcmLinked {
391
495
  "required": false,
392
496
  "optional": false,
393
497
  "docs": {
394
- "tags": [],
498
+ "tags": [{
499
+ "name": "prop",
500
+ "text": "{TriggerType} trigger - Defines the interaction type to show/hide the floating element.\n'click' toggles on click, 'hover' shows on mouse enter and hides on mouse leave,\n'focus' shows on focus and hides on blur, 'manual' requires programmatic control.\nDefault: 'click'"
501
+ }],
395
502
  "text": ""
396
503
  },
397
504
  "getter": false,
398
505
  "setter": false,
399
506
  "reflect": false,
507
+ "attribute": "trigger",
400
508
  "defaultValue": "'click'"
401
509
  },
402
510
  "placement": {
403
511
  "type": "string",
404
- "attribute": "placement",
405
512
  "mutable": false,
406
513
  "complexType": {
407
514
  "original": "Placement",
@@ -417,17 +524,20 @@ export class BcmLinked {
417
524
  "required": false,
418
525
  "optional": false,
419
526
  "docs": {
420
- "tags": [],
527
+ "tags": [{
528
+ "name": "prop",
529
+ "text": "{Placement} placement - Defines the position of the floating element relative to the trigger.\nDefault: 'bottom-start'"
530
+ }],
421
531
  "text": ""
422
532
  },
423
533
  "getter": false,
424
534
  "setter": false,
425
535
  "reflect": false,
536
+ "attribute": "placement",
426
537
  "defaultValue": "'bottom-start'"
427
538
  },
428
539
  "showDelay": {
429
540
  "type": "number",
430
- "attribute": "show-delay",
431
541
  "mutable": false,
432
542
  "complexType": {
433
543
  "original": "number",
@@ -437,17 +547,20 @@ export class BcmLinked {
437
547
  "required": false,
438
548
  "optional": false,
439
549
  "docs": {
440
- "tags": [],
550
+ "tags": [{
551
+ "name": "prop",
552
+ "text": "{number} showDelay - Delay in milliseconds before showing the floating element.\nDefault: 0"
553
+ }],
441
554
  "text": ""
442
555
  },
443
556
  "getter": false,
444
557
  "setter": false,
445
558
  "reflect": false,
559
+ "attribute": "show-delay",
446
560
  "defaultValue": "0"
447
561
  },
448
562
  "hideDelay": {
449
563
  "type": "number",
450
- "attribute": "hide-delay",
451
564
  "mutable": false,
452
565
  "complexType": {
453
566
  "original": "number",
@@ -457,17 +570,20 @@ export class BcmLinked {
457
570
  "required": false,
458
571
  "optional": false,
459
572
  "docs": {
460
- "tags": [],
573
+ "tags": [{
574
+ "name": "prop",
575
+ "text": "{number} hideDelay - Delay in milliseconds before hiding the floating element.\nDefault: 0"
576
+ }],
461
577
  "text": ""
462
578
  },
463
579
  "getter": false,
464
580
  "setter": false,
465
581
  "reflect": false,
582
+ "attribute": "hide-delay",
466
583
  "defaultValue": "0"
467
584
  },
468
- "offset": {
585
+ "offsetDistance": {
469
586
  "type": "number",
470
- "attribute": "offset",
471
587
  "mutable": false,
472
588
  "complexType": {
473
589
  "original": "number",
@@ -477,17 +593,20 @@ export class BcmLinked {
477
593
  "required": false,
478
594
  "optional": false,
479
595
  "docs": {
480
- "tags": [],
596
+ "tags": [{
597
+ "name": "prop",
598
+ "text": "{number} offsetDistance - Distance in pixels between the floating element and the trigger.\nDefault: 8"
599
+ }],
481
600
  "text": ""
482
601
  },
483
602
  "getter": false,
484
603
  "setter": false,
485
604
  "reflect": false,
605
+ "attribute": "offset-distance",
486
606
  "defaultValue": "8"
487
607
  },
488
- "arrow": {
608
+ "showArrow": {
489
609
  "type": "boolean",
490
- "attribute": "arrow",
491
610
  "mutable": false,
492
611
  "complexType": {
493
612
  "original": "boolean",
@@ -497,17 +616,20 @@ export class BcmLinked {
497
616
  "required": false,
498
617
  "optional": false,
499
618
  "docs": {
500
- "tags": [],
619
+ "tags": [{
620
+ "name": "prop",
621
+ "text": "{boolean} showArrow - Whether to show an arrow pointing to the trigger element.\nDefault: true"
622
+ }],
501
623
  "text": ""
502
624
  },
503
625
  "getter": false,
504
626
  "setter": false,
505
627
  "reflect": false,
506
- "defaultValue": "false"
628
+ "attribute": "show-arrow",
629
+ "defaultValue": "true"
507
630
  },
508
631
  "disabled": {
509
632
  "type": "boolean",
510
- "attribute": "disabled",
511
633
  "mutable": false,
512
634
  "complexType": {
513
635
  "original": "boolean",
@@ -517,37 +639,20 @@ export class BcmLinked {
517
639
  "required": false,
518
640
  "optional": false,
519
641
  "docs": {
520
- "tags": [],
642
+ "tags": [{
643
+ "name": "prop",
644
+ "text": "{boolean} disabled - Disables the floating element, preventing it from showing.\nDefault: false"
645
+ }],
521
646
  "text": ""
522
647
  },
523
648
  "getter": false,
524
649
  "setter": false,
525
650
  "reflect": false,
651
+ "attribute": "disabled",
526
652
  "defaultValue": "false"
527
653
  },
528
- "zIndex": {
529
- "type": "number",
530
- "attribute": "z-index",
531
- "mutable": false,
532
- "complexType": {
533
- "original": "number",
534
- "resolved": "number",
535
- "references": {}
536
- },
537
- "required": false,
538
- "optional": false,
539
- "docs": {
540
- "tags": [],
541
- "text": ""
542
- },
543
- "getter": false,
544
- "setter": false,
545
- "reflect": false,
546
- "defaultValue": "1000"
547
- },
548
- "appendToBody": {
654
+ "closeOnOutsideClick": {
549
655
  "type": "boolean",
550
- "attribute": "append-to-body",
551
656
  "mutable": false,
552
657
  "complexType": {
553
658
  "original": "boolean",
@@ -557,17 +662,20 @@ export class BcmLinked {
557
662
  "required": false,
558
663
  "optional": false,
559
664
  "docs": {
560
- "tags": [],
665
+ "tags": [{
666
+ "name": "prop",
667
+ "text": "{boolean} closeOnOutsideClick - Whether to close when clicking outside.\nDefault: true"
668
+ }],
561
669
  "text": ""
562
670
  },
563
671
  "getter": false,
564
672
  "setter": false,
565
673
  "reflect": false,
566
- "defaultValue": "false"
674
+ "attribute": "close-on-outside-click",
675
+ "defaultValue": "true"
567
676
  },
568
- "destroyOnHide": {
677
+ "closeOnEscape": {
569
678
  "type": "boolean",
570
- "attribute": "destroy-on-hide",
571
679
  "mutable": false,
572
680
  "complexType": {
573
681
  "original": "boolean",
@@ -577,31 +685,73 @@ export class BcmLinked {
577
685
  "required": false,
578
686
  "optional": false,
579
687
  "docs": {
580
- "tags": [],
688
+ "tags": [{
689
+ "name": "prop",
690
+ "text": "{boolean} closeOnEscape - Whether to close when pressing Escape key.\nDefault: true"
691
+ }],
581
692
  "text": ""
582
693
  },
583
694
  "getter": false,
584
695
  "setter": false,
585
696
  "reflect": false,
586
- "defaultValue": "false"
697
+ "attribute": "close-on-escape",
698
+ "defaultValue": "true"
587
699
  }
588
700
  };
589
701
  }
590
702
  static get states() {
591
703
  return {
592
- "isVisible": {},
593
- "isReady": {}
704
+ "isVisible": {}
594
705
  };
595
706
  }
596
707
  static get events() {
597
708
  return [{
709
+ "method": "bcmBeforeShow",
710
+ "name": "bcmBeforeShow",
711
+ "bubbles": false,
712
+ "cancelable": true,
713
+ "composed": false,
714
+ "docs": {
715
+ "tags": [{
716
+ "name": "event",
717
+ "text": "bcmBeforeShow - Emitted before the floating element shows."
718
+ }],
719
+ "text": ""
720
+ },
721
+ "complexType": {
722
+ "original": "void",
723
+ "resolved": "void",
724
+ "references": {}
725
+ }
726
+ }, {
598
727
  "method": "bcmShow",
599
728
  "name": "bcmShow",
600
- "bubbles": true,
729
+ "bubbles": false,
601
730
  "cancelable": true,
602
- "composed": true,
731
+ "composed": false,
603
732
  "docs": {
604
- "tags": [],
733
+ "tags": [{
734
+ "name": "event",
735
+ "text": "bcmShow - Emitted when the floating element is shown."
736
+ }],
737
+ "text": ""
738
+ },
739
+ "complexType": {
740
+ "original": "void",
741
+ "resolved": "void",
742
+ "references": {}
743
+ }
744
+ }, {
745
+ "method": "bcmBeforeHide",
746
+ "name": "bcmBeforeHide",
747
+ "bubbles": false,
748
+ "cancelable": true,
749
+ "composed": false,
750
+ "docs": {
751
+ "tags": [{
752
+ "name": "event",
753
+ "text": "bcmBeforeHide - Emitted before the floating element hides."
754
+ }],
605
755
  "text": ""
606
756
  },
607
757
  "complexType": {
@@ -612,11 +762,14 @@ export class BcmLinked {
612
762
  }, {
613
763
  "method": "bcmHide",
614
764
  "name": "bcmHide",
615
- "bubbles": true,
765
+ "bubbles": false,
616
766
  "cancelable": true,
617
- "composed": true,
767
+ "composed": false,
618
768
  "docs": {
619
- "tags": [],
769
+ "tags": [{
770
+ "name": "event",
771
+ "text": "bcmHide - Emitted when the floating element is hidden."
772
+ }],
620
773
  "text": ""
621
774
  },
622
775
  "complexType": {
@@ -627,11 +780,14 @@ export class BcmLinked {
627
780
  }, {
628
781
  "method": "bcmShown",
629
782
  "name": "bcmShown",
630
- "bubbles": true,
783
+ "bubbles": false,
631
784
  "cancelable": true,
632
- "composed": true,
785
+ "composed": false,
633
786
  "docs": {
634
- "tags": [],
787
+ "tags": [{
788
+ "name": "event",
789
+ "text": "bcmShown - Emitted after the floating element is fully shown (after animation)."
790
+ }],
635
791
  "text": ""
636
792
  },
637
793
  "complexType": {
@@ -642,11 +798,14 @@ export class BcmLinked {
642
798
  }, {
643
799
  "method": "bcmHidden",
644
800
  "name": "bcmHidden",
645
- "bubbles": true,
801
+ "bubbles": false,
646
802
  "cancelable": true,
647
- "composed": true,
803
+ "composed": false,
648
804
  "docs": {
649
- "tags": [],
805
+ "tags": [{
806
+ "name": "event",
807
+ "text": "bcmHidden - Emitted after the floating element is fully hidden (after animation)."
808
+ }],
650
809
  "text": ""
651
810
  },
652
811
  "complexType": {
@@ -671,7 +830,7 @@ export class BcmLinked {
671
830
  "return": "Promise<void>"
672
831
  },
673
832
  "docs": {
674
- "text": "",
833
+ "text": "Programmatically shows the floating element.\nRespects the showDelay prop.",
675
834
  "tags": []
676
835
  }
677
836
  },
@@ -688,7 +847,7 @@ export class BcmLinked {
688
847
  "return": "Promise<void>"
689
848
  },
690
849
  "docs": {
691
- "text": "",
850
+ "text": "Programmatically hides the floating element.\nRespects the hideDelay prop.",
692
851
  "tags": []
693
852
  }
694
853
  },
@@ -705,11 +864,11 @@ export class BcmLinked {
705
864
  "return": "Promise<void>"
706
865
  },
707
866
  "docs": {
708
- "text": "",
867
+ "text": "Toggles the floating element visibility.",
709
868
  "tags": []
710
869
  }
711
870
  },
712
- "updatePositioning": {
871
+ "updatePosition": {
713
872
  "complexType": {
714
873
  "signature": "() => Promise<void>",
715
874
  "parameters": [],
@@ -722,7 +881,7 @@ export class BcmLinked {
722
881
  "return": "Promise<void>"
723
882
  },
724
883
  "docs": {
725
- "text": "",
884
+ "text": "Updates the position of the floating element.\nUseful when the trigger element moves or resizes.",
726
885
  "tags": []
727
886
  }
728
887
  }
@@ -731,14 +890,29 @@ export class BcmLinked {
731
890
  static get elementRef() { return "host"; }
732
891
  static get watchers() {
733
892
  return [{
734
- "propName": "targetId",
735
- "methodName": "setupTarget"
893
+ "propName": "visible",
894
+ "methodName": "handleVisibleChange"
895
+ }, {
896
+ "propName": "disabled",
897
+ "methodName": "handleDisabledChange"
898
+ }, {
899
+ "propName": "placement",
900
+ "methodName": "handlePositionPropsChange"
736
901
  }, {
737
- "propName": "targetElement",
738
- "methodName": "setupTarget"
902
+ "propName": "offsetDistance",
903
+ "methodName": "handlePositionPropsChange"
739
904
  }, {
740
- "propName": "isVisible",
741
- "methodName": "onVisibilityChange"
905
+ "propName": "showArrow",
906
+ "methodName": "handlePositionPropsChange"
907
+ }];
908
+ }
909
+ static get listeners() {
910
+ return [{
911
+ "name": "keydown",
912
+ "method": "handleKeyDown",
913
+ "target": "document",
914
+ "capture": false,
915
+ "passive": false
742
916
  }];
743
917
  }
744
918
  }