bromcom-ui-next 0.1.28 → 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 (438) 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-checkbox.entry.esm.js.map +1 -1
  6. package/dist/bromcom-ui/bcm-chip.entry.esm.js.map +1 -0
  7. package/dist/bromcom-ui/bcm-divider.entry.esm.js.map +1 -1
  8. package/dist/bromcom-ui/bcm-dropdown.entry.esm.js.map +1 -1
  9. package/dist/bromcom-ui/bcm-input.entry.esm.js.map +1 -1
  10. package/dist/bromcom-ui/bcm-segmented-picker-option.entry.esm.js.map +1 -1
  11. package/dist/bromcom-ui/bcm-segmented-picker.entry.esm.js.map +1 -1
  12. package/dist/bromcom-ui/bcm-switch.entry.esm.js.map +1 -1
  13. package/dist/bromcom-ui/bcm-tabs.entry.esm.js.map +1 -1
  14. package/dist/bromcom-ui/bcm-text.entry.esm.js.map +1 -1
  15. package/dist/bromcom-ui/bromcom-ui.esm.js +1 -1
  16. package/dist/bromcom-ui/bromcom-ui.esm.js.map +1 -1
  17. package/dist/bromcom-ui/floating-ui.dom-ltNPqX34.js.map +1 -0
  18. package/dist/bromcom-ui/generate-id-Crb5QsB-.js.map +1 -0
  19. package/dist/bromcom-ui/index-40rmUZjU.js.map +1 -0
  20. package/dist/bromcom-ui/index-BCaJmHBB.js.map +1 -0
  21. package/dist/bromcom-ui/{p-8ace5a6a.entry.js → p-0c7c6896.entry.js} +2 -2
  22. package/dist/bromcom-ui/p-0c7c6896.entry.js.map +1 -0
  23. package/dist/bromcom-ui/p-11d0e649.entry.js +2 -0
  24. package/dist/bromcom-ui/p-11d0e649.entry.js.map +1 -0
  25. package/dist/bromcom-ui/{p-6b585adc.entry.js → p-12f38632.entry.js} +2 -2
  26. package/dist/bromcom-ui/p-12f38632.entry.js.map +1 -0
  27. package/dist/bromcom-ui/{p-5e0702d1.entry.js → p-13cbd1f5.entry.js} +2 -2
  28. package/dist/bromcom-ui/p-13cbd1f5.entry.js.map +1 -0
  29. package/dist/bromcom-ui/{p-2480e468.entry.js → p-1507908f.entry.js} +2 -2
  30. package/dist/bromcom-ui/p-1507908f.entry.js.map +1 -0
  31. package/dist/bromcom-ui/p-1ce9913f.entry.js +2 -0
  32. package/dist/bromcom-ui/p-1ce9913f.entry.js.map +1 -0
  33. package/dist/bromcom-ui/p-206d767e.entry.js +2 -0
  34. package/dist/bromcom-ui/p-206d767e.entry.js.map +1 -0
  35. package/dist/bromcom-ui/{p-ee5f877f.entry.js → p-3cf7a7f4.entry.js} +2 -2
  36. package/dist/bromcom-ui/p-3cf7a7f4.entry.js.map +1 -0
  37. package/dist/bromcom-ui/p-4505feba.entry.js +2 -0
  38. package/dist/bromcom-ui/p-4505feba.entry.js.map +1 -0
  39. package/dist/bromcom-ui/{p-089edfdc.entry.js → p-496014ca.entry.js} +2 -2
  40. package/dist/bromcom-ui/p-496014ca.entry.js.map +1 -0
  41. package/dist/bromcom-ui/{p-26d2db9e.entry.js → p-4a932cd3.entry.js} +2 -2
  42. package/dist/bromcom-ui/p-4a932cd3.entry.js.map +1 -0
  43. package/dist/bromcom-ui/p-4e554b8d.entry.js +2 -0
  44. package/dist/bromcom-ui/p-4e554b8d.entry.js.map +1 -0
  45. package/dist/bromcom-ui/{p-360bff8a.entry.js → p-57c4c4c4.entry.js} +2 -2
  46. package/dist/bromcom-ui/p-57c4c4c4.entry.js.map +1 -0
  47. package/dist/bromcom-ui/{p-211ca6e0.entry.js → p-61293ab2.entry.js} +2 -2
  48. package/dist/bromcom-ui/p-61293ab2.entry.js.map +1 -0
  49. package/dist/bromcom-ui/{p-83f64814.entry.js → p-61789456.entry.js} +2 -2
  50. package/dist/bromcom-ui/p-61789456.entry.js.map +1 -0
  51. package/dist/bromcom-ui/{p-488d6ef4.entry.js → p-65d0f188.entry.js} +2 -2
  52. package/dist/bromcom-ui/p-65d0f188.entry.js.map +1 -0
  53. package/dist/bromcom-ui/p-83f707dc.entry.js +2 -0
  54. package/dist/bromcom-ui/p-83f707dc.entry.js.map +1 -0
  55. package/dist/bromcom-ui/p-8ba02e7e.entry.js +2 -0
  56. package/dist/bromcom-ui/p-8ba02e7e.entry.js.map +1 -0
  57. package/dist/bromcom-ui/p-9e9bf32e.entry.js +2 -0
  58. package/dist/bromcom-ui/p-9e9bf32e.entry.js.map +1 -0
  59. package/dist/bromcom-ui/p-BfTCfPZ1.js.map +1 -1
  60. package/dist/bromcom-ui/p-CEcVC0yX.js.map +1 -1
  61. package/dist/bromcom-ui/p-CRwAh9Np.js +3 -0
  62. package/dist/bromcom-ui/p-CRwAh9Np.js.map +1 -0
  63. package/dist/bromcom-ui/p-IBjzkjef.js.map +1 -1
  64. package/dist/bromcom-ui/{p-a88f20e0.entry.js → p-c87a6acf.entry.js} +2 -2
  65. package/dist/bromcom-ui/p-c87a6acf.entry.js.map +1 -0
  66. package/dist/bromcom-ui/{p-c34f0a66.entry.js → p-e0e235a8.entry.js} +2 -2
  67. package/dist/bromcom-ui/p-e0e235a8.entry.js.map +1 -0
  68. package/dist/bromcom-ui/{p-0101b4f2.entry.js → p-e1ce8b55.entry.js} +2 -2
  69. package/dist/bromcom-ui/p-e1ce8b55.entry.js.map +1 -0
  70. package/dist/bromcom-ui/p-e4dddb0b.entry.js +2 -0
  71. package/dist/bromcom-ui/p-e4dddb0b.entry.js.map +1 -0
  72. package/dist/bromcom-ui/p-f9426924.entry.js +2 -0
  73. package/dist/bromcom-ui/p-f9426924.entry.js.map +1 -0
  74. package/dist/bromcom-ui/{p-c0e7f9d6.entry.js → p-faa0e62c.entry.js} +2 -2
  75. package/dist/bromcom-ui/p-faa0e62c.entry.js.map +1 -0
  76. package/dist/bromcom-ui/{p-bdaf5653.entry.js → p-fcb4399f.entry.js} +2 -2
  77. package/dist/bromcom-ui/p-fcb4399f.entry.js.map +1 -0
  78. package/dist/bromcom-ui/tv-SlGJ5EfR.js.map +1 -0
  79. package/dist/bromcom-ui/validation-messages-CUvT12BL.js.map +1 -0
  80. package/dist/cjs/bcm-accordion-group.cjs.entry.js +2 -4
  81. package/dist/cjs/bcm-accordion.cjs.entry.js +3 -5
  82. package/dist/cjs/bcm-accordion.entry.cjs.js.map +1 -1
  83. package/dist/cjs/bcm-alert.cjs.entry.js +3 -5
  84. package/dist/cjs/bcm-alert.entry.cjs.js.map +1 -1
  85. package/dist/cjs/bcm-avatar.cjs.entry.js +1 -3
  86. package/dist/cjs/bcm-badge.cjs.entry.js +3 -5
  87. package/dist/cjs/bcm-basic-badge.cjs.entry.js +3 -5
  88. package/dist/cjs/bcm-button-group.cjs.entry.js +3 -5
  89. package/dist/cjs/bcm-button.bcm-drawer.bcm-linked.bcm-modal.bcm-pop-confirm.bcm-popover.bcm-tooltip.entry.cjs.js.map +1 -0
  90. package/dist/cjs/bcm-button_7.cjs.entry.js +4131 -0
  91. package/dist/cjs/bcm-checkbox.cjs.entry.js +7 -5
  92. package/dist/cjs/bcm-checkbox.entry.cjs.js.map +1 -1
  93. package/dist/cjs/bcm-chip.cjs.entry.js +127 -0
  94. package/dist/cjs/bcm-chip.entry.cjs.js.map +1 -0
  95. package/dist/cjs/bcm-divider.cjs.entry.js +3 -5
  96. package/dist/cjs/bcm-divider.entry.cjs.js.map +1 -1
  97. package/dist/cjs/bcm-dropdown-item.cjs.entry.js +3 -5
  98. package/dist/cjs/bcm-dropdown.cjs.entry.js +3 -13
  99. package/dist/cjs/bcm-dropdown.entry.cjs.js.map +1 -1
  100. package/dist/cjs/bcm-input.cjs.entry.js +4 -6
  101. package/dist/cjs/bcm-input.entry.cjs.js.map +1 -1
  102. package/dist/cjs/bcm-radio-group.cjs.entry.js +3 -5
  103. package/dist/cjs/bcm-radio.cjs.entry.js +2 -4
  104. package/dist/cjs/bcm-segmented-picker-option.cjs.entry.js +3 -5
  105. package/dist/cjs/bcm-segmented-picker-option.entry.cjs.js.map +1 -1
  106. package/dist/cjs/bcm-segmented-picker.cjs.entry.js +3 -5
  107. package/dist/cjs/bcm-segmented-picker.entry.cjs.js.map +1 -1
  108. package/dist/cjs/bcm-shortcut.cjs.entry.js +2 -4
  109. package/dist/cjs/bcm-switch.cjs.entry.js +4 -6
  110. package/dist/cjs/bcm-switch.entry.cjs.js.map +1 -1
  111. package/dist/cjs/bcm-tabs-content.cjs.entry.js +2 -4
  112. package/dist/cjs/bcm-tabs-list.cjs.entry.js +2 -4
  113. package/dist/cjs/bcm-tabs-trigger.cjs.entry.js +2 -4
  114. package/dist/cjs/bcm-tabs.cjs.entry.js +2 -4
  115. package/dist/cjs/bcm-tabs.entry.cjs.js.map +1 -1
  116. package/dist/cjs/bcm-text.cjs.entry.js +3 -5
  117. package/dist/cjs/bcm-text.entry.cjs.js.map +1 -1
  118. package/dist/cjs/bcm-textarea.cjs.entry.js +4 -6
  119. package/dist/cjs/bromcom-ui.cjs.js +3 -5
  120. package/dist/cjs/bromcom-ui.cjs.js.map +1 -1
  121. package/dist/cjs/generate-id-CG_BkTJu.js.map +1 -1
  122. package/dist/cjs/index-Bp6Dd2i1.js.map +1 -1
  123. package/dist/cjs/{index-BtiU-G2W.js → index-CmYzUr-k.js} +61 -372
  124. package/dist/cjs/index-CmYzUr-k.js.map +1 -0
  125. package/dist/cjs/index.cjs.js +0 -2
  126. package/dist/cjs/loader.cjs.js +2 -4
  127. package/dist/cjs/tv-ngpIbGlG.js.map +1 -1
  128. package/dist/collection/collection-manifest.json +5 -5
  129. package/dist/collection/components/accordion/accordion.component.js +8 -8
  130. package/dist/collection/components/accordion/accordion.component.js.map +1 -1
  131. package/dist/collection/components/accordion-group/accordion-group.component.js +3 -3
  132. package/dist/collection/components/accordion-group/types.js.map +1 -1
  133. package/dist/collection/components/alert/alert.component.js +6 -6
  134. package/dist/collection/components/alert/alert.css +1 -1
  135. package/dist/collection/components/avatar/avatar.component.js +14 -14
  136. package/dist/collection/components/badge/badge.component.js +15 -15
  137. package/dist/collection/components/basic-badge/basic-badge.component.js +9 -9
  138. package/dist/collection/components/button/button.component.js +32 -32
  139. package/dist/collection/components/button/button.css +1 -1
  140. package/dist/collection/components/button-group/button-group.component.js +15 -15
  141. package/dist/collection/components/checkbox/checkbox.component.js +36 -12
  142. package/dist/collection/components/checkbox/checkbox.component.js.map +1 -1
  143. package/dist/collection/components/checkbox/checkbox.css +1 -1
  144. package/dist/collection/components/chip/chip.component.js +8 -8
  145. package/dist/collection/components/divider/divider.component.js +4 -4
  146. package/dist/collection/components/divider/divider.css +1 -1
  147. package/dist/collection/components/drawer/drawer.component.js +429 -132
  148. package/dist/collection/components/drawer/drawer.component.js.map +1 -1
  149. package/dist/collection/components/drawer/drawer.css +1 -1
  150. package/dist/collection/components/drawer/types.js.map +1 -1
  151. package/dist/collection/components/dropdown/dropdown.component.js +3 -12
  152. package/dist/collection/components/dropdown/dropdown.component.js.map +1 -1
  153. package/dist/collection/components/dropdown/dropdown.css +1 -1
  154. package/dist/collection/components/dropdown-item/dropdown-item.component.js +9 -10
  155. package/dist/collection/components/dropdown-item/dropdown-item.component.js.map +1 -1
  156. package/dist/collection/components/input/input.component.js +44 -45
  157. package/dist/collection/components/input/input.component.js.map +1 -1
  158. package/dist/collection/components/input/input.css +1 -1
  159. package/dist/collection/components/linked/linked.component.js +507 -333
  160. package/dist/collection/components/linked/linked.component.js.map +1 -1
  161. package/dist/collection/components/linked/linked.css +1 -1
  162. package/dist/collection/components/modal/modal.component.js +137 -34
  163. package/dist/collection/components/modal/modal.component.js.map +1 -1
  164. package/dist/collection/components/modal/modal.css +1 -1
  165. package/dist/collection/components/pop-confirm/pop-confirm.component.js +668 -294
  166. package/dist/collection/components/pop-confirm/pop-confirm.component.js.map +1 -1
  167. package/dist/collection/components/pop-confirm/pop-confirm.css +1 -1
  168. package/dist/collection/components/popover/popover.component.js +533 -148
  169. package/dist/collection/components/popover/popover.component.js.map +1 -1
  170. package/dist/collection/components/popover/popover.css +1 -1
  171. package/dist/collection/components/radio/radio.component.js +13 -13
  172. package/dist/collection/components/radio-group/radio-group.component.js +15 -15
  173. package/dist/collection/components/segmented-picker/segmented-picker-option.component.js +10 -10
  174. package/dist/collection/components/segmented-picker/segmented-picker-option.component.js.map +1 -1
  175. package/dist/collection/components/segmented-picker/segmented-picker.component.js +7 -7
  176. package/dist/collection/components/segmented-picker/segmented-picker.component.js.map +1 -1
  177. package/dist/collection/components/shortcut/shortcut.js +4 -4
  178. package/dist/collection/components/switch/switch.component.js +17 -17
  179. package/dist/collection/components/switch/switch.css +1 -1
  180. package/dist/collection/components/tabs/tabs-content.component.js +3 -3
  181. package/dist/collection/components/tabs/tabs-list.component.js +3 -3
  182. package/dist/collection/components/tabs/tabs-trigger.component.js +8 -8
  183. package/dist/collection/components/tabs/tabs.component.js +6 -6
  184. package/dist/collection/components/tabs/tabs.component.js.map +1 -1
  185. package/dist/collection/components/text/text.component.js +6 -6
  186. package/dist/collection/components/text/text.css +1 -1
  187. package/dist/collection/components/textarea/textarea.component.js +39 -40
  188. package/dist/collection/components/textarea/textarea.component.js.map +1 -1
  189. package/dist/collection/components/tooltip/tooltip.component.js +567 -192
  190. package/dist/collection/components/tooltip/tooltip.component.js.map +1 -1
  191. package/dist/collection/components/tooltip/tooltip.css +1 -1
  192. package/dist/components/bcm-accordion-group.js +5 -3
  193. package/dist/components/bcm-accordion-group.js.map +1 -1
  194. package/dist/components/bcm-accordion.js +6 -4
  195. package/dist/components/bcm-accordion.js.map +1 -1
  196. package/dist/components/bcm-alert.js +6 -4
  197. package/dist/components/bcm-alert.js.map +1 -1
  198. package/dist/components/bcm-avatar.js +5 -3
  199. package/dist/components/bcm-avatar.js.map +1 -1
  200. package/dist/components/bcm-badge.js +1 -1
  201. package/dist/components/bcm-basic-badge.js +6 -4
  202. package/dist/components/bcm-basic-badge.js.map +1 -1
  203. package/dist/components/bcm-button-group.js +6 -4
  204. package/dist/components/bcm-button-group.js.map +1 -1
  205. package/dist/components/bcm-button.js +1 -1
  206. package/dist/components/bcm-checkbox.js +11 -4
  207. package/dist/components/bcm-checkbox.js.map +1 -1
  208. package/dist/components/bcm-chip.js +5 -3
  209. package/dist/components/bcm-chip.js.map +1 -1
  210. package/dist/components/bcm-divider.js +6 -4
  211. package/dist/components/bcm-divider.js.map +1 -1
  212. package/dist/components/bcm-drawer.js +228 -115
  213. package/dist/components/bcm-drawer.js.map +1 -1
  214. package/dist/components/bcm-dropdown-item.js +7 -5
  215. package/dist/components/bcm-dropdown-item.js.map +1 -1
  216. package/dist/components/bcm-dropdown.js +8 -15
  217. package/dist/components/bcm-dropdown.js.map +1 -1
  218. package/dist/components/bcm-input.js +7 -5
  219. package/dist/components/bcm-input.js.map +1 -1
  220. package/dist/components/bcm-linked.js +1 -1
  221. package/dist/components/bcm-modal.js +56 -4
  222. package/dist/components/bcm-modal.js.map +1 -1
  223. package/dist/components/bcm-pop-confirm.js +278 -171
  224. package/dist/components/bcm-pop-confirm.js.map +1 -1
  225. package/dist/components/bcm-popover.js +355 -110
  226. package/dist/components/bcm-popover.js.map +1 -1
  227. package/dist/components/bcm-radio-group.js +6 -4
  228. package/dist/components/bcm-radio-group.js.map +1 -1
  229. package/dist/components/bcm-radio.js +5 -3
  230. package/dist/components/bcm-radio.js.map +1 -1
  231. package/dist/components/bcm-segmented-picker-option.js +6 -4
  232. package/dist/components/bcm-segmented-picker-option.js.map +1 -1
  233. package/dist/components/bcm-segmented-picker.js +6 -4
  234. package/dist/components/bcm-segmented-picker.js.map +1 -1
  235. package/dist/components/bcm-shortcut.js +5 -3
  236. package/dist/components/bcm-shortcut.js.map +1 -1
  237. package/dist/components/bcm-switch.js +7 -5
  238. package/dist/components/bcm-switch.js.map +1 -1
  239. package/dist/components/bcm-tabs-content.js +5 -3
  240. package/dist/components/bcm-tabs-content.js.map +1 -1
  241. package/dist/components/bcm-tabs-list.js +5 -3
  242. package/dist/components/bcm-tabs-list.js.map +1 -1
  243. package/dist/components/bcm-tabs-trigger.js +5 -3
  244. package/dist/components/bcm-tabs-trigger.js.map +1 -1
  245. package/dist/components/bcm-tabs.js +5 -3
  246. package/dist/components/bcm-tabs.js.map +1 -1
  247. package/dist/components/bcm-text.js +6 -4
  248. package/dist/components/bcm-text.js.map +1 -1
  249. package/dist/components/bcm-textarea.js +7 -5
  250. package/dist/components/bcm-textarea.js.map +1 -1
  251. package/dist/components/bcm-tooltip.js +364 -127
  252. package/dist/components/bcm-tooltip.js.map +1 -1
  253. package/dist/components/index.js +41 -366
  254. package/dist/components/index.js.map +1 -1
  255. package/dist/components/p-6VLsKZvR.js +469 -0
  256. package/dist/components/p-6VLsKZvR.js.map +1 -0
  257. package/dist/components/p-BfTCfPZ1.js.map +1 -1
  258. package/dist/components/p-CEcVC0yX.js.map +1 -1
  259. package/dist/components/{p-CQF7wlXf.js → p-CaemikSK.js} +8 -6
  260. package/dist/components/p-CaemikSK.js.map +1 -0
  261. package/dist/components/{p-DGlecSBr.js → p-CsIBm0J5.js} +9 -7
  262. package/dist/components/p-CsIBm0J5.js.map +1 -0
  263. package/dist/components/{p-CzcTU1ty.js → p-DBDSgIvP.js} +40 -23
  264. package/dist/components/p-DBDSgIvP.js.map +1 -0
  265. package/dist/components/p-IBjzkjef.js.map +1 -1
  266. package/dist/esm/bcm-accordion-group.entry.js +2 -4
  267. package/dist/esm/bcm-accordion.entry.js +3 -5
  268. package/dist/esm/bcm-accordion.entry.js.map +1 -1
  269. package/dist/esm/bcm-alert.entry.js +3 -5
  270. package/dist/esm/bcm-alert.entry.js.map +1 -1
  271. package/dist/esm/bcm-avatar.entry.js +1 -3
  272. package/dist/esm/bcm-badge.entry.js +3 -5
  273. package/dist/esm/bcm-basic-badge.entry.js +3 -5
  274. package/dist/esm/bcm-button-group.entry.js +3 -5
  275. package/dist/esm/bcm-button.bcm-drawer.bcm-linked.bcm-modal.bcm-pop-confirm.bcm-popover.bcm-tooltip.entry.js.map +1 -0
  276. package/dist/esm/bcm-button_7.entry.js +4123 -0
  277. package/dist/esm/bcm-checkbox.entry.js +7 -5
  278. package/dist/esm/bcm-checkbox.entry.js.map +1 -1
  279. package/dist/esm/bcm-chip.entry.js +125 -0
  280. package/dist/esm/bcm-chip.entry.js.map +1 -0
  281. package/dist/esm/bcm-divider.entry.js +3 -5
  282. package/dist/esm/bcm-divider.entry.js.map +1 -1
  283. package/dist/esm/bcm-dropdown-item.entry.js +3 -5
  284. package/dist/esm/bcm-dropdown.entry.js +3 -13
  285. package/dist/esm/bcm-dropdown.entry.js.map +1 -1
  286. package/dist/esm/bcm-input.entry.js +4 -6
  287. package/dist/esm/bcm-input.entry.js.map +1 -1
  288. package/dist/esm/bcm-radio-group.entry.js +3 -5
  289. package/dist/esm/bcm-radio.entry.js +2 -4
  290. package/dist/esm/bcm-segmented-picker-option.entry.js +3 -5
  291. package/dist/esm/bcm-segmented-picker-option.entry.js.map +1 -1
  292. package/dist/esm/bcm-segmented-picker.entry.js +3 -5
  293. package/dist/esm/bcm-segmented-picker.entry.js.map +1 -1
  294. package/dist/esm/bcm-shortcut.entry.js +2 -4
  295. package/dist/esm/bcm-switch.entry.js +4 -6
  296. package/dist/esm/bcm-switch.entry.js.map +1 -1
  297. package/dist/esm/bcm-tabs-content.entry.js +2 -4
  298. package/dist/esm/bcm-tabs-list.entry.js +2 -4
  299. package/dist/esm/bcm-tabs-trigger.entry.js +2 -4
  300. package/dist/esm/bcm-tabs.entry.js +2 -4
  301. package/dist/esm/bcm-tabs.entry.js.map +1 -1
  302. package/dist/esm/bcm-text.entry.js +3 -5
  303. package/dist/esm/bcm-text.entry.js.map +1 -1
  304. package/dist/esm/bcm-textarea.entry.js +4 -6
  305. package/dist/esm/bromcom-ui.js +4 -6
  306. package/dist/esm/bromcom-ui.js.map +1 -1
  307. package/dist/esm/generate-id-IBjzkjef.js.map +1 -1
  308. package/dist/esm/index-BfTCfPZ1.js.map +1 -1
  309. package/dist/esm/{index-BuuGCw0z.js → index-CRwAh9Np.js} +62 -372
  310. package/dist/esm/index-CRwAh9Np.js.map +1 -0
  311. package/dist/esm/index.js +0 -2
  312. package/dist/esm/loader.js +3 -5
  313. package/dist/esm/tv-CEcVC0yX.js.map +1 -1
  314. package/dist/types/components/accordion-group/types.d.ts +2 -2
  315. package/dist/types/components/checkbox/checkbox.component.d.ts +4 -0
  316. package/dist/types/components/drawer/drawer.component.d.ts +143 -3
  317. package/dist/types/components/drawer/types.d.ts +1 -1
  318. package/dist/types/components/dropdown/dropdown.component.d.ts +0 -3
  319. package/dist/types/components/linked/linked.component.d.ts +152 -36
  320. package/dist/types/components/modal/modal.component.d.ts +121 -0
  321. package/dist/types/components/pop-confirm/pop-confirm.component.d.ts +263 -143
  322. package/dist/types/components/popover/popover.component.d.ts +94 -39
  323. package/dist/types/components/tooltip/tooltip.component.d.ts +147 -56
  324. package/dist/types/components.d.ts +1579 -359
  325. package/dist/types/stencil-public-runtime.d.ts +50 -3
  326. package/package.json +1 -1
  327. package/dist/bromcom-ui/bcm-button.bcm-chip.bcm-drawer.bcm-modal.entry.esm.js.map +0 -1
  328. package/dist/bromcom-ui/bcm-linked.entry.esm.js.map +0 -1
  329. package/dist/bromcom-ui/bcm-pop-confirm.entry.esm.js.map +0 -1
  330. package/dist/bromcom-ui/bcm-popover.entry.esm.js.map +0 -1
  331. package/dist/bromcom-ui/bcm-tooltip.entry.esm.js.map +0 -1
  332. package/dist/bromcom-ui/p-0101b4f2.entry.js.map +0 -1
  333. package/dist/bromcom-ui/p-089edfdc.entry.js.map +0 -1
  334. package/dist/bromcom-ui/p-08bc93c5.entry.js +0 -2
  335. package/dist/bromcom-ui/p-08bc93c5.entry.js.map +0 -1
  336. package/dist/bromcom-ui/p-09be61c3.entry.js +0 -2
  337. package/dist/bromcom-ui/p-09be61c3.entry.js.map +0 -1
  338. package/dist/bromcom-ui/p-211ca6e0.entry.js.map +0 -1
  339. package/dist/bromcom-ui/p-2480e468.entry.js.map +0 -1
  340. package/dist/bromcom-ui/p-26d2db9e.entry.js.map +0 -1
  341. package/dist/bromcom-ui/p-2d0a6472.entry.js +0 -2
  342. package/dist/bromcom-ui/p-2d0a6472.entry.js.map +0 -1
  343. package/dist/bromcom-ui/p-360bff8a.entry.js.map +0 -1
  344. package/dist/bromcom-ui/p-488d6ef4.entry.js.map +0 -1
  345. package/dist/bromcom-ui/p-5e0702d1.entry.js.map +0 -1
  346. package/dist/bromcom-ui/p-6169490c.entry.js +0 -2
  347. package/dist/bromcom-ui/p-6169490c.entry.js.map +0 -1
  348. package/dist/bromcom-ui/p-6b585adc.entry.js.map +0 -1
  349. package/dist/bromcom-ui/p-6d7d73d5.entry.js +0 -2
  350. package/dist/bromcom-ui/p-6d7d73d5.entry.js.map +0 -1
  351. package/dist/bromcom-ui/p-7234af90.entry.js +0 -2
  352. package/dist/bromcom-ui/p-7234af90.entry.js.map +0 -1
  353. package/dist/bromcom-ui/p-83f64814.entry.js.map +0 -1
  354. package/dist/bromcom-ui/p-84677827.entry.js +0 -2
  355. package/dist/bromcom-ui/p-84677827.entry.js.map +0 -1
  356. package/dist/bromcom-ui/p-8ace5a6a.entry.js.map +0 -1
  357. package/dist/bromcom-ui/p-8d74249a.entry.js +0 -2
  358. package/dist/bromcom-ui/p-8d74249a.entry.js.map +0 -1
  359. package/dist/bromcom-ui/p-BuuGCw0z.js +0 -3
  360. package/dist/bromcom-ui/p-BuuGCw0z.js.map +0 -1
  361. package/dist/bromcom-ui/p-DxMLMJ3r.js +0 -2
  362. package/dist/bromcom-ui/p-DxMLMJ3r.js.map +0 -1
  363. package/dist/bromcom-ui/p-a88f20e0.entry.js.map +0 -1
  364. package/dist/bromcom-ui/p-bad299f2.entry.js +0 -2
  365. package/dist/bromcom-ui/p-bad299f2.entry.js.map +0 -1
  366. package/dist/bromcom-ui/p-bdaf5653.entry.js.map +0 -1
  367. package/dist/bromcom-ui/p-c0e7f9d6.entry.js.map +0 -1
  368. package/dist/bromcom-ui/p-c34f0a66.entry.js.map +0 -1
  369. package/dist/bromcom-ui/p-c9cf3f14.entry.js +0 -2
  370. package/dist/bromcom-ui/p-c9cf3f14.entry.js.map +0 -1
  371. package/dist/bromcom-ui/p-d7cea19f.entry.js +0 -2
  372. package/dist/bromcom-ui/p-d7cea19f.entry.js.map +0 -1
  373. package/dist/bromcom-ui/p-e5e0ac07.entry.js +0 -2
  374. package/dist/bromcom-ui/p-e5e0ac07.entry.js.map +0 -1
  375. package/dist/bromcom-ui/p-ee5f877f.entry.js.map +0 -1
  376. package/dist/bromcom-ui/p-fbccbffc.entry.js +0 -2
  377. package/dist/bromcom-ui/p-fbccbffc.entry.js.map +0 -1
  378. package/dist/cjs/bcm-accordion-group.cjs.entry.js.map +0 -1
  379. package/dist/cjs/bcm-accordion.cjs.entry.js.map +0 -1
  380. package/dist/cjs/bcm-alert.cjs.entry.js.map +0 -1
  381. package/dist/cjs/bcm-avatar.cjs.entry.js.map +0 -1
  382. package/dist/cjs/bcm-badge.cjs.entry.js.map +0 -1
  383. package/dist/cjs/bcm-basic-badge.cjs.entry.js.map +0 -1
  384. package/dist/cjs/bcm-button-group.cjs.entry.js.map +0 -1
  385. package/dist/cjs/bcm-button.bcm-chip.bcm-drawer.bcm-modal.entry.cjs.js.map +0 -1
  386. package/dist/cjs/bcm-button_4.cjs.entry.js +0 -915
  387. package/dist/cjs/bcm-button_4.cjs.entry.js.map +0 -1
  388. package/dist/cjs/bcm-checkbox.cjs.entry.js.map +0 -1
  389. package/dist/cjs/bcm-divider.cjs.entry.js.map +0 -1
  390. package/dist/cjs/bcm-dropdown-item.cjs.entry.js.map +0 -1
  391. package/dist/cjs/bcm-dropdown.cjs.entry.js.map +0 -1
  392. package/dist/cjs/bcm-input.cjs.entry.js.map +0 -1
  393. package/dist/cjs/bcm-linked.cjs.entry.js +0 -343
  394. package/dist/cjs/bcm-linked.cjs.entry.js.map +0 -1
  395. package/dist/cjs/bcm-linked.entry.cjs.js.map +0 -1
  396. package/dist/cjs/bcm-pop-confirm.cjs.entry.js +0 -250
  397. package/dist/cjs/bcm-pop-confirm.cjs.entry.js.map +0 -1
  398. package/dist/cjs/bcm-pop-confirm.entry.cjs.js.map +0 -1
  399. package/dist/cjs/bcm-popover.cjs.entry.js +0 -189
  400. package/dist/cjs/bcm-popover.cjs.entry.js.map +0 -1
  401. package/dist/cjs/bcm-popover.entry.cjs.js.map +0 -1
  402. package/dist/cjs/bcm-radio-group.cjs.entry.js.map +0 -1
  403. package/dist/cjs/bcm-radio.cjs.entry.js.map +0 -1
  404. package/dist/cjs/bcm-segmented-picker-option.cjs.entry.js.map +0 -1
  405. package/dist/cjs/bcm-segmented-picker.cjs.entry.js.map +0 -1
  406. package/dist/cjs/bcm-shortcut.cjs.entry.js.map +0 -1
  407. package/dist/cjs/bcm-switch.cjs.entry.js.map +0 -1
  408. package/dist/cjs/bcm-tabs-content.cjs.entry.js.map +0 -1
  409. package/dist/cjs/bcm-tabs-list.cjs.entry.js.map +0 -1
  410. package/dist/cjs/bcm-tabs-trigger.cjs.entry.js.map +0 -1
  411. package/dist/cjs/bcm-tabs.cjs.entry.js.map +0 -1
  412. package/dist/cjs/bcm-text.cjs.entry.js.map +0 -1
  413. package/dist/cjs/bcm-textarea.cjs.entry.js.map +0 -1
  414. package/dist/cjs/bcm-tooltip.cjs.entry.js +0 -180
  415. package/dist/cjs/bcm-tooltip.cjs.entry.js.map +0 -1
  416. package/dist/cjs/bcm-tooltip.entry.cjs.js.map +0 -1
  417. package/dist/cjs/floating-ui.dom-DyKmFgkP.js +0 -1605
  418. package/dist/cjs/floating-ui.dom-DyKmFgkP.js.map +0 -1
  419. package/dist/cjs/index-BtiU-G2W.js.map +0 -1
  420. package/dist/components/p-BHwftRkk.js +0 -379
  421. package/dist/components/p-BHwftRkk.js.map +0 -1
  422. package/dist/components/p-CQF7wlXf.js.map +0 -1
  423. package/dist/components/p-CzcTU1ty.js.map +0 -1
  424. package/dist/components/p-DGlecSBr.js.map +0 -1
  425. package/dist/esm/bcm-button.bcm-chip.bcm-drawer.bcm-modal.entry.js.map +0 -1
  426. package/dist/esm/bcm-button_4.entry.js +0 -910
  427. package/dist/esm/bcm-button_4.entry.js.map +0 -1
  428. package/dist/esm/bcm-linked.entry.js +0 -341
  429. package/dist/esm/bcm-linked.entry.js.map +0 -1
  430. package/dist/esm/bcm-pop-confirm.entry.js +0 -248
  431. package/dist/esm/bcm-pop-confirm.entry.js.map +0 -1
  432. package/dist/esm/bcm-popover.entry.js +0 -187
  433. package/dist/esm/bcm-popover.entry.js.map +0 -1
  434. package/dist/esm/bcm-tooltip.entry.js +0 -178
  435. package/dist/esm/bcm-tooltip.entry.js.map +0 -1
  436. package/dist/esm/floating-ui.dom-DxMLMJ3r.js +0 -1598
  437. package/dist/esm/floating-ui.dom-DxMLMJ3r.js.map +0 -1
  438. package/dist/esm/index-BuuGCw0z.js.map +0 -1
@@ -17,9 +17,11 @@ import { Event } from "./stencil-public-runtime";
17
17
  import { TriggerType } from "./components/linked/linked.component";
18
18
  import { Placement } from "@floating-ui/dom";
19
19
  import { ModalPlacement, ModalSize } from "./components/modal/modal.component";
20
+ import { PopConfirmPlacement, PopConfirmSize, PopConfirmStatus } from "./components/pop-confirm/pop-confirm.component";
20
21
  import { SegmentedPickerSize } from "./components/segmented-picker/types";
21
22
  import { TextSize, TextVariant } from "./components/text/text.types";
22
23
  import { InputSize as InputSize1, InputStatus as InputStatus1, TextareaResize } from "./components/textarea/types";
24
+ import { TooltipPlacement, TooltipSize, TooltipTrigger } from "./components/tooltip/tooltip.component";
23
25
  export { AccordionChangeEventType } from "./components/accordion/types";
24
26
  export { AccordionGroupChangeEventType } from "./components/accordion-group/types";
25
27
  export { AlertKind, AlertSize, AlertStatus } from "./components/alert/types";
@@ -32,9 +34,11 @@ export { Event } from "./stencil-public-runtime";
32
34
  export { TriggerType } from "./components/linked/linked.component";
33
35
  export { Placement } from "@floating-ui/dom";
34
36
  export { ModalPlacement, ModalSize } from "./components/modal/modal.component";
37
+ export { PopConfirmPlacement, PopConfirmSize, PopConfirmStatus } from "./components/pop-confirm/pop-confirm.component";
35
38
  export { SegmentedPickerSize } from "./components/segmented-picker/types";
36
39
  export { TextSize, TextVariant } from "./components/text/text.types";
37
40
  export { InputSize as InputSize1, InputStatus as InputStatus1, TextareaResize } from "./components/textarea/types";
41
+ export { TooltipPlacement, TooltipSize, TooltipTrigger } from "./components/tooltip/tooltip.component";
38
42
  export namespace Components {
39
43
  /**
40
44
  * @component BcmAccordion
@@ -524,6 +528,11 @@ export namespace Components {
524
528
  * @default false
525
529
  */
526
530
  "error": boolean;
531
+ /**
532
+ * Full width checkbox
533
+ * @default false
534
+ */
535
+ "fullWidth": boolean;
527
536
  /**
528
537
  * Determines if the checkbox is in an indeterminate state. This is useful when some items in a group of checkboxes are selected and others are not.
529
538
  * @default false
@@ -630,30 +639,109 @@ export namespace Components {
630
639
  */
631
640
  "variant": 'solid' | 'dashed' | 'dotted';
632
641
  }
642
+ /**
643
+ * @component BcmDrawer
644
+ * @description A slide-in panel component built on the native HTML Dialog API.
645
+ * Ideal for navigation menus, forms, and contextual information that slides in from any edge of the screen.
646
+ * @example ```html
647
+ * <!-- Basic usage -->
648
+ * <bcm-drawer open header-text="Menu" position="left">
649
+ * <nav>
650
+ * <a href="/home">Home</a>
651
+ * <a href="/about">About</a>
652
+ * </nav>
653
+ * </bcm-drawer>
654
+ * <!-- Custom size and position -->
655
+ * <bcm-drawer size="large" position="right">
656
+ * <div slot="header">Settings</div>
657
+ * <form>...</form>
658
+ * <div slot="footer">
659
+ * <button data-dismiss>Cancel</button>
660
+ * <button>Save</button>
661
+ * </div>
662
+ * </bcm-drawer>
663
+ * <!-- Custom size with CSS units -->
664
+ * <bcm-drawer size="600px" position="bottom">
665
+ * <p>Custom height drawer</p>
666
+ * </bcm-drawer>
667
+ * <!-- Programmatic usage -->
668
+ * <bcm-drawer id="myDrawer">Content</bcm-drawer>
669
+ * <script>
670
+ * document.getElementById('myDrawer').show();
671
+ * </script>
672
+ * ```
673
+ */
633
674
  interface BcmDrawer {
634
675
  /**
676
+ * Controls backdrop behavior - true: Shows backdrop, drawer can be closed by clicking outside - false: No backdrop - 'static': Shows backdrop but prevents closing by clicking outside (triggers shake animation)
677
+ * @default true
678
+ */
679
+ "backdrop": boolean | 'static';
680
+ /**
681
+ * Allows closing the drawer by clicking on the backdrop
682
+ * @default true
683
+ */
684
+ "closeOnBackdrop": boolean;
685
+ /**
686
+ * Allows closing the drawer by pressing the Escape key
687
+ * @default true
688
+ */
689
+ "closeOnEscape": boolean;
690
+ /**
691
+ * Makes the drawer take the full screen (100vw x 100vh)
692
+ * @default false
693
+ */
694
+ "fullScreen": boolean;
695
+ /**
696
+ * Makes the drawer take full width (for left/right) or full height (for top/bottom)
635
697
  * @default false
636
698
  */
637
699
  "fullWidth": boolean;
700
+ /**
701
+ * Text to display in the drawer header
702
+ */
638
703
  "headerText"?: string;
704
+ /**
705
+ * Helper text to display below the header title
706
+ */
707
+ "helperText"?: string;
708
+ /**
709
+ * Programmatically closes the drawer
710
+ */
639
711
  "hide": () => Promise<void>;
640
712
  /**
713
+ * Hides the footer section completely
714
+ * @default false
715
+ */
716
+ "noFooter": boolean;
717
+ /**
718
+ * Hides the header section completely
641
719
  * @default false
642
720
  */
643
721
  "noHeader": boolean;
644
722
  /**
723
+ * Controls whether the drawer is open or closed
645
724
  * @default false
646
725
  */
647
726
  "open": boolean;
648
727
  /**
728
+ * The position where the drawer slides in from - 'left': Slides from the left edge - 'right': Slides from the right edge - 'top': Slides from the top edge - 'bottom': Slides from the bottom edge
649
729
  * @default 'right'
650
730
  */
651
731
  "position": DrawerPosition;
732
+ /**
733
+ * Programmatically opens the drawer
734
+ */
652
735
  "show": () => Promise<void>;
653
736
  /**
737
+ * The size of the drawer. Can be a preset value or a custom CSS size - For left/right drawers: - 'small': 320px - 'medium': 480px - 'large': 1064px - For top/bottom drawers: - 'small': 40vh - 'medium': 60vh - 'large': 90vh - Custom values: Any valid CSS size (e.g., '600px', '50%', '30rem', '80vw')
654
738
  * @default 'medium'
655
739
  */
656
740
  "size": DrawerSize;
741
+ /**
742
+ * Toggles the drawer open/closed state
743
+ */
744
+ "toggle": () => Promise<void>;
657
745
  }
658
746
  interface BcmDropdown {
659
747
  "text"?: string;
@@ -802,221 +890,436 @@ export namespace Components {
802
890
  */
803
891
  "value": string;
804
892
  }
893
+ /**
894
+ * @component BcmLinked
895
+ * @description A flexible linked floating element component that displays contextual content relative to a trigger element.
896
+ * Built on the native Popover API for top-layer rendering and Floating UI for intelligent positioning.
897
+ * Supports different trigger types (click, hover, focus, manual) and comprehensive event system.
898
+ * @example Basic Click Trigger
899
+ * <bcm-linked trigger="click">
900
+ * <button slot="trigger">Click Me</button>
901
+ * <div>Floating content here</div>
902
+ * </bcm-linked>
903
+ * @example Hover Trigger with Delays
904
+ * <bcm-linked trigger="hover" show-delay="200" hide-delay="100">
905
+ * <span slot="trigger">Hover Me</span>
906
+ * <div>This appears on hover</div>
907
+ * </bcm-linked>
908
+ * @example Manual Control
909
+ * <bcm-linked id="my-linked" trigger="manual">
910
+ * <button slot="trigger">Trigger</button>
911
+ * <div>Controlled content</div>
912
+ * </bcm-linked>
913
+ * <script>
914
+ * const linked = document.querySelector('#my-linked');
915
+ * linked.show(); // Opens the floating element
916
+ * linked.hide(); // Closes the floating element
917
+ * </script>
918
+ * @csspart floating - The floating container element
919
+ * @csspart arrow - The arrow element pointing to the trigger
920
+ * @csspart content - The content wrapper element
921
+ */
805
922
  interface BcmLinked {
806
923
  /**
807
- * @default false
924
+ * @prop {boolean} closeOnEscape - Whether to close when pressing Escape key. Default: true
925
+ * @default true
808
926
  */
809
- "appendToBody": boolean;
927
+ "closeOnEscape": boolean;
810
928
  /**
811
- * @default false
929
+ * @prop {boolean} closeOnOutsideClick - Whether to close when clicking outside. Default: true
930
+ * @default true
812
931
  */
813
- "arrow": boolean;
932
+ "closeOnOutsideClick": boolean;
814
933
  /**
934
+ * @prop {boolean} disabled - Disables the floating element, preventing it from showing. Default: false
815
935
  * @default false
816
936
  */
817
- "destroyOnHide": boolean;
937
+ "disabled": boolean;
818
938
  /**
819
- * @default false
939
+ * Programmatically hides the floating element. Respects the hideDelay prop.
820
940
  */
821
- "disabled": boolean;
822
941
  "hide": () => Promise<void>;
823
942
  /**
943
+ * @prop {number} hideDelay - Delay in milliseconds before hiding the floating element. Default: 0
824
944
  * @default 0
825
945
  */
826
946
  "hideDelay": number;
827
947
  /**
948
+ * @prop {number} offsetDistance - Distance in pixels between the floating element and the trigger. Default: 8
828
949
  * @default 8
829
950
  */
830
- "offset": number;
951
+ "offsetDistance": number;
831
952
  /**
953
+ * @prop {Placement} placement - Defines the position of the floating element relative to the trigger. Default: 'bottom-start'
832
954
  * @default 'bottom-start'
833
955
  */
834
956
  "placement": Placement;
957
+ /**
958
+ * Programmatically shows the floating element. Respects the showDelay prop.
959
+ */
835
960
  "show": () => Promise<void>;
836
961
  /**
962
+ * @prop {boolean} showArrow - Whether to show an arrow pointing to the trigger element. Default: true
963
+ * @default true
964
+ */
965
+ "showArrow": boolean;
966
+ /**
967
+ * @prop {number} showDelay - Delay in milliseconds before showing the floating element. Default: 0
837
968
  * @default 0
838
969
  */
839
970
  "showDelay": number;
840
- "targetElement"?: HTMLElement;
841
- "targetId"?: string;
971
+ /**
972
+ * Toggles the floating element visibility.
973
+ */
842
974
  "toggle": () => Promise<void>;
843
975
  /**
976
+ * @prop {TriggerType} trigger - Defines the interaction type to show/hide the floating element. 'click' toggles on click, 'hover' shows on mouse enter and hides on mouse leave, 'focus' shows on focus and hides on blur, 'manual' requires programmatic control. Default: 'click'
844
977
  * @default 'click'
845
978
  */
846
979
  "trigger": TriggerType;
847
- "updatePositioning": () => Promise<void>;
848
980
  /**
849
- * @default 1000
981
+ * Updates the position of the floating element. Useful when the trigger element moves or resizes.
982
+ */
983
+ "updatePosition": () => Promise<void>;
984
+ /**
985
+ * @prop {boolean} visible - Controls the visibility state of the floating element. Can be set programmatically or toggled by user interaction. Default: false
986
+ * @default false
850
987
  */
851
- "zIndex": number;
988
+ "visible": boolean;
852
989
  }
990
+ /**
991
+ * @component BcmModal
992
+ * @description A flexible modal dialog component built on the native HTML Dialog API.
993
+ * Provides a powerful way to display content in a layer above the page with full keyboard and focus management.
994
+ * @example ```html
995
+ * <!-- Basic usage -->
996
+ * <bcm-modal open header-text="Welcome" helper-text="Please read carefully">
997
+ * <p>Modal content goes here</p>
998
+ * <div slot="footer">
999
+ * <button data-dismiss>Close</button>
1000
+ * </div>
1001
+ * </bcm-modal>
1002
+ * <!-- Custom size and placement -->
1003
+ * <bcm-modal size="large" placement="top">
1004
+ * <div slot="header">Custom Header</div>
1005
+ * <p>Content here</p>
1006
+ * <div slot="footer">
1007
+ * <button>Cancel</button>
1008
+ * <button>Confirm</button>
1009
+ * </div>
1010
+ * </bcm-modal>
1011
+ * <!-- Full screen modal -->
1012
+ * <bcm-modal full-screen no-footer>
1013
+ * <p>Full screen content</p>
1014
+ * </bcm-modal>
1015
+ * <!-- Programmatic usage -->
1016
+ * <bcm-modal id="myModal">Content</bcm-modal>
1017
+ * <script>
1018
+ * document.getElementById('myModal').show();
1019
+ * </script>
1020
+ * ```
1021
+ */
853
1022
  interface BcmModal {
854
1023
  /**
1024
+ * Controls backdrop behavior - true: Shows backdrop, modal can be closed by clicking outside - false: No backdrop - 'static': Shows backdrop but prevents closing by clicking outside (triggers shake animation)
855
1025
  * @default true
856
1026
  */
857
1027
  "backdrop": boolean | 'static';
858
1028
  /**
1029
+ * Allows closing the modal by clicking on the backdrop
859
1030
  * @default true
860
1031
  */
861
1032
  "closeOnBackdrop": boolean;
862
1033
  /**
1034
+ * Allows closing the modal by pressing the Escape key
863
1035
  * @default true
864
1036
  */
865
1037
  "closeOnEscape": boolean;
866
1038
  /**
1039
+ * Makes the modal take the full screen (100vw x 100vh, no border radius)
867
1040
  * @default false
868
1041
  */
869
1042
  "fullScreen": boolean;
870
1043
  /**
1044
+ * Makes the modal take full width of the viewport (max-width: 100%)
871
1045
  * @default false
872
1046
  */
873
1047
  "fullWidth": boolean;
1048
+ /**
1049
+ * Text to display in the modal header
1050
+ */
874
1051
  "headerText"?: string;
1052
+ /**
1053
+ * Helper text to display below the header title
1054
+ */
875
1055
  "helperText"?: string;
1056
+ /**
1057
+ * Programmatically closes the modal
1058
+ */
876
1059
  "hide": () => Promise<void>;
877
1060
  /**
1061
+ * Hides the footer section completely
878
1062
  * @default false
879
1063
  */
880
1064
  "noFooter": boolean;
881
1065
  /**
1066
+ * Hides the header section completely
882
1067
  * @default false
883
1068
  */
884
1069
  "noHeader": boolean;
885
1070
  /**
1071
+ * Controls whether the modal is open or closed
886
1072
  * @default false
887
1073
  */
888
1074
  "open": boolean;
889
1075
  /**
1076
+ * The placement of the modal on the screen - 'center': Centered vertically and horizontally - 'top': Aligned to the top with 80px padding
890
1077
  * @default 'center'
891
1078
  */
892
1079
  "placement": ModalPlacement;
1080
+ /**
1081
+ * Programmatically opens the modal
1082
+ */
893
1083
  "show": () => Promise<void>;
894
1084
  /**
1085
+ * The size of the modal - 'small': 400px - 'medium': 600px - 'large': 800px - 'xlarge': 1024px - 'xxlarge': 1200px - 'full': 100% width
895
1086
  * @default 'medium'
896
1087
  */
897
1088
  "size": ModalSize;
1089
+ /**
1090
+ * Toggles the modal open/closed state
1091
+ */
898
1092
  "toggle": () => Promise<void>;
899
1093
  }
900
1094
  /**
901
1095
  * @component BcmPopConfirm
902
- * @description A floating confirmation pop-up component that prompts users for action confirmation, triggered by click or hover events.
903
- * Offers customizable header, body content, and footer areas through slots, with accessibility and positioning features.
904
- * @example Basic usage
905
- * <bcm-pop-confirm target-id="trigger-btn" placement="right" header-text="Confirm Action" description="Are you sure?" confirm-text="Yes" cancel-text="No" status="warning"></bcm-pop-confirm>
906
- * @example With all slots and custom styling
907
- * <bcm-pop-confirm target-id="trigger-btn" placement="left" header-text="Delete Item" description="Are you sure you want to delete this item?" confirm-text="Delete" cancel-text="Cancel" status="error" arrow-color="#ffffff">
908
- * <span slot="header">Custom Header Text</span>
909
- * <span slot="body">Additional details here</span>
910
- * <span slot="footer">Custom Footer Action</span>
1096
+ * @description A confirmation popover component that displays a confirmation dialog with customizable actions.
1097
+ * Built on the native Popover API for top-layer rendering and Floating UI for intelligent positioning.
1098
+ * Ideal for confirming destructive actions or important decisions inline.
1099
+ * @csspart container - The main popover container element
1100
+ * @csspart arrow - The arrow pointer element
1101
+ * @csspart body - The body/description section
1102
+ * @csspart footer - The footer section with action buttons
1103
+ * @example Basic Usage
1104
+ * ```html
1105
+ * <bcm-pop-confirm
1106
+ * header-text="Delete Item?"
1107
+ * description="Are you sure you want to delete this item? This action cannot be undone."
1108
+ * status="error"
1109
+ * >
1110
+ * <bcm-button status="error">Delete</bcm-button>
911
1111
  * </bcm-pop-confirm>
912
- * @example Event handling
913
- * // Listen to confirmation events
914
- * const popConfirm = document.querySelector('bcm-pop-confirm');
915
- * popConfirm.addEventListener('bcmConfirm', () => {
916
- * console.log('User confirmed the action!');
1112
+ * ```
1113
+ * @example With Event Handlers
1114
+ * ```html
1115
+ * <bcm-pop-confirm
1116
+ * id="deleteConfirm"
1117
+ * header-text="Confirm Delete"
1118
+ * description="This will permanently delete the item."
1119
+ * status="warning"
1120
+ * confirm-text="Yes, Delete"
1121
+ * cancel-text="No, Keep It"
1122
+ * >
1123
+ * <bcm-button>Delete Item</bcm-button>
1124
+ * </bcm-pop-confirm>
1125
+ * <script>
1126
+ * const popconfirm = document.getElementById('deleteConfirm');
1127
+ * popconfirm.addEventListener('bcmConfirm', () => {
1128
+ * console.log('User confirmed deletion');
1129
+ * // Perform delete operation
917
1130
  * });
918
- * popConfirm.addEventListener('bcmCancel', () => {
919
- * console.log('User canceled the action!');
1131
+ * popconfirm.addEventListener('bcmCancel', () => {
1132
+ * console.log('User cancelled deletion');
920
1133
  * });
921
- * // Programmatically control pop-up
922
- * await popConfirm.show(); // Show the pop-up
923
- * await popConfirm.hide(); // Hide the pop-up
924
- * @prop {string} arrowColor - The color of the arrow pointing to the trigger element (default: 'var(--bcm-ui-color-background-basic-panel)')
925
- * @prop {string} cancelText - Text displayed on the cancel button (default: 'Cancel')
926
- * @prop {string} confirmText - Text displayed on the confirm button (default: 'Yes')
927
- * @prop {string} description - The description or body content of the pop-up (default: '')
928
- * @prop {string} headerText - The header text displayed at the top of the pop-up (default: '')
929
- * @prop {Placement} placement - The placement position of the pop-up relative to the trigger (default: 'right')
930
- * @prop {('small' | 'medium' | 'large')} size - The size of the pop-up, determining its dimensions (default: 'medium')
931
- * @prop {('info' | 'error' | 'warning' | 'success' | 'default')} status - The status of the pop-up, affecting its icon and color (default: 'info')
932
- * @prop {boolean} statusIcon - Whether to display a status icon based on the `status` prop (default: true)
933
- * @prop {string} targetId - The ID of the trigger element (e.g., a button) that opens the pop-up
934
- * @event {EventEmitter<void>} bcmConfirm - Emitted when the user confirms the action in the pop-up
935
- * @event {EventEmitter<void>} bcmCancel - Emitted when the user cancels the action in the pop-up
936
- * @csspart container - The root container element of the pop-up
937
- * @csspart header - The header section with title and close icon
938
- * @csspart content - The main content section of the pop-up
939
- * @csspart footer - The footer section with confirm/cancel buttons
940
- * @csspart arrow - The positioning arrow pointing to the trigger
941
- * @css {string} --popover-radius - Border radius of the pop-up (default: defined in CSS)
942
- * @css {string} --popover-bg - Background color of the pop-up
943
- * @css {string} --text-color - Text color of the pop-up based on status
944
- * @methods show() - Programmatically shows the pop-up
945
- * hide() - Programmatically hides the pop-up
1134
+ * </script>
1135
+ * ```
1136
+ * @example Different Status Types
1137
+ * ```html
1138
+ * <!-- Info (default) -->
1139
+ * <bcm-pop-confirm header-text="Information" description="This is an info message">
1140
+ * <bcm-button>Info</bcm-button>
1141
+ * </bcm-pop-confirm>
1142
+ * <!-- Success -->
1143
+ * <bcm-pop-confirm status="success" header-text="Confirm Action" description="Proceed with this action?">
1144
+ * <bcm-button status="success">Proceed</bcm-button>
1145
+ * </bcm-pop-confirm>
1146
+ * <!-- Warning -->
1147
+ * <bcm-pop-confirm status="warning" header-text="Warning" description="This action may have consequences">
1148
+ * <bcm-button status="warning">Continue</bcm-button>
1149
+ * </bcm-pop-confirm>
1150
+ * <!-- Error/Danger -->
1151
+ * <bcm-pop-confirm status="error" header-text="Danger Zone" description="This is a destructive action">
1152
+ * <bcm-button status="error">Delete</bcm-button>
1153
+ * </bcm-pop-confirm>
1154
+ * ```
1155
+ * @example Custom Content with Slots
1156
+ * ```html
1157
+ * <bcm-pop-confirm status="warning">
1158
+ * <bcm-button>Custom Confirm</bcm-button>
1159
+ * <div slot="header">
1160
+ * <strong>Custom Header</strong>
1161
+ * </div>
1162
+ * <div slot="body">
1163
+ * <p>This is custom body content with <strong>HTML formatting</strong>.</p>
1164
+ * <ul>
1165
+ * <li>Point 1</li>
1166
+ * <li>Point 2</li>
1167
+ * </ul>
1168
+ * </div>
1169
+ * <div slot="footer">
1170
+ * <bcm-button kind="outline" size="small">Maybe Later</bcm-button>
1171
+ * <bcm-button status="success" size="small">Confirm</bcm-button>
1172
+ * </div>
1173
+ * </bcm-pop-confirm>
1174
+ * ```
1175
+ * @example Different Sizes
1176
+ * ```html
1177
+ * <!-- Small -->
1178
+ * <bcm-pop-confirm size="small" header-text="Small" description="Compact confirmation">
1179
+ * <bcm-button size="small">Small</bcm-button>
1180
+ * </bcm-pop-confirm>
1181
+ * <!-- Medium (default) -->
1182
+ * <bcm-pop-confirm size="medium" header-text="Medium" description="Standard confirmation">
1183
+ * <bcm-button size="medium">Medium</bcm-button>
1184
+ * </bcm-pop-confirm>
1185
+ * <!-- Large -->
1186
+ * <bcm-pop-confirm size="large" header-text="Large" description="Spacious confirmation with more room for content">
1187
+ * <bcm-button size="large">Large</bcm-button>
1188
+ * </bcm-pop-confirm>
1189
+ * ```
1190
+ * @example Programmatic Control
1191
+ * ```html
1192
+ * <bcm-pop-confirm id="myConfirm" header-text="Confirm" description="Are you sure?">
1193
+ * <bcm-button>Trigger</bcm-button>
1194
+ * </bcm-pop-confirm>
1195
+ * <bcm-button id="showBtn">Show Programmatically</bcm-button>
1196
+ * <bcm-button id="hideBtn">Hide Programmatically</bcm-button>
1197
+ * <script>
1198
+ * const popconfirm = document.getElementById('myConfirm');
1199
+ * document.getElementById('showBtn').addEventListener('click', () => {
1200
+ * popconfirm.show();
1201
+ * });
1202
+ * document.getElementById('hideBtn').addEventListener('click', () => {
1203
+ * popconfirm.hide();
1204
+ * });
1205
+ * </script>
1206
+ * ```
1207
+ * @example Without Status Icon
1208
+ * ```html
1209
+ * <bcm-pop-confirm
1210
+ * header-text="Simple Confirmation"
1211
+ * description="No status icon shown"
1212
+ * status-icon={false}
1213
+ * >
1214
+ * <bcm-button>Click Me</bcm-button>
1215
+ * </bcm-pop-confirm>
1216
+ * ```
1217
+ * @example Different Placements
1218
+ * ```html
1219
+ * <bcm-pop-confirm placement="top" header-text="Top" description="Opens above">
1220
+ * <bcm-button>Top</bcm-button>
1221
+ * </bcm-pop-confirm>
1222
+ * <bcm-pop-confirm placement="right" header-text="Right" description="Opens to the right">
1223
+ * <bcm-button>Right</bcm-button>
1224
+ * </bcm-pop-confirm>
1225
+ * <bcm-pop-confirm placement="bottom" header-text="Bottom" description="Opens below">
1226
+ * <bcm-button>Bottom</bcm-button>
1227
+ * </bcm-pop-confirm>
1228
+ * <bcm-pop-confirm placement="left" header-text="Left" description="Opens to the left">
1229
+ * <bcm-button>Left</bcm-button>
1230
+ * </bcm-pop-confirm>
1231
+ * ```
946
1232
  */
947
1233
  interface BcmPopConfirm {
948
1234
  /**
949
- * The color of the arrow pointing to the trigger element. Can be a CSS custom property or a specific color value.
950
- * @default 'var(--bcm-ui-color-background-basic-panel)'
951
- */
952
- "arrowColor": string;
953
- /**
954
- * The text displayed on the cancel button.
1235
+ * @prop {string} cancelText - Text for the cancel button. Default: 'Cancel'
955
1236
  * @default 'Cancel'
956
1237
  */
957
1238
  "cancelText": string;
958
1239
  /**
959
- * The text displayed on the confirm button.
1240
+ * @prop {boolean} closeOnEscape - Whether to close when pressing the Escape key. Default: true
1241
+ * @default true
1242
+ */
1243
+ "closeOnEscape": boolean;
1244
+ /**
1245
+ * @prop {boolean} closeOnOutsideClick - Whether to close when clicking outside the popover. Default: true
1246
+ * @default true
1247
+ */
1248
+ "closeOnOutsideClick": boolean;
1249
+ /**
1250
+ * @prop {string} confirmText - Text for the confirm button. Default: 'Yes'
960
1251
  * @default 'Yes'
961
1252
  */
962
1253
  "confirmText": string;
963
1254
  /**
964
- * The description or body content of the pop-up.
1255
+ * @prop {string} description - Description text displayed in the body section. Can be overridden by using the 'body' slot. Default: ''
965
1256
  * @default ''
966
1257
  */
967
1258
  "description": string;
968
1259
  /**
969
- * The header text displayed at the top of the pop-up.
1260
+ * @prop {string} headerText - Text displayed in the header section. Can be overridden by using the 'header' slot. Default: ''
970
1261
  * @default ''
971
1262
  */
972
1263
  "headerText": string;
973
1264
  /**
974
- * Programmatically hides the pop-up by setting `isOpen` to false.
975
- * @returns A promise that resolves when the pop-up is hidden.
1265
+ * Programmatically hides the popconfirm.
1266
+ * @returns Promise that resolves when the hide operation begins
976
1267
  */
977
1268
  "hide": () => Promise<void>;
978
1269
  /**
979
- * The placement position of the pop-up relative to the trigger element.
980
- * @default 'bottom'
1270
+ * @prop {number} offsetDistance - Distance in pixels between the popover and trigger element. Default: 12
1271
+ * @default 12
981
1272
  */
982
- "placement": Placement;
1273
+ "offsetDistance": number;
983
1274
  /**
984
- * Programmatically shows the pop-up by setting `isOpen` to true and updating its position.
985
- * @returns A promise that resolves when the pop-up is shown.
1275
+ * @prop {PopConfirmPlacement} placement - Position of the popover relative to the trigger element. Automatically flips if there's not enough space. Default: 'top'
1276
+ * @default 'top'
1277
+ */
1278
+ "placement": PopConfirmPlacement;
1279
+ /**
1280
+ * Programmatically shows the popconfirm.
1281
+ * @returns Promise that resolves when the show operation begins
986
1282
  */
987
1283
  "show": () => Promise<void>;
988
1284
  /**
989
- * The size of the pop-up, determining its dimensions and padding.
1285
+ * @prop {boolean} showArrow - Whether to show the arrow pointing to the trigger. Default: true
1286
+ * @default true
1287
+ */
1288
+ "showArrow": boolean;
1289
+ /**
1290
+ * @prop {PopConfirmSize} size - Size variant that controls padding and text size. - 'small': Compact size with minimal padding - 'medium': Standard size - 'large': Spacious size with more padding Default: 'medium'
990
1291
  * @default 'medium'
991
1292
  */
992
- "size": 'small' | 'medium' | 'large';
1293
+ "size": PopConfirmSize;
993
1294
  /**
994
- * The status of the pop-up, affecting its icon and color scheme.
1295
+ * @prop {PopConfirmStatus} status - Status type that determines the color scheme and icon. - 'info': Informational (blue) - 'success': Success/positive action (green) - 'warning': Warning/caution (yellow) - 'error': Error/destructive action (red) Default: 'info'
995
1296
  * @default 'info'
996
1297
  */
997
- "status": 'info' | 'error' | 'warning' | 'success';
1298
+ "status": PopConfirmStatus;
998
1299
  /**
999
- * Whether to display a status icon based on the `status` prop.
1300
+ * @prop {boolean} statusIcon - Whether to show the status icon in the header. Icon only shows if headerText is also provided. Default: true
1000
1301
  * @default true
1001
1302
  */
1002
1303
  "statusIcon": boolean;
1003
1304
  /**
1004
- * The ID of the trigger element (e.g., a button) that opens the pop-up.
1305
+ * Toggles the popconfirm visibility. If open, it will close. If closed, it will open.
1306
+ * @returns Promise that resolves when the toggle operation completes
1005
1307
  */
1006
- "targetId": string;
1308
+ "toggle": () => Promise<void>;
1007
1309
  }
1008
1310
  /**
1009
1311
  * @component BcmPopover
1010
1312
  * @description A flexible popover component that displays contextual information or content relative to a target element.
1011
- * Supports different sizes, trigger types (click or hover), placements (top, right, bottom, left), and can be controlled via slots or props.
1313
+ * Built on the native Popover API for top-layer rendering and Floating UI for intelligent positioning.
1314
+ * Supports different sizes, trigger types (click, hover, focus), placements, and comprehensive event system.
1012
1315
  * @example Basic Click Popover
1013
1316
  * <bcm-popover trigger="click" size="medium" placement="top">
1014
1317
  * <bcm-button>Click Me</bcm-button>
1015
1318
  * <span slot="header">Header</span>
1016
1319
  * <span slot="content">This is a simple popover content.</span>
1017
1320
  * </bcm-popover>
1018
- * @example Hover Popover with Props
1019
- * <bcm-popover trigger="hover" hover-delay="200" size="large" placement="right" header-text="Prop Header" message="This is a hover popover with props.">
1321
+ * @example Hover Popover with Delays
1322
+ * <bcm-popover trigger="hover" show-delay="200" hide-delay="100" size="large" placement="right" header-text="Prop Header" message="This is a hover popover with props.">
1020
1323
  * <bcm-button>Hover Me</bcm-button>
1021
1324
  * </bcm-popover>
1022
1325
  * @example Programmatic Control
@@ -1026,8 +1329,9 @@ export namespace Components {
1026
1329
  * </bcm-popover>
1027
1330
  * <script>
1028
1331
  * const popover = document.querySelector('#my-popover');
1029
- * popover.openPopup(); // Opens the popover
1030
- * popover.closePopup(); // Closes the popover
1332
+ * popover.show(); // Opens the popover
1333
+ * popover.hide(); // Closes the popover
1334
+ * popover.toggle(); // Toggles the popover
1031
1335
  * </script>
1032
1336
  * @csspart popover - The root popover container element, stylable for the entire popover
1033
1337
  * @csspart header - The header section of the popover, stylable for the title area
@@ -1036,48 +1340,70 @@ export namespace Components {
1036
1340
  */
1037
1341
  interface BcmPopover {
1038
1342
  /**
1039
- * @method {Promise<void>} closePopup - Programmatically closes the popover. Triggers the hidePopover logic to hide the popover with the specified hover delay (if applicable).
1040
- * @returns A promise that resolves when the popover is closed.
1343
+ * @prop {boolean} arrow - Whether to show an arrow pointing to the trigger element. Default: true
1344
+ * @default true
1345
+ */
1346
+ "arrow": boolean;
1347
+ /**
1348
+ * @prop {boolean} closeOnEscape - Whether to close the popover when pressing Escape key. Default: true
1349
+ * @default true
1350
+ */
1351
+ "closeOnEscape": boolean;
1352
+ /**
1353
+ * @prop {boolean} closeOnOutsideClick - Whether to close the popover when clicking outside. Default: true
1354
+ * @default true
1041
1355
  */
1042
- "closePopup": () => Promise<void>;
1356
+ "closeOnOutsideClick": boolean;
1043
1357
  /**
1044
1358
  * @prop {string} headerText - Custom text for the popover header. Used as fallback content if the 'header' slot is not provided.
1045
1359
  */
1046
- "headerText": string;
1360
+ "headerText"?: string;
1047
1361
  /**
1048
- * @prop {number} hoverDelay - Delay in milliseconds before showing or hiding the popover when trigger is 'hover'. Adds a delay to prevent flickering on quick mouse movements. Default: 150
1049
- * @default 150
1362
+ * Programmatically hides the popover. Respects the hideDelay prop.
1363
+ */
1364
+ "hide": () => Promise<void>;
1365
+ /**
1366
+ * @prop {number} hideDelay - Delay in milliseconds before hiding the popover. Provides a grace period for mouse movements. Default: 0
1367
+ * @default 0
1050
1368
  */
1051
- "hoverDelay": number;
1369
+ "hideDelay": number;
1052
1370
  /**
1053
1371
  * @prop {string} message - Custom text for the popover content. Used as fallback content if the 'content' slot is not provided.
1054
1372
  */
1055
- "message": string;
1373
+ "message"?: string;
1056
1374
  /**
1057
- * @prop {boolean} open - Indicates whether the popover is currently open. Can be set programmatically or toggled by user interaction. Mutable. Default: false
1375
+ * @prop {boolean} open - Controls the open state of the popover. Can be set programmatically or toggled by user interaction. Default: false
1058
1376
  * @default false
1059
1377
  */
1060
1378
  "open": boolean;
1061
- /**
1062
- * @method {Promise<void>} openPopup - Programmatically opens the popover. Triggers the showPopover logic to display the popover with the specified hover delay (if applicable).
1063
- * @returns A promise that resolves when the popover is opened.
1064
- */
1065
- "openPopup": () => Promise<void>;
1066
1379
  /**
1067
1380
  * @prop {('top' | 'right' | 'bottom' | 'left')} placement - Defines the position of the popover relative to the target element. Determines where the popover appears around the trigger element. Default: 'top'
1068
1381
  * @default 'top'
1069
1382
  */
1070
1383
  "placement": 'top' | 'right' | 'bottom' | 'left';
1384
+ /**
1385
+ * Programmatically shows the popover. Respects the showDelay prop.
1386
+ */
1387
+ "show": () => Promise<void>;
1388
+ /**
1389
+ * @prop {number} showDelay - Delay in milliseconds before showing the popover. Useful to prevent popovers from appearing on quick mouse movements. Default: 0
1390
+ * @default 0
1391
+ */
1392
+ "showDelay": number;
1071
1393
  /**
1072
1394
  * @prop {('small' | 'medium' | 'large')} size - Defines the size of the popover. Controls the text size and padding of the popover content. Default: 'medium'
1073
1395
  * @default 'medium'
1074
1396
  */
1075
1397
  "size": 'small' | 'medium' | 'large';
1076
1398
  /**
1077
- * @prop {('click' | 'hover')} trigger - Defines the interaction type to show/hide the popover. 'click' toggles on click, 'hover' shows on mouse enter and hides on mouse leave. Default: 'click'
1399
+ * Toggles the popover visibility.
1400
+ */
1401
+ "toggle": () => Promise<void>;
1402
+ /**
1403
+ * @prop {('click' | 'hover' | 'hover focus')} trigger - Defines the interaction type to show/hide the popover. 'click' toggles on click, 'hover' shows on mouse enter and hides on mouse leave, 'hover focus' combines both. Default: 'click'
1078
1404
  * @default 'click'
1079
1405
  */
1080
- "trigger": 'click' | 'hover';
1406
+ "trigger": 'click' | 'hover' | 'hover focus';
1081
1407
  }
1082
1408
  interface BcmRadio {
1083
1409
  /**
@@ -1571,59 +1897,113 @@ export namespace Components {
1571
1897
  }
1572
1898
  /**
1573
1899
  * @component BcmTooltip
1574
- * @description A lightweight tooltip component that displays brief contextual information when hovering or clicking on a target element.
1575
- * Supports different sizes, trigger types (click or hover), placements (top, right, bottom, left), and can be controlled via slots or props.
1576
- * @example Basic Hover Tooltip
1577
- * <bcm-tooltip trigger="hover" size="medium" placement="top" message="This is a tooltip.">
1578
- * <bcm-button>Hover Me</bcm-button>
1900
+ * @description A flexible tooltip component that provides contextual information on hover or click.
1901
+ * Built on the native Popover API for top-layer rendering and Floating UI for intelligent positioning.
1902
+ * Automatically handles overflow, flipping, and complex shadow DOM scenarios.
1903
+ * @example ```html
1904
+ * <!-- Basic usage with text message -->
1905
+ * <bcm-tooltip message="This is a tooltip">
1906
+ * <button>Hover me</button>
1579
1907
  * </bcm-tooltip>
1580
- * @example Click Tooltip with Programmatic Control
1581
- * <bcm-tooltip id="my-tooltip" trigger="click" message="Controlled tooltip.">
1582
- * <bcm-button>Click Me</bcm-button>
1908
+ * <!-- With custom rich content -->
1909
+ * <bcm-tooltip placement="right" size="large">
1910
+ * <button>Click me</button>
1911
+ * <div slot="content">
1912
+ * <strong>Rich content</strong>
1913
+ * <p>You can add any HTML here</p>
1914
+ * </div>
1915
+ * </bcm-tooltip>
1916
+ * <!-- Click trigger with custom delays -->
1917
+ * <bcm-tooltip trigger="click" show-delay="0" hide-delay="0">
1918
+ * <span>Click me</span>
1919
+ * </bcm-tooltip>
1920
+ * <!-- Mouse following mode -->
1921
+ * <bcm-tooltip follow={true} message="I follow your cursor!">
1922
+ * <div>Move your mouse here</div>
1923
+ * </bcm-tooltip>
1924
+ * <!-- Programmatic control -->
1925
+ * <bcm-tooltip id="myTooltip" message="Programmatic tooltip">
1926
+ * <span>Trigger</span>
1583
1927
  * </bcm-tooltip>
1584
1928
  * <script>
1585
- * const tooltip = document.querySelector('#my-tooltip');
1586
- * tooltip.openTooltip(); // Opens the tooltip
1587
- * tooltip.closeTooltip(); // Closes the tooltip
1929
+ * const tooltip = document.getElementById('myTooltip');
1930
+ * tooltip.show();
1931
+ * setTimeout(() => tooltip.hide(), 2000);
1588
1932
  * </script>
1589
- * @csspart tooltip - The root tooltip container element, stylable for the entire tooltip
1590
- * @csspart arrow - The arrow element of the tooltip, stylable for the positioning arrow
1933
+ * <!-- Custom styling with CSS parts -->
1934
+ * <style>
1935
+ * bcm-tooltip::part(tooltip) {
1936
+ * background: linear-gradient(135deg, #667eea 0%, #764ba2 100%);
1937
+ * border-radius: 12px;
1938
+ * }
1939
+ * bcm-tooltip::part(arrow) {
1940
+ * background: #667eea;
1941
+ * }
1942
+ * </style>
1943
+ * ```
1591
1944
  */
1592
1945
  interface BcmTooltip {
1593
1946
  /**
1594
- * @method {Promise<void>} closeTooltip - Programmatically closes the tooltip. Triggers the hideTooltip logic with the specified delay.
1595
- * @returns A promise that resolves when the tooltip is closed.
1947
+ * Whether to show an arrow pointing to the trigger element Note: Arrow is automatically hidden in 'follow' mode
1948
+ * @default true
1596
1949
  */
1597
- "closeTooltip": () => Promise<void>;
1950
+ "arrow": boolean;
1598
1951
  /**
1599
- * @prop {string} message - Custom text for the tooltip content. Used as fallback content if the 'tooltip' slot is not provided.
1952
+ * Disables the tooltip, preventing it from showing Useful for conditional tooltips based on application state
1953
+ * @default false
1600
1954
  */
1601
- "message": string;
1955
+ "disabled": boolean;
1602
1956
  /**
1603
- * @method {Promise<void>} openTooltip - Programmatically opens the tooltip. Triggers the showTooltip logic with the specified delay.
1604
- * @returns A promise that resolves when the tooltip is opened.
1957
+ * Makes the tooltip follow the mouse cursor When enabled: - Arrow is hidden - Tooltip position updates smoothly with cursor movement - Pointer events are disabled on tooltip to prevent interference
1958
+ * @default false
1959
+ */
1960
+ "follow": boolean;
1961
+ /**
1962
+ * Programmatically hides the tooltip Respects the hideDelay prop
1963
+ */
1964
+ "hide": () => Promise<void>;
1965
+ /**
1966
+ * Delay in milliseconds before hiding the tooltip Provides a grace period for mouse movements
1967
+ * @default 100
1968
+ */
1969
+ "hideDelay": number;
1970
+ /**
1971
+ * Simple text message to display in the tooltip Can be overridden by slotting content into the 'content' slot
1605
1972
  */
1606
- "openTooltip": () => Promise<void>;
1973
+ "message"?: string;
1607
1974
  /**
1608
- * @prop {('top' | 'right' | 'bottom' | 'left')} placement - Defines the position of the tooltip relative to the target element. Default: 'top'
1975
+ * Distance in pixels between the tooltip and the trigger element Also used as the offset in 'follow' mode
1976
+ * @default 12
1977
+ */
1978
+ "offset": number;
1979
+ /**
1980
+ * Preferred placement of the tooltip relative to the trigger Note: Tooltip will automatically flip if there's not enough space - 'top': Above the trigger element - 'right': To the right of the trigger element - 'bottom': Below the trigger element - 'left': To the left of the trigger element
1609
1981
  * @default 'top'
1610
1982
  */
1611
- "placement": 'top' | 'right' | 'bottom' | 'left';
1983
+ "placement": TooltipPlacement;
1612
1984
  /**
1613
- * @prop {number} showDelay - Delay in milliseconds before showing or hiding the tooltip. Helps prevent flickering on quick mouse movements. Default: 150
1985
+ * Programmatically shows the tooltip Respects the showDelay prop and disabled state
1986
+ */
1987
+ "show": () => Promise<void>;
1988
+ /**
1989
+ * Delay in milliseconds before showing the tooltip Useful to prevent tooltips from appearing on quick mouse movements
1614
1990
  * @default 150
1615
1991
  */
1616
1992
  "showDelay": number;
1617
1993
  /**
1618
- * @prop {('small' | 'medium' | 'large')} size - Defines the size of the tooltip. Controls the text size and padding of the tooltip content. Default: 'medium'
1994
+ * Size variant of the tooltip - 'small': Compact tooltip with minimal padding (text-size-3, py-1 px-2) - 'medium': Standard tooltip size (text-size-4, py-1.5 px-3) - 'large': Larger tooltip for more content (text-size-5, py-2 px-4)
1619
1995
  * @default 'medium'
1620
1996
  */
1621
- "size": 'small' | 'medium' | 'large';
1997
+ "size": TooltipSize;
1622
1998
  /**
1623
- * @prop {('click' | 'hover')} trigger - Defines the interaction type to show/hide the tooltip. 'click' toggles on click, 'hover' shows on mouse enter and hides on mouse leave. Default: 'hover'
1999
+ * Toggles the tooltip visibility If open, hides it; if closed, shows it
2000
+ */
2001
+ "toggle": () => Promise<void>;
2002
+ /**
2003
+ * How the tooltip is triggered - 'hover': Shows on mouse enter, hides on mouse leave - 'click': Toggles on click, closes on outside click or Escape key
1624
2004
  * @default 'hover'
1625
2005
  */
1626
- "trigger": 'click' | 'hover';
2006
+ "trigger": TooltipTrigger;
1627
2007
  }
1628
2008
  }
1629
2009
  export interface BcmAccordionCustomEvent<T> extends CustomEvent<T> {
@@ -2013,6 +2393,38 @@ declare global {
2013
2393
  "bcmBeforeOpen": void;
2014
2394
  "bcmBeforeClose": void;
2015
2395
  }
2396
+ /**
2397
+ * @component BcmDrawer
2398
+ * @description A slide-in panel component built on the native HTML Dialog API.
2399
+ * Ideal for navigation menus, forms, and contextual information that slides in from any edge of the screen.
2400
+ * @example ```html
2401
+ * <!-- Basic usage -->
2402
+ * <bcm-drawer open header-text="Menu" position="left">
2403
+ * <nav>
2404
+ * <a href="/home">Home</a>
2405
+ * <a href="/about">About</a>
2406
+ * </nav>
2407
+ * </bcm-drawer>
2408
+ * <!-- Custom size and position -->
2409
+ * <bcm-drawer size="large" position="right">
2410
+ * <div slot="header">Settings</div>
2411
+ * <form>...</form>
2412
+ * <div slot="footer">
2413
+ * <button data-dismiss>Cancel</button>
2414
+ * <button>Save</button>
2415
+ * </div>
2416
+ * </bcm-drawer>
2417
+ * <!-- Custom size with CSS units -->
2418
+ * <bcm-drawer size="600px" position="bottom">
2419
+ * <p>Custom height drawer</p>
2420
+ * </bcm-drawer>
2421
+ * <!-- Programmatic usage -->
2422
+ * <bcm-drawer id="myDrawer">Content</bcm-drawer>
2423
+ * <script>
2424
+ * document.getElementById('myDrawer').show();
2425
+ * </script>
2426
+ * ```
2427
+ */
2016
2428
  interface HTMLBcmDrawerElement extends Components.BcmDrawer, HTMLStencilElement {
2017
2429
  addEventListener<K extends keyof HTMLBcmDrawerElementEventMap>(type: K, listener: (this: HTMLBcmDrawerElement, ev: BcmDrawerCustomEvent<HTMLBcmDrawerElementEventMap[K]>) => any, options?: boolean | AddEventListenerOptions): void;
2018
2430
  addEventListener<K extends keyof DocumentEventMap>(type: K, listener: (this: Document, ev: DocumentEventMap[K]) => any, options?: boolean | AddEventListenerOptions): void;
@@ -2084,11 +2496,42 @@ declare global {
2084
2496
  new (): HTMLBcmInputElement;
2085
2497
  };
2086
2498
  interface HTMLBcmLinkedElementEventMap {
2499
+ "bcmBeforeShow": void;
2087
2500
  "bcmShow": void;
2501
+ "bcmBeforeHide": void;
2088
2502
  "bcmHide": void;
2089
2503
  "bcmShown": void;
2090
2504
  "bcmHidden": void;
2091
2505
  }
2506
+ /**
2507
+ * @component BcmLinked
2508
+ * @description A flexible linked floating element component that displays contextual content relative to a trigger element.
2509
+ * Built on the native Popover API for top-layer rendering and Floating UI for intelligent positioning.
2510
+ * Supports different trigger types (click, hover, focus, manual) and comprehensive event system.
2511
+ * @example Basic Click Trigger
2512
+ * <bcm-linked trigger="click">
2513
+ * <button slot="trigger">Click Me</button>
2514
+ * <div>Floating content here</div>
2515
+ * </bcm-linked>
2516
+ * @example Hover Trigger with Delays
2517
+ * <bcm-linked trigger="hover" show-delay="200" hide-delay="100">
2518
+ * <span slot="trigger">Hover Me</span>
2519
+ * <div>This appears on hover</div>
2520
+ * </bcm-linked>
2521
+ * @example Manual Control
2522
+ * <bcm-linked id="my-linked" trigger="manual">
2523
+ * <button slot="trigger">Trigger</button>
2524
+ * <div>Controlled content</div>
2525
+ * </bcm-linked>
2526
+ * <script>
2527
+ * const linked = document.querySelector('#my-linked');
2528
+ * linked.show(); // Opens the floating element
2529
+ * linked.hide(); // Closes the floating element
2530
+ * </script>
2531
+ * @csspart floating - The floating container element
2532
+ * @csspart arrow - The arrow element pointing to the trigger
2533
+ * @csspart content - The content wrapper element
2534
+ */
2092
2535
  interface HTMLBcmLinkedElement extends Components.BcmLinked, HTMLStencilElement {
2093
2536
  addEventListener<K extends keyof HTMLBcmLinkedElementEventMap>(type: K, listener: (this: HTMLBcmLinkedElement, ev: BcmLinkedCustomEvent<HTMLBcmLinkedElementEventMap[K]>) => any, options?: boolean | AddEventListenerOptions): void;
2094
2537
  addEventListener<K extends keyof DocumentEventMap>(type: K, listener: (this: Document, ev: DocumentEventMap[K]) => any, options?: boolean | AddEventListenerOptions): void;
@@ -2109,6 +2552,38 @@ declare global {
2109
2552
  "bcmBeforeOpen": void;
2110
2553
  "bcmBeforeClose": void;
2111
2554
  }
2555
+ /**
2556
+ * @component BcmModal
2557
+ * @description A flexible modal dialog component built on the native HTML Dialog API.
2558
+ * Provides a powerful way to display content in a layer above the page with full keyboard and focus management.
2559
+ * @example ```html
2560
+ * <!-- Basic usage -->
2561
+ * <bcm-modal open header-text="Welcome" helper-text="Please read carefully">
2562
+ * <p>Modal content goes here</p>
2563
+ * <div slot="footer">
2564
+ * <button data-dismiss>Close</button>
2565
+ * </div>
2566
+ * </bcm-modal>
2567
+ * <!-- Custom size and placement -->
2568
+ * <bcm-modal size="large" placement="top">
2569
+ * <div slot="header">Custom Header</div>
2570
+ * <p>Content here</p>
2571
+ * <div slot="footer">
2572
+ * <button>Cancel</button>
2573
+ * <button>Confirm</button>
2574
+ * </div>
2575
+ * </bcm-modal>
2576
+ * <!-- Full screen modal -->
2577
+ * <bcm-modal full-screen no-footer>
2578
+ * <p>Full screen content</p>
2579
+ * </bcm-modal>
2580
+ * <!-- Programmatic usage -->
2581
+ * <bcm-modal id="myModal">Content</bcm-modal>
2582
+ * <script>
2583
+ * document.getElementById('myModal').show();
2584
+ * </script>
2585
+ * ```
2586
+ */
2112
2587
  interface HTMLBcmModalElement extends Components.BcmModal, HTMLStencilElement {
2113
2588
  addEventListener<K extends keyof HTMLBcmModalElementEventMap>(type: K, listener: (this: HTMLBcmModalElement, ev: BcmModalCustomEvent<HTMLBcmModalElementEventMap[K]>) => any, options?: boolean | AddEventListenerOptions): void;
2114
2589
  addEventListener<K extends keyof DocumentEventMap>(type: K, listener: (this: Document, ev: DocumentEventMap[K]) => any, options?: boolean | AddEventListenerOptions): void;
@@ -2124,55 +2599,151 @@ declare global {
2124
2599
  new (): HTMLBcmModalElement;
2125
2600
  };
2126
2601
  interface HTMLBcmPopConfirmElementEventMap {
2602
+ "bcmBeforeOpen": void;
2603
+ "bcmOpen": void;
2604
+ "bcmBeforeClose": void;
2605
+ "bcmClose": void;
2127
2606
  "bcmConfirm": void;
2128
2607
  "bcmCancel": void;
2129
2608
  }
2130
2609
  /**
2131
2610
  * @component BcmPopConfirm
2132
- * @description A floating confirmation pop-up component that prompts users for action confirmation, triggered by click or hover events.
2133
- * Offers customizable header, body content, and footer areas through slots, with accessibility and positioning features.
2134
- * @example Basic usage
2135
- * <bcm-pop-confirm target-id="trigger-btn" placement="right" header-text="Confirm Action" description="Are you sure?" confirm-text="Yes" cancel-text="No" status="warning"></bcm-pop-confirm>
2136
- * @example With all slots and custom styling
2137
- * <bcm-pop-confirm target-id="trigger-btn" placement="left" header-text="Delete Item" description="Are you sure you want to delete this item?" confirm-text="Delete" cancel-text="Cancel" status="error" arrow-color="#ffffff">
2138
- * <span slot="header">Custom Header Text</span>
2139
- * <span slot="body">Additional details here</span>
2140
- * <span slot="footer">Custom Footer Action</span>
2611
+ * @description A confirmation popover component that displays a confirmation dialog with customizable actions.
2612
+ * Built on the native Popover API for top-layer rendering and Floating UI for intelligent positioning.
2613
+ * Ideal for confirming destructive actions or important decisions inline.
2614
+ * @csspart container - The main popover container element
2615
+ * @csspart arrow - The arrow pointer element
2616
+ * @csspart body - The body/description section
2617
+ * @csspart footer - The footer section with action buttons
2618
+ * @example Basic Usage
2619
+ * ```html
2620
+ * <bcm-pop-confirm
2621
+ * header-text="Delete Item?"
2622
+ * description="Are you sure you want to delete this item? This action cannot be undone."
2623
+ * status="error"
2624
+ * >
2625
+ * <bcm-button status="error">Delete</bcm-button>
2141
2626
  * </bcm-pop-confirm>
2142
- * @example Event handling
2143
- * // Listen to confirmation events
2144
- * const popConfirm = document.querySelector('bcm-pop-confirm');
2145
- * popConfirm.addEventListener('bcmConfirm', () => {
2146
- * console.log('User confirmed the action!');
2627
+ * ```
2628
+ * @example With Event Handlers
2629
+ * ```html
2630
+ * <bcm-pop-confirm
2631
+ * id="deleteConfirm"
2632
+ * header-text="Confirm Delete"
2633
+ * description="This will permanently delete the item."
2634
+ * status="warning"
2635
+ * confirm-text="Yes, Delete"
2636
+ * cancel-text="No, Keep It"
2637
+ * >
2638
+ * <bcm-button>Delete Item</bcm-button>
2639
+ * </bcm-pop-confirm>
2640
+ * <script>
2641
+ * const popconfirm = document.getElementById('deleteConfirm');
2642
+ * popconfirm.addEventListener('bcmConfirm', () => {
2643
+ * console.log('User confirmed deletion');
2644
+ * // Perform delete operation
2645
+ * });
2646
+ * popconfirm.addEventListener('bcmCancel', () => {
2647
+ * console.log('User cancelled deletion');
2648
+ * });
2649
+ * </script>
2650
+ * ```
2651
+ * @example Different Status Types
2652
+ * ```html
2653
+ * <!-- Info (default) -->
2654
+ * <bcm-pop-confirm header-text="Information" description="This is an info message">
2655
+ * <bcm-button>Info</bcm-button>
2656
+ * </bcm-pop-confirm>
2657
+ * <!-- Success -->
2658
+ * <bcm-pop-confirm status="success" header-text="Confirm Action" description="Proceed with this action?">
2659
+ * <bcm-button status="success">Proceed</bcm-button>
2660
+ * </bcm-pop-confirm>
2661
+ * <!-- Warning -->
2662
+ * <bcm-pop-confirm status="warning" header-text="Warning" description="This action may have consequences">
2663
+ * <bcm-button status="warning">Continue</bcm-button>
2664
+ * </bcm-pop-confirm>
2665
+ * <!-- Error/Danger -->
2666
+ * <bcm-pop-confirm status="error" header-text="Danger Zone" description="This is a destructive action">
2667
+ * <bcm-button status="error">Delete</bcm-button>
2668
+ * </bcm-pop-confirm>
2669
+ * ```
2670
+ * @example Custom Content with Slots
2671
+ * ```html
2672
+ * <bcm-pop-confirm status="warning">
2673
+ * <bcm-button>Custom Confirm</bcm-button>
2674
+ * <div slot="header">
2675
+ * <strong>Custom Header</strong>
2676
+ * </div>
2677
+ * <div slot="body">
2678
+ * <p>This is custom body content with <strong>HTML formatting</strong>.</p>
2679
+ * <ul>
2680
+ * <li>Point 1</li>
2681
+ * <li>Point 2</li>
2682
+ * </ul>
2683
+ * </div>
2684
+ * <div slot="footer">
2685
+ * <bcm-button kind="outline" size="small">Maybe Later</bcm-button>
2686
+ * <bcm-button status="success" size="small">Confirm</bcm-button>
2687
+ * </div>
2688
+ * </bcm-pop-confirm>
2689
+ * ```
2690
+ * @example Different Sizes
2691
+ * ```html
2692
+ * <!-- Small -->
2693
+ * <bcm-pop-confirm size="small" header-text="Small" description="Compact confirmation">
2694
+ * <bcm-button size="small">Small</bcm-button>
2695
+ * </bcm-pop-confirm>
2696
+ * <!-- Medium (default) -->
2697
+ * <bcm-pop-confirm size="medium" header-text="Medium" description="Standard confirmation">
2698
+ * <bcm-button size="medium">Medium</bcm-button>
2699
+ * </bcm-pop-confirm>
2700
+ * <!-- Large -->
2701
+ * <bcm-pop-confirm size="large" header-text="Large" description="Spacious confirmation with more room for content">
2702
+ * <bcm-button size="large">Large</bcm-button>
2703
+ * </bcm-pop-confirm>
2704
+ * ```
2705
+ * @example Programmatic Control
2706
+ * ```html
2707
+ * <bcm-pop-confirm id="myConfirm" header-text="Confirm" description="Are you sure?">
2708
+ * <bcm-button>Trigger</bcm-button>
2709
+ * </bcm-pop-confirm>
2710
+ * <bcm-button id="showBtn">Show Programmatically</bcm-button>
2711
+ * <bcm-button id="hideBtn">Hide Programmatically</bcm-button>
2712
+ * <script>
2713
+ * const popconfirm = document.getElementById('myConfirm');
2714
+ * document.getElementById('showBtn').addEventListener('click', () => {
2715
+ * popconfirm.show();
2147
2716
  * });
2148
- * popConfirm.addEventListener('bcmCancel', () => {
2149
- * console.log('User canceled the action!');
2717
+ * document.getElementById('hideBtn').addEventListener('click', () => {
2718
+ * popconfirm.hide();
2150
2719
  * });
2151
- * // Programmatically control pop-up
2152
- * await popConfirm.show(); // Show the pop-up
2153
- * await popConfirm.hide(); // Hide the pop-up
2154
- * @prop {string} arrowColor - The color of the arrow pointing to the trigger element (default: 'var(--bcm-ui-color-background-basic-panel)')
2155
- * @prop {string} cancelText - Text displayed on the cancel button (default: 'Cancel')
2156
- * @prop {string} confirmText - Text displayed on the confirm button (default: 'Yes')
2157
- * @prop {string} description - The description or body content of the pop-up (default: '')
2158
- * @prop {string} headerText - The header text displayed at the top of the pop-up (default: '')
2159
- * @prop {Placement} placement - The placement position of the pop-up relative to the trigger (default: 'right')
2160
- * @prop {('small' | 'medium' | 'large')} size - The size of the pop-up, determining its dimensions (default: 'medium')
2161
- * @prop {('info' | 'error' | 'warning' | 'success' | 'default')} status - The status of the pop-up, affecting its icon and color (default: 'info')
2162
- * @prop {boolean} statusIcon - Whether to display a status icon based on the `status` prop (default: true)
2163
- * @prop {string} targetId - The ID of the trigger element (e.g., a button) that opens the pop-up
2164
- * @event {EventEmitter<void>} bcmConfirm - Emitted when the user confirms the action in the pop-up
2165
- * @event {EventEmitter<void>} bcmCancel - Emitted when the user cancels the action in the pop-up
2166
- * @csspart container - The root container element of the pop-up
2167
- * @csspart header - The header section with title and close icon
2168
- * @csspart content - The main content section of the pop-up
2169
- * @csspart footer - The footer section with confirm/cancel buttons
2170
- * @csspart arrow - The positioning arrow pointing to the trigger
2171
- * @css {string} --popover-radius - Border radius of the pop-up (default: defined in CSS)
2172
- * @css {string} --popover-bg - Background color of the pop-up
2173
- * @css {string} --text-color - Text color of the pop-up based on status
2174
- * @methods show() - Programmatically shows the pop-up
2175
- * hide() - Programmatically hides the pop-up
2720
+ * </script>
2721
+ * ```
2722
+ * @example Without Status Icon
2723
+ * ```html
2724
+ * <bcm-pop-confirm
2725
+ * header-text="Simple Confirmation"
2726
+ * description="No status icon shown"
2727
+ * status-icon={false}
2728
+ * >
2729
+ * <bcm-button>Click Me</bcm-button>
2730
+ * </bcm-pop-confirm>
2731
+ * ```
2732
+ * @example Different Placements
2733
+ * ```html
2734
+ * <bcm-pop-confirm placement="top" header-text="Top" description="Opens above">
2735
+ * <bcm-button>Top</bcm-button>
2736
+ * </bcm-pop-confirm>
2737
+ * <bcm-pop-confirm placement="right" header-text="Right" description="Opens to the right">
2738
+ * <bcm-button>Right</bcm-button>
2739
+ * </bcm-pop-confirm>
2740
+ * <bcm-pop-confirm placement="bottom" header-text="Bottom" description="Opens below">
2741
+ * <bcm-button>Bottom</bcm-button>
2742
+ * </bcm-pop-confirm>
2743
+ * <bcm-pop-confirm placement="left" header-text="Left" description="Opens to the left">
2744
+ * <bcm-button>Left</bcm-button>
2745
+ * </bcm-pop-confirm>
2746
+ * ```
2176
2747
  */
2177
2748
  interface HTMLBcmPopConfirmElement extends Components.BcmPopConfirm, HTMLStencilElement {
2178
2749
  addEventListener<K extends keyof HTMLBcmPopConfirmElementEventMap>(type: K, listener: (this: HTMLBcmPopConfirmElement, ev: BcmPopConfirmCustomEvent<HTMLBcmPopConfirmElementEventMap[K]>) => any, options?: boolean | AddEventListenerOptions): void;
@@ -2189,21 +2760,24 @@ declare global {
2189
2760
  new (): HTMLBcmPopConfirmElement;
2190
2761
  };
2191
2762
  interface HTMLBcmPopoverElementEventMap {
2192
- "bcmPopoverOpen": void;
2193
- "bcmPopoverClose": void;
2763
+ "bcmBeforeOpen": void;
2764
+ "bcmOpen": void;
2765
+ "bcmBeforeClose": void;
2766
+ "bcmClose": void;
2194
2767
  }
2195
2768
  /**
2196
2769
  * @component BcmPopover
2197
2770
  * @description A flexible popover component that displays contextual information or content relative to a target element.
2198
- * Supports different sizes, trigger types (click or hover), placements (top, right, bottom, left), and can be controlled via slots or props.
2771
+ * Built on the native Popover API for top-layer rendering and Floating UI for intelligent positioning.
2772
+ * Supports different sizes, trigger types (click, hover, focus), placements, and comprehensive event system.
2199
2773
  * @example Basic Click Popover
2200
2774
  * <bcm-popover trigger="click" size="medium" placement="top">
2201
2775
  * <bcm-button>Click Me</bcm-button>
2202
2776
  * <span slot="header">Header</span>
2203
2777
  * <span slot="content">This is a simple popover content.</span>
2204
2778
  * </bcm-popover>
2205
- * @example Hover Popover with Props
2206
- * <bcm-popover trigger="hover" hover-delay="200" size="large" placement="right" header-text="Prop Header" message="This is a hover popover with props.">
2779
+ * @example Hover Popover with Delays
2780
+ * <bcm-popover trigger="hover" show-delay="200" hide-delay="100" size="large" placement="right" header-text="Prop Header" message="This is a hover popover with props.">
2207
2781
  * <bcm-button>Hover Me</bcm-button>
2208
2782
  * </bcm-popover>
2209
2783
  * @example Programmatic Control
@@ -2213,8 +2787,9 @@ declare global {
2213
2787
  * </bcm-popover>
2214
2788
  * <script>
2215
2789
  * const popover = document.querySelector('#my-popover');
2216
- * popover.openPopup(); // Opens the popover
2217
- * popover.closePopup(); // Closes the popover
2790
+ * popover.show(); // Opens the popover
2791
+ * popover.hide(); // Closes the popover
2792
+ * popover.toggle(); // Toggles the popover
2218
2793
  * </script>
2219
2794
  * @csspart popover - The root popover container element, stylable for the entire popover
2220
2795
  * @csspart header - The header section of the popover, stylable for the title area
@@ -2444,23 +3019,50 @@ declare global {
2444
3019
  };
2445
3020
  /**
2446
3021
  * @component BcmTooltip
2447
- * @description A lightweight tooltip component that displays brief contextual information when hovering or clicking on a target element.
2448
- * Supports different sizes, trigger types (click or hover), placements (top, right, bottom, left), and can be controlled via slots or props.
2449
- * @example Basic Hover Tooltip
2450
- * <bcm-tooltip trigger="hover" size="medium" placement="top" message="This is a tooltip.">
2451
- * <bcm-button>Hover Me</bcm-button>
3022
+ * @description A flexible tooltip component that provides contextual information on hover or click.
3023
+ * Built on the native Popover API for top-layer rendering and Floating UI for intelligent positioning.
3024
+ * Automatically handles overflow, flipping, and complex shadow DOM scenarios.
3025
+ * @example ```html
3026
+ * <!-- Basic usage with text message -->
3027
+ * <bcm-tooltip message="This is a tooltip">
3028
+ * <button>Hover me</button>
2452
3029
  * </bcm-tooltip>
2453
- * @example Click Tooltip with Programmatic Control
2454
- * <bcm-tooltip id="my-tooltip" trigger="click" message="Controlled tooltip.">
2455
- * <bcm-button>Click Me</bcm-button>
3030
+ * <!-- With custom rich content -->
3031
+ * <bcm-tooltip placement="right" size="large">
3032
+ * <button>Click me</button>
3033
+ * <div slot="content">
3034
+ * <strong>Rich content</strong>
3035
+ * <p>You can add any HTML here</p>
3036
+ * </div>
3037
+ * </bcm-tooltip>
3038
+ * <!-- Click trigger with custom delays -->
3039
+ * <bcm-tooltip trigger="click" show-delay="0" hide-delay="0">
3040
+ * <span>Click me</span>
3041
+ * </bcm-tooltip>
3042
+ * <!-- Mouse following mode -->
3043
+ * <bcm-tooltip follow={true} message="I follow your cursor!">
3044
+ * <div>Move your mouse here</div>
3045
+ * </bcm-tooltip>
3046
+ * <!-- Programmatic control -->
3047
+ * <bcm-tooltip id="myTooltip" message="Programmatic tooltip">
3048
+ * <span>Trigger</span>
2456
3049
  * </bcm-tooltip>
2457
3050
  * <script>
2458
- * const tooltip = document.querySelector('#my-tooltip');
2459
- * tooltip.openTooltip(); // Opens the tooltip
2460
- * tooltip.closeTooltip(); // Closes the tooltip
3051
+ * const tooltip = document.getElementById('myTooltip');
3052
+ * tooltip.show();
3053
+ * setTimeout(() => tooltip.hide(), 2000);
2461
3054
  * </script>
2462
- * @csspart tooltip - The root tooltip container element, stylable for the entire tooltip
2463
- * @csspart arrow - The arrow element of the tooltip, stylable for the positioning arrow
3055
+ * <!-- Custom styling with CSS parts -->
3056
+ * <style>
3057
+ * bcm-tooltip::part(tooltip) {
3058
+ * background: linear-gradient(135deg, #667eea 0%, #764ba2 100%);
3059
+ * border-radius: 12px;
3060
+ * }
3061
+ * bcm-tooltip::part(arrow) {
3062
+ * background: #667eea;
3063
+ * }
3064
+ * </style>
3065
+ * ```
2464
3066
  */
2465
3067
  interface HTMLBcmTooltipElement extends Components.BcmTooltip, HTMLStencilElement {
2466
3068
  }
@@ -2975,6 +3577,11 @@ declare namespace LocalJSX {
2975
3577
  * @default false
2976
3578
  */
2977
3579
  "error"?: boolean;
3580
+ /**
3581
+ * Full width checkbox
3582
+ * @default false
3583
+ */
3584
+ "fullWidth"?: boolean;
2978
3585
  /**
2979
3586
  * Determines if the checkbox is in an indeterminate state. This is useful when some items in a group of checkboxes are selected and others are not.
2980
3587
  * @default false
@@ -3086,29 +3693,110 @@ declare namespace LocalJSX {
3086
3693
  */
3087
3694
  "variant"?: 'solid' | 'dashed' | 'dotted';
3088
3695
  }
3696
+ /**
3697
+ * @component BcmDrawer
3698
+ * @description A slide-in panel component built on the native HTML Dialog API.
3699
+ * Ideal for navigation menus, forms, and contextual information that slides in from any edge of the screen.
3700
+ * @example ```html
3701
+ * <!-- Basic usage -->
3702
+ * <bcm-drawer open header-text="Menu" position="left">
3703
+ * <nav>
3704
+ * <a href="/home">Home</a>
3705
+ * <a href="/about">About</a>
3706
+ * </nav>
3707
+ * </bcm-drawer>
3708
+ * <!-- Custom size and position -->
3709
+ * <bcm-drawer size="large" position="right">
3710
+ * <div slot="header">Settings</div>
3711
+ * <form>...</form>
3712
+ * <div slot="footer">
3713
+ * <button data-dismiss>Cancel</button>
3714
+ * <button>Save</button>
3715
+ * </div>
3716
+ * </bcm-drawer>
3717
+ * <!-- Custom size with CSS units -->
3718
+ * <bcm-drawer size="600px" position="bottom">
3719
+ * <p>Custom height drawer</p>
3720
+ * </bcm-drawer>
3721
+ * <!-- Programmatic usage -->
3722
+ * <bcm-drawer id="myDrawer">Content</bcm-drawer>
3723
+ * <script>
3724
+ * document.getElementById('myDrawer').show();
3725
+ * </script>
3726
+ * ```
3727
+ */
3089
3728
  interface BcmDrawer {
3090
3729
  /**
3730
+ * Controls backdrop behavior - true: Shows backdrop, drawer can be closed by clicking outside - false: No backdrop - 'static': Shows backdrop but prevents closing by clicking outside (triggers shake animation)
3731
+ * @default true
3732
+ */
3733
+ "backdrop"?: boolean | 'static';
3734
+ /**
3735
+ * Allows closing the drawer by clicking on the backdrop
3736
+ * @default true
3737
+ */
3738
+ "closeOnBackdrop"?: boolean;
3739
+ /**
3740
+ * Allows closing the drawer by pressing the Escape key
3741
+ * @default true
3742
+ */
3743
+ "closeOnEscape"?: boolean;
3744
+ /**
3745
+ * Makes the drawer take the full screen (100vw x 100vh)
3746
+ * @default false
3747
+ */
3748
+ "fullScreen"?: boolean;
3749
+ /**
3750
+ * Makes the drawer take full width (for left/right) or full height (for top/bottom)
3091
3751
  * @default false
3092
3752
  */
3093
3753
  "fullWidth"?: boolean;
3754
+ /**
3755
+ * Text to display in the drawer header
3756
+ */
3094
3757
  "headerText"?: string;
3095
3758
  /**
3759
+ * Helper text to display below the header title
3760
+ */
3761
+ "helperText"?: string;
3762
+ /**
3763
+ * Hides the footer section completely
3764
+ * @default false
3765
+ */
3766
+ "noFooter"?: boolean;
3767
+ /**
3768
+ * Hides the header section completely
3096
3769
  * @default false
3097
3770
  */
3098
3771
  "noHeader"?: boolean;
3772
+ /**
3773
+ * Emitted before the drawer closes. Can be cancelled by calling event.preventDefault()
3774
+ */
3099
3775
  "onBcmBeforeClose"?: (event: BcmDrawerCustomEvent<void>) => void;
3776
+ /**
3777
+ * Emitted before the drawer opens. Can be cancelled by calling event.preventDefault()
3778
+ */
3100
3779
  "onBcmBeforeOpen"?: (event: BcmDrawerCustomEvent<void>) => void;
3780
+ /**
3781
+ * Emitted after the drawer has closed
3782
+ */
3101
3783
  "onBcmClose"?: (event: BcmDrawerCustomEvent<void>) => void;
3784
+ /**
3785
+ * Emitted after the drawer has opened
3786
+ */
3102
3787
  "onBcmOpen"?: (event: BcmDrawerCustomEvent<void>) => void;
3103
3788
  /**
3789
+ * Controls whether the drawer is open or closed
3104
3790
  * @default false
3105
3791
  */
3106
3792
  "open"?: boolean;
3107
3793
  /**
3794
+ * The position where the drawer slides in from - 'left': Slides from the left edge - 'right': Slides from the right edge - 'top': Slides from the top edge - 'bottom': Slides from the bottom edge
3108
3795
  * @default 'right'
3109
3796
  */
3110
3797
  "position"?: DrawerPosition;
3111
3798
  /**
3799
+ * The size of the drawer. Can be a preset value or a custom CSS size - For left/right drawers: - 'small': 320px - 'medium': 480px - 'large': 1064px - For top/bottom drawers: - 'small': 40vh - 'medium': 60vh - 'large': 90vh - Custom values: Any valid CSS size (e.g., '600px', '50%', '30rem', '80vw')
3112
3800
  * @default 'medium'
3113
3801
  */
3114
3802
  "size"?: DrawerSize;
@@ -3261,220 +3949,457 @@ declare namespace LocalJSX {
3261
3949
  */
3262
3950
  "value"?: string;
3263
3951
  }
3952
+ /**
3953
+ * @component BcmLinked
3954
+ * @description A flexible linked floating element component that displays contextual content relative to a trigger element.
3955
+ * Built on the native Popover API for top-layer rendering and Floating UI for intelligent positioning.
3956
+ * Supports different trigger types (click, hover, focus, manual) and comprehensive event system.
3957
+ * @example Basic Click Trigger
3958
+ * <bcm-linked trigger="click">
3959
+ * <button slot="trigger">Click Me</button>
3960
+ * <div>Floating content here</div>
3961
+ * </bcm-linked>
3962
+ * @example Hover Trigger with Delays
3963
+ * <bcm-linked trigger="hover" show-delay="200" hide-delay="100">
3964
+ * <span slot="trigger">Hover Me</span>
3965
+ * <div>This appears on hover</div>
3966
+ * </bcm-linked>
3967
+ * @example Manual Control
3968
+ * <bcm-linked id="my-linked" trigger="manual">
3969
+ * <button slot="trigger">Trigger</button>
3970
+ * <div>Controlled content</div>
3971
+ * </bcm-linked>
3972
+ * <script>
3973
+ * const linked = document.querySelector('#my-linked');
3974
+ * linked.show(); // Opens the floating element
3975
+ * linked.hide(); // Closes the floating element
3976
+ * </script>
3977
+ * @csspart floating - The floating container element
3978
+ * @csspart arrow - The arrow element pointing to the trigger
3979
+ * @csspart content - The content wrapper element
3980
+ */
3264
3981
  interface BcmLinked {
3265
3982
  /**
3266
- * @default false
3267
- */
3268
- "appendToBody"?: boolean;
3269
- /**
3270
- * @default false
3983
+ * @prop {boolean} closeOnEscape - Whether to close when pressing Escape key. Default: true
3984
+ * @default true
3271
3985
  */
3272
- "arrow"?: boolean;
3986
+ "closeOnEscape"?: boolean;
3273
3987
  /**
3274
- * @default false
3988
+ * @prop {boolean} closeOnOutsideClick - Whether to close when clicking outside. Default: true
3989
+ * @default true
3275
3990
  */
3276
- "destroyOnHide"?: boolean;
3991
+ "closeOnOutsideClick"?: boolean;
3277
3992
  /**
3993
+ * @prop {boolean} disabled - Disables the floating element, preventing it from showing. Default: false
3278
3994
  * @default false
3279
3995
  */
3280
3996
  "disabled"?: boolean;
3281
3997
  /**
3998
+ * @prop {number} hideDelay - Delay in milliseconds before hiding the floating element. Default: 0
3282
3999
  * @default 0
3283
4000
  */
3284
4001
  "hideDelay"?: number;
3285
4002
  /**
4003
+ * @prop {number} offsetDistance - Distance in pixels between the floating element and the trigger. Default: 8
3286
4004
  * @default 8
3287
4005
  */
3288
- "offset"?: number;
4006
+ "offsetDistance"?: number;
4007
+ /**
4008
+ * @event bcmBeforeHide - Emitted before the floating element hides.
4009
+ */
4010
+ "onBcmBeforeHide"?: (event: BcmLinkedCustomEvent<void>) => void;
4011
+ /**
4012
+ * @event bcmBeforeShow - Emitted before the floating element shows.
4013
+ */
4014
+ "onBcmBeforeShow"?: (event: BcmLinkedCustomEvent<void>) => void;
4015
+ /**
4016
+ * @event bcmHidden - Emitted after the floating element is fully hidden (after animation).
4017
+ */
3289
4018
  "onBcmHidden"?: (event: BcmLinkedCustomEvent<void>) => void;
4019
+ /**
4020
+ * @event bcmHide - Emitted when the floating element is hidden.
4021
+ */
3290
4022
  "onBcmHide"?: (event: BcmLinkedCustomEvent<void>) => void;
4023
+ /**
4024
+ * @event bcmShow - Emitted when the floating element is shown.
4025
+ */
3291
4026
  "onBcmShow"?: (event: BcmLinkedCustomEvent<void>) => void;
4027
+ /**
4028
+ * @event bcmShown - Emitted after the floating element is fully shown (after animation).
4029
+ */
3292
4030
  "onBcmShown"?: (event: BcmLinkedCustomEvent<void>) => void;
3293
4031
  /**
4032
+ * @prop {Placement} placement - Defines the position of the floating element relative to the trigger. Default: 'bottom-start'
3294
4033
  * @default 'bottom-start'
3295
4034
  */
3296
4035
  "placement"?: Placement;
3297
4036
  /**
4037
+ * @prop {boolean} showArrow - Whether to show an arrow pointing to the trigger element. Default: true
4038
+ * @default true
4039
+ */
4040
+ "showArrow"?: boolean;
4041
+ /**
4042
+ * @prop {number} showDelay - Delay in milliseconds before showing the floating element. Default: 0
3298
4043
  * @default 0
3299
4044
  */
3300
4045
  "showDelay"?: number;
3301
- "targetElement"?: HTMLElement;
3302
- "targetId"?: string;
3303
4046
  /**
4047
+ * @prop {TriggerType} trigger - Defines the interaction type to show/hide the floating element. 'click' toggles on click, 'hover' shows on mouse enter and hides on mouse leave, 'focus' shows on focus and hides on blur, 'manual' requires programmatic control. Default: 'click'
3304
4048
  * @default 'click'
3305
4049
  */
3306
4050
  "trigger"?: TriggerType;
3307
4051
  /**
3308
- * @default 1000
4052
+ * @prop {boolean} visible - Controls the visibility state of the floating element. Can be set programmatically or toggled by user interaction. Default: false
4053
+ * @default false
3309
4054
  */
3310
- "zIndex"?: number;
4055
+ "visible"?: boolean;
3311
4056
  }
4057
+ /**
4058
+ * @component BcmModal
4059
+ * @description A flexible modal dialog component built on the native HTML Dialog API.
4060
+ * Provides a powerful way to display content in a layer above the page with full keyboard and focus management.
4061
+ * @example ```html
4062
+ * <!-- Basic usage -->
4063
+ * <bcm-modal open header-text="Welcome" helper-text="Please read carefully">
4064
+ * <p>Modal content goes here</p>
4065
+ * <div slot="footer">
4066
+ * <button data-dismiss>Close</button>
4067
+ * </div>
4068
+ * </bcm-modal>
4069
+ * <!-- Custom size and placement -->
4070
+ * <bcm-modal size="large" placement="top">
4071
+ * <div slot="header">Custom Header</div>
4072
+ * <p>Content here</p>
4073
+ * <div slot="footer">
4074
+ * <button>Cancel</button>
4075
+ * <button>Confirm</button>
4076
+ * </div>
4077
+ * </bcm-modal>
4078
+ * <!-- Full screen modal -->
4079
+ * <bcm-modal full-screen no-footer>
4080
+ * <p>Full screen content</p>
4081
+ * </bcm-modal>
4082
+ * <!-- Programmatic usage -->
4083
+ * <bcm-modal id="myModal">Content</bcm-modal>
4084
+ * <script>
4085
+ * document.getElementById('myModal').show();
4086
+ * </script>
4087
+ * ```
4088
+ */
3312
4089
  interface BcmModal {
3313
4090
  /**
4091
+ * Controls backdrop behavior - true: Shows backdrop, modal can be closed by clicking outside - false: No backdrop - 'static': Shows backdrop but prevents closing by clicking outside (triggers shake animation)
3314
4092
  * @default true
3315
4093
  */
3316
4094
  "backdrop"?: boolean | 'static';
3317
4095
  /**
4096
+ * Allows closing the modal by clicking on the backdrop
3318
4097
  * @default true
3319
4098
  */
3320
4099
  "closeOnBackdrop"?: boolean;
3321
4100
  /**
4101
+ * Allows closing the modal by pressing the Escape key
3322
4102
  * @default true
3323
4103
  */
3324
4104
  "closeOnEscape"?: boolean;
3325
4105
  /**
4106
+ * Makes the modal take the full screen (100vw x 100vh, no border radius)
3326
4107
  * @default false
3327
4108
  */
3328
4109
  "fullScreen"?: boolean;
3329
4110
  /**
4111
+ * Makes the modal take full width of the viewport (max-width: 100%)
3330
4112
  * @default false
3331
4113
  */
3332
4114
  "fullWidth"?: boolean;
4115
+ /**
4116
+ * Text to display in the modal header
4117
+ */
3333
4118
  "headerText"?: string;
4119
+ /**
4120
+ * Helper text to display below the header title
4121
+ */
3334
4122
  "helperText"?: string;
3335
4123
  /**
4124
+ * Hides the footer section completely
3336
4125
  * @default false
3337
4126
  */
3338
4127
  "noFooter"?: boolean;
3339
4128
  /**
4129
+ * Hides the header section completely
3340
4130
  * @default false
3341
4131
  */
3342
4132
  "noHeader"?: boolean;
4133
+ /**
4134
+ * Emitted before the modal closes. Can be cancelled by calling event.preventDefault()
4135
+ */
3343
4136
  "onBcmBeforeClose"?: (event: BcmModalCustomEvent<void>) => void;
4137
+ /**
4138
+ * Emitted before the modal opens. Can be cancelled by calling event.preventDefault()
4139
+ */
3344
4140
  "onBcmBeforeOpen"?: (event: BcmModalCustomEvent<void>) => void;
4141
+ /**
4142
+ * Emitted after the modal has closed
4143
+ */
3345
4144
  "onBcmClose"?: (event: BcmModalCustomEvent<void>) => void;
4145
+ /**
4146
+ * Emitted after the modal has opened
4147
+ */
3346
4148
  "onBcmOpen"?: (event: BcmModalCustomEvent<void>) => void;
3347
4149
  /**
4150
+ * Controls whether the modal is open or closed
3348
4151
  * @default false
3349
4152
  */
3350
4153
  "open"?: boolean;
3351
4154
  /**
4155
+ * The placement of the modal on the screen - 'center': Centered vertically and horizontally - 'top': Aligned to the top with 80px padding
3352
4156
  * @default 'center'
3353
4157
  */
3354
4158
  "placement"?: ModalPlacement;
3355
4159
  /**
4160
+ * The size of the modal - 'small': 400px - 'medium': 600px - 'large': 800px - 'xlarge': 1024px - 'xxlarge': 1200px - 'full': 100% width
3356
4161
  * @default 'medium'
3357
4162
  */
3358
4163
  "size"?: ModalSize;
3359
4164
  }
3360
4165
  /**
3361
4166
  * @component BcmPopConfirm
3362
- * @description A floating confirmation pop-up component that prompts users for action confirmation, triggered by click or hover events.
3363
- * Offers customizable header, body content, and footer areas through slots, with accessibility and positioning features.
3364
- * @example Basic usage
3365
- * <bcm-pop-confirm target-id="trigger-btn" placement="right" header-text="Confirm Action" description="Are you sure?" confirm-text="Yes" cancel-text="No" status="warning"></bcm-pop-confirm>
3366
- * @example With all slots and custom styling
3367
- * <bcm-pop-confirm target-id="trigger-btn" placement="left" header-text="Delete Item" description="Are you sure you want to delete this item?" confirm-text="Delete" cancel-text="Cancel" status="error" arrow-color="#ffffff">
3368
- * <span slot="header">Custom Header Text</span>
3369
- * <span slot="body">Additional details here</span>
3370
- * <span slot="footer">Custom Footer Action</span>
4167
+ * @description A confirmation popover component that displays a confirmation dialog with customizable actions.
4168
+ * Built on the native Popover API for top-layer rendering and Floating UI for intelligent positioning.
4169
+ * Ideal for confirming destructive actions or important decisions inline.
4170
+ * @csspart container - The main popover container element
4171
+ * @csspart arrow - The arrow pointer element
4172
+ * @csspart body - The body/description section
4173
+ * @csspart footer - The footer section with action buttons
4174
+ * @example Basic Usage
4175
+ * ```html
4176
+ * <bcm-pop-confirm
4177
+ * header-text="Delete Item?"
4178
+ * description="Are you sure you want to delete this item? This action cannot be undone."
4179
+ * status="error"
4180
+ * >
4181
+ * <bcm-button status="error">Delete</bcm-button>
3371
4182
  * </bcm-pop-confirm>
3372
- * @example Event handling
3373
- * // Listen to confirmation events
3374
- * const popConfirm = document.querySelector('bcm-pop-confirm');
3375
- * popConfirm.addEventListener('bcmConfirm', () => {
3376
- * console.log('User confirmed the action!');
4183
+ * ```
4184
+ * @example With Event Handlers
4185
+ * ```html
4186
+ * <bcm-pop-confirm
4187
+ * id="deleteConfirm"
4188
+ * header-text="Confirm Delete"
4189
+ * description="This will permanently delete the item."
4190
+ * status="warning"
4191
+ * confirm-text="Yes, Delete"
4192
+ * cancel-text="No, Keep It"
4193
+ * >
4194
+ * <bcm-button>Delete Item</bcm-button>
4195
+ * </bcm-pop-confirm>
4196
+ * <script>
4197
+ * const popconfirm = document.getElementById('deleteConfirm');
4198
+ * popconfirm.addEventListener('bcmConfirm', () => {
4199
+ * console.log('User confirmed deletion');
4200
+ * // Perform delete operation
3377
4201
  * });
3378
- * popConfirm.addEventListener('bcmCancel', () => {
3379
- * console.log('User canceled the action!');
4202
+ * popconfirm.addEventListener('bcmCancel', () => {
4203
+ * console.log('User cancelled deletion');
3380
4204
  * });
3381
- * // Programmatically control pop-up
3382
- * await popConfirm.show(); // Show the pop-up
3383
- * await popConfirm.hide(); // Hide the pop-up
3384
- * @prop {string} arrowColor - The color of the arrow pointing to the trigger element (default: 'var(--bcm-ui-color-background-basic-panel)')
3385
- * @prop {string} cancelText - Text displayed on the cancel button (default: 'Cancel')
3386
- * @prop {string} confirmText - Text displayed on the confirm button (default: 'Yes')
3387
- * @prop {string} description - The description or body content of the pop-up (default: '')
3388
- * @prop {string} headerText - The header text displayed at the top of the pop-up (default: '')
3389
- * @prop {Placement} placement - The placement position of the pop-up relative to the trigger (default: 'right')
3390
- * @prop {('small' | 'medium' | 'large')} size - The size of the pop-up, determining its dimensions (default: 'medium')
3391
- * @prop {('info' | 'error' | 'warning' | 'success' | 'default')} status - The status of the pop-up, affecting its icon and color (default: 'info')
3392
- * @prop {boolean} statusIcon - Whether to display a status icon based on the `status` prop (default: true)
3393
- * @prop {string} targetId - The ID of the trigger element (e.g., a button) that opens the pop-up
3394
- * @event {EventEmitter<void>} bcmConfirm - Emitted when the user confirms the action in the pop-up
3395
- * @event {EventEmitter<void>} bcmCancel - Emitted when the user cancels the action in the pop-up
3396
- * @csspart container - The root container element of the pop-up
3397
- * @csspart header - The header section with title and close icon
3398
- * @csspart content - The main content section of the pop-up
3399
- * @csspart footer - The footer section with confirm/cancel buttons
3400
- * @csspart arrow - The positioning arrow pointing to the trigger
3401
- * @css {string} --popover-radius - Border radius of the pop-up (default: defined in CSS)
3402
- * @css {string} --popover-bg - Background color of the pop-up
3403
- * @css {string} --text-color - Text color of the pop-up based on status
3404
- * @methods show() - Programmatically shows the pop-up
3405
- * hide() - Programmatically hides the pop-up
4205
+ * </script>
4206
+ * ```
4207
+ * @example Different Status Types
4208
+ * ```html
4209
+ * <!-- Info (default) -->
4210
+ * <bcm-pop-confirm header-text="Information" description="This is an info message">
4211
+ * <bcm-button>Info</bcm-button>
4212
+ * </bcm-pop-confirm>
4213
+ * <!-- Success -->
4214
+ * <bcm-pop-confirm status="success" header-text="Confirm Action" description="Proceed with this action?">
4215
+ * <bcm-button status="success">Proceed</bcm-button>
4216
+ * </bcm-pop-confirm>
4217
+ * <!-- Warning -->
4218
+ * <bcm-pop-confirm status="warning" header-text="Warning" description="This action may have consequences">
4219
+ * <bcm-button status="warning">Continue</bcm-button>
4220
+ * </bcm-pop-confirm>
4221
+ * <!-- Error/Danger -->
4222
+ * <bcm-pop-confirm status="error" header-text="Danger Zone" description="This is a destructive action">
4223
+ * <bcm-button status="error">Delete</bcm-button>
4224
+ * </bcm-pop-confirm>
4225
+ * ```
4226
+ * @example Custom Content with Slots
4227
+ * ```html
4228
+ * <bcm-pop-confirm status="warning">
4229
+ * <bcm-button>Custom Confirm</bcm-button>
4230
+ * <div slot="header">
4231
+ * <strong>Custom Header</strong>
4232
+ * </div>
4233
+ * <div slot="body">
4234
+ * <p>This is custom body content with <strong>HTML formatting</strong>.</p>
4235
+ * <ul>
4236
+ * <li>Point 1</li>
4237
+ * <li>Point 2</li>
4238
+ * </ul>
4239
+ * </div>
4240
+ * <div slot="footer">
4241
+ * <bcm-button kind="outline" size="small">Maybe Later</bcm-button>
4242
+ * <bcm-button status="success" size="small">Confirm</bcm-button>
4243
+ * </div>
4244
+ * </bcm-pop-confirm>
4245
+ * ```
4246
+ * @example Different Sizes
4247
+ * ```html
4248
+ * <!-- Small -->
4249
+ * <bcm-pop-confirm size="small" header-text="Small" description="Compact confirmation">
4250
+ * <bcm-button size="small">Small</bcm-button>
4251
+ * </bcm-pop-confirm>
4252
+ * <!-- Medium (default) -->
4253
+ * <bcm-pop-confirm size="medium" header-text="Medium" description="Standard confirmation">
4254
+ * <bcm-button size="medium">Medium</bcm-button>
4255
+ * </bcm-pop-confirm>
4256
+ * <!-- Large -->
4257
+ * <bcm-pop-confirm size="large" header-text="Large" description="Spacious confirmation with more room for content">
4258
+ * <bcm-button size="large">Large</bcm-button>
4259
+ * </bcm-pop-confirm>
4260
+ * ```
4261
+ * @example Programmatic Control
4262
+ * ```html
4263
+ * <bcm-pop-confirm id="myConfirm" header-text="Confirm" description="Are you sure?">
4264
+ * <bcm-button>Trigger</bcm-button>
4265
+ * </bcm-pop-confirm>
4266
+ * <bcm-button id="showBtn">Show Programmatically</bcm-button>
4267
+ * <bcm-button id="hideBtn">Hide Programmatically</bcm-button>
4268
+ * <script>
4269
+ * const popconfirm = document.getElementById('myConfirm');
4270
+ * document.getElementById('showBtn').addEventListener('click', () => {
4271
+ * popconfirm.show();
4272
+ * });
4273
+ * document.getElementById('hideBtn').addEventListener('click', () => {
4274
+ * popconfirm.hide();
4275
+ * });
4276
+ * </script>
4277
+ * ```
4278
+ * @example Without Status Icon
4279
+ * ```html
4280
+ * <bcm-pop-confirm
4281
+ * header-text="Simple Confirmation"
4282
+ * description="No status icon shown"
4283
+ * status-icon={false}
4284
+ * >
4285
+ * <bcm-button>Click Me</bcm-button>
4286
+ * </bcm-pop-confirm>
4287
+ * ```
4288
+ * @example Different Placements
4289
+ * ```html
4290
+ * <bcm-pop-confirm placement="top" header-text="Top" description="Opens above">
4291
+ * <bcm-button>Top</bcm-button>
4292
+ * </bcm-pop-confirm>
4293
+ * <bcm-pop-confirm placement="right" header-text="Right" description="Opens to the right">
4294
+ * <bcm-button>Right</bcm-button>
4295
+ * </bcm-pop-confirm>
4296
+ * <bcm-pop-confirm placement="bottom" header-text="Bottom" description="Opens below">
4297
+ * <bcm-button>Bottom</bcm-button>
4298
+ * </bcm-pop-confirm>
4299
+ * <bcm-pop-confirm placement="left" header-text="Left" description="Opens to the left">
4300
+ * <bcm-button>Left</bcm-button>
4301
+ * </bcm-pop-confirm>
4302
+ * ```
3406
4303
  */
3407
4304
  interface BcmPopConfirm {
3408
4305
  /**
3409
- * The color of the arrow pointing to the trigger element. Can be a CSS custom property or a specific color value.
3410
- * @default 'var(--bcm-ui-color-background-basic-panel)'
3411
- */
3412
- "arrowColor"?: string;
3413
- /**
3414
- * The text displayed on the cancel button.
4306
+ * @prop {string} cancelText - Text for the cancel button. Default: 'Cancel'
3415
4307
  * @default 'Cancel'
3416
4308
  */
3417
4309
  "cancelText"?: string;
3418
4310
  /**
3419
- * The text displayed on the confirm button.
4311
+ * @prop {boolean} closeOnEscape - Whether to close when pressing the Escape key. Default: true
4312
+ * @default true
4313
+ */
4314
+ "closeOnEscape"?: boolean;
4315
+ /**
4316
+ * @prop {boolean} closeOnOutsideClick - Whether to close when clicking outside the popover. Default: true
4317
+ * @default true
4318
+ */
4319
+ "closeOnOutsideClick"?: boolean;
4320
+ /**
4321
+ * @prop {string} confirmText - Text for the confirm button. Default: 'Yes'
3420
4322
  * @default 'Yes'
3421
4323
  */
3422
4324
  "confirmText"?: string;
3423
4325
  /**
3424
- * The description or body content of the pop-up.
4326
+ * @prop {string} description - Description text displayed in the body section. Can be overridden by using the 'body' slot. Default: ''
3425
4327
  * @default ''
3426
4328
  */
3427
4329
  "description"?: string;
3428
4330
  /**
3429
- * The header text displayed at the top of the pop-up.
4331
+ * @prop {string} headerText - Text displayed in the header section. Can be overridden by using the 'header' slot. Default: ''
3430
4332
  * @default ''
3431
4333
  */
3432
4334
  "headerText"?: string;
3433
4335
  /**
3434
- * Emits an event when the user cancels the action in the pop-up.
4336
+ * @prop {number} offsetDistance - Distance in pixels between the popover and trigger element. Default: 12
4337
+ * @default 12
4338
+ */
4339
+ "offsetDistance"?: number;
4340
+ /**
4341
+ * @event bcmBeforeClose - Emitted before the popover closes. Useful for performing cleanup actions before hiding.
4342
+ */
4343
+ "onBcmBeforeClose"?: (event: BcmPopConfirmCustomEvent<void>) => void;
4344
+ /**
4345
+ * @event bcmBeforeOpen - Emitted before the popover opens. Useful for performing actions before the popover becomes visible.
4346
+ */
4347
+ "onBcmBeforeOpen"?: (event: BcmPopConfirmCustomEvent<void>) => void;
4348
+ /**
4349
+ * @event bcmCancel - Emitted when the user clicks cancel, presses Escape, or clicks outside. Useful for tracking when the user dismisses the confirmation.
3435
4350
  */
3436
4351
  "onBcmCancel"?: (event: BcmPopConfirmCustomEvent<void>) => void;
3437
4352
  /**
3438
- * Emits an event when the user confirms the action in the pop-up.
4353
+ * @event bcmClose - Emitted when the popover is closed. Useful for tracking when the popover is hidden.
4354
+ */
4355
+ "onBcmClose"?: (event: BcmPopConfirmCustomEvent<void>) => void;
4356
+ /**
4357
+ * @event bcmConfirm - Emitted when the user clicks the confirm button. This is where you should handle the confirmed action.
3439
4358
  */
3440
4359
  "onBcmConfirm"?: (event: BcmPopConfirmCustomEvent<void>) => void;
3441
4360
  /**
3442
- * The placement position of the pop-up relative to the trigger element.
3443
- * @default 'bottom'
4361
+ * @event bcmOpen - Emitted when the popover is opened. Useful for tracking when the popover becomes visible.
3444
4362
  */
3445
- "placement"?: Placement;
4363
+ "onBcmOpen"?: (event: BcmPopConfirmCustomEvent<void>) => void;
4364
+ /**
4365
+ * @prop {PopConfirmPlacement} placement - Position of the popover relative to the trigger element. Automatically flips if there's not enough space. Default: 'top'
4366
+ * @default 'top'
4367
+ */
4368
+ "placement"?: PopConfirmPlacement;
4369
+ /**
4370
+ * @prop {boolean} showArrow - Whether to show the arrow pointing to the trigger. Default: true
4371
+ * @default true
4372
+ */
4373
+ "showArrow"?: boolean;
3446
4374
  /**
3447
- * The size of the pop-up, determining its dimensions and padding.
4375
+ * @prop {PopConfirmSize} size - Size variant that controls padding and text size. - 'small': Compact size with minimal padding - 'medium': Standard size - 'large': Spacious size with more padding Default: 'medium'
3448
4376
  * @default 'medium'
3449
4377
  */
3450
- "size"?: 'small' | 'medium' | 'large';
4378
+ "size"?: PopConfirmSize;
3451
4379
  /**
3452
- * The status of the pop-up, affecting its icon and color scheme.
4380
+ * @prop {PopConfirmStatus} status - Status type that determines the color scheme and icon. - 'info': Informational (blue) - 'success': Success/positive action (green) - 'warning': Warning/caution (yellow) - 'error': Error/destructive action (red) Default: 'info'
3453
4381
  * @default 'info'
3454
4382
  */
3455
- "status"?: 'info' | 'error' | 'warning' | 'success';
4383
+ "status"?: PopConfirmStatus;
3456
4384
  /**
3457
- * Whether to display a status icon based on the `status` prop.
4385
+ * @prop {boolean} statusIcon - Whether to show the status icon in the header. Icon only shows if headerText is also provided. Default: true
3458
4386
  * @default true
3459
4387
  */
3460
4388
  "statusIcon"?: boolean;
3461
- /**
3462
- * The ID of the trigger element (e.g., a button) that opens the pop-up.
3463
- */
3464
- "targetId"?: string;
3465
4389
  }
3466
4390
  /**
3467
4391
  * @component BcmPopover
3468
4392
  * @description A flexible popover component that displays contextual information or content relative to a target element.
3469
- * Supports different sizes, trigger types (click or hover), placements (top, right, bottom, left), and can be controlled via slots or props.
4393
+ * Built on the native Popover API for top-layer rendering and Floating UI for intelligent positioning.
4394
+ * Supports different sizes, trigger types (click, hover, focus), placements, and comprehensive event system.
3470
4395
  * @example Basic Click Popover
3471
4396
  * <bcm-popover trigger="click" size="medium" placement="top">
3472
4397
  * <bcm-button>Click Me</bcm-button>
3473
4398
  * <span slot="header">Header</span>
3474
4399
  * <span slot="content">This is a simple popover content.</span>
3475
4400
  * </bcm-popover>
3476
- * @example Hover Popover with Props
3477
- * <bcm-popover trigger="hover" hover-delay="200" size="large" placement="right" header-text="Prop Header" message="This is a hover popover with props.">
4401
+ * @example Hover Popover with Delays
4402
+ * <bcm-popover trigger="hover" show-delay="200" hide-delay="100" size="large" placement="right" header-text="Prop Header" message="This is a hover popover with props.">
3478
4403
  * <bcm-button>Hover Me</bcm-button>
3479
4404
  * </bcm-popover>
3480
4405
  * @example Programmatic Control
@@ -3484,8 +4409,9 @@ declare namespace LocalJSX {
3484
4409
  * </bcm-popover>
3485
4410
  * <script>
3486
4411
  * const popover = document.querySelector('#my-popover');
3487
- * popover.openPopup(); // Opens the popover
3488
- * popover.closePopup(); // Closes the popover
4412
+ * popover.show(); // Opens the popover
4413
+ * popover.hide(); // Closes the popover
4414
+ * popover.toggle(); // Toggles the popover
3489
4415
  * </script>
3490
4416
  * @csspart popover - The root popover container element, stylable for the entire popover
3491
4417
  * @csspart header - The header section of the popover, stylable for the title area
@@ -3493,29 +4419,52 @@ declare namespace LocalJSX {
3493
4419
  * @csspart arrow - The arrow element of the popover, stylable for the positioning arrow
3494
4420
  */
3495
4421
  interface BcmPopover {
4422
+ /**
4423
+ * @prop {boolean} arrow - Whether to show an arrow pointing to the trigger element. Default: true
4424
+ * @default true
4425
+ */
4426
+ "arrow"?: boolean;
4427
+ /**
4428
+ * @prop {boolean} closeOnEscape - Whether to close the popover when pressing Escape key. Default: true
4429
+ * @default true
4430
+ */
4431
+ "closeOnEscape"?: boolean;
4432
+ /**
4433
+ * @prop {boolean} closeOnOutsideClick - Whether to close the popover when clicking outside. Default: true
4434
+ * @default true
4435
+ */
4436
+ "closeOnOutsideClick"?: boolean;
3496
4437
  /**
3497
4438
  * @prop {string} headerText - Custom text for the popover header. Used as fallback content if the 'header' slot is not provided.
3498
4439
  */
3499
4440
  "headerText"?: string;
3500
4441
  /**
3501
- * @prop {number} hoverDelay - Delay in milliseconds before showing or hiding the popover when trigger is 'hover'. Adds a delay to prevent flickering on quick mouse movements. Default: 150
3502
- * @default 150
4442
+ * @prop {number} hideDelay - Delay in milliseconds before hiding the popover. Provides a grace period for mouse movements. Default: 0
4443
+ * @default 0
3503
4444
  */
3504
- "hoverDelay"?: number;
4445
+ "hideDelay"?: number;
3505
4446
  /**
3506
4447
  * @prop {string} message - Custom text for the popover content. Used as fallback content if the 'content' slot is not provided.
3507
4448
  */
3508
4449
  "message"?: string;
3509
4450
  /**
3510
- * @event {EventEmitter<void>} bcmPopoverClose - Emitted when the popover is closed. Useful for tracking when the popover is hidden.
4451
+ * @event bcmBeforeClose - Emitted before the popover closes. Useful for performing actions before the popover is hidden.
4452
+ */
4453
+ "onBcmBeforeClose"?: (event: BcmPopoverCustomEvent<void>) => void;
4454
+ /**
4455
+ * @event bcmBeforeOpen - Emitted before the popover opens. Useful for performing actions before the popover becomes visible.
3511
4456
  */
3512
- "onBcmPopoverClose"?: (event: BcmPopoverCustomEvent<void>) => void;
4457
+ "onBcmBeforeOpen"?: (event: BcmPopoverCustomEvent<void>) => void;
3513
4458
  /**
3514
- * @event {EventEmitter<void>} bcmPopoverOpen - Emitted when the popover is opened. Useful for tracking when the popover becomes visible.
4459
+ * @event bcmClose - Emitted when the popover is closed. Useful for tracking when the popover is hidden.
3515
4460
  */
3516
- "onBcmPopoverOpen"?: (event: BcmPopoverCustomEvent<void>) => void;
4461
+ "onBcmClose"?: (event: BcmPopoverCustomEvent<void>) => void;
3517
4462
  /**
3518
- * @prop {boolean} open - Indicates whether the popover is currently open. Can be set programmatically or toggled by user interaction. Mutable. Default: false
4463
+ * @event bcmOpen - Emitted when the popover is opened. Useful for tracking when the popover becomes visible.
4464
+ */
4465
+ "onBcmOpen"?: (event: BcmPopoverCustomEvent<void>) => void;
4466
+ /**
4467
+ * @prop {boolean} open - Controls the open state of the popover. Can be set programmatically or toggled by user interaction. Default: false
3519
4468
  * @default false
3520
4469
  */
3521
4470
  "open"?: boolean;
@@ -3524,16 +4473,21 @@ declare namespace LocalJSX {
3524
4473
  * @default 'top'
3525
4474
  */
3526
4475
  "placement"?: 'top' | 'right' | 'bottom' | 'left';
4476
+ /**
4477
+ * @prop {number} showDelay - Delay in milliseconds before showing the popover. Useful to prevent popovers from appearing on quick mouse movements. Default: 0
4478
+ * @default 0
4479
+ */
4480
+ "showDelay"?: number;
3527
4481
  /**
3528
4482
  * @prop {('small' | 'medium' | 'large')} size - Defines the size of the popover. Controls the text size and padding of the popover content. Default: 'medium'
3529
4483
  * @default 'medium'
3530
4484
  */
3531
4485
  "size"?: 'small' | 'medium' | 'large';
3532
4486
  /**
3533
- * @prop {('click' | 'hover')} trigger - Defines the interaction type to show/hide the popover. 'click' toggles on click, 'hover' shows on mouse enter and hides on mouse leave. Default: 'click'
4487
+ * @prop {('click' | 'hover' | 'hover focus')} trigger - Defines the interaction type to show/hide the popover. 'click' toggles on click, 'hover' shows on mouse enter and hides on mouse leave, 'hover focus' combines both. Default: 'click'
3534
4488
  * @default 'click'
3535
4489
  */
3536
- "trigger"?: 'click' | 'hover';
4490
+ "trigger"?: 'click' | 'hover' | 'hover focus';
3537
4491
  }
3538
4492
  interface BcmRadio {
3539
4493
  /**
@@ -4029,49 +4983,101 @@ declare namespace LocalJSX {
4029
4983
  }
4030
4984
  /**
4031
4985
  * @component BcmTooltip
4032
- * @description A lightweight tooltip component that displays brief contextual information when hovering or clicking on a target element.
4033
- * Supports different sizes, trigger types (click or hover), placements (top, right, bottom, left), and can be controlled via slots or props.
4034
- * @example Basic Hover Tooltip
4035
- * <bcm-tooltip trigger="hover" size="medium" placement="top" message="This is a tooltip.">
4036
- * <bcm-button>Hover Me</bcm-button>
4986
+ * @description A flexible tooltip component that provides contextual information on hover or click.
4987
+ * Built on the native Popover API for top-layer rendering and Floating UI for intelligent positioning.
4988
+ * Automatically handles overflow, flipping, and complex shadow DOM scenarios.
4989
+ * @example ```html
4990
+ * <!-- Basic usage with text message -->
4991
+ * <bcm-tooltip message="This is a tooltip">
4992
+ * <button>Hover me</button>
4037
4993
  * </bcm-tooltip>
4038
- * @example Click Tooltip with Programmatic Control
4039
- * <bcm-tooltip id="my-tooltip" trigger="click" message="Controlled tooltip.">
4040
- * <bcm-button>Click Me</bcm-button>
4994
+ * <!-- With custom rich content -->
4995
+ * <bcm-tooltip placement="right" size="large">
4996
+ * <button>Click me</button>
4997
+ * <div slot="content">
4998
+ * <strong>Rich content</strong>
4999
+ * <p>You can add any HTML here</p>
5000
+ * </div>
5001
+ * </bcm-tooltip>
5002
+ * <!-- Click trigger with custom delays -->
5003
+ * <bcm-tooltip trigger="click" show-delay="0" hide-delay="0">
5004
+ * <span>Click me</span>
5005
+ * </bcm-tooltip>
5006
+ * <!-- Mouse following mode -->
5007
+ * <bcm-tooltip follow={true} message="I follow your cursor!">
5008
+ * <div>Move your mouse here</div>
5009
+ * </bcm-tooltip>
5010
+ * <!-- Programmatic control -->
5011
+ * <bcm-tooltip id="myTooltip" message="Programmatic tooltip">
5012
+ * <span>Trigger</span>
4041
5013
  * </bcm-tooltip>
4042
5014
  * <script>
4043
- * const tooltip = document.querySelector('#my-tooltip');
4044
- * tooltip.openTooltip(); // Opens the tooltip
4045
- * tooltip.closeTooltip(); // Closes the tooltip
5015
+ * const tooltip = document.getElementById('myTooltip');
5016
+ * tooltip.show();
5017
+ * setTimeout(() => tooltip.hide(), 2000);
4046
5018
  * </script>
4047
- * @csspart tooltip - The root tooltip container element, stylable for the entire tooltip
4048
- * @csspart arrow - The arrow element of the tooltip, stylable for the positioning arrow
5019
+ * <!-- Custom styling with CSS parts -->
5020
+ * <style>
5021
+ * bcm-tooltip::part(tooltip) {
5022
+ * background: linear-gradient(135deg, #667eea 0%, #764ba2 100%);
5023
+ * border-radius: 12px;
5024
+ * }
5025
+ * bcm-tooltip::part(arrow) {
5026
+ * background: #667eea;
5027
+ * }
5028
+ * </style>
5029
+ * ```
4049
5030
  */
4050
5031
  interface BcmTooltip {
4051
5032
  /**
4052
- * @prop {string} message - Custom text for the tooltip content. Used as fallback content if the 'tooltip' slot is not provided.
5033
+ * Whether to show an arrow pointing to the trigger element Note: Arrow is automatically hidden in 'follow' mode
5034
+ * @default true
5035
+ */
5036
+ "arrow"?: boolean;
5037
+ /**
5038
+ * Disables the tooltip, preventing it from showing Useful for conditional tooltips based on application state
5039
+ * @default false
5040
+ */
5041
+ "disabled"?: boolean;
5042
+ /**
5043
+ * Makes the tooltip follow the mouse cursor When enabled: - Arrow is hidden - Tooltip position updates smoothly with cursor movement - Pointer events are disabled on tooltip to prevent interference
5044
+ * @default false
5045
+ */
5046
+ "follow"?: boolean;
5047
+ /**
5048
+ * Delay in milliseconds before hiding the tooltip Provides a grace period for mouse movements
5049
+ * @default 100
5050
+ */
5051
+ "hideDelay"?: number;
5052
+ /**
5053
+ * Simple text message to display in the tooltip Can be overridden by slotting content into the 'content' slot
4053
5054
  */
4054
5055
  "message"?: string;
4055
5056
  /**
4056
- * @prop {('top' | 'right' | 'bottom' | 'left')} placement - Defines the position of the tooltip relative to the target element. Default: 'top'
5057
+ * Distance in pixels between the tooltip and the trigger element Also used as the offset in 'follow' mode
5058
+ * @default 12
5059
+ */
5060
+ "offset"?: number;
5061
+ /**
5062
+ * Preferred placement of the tooltip relative to the trigger Note: Tooltip will automatically flip if there's not enough space - 'top': Above the trigger element - 'right': To the right of the trigger element - 'bottom': Below the trigger element - 'left': To the left of the trigger element
4057
5063
  * @default 'top'
4058
5064
  */
4059
- "placement"?: 'top' | 'right' | 'bottom' | 'left';
5065
+ "placement"?: TooltipPlacement;
4060
5066
  /**
4061
- * @prop {number} showDelay - Delay in milliseconds before showing or hiding the tooltip. Helps prevent flickering on quick mouse movements. Default: 150
5067
+ * Delay in milliseconds before showing the tooltip Useful to prevent tooltips from appearing on quick mouse movements
4062
5068
  * @default 150
4063
5069
  */
4064
5070
  "showDelay"?: number;
4065
5071
  /**
4066
- * @prop {('small' | 'medium' | 'large')} size - Defines the size of the tooltip. Controls the text size and padding of the tooltip content. Default: 'medium'
5072
+ * Size variant of the tooltip - 'small': Compact tooltip with minimal padding (text-size-3, py-1 px-2) - 'medium': Standard tooltip size (text-size-4, py-1.5 px-3) - 'large': Larger tooltip for more content (text-size-5, py-2 px-4)
4067
5073
  * @default 'medium'
4068
5074
  */
4069
- "size"?: 'small' | 'medium' | 'large';
5075
+ "size"?: TooltipSize;
4070
5076
  /**
4071
- * @prop {('click' | 'hover')} trigger - Defines the interaction type to show/hide the tooltip. 'click' toggles on click, 'hover' shows on mouse enter and hides on mouse leave. Default: 'hover'
5077
+ * How the tooltip is triggered - 'hover': Shows on mouse enter, hides on mouse leave - 'click': Toggles on click, closes on outside click or Escape key
4072
5078
  * @default 'hover'
4073
5079
  */
4074
- "trigger"?: 'click' | 'hover';
5080
+ "trigger"?: TooltipTrigger;
4075
5081
  }
4076
5082
  interface IntrinsicElements {
4077
5083
  "bcm-accordion": BcmAccordion;
@@ -4281,72 +5287,258 @@ declare module "@stencil/core" {
4281
5287
  * The component uses CSS variables for theming and Tailwind for styling.
4282
5288
  */
4283
5289
  "bcm-divider": LocalJSX.BcmDivider & JSXBase.HTMLAttributes<HTMLBcmDividerElement>;
5290
+ /**
5291
+ * @component BcmDrawer
5292
+ * @description A slide-in panel component built on the native HTML Dialog API.
5293
+ * Ideal for navigation menus, forms, and contextual information that slides in from any edge of the screen.
5294
+ * @example ```html
5295
+ * <!-- Basic usage -->
5296
+ * <bcm-drawer open header-text="Menu" position="left">
5297
+ * <nav>
5298
+ * <a href="/home">Home</a>
5299
+ * <a href="/about">About</a>
5300
+ * </nav>
5301
+ * </bcm-drawer>
5302
+ * <!-- Custom size and position -->
5303
+ * <bcm-drawer size="large" position="right">
5304
+ * <div slot="header">Settings</div>
5305
+ * <form>...</form>
5306
+ * <div slot="footer">
5307
+ * <button data-dismiss>Cancel</button>
5308
+ * <button>Save</button>
5309
+ * </div>
5310
+ * </bcm-drawer>
5311
+ * <!-- Custom size with CSS units -->
5312
+ * <bcm-drawer size="600px" position="bottom">
5313
+ * <p>Custom height drawer</p>
5314
+ * </bcm-drawer>
5315
+ * <!-- Programmatic usage -->
5316
+ * <bcm-drawer id="myDrawer">Content</bcm-drawer>
5317
+ * <script>
5318
+ * document.getElementById('myDrawer').show();
5319
+ * </script>
5320
+ * ```
5321
+ */
4284
5322
  "bcm-drawer": LocalJSX.BcmDrawer & JSXBase.HTMLAttributes<HTMLBcmDrawerElement>;
4285
5323
  "bcm-dropdown": LocalJSX.BcmDropdown & JSXBase.HTMLAttributes<HTMLBcmDropdownElement>;
4286
5324
  "bcm-dropdown-item": LocalJSX.BcmDropdownItem & JSXBase.HTMLAttributes<HTMLBcmDropdownItemElement>;
4287
5325
  "bcm-input": LocalJSX.BcmInput & JSXBase.HTMLAttributes<HTMLBcmInputElement>;
5326
+ /**
5327
+ * @component BcmLinked
5328
+ * @description A flexible linked floating element component that displays contextual content relative to a trigger element.
5329
+ * Built on the native Popover API for top-layer rendering and Floating UI for intelligent positioning.
5330
+ * Supports different trigger types (click, hover, focus, manual) and comprehensive event system.
5331
+ * @example Basic Click Trigger
5332
+ * <bcm-linked trigger="click">
5333
+ * <button slot="trigger">Click Me</button>
5334
+ * <div>Floating content here</div>
5335
+ * </bcm-linked>
5336
+ * @example Hover Trigger with Delays
5337
+ * <bcm-linked trigger="hover" show-delay="200" hide-delay="100">
5338
+ * <span slot="trigger">Hover Me</span>
5339
+ * <div>This appears on hover</div>
5340
+ * </bcm-linked>
5341
+ * @example Manual Control
5342
+ * <bcm-linked id="my-linked" trigger="manual">
5343
+ * <button slot="trigger">Trigger</button>
5344
+ * <div>Controlled content</div>
5345
+ * </bcm-linked>
5346
+ * <script>
5347
+ * const linked = document.querySelector('#my-linked');
5348
+ * linked.show(); // Opens the floating element
5349
+ * linked.hide(); // Closes the floating element
5350
+ * </script>
5351
+ * @csspart floating - The floating container element
5352
+ * @csspart arrow - The arrow element pointing to the trigger
5353
+ * @csspart content - The content wrapper element
5354
+ */
4288
5355
  "bcm-linked": LocalJSX.BcmLinked & JSXBase.HTMLAttributes<HTMLBcmLinkedElement>;
5356
+ /**
5357
+ * @component BcmModal
5358
+ * @description A flexible modal dialog component built on the native HTML Dialog API.
5359
+ * Provides a powerful way to display content in a layer above the page with full keyboard and focus management.
5360
+ * @example ```html
5361
+ * <!-- Basic usage -->
5362
+ * <bcm-modal open header-text="Welcome" helper-text="Please read carefully">
5363
+ * <p>Modal content goes here</p>
5364
+ * <div slot="footer">
5365
+ * <button data-dismiss>Close</button>
5366
+ * </div>
5367
+ * </bcm-modal>
5368
+ * <!-- Custom size and placement -->
5369
+ * <bcm-modal size="large" placement="top">
5370
+ * <div slot="header">Custom Header</div>
5371
+ * <p>Content here</p>
5372
+ * <div slot="footer">
5373
+ * <button>Cancel</button>
5374
+ * <button>Confirm</button>
5375
+ * </div>
5376
+ * </bcm-modal>
5377
+ * <!-- Full screen modal -->
5378
+ * <bcm-modal full-screen no-footer>
5379
+ * <p>Full screen content</p>
5380
+ * </bcm-modal>
5381
+ * <!-- Programmatic usage -->
5382
+ * <bcm-modal id="myModal">Content</bcm-modal>
5383
+ * <script>
5384
+ * document.getElementById('myModal').show();
5385
+ * </script>
5386
+ * ```
5387
+ */
4289
5388
  "bcm-modal": LocalJSX.BcmModal & JSXBase.HTMLAttributes<HTMLBcmModalElement>;
4290
5389
  /**
4291
5390
  * @component BcmPopConfirm
4292
- * @description A floating confirmation pop-up component that prompts users for action confirmation, triggered by click or hover events.
4293
- * Offers customizable header, body content, and footer areas through slots, with accessibility and positioning features.
4294
- * @example Basic usage
4295
- * <bcm-pop-confirm target-id="trigger-btn" placement="right" header-text="Confirm Action" description="Are you sure?" confirm-text="Yes" cancel-text="No" status="warning"></bcm-pop-confirm>
4296
- * @example With all slots and custom styling
4297
- * <bcm-pop-confirm target-id="trigger-btn" placement="left" header-text="Delete Item" description="Are you sure you want to delete this item?" confirm-text="Delete" cancel-text="Cancel" status="error" arrow-color="#ffffff">
4298
- * <span slot="header">Custom Header Text</span>
4299
- * <span slot="body">Additional details here</span>
4300
- * <span slot="footer">Custom Footer Action</span>
5391
+ * @description A confirmation popover component that displays a confirmation dialog with customizable actions.
5392
+ * Built on the native Popover API for top-layer rendering and Floating UI for intelligent positioning.
5393
+ * Ideal for confirming destructive actions or important decisions inline.
5394
+ * @csspart container - The main popover container element
5395
+ * @csspart arrow - The arrow pointer element
5396
+ * @csspart body - The body/description section
5397
+ * @csspart footer - The footer section with action buttons
5398
+ * @example Basic Usage
5399
+ * ```html
5400
+ * <bcm-pop-confirm
5401
+ * header-text="Delete Item?"
5402
+ * description="Are you sure you want to delete this item? This action cannot be undone."
5403
+ * status="error"
5404
+ * >
5405
+ * <bcm-button status="error">Delete</bcm-button>
4301
5406
  * </bcm-pop-confirm>
4302
- * @example Event handling
4303
- * // Listen to confirmation events
4304
- * const popConfirm = document.querySelector('bcm-pop-confirm');
4305
- * popConfirm.addEventListener('bcmConfirm', () => {
4306
- * console.log('User confirmed the action!');
5407
+ * ```
5408
+ * @example With Event Handlers
5409
+ * ```html
5410
+ * <bcm-pop-confirm
5411
+ * id="deleteConfirm"
5412
+ * header-text="Confirm Delete"
5413
+ * description="This will permanently delete the item."
5414
+ * status="warning"
5415
+ * confirm-text="Yes, Delete"
5416
+ * cancel-text="No, Keep It"
5417
+ * >
5418
+ * <bcm-button>Delete Item</bcm-button>
5419
+ * </bcm-pop-confirm>
5420
+ * <script>
5421
+ * const popconfirm = document.getElementById('deleteConfirm');
5422
+ * popconfirm.addEventListener('bcmConfirm', () => {
5423
+ * console.log('User confirmed deletion');
5424
+ * // Perform delete operation
4307
5425
  * });
4308
- * popConfirm.addEventListener('bcmCancel', () => {
4309
- * console.log('User canceled the action!');
5426
+ * popconfirm.addEventListener('bcmCancel', () => {
5427
+ * console.log('User cancelled deletion');
4310
5428
  * });
4311
- * // Programmatically control pop-up
4312
- * await popConfirm.show(); // Show the pop-up
4313
- * await popConfirm.hide(); // Hide the pop-up
4314
- * @prop {string} arrowColor - The color of the arrow pointing to the trigger element (default: 'var(--bcm-ui-color-background-basic-panel)')
4315
- * @prop {string} cancelText - Text displayed on the cancel button (default: 'Cancel')
4316
- * @prop {string} confirmText - Text displayed on the confirm button (default: 'Yes')
4317
- * @prop {string} description - The description or body content of the pop-up (default: '')
4318
- * @prop {string} headerText - The header text displayed at the top of the pop-up (default: '')
4319
- * @prop {Placement} placement - The placement position of the pop-up relative to the trigger (default: 'right')
4320
- * @prop {('small' | 'medium' | 'large')} size - The size of the pop-up, determining its dimensions (default: 'medium')
4321
- * @prop {('info' | 'error' | 'warning' | 'success' | 'default')} status - The status of the pop-up, affecting its icon and color (default: 'info')
4322
- * @prop {boolean} statusIcon - Whether to display a status icon based on the `status` prop (default: true)
4323
- * @prop {string} targetId - The ID of the trigger element (e.g., a button) that opens the pop-up
4324
- * @event {EventEmitter<void>} bcmConfirm - Emitted when the user confirms the action in the pop-up
4325
- * @event {EventEmitter<void>} bcmCancel - Emitted when the user cancels the action in the pop-up
4326
- * @csspart container - The root container element of the pop-up
4327
- * @csspart header - The header section with title and close icon
4328
- * @csspart content - The main content section of the pop-up
4329
- * @csspart footer - The footer section with confirm/cancel buttons
4330
- * @csspart arrow - The positioning arrow pointing to the trigger
4331
- * @css {string} --popover-radius - Border radius of the pop-up (default: defined in CSS)
4332
- * @css {string} --popover-bg - Background color of the pop-up
4333
- * @css {string} --text-color - Text color of the pop-up based on status
4334
- * @methods show() - Programmatically shows the pop-up
4335
- * hide() - Programmatically hides the pop-up
5429
+ * </script>
5430
+ * ```
5431
+ * @example Different Status Types
5432
+ * ```html
5433
+ * <!-- Info (default) -->
5434
+ * <bcm-pop-confirm header-text="Information" description="This is an info message">
5435
+ * <bcm-button>Info</bcm-button>
5436
+ * </bcm-pop-confirm>
5437
+ * <!-- Success -->
5438
+ * <bcm-pop-confirm status="success" header-text="Confirm Action" description="Proceed with this action?">
5439
+ * <bcm-button status="success">Proceed</bcm-button>
5440
+ * </bcm-pop-confirm>
5441
+ * <!-- Warning -->
5442
+ * <bcm-pop-confirm status="warning" header-text="Warning" description="This action may have consequences">
5443
+ * <bcm-button status="warning">Continue</bcm-button>
5444
+ * </bcm-pop-confirm>
5445
+ * <!-- Error/Danger -->
5446
+ * <bcm-pop-confirm status="error" header-text="Danger Zone" description="This is a destructive action">
5447
+ * <bcm-button status="error">Delete</bcm-button>
5448
+ * </bcm-pop-confirm>
5449
+ * ```
5450
+ * @example Custom Content with Slots
5451
+ * ```html
5452
+ * <bcm-pop-confirm status="warning">
5453
+ * <bcm-button>Custom Confirm</bcm-button>
5454
+ * <div slot="header">
5455
+ * <strong>Custom Header</strong>
5456
+ * </div>
5457
+ * <div slot="body">
5458
+ * <p>This is custom body content with <strong>HTML formatting</strong>.</p>
5459
+ * <ul>
5460
+ * <li>Point 1</li>
5461
+ * <li>Point 2</li>
5462
+ * </ul>
5463
+ * </div>
5464
+ * <div slot="footer">
5465
+ * <bcm-button kind="outline" size="small">Maybe Later</bcm-button>
5466
+ * <bcm-button status="success" size="small">Confirm</bcm-button>
5467
+ * </div>
5468
+ * </bcm-pop-confirm>
5469
+ * ```
5470
+ * @example Different Sizes
5471
+ * ```html
5472
+ * <!-- Small -->
5473
+ * <bcm-pop-confirm size="small" header-text="Small" description="Compact confirmation">
5474
+ * <bcm-button size="small">Small</bcm-button>
5475
+ * </bcm-pop-confirm>
5476
+ * <!-- Medium (default) -->
5477
+ * <bcm-pop-confirm size="medium" header-text="Medium" description="Standard confirmation">
5478
+ * <bcm-button size="medium">Medium</bcm-button>
5479
+ * </bcm-pop-confirm>
5480
+ * <!-- Large -->
5481
+ * <bcm-pop-confirm size="large" header-text="Large" description="Spacious confirmation with more room for content">
5482
+ * <bcm-button size="large">Large</bcm-button>
5483
+ * </bcm-pop-confirm>
5484
+ * ```
5485
+ * @example Programmatic Control
5486
+ * ```html
5487
+ * <bcm-pop-confirm id="myConfirm" header-text="Confirm" description="Are you sure?">
5488
+ * <bcm-button>Trigger</bcm-button>
5489
+ * </bcm-pop-confirm>
5490
+ * <bcm-button id="showBtn">Show Programmatically</bcm-button>
5491
+ * <bcm-button id="hideBtn">Hide Programmatically</bcm-button>
5492
+ * <script>
5493
+ * const popconfirm = document.getElementById('myConfirm');
5494
+ * document.getElementById('showBtn').addEventListener('click', () => {
5495
+ * popconfirm.show();
5496
+ * });
5497
+ * document.getElementById('hideBtn').addEventListener('click', () => {
5498
+ * popconfirm.hide();
5499
+ * });
5500
+ * </script>
5501
+ * ```
5502
+ * @example Without Status Icon
5503
+ * ```html
5504
+ * <bcm-pop-confirm
5505
+ * header-text="Simple Confirmation"
5506
+ * description="No status icon shown"
5507
+ * status-icon={false}
5508
+ * >
5509
+ * <bcm-button>Click Me</bcm-button>
5510
+ * </bcm-pop-confirm>
5511
+ * ```
5512
+ * @example Different Placements
5513
+ * ```html
5514
+ * <bcm-pop-confirm placement="top" header-text="Top" description="Opens above">
5515
+ * <bcm-button>Top</bcm-button>
5516
+ * </bcm-pop-confirm>
5517
+ * <bcm-pop-confirm placement="right" header-text="Right" description="Opens to the right">
5518
+ * <bcm-button>Right</bcm-button>
5519
+ * </bcm-pop-confirm>
5520
+ * <bcm-pop-confirm placement="bottom" header-text="Bottom" description="Opens below">
5521
+ * <bcm-button>Bottom</bcm-button>
5522
+ * </bcm-pop-confirm>
5523
+ * <bcm-pop-confirm placement="left" header-text="Left" description="Opens to the left">
5524
+ * <bcm-button>Left</bcm-button>
5525
+ * </bcm-pop-confirm>
5526
+ * ```
4336
5527
  */
4337
5528
  "bcm-pop-confirm": LocalJSX.BcmPopConfirm & JSXBase.HTMLAttributes<HTMLBcmPopConfirmElement>;
4338
5529
  /**
4339
5530
  * @component BcmPopover
4340
5531
  * @description A flexible popover component that displays contextual information or content relative to a target element.
4341
- * Supports different sizes, trigger types (click or hover), placements (top, right, bottom, left), and can be controlled via slots or props.
5532
+ * Built on the native Popover API for top-layer rendering and Floating UI for intelligent positioning.
5533
+ * Supports different sizes, trigger types (click, hover, focus), placements, and comprehensive event system.
4342
5534
  * @example Basic Click Popover
4343
5535
  * <bcm-popover trigger="click" size="medium" placement="top">
4344
5536
  * <bcm-button>Click Me</bcm-button>
4345
5537
  * <span slot="header">Header</span>
4346
5538
  * <span slot="content">This is a simple popover content.</span>
4347
5539
  * </bcm-popover>
4348
- * @example Hover Popover with Props
4349
- * <bcm-popover trigger="hover" hover-delay="200" size="large" placement="right" header-text="Prop Header" message="This is a hover popover with props.">
5540
+ * @example Hover Popover with Delays
5541
+ * <bcm-popover trigger="hover" show-delay="200" hide-delay="100" size="large" placement="right" header-text="Prop Header" message="This is a hover popover with props.">
4350
5542
  * <bcm-button>Hover Me</bcm-button>
4351
5543
  * </bcm-popover>
4352
5544
  * @example Programmatic Control
@@ -4356,8 +5548,9 @@ declare module "@stencil/core" {
4356
5548
  * </bcm-popover>
4357
5549
  * <script>
4358
5550
  * const popover = document.querySelector('#my-popover');
4359
- * popover.openPopup(); // Opens the popover
4360
- * popover.closePopup(); // Closes the popover
5551
+ * popover.show(); // Opens the popover
5552
+ * popover.hide(); // Closes the popover
5553
+ * popover.toggle(); // Toggles the popover
4361
5554
  * </script>
4362
5555
  * @csspart popover - The root popover container element, stylable for the entire popover
4363
5556
  * @csspart header - The header section of the popover, stylable for the title area
@@ -4415,23 +5608,50 @@ declare module "@stencil/core" {
4415
5608
  "bcm-textarea": LocalJSX.BcmTextarea & JSXBase.HTMLAttributes<HTMLBcmTextareaElement>;
4416
5609
  /**
4417
5610
  * @component BcmTooltip
4418
- * @description A lightweight tooltip component that displays brief contextual information when hovering or clicking on a target element.
4419
- * Supports different sizes, trigger types (click or hover), placements (top, right, bottom, left), and can be controlled via slots or props.
4420
- * @example Basic Hover Tooltip
4421
- * <bcm-tooltip trigger="hover" size="medium" placement="top" message="This is a tooltip.">
4422
- * <bcm-button>Hover Me</bcm-button>
5611
+ * @description A flexible tooltip component that provides contextual information on hover or click.
5612
+ * Built on the native Popover API for top-layer rendering and Floating UI for intelligent positioning.
5613
+ * Automatically handles overflow, flipping, and complex shadow DOM scenarios.
5614
+ * @example ```html
5615
+ * <!-- Basic usage with text message -->
5616
+ * <bcm-tooltip message="This is a tooltip">
5617
+ * <button>Hover me</button>
4423
5618
  * </bcm-tooltip>
4424
- * @example Click Tooltip with Programmatic Control
4425
- * <bcm-tooltip id="my-tooltip" trigger="click" message="Controlled tooltip.">
4426
- * <bcm-button>Click Me</bcm-button>
5619
+ * <!-- With custom rich content -->
5620
+ * <bcm-tooltip placement="right" size="large">
5621
+ * <button>Click me</button>
5622
+ * <div slot="content">
5623
+ * <strong>Rich content</strong>
5624
+ * <p>You can add any HTML here</p>
5625
+ * </div>
5626
+ * </bcm-tooltip>
5627
+ * <!-- Click trigger with custom delays -->
5628
+ * <bcm-tooltip trigger="click" show-delay="0" hide-delay="0">
5629
+ * <span>Click me</span>
5630
+ * </bcm-tooltip>
5631
+ * <!-- Mouse following mode -->
5632
+ * <bcm-tooltip follow={true} message="I follow your cursor!">
5633
+ * <div>Move your mouse here</div>
5634
+ * </bcm-tooltip>
5635
+ * <!-- Programmatic control -->
5636
+ * <bcm-tooltip id="myTooltip" message="Programmatic tooltip">
5637
+ * <span>Trigger</span>
4427
5638
  * </bcm-tooltip>
4428
5639
  * <script>
4429
- * const tooltip = document.querySelector('#my-tooltip');
4430
- * tooltip.openTooltip(); // Opens the tooltip
4431
- * tooltip.closeTooltip(); // Closes the tooltip
5640
+ * const tooltip = document.getElementById('myTooltip');
5641
+ * tooltip.show();
5642
+ * setTimeout(() => tooltip.hide(), 2000);
4432
5643
  * </script>
4433
- * @csspart tooltip - The root tooltip container element, stylable for the entire tooltip
4434
- * @csspart arrow - The arrow element of the tooltip, stylable for the positioning arrow
5644
+ * <!-- Custom styling with CSS parts -->
5645
+ * <style>
5646
+ * bcm-tooltip::part(tooltip) {
5647
+ * background: linear-gradient(135deg, #667eea 0%, #764ba2 100%);
5648
+ * border-radius: 12px;
5649
+ * }
5650
+ * bcm-tooltip::part(arrow) {
5651
+ * background: #667eea;
5652
+ * }
5653
+ * </style>
5654
+ * ```
4435
5655
  */
4436
5656
  "bcm-tooltip": LocalJSX.BcmTooltip & JSXBase.HTMLAttributes<HTMLBcmTooltipElement>;
4437
5657
  }