bromcom-ui-next 0.1.30 → 0.1.31

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 (546) hide show
  1. package/dist/bromcom-ui/bcm-accordion-group.entry.esm.js.map +1 -1
  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-avatar.entry.esm.js.map +1 -1
  5. package/dist/bromcom-ui/bcm-badge.entry.esm.js.map +1 -1
  6. package/dist/bromcom-ui/bcm-basic-badge.entry.esm.js.map +1 -1
  7. package/dist/bromcom-ui/bcm-button-group.entry.esm.js.map +1 -1
  8. package/dist/bromcom-ui/bcm-button.entry.esm.js.map +1 -0
  9. package/dist/bromcom-ui/bcm-checkbox.entry.esm.js.map +1 -1
  10. package/dist/bromcom-ui/bcm-chip.entry.esm.js.map +1 -1
  11. package/dist/bromcom-ui/bcm-divider.entry.esm.js.map +1 -1
  12. package/dist/bromcom-ui/bcm-drawer.entry.esm.js.map +1 -0
  13. package/dist/bromcom-ui/bcm-dropdown-item.entry.esm.js.map +1 -1
  14. package/dist/bromcom-ui/bcm-dropdown.entry.esm.js.map +1 -1
  15. package/dist/bromcom-ui/bcm-file-upload.entry.esm.js.map +1 -0
  16. package/dist/bromcom-ui/bcm-input.entry.esm.js.map +1 -1
  17. package/dist/bromcom-ui/bcm-linked.entry.esm.js.map +1 -0
  18. package/dist/bromcom-ui/bcm-modal.entry.esm.js.map +1 -0
  19. package/dist/bromcom-ui/bcm-pop-confirm.entry.esm.js.map +1 -0
  20. package/dist/bromcom-ui/bcm-popover.entry.esm.js.map +1 -0
  21. package/dist/bromcom-ui/bcm-radio-group.entry.esm.js.map +1 -1
  22. package/dist/bromcom-ui/bcm-radio.entry.esm.js.map +1 -1
  23. package/dist/bromcom-ui/bcm-segment.bcm-segmented-picker.entry.esm.js.map +1 -0
  24. package/dist/bromcom-ui/bcm-shortcut.entry.esm.js.map +1 -1
  25. package/dist/bromcom-ui/bcm-switch.entry.esm.js.map +1 -1
  26. package/dist/bromcom-ui/bcm-tab.entry.esm.js.map +1 -0
  27. package/dist/bromcom-ui/bcm-tabs.entry.esm.js.map +1 -1
  28. package/dist/bromcom-ui/bcm-text.entry.esm.js.map +1 -1
  29. package/dist/bromcom-ui/bcm-textarea.entry.esm.js.map +1 -1
  30. package/dist/bromcom-ui/bcm-tooltip.entry.esm.js.map +1 -0
  31. package/dist/bromcom-ui/bromcom-ui.esm.js +1 -1
  32. package/dist/bromcom-ui/global/global.js +33 -30
  33. package/dist/bromcom-ui/p-010219cf.entry.js +2 -0
  34. package/dist/bromcom-ui/p-010219cf.entry.js.map +1 -0
  35. package/dist/bromcom-ui/p-01a4e00b.entry.js +2 -0
  36. package/dist/bromcom-ui/p-01a4e00b.entry.js.map +1 -0
  37. package/dist/bromcom-ui/p-14c63d61.entry.js +2 -0
  38. package/dist/bromcom-ui/p-14c63d61.entry.js.map +1 -0
  39. package/dist/bromcom-ui/p-20a94dec.entry.js +2 -0
  40. package/dist/bromcom-ui/p-20a94dec.entry.js.map +1 -0
  41. package/dist/bromcom-ui/p-398620c2.entry.js +2 -0
  42. package/dist/bromcom-ui/p-398620c2.entry.js.map +1 -0
  43. package/dist/bromcom-ui/p-3b898f90.entry.js +2 -0
  44. package/dist/bromcom-ui/p-3b898f90.entry.js.map +1 -0
  45. package/dist/bromcom-ui/p-43c85c84.entry.js +2 -0
  46. package/dist/bromcom-ui/p-43c85c84.entry.js.map +1 -0
  47. package/dist/bromcom-ui/p-4e6661a5.entry.js +2 -0
  48. package/dist/bromcom-ui/p-4e6661a5.entry.js.map +1 -0
  49. package/dist/bromcom-ui/p-52bb0cdc.entry.js +2 -0
  50. package/dist/bromcom-ui/p-52bb0cdc.entry.js.map +1 -0
  51. package/dist/bromcom-ui/p-61c1c1c8.entry.js +2 -0
  52. package/dist/bromcom-ui/p-61c1c1c8.entry.js.map +1 -0
  53. package/dist/bromcom-ui/p-82e4c5f2.entry.js +2 -0
  54. package/dist/bromcom-ui/p-82e4c5f2.entry.js.map +1 -0
  55. package/dist/bromcom-ui/p-86f85963.entry.js +2 -0
  56. package/dist/bromcom-ui/p-86f85963.entry.js.map +1 -0
  57. package/dist/bromcom-ui/p-9249c1d1.entry.js +2 -0
  58. package/dist/bromcom-ui/p-9249c1d1.entry.js.map +1 -0
  59. package/dist/bromcom-ui/p-B6Ppbs5O.js +3 -0
  60. package/dist/bromcom-ui/p-B6Ppbs5O.js.map +1 -0
  61. package/dist/bromcom-ui/p-DBDSgIvP.js +2 -0
  62. package/dist/bromcom-ui/p-DBDSgIvP.js.map +1 -0
  63. package/dist/bromcom-ui/p-DaE0ZLar.js +2 -0
  64. package/dist/bromcom-ui/p-DaE0ZLar.js.map +1 -0
  65. package/dist/bromcom-ui/p-a25d1cef.entry.js +2 -0
  66. package/dist/bromcom-ui/p-a25d1cef.entry.js.map +1 -0
  67. package/dist/bromcom-ui/p-a4cb2e79.entry.js +2 -0
  68. package/dist/bromcom-ui/p-a4cb2e79.entry.js.map +1 -0
  69. package/dist/bromcom-ui/p-a68925b4.entry.js +2 -0
  70. package/dist/bromcom-ui/p-a68925b4.entry.js.map +1 -0
  71. package/dist/bromcom-ui/p-a750186c.entry.js +2 -0
  72. package/dist/bromcom-ui/p-a750186c.entry.js.map +1 -0
  73. package/dist/bromcom-ui/p-ac768b56.entry.js +2 -0
  74. package/dist/bromcom-ui/p-ac768b56.entry.js.map +1 -0
  75. package/dist/bromcom-ui/p-b0b193e6.entry.js +2 -0
  76. package/dist/bromcom-ui/p-b0b193e6.entry.js.map +1 -0
  77. package/dist/bromcom-ui/p-bf4409ca.entry.js +2 -0
  78. package/dist/bromcom-ui/p-bf4409ca.entry.js.map +1 -0
  79. package/dist/bromcom-ui/p-c57fb29b.entry.js +2 -0
  80. package/dist/bromcom-ui/p-c57fb29b.entry.js.map +1 -0
  81. package/dist/bromcom-ui/{p-1507908f.entry.js → p-ccc310aa.entry.js} +2 -2
  82. package/dist/bromcom-ui/p-ccc310aa.entry.js.map +1 -0
  83. package/dist/bromcom-ui/p-d4ee962d.entry.js +2 -0
  84. package/dist/bromcom-ui/p-d4ee962d.entry.js.map +1 -0
  85. package/dist/bromcom-ui/p-e25a2f7a.entry.js +2 -0
  86. package/dist/bromcom-ui/p-e25a2f7a.entry.js.map +1 -0
  87. package/dist/bromcom-ui/p-e5b0b2ad.entry.js +2 -0
  88. package/dist/bromcom-ui/p-e5b0b2ad.entry.js.map +1 -0
  89. package/dist/bromcom-ui/p-e70d784d.entry.js +2 -0
  90. package/dist/bromcom-ui/p-e70d784d.entry.js.map +1 -0
  91. package/dist/bromcom-ui/p-e9fa3a22.entry.js +2 -0
  92. package/dist/bromcom-ui/p-e9fa3a22.entry.js.map +1 -0
  93. package/dist/bromcom-ui/p-ef281184.entry.js +2 -0
  94. package/dist/bromcom-ui/p-ef281184.entry.js.map +1 -0
  95. package/dist/bromcom-ui/{p-496014ca.entry.js → p-fb6f616c.entry.js} +2 -2
  96. package/dist/bromcom-ui/p-fb6f616c.entry.js.map +1 -0
  97. package/dist/bromcom-ui/p-fd31c70c.entry.js +2 -0
  98. package/dist/bromcom-ui/p-fd31c70c.entry.js.map +1 -0
  99. package/dist/bromcom-ui/p-nf_HKsGq.js +2 -0
  100. package/dist/bromcom-ui/{p-CUvT12BL.js.map → p-nf_HKsGq.js.map} +1 -1
  101. package/dist/cjs/base-choice-control-EmA4JRjR.js +54 -0
  102. package/dist/cjs/base-choice-control-EmA4JRjR.js.map +1 -0
  103. package/dist/cjs/bcm-accordion-group.cjs.entry.js +20 -18
  104. package/dist/cjs/bcm-accordion-group.entry.cjs.js.map +1 -1
  105. package/dist/cjs/bcm-accordion.cjs.entry.js +73 -56
  106. package/dist/cjs/bcm-accordion.entry.cjs.js.map +1 -1
  107. package/dist/cjs/bcm-alert.cjs.entry.js +21 -21
  108. package/dist/cjs/bcm-alert.entry.cjs.js.map +1 -1
  109. package/dist/cjs/bcm-avatar.cjs.entry.js +22 -12
  110. package/dist/cjs/bcm-avatar.entry.cjs.js.map +1 -1
  111. package/dist/cjs/bcm-badge.cjs.entry.js +114 -82
  112. package/dist/cjs/bcm-badge.entry.cjs.js.map +1 -1
  113. package/dist/cjs/bcm-basic-badge.cjs.entry.js +73 -59
  114. package/dist/cjs/bcm-basic-badge.entry.cjs.js.map +1 -1
  115. package/dist/cjs/bcm-button-group.cjs.entry.js +36 -24
  116. package/dist/cjs/bcm-button-group.entry.cjs.js.map +1 -1
  117. package/dist/cjs/bcm-button.cjs.entry.js +338 -0
  118. package/dist/cjs/bcm-button.entry.cjs.js.map +1 -0
  119. package/dist/cjs/bcm-checkbox.cjs.entry.js +284 -174
  120. package/dist/cjs/bcm-checkbox.entry.cjs.js.map +1 -1
  121. package/dist/cjs/bcm-chip.cjs.entry.js +38 -35
  122. package/dist/cjs/bcm-chip.entry.cjs.js.map +1 -1
  123. package/dist/cjs/bcm-divider.cjs.entry.js +55 -55
  124. package/dist/cjs/bcm-divider.entry.cjs.js.map +1 -1
  125. package/dist/cjs/bcm-drawer.cjs.entry.js +332 -0
  126. package/dist/cjs/bcm-drawer.entry.cjs.js.map +1 -0
  127. package/dist/cjs/bcm-dropdown-item.cjs.entry.js +36 -33
  128. package/dist/cjs/bcm-dropdown-item.entry.cjs.js.map +1 -1
  129. package/dist/cjs/bcm-dropdown.cjs.entry.js +18 -17
  130. package/dist/cjs/bcm-dropdown.entry.cjs.js.map +1 -1
  131. package/dist/cjs/bcm-file-upload.cjs.entry.js +552 -0
  132. package/dist/cjs/bcm-file-upload.entry.cjs.js.map +1 -0
  133. package/dist/cjs/bcm-input.cjs.entry.js +250 -158
  134. package/dist/cjs/bcm-input.entry.cjs.js.map +1 -1
  135. package/dist/cjs/bcm-linked.cjs.entry.js +452 -0
  136. package/dist/cjs/bcm-linked.entry.cjs.js.map +1 -0
  137. package/dist/cjs/bcm-modal.cjs.entry.js +360 -0
  138. package/dist/cjs/bcm-modal.entry.cjs.js.map +1 -0
  139. package/dist/cjs/bcm-pop-confirm.cjs.entry.js +381 -0
  140. package/dist/cjs/bcm-pop-confirm.entry.cjs.js.map +1 -0
  141. package/dist/cjs/bcm-popover.cjs.entry.js +451 -0
  142. package/dist/cjs/bcm-popover.entry.cjs.js.map +1 -0
  143. package/dist/cjs/bcm-radio-group.cjs.entry.js +103 -80
  144. package/dist/cjs/bcm-radio-group.entry.cjs.js.map +1 -1
  145. package/dist/cjs/bcm-radio.cjs.entry.js +239 -106
  146. package/dist/cjs/bcm-radio.entry.cjs.js.map +1 -1
  147. package/dist/cjs/bcm-segment.bcm-segmented-picker.entry.cjs.js.map +1 -0
  148. package/dist/cjs/bcm-segment_2.cjs.entry.js +335 -0
  149. package/dist/cjs/bcm-shortcut.cjs.entry.js +5 -4
  150. package/dist/cjs/bcm-shortcut.entry.cjs.js.map +1 -1
  151. package/dist/cjs/bcm-switch.cjs.entry.js +281 -148
  152. package/dist/cjs/bcm-switch.entry.cjs.js.map +1 -1
  153. package/dist/cjs/bcm-tab.cjs.entry.js +44 -0
  154. package/dist/cjs/bcm-tab.entry.cjs.js.map +1 -0
  155. package/dist/cjs/bcm-tabs.cjs.entry.js +191 -237
  156. package/dist/cjs/bcm-tabs.entry.cjs.js.map +1 -1
  157. package/dist/cjs/bcm-text.cjs.entry.js +86 -85
  158. package/dist/cjs/bcm-text.entry.cjs.js.map +1 -1
  159. package/dist/cjs/bcm-textarea.cjs.entry.js +224 -154
  160. package/dist/cjs/bcm-textarea.entry.cjs.js.map +1 -1
  161. package/dist/cjs/bcm-tooltip.cjs.entry.js +414 -0
  162. package/dist/cjs/bcm-tooltip.entry.cjs.js.map +1 -0
  163. package/dist/cjs/bromcom-ui.cjs.js +2 -2
  164. package/dist/cjs/floating-ui.dom-S9nP6zZt.js +1622 -0
  165. package/dist/{bromcom-ui/floating-ui.dom-ltNPqX34.js.map → cjs/floating-ui.dom-S9nP6zZt.js.map} +1 -1
  166. package/dist/cjs/{index-CmYzUr-k.js → index-1Qal-onT.js} +111 -33
  167. package/dist/cjs/index-1Qal-onT.js.map +1 -0
  168. package/dist/cjs/loader.cjs.js +2 -2
  169. package/dist/cjs/{validation-messages-BjfpSEWk.js → validation-messages-DieKlSG4.js} +6 -7
  170. package/dist/{esm/validation-messages-CUvT12BL.js.map → cjs/validation-messages-DieKlSG4.js.map} +1 -1
  171. package/dist/collection/collection-manifest.json +4 -5
  172. package/dist/collection/components/_shared/form/base-choice-control.js +90 -0
  173. package/dist/collection/components/_shared/form/base-choice-control.js.map +1 -0
  174. package/dist/collection/components/_shared/form/base-form-control.js +115 -0
  175. package/dist/collection/components/_shared/form/base-form-control.js.map +1 -0
  176. package/dist/collection/components/accordion/accordion.component.js +72 -55
  177. package/dist/collection/components/accordion/accordion.component.js.map +1 -1
  178. package/dist/collection/components/accordion/accordion.css +1 -1
  179. package/dist/collection/components/accordion-group/accordion-group.component.js +20 -18
  180. package/dist/collection/components/accordion-group/accordion-group.component.js.map +1 -1
  181. package/dist/collection/components/alert/alert.component.js +19 -21
  182. package/dist/collection/components/alert/alert.component.js.map +1 -1
  183. package/dist/collection/components/alert/alert.css +1 -1
  184. package/dist/collection/components/avatar/avatar.component.js +20 -12
  185. package/dist/collection/components/avatar/avatar.component.js.map +1 -1
  186. package/dist/collection/components/avatar/avatar.css +1 -1
  187. package/dist/collection/components/badge/badge.component.js +111 -81
  188. package/dist/collection/components/badge/badge.component.js.map +1 -1
  189. package/dist/collection/components/badge/badge.css +1 -1
  190. package/dist/collection/components/basic-badge/basic-badge.component.js +70 -58
  191. package/dist/collection/components/basic-badge/basic-badge.component.js.map +1 -1
  192. package/dist/collection/components/basic-badge/basic-badge.css +1 -1
  193. package/dist/collection/components/button/button.component.js +105 -84
  194. package/dist/collection/components/button/button.component.js.map +1 -1
  195. package/dist/collection/components/button/button.css +1 -1
  196. package/dist/collection/components/button-group/button-group.component.js +34 -23
  197. package/dist/collection/components/button-group/button-group.component.js.map +1 -1
  198. package/dist/collection/components/button-group/button-group.css +1 -1
  199. package/dist/collection/components/checkbox/checkbox.component.js +355 -236
  200. package/dist/collection/components/checkbox/checkbox.component.js.map +1 -1
  201. package/dist/collection/components/checkbox/checkbox.css +1 -1
  202. package/dist/collection/components/chip/chip.component.js +35 -34
  203. package/dist/collection/components/chip/chip.component.js.map +1 -1
  204. package/dist/collection/components/chip/chip.css +1 -1
  205. package/dist/collection/components/divider/divider.component.js +53 -55
  206. package/dist/collection/components/divider/divider.component.js.map +1 -1
  207. package/dist/collection/components/drawer/drawer.component.js +168 -144
  208. package/dist/collection/components/drawer/drawer.component.js.map +1 -1
  209. package/dist/collection/components/dropdown/dropdown.component.js +16 -16
  210. package/dist/collection/components/dropdown/dropdown.component.js.map +1 -1
  211. package/dist/collection/components/dropdown/dropdown.css +1 -1
  212. package/dist/collection/components/dropdown-item/dropdown-item.component.js +34 -32
  213. package/dist/collection/components/dropdown-item/dropdown-item.component.js.map +1 -1
  214. package/dist/collection/components/dropdown-item/dropdown-item.css +1 -1
  215. package/dist/collection/components/input/input.component.js +241 -155
  216. package/dist/collection/components/input/input.component.js.map +1 -1
  217. package/dist/collection/components/linked/linked.component.js +160 -138
  218. package/dist/collection/components/linked/linked.component.js.map +1 -1
  219. package/dist/collection/components/linked/linked.css +1 -1
  220. package/dist/collection/components/modal/modal.component.js +180 -156
  221. package/dist/collection/components/modal/modal.component.js.map +1 -1
  222. package/dist/collection/components/pop-confirm/pop-confirm.component.js +190 -159
  223. package/dist/collection/components/pop-confirm/pop-confirm.component.js.map +1 -1
  224. package/dist/collection/components/pop-confirm/pop-confirm.css +1 -1
  225. package/dist/collection/components/popover/popover.component.js +240 -212
  226. package/dist/collection/components/popover/popover.component.js.map +1 -1
  227. package/dist/collection/components/popover/popover.css +1 -1
  228. package/dist/collection/components/radio/radio.component.js +282 -106
  229. package/dist/collection/components/radio/radio.component.js.map +1 -1
  230. package/dist/collection/components/radio-group/radio-group.component.js +102 -80
  231. package/dist/collection/components/radio-group/radio-group.component.js.map +1 -1
  232. package/dist/collection/components/segmented-picker/segment.component.js +228 -0
  233. package/dist/collection/components/segmented-picker/segment.component.js.map +1 -0
  234. package/dist/collection/components/segmented-picker/segment.css +1 -0
  235. package/dist/collection/components/segmented-picker/segmented-picker.component.js +354 -139
  236. package/dist/collection/components/segmented-picker/segmented-picker.component.js.map +1 -1
  237. package/dist/collection/components/segmented-picker/segmented-picker.css +1 -1
  238. package/dist/collection/components/shortcut/shortcut.js +4 -5
  239. package/dist/collection/components/shortcut/shortcut.js.map +1 -1
  240. package/dist/collection/components/switch/switch.component.js +350 -280
  241. package/dist/collection/components/switch/switch.component.js.map +1 -1
  242. package/dist/collection/components/switch/switch.css +1 -1
  243. package/dist/collection/components/tabs/bcm-tab.css +1 -0
  244. package/dist/collection/components/tabs/bcm-tabs.css +1 -1
  245. package/dist/collection/components/tabs/tab.component.js +169 -0
  246. package/dist/collection/components/tabs/tab.component.js.map +1 -0
  247. package/dist/collection/components/tabs/tabs.component.js +221 -352
  248. package/dist/collection/components/tabs/tabs.component.js.map +1 -1
  249. package/dist/collection/components/text/text.component.js +84 -85
  250. package/dist/collection/components/text/text.component.js.map +1 -1
  251. package/dist/collection/components/text/text.css +1 -1
  252. package/dist/collection/components/textarea/textarea.component.js +216 -153
  253. package/dist/collection/components/textarea/textarea.component.js.map +1 -1
  254. package/dist/collection/components/tooltip/tooltip.component.js +164 -154
  255. package/dist/collection/components/tooltip/tooltip.component.js.map +1 -1
  256. package/dist/collection/components/upload/file-upload.component.js +905 -0
  257. package/dist/collection/components/upload/file-upload.component.js.map +1 -0
  258. package/dist/collection/components/upload/file-upload.css +1 -0
  259. package/dist/collection/global/global.js +33 -30
  260. package/dist/collection/utils/i18n.js +3 -4
  261. package/dist/collection/utils/i18n.js.map +1 -1
  262. package/dist/collection/utils/slot/check-slot-content.js +1 -2
  263. package/dist/collection/utils/slot/check-slot-content.js.map +1 -1
  264. package/dist/collection/utils/validation-messages.js +1 -1
  265. package/dist/collection/utils/validation-messages.js.map +1 -1
  266. package/dist/components/bcm-accordion-group.js +19 -17
  267. package/dist/components/bcm-accordion-group.js.map +1 -1
  268. package/dist/components/bcm-accordion.js +72 -55
  269. package/dist/components/bcm-accordion.js.map +1 -1
  270. package/dist/components/bcm-alert.js +1 -114
  271. package/dist/components/bcm-alert.js.map +1 -1
  272. package/dist/components/bcm-avatar.js +22 -12
  273. package/dist/components/bcm-avatar.js.map +1 -1
  274. package/dist/components/bcm-badge.js +1 -1
  275. package/dist/components/bcm-basic-badge.js +72 -58
  276. package/dist/components/bcm-basic-badge.js.map +1 -1
  277. package/dist/components/bcm-button-group.js +35 -23
  278. package/dist/components/bcm-button-group.js.map +1 -1
  279. package/dist/components/bcm-button.js +1 -1
  280. package/dist/components/bcm-checkbox.js +296 -184
  281. package/dist/components/bcm-checkbox.js.map +1 -1
  282. package/dist/components/bcm-chip.js +37 -34
  283. package/dist/components/bcm-chip.js.map +1 -1
  284. package/dist/components/bcm-divider.js +54 -54
  285. package/dist/components/bcm-divider.js.map +1 -1
  286. package/dist/components/bcm-drawer.js +169 -144
  287. package/dist/components/bcm-drawer.js.map +1 -1
  288. package/dist/components/bcm-dropdown-item.js +35 -32
  289. package/dist/components/bcm-dropdown-item.js.map +1 -1
  290. package/dist/components/bcm-dropdown.js +19 -18
  291. package/dist/components/bcm-dropdown.js.map +1 -1
  292. package/dist/components/{bcm-tabs-content.d.ts → bcm-file-upload.d.ts} +4 -4
  293. package/dist/components/bcm-file-upload.js +593 -0
  294. package/dist/components/bcm-file-upload.js.map +1 -0
  295. package/dist/components/bcm-input.js +244 -158
  296. package/dist/components/bcm-input.js.map +1 -1
  297. package/dist/components/bcm-linked.js +1 -1
  298. package/dist/components/bcm-modal.js +181 -156
  299. package/dist/components/bcm-modal.js.map +1 -1
  300. package/dist/components/bcm-pop-confirm.js +192 -160
  301. package/dist/components/bcm-pop-confirm.js.map +1 -1
  302. package/dist/components/bcm-popover.js +242 -213
  303. package/dist/components/bcm-popover.js.map +1 -1
  304. package/dist/components/bcm-radio-group.js +102 -79
  305. package/dist/components/bcm-radio-group.js.map +1 -1
  306. package/dist/components/bcm-radio.js +241 -108
  307. package/dist/components/bcm-radio.js.map +1 -1
  308. package/dist/components/{bcm-tabs-list.d.ts → bcm-segment.d.ts} +4 -4
  309. package/dist/components/bcm-segment.js +110 -0
  310. package/dist/components/bcm-segment.js.map +1 -0
  311. package/dist/components/bcm-segmented-picker.js +234 -115
  312. package/dist/components/bcm-segmented-picker.js.map +1 -1
  313. package/dist/components/bcm-shortcut.js +4 -3
  314. package/dist/components/bcm-shortcut.js.map +1 -1
  315. package/dist/components/bcm-switch.js +292 -156
  316. package/dist/components/bcm-switch.js.map +1 -1
  317. package/dist/components/{bcm-tabs-trigger.d.ts → bcm-tab.d.ts} +4 -4
  318. package/dist/components/bcm-tab.js +71 -0
  319. package/dist/components/bcm-tab.js.map +1 -0
  320. package/dist/components/bcm-tabs.js +196 -247
  321. package/dist/components/bcm-tabs.js.map +1 -1
  322. package/dist/components/bcm-text.js +85 -84
  323. package/dist/components/bcm-text.js.map +1 -1
  324. package/dist/components/bcm-textarea.js +218 -154
  325. package/dist/components/bcm-textarea.js.map +1 -1
  326. package/dist/components/bcm-tooltip.js +164 -153
  327. package/dist/components/bcm-tooltip.js.map +1 -1
  328. package/dist/components/index.js +105 -32
  329. package/dist/components/index.js.map +1 -1
  330. package/dist/components/p-5_TgtzQU.js +119 -0
  331. package/dist/components/p-5_TgtzQU.js.map +1 -0
  332. package/dist/components/p-RlBWOSgL.js +179 -0
  333. package/dist/components/p-RlBWOSgL.js.map +1 -0
  334. package/dist/components/p-SERXqWcS.js +51 -0
  335. package/dist/components/p-SERXqWcS.js.map +1 -0
  336. package/dist/components/{p-CUvT12BL.js → p-nf_HKsGq.js} +6 -7
  337. package/dist/components/p-nf_HKsGq.js.map +1 -0
  338. package/dist/components/{p-CsIBm0J5.js → p-xQIzBLsS.js} +108 -85
  339. package/dist/components/p-xQIzBLsS.js.map +1 -0
  340. package/dist/components/{p-6VLsKZvR.js → p-z9ESseGb.js} +163 -140
  341. package/dist/components/p-z9ESseGb.js.map +1 -0
  342. package/dist/esm/base-choice-control-CKR8UdZ6.js +52 -0
  343. package/dist/esm/base-choice-control-CKR8UdZ6.js.map +1 -0
  344. package/dist/esm/bcm-accordion-group.entry.js +20 -18
  345. package/dist/esm/bcm-accordion-group.entry.js.map +1 -1
  346. package/dist/esm/bcm-accordion.entry.js +73 -56
  347. package/dist/esm/bcm-accordion.entry.js.map +1 -1
  348. package/dist/esm/bcm-alert.entry.js +21 -21
  349. package/dist/esm/bcm-alert.entry.js.map +1 -1
  350. package/dist/esm/bcm-avatar.entry.js +22 -12
  351. package/dist/esm/bcm-avatar.entry.js.map +1 -1
  352. package/dist/esm/bcm-badge.entry.js +114 -82
  353. package/dist/esm/bcm-badge.entry.js.map +1 -1
  354. package/dist/esm/bcm-basic-badge.entry.js +73 -59
  355. package/dist/esm/bcm-basic-badge.entry.js.map +1 -1
  356. package/dist/esm/bcm-button-group.entry.js +36 -24
  357. package/dist/esm/bcm-button-group.entry.js.map +1 -1
  358. package/dist/esm/bcm-button.entry.js +336 -0
  359. package/dist/esm/bcm-button.entry.js.map +1 -0
  360. package/dist/esm/bcm-checkbox.entry.js +284 -174
  361. package/dist/esm/bcm-checkbox.entry.js.map +1 -1
  362. package/dist/esm/bcm-chip.entry.js +38 -35
  363. package/dist/esm/bcm-chip.entry.js.map +1 -1
  364. package/dist/esm/bcm-divider.entry.js +55 -55
  365. package/dist/esm/bcm-divider.entry.js.map +1 -1
  366. package/dist/esm/bcm-drawer.entry.js +330 -0
  367. package/dist/esm/bcm-drawer.entry.js.map +1 -0
  368. package/dist/esm/bcm-dropdown-item.entry.js +36 -33
  369. package/dist/esm/bcm-dropdown-item.entry.js.map +1 -1
  370. package/dist/esm/bcm-dropdown.entry.js +18 -17
  371. package/dist/esm/bcm-dropdown.entry.js.map +1 -1
  372. package/dist/esm/bcm-file-upload.entry.js +550 -0
  373. package/dist/esm/bcm-file-upload.entry.js.map +1 -0
  374. package/dist/esm/bcm-input.entry.js +250 -158
  375. package/dist/esm/bcm-input.entry.js.map +1 -1
  376. package/dist/esm/bcm-linked.entry.js +450 -0
  377. package/dist/esm/bcm-linked.entry.js.map +1 -0
  378. package/dist/esm/bcm-modal.entry.js +358 -0
  379. package/dist/esm/bcm-modal.entry.js.map +1 -0
  380. package/dist/esm/bcm-pop-confirm.entry.js +379 -0
  381. package/dist/esm/bcm-pop-confirm.entry.js.map +1 -0
  382. package/dist/esm/bcm-popover.entry.js +449 -0
  383. package/dist/esm/bcm-popover.entry.js.map +1 -0
  384. package/dist/esm/bcm-radio-group.entry.js +103 -80
  385. package/dist/esm/bcm-radio-group.entry.js.map +1 -1
  386. package/dist/esm/bcm-radio.entry.js +239 -106
  387. package/dist/esm/bcm-radio.entry.js.map +1 -1
  388. package/dist/esm/bcm-segment.bcm-segmented-picker.entry.js.map +1 -0
  389. package/dist/esm/bcm-segment_2.entry.js +332 -0
  390. package/dist/esm/bcm-shortcut.entry.js +5 -4
  391. package/dist/esm/bcm-shortcut.entry.js.map +1 -1
  392. package/dist/esm/bcm-switch.entry.js +281 -148
  393. package/dist/esm/bcm-switch.entry.js.map +1 -1
  394. package/dist/esm/bcm-tab.entry.js +42 -0
  395. package/dist/esm/bcm-tab.entry.js.map +1 -0
  396. package/dist/esm/bcm-tabs.entry.js +191 -237
  397. package/dist/esm/bcm-tabs.entry.js.map +1 -1
  398. package/dist/esm/bcm-text.entry.js +86 -85
  399. package/dist/esm/bcm-text.entry.js.map +1 -1
  400. package/dist/esm/bcm-textarea.entry.js +224 -154
  401. package/dist/esm/bcm-textarea.entry.js.map +1 -1
  402. package/dist/esm/bcm-tooltip.entry.js +412 -0
  403. package/dist/esm/bcm-tooltip.entry.js.map +1 -0
  404. package/dist/esm/bromcom-ui.js +3 -3
  405. package/dist/esm/floating-ui.dom-DBDSgIvP.js +1615 -0
  406. package/dist/esm/floating-ui.dom-DBDSgIvP.js.map +1 -0
  407. package/dist/esm/{index-CRwAh9Np.js → index-B6Ppbs5O.js} +111 -34
  408. package/dist/esm/index-B6Ppbs5O.js.map +1 -0
  409. package/dist/esm/loader.js +3 -3
  410. package/dist/esm/{validation-messages-CUvT12BL.js → validation-messages-nf_HKsGq.js} +6 -7
  411. package/dist/{cjs/validation-messages-BjfpSEWk.js.map → esm/validation-messages-nf_HKsGq.js.map} +1 -1
  412. package/dist/types/components/_shared/form/base-choice-control.d.ts +15 -0
  413. package/dist/types/components/_shared/form/base-form-control.d.ts +11 -0
  414. package/dist/types/components/checkbox/checkbox.component.d.ts +89 -71
  415. package/dist/types/components/input/input.component.d.ts +5 -0
  416. package/dist/types/components/radio/radio.component.d.ts +21 -0
  417. package/dist/types/components/segmented-picker/segment.component.d.ts +42 -0
  418. package/dist/types/components/segmented-picker/segmented-picker.component.d.ts +91 -24
  419. package/dist/types/components/switch/switch.component.d.ts +83 -43
  420. package/dist/types/components/tabs/tab.component.d.ts +33 -0
  421. package/dist/types/components/tabs/tabs.component.d.ts +51 -64
  422. package/dist/types/components/textarea/textarea.component.d.ts +5 -0
  423. package/dist/types/components/upload/file-upload.component.d.ts +107 -0
  424. package/dist/types/components.d.ts +830 -382
  425. package/package.json +2 -2
  426. package/dist/bromcom-ui/_commonjsHelpers-CvGrISen.js.map +0 -1
  427. package/dist/bromcom-ui/bcm-button.bcm-drawer.bcm-linked.bcm-modal.bcm-pop-confirm.bcm-popover.bcm-tooltip.entry.esm.js.map +0 -1
  428. package/dist/bromcom-ui/bcm-segmented-picker-option.entry.esm.js.map +0 -1
  429. package/dist/bromcom-ui/bcm-segmented-picker.entry.esm.js.map +0 -1
  430. package/dist/bromcom-ui/bcm-tabs-content.entry.esm.js.map +0 -1
  431. package/dist/bromcom-ui/bcm-tabs-list.entry.esm.js.map +0 -1
  432. package/dist/bromcom-ui/bcm-tabs-trigger.entry.esm.js.map +0 -1
  433. package/dist/bromcom-ui/generate-id-Crb5QsB-.js.map +0 -1
  434. package/dist/bromcom-ui/index-40rmUZjU.js.map +0 -1
  435. package/dist/bromcom-ui/index-BCaJmHBB.js.map +0 -1
  436. package/dist/bromcom-ui/p-0c7c6896.entry.js +0 -2
  437. package/dist/bromcom-ui/p-0c7c6896.entry.js.map +0 -1
  438. package/dist/bromcom-ui/p-11d0e649.entry.js +0 -2
  439. package/dist/bromcom-ui/p-11d0e649.entry.js.map +0 -1
  440. package/dist/bromcom-ui/p-12f38632.entry.js +0 -2
  441. package/dist/bromcom-ui/p-12f38632.entry.js.map +0 -1
  442. package/dist/bromcom-ui/p-13cbd1f5.entry.js +0 -2
  443. package/dist/bromcom-ui/p-13cbd1f5.entry.js.map +0 -1
  444. package/dist/bromcom-ui/p-1507908f.entry.js.map +0 -1
  445. package/dist/bromcom-ui/p-1ce9913f.entry.js +0 -2
  446. package/dist/bromcom-ui/p-1ce9913f.entry.js.map +0 -1
  447. package/dist/bromcom-ui/p-206d767e.entry.js +0 -2
  448. package/dist/bromcom-ui/p-206d767e.entry.js.map +0 -1
  449. package/dist/bromcom-ui/p-3cf7a7f4.entry.js +0 -2
  450. package/dist/bromcom-ui/p-3cf7a7f4.entry.js.map +0 -1
  451. package/dist/bromcom-ui/p-4505feba.entry.js +0 -2
  452. package/dist/bromcom-ui/p-4505feba.entry.js.map +0 -1
  453. package/dist/bromcom-ui/p-496014ca.entry.js.map +0 -1
  454. package/dist/bromcom-ui/p-4a932cd3.entry.js +0 -2
  455. package/dist/bromcom-ui/p-4a932cd3.entry.js.map +0 -1
  456. package/dist/bromcom-ui/p-4e554b8d.entry.js +0 -2
  457. package/dist/bromcom-ui/p-4e554b8d.entry.js.map +0 -1
  458. package/dist/bromcom-ui/p-57c4c4c4.entry.js +0 -2
  459. package/dist/bromcom-ui/p-57c4c4c4.entry.js.map +0 -1
  460. package/dist/bromcom-ui/p-61293ab2.entry.js +0 -2
  461. package/dist/bromcom-ui/p-61293ab2.entry.js.map +0 -1
  462. package/dist/bromcom-ui/p-61789456.entry.js +0 -2
  463. package/dist/bromcom-ui/p-61789456.entry.js.map +0 -1
  464. package/dist/bromcom-ui/p-65d0f188.entry.js +0 -2
  465. package/dist/bromcom-ui/p-65d0f188.entry.js.map +0 -1
  466. package/dist/bromcom-ui/p-83f707dc.entry.js +0 -2
  467. package/dist/bromcom-ui/p-83f707dc.entry.js.map +0 -1
  468. package/dist/bromcom-ui/p-8ba02e7e.entry.js +0 -2
  469. package/dist/bromcom-ui/p-8ba02e7e.entry.js.map +0 -1
  470. package/dist/bromcom-ui/p-9e9bf32e.entry.js +0 -2
  471. package/dist/bromcom-ui/p-9e9bf32e.entry.js.map +0 -1
  472. package/dist/bromcom-ui/p-CRwAh9Np.js +0 -3
  473. package/dist/bromcom-ui/p-CRwAh9Np.js.map +0 -1
  474. package/dist/bromcom-ui/p-CUvT12BL.js +0 -2
  475. package/dist/bromcom-ui/p-c87a6acf.entry.js +0 -2
  476. package/dist/bromcom-ui/p-c87a6acf.entry.js.map +0 -1
  477. package/dist/bromcom-ui/p-e0e235a8.entry.js +0 -2
  478. package/dist/bromcom-ui/p-e0e235a8.entry.js.map +0 -1
  479. package/dist/bromcom-ui/p-e1ce8b55.entry.js +0 -2
  480. package/dist/bromcom-ui/p-e1ce8b55.entry.js.map +0 -1
  481. package/dist/bromcom-ui/p-e4dddb0b.entry.js +0 -2
  482. package/dist/bromcom-ui/p-e4dddb0b.entry.js.map +0 -1
  483. package/dist/bromcom-ui/p-f9426924.entry.js +0 -2
  484. package/dist/bromcom-ui/p-f9426924.entry.js.map +0 -1
  485. package/dist/bromcom-ui/p-faa0e62c.entry.js +0 -2
  486. package/dist/bromcom-ui/p-faa0e62c.entry.js.map +0 -1
  487. package/dist/bromcom-ui/p-fcb4399f.entry.js +0 -2
  488. package/dist/bromcom-ui/p-fcb4399f.entry.js.map +0 -1
  489. package/dist/bromcom-ui/tv-SlGJ5EfR.js.map +0 -1
  490. package/dist/bromcom-ui/validation-messages-CUvT12BL.js.map +0 -1
  491. package/dist/cjs/bcm-button.bcm-drawer.bcm-linked.bcm-modal.bcm-pop-confirm.bcm-popover.bcm-tooltip.entry.cjs.js.map +0 -1
  492. package/dist/cjs/bcm-button_7.cjs.entry.js +0 -4131
  493. package/dist/cjs/bcm-segmented-picker-option.cjs.entry.js +0 -105
  494. package/dist/cjs/bcm-segmented-picker-option.entry.cjs.js.map +0 -1
  495. package/dist/cjs/bcm-segmented-picker.cjs.entry.js +0 -142
  496. package/dist/cjs/bcm-segmented-picker.entry.cjs.js.map +0 -1
  497. package/dist/cjs/bcm-tabs-content.cjs.entry.js +0 -18
  498. package/dist/cjs/bcm-tabs-content.entry.cjs.js.map +0 -1
  499. package/dist/cjs/bcm-tabs-list.cjs.entry.js +0 -82
  500. package/dist/cjs/bcm-tabs-list.entry.cjs.js.map +0 -1
  501. package/dist/cjs/bcm-tabs-trigger.cjs.entry.js +0 -120
  502. package/dist/cjs/bcm-tabs-trigger.entry.cjs.js.map +0 -1
  503. package/dist/cjs/index-CmYzUr-k.js.map +0 -1
  504. package/dist/collection/components/segmented-picker/segmented-picker-option.component.js +0 -253
  505. package/dist/collection/components/segmented-picker/segmented-picker-option.component.js.map +0 -1
  506. package/dist/collection/components/segmented-picker/segmented-picker-option.css +0 -1
  507. package/dist/collection/components/tabs/tabs-content.component.js +0 -46
  508. package/dist/collection/components/tabs/tabs-content.component.js.map +0 -1
  509. package/dist/collection/components/tabs/tabs-content.css +0 -1
  510. package/dist/collection/components/tabs/tabs-list.component.js +0 -133
  511. package/dist/collection/components/tabs/tabs-list.component.js.map +0 -1
  512. package/dist/collection/components/tabs/tabs-list.css +0 -1
  513. package/dist/collection/components/tabs/tabs-trigger.component.js +0 -267
  514. package/dist/collection/components/tabs/tabs-trigger.component.js.map +0 -1
  515. package/dist/collection/components/tabs/tabs-trigger.css +0 -1
  516. package/dist/components/bcm-segmented-picker-option.d.ts +0 -11
  517. package/dist/components/bcm-segmented-picker-option.js +0 -133
  518. package/dist/components/bcm-segmented-picker-option.js.map +0 -1
  519. package/dist/components/bcm-tabs-content.js +0 -41
  520. package/dist/components/bcm-tabs-content.js.map +0 -1
  521. package/dist/components/bcm-tabs-list.js +0 -106
  522. package/dist/components/bcm-tabs-list.js.map +0 -1
  523. package/dist/components/bcm-tabs-trigger.js +0 -148
  524. package/dist/components/bcm-tabs-trigger.js.map +0 -1
  525. package/dist/components/p-6VLsKZvR.js.map +0 -1
  526. package/dist/components/p-CUvT12BL.js.map +0 -1
  527. package/dist/components/p-CaemikSK.js +0 -147
  528. package/dist/components/p-CaemikSK.js.map +0 -1
  529. package/dist/components/p-CsIBm0J5.js.map +0 -1
  530. package/dist/esm/bcm-button.bcm-drawer.bcm-linked.bcm-modal.bcm-pop-confirm.bcm-popover.bcm-tooltip.entry.js.map +0 -1
  531. package/dist/esm/bcm-button_7.entry.js +0 -4123
  532. package/dist/esm/bcm-segmented-picker-option.entry.js +0 -103
  533. package/dist/esm/bcm-segmented-picker-option.entry.js.map +0 -1
  534. package/dist/esm/bcm-segmented-picker.entry.js +0 -140
  535. package/dist/esm/bcm-segmented-picker.entry.js.map +0 -1
  536. package/dist/esm/bcm-tabs-content.entry.js +0 -16
  537. package/dist/esm/bcm-tabs-content.entry.js.map +0 -1
  538. package/dist/esm/bcm-tabs-list.entry.js +0 -80
  539. package/dist/esm/bcm-tabs-list.entry.js.map +0 -1
  540. package/dist/esm/bcm-tabs-trigger.entry.js +0 -118
  541. package/dist/esm/bcm-tabs-trigger.entry.js.map +0 -1
  542. package/dist/esm/index-CRwAh9Np.js.map +0 -1
  543. package/dist/types/components/segmented-picker/segmented-picker-option.component.d.ts +0 -30
  544. package/dist/types/components/tabs/tabs-content.component.d.ts +0 -13
  545. package/dist/types/components/tabs/tabs-list.component.d.ts +0 -20
  546. package/dist/types/components/tabs/tabs-trigger.component.d.ts +0 -49
@@ -0,0 +1,379 @@
1
+ import { r as registerInstance, c as createEvent, a as getElement, h } from './index-B6Ppbs5O.js';
2
+ import { a as autoUpdate, c as computePosition, o as offset, f as flip, s as shift, b as arrow } from './floating-ui.dom-DBDSgIvP.js';
3
+ import { t as tv } from './tv-CEcVC0yX.js';
4
+
5
+ const popConfirmCss = ".visible{visibility:visible}.transform{transform:translate(var(--tw-translate-x),var(--tw-translate-y)) rotate(var(--tw-rotate)) skewX(var(--tw-skew-x)) skewY(var(--tw-skew-y)) scaleX(var(--tw-scale-x)) scaleY(var(--tw-scale-y))}.text-wrap{text-wrap:wrap}.border{border-width:1px}.transition{transition-duration:.15s;transition-property:color,background-color,border-color,text-decoration-color,fill,stroke,opacity,box-shadow,transform,filter,backdrop-filter;transition-timing-function:cubic-bezier(.4,0,.2,1)}:host{--popover-bg:var(--bcm-ui-color-background-basic-panel);display:inline-block}[popover]{border:none;overflow:visible;padding:0}[popover]:not(:popover-open){display:none}[popover]:popover-open{opacity:1;transform:scale(1);transition:opacity .15s ease-out,transform .15s ease-out}@starting-style{[popover]:popover-open{opacity:0;transform:scale(.95)}}::slotted([slot=body]){text-wrap:pretty;font-family:Inter,sans-serif}.container{width:100%}@media (min-width:640px){.container{max-width:640px}}@media (min-width:768px){.container{max-width:768px}}@media (min-width:1024px){.container{max-width:1024px}}@media (min-width:1280px){.container{max-width:1280px}}@media (min-width:1536px){.container{max-width:1536px}}.bcm-ui-element{-webkit-font-smoothing:antialiased;-moz-osx-font-smoothing:grayscale;font-family:Inter,sans-serif}.static{position:static}.fixed{position:fixed}.absolute{position:absolute}.relative{position:relative}.right-3{right:.75rem}.right-4{right:1rem}.right-6{right:1.5rem}.top-3{top:.75rem}.top-4{top:1rem}.top-6{top:1.5rem}.z-\\[9999\\]{z-index:9999}.m-0{margin:0}.inline-block{display:inline-block}.flex{display:flex}.hidden{display:none}.size-6{height:1.5rem;width:1.5rem}.h-3{height:.75rem}.w-3{width:.75rem}.max-w-64{max-width:16rem}.max-w-80{max-width:20rem}.max-w-96{max-width:24rem}.flex-1{flex:1 1 0%}.rotate-45{--tw-rotate:45deg;transform:translate(var(--tw-translate-x),var(--tw-translate-y)) rotate(var(--tw-rotate)) skewX(var(--tw-skew-x)) skewY(var(--tw-skew-y)) scaleX(var(--tw-scale-x)) scaleY(var(--tw-scale-y))}.cursor-pointer{cursor:pointer}.flex-row{flex-direction:row}.flex-col{flex-direction:column}.items-center{align-items:center}.justify-end{justify-content:flex-end}.justify-center{justify-content:center}.gap-2{gap:.5rem}.gap-4{gap:1rem}.gap-6{gap:1.5rem}.gap-8{gap:2rem}.text-pretty{text-wrap:pretty}.rounded-full{border-radius:var(--bcm-ui-border-radius-full,9999px)}.rounded-lg{border-radius:var(--bcm-ui-border-radius-lg,8px)}.bg-\\[--popover-bg\\]{background-color:var(--popover-bg)}.p-4{padding:1rem}.p-6{padding:1.5rem}.p-8{padding:2rem}.pr-8{padding-right:2rem}.font-sans{font-family:Inter,sans-serif}.text-size-4{font-size:var(--bcm-ui-font-size-4,14px);line-height:var(--bcm-ui-line-height-4,20px)}.text-size-5{font-size:var(--bcm-ui-font-size-5,16px);line-height:var(--bcm-ui-line-height-5,24px)}.text-size-6{font-size:var(--bcm-ui-font-size-6,18px);line-height:var(--bcm-ui-line-height-6,24px)}.text-size-7{font-size:var(--bcm-ui-font-size-7,20px);line-height:var(--bcm-ui-line-height-7,28px)}.font-semibold{font-weight:600}.\\!text-color-header{color:var(--bcm-ui-color-text-header)!important}.text-\\[var\\(--bcm-ui-color-text-error\\)\\]{color:var(--bcm-ui-color-text-error)}.text-\\[var\\(--bcm-ui-color-text-info\\)\\]{color:var(--bcm-ui-color-text-info)}.text-\\[var\\(--bcm-ui-color-text-success\\)\\]{color:var(--bcm-ui-color-text-success)}.text-\\[var\\(--bcm-ui-color-text-warning\\)\\]{color:var(--bcm-ui-color-text-warning)}.shadow{--tw-shadow:var(--bcm-ui-box-shadow-default);--tw-shadow-colored:var(--bcm-ui-box-shadow-default)}.shadow,.shadow-3{box-shadow:var(--tw-ring-offset-shadow,0 0 #0000),var(--tw-ring-shadow,0 0 #0000),var(--tw-shadow)}.shadow-3{--tw-shadow:var(--bcm-ui-box-shadow-3);--tw-shadow-colored:var(--bcm-ui-box-shadow-3)}.outline{outline-style:solid}.filter{filter:var(--tw-blur) var(--tw-brightness) var(--tw-contrast) var(--tw-grayscale) var(--tw-hue-rotate) var(--tw-invert) var(--tw-saturate) var(--tw-sepia) var(--tw-drop-shadow)}.hover\\:bg-gray-100:hover{background-color:oklch(.967 .003 264.542)}";
6
+
7
+ const statusIcons = {
8
+ info: 'fa-solid fa-circle-info',
9
+ success: 'fa-solid fa-circle-check',
10
+ warning: 'fa-solid fa-triangle-exclamation',
11
+ error: 'fa-solid fa-circle-xmark',
12
+ };
13
+ const BcmPopConfirm = class {
14
+ constructor(hostRef) {
15
+ registerInstance(this, hostRef);
16
+ this.bcmBeforeOpen = createEvent(this, "bcmBeforeOpen", 1);
17
+ this.bcmOpen = createEvent(this, "bcmOpen", 1);
18
+ this.bcmBeforeClose = createEvent(this, "bcmBeforeClose", 1);
19
+ this.bcmClose = createEvent(this, "bcmClose", 1);
20
+ this.bcmConfirm = createEvent(this, "bcmConfirm", 1);
21
+ this.bcmCancel = createEvent(this, "bcmCancel", 1);
22
+ }
23
+ get host() { return getElement(this); }
24
+ popconfirmRef;
25
+ arrowRef;
26
+ triggerRef;
27
+ cleanupAutoUpdate;
28
+ popconfirmId;
29
+ /**
30
+ * @prop {PopConfirmPlacement} placement - Position of the popover relative to the trigger element.
31
+ * Automatically flips if there's not enough space.
32
+ * Default: 'top'
33
+ */
34
+ placement = 'top';
35
+ /**
36
+ * @prop {PopConfirmSize} size - Size variant that controls padding and text size.
37
+ * - 'small': Compact size with minimal padding
38
+ * - 'medium': Standard size
39
+ * - 'large': Spacious size with more padding
40
+ * Default: 'medium'
41
+ */
42
+ size = 'medium';
43
+ /**
44
+ * @prop {PopConfirmStatus} status - Status type that determines the color scheme and icon.
45
+ * - 'info': Informational (blue)
46
+ * - 'success': Success/positive action (green)
47
+ * - 'warning': Warning/caution (yellow)
48
+ * - 'error': Error/destructive action (red)
49
+ * Default: 'info'
50
+ */
51
+ status = 'info';
52
+ /**
53
+ * @prop {string} headerText - Text displayed in the header section.
54
+ * Can be overridden by using the 'header' slot.
55
+ * Default: ''
56
+ */
57
+ headerText = '';
58
+ /**
59
+ * @prop {string} description - Description text displayed in the body section.
60
+ * Can be overridden by using the 'body' slot.
61
+ * Default: ''
62
+ */
63
+ description = '';
64
+ /**
65
+ * @prop {string} confirmText - Text for the confirm button.
66
+ * Default: 'Yes'
67
+ */
68
+ confirmText = 'Yes';
69
+ /**
70
+ * @prop {string} cancelText - Text for the cancel button.
71
+ * Default: 'Cancel'
72
+ */
73
+ cancelText = 'Cancel';
74
+ /**
75
+ * @prop {boolean} showArrow - Whether to show the arrow pointing to the trigger.
76
+ * Default: true
77
+ */
78
+ showArrow = true;
79
+ /**
80
+ * @prop {boolean} statusIcon - Whether to show the status icon in the header.
81
+ * Icon only shows if headerText is also provided.
82
+ * Default: true
83
+ */
84
+ statusIcon = true;
85
+ /**
86
+ * @prop {number} offsetDistance - Distance in pixels between the popover and trigger element.
87
+ * Default: 12
88
+ */
89
+ offsetDistance = 12;
90
+ /**
91
+ * @prop {boolean} closeOnOutsideClick - Whether to close when clicking outside the popover.
92
+ * Default: true
93
+ */
94
+ closeOnOutsideClick = true;
95
+ /**
96
+ * @prop {boolean} closeOnEscape - Whether to close when pressing the Escape key.
97
+ * Default: true
98
+ */
99
+ closeOnEscape = true;
100
+ isOpen = false;
101
+ /**
102
+ * @event bcmBeforeOpen - Emitted before the popover opens.
103
+ * Useful for performing actions before the popover becomes visible.
104
+ */
105
+ bcmBeforeOpen;
106
+ /**
107
+ * @event bcmOpen - Emitted when the popover is opened.
108
+ * Useful for tracking when the popover becomes visible.
109
+ */
110
+ bcmOpen;
111
+ /**
112
+ * @event bcmBeforeClose - Emitted before the popover closes.
113
+ * Useful for performing cleanup actions before hiding.
114
+ */
115
+ bcmBeforeClose;
116
+ /**
117
+ * @event bcmClose - Emitted when the popover is closed.
118
+ * Useful for tracking when the popover is hidden.
119
+ */
120
+ bcmClose;
121
+ /**
122
+ * @event bcmConfirm - Emitted when the user clicks the confirm button.
123
+ * This is where you should handle the confirmed action.
124
+ */
125
+ bcmConfirm;
126
+ /**
127
+ * @event bcmCancel - Emitted when the user clicks cancel, presses Escape, or clicks outside.
128
+ * Useful for tracking when the user dismisses the confirmation.
129
+ */
130
+ bcmCancel;
131
+ async handleOpenChange(open) {
132
+ if (!this.popconfirmRef)
133
+ return;
134
+ if (open) {
135
+ this.popconfirmRef.showPopover();
136
+ await new Promise(resolve => requestAnimationFrame(() => resolve(undefined)));
137
+ await this.updatePosition();
138
+ this.startAutoUpdate();
139
+ this.bcmOpen.emit();
140
+ // Add outside click listener after a frame to avoid immediate close
141
+ if (this.closeOnOutsideClick) {
142
+ requestAnimationFrame(() => {
143
+ document.addEventListener('click', this.handleOutsideClick);
144
+ });
145
+ }
146
+ }
147
+ else {
148
+ this.popconfirmRef.hidePopover();
149
+ this.stopAutoUpdate();
150
+ this.bcmClose.emit();
151
+ document.removeEventListener('click', this.handleOutsideClick);
152
+ }
153
+ }
154
+ /**
155
+ * Programmatically shows the popconfirm.
156
+ * @returns Promise that resolves when the show operation begins
157
+ */
158
+ async show() {
159
+ if (this.isOpen)
160
+ return;
161
+ this.bcmBeforeOpen.emit();
162
+ this.isOpen = true;
163
+ }
164
+ /**
165
+ * Programmatically hides the popconfirm.
166
+ * @returns Promise that resolves when the hide operation begins
167
+ */
168
+ async hide() {
169
+ if (!this.isOpen)
170
+ return;
171
+ this.bcmBeforeClose.emit();
172
+ this.isOpen = false;
173
+ }
174
+ /**
175
+ * Toggles the popconfirm visibility.
176
+ * If open, it will close. If closed, it will open.
177
+ * @returns Promise that resolves when the toggle operation completes
178
+ */
179
+ async toggle() {
180
+ if (this.isOpen) {
181
+ await this.hide();
182
+ }
183
+ else {
184
+ await this.show();
185
+ }
186
+ }
187
+ startAutoUpdate() {
188
+ if (!this.triggerRef || !this.popconfirmRef)
189
+ return;
190
+ this.cleanupAutoUpdate = autoUpdate(this.triggerRef, this.popconfirmRef, () => this.updatePosition(), {
191
+ ancestorScroll: true,
192
+ ancestorResize: true,
193
+ elementResize: true,
194
+ layoutShift: true,
195
+ });
196
+ }
197
+ stopAutoUpdate() {
198
+ if (this.cleanupAutoUpdate) {
199
+ this.cleanupAutoUpdate();
200
+ this.cleanupAutoUpdate = undefined;
201
+ }
202
+ }
203
+ async updatePosition() {
204
+ if (!this.triggerRef || !this.popconfirmRef)
205
+ return;
206
+ const middleware = [offset(this.offsetDistance), flip(), shift({ padding: 8 })];
207
+ if (this.showArrow && this.arrowRef) {
208
+ middleware.push(arrow({ element: this.arrowRef }));
209
+ }
210
+ const virtualElement = {
211
+ getBoundingClientRect: () => this.triggerRef.getBoundingClientRect(),
212
+ };
213
+ const { x, y, placement, middlewareData } = await computePosition(virtualElement, this.popconfirmRef, {
214
+ placement: this.placement,
215
+ strategy: 'fixed',
216
+ middleware,
217
+ });
218
+ this.popconfirmRef.style.left = `${x}px`;
219
+ this.popconfirmRef.style.top = `${y}px`;
220
+ if (this.showArrow && this.arrowRef && middlewareData.arrow) {
221
+ const { x: arrowX, y: arrowY } = middlewareData.arrow;
222
+ const side = placement.split('-')[0];
223
+ const staticSide = {
224
+ top: 'bottom',
225
+ right: 'left',
226
+ bottom: 'top',
227
+ left: 'right',
228
+ }[side];
229
+ Object.assign(this.arrowRef.style, {
230
+ left: arrowX != null ? `${arrowX}px` : '',
231
+ top: arrowY != null ? `${arrowY}px` : '',
232
+ right: '',
233
+ bottom: '',
234
+ [staticSide]: '-4px',
235
+ });
236
+ }
237
+ }
238
+ handleSlotChange = () => {
239
+ const slot = this.host.shadowRoot?.querySelector('slot:not([name])');
240
+ if (!slot)
241
+ return;
242
+ const elements = slot.assignedElements();
243
+ const assignedElement = elements[0];
244
+ this.triggerRef = (assignedElement || this.host);
245
+ if (!this.triggerRef)
246
+ return;
247
+ if (this.popconfirmRef && this.popconfirmId) {
248
+ this.triggerRef.setAttribute('aria-describedby', this.popconfirmId);
249
+ }
250
+ this.removeTriggerListeners();
251
+ this.setupTriggerListeners();
252
+ };
253
+ setupTriggerListeners() {
254
+ if (!this.triggerRef)
255
+ return;
256
+ this.triggerRef.addEventListener('click', this.handleTriggerClick);
257
+ }
258
+ removeTriggerListeners() {
259
+ if (!this.triggerRef)
260
+ return;
261
+ this.triggerRef.removeEventListener('click', this.handleTriggerClick);
262
+ }
263
+ handleTriggerClick = () => {
264
+ this.toggle();
265
+ };
266
+ handleOutsideClick = (e) => {
267
+ if (!this.closeOnOutsideClick || !this.isOpen)
268
+ return;
269
+ const target = e.target;
270
+ if (!this.host.contains(target) && !this.popconfirmRef?.contains(target)) {
271
+ this.handleCancel();
272
+ }
273
+ };
274
+ handleKeyDown(e) {
275
+ if (!this.closeOnEscape || !this.isOpen)
276
+ return;
277
+ if (e.key === 'Escape') {
278
+ // Check if this is the topmost open popconfirm
279
+ const openPopconfirms = Array.from(document.querySelectorAll('bcm-pop-confirm')).filter(el => {
280
+ const popconfirmEl = el.shadowRoot?.querySelector('[popover]');
281
+ return popconfirmEl?.matches(':popover-open');
282
+ });
283
+ const topPopconfirm = openPopconfirms[openPopconfirms.length - 1];
284
+ if (topPopconfirm === this.host) {
285
+ e.preventDefault();
286
+ e.stopPropagation();
287
+ this.handleCancel();
288
+ }
289
+ }
290
+ }
291
+ handleToggle = (e) => {
292
+ const toggleEvent = e;
293
+ if (toggleEvent.newState === 'open' && !this.isOpen) {
294
+ this.isOpen = true;
295
+ }
296
+ else if (toggleEvent.newState === 'closed' && this.isOpen) {
297
+ this.isOpen = false;
298
+ }
299
+ };
300
+ handleConfirm = () => {
301
+ this.bcmConfirm.emit();
302
+ this.hide();
303
+ };
304
+ handleCancel = () => {
305
+ this.bcmCancel.emit();
306
+ this.hide();
307
+ };
308
+ componentWillLoad() {
309
+ this.popconfirmId = `popconfirm-${Math.random().toString(36).substring(2, 11)}`;
310
+ }
311
+ componentDidLoad() {
312
+ if (this.popconfirmRef) {
313
+ this.popconfirmRef.addEventListener('toggle', this.handleToggle);
314
+ }
315
+ }
316
+ disconnectedCallback() {
317
+ this.stopAutoUpdate();
318
+ this.removeTriggerListeners();
319
+ document.removeEventListener('click', this.handleOutsideClick);
320
+ if (this.popconfirmRef) {
321
+ this.popconfirmRef.removeEventListener('toggle', this.handleToggle);
322
+ }
323
+ }
324
+ popconfirmClass = tv({
325
+ slots: {
326
+ container: 'bcm-ui-element fixed m-0 flex flex-col bg-[--popover-bg] rounded-lg shadow-3 z-[9999]',
327
+ arrow: 'absolute w-3 h-3 bg-[--popover-bg] rotate-45',
328
+ closeBtn: 'absolute flex size-6 items-center justify-center hover:bg-gray-100 rounded-full cursor-pointer text-color-muted',
329
+ header: 'flex items-center pr-8',
330
+ headerLeft: 'flex items-center gap-2',
331
+ title: '!text-color-header font-semibold',
332
+ body: 'flex-1 font-sans text-pretty',
333
+ footer: 'flex flex-row justify-end gap-2',
334
+ },
335
+ variants: {
336
+ size: {
337
+ small: {
338
+ container: 'text-size-4 max-w-64 p-4 gap-4',
339
+ title: 'text-size-5',
340
+ closeBtn: 'top-3 right-3',
341
+ },
342
+ medium: {
343
+ container: 'text-size-5 max-w-80 p-6 gap-6',
344
+ title: 'text-size-6',
345
+ closeBtn: 'top-4 right-4',
346
+ },
347
+ large: {
348
+ container: 'text-size-6 max-w-96 p-8 gap-8',
349
+ title: 'text-size-7',
350
+ closeBtn: 'top-6 right-6',
351
+ },
352
+ },
353
+ status: {
354
+ info: { headerLeft: 'text-[var(--bcm-ui-color-text-info)]' },
355
+ success: { headerLeft: 'text-[var(--bcm-ui-color-text-success)]' },
356
+ warning: { headerLeft: 'text-[var(--bcm-ui-color-text-warning)]' },
357
+ error: { headerLeft: 'text-[var(--bcm-ui-color-text-error)]' },
358
+ },
359
+ },
360
+ });
361
+ render() {
362
+ const { container, arrow: arrowClass, header, headerLeft, title, closeBtn, body, footer } = this.popconfirmClass({
363
+ size: this.size,
364
+ status: this.status,
365
+ });
366
+ // Only show header if there's actual header content (headerText or custom header slot)
367
+ // Status icon only shows if explicitly enabled AND there's header text
368
+ const showStatusIcon = this.statusIcon && this.headerText;
369
+ const hasHeaderText = Boolean(this.headerText);
370
+ return (h("div", { key: '7329eb6db100b57368ca73b36a2a2ad66b218b8e', class: "inline-block" }, h("slot", { key: '0d775cf4a00b4ef97e8e75e2620ddf420caf43c6', onSlotchange: this.handleSlotChange }), h("div", { key: '19c4c001fbf51b895a45b271365b3a7cb22590bb', ref: el => (this.popconfirmRef = el), id: this.popconfirmId, part: "container", class: container(), popover: "manual", role: "alertdialog", "aria-labelledby": hasHeaderText ? `${this.popconfirmId}-header` : undefined, "aria-describedby": `${this.popconfirmId}-body` }, this.showArrow && h("div", { key: '91aaa976265c10537cea1d0d57d08df27c838645', ref: el => (this.arrowRef = el), part: "arrow", class: arrowClass() }), h("div", { key: '91a049dd52d47d267d11c8e8c628aa417fb40663', class: closeBtn(), onClick: this.handleCancel, role: "button", tabIndex: 0, "aria-label": "Close" }, h("bcm-icon", { key: 'd15fb5922185f246c15e9480c3a4652ef9e96ffa', "icon-name": "far fa-times" })), h("header", { key: 'b62f81fd72a05aa116ecad7614f20645aa85f060', class: header() }, h("div", { key: '226cbb6ac92d294b67eb0c33ed0faea52d56689a', class: headerLeft() }, showStatusIcon && h("bcm-icon", { key: '0e5cd64e8369876b9016af3c9607cdb406828651', "icon-name": statusIcons[this.status] }), hasHeaderText && (h("span", { key: '4a1cf44acf56bc46ad52fda1d1d29da0c838fded', id: `${this.popconfirmId}-header`, class: title() }, this.headerText)), h("slot", { key: '5e159545f0b12d97c9b632653955f636866c2a14', name: "header" }))), h("main", { key: '6e082c73048583a1447dc4fb7c9940a677e7d587', id: `${this.popconfirmId}-body`, part: "body", class: body() }, h("slot", { key: '6d0546a06ca77118d82074fffb9164c4b4f86a5c', name: "body" }, this.description)), h("footer", { key: '4f36400e44847e31d6ceed5fd7f47d35f68af458', part: "footer", class: footer() }, h("slot", { key: '97b85bb7dd3d39790b91e6bffef01f7eb077c2c3', name: "footer" }, h("bcm-button", { key: '8e8b7175a1dd9e069e9cbca7b430fdc1e9a7beab', kind: "outline", size: this.size, onClick: this.handleCancel }, this.cancelText), h("bcm-button", { key: 'ae9daeacaf77c8abfe92951eefe2e885d23eab79', size: this.size, status: this.status, kind: "primary", onClick: this.handleConfirm }, this.confirmText))))));
371
+ }
372
+ static get watchers() { return {
373
+ "isOpen": ["handleOpenChange"]
374
+ }; }
375
+ };
376
+ BcmPopConfirm.style = popConfirmCss;
377
+
378
+ export { BcmPopConfirm as bcm_pop_confirm };
379
+ //# sourceMappingURL=bcm-pop-confirm.entry.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"bcm-pop-confirm.entry.js","sources":["src/components/pop-confirm/pop-confirm.css?tag=bcm-pop-confirm&encapsulation=shadow","src/components/pop-confirm/pop-confirm.component.tsx"],"sourcesContent":[":host {\n display: inline-block;\n --popover-bg: var(--bcm-ui-color-background-basic-panel);\n}\n\n[popover] {\n border: none;\n padding: 0;\n overflow: visible;\n}\n\n[popover]:not(:popover-open) {\n display: none;\n}\n\n[popover]:popover-open {\n opacity: 1;\n transform: scale(1);\n transition:\n opacity 150ms ease-out,\n transform 150ms ease-out;\n}\n\n@starting-style {\n [popover]:popover-open {\n opacity: 0;\n transform: scale(0.95);\n }\n}\n\n::slotted([slot='body']) {\n font-family: 'Inter', sans-serif;\n text-wrap: pretty;\n}\n","import { Component, Element, Event, EventEmitter, h, Listen, Method, Prop, State, Watch } from '@stencil/core';\nimport { computePosition, flip, shift, offset, arrow, autoUpdate } from '@floating-ui/dom';\nimport { tv } from '@utils/tv';\n\nexport type PopConfirmPlacement = 'top' | 'right' | 'bottom' | 'left';\nexport type PopConfirmSize = 'small' | 'medium' | 'large';\nexport type PopConfirmStatus = 'info' | 'success' | 'warning' | 'error';\n\nconst statusIcons = {\n info: 'fa-solid fa-circle-info',\n success: 'fa-solid fa-circle-check',\n warning: 'fa-solid fa-triangle-exclamation',\n error: 'fa-solid fa-circle-xmark',\n};\n\n/**\n * @component BcmPopConfirm\n * @description A confirmation popover component that displays a confirmation dialog with customizable actions.\n * Built on the native Popover API for top-layer rendering and Floating UI for intelligent positioning.\n * Ideal for confirming destructive actions or important decisions inline.\n *\n * @slot - Default slot for the trigger element that opens the confirmation popover\n * @slot header - Custom header content (overrides headerText prop)\n * @slot body - Custom body content (overrides description prop)\n * @slot footer - Custom footer content with action buttons (overrides default confirm/cancel buttons)\n *\n * @csspart container - The main popover container element\n * @csspart arrow - The arrow pointer element\n * @csspart body - The body/description section\n * @csspart footer - The footer section with action buttons\n *\n * @example Basic Usage\n * ```html\n * <bcm-pop-confirm\n * header-text=\"Delete Item?\"\n * description=\"Are you sure you want to delete this item? This action cannot be undone.\"\n * status=\"error\"\n * >\n * <bcm-button status=\"error\">Delete</bcm-button>\n * </bcm-pop-confirm>\n * ```\n *\n * @example With Event Handlers\n * ```html\n * <bcm-pop-confirm\n * id=\"deleteConfirm\"\n * header-text=\"Confirm Delete\"\n * description=\"This will permanently delete the item.\"\n * status=\"warning\"\n * confirm-text=\"Yes, Delete\"\n * cancel-text=\"No, Keep It\"\n * >\n * <bcm-button>Delete Item</bcm-button>\n * </bcm-pop-confirm>\n *\n * <script>\n * const popconfirm = document.getElementById('deleteConfirm');\n * popconfirm.addEventListener('bcmConfirm', () => {\n * console.log('User confirmed deletion');\n * // Perform delete operation\n * });\n * popconfirm.addEventListener('bcmCancel', () => {\n * console.log('User cancelled deletion');\n * });\n * </script>\n * ```\n *\n * @example Different Status Types\n * ```html\n * <!-- Info (default) -->\n * <bcm-pop-confirm header-text=\"Information\" description=\"This is an info message\">\n * <bcm-button>Info</bcm-button>\n * </bcm-pop-confirm>\n *\n * <!-- Success -->\n * <bcm-pop-confirm status=\"success\" header-text=\"Confirm Action\" description=\"Proceed with this action?\">\n * <bcm-button status=\"success\">Proceed</bcm-button>\n * </bcm-pop-confirm>\n *\n * <!-- Warning -->\n * <bcm-pop-confirm status=\"warning\" header-text=\"Warning\" description=\"This action may have consequences\">\n * <bcm-button status=\"warning\">Continue</bcm-button>\n * </bcm-pop-confirm>\n *\n * <!-- Error/Danger -->\n * <bcm-pop-confirm status=\"error\" header-text=\"Danger Zone\" description=\"This is a destructive action\">\n * <bcm-button status=\"error\">Delete</bcm-button>\n * </bcm-pop-confirm>\n * ```\n *\n * @example Custom Content with Slots\n * ```html\n * <bcm-pop-confirm status=\"warning\">\n * <bcm-button>Custom Confirm</bcm-button>\n *\n * <div slot=\"header\">\n * <strong>Custom Header</strong>\n * </div>\n *\n * <div slot=\"body\">\n * <p>This is custom body content with <strong>HTML formatting</strong>.</p>\n * <ul>\n * <li>Point 1</li>\n * <li>Point 2</li>\n * </ul>\n * </div>\n *\n * <div slot=\"footer\">\n * <bcm-button kind=\"outline\" size=\"small\">Maybe Later</bcm-button>\n * <bcm-button status=\"success\" size=\"small\">Confirm</bcm-button>\n * </div>\n * </bcm-pop-confirm>\n * ```\n *\n * @example Different Sizes\n * ```html\n * <!-- Small -->\n * <bcm-pop-confirm size=\"small\" header-text=\"Small\" description=\"Compact confirmation\">\n * <bcm-button size=\"small\">Small</bcm-button>\n * </bcm-pop-confirm>\n *\n * <!-- Medium (default) -->\n * <bcm-pop-confirm size=\"medium\" header-text=\"Medium\" description=\"Standard confirmation\">\n * <bcm-button size=\"medium\">Medium</bcm-button>\n * </bcm-pop-confirm>\n *\n * <!-- Large -->\n * <bcm-pop-confirm size=\"large\" header-text=\"Large\" description=\"Spacious confirmation with more room for content\">\n * <bcm-button size=\"large\">Large</bcm-button>\n * </bcm-pop-confirm>\n * ```\n *\n * @example Programmatic Control\n * ```html\n * <bcm-pop-confirm id=\"myConfirm\" header-text=\"Confirm\" description=\"Are you sure?\">\n * <bcm-button>Trigger</bcm-button>\n * </bcm-pop-confirm>\n *\n * <bcm-button id=\"showBtn\">Show Programmatically</bcm-button>\n * <bcm-button id=\"hideBtn\">Hide Programmatically</bcm-button>\n *\n * <script>\n * const popconfirm = document.getElementById('myConfirm');\n * document.getElementById('showBtn').addEventListener('click', () => {\n * popconfirm.show();\n * });\n * document.getElementById('hideBtn').addEventListener('click', () => {\n * popconfirm.hide();\n * });\n * </script>\n * ```\n *\n * @example Without Status Icon\n * ```html\n * <bcm-pop-confirm\n * header-text=\"Simple Confirmation\"\n * description=\"No status icon shown\"\n * status-icon={false}\n * >\n * <bcm-button>Click Me</bcm-button>\n * </bcm-pop-confirm>\n * ```\n *\n * @example Different Placements\n * ```html\n * <bcm-pop-confirm placement=\"top\" header-text=\"Top\" description=\"Opens above\">\n * <bcm-button>Top</bcm-button>\n * </bcm-pop-confirm>\n *\n * <bcm-pop-confirm placement=\"right\" header-text=\"Right\" description=\"Opens to the right\">\n * <bcm-button>Right</bcm-button>\n * </bcm-pop-confirm>\n *\n * <bcm-pop-confirm placement=\"bottom\" header-text=\"Bottom\" description=\"Opens below\">\n * <bcm-button>Bottom</bcm-button>\n * </bcm-pop-confirm>\n *\n * <bcm-pop-confirm placement=\"left\" header-text=\"Left\" description=\"Opens to the left\">\n * <bcm-button>Left</bcm-button>\n * </bcm-pop-confirm>\n * ```\n */\n@Component({\n tag: 'bcm-pop-confirm',\n styleUrl: 'pop-confirm.css',\n shadow: true,\n})\nexport class BcmPopConfirm {\n @Element() host: HTMLElement;\n\n private popconfirmRef?: HTMLDivElement;\n private arrowRef?: HTMLDivElement;\n private triggerRef?: HTMLElement;\n private cleanupAutoUpdate?: () => void;\n private popconfirmId: string;\n\n /**\n * @prop {PopConfirmPlacement} placement - Position of the popover relative to the trigger element.\n * Automatically flips if there's not enough space.\n * Default: 'top'\n */\n @Prop() placement: PopConfirmPlacement = 'top';\n\n /**\n * @prop {PopConfirmSize} size - Size variant that controls padding and text size.\n * - 'small': Compact size with minimal padding\n * - 'medium': Standard size\n * - 'large': Spacious size with more padding\n * Default: 'medium'\n */\n @Prop() size: PopConfirmSize = 'medium';\n\n /**\n * @prop {PopConfirmStatus} status - Status type that determines the color scheme and icon.\n * - 'info': Informational (blue)\n * - 'success': Success/positive action (green)\n * - 'warning': Warning/caution (yellow)\n * - 'error': Error/destructive action (red)\n * Default: 'info'\n */\n @Prop() status: PopConfirmStatus = 'info';\n\n /**\n * @prop {string} headerText - Text displayed in the header section.\n * Can be overridden by using the 'header' slot.\n * Default: ''\n */\n @Prop() headerText: string = '';\n\n /**\n * @prop {string} description - Description text displayed in the body section.\n * Can be overridden by using the 'body' slot.\n * Default: ''\n */\n @Prop() description: string = '';\n\n /**\n * @prop {string} confirmText - Text for the confirm button.\n * Default: 'Yes'\n */\n @Prop() confirmText: string = 'Yes';\n\n /**\n * @prop {string} cancelText - Text for the cancel button.\n * Default: 'Cancel'\n */\n @Prop() cancelText: string = 'Cancel';\n\n /**\n * @prop {boolean} showArrow - Whether to show the arrow pointing to the trigger.\n * Default: true\n */\n @Prop() showArrow: boolean = true;\n\n /**\n * @prop {boolean} statusIcon - Whether to show the status icon in the header.\n * Icon only shows if headerText is also provided.\n * Default: true\n */\n @Prop() statusIcon: boolean = true;\n\n /**\n * @prop {number} offsetDistance - Distance in pixels between the popover and trigger element.\n * Default: 12\n */\n @Prop() offsetDistance: number = 12;\n\n /**\n * @prop {boolean} closeOnOutsideClick - Whether to close when clicking outside the popover.\n * Default: true\n */\n @Prop() closeOnOutsideClick: boolean = true;\n\n /**\n * @prop {boolean} closeOnEscape - Whether to close when pressing the Escape key.\n * Default: true\n */\n @Prop() closeOnEscape: boolean = true;\n\n @State() isOpen = false;\n\n /**\n * @event bcmBeforeOpen - Emitted before the popover opens.\n * Useful for performing actions before the popover becomes visible.\n */\n @Event({ composed: false, bubbles: false }) bcmBeforeOpen: EventEmitter<void>;\n\n /**\n * @event bcmOpen - Emitted when the popover is opened.\n * Useful for tracking when the popover becomes visible.\n */\n @Event({ composed: false, bubbles: false }) bcmOpen: EventEmitter<void>;\n\n /**\n * @event bcmBeforeClose - Emitted before the popover closes.\n * Useful for performing cleanup actions before hiding.\n */\n @Event({ composed: false, bubbles: false }) bcmBeforeClose: EventEmitter<void>;\n\n /**\n * @event bcmClose - Emitted when the popover is closed.\n * Useful for tracking when the popover is hidden.\n */\n @Event({ composed: false, bubbles: false }) bcmClose: EventEmitter<void>;\n\n /**\n * @event bcmConfirm - Emitted when the user clicks the confirm button.\n * This is where you should handle the confirmed action.\n */\n @Event({ composed: false, bubbles: false }) bcmConfirm: EventEmitter<void>;\n\n /**\n * @event bcmCancel - Emitted when the user clicks cancel, presses Escape, or clicks outside.\n * Useful for tracking when the user dismisses the confirmation.\n */\n @Event({ composed: false, bubbles: false }) bcmCancel: EventEmitter<void>;\n\n @Watch('isOpen')\n async handleOpenChange(open: boolean) {\n if (!this.popconfirmRef) return;\n\n if (open) {\n this.popconfirmRef.showPopover();\n await new Promise(resolve => requestAnimationFrame(() => resolve(undefined)));\n await this.updatePosition();\n this.startAutoUpdate();\n this.bcmOpen.emit();\n // Add outside click listener after a frame to avoid immediate close\n if (this.closeOnOutsideClick) {\n requestAnimationFrame(() => {\n document.addEventListener('click', this.handleOutsideClick);\n });\n }\n } else {\n this.popconfirmRef.hidePopover();\n this.stopAutoUpdate();\n this.bcmClose.emit();\n document.removeEventListener('click', this.handleOutsideClick);\n }\n }\n\n /**\n * Programmatically shows the popconfirm.\n * @returns Promise that resolves when the show operation begins\n */\n @Method()\n async show(): Promise<void> {\n if (this.isOpen) return;\n this.bcmBeforeOpen.emit();\n this.isOpen = true;\n }\n\n /**\n * Programmatically hides the popconfirm.\n * @returns Promise that resolves when the hide operation begins\n */\n @Method()\n async hide(): Promise<void> {\n if (!this.isOpen) return;\n this.bcmBeforeClose.emit();\n this.isOpen = false;\n }\n\n /**\n * Toggles the popconfirm visibility.\n * If open, it will close. If closed, it will open.\n * @returns Promise that resolves when the toggle operation completes\n */\n @Method()\n async toggle(): Promise<void> {\n if (this.isOpen) {\n await this.hide();\n } else {\n await this.show();\n }\n }\n\n private startAutoUpdate() {\n if (!this.triggerRef || !this.popconfirmRef) return;\n\n this.cleanupAutoUpdate = autoUpdate(this.triggerRef, this.popconfirmRef, () => this.updatePosition(), {\n ancestorScroll: true,\n ancestorResize: true,\n elementResize: true,\n layoutShift: true,\n });\n }\n\n private stopAutoUpdate() {\n if (this.cleanupAutoUpdate) {\n this.cleanupAutoUpdate();\n this.cleanupAutoUpdate = undefined;\n }\n }\n\n private async updatePosition() {\n if (!this.triggerRef || !this.popconfirmRef) return;\n\n const middleware = [offset(this.offsetDistance), flip(), shift({ padding: 8 })];\n\n if (this.showArrow && this.arrowRef) {\n middleware.push(arrow({ element: this.arrowRef }));\n }\n\n const virtualElement = {\n getBoundingClientRect: () => this.triggerRef.getBoundingClientRect(),\n };\n\n const { x, y, placement, middlewareData } = await computePosition(virtualElement, this.popconfirmRef, {\n placement: this.placement,\n strategy: 'fixed',\n middleware,\n });\n\n this.popconfirmRef.style.left = `${x}px`;\n this.popconfirmRef.style.top = `${y}px`;\n\n if (this.showArrow && this.arrowRef && middlewareData.arrow) {\n const { x: arrowX, y: arrowY } = middlewareData.arrow;\n const side = placement.split('-')[0] as 'top' | 'right' | 'bottom' | 'left';\n\n const staticSide = {\n top: 'bottom',\n right: 'left',\n bottom: 'top',\n left: 'right',\n }[side];\n\n Object.assign(this.arrowRef.style, {\n left: arrowX != null ? `${arrowX}px` : '',\n top: arrowY != null ? `${arrowY}px` : '',\n right: '',\n bottom: '',\n [staticSide]: '-4px',\n });\n }\n }\n\n private handleSlotChange = () => {\n const slot = this.host.shadowRoot?.querySelector('slot:not([name])');\n if (!slot) return;\n\n const elements = (slot as HTMLSlotElement).assignedElements();\n const assignedElement = elements[0] as HTMLElement;\n\n this.triggerRef = (assignedElement || this.host) as HTMLElement;\n\n if (!this.triggerRef) return;\n\n if (this.popconfirmRef && this.popconfirmId) {\n this.triggerRef.setAttribute('aria-describedby', this.popconfirmId);\n }\n\n this.removeTriggerListeners();\n this.setupTriggerListeners();\n };\n\n private setupTriggerListeners() {\n if (!this.triggerRef) return;\n this.triggerRef.addEventListener('click', this.handleTriggerClick);\n }\n\n private removeTriggerListeners() {\n if (!this.triggerRef) return;\n this.triggerRef.removeEventListener('click', this.handleTriggerClick);\n }\n\n private handleTriggerClick = () => {\n this.toggle();\n };\n\n private handleOutsideClick = (e: Event) => {\n if (!this.closeOnOutsideClick || !this.isOpen) return;\n\n const target = e.target as Node;\n if (!this.host.contains(target) && !this.popconfirmRef?.contains(target)) {\n this.handleCancel();\n }\n };\n\n @Listen('keydown', { target: 'document' })\n handleKeyDown(e: KeyboardEvent) {\n if (!this.closeOnEscape || !this.isOpen) return;\n\n if (e.key === 'Escape') {\n // Check if this is the topmost open popconfirm\n const openPopconfirms = Array.from(document.querySelectorAll('bcm-pop-confirm')).filter(el => {\n const popconfirmEl = el.shadowRoot?.querySelector('[popover]');\n return popconfirmEl?.matches(':popover-open');\n });\n\n const topPopconfirm = openPopconfirms[openPopconfirms.length - 1] as unknown as HTMLElement;\n if (topPopconfirm === (this.host as unknown as HTMLElement)) {\n e.preventDefault();\n e.stopPropagation();\n this.handleCancel();\n }\n }\n }\n\n private handleToggle = (e: Event) => {\n const toggleEvent = e as ToggleEvent;\n if (toggleEvent.newState === 'open' && !this.isOpen) {\n this.isOpen = true;\n } else if (toggleEvent.newState === 'closed' && this.isOpen) {\n this.isOpen = false;\n }\n };\n\n private handleConfirm = () => {\n this.bcmConfirm.emit();\n this.hide();\n };\n\n private handleCancel = () => {\n this.bcmCancel.emit();\n this.hide();\n };\n\n componentWillLoad() {\n this.popconfirmId = `popconfirm-${Math.random().toString(36).substring(2, 11)}`;\n }\n\n componentDidLoad() {\n if (this.popconfirmRef) {\n this.popconfirmRef.addEventListener('toggle', this.handleToggle);\n }\n }\n\n disconnectedCallback() {\n this.stopAutoUpdate();\n this.removeTriggerListeners();\n document.removeEventListener('click', this.handleOutsideClick);\n if (this.popconfirmRef) {\n this.popconfirmRef.removeEventListener('toggle', this.handleToggle);\n }\n }\n\n private popconfirmClass = tv({\n slots: {\n container: 'bcm-ui-element fixed m-0 flex flex-col bg-[--popover-bg] rounded-lg shadow-3 z-[9999]',\n arrow: 'absolute w-3 h-3 bg-[--popover-bg] rotate-45',\n closeBtn: 'absolute flex size-6 items-center justify-center hover:bg-gray-100 rounded-full cursor-pointer text-color-muted',\n header: 'flex items-center pr-8',\n headerLeft: 'flex items-center gap-2',\n title: '!text-color-header font-semibold',\n body: 'flex-1 font-sans text-pretty',\n footer: 'flex flex-row justify-end gap-2',\n },\n variants: {\n size: {\n small: {\n container: 'text-size-4 max-w-64 p-4 gap-4',\n title: 'text-size-5',\n closeBtn: 'top-3 right-3',\n },\n medium: {\n container: 'text-size-5 max-w-80 p-6 gap-6',\n title: 'text-size-6',\n closeBtn: 'top-4 right-4',\n },\n large: {\n container: 'text-size-6 max-w-96 p-8 gap-8',\n title: 'text-size-7',\n closeBtn: 'top-6 right-6',\n },\n },\n status: {\n info: { headerLeft: 'text-[var(--bcm-ui-color-text-info)]' },\n success: { headerLeft: 'text-[var(--bcm-ui-color-text-success)]' },\n warning: { headerLeft: 'text-[var(--bcm-ui-color-text-warning)]' },\n error: { headerLeft: 'text-[var(--bcm-ui-color-text-error)]' },\n },\n },\n });\n\n render() {\n const { container, arrow: arrowClass, header, headerLeft, title, closeBtn, body, footer } = this.popconfirmClass({\n size: this.size,\n status: this.status,\n });\n\n // Only show header if there's actual header content (headerText or custom header slot)\n // Status icon only shows if explicitly enabled AND there's header text\n const showStatusIcon = this.statusIcon && this.headerText;\n const hasHeaderText = Boolean(this.headerText);\n\n return (\n <div class=\"inline-block\">\n <slot onSlotchange={this.handleSlotChange}></slot>\n\n <div\n ref={el => (this.popconfirmRef = el)}\n id={this.popconfirmId}\n part=\"container\"\n class={container()}\n popover=\"manual\"\n role=\"alertdialog\"\n aria-labelledby={hasHeaderText ? `${this.popconfirmId}-header` : undefined}\n aria-describedby={`${this.popconfirmId}-body`}\n >\n {this.showArrow && <div ref={el => (this.arrowRef = el)} part=\"arrow\" class={arrowClass()} />}\n\n {/* Close button - absolute positioned */}\n <div class={closeBtn()} onClick={this.handleCancel} role=\"button\" tabIndex={0} aria-label=\"Close\">\n <bcm-icon icon-name=\"far fa-times\"></bcm-icon>\n </div>\n\n <header class={header()}>\n <div class={headerLeft()}>\n {showStatusIcon && <bcm-icon icon-name={statusIcons[this.status]} />}\n {hasHeaderText && (\n <span id={`${this.popconfirmId}-header`} class={title()}>\n {this.headerText}\n </span>\n )}\n <slot name=\"header\"></slot>\n </div>\n </header>\n\n <main id={`${this.popconfirmId}-body`} part=\"body\" class={body()}>\n <slot name=\"body\">{this.description}</slot>\n </main>\n\n <footer part=\"footer\" class={footer()}>\n <slot name=\"footer\">\n <bcm-button kind=\"outline\" size={this.size} onClick={this.handleCancel}>\n {this.cancelText}\n </bcm-button>\n <bcm-button size={this.size} status={this.status} kind=\"primary\" onClick={this.handleConfirm}>\n {this.confirmText}\n </bcm-button>\n </slot>\n </footer>\n </div>\n </div>\n );\n }\n}\n"],"names":[],"mappings":"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"}