bromcom-ui-next 0.1.29 → 0.1.30

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
Files changed (426) hide show
  1. package/dist/bromcom-ui/_commonjsHelpers-CvGrISen.js.map +1 -0
  2. package/dist/bromcom-ui/bcm-accordion.entry.esm.js.map +1 -1
  3. package/dist/bromcom-ui/bcm-alert.entry.esm.js.map +1 -1
  4. package/dist/bromcom-ui/bcm-button.bcm-drawer.bcm-linked.bcm-modal.bcm-pop-confirm.bcm-popover.bcm-tooltip.entry.esm.js.map +1 -0
  5. package/dist/bromcom-ui/bcm-divider.entry.esm.js.map +1 -1
  6. package/dist/bromcom-ui/bcm-dropdown.entry.esm.js.map +1 -1
  7. package/dist/bromcom-ui/bcm-segmented-picker-option.entry.esm.js.map +1 -1
  8. package/dist/bromcom-ui/bcm-segmented-picker.entry.esm.js.map +1 -1
  9. package/dist/bromcom-ui/bcm-switch.entry.esm.js.map +1 -1
  10. package/dist/bromcom-ui/bcm-tabs.entry.esm.js.map +1 -1
  11. package/dist/bromcom-ui/bcm-text.entry.esm.js.map +1 -1
  12. package/dist/bromcom-ui/bromcom-ui.esm.js +1 -1
  13. package/dist/bromcom-ui/bromcom-ui.esm.js.map +1 -1
  14. package/dist/bromcom-ui/floating-ui.dom-ltNPqX34.js.map +1 -0
  15. package/dist/bromcom-ui/generate-id-Crb5QsB-.js.map +1 -0
  16. package/dist/bromcom-ui/index-40rmUZjU.js.map +1 -0
  17. package/dist/bromcom-ui/index-BCaJmHBB.js.map +1 -0
  18. package/dist/bromcom-ui/{p-8ace5a6a.entry.js → p-0c7c6896.entry.js} +2 -2
  19. package/dist/bromcom-ui/p-0c7c6896.entry.js.map +1 -0
  20. package/dist/bromcom-ui/p-11d0e649.entry.js +2 -0
  21. package/dist/bromcom-ui/p-11d0e649.entry.js.map +1 -0
  22. package/dist/bromcom-ui/{p-6b585adc.entry.js → p-12f38632.entry.js} +2 -2
  23. package/dist/bromcom-ui/p-12f38632.entry.js.map +1 -0
  24. package/dist/bromcom-ui/{p-5e0702d1.entry.js → p-13cbd1f5.entry.js} +2 -2
  25. package/dist/bromcom-ui/p-13cbd1f5.entry.js.map +1 -0
  26. package/dist/bromcom-ui/{p-2480e468.entry.js → p-1507908f.entry.js} +2 -2
  27. package/dist/bromcom-ui/p-1507908f.entry.js.map +1 -0
  28. package/dist/bromcom-ui/p-1ce9913f.entry.js +2 -0
  29. package/dist/bromcom-ui/p-1ce9913f.entry.js.map +1 -0
  30. package/dist/bromcom-ui/p-206d767e.entry.js +2 -0
  31. package/dist/bromcom-ui/p-206d767e.entry.js.map +1 -0
  32. package/dist/bromcom-ui/{p-ee5f877f.entry.js → p-3cf7a7f4.entry.js} +2 -2
  33. package/dist/bromcom-ui/p-3cf7a7f4.entry.js.map +1 -0
  34. package/dist/bromcom-ui/p-4505feba.entry.js +2 -0
  35. package/dist/bromcom-ui/p-4505feba.entry.js.map +1 -0
  36. package/dist/bromcom-ui/{p-089edfdc.entry.js → p-496014ca.entry.js} +2 -2
  37. package/dist/bromcom-ui/p-496014ca.entry.js.map +1 -0
  38. package/dist/bromcom-ui/{p-26d2db9e.entry.js → p-4a932cd3.entry.js} +2 -2
  39. package/dist/bromcom-ui/p-4a932cd3.entry.js.map +1 -0
  40. package/dist/bromcom-ui/p-4e554b8d.entry.js +2 -0
  41. package/dist/bromcom-ui/p-4e554b8d.entry.js.map +1 -0
  42. package/dist/bromcom-ui/{p-360bff8a.entry.js → p-57c4c4c4.entry.js} +2 -2
  43. package/dist/bromcom-ui/p-57c4c4c4.entry.js.map +1 -0
  44. package/dist/bromcom-ui/{p-211ca6e0.entry.js → p-61293ab2.entry.js} +2 -2
  45. package/dist/bromcom-ui/p-61293ab2.entry.js.map +1 -0
  46. package/dist/bromcom-ui/{p-83f64814.entry.js → p-61789456.entry.js} +2 -2
  47. package/dist/bromcom-ui/p-61789456.entry.js.map +1 -0
  48. package/dist/bromcom-ui/{p-488d6ef4.entry.js → p-65d0f188.entry.js} +2 -2
  49. package/dist/bromcom-ui/p-65d0f188.entry.js.map +1 -0
  50. package/dist/bromcom-ui/{p-11f3e129.entry.js → p-83f707dc.entry.js} +2 -2
  51. package/dist/bromcom-ui/p-83f707dc.entry.js.map +1 -0
  52. package/dist/bromcom-ui/p-8ba02e7e.entry.js +2 -0
  53. package/dist/bromcom-ui/p-8ba02e7e.entry.js.map +1 -0
  54. package/dist/bromcom-ui/{p-22edf049.entry.js → p-9e9bf32e.entry.js} +2 -2
  55. package/dist/bromcom-ui/p-9e9bf32e.entry.js.map +1 -0
  56. package/dist/bromcom-ui/p-BfTCfPZ1.js.map +1 -1
  57. package/dist/bromcom-ui/p-CEcVC0yX.js.map +1 -1
  58. package/dist/bromcom-ui/p-CRwAh9Np.js +3 -0
  59. package/dist/bromcom-ui/p-CRwAh9Np.js.map +1 -0
  60. package/dist/bromcom-ui/p-IBjzkjef.js.map +1 -1
  61. package/dist/bromcom-ui/{p-a88f20e0.entry.js → p-c87a6acf.entry.js} +2 -2
  62. package/dist/bromcom-ui/p-c87a6acf.entry.js.map +1 -0
  63. package/dist/bromcom-ui/{p-c34f0a66.entry.js → p-e0e235a8.entry.js} +2 -2
  64. package/dist/bromcom-ui/p-e0e235a8.entry.js.map +1 -0
  65. package/dist/bromcom-ui/{p-0101b4f2.entry.js → p-e1ce8b55.entry.js} +2 -2
  66. package/dist/bromcom-ui/p-e1ce8b55.entry.js.map +1 -0
  67. package/dist/bromcom-ui/p-e4dddb0b.entry.js +2 -0
  68. package/dist/bromcom-ui/p-e4dddb0b.entry.js.map +1 -0
  69. package/dist/bromcom-ui/p-f9426924.entry.js +2 -0
  70. package/dist/bromcom-ui/p-f9426924.entry.js.map +1 -0
  71. package/dist/bromcom-ui/{p-c0e7f9d6.entry.js → p-faa0e62c.entry.js} +2 -2
  72. package/dist/bromcom-ui/p-faa0e62c.entry.js.map +1 -0
  73. package/dist/bromcom-ui/{p-bdaf5653.entry.js → p-fcb4399f.entry.js} +2 -2
  74. package/dist/bromcom-ui/p-fcb4399f.entry.js.map +1 -0
  75. package/dist/bromcom-ui/tv-SlGJ5EfR.js.map +1 -0
  76. package/dist/bromcom-ui/validation-messages-CUvT12BL.js.map +1 -0
  77. package/dist/cjs/bcm-accordion-group.cjs.entry.js +2 -4
  78. package/dist/cjs/bcm-accordion.cjs.entry.js +3 -5
  79. package/dist/cjs/bcm-accordion.entry.cjs.js.map +1 -1
  80. package/dist/cjs/bcm-alert.cjs.entry.js +3 -5
  81. package/dist/cjs/bcm-alert.entry.cjs.js.map +1 -1
  82. package/dist/cjs/bcm-avatar.cjs.entry.js +1 -3
  83. package/dist/cjs/bcm-badge.cjs.entry.js +3 -5
  84. package/dist/cjs/bcm-basic-badge.cjs.entry.js +3 -5
  85. package/dist/cjs/bcm-button-group.cjs.entry.js +3 -5
  86. package/dist/cjs/bcm-button.bcm-drawer.bcm-linked.bcm-modal.bcm-pop-confirm.bcm-popover.bcm-tooltip.entry.cjs.js.map +1 -0
  87. package/dist/cjs/bcm-button_7.cjs.entry.js +4131 -0
  88. package/dist/cjs/bcm-checkbox.cjs.entry.js +2 -4
  89. package/dist/cjs/bcm-chip.cjs.entry.js +2 -4
  90. package/dist/cjs/bcm-divider.cjs.entry.js +3 -5
  91. package/dist/cjs/bcm-divider.entry.cjs.js.map +1 -1
  92. package/dist/cjs/bcm-dropdown-item.cjs.entry.js +3 -5
  93. package/dist/cjs/bcm-dropdown.cjs.entry.js +3 -13
  94. package/dist/cjs/bcm-dropdown.entry.cjs.js.map +1 -1
  95. package/dist/cjs/bcm-input.cjs.entry.js +3 -5
  96. package/dist/cjs/bcm-radio-group.cjs.entry.js +3 -5
  97. package/dist/cjs/bcm-radio.cjs.entry.js +2 -4
  98. package/dist/cjs/bcm-segmented-picker-option.cjs.entry.js +3 -5
  99. package/dist/cjs/bcm-segmented-picker-option.entry.cjs.js.map +1 -1
  100. package/dist/cjs/bcm-segmented-picker.cjs.entry.js +3 -5
  101. package/dist/cjs/bcm-segmented-picker.entry.cjs.js.map +1 -1
  102. package/dist/cjs/bcm-shortcut.cjs.entry.js +2 -4
  103. package/dist/cjs/bcm-switch.cjs.entry.js +4 -6
  104. package/dist/cjs/bcm-switch.entry.cjs.js.map +1 -1
  105. package/dist/cjs/bcm-tabs-content.cjs.entry.js +2 -4
  106. package/dist/cjs/bcm-tabs-list.cjs.entry.js +2 -4
  107. package/dist/cjs/bcm-tabs-trigger.cjs.entry.js +2 -4
  108. package/dist/cjs/bcm-tabs.cjs.entry.js +2 -4
  109. package/dist/cjs/bcm-tabs.entry.cjs.js.map +1 -1
  110. package/dist/cjs/bcm-text.cjs.entry.js +3 -5
  111. package/dist/cjs/bcm-text.entry.cjs.js.map +1 -1
  112. package/dist/cjs/bcm-textarea.cjs.entry.js +4 -6
  113. package/dist/cjs/bromcom-ui.cjs.js +3 -5
  114. package/dist/cjs/bromcom-ui.cjs.js.map +1 -1
  115. package/dist/cjs/generate-id-CG_BkTJu.js.map +1 -1
  116. package/dist/cjs/index-Bp6Dd2i1.js.map +1 -1
  117. package/dist/cjs/{index-BtiU-G2W.js → index-CmYzUr-k.js} +61 -372
  118. package/dist/cjs/index-CmYzUr-k.js.map +1 -0
  119. package/dist/cjs/index.cjs.js +0 -2
  120. package/dist/cjs/loader.cjs.js +2 -4
  121. package/dist/cjs/tv-ngpIbGlG.js.map +1 -1
  122. package/dist/collection/collection-manifest.json +5 -5
  123. package/dist/collection/components/accordion/accordion.component.js +8 -8
  124. package/dist/collection/components/accordion/accordion.component.js.map +1 -1
  125. package/dist/collection/components/accordion-group/accordion-group.component.js +3 -3
  126. package/dist/collection/components/accordion-group/types.js.map +1 -1
  127. package/dist/collection/components/alert/alert.component.js +6 -6
  128. package/dist/collection/components/alert/alert.css +1 -1
  129. package/dist/collection/components/avatar/avatar.component.js +14 -14
  130. package/dist/collection/components/badge/badge.component.js +15 -15
  131. package/dist/collection/components/basic-badge/basic-badge.component.js +9 -9
  132. package/dist/collection/components/button/button.component.js +32 -32
  133. package/dist/collection/components/button/button.css +1 -1
  134. package/dist/collection/components/button-group/button-group.component.js +15 -15
  135. package/dist/collection/components/checkbox/checkbox.component.js +13 -13
  136. package/dist/collection/components/chip/chip.component.js +8 -8
  137. package/dist/collection/components/divider/divider.component.js +4 -4
  138. package/dist/collection/components/divider/divider.css +1 -1
  139. package/dist/collection/components/drawer/drawer.component.js +429 -132
  140. package/dist/collection/components/drawer/drawer.component.js.map +1 -1
  141. package/dist/collection/components/drawer/drawer.css +1 -1
  142. package/dist/collection/components/drawer/types.js.map +1 -1
  143. package/dist/collection/components/dropdown/dropdown.component.js +3 -12
  144. package/dist/collection/components/dropdown/dropdown.component.js.map +1 -1
  145. package/dist/collection/components/dropdown/dropdown.css +1 -1
  146. package/dist/collection/components/dropdown-item/dropdown-item.component.js +9 -10
  147. package/dist/collection/components/dropdown-item/dropdown-item.component.js.map +1 -1
  148. package/dist/collection/components/input/input.component.js +44 -45
  149. package/dist/collection/components/input/input.component.js.map +1 -1
  150. package/dist/collection/components/linked/linked.component.js +507 -333
  151. package/dist/collection/components/linked/linked.component.js.map +1 -1
  152. package/dist/collection/components/linked/linked.css +1 -1
  153. package/dist/collection/components/modal/modal.component.js +137 -34
  154. package/dist/collection/components/modal/modal.component.js.map +1 -1
  155. package/dist/collection/components/modal/modal.css +1 -1
  156. package/dist/collection/components/pop-confirm/pop-confirm.component.js +668 -294
  157. package/dist/collection/components/pop-confirm/pop-confirm.component.js.map +1 -1
  158. package/dist/collection/components/pop-confirm/pop-confirm.css +1 -1
  159. package/dist/collection/components/popover/popover.component.js +533 -148
  160. package/dist/collection/components/popover/popover.component.js.map +1 -1
  161. package/dist/collection/components/popover/popover.css +1 -1
  162. package/dist/collection/components/radio/radio.component.js +13 -13
  163. package/dist/collection/components/radio-group/radio-group.component.js +15 -15
  164. package/dist/collection/components/segmented-picker/segmented-picker-option.component.js +10 -10
  165. package/dist/collection/components/segmented-picker/segmented-picker-option.component.js.map +1 -1
  166. package/dist/collection/components/segmented-picker/segmented-picker.component.js +7 -7
  167. package/dist/collection/components/segmented-picker/segmented-picker.component.js.map +1 -1
  168. package/dist/collection/components/shortcut/shortcut.js +4 -4
  169. package/dist/collection/components/switch/switch.component.js +17 -17
  170. package/dist/collection/components/switch/switch.css +1 -1
  171. package/dist/collection/components/tabs/tabs-content.component.js +3 -3
  172. package/dist/collection/components/tabs/tabs-list.component.js +3 -3
  173. package/dist/collection/components/tabs/tabs-trigger.component.js +8 -8
  174. package/dist/collection/components/tabs/tabs.component.js +6 -6
  175. package/dist/collection/components/tabs/tabs.component.js.map +1 -1
  176. package/dist/collection/components/text/text.component.js +6 -6
  177. package/dist/collection/components/text/text.css +1 -1
  178. package/dist/collection/components/textarea/textarea.component.js +39 -40
  179. package/dist/collection/components/textarea/textarea.component.js.map +1 -1
  180. package/dist/collection/components/tooltip/tooltip.component.js +567 -192
  181. package/dist/collection/components/tooltip/tooltip.component.js.map +1 -1
  182. package/dist/collection/components/tooltip/tooltip.css +1 -1
  183. package/dist/components/bcm-accordion-group.js +5 -3
  184. package/dist/components/bcm-accordion-group.js.map +1 -1
  185. package/dist/components/bcm-accordion.js +6 -4
  186. package/dist/components/bcm-accordion.js.map +1 -1
  187. package/dist/components/bcm-alert.js +6 -4
  188. package/dist/components/bcm-alert.js.map +1 -1
  189. package/dist/components/bcm-avatar.js +5 -3
  190. package/dist/components/bcm-avatar.js.map +1 -1
  191. package/dist/components/bcm-badge.js +1 -1
  192. package/dist/components/bcm-basic-badge.js +6 -4
  193. package/dist/components/bcm-basic-badge.js.map +1 -1
  194. package/dist/components/bcm-button-group.js +6 -4
  195. package/dist/components/bcm-button-group.js.map +1 -1
  196. package/dist/components/bcm-button.js +1 -1
  197. package/dist/components/bcm-checkbox.js +5 -3
  198. package/dist/components/bcm-checkbox.js.map +1 -1
  199. package/dist/components/bcm-chip.js +5 -3
  200. package/dist/components/bcm-chip.js.map +1 -1
  201. package/dist/components/bcm-divider.js +6 -4
  202. package/dist/components/bcm-divider.js.map +1 -1
  203. package/dist/components/bcm-drawer.js +228 -115
  204. package/dist/components/bcm-drawer.js.map +1 -1
  205. package/dist/components/bcm-dropdown-item.js +7 -5
  206. package/dist/components/bcm-dropdown-item.js.map +1 -1
  207. package/dist/components/bcm-dropdown.js +8 -15
  208. package/dist/components/bcm-dropdown.js.map +1 -1
  209. package/dist/components/bcm-input.js +6 -4
  210. package/dist/components/bcm-input.js.map +1 -1
  211. package/dist/components/bcm-linked.js +1 -1
  212. package/dist/components/bcm-modal.js +56 -4
  213. package/dist/components/bcm-modal.js.map +1 -1
  214. package/dist/components/bcm-pop-confirm.js +278 -171
  215. package/dist/components/bcm-pop-confirm.js.map +1 -1
  216. package/dist/components/bcm-popover.js +355 -110
  217. package/dist/components/bcm-popover.js.map +1 -1
  218. package/dist/components/bcm-radio-group.js +6 -4
  219. package/dist/components/bcm-radio-group.js.map +1 -1
  220. package/dist/components/bcm-radio.js +5 -3
  221. package/dist/components/bcm-radio.js.map +1 -1
  222. package/dist/components/bcm-segmented-picker-option.js +6 -4
  223. package/dist/components/bcm-segmented-picker-option.js.map +1 -1
  224. package/dist/components/bcm-segmented-picker.js +6 -4
  225. package/dist/components/bcm-segmented-picker.js.map +1 -1
  226. package/dist/components/bcm-shortcut.js +5 -3
  227. package/dist/components/bcm-shortcut.js.map +1 -1
  228. package/dist/components/bcm-switch.js +7 -5
  229. package/dist/components/bcm-switch.js.map +1 -1
  230. package/dist/components/bcm-tabs-content.js +5 -3
  231. package/dist/components/bcm-tabs-content.js.map +1 -1
  232. package/dist/components/bcm-tabs-list.js +5 -3
  233. package/dist/components/bcm-tabs-list.js.map +1 -1
  234. package/dist/components/bcm-tabs-trigger.js +5 -3
  235. package/dist/components/bcm-tabs-trigger.js.map +1 -1
  236. package/dist/components/bcm-tabs.js +5 -3
  237. package/dist/components/bcm-tabs.js.map +1 -1
  238. package/dist/components/bcm-text.js +6 -4
  239. package/dist/components/bcm-text.js.map +1 -1
  240. package/dist/components/bcm-textarea.js +7 -5
  241. package/dist/components/bcm-textarea.js.map +1 -1
  242. package/dist/components/bcm-tooltip.js +364 -127
  243. package/dist/components/bcm-tooltip.js.map +1 -1
  244. package/dist/components/index.js +41 -366
  245. package/dist/components/index.js.map +1 -1
  246. package/dist/components/p-6VLsKZvR.js +469 -0
  247. package/dist/components/p-6VLsKZvR.js.map +1 -0
  248. package/dist/components/p-BfTCfPZ1.js.map +1 -1
  249. package/dist/components/p-CEcVC0yX.js.map +1 -1
  250. package/dist/components/{p-CQF7wlXf.js → p-CaemikSK.js} +8 -6
  251. package/dist/components/p-CaemikSK.js.map +1 -0
  252. package/dist/components/{p-DHONP_n4.js → p-CsIBm0J5.js} +9 -7
  253. package/dist/components/p-CsIBm0J5.js.map +1 -0
  254. package/dist/components/{p-CzcTU1ty.js → p-DBDSgIvP.js} +40 -23
  255. package/dist/components/p-DBDSgIvP.js.map +1 -0
  256. package/dist/components/p-IBjzkjef.js.map +1 -1
  257. package/dist/esm/bcm-accordion-group.entry.js +2 -4
  258. package/dist/esm/bcm-accordion.entry.js +3 -5
  259. package/dist/esm/bcm-accordion.entry.js.map +1 -1
  260. package/dist/esm/bcm-alert.entry.js +3 -5
  261. package/dist/esm/bcm-alert.entry.js.map +1 -1
  262. package/dist/esm/bcm-avatar.entry.js +1 -3
  263. package/dist/esm/bcm-badge.entry.js +3 -5
  264. package/dist/esm/bcm-basic-badge.entry.js +3 -5
  265. package/dist/esm/bcm-button-group.entry.js +3 -5
  266. package/dist/esm/bcm-button.bcm-drawer.bcm-linked.bcm-modal.bcm-pop-confirm.bcm-popover.bcm-tooltip.entry.js.map +1 -0
  267. package/dist/esm/bcm-button_7.entry.js +4123 -0
  268. package/dist/esm/bcm-checkbox.entry.js +2 -4
  269. package/dist/esm/bcm-chip.entry.js +2 -4
  270. package/dist/esm/bcm-divider.entry.js +3 -5
  271. package/dist/esm/bcm-divider.entry.js.map +1 -1
  272. package/dist/esm/bcm-dropdown-item.entry.js +3 -5
  273. package/dist/esm/bcm-dropdown.entry.js +3 -13
  274. package/dist/esm/bcm-dropdown.entry.js.map +1 -1
  275. package/dist/esm/bcm-input.entry.js +3 -5
  276. package/dist/esm/bcm-radio-group.entry.js +3 -5
  277. package/dist/esm/bcm-radio.entry.js +2 -4
  278. package/dist/esm/bcm-segmented-picker-option.entry.js +3 -5
  279. package/dist/esm/bcm-segmented-picker-option.entry.js.map +1 -1
  280. package/dist/esm/bcm-segmented-picker.entry.js +3 -5
  281. package/dist/esm/bcm-segmented-picker.entry.js.map +1 -1
  282. package/dist/esm/bcm-shortcut.entry.js +2 -4
  283. package/dist/esm/bcm-switch.entry.js +4 -6
  284. package/dist/esm/bcm-switch.entry.js.map +1 -1
  285. package/dist/esm/bcm-tabs-content.entry.js +2 -4
  286. package/dist/esm/bcm-tabs-list.entry.js +2 -4
  287. package/dist/esm/bcm-tabs-trigger.entry.js +2 -4
  288. package/dist/esm/bcm-tabs.entry.js +2 -4
  289. package/dist/esm/bcm-tabs.entry.js.map +1 -1
  290. package/dist/esm/bcm-text.entry.js +3 -5
  291. package/dist/esm/bcm-text.entry.js.map +1 -1
  292. package/dist/esm/bcm-textarea.entry.js +4 -6
  293. package/dist/esm/bromcom-ui.js +4 -6
  294. package/dist/esm/bromcom-ui.js.map +1 -1
  295. package/dist/esm/generate-id-IBjzkjef.js.map +1 -1
  296. package/dist/esm/index-BfTCfPZ1.js.map +1 -1
  297. package/dist/esm/{index-BuuGCw0z.js → index-CRwAh9Np.js} +62 -372
  298. package/dist/esm/index-CRwAh9Np.js.map +1 -0
  299. package/dist/esm/index.js +0 -2
  300. package/dist/esm/loader.js +3 -5
  301. package/dist/esm/tv-CEcVC0yX.js.map +1 -1
  302. package/dist/types/components/accordion-group/types.d.ts +2 -2
  303. package/dist/types/components/drawer/drawer.component.d.ts +143 -3
  304. package/dist/types/components/drawer/types.d.ts +1 -1
  305. package/dist/types/components/dropdown/dropdown.component.d.ts +0 -3
  306. package/dist/types/components/linked/linked.component.d.ts +152 -36
  307. package/dist/types/components/modal/modal.component.d.ts +121 -0
  308. package/dist/types/components/pop-confirm/pop-confirm.component.d.ts +263 -143
  309. package/dist/types/components/popover/popover.component.d.ts +94 -39
  310. package/dist/types/components/tooltip/tooltip.component.d.ts +147 -56
  311. package/dist/types/components.d.ts +1569 -359
  312. package/dist/types/stencil-public-runtime.d.ts +50 -3
  313. package/package.json +1 -1
  314. package/dist/bromcom-ui/bcm-button.bcm-drawer.bcm-modal.entry.esm.js.map +0 -1
  315. package/dist/bromcom-ui/bcm-linked.entry.esm.js.map +0 -1
  316. package/dist/bromcom-ui/bcm-pop-confirm.entry.esm.js.map +0 -1
  317. package/dist/bromcom-ui/bcm-popover.entry.esm.js.map +0 -1
  318. package/dist/bromcom-ui/bcm-tooltip.entry.esm.js.map +0 -1
  319. package/dist/bromcom-ui/p-0101b4f2.entry.js.map +0 -1
  320. package/dist/bromcom-ui/p-089edfdc.entry.js.map +0 -1
  321. package/dist/bromcom-ui/p-08bc93c5.entry.js +0 -2
  322. package/dist/bromcom-ui/p-08bc93c5.entry.js.map +0 -1
  323. package/dist/bromcom-ui/p-09be61c3.entry.js +0 -2
  324. package/dist/bromcom-ui/p-09be61c3.entry.js.map +0 -1
  325. package/dist/bromcom-ui/p-11851391.entry.js +0 -2
  326. package/dist/bromcom-ui/p-11851391.entry.js.map +0 -1
  327. package/dist/bromcom-ui/p-11f3e129.entry.js.map +0 -1
  328. package/dist/bromcom-ui/p-211ca6e0.entry.js.map +0 -1
  329. package/dist/bromcom-ui/p-22edf049.entry.js.map +0 -1
  330. package/dist/bromcom-ui/p-2480e468.entry.js.map +0 -1
  331. package/dist/bromcom-ui/p-26d2db9e.entry.js.map +0 -1
  332. package/dist/bromcom-ui/p-2d0a6472.entry.js +0 -2
  333. package/dist/bromcom-ui/p-2d0a6472.entry.js.map +0 -1
  334. package/dist/bromcom-ui/p-360bff8a.entry.js.map +0 -1
  335. package/dist/bromcom-ui/p-488d6ef4.entry.js.map +0 -1
  336. package/dist/bromcom-ui/p-5e0702d1.entry.js.map +0 -1
  337. package/dist/bromcom-ui/p-63228f7e.entry.js +0 -2
  338. package/dist/bromcom-ui/p-63228f7e.entry.js.map +0 -1
  339. package/dist/bromcom-ui/p-6b585adc.entry.js.map +0 -1
  340. package/dist/bromcom-ui/p-6d7d73d5.entry.js +0 -2
  341. package/dist/bromcom-ui/p-6d7d73d5.entry.js.map +0 -1
  342. package/dist/bromcom-ui/p-7234af90.entry.js +0 -2
  343. package/dist/bromcom-ui/p-7234af90.entry.js.map +0 -1
  344. package/dist/bromcom-ui/p-83f64814.entry.js.map +0 -1
  345. package/dist/bromcom-ui/p-8ace5a6a.entry.js.map +0 -1
  346. package/dist/bromcom-ui/p-8d74249a.entry.js +0 -2
  347. package/dist/bromcom-ui/p-8d74249a.entry.js.map +0 -1
  348. package/dist/bromcom-ui/p-BuuGCw0z.js +0 -3
  349. package/dist/bromcom-ui/p-BuuGCw0z.js.map +0 -1
  350. package/dist/bromcom-ui/p-DxMLMJ3r.js +0 -2
  351. package/dist/bromcom-ui/p-DxMLMJ3r.js.map +0 -1
  352. package/dist/bromcom-ui/p-a88f20e0.entry.js.map +0 -1
  353. package/dist/bromcom-ui/p-bad299f2.entry.js +0 -2
  354. package/dist/bromcom-ui/p-bad299f2.entry.js.map +0 -1
  355. package/dist/bromcom-ui/p-bdaf5653.entry.js.map +0 -1
  356. package/dist/bromcom-ui/p-c0e7f9d6.entry.js.map +0 -1
  357. package/dist/bromcom-ui/p-c34f0a66.entry.js.map +0 -1
  358. package/dist/bromcom-ui/p-d7cea19f.entry.js +0 -2
  359. package/dist/bromcom-ui/p-d7cea19f.entry.js.map +0 -1
  360. package/dist/bromcom-ui/p-e5e0ac07.entry.js +0 -2
  361. package/dist/bromcom-ui/p-e5e0ac07.entry.js.map +0 -1
  362. package/dist/bromcom-ui/p-ee5f877f.entry.js.map +0 -1
  363. package/dist/bromcom-ui/p-fbccbffc.entry.js +0 -2
  364. package/dist/bromcom-ui/p-fbccbffc.entry.js.map +0 -1
  365. package/dist/cjs/bcm-accordion-group.cjs.entry.js.map +0 -1
  366. package/dist/cjs/bcm-accordion.cjs.entry.js.map +0 -1
  367. package/dist/cjs/bcm-alert.cjs.entry.js.map +0 -1
  368. package/dist/cjs/bcm-avatar.cjs.entry.js.map +0 -1
  369. package/dist/cjs/bcm-badge.cjs.entry.js.map +0 -1
  370. package/dist/cjs/bcm-basic-badge.cjs.entry.js.map +0 -1
  371. package/dist/cjs/bcm-button-group.cjs.entry.js.map +0 -1
  372. package/dist/cjs/bcm-button.bcm-drawer.bcm-modal.entry.cjs.js.map +0 -1
  373. package/dist/cjs/bcm-button_3.cjs.entry.js +0 -794
  374. package/dist/cjs/bcm-button_3.cjs.entry.js.map +0 -1
  375. package/dist/cjs/bcm-checkbox.cjs.entry.js.map +0 -1
  376. package/dist/cjs/bcm-chip.cjs.entry.js.map +0 -1
  377. package/dist/cjs/bcm-divider.cjs.entry.js.map +0 -1
  378. package/dist/cjs/bcm-dropdown-item.cjs.entry.js.map +0 -1
  379. package/dist/cjs/bcm-dropdown.cjs.entry.js.map +0 -1
  380. package/dist/cjs/bcm-input.cjs.entry.js.map +0 -1
  381. package/dist/cjs/bcm-linked.cjs.entry.js +0 -343
  382. package/dist/cjs/bcm-linked.cjs.entry.js.map +0 -1
  383. package/dist/cjs/bcm-linked.entry.cjs.js.map +0 -1
  384. package/dist/cjs/bcm-pop-confirm.cjs.entry.js +0 -250
  385. package/dist/cjs/bcm-pop-confirm.cjs.entry.js.map +0 -1
  386. package/dist/cjs/bcm-pop-confirm.entry.cjs.js.map +0 -1
  387. package/dist/cjs/bcm-popover.cjs.entry.js +0 -189
  388. package/dist/cjs/bcm-popover.cjs.entry.js.map +0 -1
  389. package/dist/cjs/bcm-popover.entry.cjs.js.map +0 -1
  390. package/dist/cjs/bcm-radio-group.cjs.entry.js.map +0 -1
  391. package/dist/cjs/bcm-radio.cjs.entry.js.map +0 -1
  392. package/dist/cjs/bcm-segmented-picker-option.cjs.entry.js.map +0 -1
  393. package/dist/cjs/bcm-segmented-picker.cjs.entry.js.map +0 -1
  394. package/dist/cjs/bcm-shortcut.cjs.entry.js.map +0 -1
  395. package/dist/cjs/bcm-switch.cjs.entry.js.map +0 -1
  396. package/dist/cjs/bcm-tabs-content.cjs.entry.js.map +0 -1
  397. package/dist/cjs/bcm-tabs-list.cjs.entry.js.map +0 -1
  398. package/dist/cjs/bcm-tabs-trigger.cjs.entry.js.map +0 -1
  399. package/dist/cjs/bcm-tabs.cjs.entry.js.map +0 -1
  400. package/dist/cjs/bcm-text.cjs.entry.js.map +0 -1
  401. package/dist/cjs/bcm-textarea.cjs.entry.js.map +0 -1
  402. package/dist/cjs/bcm-tooltip.cjs.entry.js +0 -180
  403. package/dist/cjs/bcm-tooltip.cjs.entry.js.map +0 -1
  404. package/dist/cjs/bcm-tooltip.entry.cjs.js.map +0 -1
  405. package/dist/cjs/floating-ui.dom-DyKmFgkP.js +0 -1605
  406. package/dist/cjs/floating-ui.dom-DyKmFgkP.js.map +0 -1
  407. package/dist/cjs/index-BtiU-G2W.js.map +0 -1
  408. package/dist/components/p-BHwftRkk.js +0 -379
  409. package/dist/components/p-BHwftRkk.js.map +0 -1
  410. package/dist/components/p-CQF7wlXf.js.map +0 -1
  411. package/dist/components/p-CzcTU1ty.js.map +0 -1
  412. package/dist/components/p-DHONP_n4.js.map +0 -1
  413. package/dist/esm/bcm-button.bcm-drawer.bcm-modal.entry.js.map +0 -1
  414. package/dist/esm/bcm-button_3.entry.js +0 -790
  415. package/dist/esm/bcm-button_3.entry.js.map +0 -1
  416. package/dist/esm/bcm-linked.entry.js +0 -341
  417. package/dist/esm/bcm-linked.entry.js.map +0 -1
  418. package/dist/esm/bcm-pop-confirm.entry.js +0 -248
  419. package/dist/esm/bcm-pop-confirm.entry.js.map +0 -1
  420. package/dist/esm/bcm-popover.entry.js +0 -187
  421. package/dist/esm/bcm-popover.entry.js.map +0 -1
  422. package/dist/esm/bcm-tooltip.entry.js +0 -178
  423. package/dist/esm/bcm-tooltip.entry.js.map +0 -1
  424. package/dist/esm/floating-ui.dom-DxMLMJ3r.js +0 -1598
  425. package/dist/esm/floating-ui.dom-DxMLMJ3r.js.map +0 -1
  426. package/dist/esm/index-BuuGCw0z.js.map +0 -1
@@ -1,66 +1,121 @@
1
1
  import { p as proxyCustomElement, H, c as createEvent, h } from './index.js';
2
2
  import { t as tv } from './p-CEcVC0yX.js';
3
3
 
4
- const drawerCss = ".contents{display:contents}:host{display:contents}.bcm-ui-element{-webkit-font-smoothing:antialiased;-moz-osx-font-smoothing:grayscale;font-family:Inter,sans-serif}.visible{visibility:visible}.invisible{visibility:hidden}.static{position:static}.fixed{position:fixed}.inset-0{inset:0}.bottom-0{bottom:0}.left-0{left:0}.right-0{right:0}.top-0{top:0}.z-40{z-index:40}.z-50{z-index:50}.m-0{margin:0}.flex{display:flex}.hidden{display:none}.h-6{height:1.5rem}.w-6{width:1.5rem}.flex-grow{flex-grow:1}.-translate-x-full{--tw-translate-x:-100%}.-translate-x-full,.-translate-y-full{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))}.-translate-y-full{--tw-translate-y:-100%}.translate-x-0{--tw-translate-x:0px}.translate-x-0,.translate-x-full{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))}.translate-x-full{--tw-translate-x:100%}.translate-y-0{--tw-translate-y:0px}.translate-y-0,.translate-y-full{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))}.translate-y-full{--tw-translate-y:100%}.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))}.cursor-pointer{cursor:pointer}.flex-col{flex-direction:column}.items-center{align-items:center}.justify-between{justify-content:space-between}.overflow-y-auto{overflow-y:auto}.border-none{border-style:none}.bg-color-base{background-color:var(--bcm-ui-color-background-base-default)}.bg-color-default{background-color:var(--bcm-ui-color-background-default-default)}.bg-color-transparent{background-color:var(--bcm-ui-color-background-transparent-default)}.bg-transparent{background-color:transparent}.p-0{padding:0}.p-4{padding:1rem}.px-4{padding-left:1rem;padding-right:1rem}.py-3{padding-bottom:.75rem;padding-top:.75rem}.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)}.font-medium{font-weight:500}.font-semibold{font-weight:600}.text-color-default{color:var(--bcm-ui-color-text-default)}.opacity-0{opacity:0}.opacity-100{opacity:1}.shadow{--tw-shadow:var(--bcm-ui-box-shadow-default);--tw-shadow-colored:var(--bcm-ui-box-shadow-default);box-shadow:var(--tw-ring-offset-shadow,0 0 #0000),var(--tw-ring-shadow,0 0 #0000),var(--tw-shadow)}.transition-opacity{transition-duration:.15s;transition-property:opacity;transition-timing-function:cubic-bezier(.4,0,.2,1)}.transition-transform{transition-duration:.15s;transition-property:transform;transition-timing-function:cubic-bezier(.4,0,.2,1)}.duration-300{transition-duration:.3s}.ease-in-out{transition-timing-function:cubic-bezier(.4,0,.2,1)}.hover\\:bg-color-default-hover:hover{background-color:var(--bcm-ui-color-background-default-hover)}.active\\:bg-color-default-active:active{background-color:var(--bcm-ui-color-background-default-active)}";
4
+ const drawerCss = ".contents{display:contents}.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))}.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{display:contents}[part=dialog]::backdrop{animation:backdrop-fade-in .2s ease-out}@keyframes backdrop-fade-in{0%{opacity:0}to{opacity:.5}}[part=drawer]{transition:transform .2s ease-out}:host([position=left]) [part=drawer]{transform:translateX(-20px)}:host([position=left][open]) [part=drawer]{transform:translateX(0)}:host([position=right]) [part=drawer]{transform:translateX(20px)}:host([position=right][open]) [part=drawer]{transform:translateX(0)}:host([position=top]) [part=drawer]{transform:translateY(-20px)}:host([position=top][open]) [part=drawer]{transform:translateY(0)}:host([position=bottom]) [part=drawer]{transform:translateY(20px)}:host([position=bottom][open]) [part=drawer]{transform:translateY(0)}.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}.relative{position:relative}.inset-0{inset:0}.m-0{margin:0}.flex{display:flex}.hidden{display:none}.h-6{height:1.5rem}.h-full{height:100%}.h-screen{height:100vh}.max-h-full{max-height:100%}.max-h-none{max-height:none}.w-6{width:1.5rem}.w-full{width:100%}.w-screen{width:100vw}.min-w-0{min-width:0}.max-w-full{max-width:100%}.max-w-none{max-width:none}.flex-1{flex:1 1 0%}.flex-shrink-0{flex-shrink:0}.flex-grow{flex-grow:1}.animate-shake{animation:shake .82s cubic-bezier(.36,.07,.19,.97) infinite;animation:shake .3s cubic-bezier(.36,.07,.19,.97) both}.cursor-pointer{cursor:pointer}.flex-col{flex-direction:column}.items-start{align-items:flex-start}.items-end{align-items:flex-end}.items-center{align-items:center}.justify-start{justify-content:flex-start}.justify-end{justify-content:flex-end}.justify-between{justify-content:space-between}.gap-2{gap:.5rem}.overflow-hidden{overflow:hidden}.overflow-y-auto{overflow-y:auto}.rounded{border-radius:var(--bcm-ui-border-radius-default,6px)}.border-0{border-width:0}.border-b{border-bottom-width:1px}.border-t{border-top-width:1px}.border-solid{border-style:solid}.border-none{border-style:none}.border-color-default{border-color:var(--bcm-ui-color-border-default)}.bg-color-base{background-color:var(--bcm-ui-color-background-base-default)}.bg-transparent{background-color:transparent}.p-0{padding:0}.p-4{padding:1rem}.px-4{padding-left:1rem;padding-right:1rem}.py-3{padding-bottom:.75rem;padding-top:.75rem}.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)}.font-medium{font-weight:500}.font-semibold{font-weight:600}.text-color-default{color:var(--bcm-ui-color-text-default)}.text-color-header{color:var(--bcm-ui-color-text-header)}.text-color-placeholder{color:var(--bcm-ui-color-text-placeholder)}.shadow{--tw-shadow:var(--bcm-ui-box-shadow-default);--tw-shadow-colored:var(--bcm-ui-box-shadow-default)}.shadow,.shadow-2xl{box-shadow:var(--tw-ring-offset-shadow,0 0 #0000),var(--tw-ring-shadow,0 0 #0000),var(--tw-shadow)}.shadow-2xl{--tw-shadow:var(--bcm-ui-box-shadow-2xl);--tw-shadow-colored:var(--bcm-ui-box-shadow-2xl)}.outline-none{outline:2px solid transparent;outline-offset:2px}.transition-colors{transition-duration:.15s;transition-property:color,background-color,border-color,text-decoration-color,fill,stroke;transition-timing-function:cubic-bezier(.4,0,.2,1)}.backdrop\\:bg-color-default-dark::backdrop{background-color:var(--bcm-ui-color-background-default-dark-default)}.backdrop\\:opacity-50::backdrop{opacity:.5}.hover\\:bg-color-default-hover:hover{background-color:var(--bcm-ui-color-background-default-hover)}.focus-visible\\:ring:focus-visible{--tw-ring-offset-shadow:var(--tw-ring-inset) 0 0 0 var(--tw-ring-offset-width) var(--tw-ring-offset-color);--tw-ring-shadow:var(--tw-ring-inset) 0 0 0 calc(2px + var(--tw-ring-offset-width)) var(--tw-ring-color);box-shadow:var(--tw-ring-offset-shadow),var(--tw-ring-shadow),var(--tw-shadow,0 0 #0000)}";
5
5
 
6
6
  const BcmDrawer$1 = /*@__PURE__*/ proxyCustomElement(class BcmDrawer extends H {
7
- constructor() {
7
+ constructor(registerHost) {
8
8
  super();
9
- this.__registerHost();
9
+ if (registerHost !== false) {
10
+ this.__registerHost();
11
+ }
10
12
  this.__attachShadow();
11
13
  this.bcmOpen = createEvent(this, "bcmOpen", 7);
12
14
  this.bcmClose = createEvent(this, "bcmClose", 7);
13
15
  this.bcmBeforeOpen = createEvent(this, "bcmBeforeOpen", 7);
14
16
  this.bcmBeforeClose = createEvent(this, "bcmBeforeClose", 7);
17
+ /**
18
+ * Controls whether the drawer is open or closed
19
+ */
15
20
  this.open = false;
21
+ /**
22
+ * The size of the drawer. Can be a preset value or a custom CSS size
23
+ * - For left/right drawers:
24
+ * - 'small': 320px
25
+ * - 'medium': 480px
26
+ * - 'large': 1064px
27
+ * - For top/bottom drawers:
28
+ * - 'small': 40vh
29
+ * - 'medium': 60vh
30
+ * - 'large': 90vh
31
+ * - Custom values: Any valid CSS size (e.g., '600px', '50%', '30rem', '80vw')
32
+ */
16
33
  this.size = 'medium';
34
+ /**
35
+ * The position where the drawer slides in from
36
+ * - 'left': Slides from the left edge
37
+ * - 'right': Slides from the right edge
38
+ * - 'top': Slides from the top edge
39
+ * - 'bottom': Slides from the bottom edge
40
+ */
17
41
  this.position = 'right';
42
+ /**
43
+ * Makes the drawer take full width (for left/right) or full height (for top/bottom)
44
+ */
18
45
  this.fullWidth = false;
46
+ /**
47
+ * Makes the drawer take the full screen (100vw x 100vh)
48
+ */
49
+ this.fullScreen = false;
50
+ /**
51
+ * Controls backdrop behavior
52
+ * - true: Shows backdrop, drawer can be closed by clicking outside
53
+ * - false: No backdrop
54
+ * - 'static': Shows backdrop but prevents closing by clicking outside (triggers shake animation)
55
+ */
56
+ this.backdrop = true;
57
+ /**
58
+ * Hides the header section completely
59
+ */
19
60
  this.noHeader = false;
61
+ /**
62
+ * Hides the footer section completely
63
+ */
64
+ this.noFooter = false;
65
+ /**
66
+ * Allows closing the drawer by clicking on the backdrop
67
+ */
68
+ this.closeOnBackdrop = true;
69
+ /**
70
+ * Allows closing the drawer by pressing the Escape key
71
+ */
72
+ this.closeOnEscape = true;
73
+ this.shake = false;
20
74
  this.drawerClass = tv({
21
75
  slots: {
22
- backdrop: 'fixed inset-0 bg-color-transparent z-40 transition-opacity duration-300',
23
- wrapper: 'bcm-ui-element fixed bg-color-base text-color-default z-50 transform transition-transform duration-300 ease-in-out flex flex-col',
24
- header: 'flex justify-between items-center bg-color-default text-color-default',
25
- title: 'font-semibold m-0 text-size-6',
26
- closeButton: 'text-size-5 font-medium text-color-default bg-transparent border-none p-0 h-6 w-6 hover:bg-color-default-hover cursor-pointer active:bg-color-default-active',
27
- content: 'overflow-y-auto flex-grow',
76
+ dialog: 'bcm-ui-element fixed inset-0 m-0 p-0 w-full max-w-full h-full max-h-full border-none bg-transparent backdrop:bg-color-default-dark backdrop:opacity-50',
77
+ container: 'fixed inset-0 flex overflow-hidden',
78
+ drawer: 'relative bg-color-base text-color-default shadow-2xl flex flex-col',
79
+ header: 'flex justify-between items-start bg-color-base text-color-default border-color-default border-solid border-0 py-3 px-4',
80
+ headerContent: 'flex-1 min-w-0 flex items-center gap-2',
81
+ title: 'font-semibold m-0 text-size-6 text-color-header',
82
+ helperText: 'text-size-5 text-color-placeholder m-0',
83
+ closeButton: 'text-size-5 font-medium text-color-default bg-transparent border-none p-0 h-6 w-6 rounded hover:bg-color-default-hover cursor-pointer active:bg-color-active transition-colors flex-shrink-0 outline-none focus-visible:ring',
84
+ content: 'flex-grow overflow-y-auto p-4',
85
+ footer: 'flex items-center justify-end gap-2 py-3 px-4',
28
86
  },
29
87
  variants: {
30
- open: {
31
- true: {
32
- backdrop: 'opacity-100 visible',
33
- },
34
- false: {
35
- backdrop: 'opacity-0 invisible',
36
- },
37
- },
38
88
  position: {
39
89
  left: {
40
- wrapper: 'top-0 left-0 bottom-0',
90
+ container: 'justify-start',
91
+ drawer: 'h-full',
92
+ header: 'border-b',
41
93
  },
42
94
  right: {
43
- wrapper: 'top-0 right-0 bottom-0',
95
+ container: 'justify-end',
96
+ drawer: 'h-full',
97
+ header: 'border-b',
44
98
  },
45
99
  top: {
46
- wrapper: 'top-0 left-0 right-0',
100
+ container: 'items-start',
101
+ drawer: 'w-full',
102
+ header: 'border-b',
47
103
  },
48
104
  bottom: {
49
- wrapper: 'bottom-0 left-0 right-0',
105
+ container: 'items-end',
106
+ drawer: 'w-full',
107
+ header: 'border-t',
50
108
  },
51
109
  },
52
- size: {
53
- small: {
54
- header: 'py-3 px-4',
55
- content: 'p-4',
56
- },
57
- medium: {
58
- header: 'py-3 px-4',
59
- content: 'p-4',
110
+ fullScreen: {
111
+ true: {
112
+ drawer: 'w-screen h-screen max-w-none max-h-none',
113
+ container: 'p-0',
60
114
  },
61
- large: {
62
- header: 'py-3 px-4',
63
- content: 'p-4',
115
+ },
116
+ shake: {
117
+ true: {
118
+ drawer: 'animate-shake',
64
119
  },
65
120
  },
66
121
  noHeader: {
@@ -68,85 +123,122 @@ const BcmDrawer$1 = /*@__PURE__*/ proxyCustomElement(class BcmDrawer extends H {
68
123
  header: 'hidden',
69
124
  },
70
125
  },
71
- },
72
- compoundVariants: [
73
- {
74
- open: true,
75
- position: ['left', 'right'],
76
- class: {
77
- wrapper: 'translate-x-0',
78
- },
79
- },
80
- {
81
- open: true,
82
- position: ['top', 'bottom'],
83
- class: {
84
- wrapper: 'translate-y-0',
85
- },
86
- },
87
- {
88
- open: false,
89
- position: 'left',
90
- class: {
91
- wrapper: '-translate-x-full',
92
- },
93
- },
94
- {
95
- open: false,
96
- position: 'right',
97
- class: {
98
- wrapper: 'translate-x-full',
99
- },
100
- },
101
- {
102
- open: false,
103
- position: 'top',
104
- class: {
105
- wrapper: '-translate-y-full',
106
- },
107
- },
108
- {
109
- open: false,
110
- position: 'bottom',
111
- class: {
112
- wrapper: 'translate-y-full',
126
+ noFooter: {
127
+ true: {
128
+ footer: 'hidden',
113
129
  },
114
130
  },
115
- ],
131
+ },
116
132
  });
133
+ this.handleBackdropClick = (event) => {
134
+ const target = event.target;
135
+ // Check if click is on the container (backdrop area), not on drawer content
136
+ if (target.getAttribute('part') === 'container') {
137
+ if (this.backdrop === 'static') {
138
+ this.shakeDrawer();
139
+ }
140
+ else if (this.closeOnBackdrop) {
141
+ this.hide();
142
+ }
143
+ }
144
+ };
145
+ this.handleDialogCancel = (event) => {
146
+ event.preventDefault();
147
+ if (this.backdrop === 'static') {
148
+ this.shakeDrawer();
149
+ // Force dialog to stay open for static backdrop
150
+ requestAnimationFrame(() => {
151
+ if (this.dialogRef && !this.dialogRef.open && this.open) {
152
+ this.dialogRef.showModal();
153
+ }
154
+ });
155
+ }
156
+ else if (this.closeOnEscape) {
157
+ this.hide();
158
+ }
159
+ };
160
+ this.handleDrawerClick = (e) => {
161
+ e.stopPropagation();
162
+ };
117
163
  }
118
164
  handleOpenChange(isOpen) {
119
165
  if (isOpen) {
120
- document.body.style.overflow = 'hidden';
166
+ const event = this.bcmBeforeOpen.emit();
167
+ if (event.defaultPrevented) {
168
+ this.open = false;
169
+ return;
170
+ }
171
+ if (this.dialogRef) {
172
+ if (!this.dialogRef.open) {
173
+ this.dialogRef.showModal();
174
+ }
175
+ }
121
176
  this.bcmOpen.emit();
122
177
  }
123
178
  else {
124
- document.body.style.overflow = '';
179
+ const event = this.bcmBeforeClose.emit();
180
+ if (event.defaultPrevented) {
181
+ this.open = true;
182
+ return;
183
+ }
184
+ if (this.dialogRef && this.dialogRef.open) {
185
+ this.dialogRef.close();
186
+ }
125
187
  this.bcmClose.emit();
126
188
  }
127
189
  }
128
- handleKeyDown(event) {
129
- if (event.key === 'Escape' && this.open) {
190
+ handleClick(event) {
191
+ const path = event.composedPath();
192
+ const dismissElement = path.find(el => { var _a; return (_a = el.hasAttribute) === null || _a === void 0 ? void 0 : _a.call(el, 'data-dismiss'); });
193
+ if (dismissElement) {
130
194
  this.hide();
195
+ event.preventDefault();
196
+ event.stopPropagation();
131
197
  }
132
198
  }
199
+ /**
200
+ * Programmatically opens the drawer
201
+ */
133
202
  async show() {
134
- const event = this.bcmBeforeOpen.emit();
135
- if (!event.defaultPrevented) {
136
- this.open = true;
137
- }
203
+ this.open = true;
138
204
  }
205
+ /**
206
+ * Programmatically closes the drawer
207
+ */
139
208
  async hide() {
140
- const event = this.bcmBeforeClose.emit();
141
- if (!event.defaultPrevented) {
142
- this.open = false;
209
+ this.open = false;
210
+ }
211
+ /**
212
+ * Toggles the drawer open/closed state
213
+ */
214
+ async toggle() {
215
+ this.open = !this.open;
216
+ }
217
+ shakeDrawer() {
218
+ this.shake = true;
219
+ setTimeout(() => {
220
+ this.shake = false;
221
+ }, 300);
222
+ }
223
+ componentDidLoad() {
224
+ if (this.open && this.dialogRef) {
225
+ this.dialogRef.showModal();
143
226
  }
144
227
  }
145
228
  disconnectedCallback() {
146
- document.body.style.overflow = '';
229
+ if (this.dialogRef && this.open) {
230
+ this.dialogRef.close();
231
+ }
147
232
  }
148
- getWrapperStyle() {
233
+ getDrawerStyle() {
149
234
  const style = {};
235
+ if (this.fullScreen) {
236
+ style.width = '100vw';
237
+ style.height = '100vh';
238
+ style.maxWidth = 'none';
239
+ style.maxHeight = 'none';
240
+ return style;
241
+ }
150
242
  if (this.fullWidth) {
151
243
  if (this.position === 'left' || this.position === 'right') {
152
244
  style.width = '100vw';
@@ -156,42 +248,55 @@ const BcmDrawer$1 = /*@__PURE__*/ proxyCustomElement(class BcmDrawer extends H {
156
248
  }
157
249
  return style;
158
250
  }
251
+ // Check if size is a custom value (contains px, %, rem, etc.)
252
+ const isCustomSize = this.size && (this.size.includes('px') || this.size.includes('%') || this.size.includes('rem') || this.size.includes('em') || this.size.includes('vw') || this.size.includes('vh'));
159
253
  if (this.position === 'left' || this.position === 'right') {
160
- switch (this.size) {
161
- case 'small':
162
- style.width = '320px';
163
- break;
164
- case 'medium':
165
- style.width = '480px';
166
- break;
167
- case 'large':
168
- style.width = '1064px';
169
- break;
254
+ if (isCustomSize) {
255
+ style.width = this.size;
256
+ }
257
+ else {
258
+ switch (this.size) {
259
+ case 'small':
260
+ style.width = '320px';
261
+ break;
262
+ case 'medium':
263
+ style.width = '480px';
264
+ break;
265
+ case 'large':
266
+ style.width = '1064px';
267
+ break;
268
+ }
170
269
  }
171
270
  }
172
271
  else {
173
- switch (this.size) {
174
- case 'small':
175
- style.height = '40vh';
176
- break;
177
- case 'medium':
178
- style.height = '60vh';
179
- break;
180
- case 'large':
181
- style.height = '90vh';
182
- break;
272
+ if (isCustomSize) {
273
+ style.height = this.size;
274
+ }
275
+ else {
276
+ switch (this.size) {
277
+ case 'small':
278
+ style.height = '40vh';
279
+ break;
280
+ case 'medium':
281
+ style.height = '60vh';
282
+ break;
283
+ case 'large':
284
+ style.height = '90vh';
285
+ break;
286
+ }
183
287
  }
184
288
  }
185
289
  return style;
186
290
  }
187
291
  render() {
188
- const { backdrop, wrapper, header, title, closeButton, content } = this.drawerClass({
189
- open: this.open,
292
+ const { dialog, container, drawer, header, headerContent, title, helperText, closeButton, content, footer } = this.drawerClass({
190
293
  position: this.position,
191
- size: this.size,
294
+ fullScreen: this.fullScreen,
295
+ shake: this.shake,
192
296
  noHeader: this.noHeader,
297
+ noFooter: this.noFooter,
193
298
  });
194
- return (h("div", { key: '120639c39b40ba77d7420813e82c18952ae67514', part: "base" }, h("div", { key: '3f59e0b0c482421b38d8eb39076da51453a91a70', part: "backdrop", class: backdrop(), onClick: () => this.hide() }), h("div", { key: '9b97aeb2ad7067a11c76a7b265adeb2e3c80eac5', part: "wrapper", class: wrapper(), style: this.getWrapperStyle(), role: "dialog", "aria-modal": "true", "aria-hidden": !this.open ? 'true' : 'false', "aria-label": this.headerText }, h("div", { key: 'd2613cabb535822fed605f52fd782af88c6bef8e', part: "header", class: header() }, h("h2", { key: '1771936e710fe478e3793a1846a0acf3f98d8864', part: "title", class: title() }, h("slot", { key: '0f6e8cb671e201d20b54b7669de9abec7a5627d0', name: "header" }, this.headerText)), h("button", { key: 'da006eaf46c4e6e3d7e7f773477e8eb61be69c00', part: "close-button", class: closeButton(), onClick: () => this.hide(), "aria-label": "Close" }, h("bcm-icon", { key: '913497c5cc4305f3b0ddaf751803fdca19143a9d', name: "fa-solid fa-xmark" }))), h("div", { key: 'd0a287ee5726197cd180724fc70984c5f54f5ba2', part: "content", class: content() }, h("slot", { key: '8401ec9c937f0888499ec8bd4c7bdead3141284e' })), h("div", { key: '14991163fc8d7d78b5a89b8ec18cbf82690a4f0d', part: "footer" }, h("slot", { key: '10e3bb6c6e9aefa5eea8d24dd02fa482feedfb18', name: "footer" })))));
299
+ return (h("dialog", { key: '2b60e637660a9aaed3d1223114d2f0df4c66bb44', ref: el => (this.dialogRef = el), part: "dialog", class: dialog(), onClick: this.handleBackdropClick, onCancel: this.handleDialogCancel, "aria-labelledby": "drawer-title", "aria-describedby": this.helperText ? 'drawer-helper' : undefined, "aria-modal": "true" }, h("div", { key: 'd08f1664dfc39e62bc0cf499b5976af0e14310da', part: "container", class: container() }, h("div", { key: 'ec18449ff5552177551606c5fdd48ce9116fd287', part: "drawer", class: drawer(), style: this.getDrawerStyle(), role: "document", onClick: this.handleDrawerClick }, !this.noHeader && (h("div", { key: '43a3e3afd31c5db5cf9c616f01a3212ec6e3472b', part: "header", class: header() }, h("div", { key: 'bb3d4eea627e0425422015cc400ccea81c70a1a5', part: "header-content", class: headerContent() }, h("h2", { key: '5c5cbd204a44f31171b932fba0932bfcba89e255', id: "drawer-title", part: "title", class: title() }, h("slot", { key: 'c8785c89adb151666c76c158c82f3e9ca6666199', name: "header" }, this.headerText)), this.helperText && (h("p", { key: '2ca315ad22086559305dc0cdcd63f32115a4f721', id: "drawer-helper", part: "helper-text", class: helperText() }, h("slot", { key: '93dcafee1e25675a0e72b53d9d6c848fd63c2f86', name: "helper" }, this.helperText)))), h("button", { key: '1eb3d5b2e9ac607bd1642ca9f067064bf376ce97', part: "close-button", class: closeButton(), onClick: () => this.hide(), "aria-label": "Close drawer", type: "button" }, h("bcm-icon", { key: '0c48991f9d68c874b78384de0d8a3bd15b27f363', name: "fa-solid fa-xmark" })))), h("div", { key: 'd34a886ca003e38bc84b86185fd0b5690954fd9f', part: "content", class: content() }, h("slot", { key: '1c3978b0a66f122b5d4ee5582ed0458c6fc16c73' })), !this.noFooter && (h("div", { key: 'db5faf3da663d11455299840e33732995aa75cf0', part: "footer", class: footer() }, h("slot", { key: '4836d78626ec999eb8f0aa8585d20df48a677f72', name: "footer" })))))));
195
300
  }
196
301
  get host() { return this; }
197
302
  static get watchers() { return {
@@ -201,13 +306,21 @@ const BcmDrawer$1 = /*@__PURE__*/ proxyCustomElement(class BcmDrawer extends H {
201
306
  }, [257, "bcm-drawer", {
202
307
  "open": [1540],
203
308
  "size": [1],
204
- "position": [1],
309
+ "position": [513],
205
310
  "fullWidth": [4, "full-width"],
311
+ "fullScreen": [4, "full-screen"],
312
+ "backdrop": [8],
206
313
  "headerText": [1, "header-text"],
314
+ "helperText": [1, "helper-text"],
207
315
  "noHeader": [4, "no-header"],
316
+ "noFooter": [4, "no-footer"],
317
+ "closeOnBackdrop": [4, "close-on-backdrop"],
318
+ "closeOnEscape": [4, "close-on-escape"],
319
+ "shake": [32],
208
320
  "show": [64],
209
- "hide": [64]
210
- }, [[8, "keydown", "handleKeyDown"]], {
321
+ "hide": [64],
322
+ "toggle": [64]
323
+ }, [[2, "click", "handleClick"]], {
211
324
  "open": ["handleOpenChange"]
212
325
  }]);
213
326
  function defineCustomElement$1() {
@@ -1 +1 @@
1
- {"file":"bcm-drawer.js","mappings":"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","names":["BcmDrawer","__stencil_proxyCustomElement","HTMLElement"],"sources":["src/components/drawer/drawer.css?tag=bcm-drawer&encapsulation=shadow","src/components/drawer/drawer.component.tsx"],"sourcesContent":[":host {\n display: contents;\n}\n","import { Component, Prop, h, Element, Event, EventEmitter, Method, Watch, Listen } from '@stencil/core';\nimport { tv } from '@utils/tv';\nimport { DrawerPosition, DrawerSize } from './types';\n\n@Component({\n tag: 'bcm-drawer',\n styleUrl: 'drawer.css',\n shadow: true,\n})\nexport class BcmDrawer {\n @Element() host: HTMLElement;\n\n @Prop({ mutable: true, reflect: true }) open: boolean = false;\n @Prop() size: DrawerSize = 'medium';\n @Prop() position: DrawerPosition = 'right';\n @Prop({ attribute: 'full-width' }) fullWidth: boolean = false;\n @Prop() headerText?: string;\n @Prop({ attribute: 'no-header' }) noHeader: boolean = false;\n\n @Event() bcmOpen: EventEmitter<void>;\n @Event() bcmClose: EventEmitter<void>;\n @Event({ cancelable: true }) bcmBeforeOpen: EventEmitter<void>;\n @Event({ cancelable: true }) bcmBeforeClose: EventEmitter<void>;\n\n private drawerClass = tv({\n slots: {\n backdrop: 'fixed inset-0 bg-color-transparent z-40 transition-opacity duration-300',\n wrapper: 'bcm-ui-element fixed bg-color-base text-color-default z-50 transform transition-transform duration-300 ease-in-out flex flex-col',\n header: 'flex justify-between items-center bg-color-default text-color-default',\n title: 'font-semibold m-0 text-size-6',\n closeButton: 'text-size-5 font-medium text-color-default bg-transparent border-none p-0 h-6 w-6 hover:bg-color-default-hover cursor-pointer active:bg-color-default-active',\n content: 'overflow-y-auto flex-grow',\n },\n variants: {\n open: {\n true: {\n backdrop: 'opacity-100 visible',\n },\n false: {\n backdrop: 'opacity-0 invisible',\n },\n },\n position: {\n left: {\n wrapper: 'top-0 left-0 bottom-0',\n },\n right: {\n wrapper: 'top-0 right-0 bottom-0',\n },\n top: {\n wrapper: 'top-0 left-0 right-0',\n },\n bottom: {\n wrapper: 'bottom-0 left-0 right-0',\n },\n },\n size: {\n small: {\n header: 'py-3 px-4',\n content: 'p-4',\n },\n medium: {\n header: 'py-3 px-4',\n content: 'p-4',\n },\n large: {\n header: 'py-3 px-4',\n content: 'p-4',\n },\n },\n noHeader: {\n true: {\n header: 'hidden',\n },\n },\n },\n compoundVariants: [\n {\n open: true,\n position: ['left', 'right'],\n class: {\n wrapper: 'translate-x-0',\n },\n },\n {\n open: true,\n position: ['top', 'bottom'],\n class: {\n wrapper: 'translate-y-0',\n },\n },\n {\n open: false,\n position: 'left',\n class: {\n wrapper: '-translate-x-full',\n },\n },\n {\n open: false,\n position: 'right',\n class: {\n wrapper: 'translate-x-full',\n },\n },\n {\n open: false,\n position: 'top',\n class: {\n wrapper: '-translate-y-full',\n },\n },\n {\n open: false,\n position: 'bottom',\n class: {\n wrapper: 'translate-y-full',\n },\n },\n ],\n });\n\n @Watch('open')\n handleOpenChange(isOpen: boolean) {\n if (isOpen) {\n document.body.style.overflow = 'hidden';\n this.bcmOpen.emit();\n } else {\n document.body.style.overflow = '';\n this.bcmClose.emit();\n }\n }\n\n @Listen('keydown', { target: 'window' })\n handleKeyDown(event: KeyboardEvent) {\n if (event.key === 'Escape' && this.open) {\n this.hide();\n }\n }\n\n @Method()\n async show(): Promise<void> {\n const event = this.bcmBeforeOpen.emit();\n if (!event.defaultPrevented) {\n this.open = true;\n }\n }\n\n @Method()\n async hide(): Promise<void> {\n const event = this.bcmBeforeClose.emit();\n if (!event.defaultPrevented) {\n this.open = false;\n }\n }\n\n disconnectedCallback() {\n document.body.style.overflow = '';\n }\n\n private getWrapperStyle() {\n const style: { [key: string]: string } = {};\n\n if (this.fullWidth) {\n if (this.position === 'left' || this.position === 'right') {\n style.width = '100vw';\n } else {\n style.height = '100vh';\n }\n return style;\n }\n\n if (this.position === 'left' || this.position === 'right') {\n switch (this.size) {\n case 'small':\n style.width = '320px';\n break;\n case 'medium':\n style.width = '480px';\n break;\n case 'large':\n style.width = '1064px';\n break;\n }\n } else {\n switch (this.size) {\n case 'small':\n style.height = '40vh';\n break;\n case 'medium':\n style.height = '60vh';\n break;\n case 'large':\n style.height = '90vh';\n break;\n }\n }\n\n return style;\n }\n\n render() {\n const { backdrop, wrapper, header, title, closeButton, content } = this.drawerClass({\n open: this.open,\n position: this.position,\n size: this.size,\n noHeader: this.noHeader,\n });\n\n return (\n <div part=\"base\">\n <div part=\"backdrop\" class={backdrop()} onClick={() => this.hide()} />\n <div\n part=\"wrapper\"\n class={wrapper()}\n style={this.getWrapperStyle()}\n role=\"dialog\"\n aria-modal=\"true\"\n aria-hidden={!this.open ? 'true' : 'false'}\n aria-label={this.headerText}\n >\n <div part=\"header\" class={header()}>\n <h2 part=\"title\" class={title()}>\n <slot name=\"header\">{this.headerText}</slot>\n </h2>\n <button part=\"close-button\" class={closeButton()} onClick={() => this.hide()} aria-label=\"Close\">\n <bcm-icon name=\"fa-solid fa-xmark\"></bcm-icon>\n </button>\n </div>\n <div part=\"content\" class={content()}>\n <slot />\n </div>\n <div part=\"footer\">\n <slot name=\"footer\" />\n </div>\n </div>\n </div>\n );\n }\n}\n"],"version":3}
1
+ {"file":"bcm-drawer.js","mappings":"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","names":["BcmDrawer","__stencil_proxyCustomElement","HTMLElement"],"sources":["src/components/drawer/drawer.css?tag=bcm-drawer&encapsulation=shadow","src/components/drawer/drawer.component.tsx"],"sourcesContent":[":host {\n display: contents;\n}\n\n/* Backdrop fade animation */\n[part='dialog']::backdrop {\n animation: backdrop-fade-in 200ms ease-out;\n}\n\n@keyframes backdrop-fade-in {\n from {\n opacity: 0;\n }\n to {\n opacity: 0.5;\n }\n}\n\n/* Simple slide animations - 20px movement */\n[part='drawer'] {\n transition: transform 200ms ease-out;\n}\n\n/* Left position animations */\n:host([position='left']) [part='drawer'] {\n transform: translateX(-20px);\n}\n\n:host([position='left'][open]) [part='drawer'] {\n transform: translateX(0);\n}\n\n/* Right position animations */\n:host([position='right']) [part='drawer'] {\n transform: translateX(20px);\n}\n\n:host([position='right'][open]) [part='drawer'] {\n transform: translateX(0);\n}\n\n/* Top position animations */\n:host([position='top']) [part='drawer'] {\n transform: translateY(-20px);\n}\n\n:host([position='top'][open]) [part='drawer'] {\n transform: translateY(0);\n}\n\n/* Bottom position animations */\n:host([position='bottom']) [part='drawer'] {\n transform: translateY(20px);\n}\n\n:host([position='bottom'][open]) [part='drawer'] {\n transform: translateY(0);\n}\n","import { Component, Prop, h, Element, Event, EventEmitter, Method, Watch, Listen, State } from '@stencil/core';\nimport { tv } from '@utils/tv';\nimport { DrawerPosition, DrawerSize } from './types';\n\n/**\n * @component BcmDrawer\n * @description A slide-in panel component built on the native HTML Dialog API.\n * Ideal for navigation menus, forms, and contextual information that slides in from any edge of the screen.\n *\n * @slot - Main content area of the drawer\n * @slot header - Custom header content (overrides headerText prop)\n * @slot helper - Custom helper text content (overrides helper-text prop)\n * @slot footer - Footer content for action buttons\n *\n * @part dialog - The native dialog element\n * @part container - The container wrapper for positioning\n * @part drawer - The main drawer panel\n * @part header - The header section\n * @part header-content - The content wrapper inside header\n * @part title - The title heading element\n * @part helper-text - The helper text paragraph\n * @part close-button - The close button in header\n * @part content - The main content area\n * @part footer - The footer section\n *\n * @example\n * ```html\n * <!-- Basic usage -->\n * <bcm-drawer open header-text=\"Menu\" position=\"left\">\n * <nav>\n * <a href=\"/home\">Home</a>\n * <a href=\"/about\">About</a>\n * </nav>\n * </bcm-drawer>\n *\n * <!-- Custom size and position -->\n * <bcm-drawer size=\"large\" position=\"right\">\n * <div slot=\"header\">Settings</div>\n * <form>...</form>\n * <div slot=\"footer\">\n * <button data-dismiss>Cancel</button>\n * <button>Save</button>\n * </div>\n * </bcm-drawer>\n *\n * <!-- Custom size with CSS units -->\n * <bcm-drawer size=\"600px\" position=\"bottom\">\n * <p>Custom height drawer</p>\n * </bcm-drawer>\n *\n * <!-- Programmatic usage -->\n * <bcm-drawer id=\"myDrawer\">Content</bcm-drawer>\n * <script>\n * document.getElementById('myDrawer').show();\n * </script>\n * ```\n */\n@Component({\n tag: 'bcm-drawer',\n styleUrl: 'drawer.css',\n shadow: true,\n})\nexport class BcmDrawer {\n @Element() host: HTMLBcmDrawerElement;\n\n private dialogRef?: HTMLDialogElement;\n\n /**\n * Controls whether the drawer is open or closed\n */\n @Prop({ mutable: true, reflect: true }) open: boolean = false;\n\n /**\n * The size of the drawer. Can be a preset value or a custom CSS size\n * - For left/right drawers:\n * - 'small': 320px\n * - 'medium': 480px\n * - 'large': 1064px\n * - For top/bottom drawers:\n * - 'small': 40vh\n * - 'medium': 60vh\n * - 'large': 90vh\n * - Custom values: Any valid CSS size (e.g., '600px', '50%', '30rem', '80vw')\n */\n @Prop() size: DrawerSize = 'medium';\n\n /**\n * The position where the drawer slides in from\n * - 'left': Slides from the left edge\n * - 'right': Slides from the right edge\n * - 'top': Slides from the top edge\n * - 'bottom': Slides from the bottom edge\n */\n @Prop({ reflect: true }) position: DrawerPosition = 'right';\n\n /**\n * Makes the drawer take full width (for left/right) or full height (for top/bottom)\n */\n @Prop({ attribute: 'full-width' }) fullWidth: boolean = false;\n\n /**\n * Makes the drawer take the full screen (100vw x 100vh)\n */\n @Prop({ attribute: 'full-screen' }) fullScreen: boolean = false;\n\n /**\n * Controls backdrop behavior\n * - true: Shows backdrop, drawer can be closed by clicking outside\n * - false: No backdrop\n * - 'static': Shows backdrop but prevents closing by clicking outside (triggers shake animation)\n */\n @Prop() backdrop: boolean | 'static' = true;\n\n /**\n * Text to display in the drawer header\n */\n @Prop() headerText?: string;\n\n /**\n * Helper text to display below the header title\n */\n @Prop({ attribute: 'helper-text' }) helperText?: string;\n\n /**\n * Hides the header section completely\n */\n @Prop({ attribute: 'no-header' }) noHeader: boolean = false;\n\n /**\n * Hides the footer section completely\n */\n @Prop({ attribute: 'no-footer' }) noFooter: boolean = false;\n\n /**\n * Allows closing the drawer by clicking on the backdrop\n */\n @Prop({ attribute: 'close-on-backdrop' }) closeOnBackdrop: boolean = true;\n\n /**\n * Allows closing the drawer by pressing the Escape key\n */\n @Prop({ attribute: 'close-on-escape' }) closeOnEscape: boolean = true;\n\n @State() shake: boolean = false;\n\n /**\n * Emitted after the drawer has opened\n */\n @Event() bcmOpen: EventEmitter<void>;\n\n /**\n * Emitted after the drawer has closed\n */\n @Event() bcmClose: EventEmitter<void>;\n\n /**\n * Emitted before the drawer opens. Can be cancelled by calling event.preventDefault()\n */\n @Event({ cancelable: true }) bcmBeforeOpen: EventEmitter<void>;\n\n /**\n * Emitted before the drawer closes. Can be cancelled by calling event.preventDefault()\n */\n @Event({ cancelable: true }) bcmBeforeClose: EventEmitter<void>;\n\n private drawerClass = tv({\n slots: {\n dialog:\n 'bcm-ui-element fixed inset-0 m-0 p-0 w-full max-w-full h-full max-h-full border-none bg-transparent backdrop:bg-color-default-dark backdrop:opacity-50',\n container: 'fixed inset-0 flex overflow-hidden',\n drawer: 'relative bg-color-base text-color-default shadow-2xl flex flex-col',\n header: 'flex justify-between items-start bg-color-base text-color-default border-color-default border-solid border-0 py-3 px-4',\n headerContent: 'flex-1 min-w-0 flex items-center gap-2',\n title: 'font-semibold m-0 text-size-6 text-color-header',\n helperText: 'text-size-5 text-color-placeholder m-0',\n closeButton:\n 'text-size-5 font-medium text-color-default bg-transparent border-none p-0 h-6 w-6 rounded hover:bg-color-default-hover cursor-pointer active:bg-color-active transition-colors flex-shrink-0 outline-none focus-visible:ring',\n content: 'flex-grow overflow-y-auto p-4',\n footer: 'flex items-center justify-end gap-2 py-3 px-4',\n },\n variants: {\n position: {\n left: {\n container: 'justify-start',\n drawer: 'h-full',\n header: 'border-b',\n },\n right: {\n container: 'justify-end',\n drawer: 'h-full',\n header: 'border-b',\n },\n top: {\n container: 'items-start',\n drawer: 'w-full',\n header: 'border-b',\n },\n bottom: {\n container: 'items-end',\n drawer: 'w-full',\n header: 'border-t',\n },\n },\n fullScreen: {\n true: {\n drawer: 'w-screen h-screen max-w-none max-h-none',\n container: 'p-0',\n },\n },\n shake: {\n true: {\n drawer: 'animate-shake',\n },\n },\n noHeader: {\n true: {\n header: 'hidden',\n },\n },\n noFooter: {\n true: {\n footer: 'hidden',\n },\n },\n },\n });\n\n @Watch('open')\n handleOpenChange(isOpen: boolean) {\n if (isOpen) {\n const event = this.bcmBeforeOpen.emit();\n if (event.defaultPrevented) {\n this.open = false;\n return;\n }\n\n if (this.dialogRef) {\n if (!this.dialogRef.open) {\n this.dialogRef.showModal();\n }\n }\n\n this.bcmOpen.emit();\n } else {\n const event = this.bcmBeforeClose.emit();\n if (event.defaultPrevented) {\n this.open = true;\n return;\n }\n\n if (this.dialogRef && this.dialogRef.open) {\n this.dialogRef.close();\n }\n this.bcmClose.emit();\n }\n }\n\n @Listen('click', { capture: true })\n handleClick(event: MouseEvent) {\n const path = event.composedPath() as HTMLElement[];\n const dismissElement = path.find(el => el.hasAttribute?.('data-dismiss'));\n\n if (dismissElement) {\n this.hide();\n event.preventDefault();\n event.stopPropagation();\n }\n }\n\n\n /**\n * Programmatically opens the drawer\n */\n @Method()\n async show(): Promise<void> {\n this.open = true;\n }\n\n /**\n * Programmatically closes the drawer\n */\n @Method()\n async hide(): Promise<void> {\n this.open = false;\n }\n\n /**\n * Toggles the drawer open/closed state\n */\n @Method()\n async toggle(): Promise<void> {\n this.open = !this.open;\n }\n\n private shakeDrawer() {\n this.shake = true;\n setTimeout(() => {\n this.shake = false;\n }, 300);\n }\n\n private handleBackdropClick = (event: MouseEvent) => {\n const target = event.target as HTMLElement;\n // Check if click is on the container (backdrop area), not on drawer content\n if (target.getAttribute('part') === 'container') {\n if (this.backdrop === 'static') {\n this.shakeDrawer();\n } else if (this.closeOnBackdrop) {\n this.hide();\n }\n }\n };\n\n private handleDialogCancel = (event: Event) => {\n event.preventDefault();\n if (this.backdrop === 'static') {\n this.shakeDrawer();\n // Force dialog to stay open for static backdrop\n requestAnimationFrame(() => {\n if (this.dialogRef && !this.dialogRef.open && this.open) {\n this.dialogRef.showModal();\n }\n });\n } else if (this.closeOnEscape) {\n this.hide();\n }\n };\n\n private handleDrawerClick = (e: MouseEvent) => {\n e.stopPropagation();\n };\n\n componentDidLoad() {\n if (this.open && this.dialogRef) {\n this.dialogRef.showModal();\n }\n }\n\n disconnectedCallback() {\n if (this.dialogRef && this.open) {\n this.dialogRef.close();\n }\n }\n\n private getDrawerStyle() {\n const style: { [key: string]: string } = {};\n\n if (this.fullScreen) {\n style.width = '100vw';\n style.height = '100vh';\n style.maxWidth = 'none';\n style.maxHeight = 'none';\n return style;\n }\n\n if (this.fullWidth) {\n if (this.position === 'left' || this.position === 'right') {\n style.width = '100vw';\n } else {\n style.height = '100vh';\n }\n return style;\n }\n\n // Check if size is a custom value (contains px, %, rem, etc.)\n const isCustomSize = this.size && (this.size.includes('px') || this.size.includes('%') || this.size.includes('rem') || this.size.includes('em') || this.size.includes('vw') || this.size.includes('vh'));\n\n if (this.position === 'left' || this.position === 'right') {\n if (isCustomSize) {\n style.width = this.size;\n } else {\n switch (this.size) {\n case 'small':\n style.width = '320px';\n break;\n case 'medium':\n style.width = '480px';\n break;\n case 'large':\n style.width = '1064px';\n break;\n }\n }\n } else {\n if (isCustomSize) {\n style.height = this.size;\n } else {\n switch (this.size) {\n case 'small':\n style.height = '40vh';\n break;\n case 'medium':\n style.height = '60vh';\n break;\n case 'large':\n style.height = '90vh';\n break;\n }\n }\n }\n\n return style;\n }\n\n render() {\n const { dialog, container, drawer, header, headerContent, title, helperText, closeButton, content, footer } = this.drawerClass({\n position: this.position,\n fullScreen: this.fullScreen,\n shake: this.shake,\n noHeader: this.noHeader,\n noFooter: this.noFooter,\n });\n\n return (\n <dialog\n ref={el => (this.dialogRef = el)}\n part=\"dialog\"\n class={dialog()}\n onClick={this.handleBackdropClick}\n onCancel={this.handleDialogCancel}\n aria-labelledby=\"drawer-title\"\n aria-describedby={this.helperText ? 'drawer-helper' : undefined}\n aria-modal=\"true\"\n >\n <div part=\"container\" class={container()}>\n <div part=\"drawer\" class={drawer()} style={this.getDrawerStyle()} role=\"document\" onClick={this.handleDrawerClick}>\n {!this.noHeader && (\n <div part=\"header\" class={header()}>\n <div part=\"header-content\" class={headerContent()}>\n <h2 id=\"drawer-title\" part=\"title\" class={title()}>\n <slot name=\"header\">{this.headerText}</slot>\n </h2>\n {this.helperText && (\n <p id=\"drawer-helper\" part=\"helper-text\" class={helperText()}>\n <slot name=\"helper\">{this.helperText}</slot>\n </p>\n )}\n </div>\n <button part=\"close-button\" class={closeButton()} onClick={() => this.hide()} aria-label=\"Close drawer\" type=\"button\">\n <bcm-icon name=\"fa-solid fa-xmark\"></bcm-icon>\n </button>\n </div>\n )}\n\n <div part=\"content\" class={content()}>\n <slot />\n </div>\n\n {!this.noFooter && (\n <div part=\"footer\" class={footer()}>\n <slot name=\"footer\" />\n </div>\n )}\n </div>\n </div>\n </dialog>\n );\n }\n}\n"],"version":3}
@@ -4,9 +4,11 @@ import { t as tv } from './p-CEcVC0yX.js';
4
4
  const dropdownItemCss = ".flex{display:flex}:host{display:inline-block;width:100%}::slotted([slot=left-content]){align-items:center;display:flex;flex-direction:row;gap:8px}::slotted([slot=right-content]){align-items:center;display:flex;flex-direction:row;gap:8px}.bcm-ui-element{-webkit-font-smoothing:antialiased;-moz-osx-font-smoothing:grayscale;font-family:Inter,sans-serif}.static{position:static}.w-full{width:100%}.cursor-pointer{cursor:pointer}.flex-row{flex-direction:row}.gap-2{gap:.5rem}.text-pretty{text-wrap:pretty}.bg-\\[var\\(--bcm-ui-color-background-base-active\\)\\]{background-color:var(--bcm-ui-color-background-base-active)}.bg-\\[var\\(--bcm-ui-color-background-palette-red-default\\)\\]{background-color:var(--bcm-ui-color-background-palette-red-default)}.px-4{padding-left:1rem;padding-right:1rem}.py-2{padding-bottom:.5rem;padding-top:.5rem}.shadow{--tw-shadow:var(--bcm-ui-box-shadow-default);--tw-shadow-colored:var(--bcm-ui-box-shadow-default);box-shadow:var(--tw-ring-offset-shadow,0 0 #0000),var(--tw-ring-shadow,0 0 #0000),var(--tw-shadow)}.hover\\:bg-\\[var\\(--bcm-ui-color-background-base-active\\)\\]:hover{background-color:var(--bcm-ui-color-background-base-active)}.hover\\:bg-\\[var\\(--bcm-ui-color-background-base-hover\\)\\]:hover{background-color:var(--bcm-ui-color-background-base-hover)}.hover\\:bg-\\[var\\(--bcm-ui-color-background-palette-red-default\\)\\]:hover{background-color:var(--bcm-ui-color-background-palette-red-default)}";
5
5
 
6
6
  const DropdownItem = /*@__PURE__*/ proxyCustomElement(class DropdownItem extends H {
7
- constructor() {
7
+ constructor(registerHost) {
8
8
  super();
9
- this.__registerHost();
9
+ if (registerHost !== false) {
10
+ this.__registerHost();
11
+ }
10
12
  this.__attachShadow();
11
13
  this.bcmDropDownItemChange = createEvent(this, "bcmDropDownItemChange", 1);
12
14
  this.selected = false;
@@ -46,17 +48,17 @@ const DropdownItem = /*@__PURE__*/ proxyCustomElement(class DropdownItem extends
46
48
  }
47
49
  render() {
48
50
  var _a;
49
- return (h("div", { key: 'a7711d8f7d3b825e14ed5caf3546c7ddc839d099', "aria-checked": this.selected, class: this.dropdownItemClass({
51
+ return (h("div", { key: 'df59d3ea6c53de5a10d37b6acd8e81d9c516e6f5', "aria-checked": this.selected, class: this.dropdownItemClass({
50
52
  selected: this.selected,
51
53
  error: this.error,
52
- }), onClick: () => this.handleClick() }, h("slot", { key: '1d262e43a2600450e76220121fc309e31e254940', name: "left-content" }, this.icon && h("bcm-icon", { key: 'cac088e6752681d3187f7d4896a9097589e6e2b9', "icon-name": this.icon })), h("div", { key: '90012594c1a377543673e3aaa4883cd97e4c6d8b', class: "flex flex-row text-pretty w-full" }, h("slot", { key: '511aeda759e51451d57a4b5f80fc95080dc48239' }, this.text)), h("slot", { key: '9297f69765be0a666189cf6c4f73c6819de87d62', name: "right-content" }, (_a = this.rightIcons) === null || _a === void 0 ? void 0 : _a.map(icon => (h("bcm-icon", { "icon-name": icon }))))));
54
+ }), onClick: () => this.handleClick() }, h("slot", { key: '7ef8f52088bff39eb3dfecf7269b1d6b29185582', name: "left-content" }, this.icon && h("bcm-icon", { key: 'a302aafb745289c380edc120738c973fe7200c6d', "icon-name": this.icon })), h("div", { key: '7c5c8c27b982dbd314d5645603035f4dff0087d7', class: "flex flex-row text-pretty w-full" }, h("slot", { key: '873e7b62a2b20cc992425dcfd42c4edd1da6144b' }, this.text)), h("slot", { key: '199f13fb5dfa2d6b5bd1ed07652aa721eaf3c8a9', name: "right-content" }, (_a = this.rightIcons) === null || _a === void 0 ? void 0 : _a.map(icon => (h("bcm-icon", { "icon-name": icon }))))));
53
55
  }
54
56
  get host() { return this; }
55
57
  static get style() { return dropdownItemCss; }
56
58
  }, [257, "bcm-dropdown-item", {
57
59
  "text": [1],
58
60
  "icon": [1],
59
- "rightIcons": [16, "right-icons"],
61
+ "rightIcons": [16],
60
62
  "selected": [516],
61
63
  "error": [516],
62
64
  "disabled": [516]
@@ -1 +1 @@
1
- {"file":"bcm-dropdown-item.js","mappings":";;;AAAA,MAAM,eAAe,GAAG,86CAA86C;;MCQz7C,YAAY,iBAAAA,kBAAA,CAAA,MAAA,YAAA,SAAAC,CAAA,CAAA;AALzB,IAAA,WAAA,GAAA;;;;;AAU2B,QAAA,IAAQ,CAAA,QAAA,GAAY,KAAK;AACzB,QAAA,IAAK,CAAA,KAAA,GAAY,KAAK;AACtB,QAAA,IAAQ,CAAA,QAAA,GAAY,KAAK;AAkB1C,QAAA,IAAiB,CAAA,iBAAA,GAAG,EAAE,CAC5B;AACE,YAAA,IAAI,EAAE,6GAA6G;AACnH,YAAA,QAAQ,EAAE;AACR,gBAAA,QAAQ,EAAE;AACR,oBAAA,IAAI,EAAE,uGAAuG;AAC7G,oBAAA,KAAK,EAAE,sDAAsD;AAC9D,iBAAA;AACD,gBAAA,KAAK,EAAE;AACL,oBAAA,IAAI,EAAE,uHAAuH;AAC7H,oBAAA,KAAK,EAAE,EAAE;AACV,iBAAA;AACD,gBAAA,QAAQ,EAAE;oBACR,IAAI,EAAE,EAAE;AACR,oBAAA,KAAK,EAAE,EAAE;AACV,iBAAA;AACF,aAAA;AACD,YAAA,eAAe,EAAE;AACf,gBAAA,QAAQ,EAAE,KAAK;AACf,gBAAA,KAAK,EAAE,KAAK;AACZ,gBAAA,QAAQ,EAAE,KAAK;AAChB,aAAA;SACF,EACD;AACE,YAAA,OAAO,EAAE,KAAK;AACf,SAAA,CACF;AAwBF;IA1DS,WAAW,GAAA;AACjB,QAAA,IAAI,CAAC,QAAQ,GAAG,IAAI;AACpB,QAAA,IAAI,CAAC,qBAAqB,CAAC,IAAI,CAAC;YAC9B,OAAO,EAAE,IAAI,CAAC,IAAI;YAClB,QAAQ,EAAE,IAAI,CAAC,QAAQ;AACxB,SAAA,CAAC;;IA+BJ,MAAM,GAAA;;QACJ,QACE,CACgB,CAAA,KAAA,EAAA,EAAA,GAAA,EAAA,0CAAA,EAAA,cAAA,EAAA,IAAI,CAAC,QAAQ,EAC3B,KAAK,EAAE,IAAI,CAAC,iBAAiB,CAAC;gBAC5B,QAAQ,EAAE,IAAI,CAAC,QAAQ;gBACvB,KAAK,EAAE,IAAI,CAAC,KAAK;AAClB,aAAA,CAAC,EACF,OAAO,EAAE,MAAM,IAAI,CAAC,WAAW,EAAE,EAAA,EAEjC,CAAA,CAAA,MAAA,EAAA,EAAA,GAAA,EAAA,0CAAA,EAAM,IAAI,EAAC,cAAc,EAAA,EAAE,IAAI,CAAC,IAAI,IAAI,CAAqB,CAAA,UAAA,EAAA,EAAA,GAAA,EAAA,0CAAA,EAAA,WAAA,EAAA,IAAI,CAAC,IAAI,GAAa,CAAQ,EAC3F,CAAK,CAAA,KAAA,EAAA,EAAA,GAAA,EAAA,0CAAA,EAAA,KAAK,EAAC,kCAAkC,EAAA,EAC3C,CAAA,CAAA,MAAA,EAAA,EAAA,GAAA,EAAA,0CAAA,EAAA,EAAO,IAAI,CAAC,IAAI,CAAQ,CACpB,EACN,CAAM,CAAA,MAAA,EAAA,EAAA,GAAA,EAAA,0CAAA,EAAA,IAAI,EAAC,eAAe,EACvB,EAAA,CAAA,EAAA,GAAA,IAAI,CAAC,UAAU,MAAE,IAAA,IAAA,EAAA,KAAA,MAAA,GAAA,MAAA,GAAA,EAAA,CAAA,GAAG,CAAC,IAAI,KACxB,CAAA,CAAA,UAAA,EAAA,EAAA,WAAA,EAAqB,IAAI,EAAA,CAAa,CACvC,CAAC,CACG,CACH;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;","names":["__stencil_proxyCustomElement","HTMLElement"],"sources":["src/components/dropdown-item/dropdown-item.css?tag=bcm-dropdown-item&encapsulation=shadow","src/components/dropdown-item/dropdown-item.component.tsx"],"sourcesContent":[":host {\n display: inline-block;\n width: 100%;\n}\n\n::slotted([slot='left-content']) {\n display: flex;\n flex-direction: row;\n align-items: center;\n gap: 8px;\n}\n\n::slotted([slot='right-content']) {\n display: flex;\n flex-direction: row;\n align-items: center;\n gap: 8px;\n}\n","import { Component, ComponentInterface, h, Prop, Event, EventEmitter, Element } from '@stencil/core';\nimport { tv } from '@utils/tv';\n\n@Component({\n tag: 'bcm-dropdown-item',\n styleUrl: 'dropdown-item.css',\n shadow: true,\n})\nexport class DropdownItem implements ComponentInterface {\n @Element() host: HTMLElement;\n @Prop() text: string;\n @Prop() icon: string;\n @Prop() rightIcons: string[];\n @Prop({ reflect: true }) selected: boolean = false;\n @Prop({ reflect: true }) error: boolean = false;\n @Prop({ reflect: true }) disabled: boolean = false;\n\n @Event({\n composed: false,\n bubbles: false,\n cancelable: true,\n eventName: 'bcmDropDownItemChange',\n })\n bcmDropDownItemChange: EventEmitter<any>;\n\n private handleClick() {\n this.selected = true;\n this.bcmDropDownItemChange.emit({\n element: this.host,\n selected: this.selected,\n });\n }\n\n private dropdownItemClass = tv(\n {\n base: 'dropdown-item bcm-ui-element bcm-ui-content-display flex flex-row gap-2 py-2 px-4 cursor-pointer text-color',\n variants: {\n selected: {\n true: 'bg-[var(--bcm-ui-color-background-base-active)] hover:bg-[var(--bcm-ui-color-background-base-active)]',\n false: 'hover:bg-[var(--bcm-ui-color-background-base-hover)]',\n },\n error: {\n true: 'bg-[var(--bcm-ui-color-background-palette-red-default)] hover:bg-[var(--bcm-ui-color-background-palette-red-default)]',\n false: '',\n },\n disabled: {\n true: '', // should be discuss with ux team\n false: '',\n },\n },\n defaultVariants: {\n selected: false,\n error: false,\n disabled: false,\n },\n },\n {\n twMerge: false,\n },\n );\n\n render() {\n return (\n <div\n aria-checked={this.selected}\n class={this.dropdownItemClass({\n selected: this.selected,\n error: this.error,\n })}\n onClick={() => this.handleClick()}\n >\n <slot name=\"left-content\">{this.icon && <bcm-icon icon-name={this.icon}></bcm-icon>}</slot>\n <div class=\"flex flex-row text-pretty w-full\">\n <slot>{this.text}</slot>\n </div>\n <slot name=\"right-content\">\n {this.rightIcons?.map(icon => (\n <bcm-icon icon-name={icon}></bcm-icon>\n ))}\n </slot>\n </div>\n );\n }\n}\n"],"version":3}
1
+ {"file":"bcm-dropdown-item.js","mappings":";;;AAAA,MAAM,eAAe,GAAG,86CAA86C;;MCQz7C,YAAY,iBAAAA,kBAAA,CAAA,MAAA,YAAA,SAAAC,CAAA,CAAA;AALzB,IAAA,WAAA,CAAA,YAAA,EAAA;;;;;;;AAU2B,QAAA,IAAQ,CAAA,QAAA,GAAY,KAAK;AACzB,QAAA,IAAK,CAAA,KAAA,GAAY,KAAK;AACtB,QAAA,IAAQ,CAAA,QAAA,GAAY,KAAK;AAkB1C,QAAA,IAAiB,CAAA,iBAAA,GAAG,EAAE,CAC5B;AACE,YAAA,IAAI,EAAE,6GAA6G;AACnH,YAAA,QAAQ,EAAE;AACR,gBAAA,QAAQ,EAAE;AACR,oBAAA,IAAI,EAAE,uGAAuG;AAC7G,oBAAA,KAAK,EAAE,sDAAsD;AAC9D,iBAAA;AACD,gBAAA,KAAK,EAAE;AACL,oBAAA,IAAI,EAAE,uHAAuH;AAC7H,oBAAA,KAAK,EAAE,EAAE;AACV,iBAAA;AACD,gBAAA,QAAQ,EAAE;oBACR,IAAI,EAAE,EAAE;AACR,oBAAA,KAAK,EAAE,EAAE;AACV,iBAAA;AACF,aAAA;AACD,YAAA,eAAe,EAAE;AACf,gBAAA,QAAQ,EAAE,KAAK;AACf,gBAAA,KAAK,EAAE,KAAK;AACZ,gBAAA,QAAQ,EAAE,KAAK;AAChB,aAAA;SACF,EACD;AACE,YAAA,OAAO,EAAE,KAAK;AACf,SAAA,CACF;AAwBF;IA1DS,WAAW,GAAA;AACjB,QAAA,IAAI,CAAC,QAAQ,GAAG,IAAI;AACpB,QAAA,IAAI,CAAC,qBAAqB,CAAC,IAAI,CAAC;YAC9B,OAAO,EAAE,IAAI,CAAC,IAAI;YAClB,QAAQ,EAAE,IAAI,CAAC,QAAQ;AACxB,SAAA,CAAC;;IA+BJ,MAAM,GAAA;;QACJ,QACE,CACgB,CAAA,KAAA,EAAA,EAAA,GAAA,EAAA,0CAAA,EAAA,cAAA,EAAA,IAAI,CAAC,QAAQ,EAC3B,KAAK,EAAE,IAAI,CAAC,iBAAiB,CAAC;gBAC5B,QAAQ,EAAE,IAAI,CAAC,QAAQ;gBACvB,KAAK,EAAE,IAAI,CAAC,KAAK;AAClB,aAAA,CAAC,EACF,OAAO,EAAE,MAAM,IAAI,CAAC,WAAW,EAAE,EAAA,EAEjC,CAAA,CAAA,MAAA,EAAA,EAAA,GAAA,EAAA,0CAAA,EAAM,IAAI,EAAC,cAAc,EAAA,EAAE,IAAI,CAAC,IAAI,IAAI,CAAqB,CAAA,UAAA,EAAA,EAAA,GAAA,EAAA,0CAAA,EAAA,WAAA,EAAA,IAAI,CAAC,IAAI,GAAa,CAAQ,EAC3F,CAAK,CAAA,KAAA,EAAA,EAAA,GAAA,EAAA,0CAAA,EAAA,KAAK,EAAC,kCAAkC,EAAA,EAC3C,CAAA,CAAA,MAAA,EAAA,EAAA,GAAA,EAAA,0CAAA,EAAA,EAAO,IAAI,CAAC,IAAI,CAAQ,CACpB,EACN,CAAM,CAAA,MAAA,EAAA,EAAA,GAAA,EAAA,0CAAA,EAAA,IAAI,EAAC,eAAe,EACvB,EAAA,CAAA,EAAA,GAAA,IAAI,CAAC,UAAU,MAAE,IAAA,IAAA,EAAA,KAAA,MAAA,GAAA,MAAA,GAAA,EAAA,CAAA,GAAG,CAAC,IAAI,KACxB,CAAA,CAAA,UAAA,EAAA,EAAA,WAAA,EAAqB,IAAI,EAAA,CAAa,CACvC,CAAC,CACG,CACH;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;","names":["__stencil_proxyCustomElement","HTMLElement"],"sources":["src/components/dropdown-item/dropdown-item.css?tag=bcm-dropdown-item&encapsulation=shadow","src/components/dropdown-item/dropdown-item.component.tsx"],"sourcesContent":[":host {\n display: inline-block;\n width: 100%;\n}\n\n::slotted([slot='left-content']) {\n display: flex;\n flex-direction: row;\n align-items: center;\n gap: 8px;\n}\n\n::slotted([slot='right-content']) {\n display: flex;\n flex-direction: row;\n align-items: center;\n gap: 8px;\n}\n","import { Component, ComponentInterface, h, Prop, Event, EventEmitter, Element } from '@stencil/core';\nimport { tv } from '@utils/tv';\n\n@Component({\n tag: 'bcm-dropdown-item',\n styleUrl: 'dropdown-item.css',\n shadow: true,\n})\nexport class DropdownItem implements ComponentInterface {\n @Element() host: HTMLElement;\n @Prop() text: string;\n @Prop() icon: string;\n @Prop() rightIcons: string[];\n @Prop({ reflect: true }) selected: boolean = false;\n @Prop({ reflect: true }) error: boolean = false;\n @Prop({ reflect: true }) disabled: boolean = false;\n\n @Event({\n composed: false,\n bubbles: false,\n cancelable: true,\n eventName: 'bcmDropDownItemChange',\n })\n bcmDropDownItemChange: EventEmitter<any>;\n\n private handleClick() {\n this.selected = true;\n this.bcmDropDownItemChange.emit({\n element: this.host,\n selected: this.selected,\n });\n }\n\n private dropdownItemClass = tv(\n {\n base: 'dropdown-item bcm-ui-element bcm-ui-content-display flex flex-row gap-2 py-2 px-4 cursor-pointer text-color',\n variants: {\n selected: {\n true: 'bg-[var(--bcm-ui-color-background-base-active)] hover:bg-[var(--bcm-ui-color-background-base-active)]',\n false: 'hover:bg-[var(--bcm-ui-color-background-base-hover)]',\n },\n error: {\n true: 'bg-[var(--bcm-ui-color-background-palette-red-default)] hover:bg-[var(--bcm-ui-color-background-palette-red-default)]',\n false: '',\n },\n disabled: {\n true: '', // should be discuss with ux team\n false: '',\n },\n },\n defaultVariants: {\n selected: false,\n error: false,\n disabled: false,\n },\n },\n {\n twMerge: false,\n },\n );\n\n render() {\n return (\n <div\n aria-checked={this.selected}\n class={this.dropdownItemClass({\n selected: this.selected,\n error: this.error,\n })}\n onClick={() => this.handleClick()}\n >\n <slot name=\"left-content\">{this.icon && <bcm-icon icon-name={this.icon}></bcm-icon>}</slot>\n <div class=\"flex flex-row text-pretty w-full\">\n <slot>{this.text}</slot>\n </div>\n <slot name=\"right-content\">\n {this.rightIcons?.map(icon => (\n <bcm-icon icon-name={icon}></bcm-icon>\n ))}\n </slot>\n </div>\n );\n }\n}\n"],"version":3}