bromcom-ui-next 0.1.28 → 0.1.30

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
Files changed (438) hide show
  1. package/dist/bromcom-ui/_commonjsHelpers-CvGrISen.js.map +1 -0
  2. package/dist/bromcom-ui/bcm-accordion.entry.esm.js.map +1 -1
  3. package/dist/bromcom-ui/bcm-alert.entry.esm.js.map +1 -1
  4. package/dist/bromcom-ui/bcm-button.bcm-drawer.bcm-linked.bcm-modal.bcm-pop-confirm.bcm-popover.bcm-tooltip.entry.esm.js.map +1 -0
  5. package/dist/bromcom-ui/bcm-checkbox.entry.esm.js.map +1 -1
  6. package/dist/bromcom-ui/bcm-chip.entry.esm.js.map +1 -0
  7. package/dist/bromcom-ui/bcm-divider.entry.esm.js.map +1 -1
  8. package/dist/bromcom-ui/bcm-dropdown.entry.esm.js.map +1 -1
  9. package/dist/bromcom-ui/bcm-input.entry.esm.js.map +1 -1
  10. package/dist/bromcom-ui/bcm-segmented-picker-option.entry.esm.js.map +1 -1
  11. package/dist/bromcom-ui/bcm-segmented-picker.entry.esm.js.map +1 -1
  12. package/dist/bromcom-ui/bcm-switch.entry.esm.js.map +1 -1
  13. package/dist/bromcom-ui/bcm-tabs.entry.esm.js.map +1 -1
  14. package/dist/bromcom-ui/bcm-text.entry.esm.js.map +1 -1
  15. package/dist/bromcom-ui/bromcom-ui.esm.js +1 -1
  16. package/dist/bromcom-ui/bromcom-ui.esm.js.map +1 -1
  17. package/dist/bromcom-ui/floating-ui.dom-ltNPqX34.js.map +1 -0
  18. package/dist/bromcom-ui/generate-id-Crb5QsB-.js.map +1 -0
  19. package/dist/bromcom-ui/index-40rmUZjU.js.map +1 -0
  20. package/dist/bromcom-ui/index-BCaJmHBB.js.map +1 -0
  21. package/dist/bromcom-ui/{p-8ace5a6a.entry.js → p-0c7c6896.entry.js} +2 -2
  22. package/dist/bromcom-ui/p-0c7c6896.entry.js.map +1 -0
  23. package/dist/bromcom-ui/p-11d0e649.entry.js +2 -0
  24. package/dist/bromcom-ui/p-11d0e649.entry.js.map +1 -0
  25. package/dist/bromcom-ui/{p-6b585adc.entry.js → p-12f38632.entry.js} +2 -2
  26. package/dist/bromcom-ui/p-12f38632.entry.js.map +1 -0
  27. package/dist/bromcom-ui/{p-5e0702d1.entry.js → p-13cbd1f5.entry.js} +2 -2
  28. package/dist/bromcom-ui/p-13cbd1f5.entry.js.map +1 -0
  29. package/dist/bromcom-ui/{p-2480e468.entry.js → p-1507908f.entry.js} +2 -2
  30. package/dist/bromcom-ui/p-1507908f.entry.js.map +1 -0
  31. package/dist/bromcom-ui/p-1ce9913f.entry.js +2 -0
  32. package/dist/bromcom-ui/p-1ce9913f.entry.js.map +1 -0
  33. package/dist/bromcom-ui/p-206d767e.entry.js +2 -0
  34. package/dist/bromcom-ui/p-206d767e.entry.js.map +1 -0
  35. package/dist/bromcom-ui/{p-ee5f877f.entry.js → p-3cf7a7f4.entry.js} +2 -2
  36. package/dist/bromcom-ui/p-3cf7a7f4.entry.js.map +1 -0
  37. package/dist/bromcom-ui/p-4505feba.entry.js +2 -0
  38. package/dist/bromcom-ui/p-4505feba.entry.js.map +1 -0
  39. package/dist/bromcom-ui/{p-089edfdc.entry.js → p-496014ca.entry.js} +2 -2
  40. package/dist/bromcom-ui/p-496014ca.entry.js.map +1 -0
  41. package/dist/bromcom-ui/{p-26d2db9e.entry.js → p-4a932cd3.entry.js} +2 -2
  42. package/dist/bromcom-ui/p-4a932cd3.entry.js.map +1 -0
  43. package/dist/bromcom-ui/p-4e554b8d.entry.js +2 -0
  44. package/dist/bromcom-ui/p-4e554b8d.entry.js.map +1 -0
  45. package/dist/bromcom-ui/{p-360bff8a.entry.js → p-57c4c4c4.entry.js} +2 -2
  46. package/dist/bromcom-ui/p-57c4c4c4.entry.js.map +1 -0
  47. package/dist/bromcom-ui/{p-211ca6e0.entry.js → p-61293ab2.entry.js} +2 -2
  48. package/dist/bromcom-ui/p-61293ab2.entry.js.map +1 -0
  49. package/dist/bromcom-ui/{p-83f64814.entry.js → p-61789456.entry.js} +2 -2
  50. package/dist/bromcom-ui/p-61789456.entry.js.map +1 -0
  51. package/dist/bromcom-ui/{p-488d6ef4.entry.js → p-65d0f188.entry.js} +2 -2
  52. package/dist/bromcom-ui/p-65d0f188.entry.js.map +1 -0
  53. package/dist/bromcom-ui/p-83f707dc.entry.js +2 -0
  54. package/dist/bromcom-ui/p-83f707dc.entry.js.map +1 -0
  55. package/dist/bromcom-ui/p-8ba02e7e.entry.js +2 -0
  56. package/dist/bromcom-ui/p-8ba02e7e.entry.js.map +1 -0
  57. package/dist/bromcom-ui/p-9e9bf32e.entry.js +2 -0
  58. package/dist/bromcom-ui/p-9e9bf32e.entry.js.map +1 -0
  59. package/dist/bromcom-ui/p-BfTCfPZ1.js.map +1 -1
  60. package/dist/bromcom-ui/p-CEcVC0yX.js.map +1 -1
  61. package/dist/bromcom-ui/p-CRwAh9Np.js +3 -0
  62. package/dist/bromcom-ui/p-CRwAh9Np.js.map +1 -0
  63. package/dist/bromcom-ui/p-IBjzkjef.js.map +1 -1
  64. package/dist/bromcom-ui/{p-a88f20e0.entry.js → p-c87a6acf.entry.js} +2 -2
  65. package/dist/bromcom-ui/p-c87a6acf.entry.js.map +1 -0
  66. package/dist/bromcom-ui/{p-c34f0a66.entry.js → p-e0e235a8.entry.js} +2 -2
  67. package/dist/bromcom-ui/p-e0e235a8.entry.js.map +1 -0
  68. package/dist/bromcom-ui/{p-0101b4f2.entry.js → p-e1ce8b55.entry.js} +2 -2
  69. package/dist/bromcom-ui/p-e1ce8b55.entry.js.map +1 -0
  70. package/dist/bromcom-ui/p-e4dddb0b.entry.js +2 -0
  71. package/dist/bromcom-ui/p-e4dddb0b.entry.js.map +1 -0
  72. package/dist/bromcom-ui/p-f9426924.entry.js +2 -0
  73. package/dist/bromcom-ui/p-f9426924.entry.js.map +1 -0
  74. package/dist/bromcom-ui/{p-c0e7f9d6.entry.js → p-faa0e62c.entry.js} +2 -2
  75. package/dist/bromcom-ui/p-faa0e62c.entry.js.map +1 -0
  76. package/dist/bromcom-ui/{p-bdaf5653.entry.js → p-fcb4399f.entry.js} +2 -2
  77. package/dist/bromcom-ui/p-fcb4399f.entry.js.map +1 -0
  78. package/dist/bromcom-ui/tv-SlGJ5EfR.js.map +1 -0
  79. package/dist/bromcom-ui/validation-messages-CUvT12BL.js.map +1 -0
  80. package/dist/cjs/bcm-accordion-group.cjs.entry.js +2 -4
  81. package/dist/cjs/bcm-accordion.cjs.entry.js +3 -5
  82. package/dist/cjs/bcm-accordion.entry.cjs.js.map +1 -1
  83. package/dist/cjs/bcm-alert.cjs.entry.js +3 -5
  84. package/dist/cjs/bcm-alert.entry.cjs.js.map +1 -1
  85. package/dist/cjs/bcm-avatar.cjs.entry.js +1 -3
  86. package/dist/cjs/bcm-badge.cjs.entry.js +3 -5
  87. package/dist/cjs/bcm-basic-badge.cjs.entry.js +3 -5
  88. package/dist/cjs/bcm-button-group.cjs.entry.js +3 -5
  89. package/dist/cjs/bcm-button.bcm-drawer.bcm-linked.bcm-modal.bcm-pop-confirm.bcm-popover.bcm-tooltip.entry.cjs.js.map +1 -0
  90. package/dist/cjs/bcm-button_7.cjs.entry.js +4131 -0
  91. package/dist/cjs/bcm-checkbox.cjs.entry.js +7 -5
  92. package/dist/cjs/bcm-checkbox.entry.cjs.js.map +1 -1
  93. package/dist/cjs/bcm-chip.cjs.entry.js +127 -0
  94. package/dist/cjs/bcm-chip.entry.cjs.js.map +1 -0
  95. package/dist/cjs/bcm-divider.cjs.entry.js +3 -5
  96. package/dist/cjs/bcm-divider.entry.cjs.js.map +1 -1
  97. package/dist/cjs/bcm-dropdown-item.cjs.entry.js +3 -5
  98. package/dist/cjs/bcm-dropdown.cjs.entry.js +3 -13
  99. package/dist/cjs/bcm-dropdown.entry.cjs.js.map +1 -1
  100. package/dist/cjs/bcm-input.cjs.entry.js +4 -6
  101. package/dist/cjs/bcm-input.entry.cjs.js.map +1 -1
  102. package/dist/cjs/bcm-radio-group.cjs.entry.js +3 -5
  103. package/dist/cjs/bcm-radio.cjs.entry.js +2 -4
  104. package/dist/cjs/bcm-segmented-picker-option.cjs.entry.js +3 -5
  105. package/dist/cjs/bcm-segmented-picker-option.entry.cjs.js.map +1 -1
  106. package/dist/cjs/bcm-segmented-picker.cjs.entry.js +3 -5
  107. package/dist/cjs/bcm-segmented-picker.entry.cjs.js.map +1 -1
  108. package/dist/cjs/bcm-shortcut.cjs.entry.js +2 -4
  109. package/dist/cjs/bcm-switch.cjs.entry.js +4 -6
  110. package/dist/cjs/bcm-switch.entry.cjs.js.map +1 -1
  111. package/dist/cjs/bcm-tabs-content.cjs.entry.js +2 -4
  112. package/dist/cjs/bcm-tabs-list.cjs.entry.js +2 -4
  113. package/dist/cjs/bcm-tabs-trigger.cjs.entry.js +2 -4
  114. package/dist/cjs/bcm-tabs.cjs.entry.js +2 -4
  115. package/dist/cjs/bcm-tabs.entry.cjs.js.map +1 -1
  116. package/dist/cjs/bcm-text.cjs.entry.js +3 -5
  117. package/dist/cjs/bcm-text.entry.cjs.js.map +1 -1
  118. package/dist/cjs/bcm-textarea.cjs.entry.js +4 -6
  119. package/dist/cjs/bromcom-ui.cjs.js +3 -5
  120. package/dist/cjs/bromcom-ui.cjs.js.map +1 -1
  121. package/dist/cjs/generate-id-CG_BkTJu.js.map +1 -1
  122. package/dist/cjs/index-Bp6Dd2i1.js.map +1 -1
  123. package/dist/cjs/{index-BtiU-G2W.js → index-CmYzUr-k.js} +61 -372
  124. package/dist/cjs/index-CmYzUr-k.js.map +1 -0
  125. package/dist/cjs/index.cjs.js +0 -2
  126. package/dist/cjs/loader.cjs.js +2 -4
  127. package/dist/cjs/tv-ngpIbGlG.js.map +1 -1
  128. package/dist/collection/collection-manifest.json +5 -5
  129. package/dist/collection/components/accordion/accordion.component.js +8 -8
  130. package/dist/collection/components/accordion/accordion.component.js.map +1 -1
  131. package/dist/collection/components/accordion-group/accordion-group.component.js +3 -3
  132. package/dist/collection/components/accordion-group/types.js.map +1 -1
  133. package/dist/collection/components/alert/alert.component.js +6 -6
  134. package/dist/collection/components/alert/alert.css +1 -1
  135. package/dist/collection/components/avatar/avatar.component.js +14 -14
  136. package/dist/collection/components/badge/badge.component.js +15 -15
  137. package/dist/collection/components/basic-badge/basic-badge.component.js +9 -9
  138. package/dist/collection/components/button/button.component.js +32 -32
  139. package/dist/collection/components/button/button.css +1 -1
  140. package/dist/collection/components/button-group/button-group.component.js +15 -15
  141. package/dist/collection/components/checkbox/checkbox.component.js +36 -12
  142. package/dist/collection/components/checkbox/checkbox.component.js.map +1 -1
  143. package/dist/collection/components/checkbox/checkbox.css +1 -1
  144. package/dist/collection/components/chip/chip.component.js +8 -8
  145. package/dist/collection/components/divider/divider.component.js +4 -4
  146. package/dist/collection/components/divider/divider.css +1 -1
  147. package/dist/collection/components/drawer/drawer.component.js +429 -132
  148. package/dist/collection/components/drawer/drawer.component.js.map +1 -1
  149. package/dist/collection/components/drawer/drawer.css +1 -1
  150. package/dist/collection/components/drawer/types.js.map +1 -1
  151. package/dist/collection/components/dropdown/dropdown.component.js +3 -12
  152. package/dist/collection/components/dropdown/dropdown.component.js.map +1 -1
  153. package/dist/collection/components/dropdown/dropdown.css +1 -1
  154. package/dist/collection/components/dropdown-item/dropdown-item.component.js +9 -10
  155. package/dist/collection/components/dropdown-item/dropdown-item.component.js.map +1 -1
  156. package/dist/collection/components/input/input.component.js +44 -45
  157. package/dist/collection/components/input/input.component.js.map +1 -1
  158. package/dist/collection/components/input/input.css +1 -1
  159. package/dist/collection/components/linked/linked.component.js +507 -333
  160. package/dist/collection/components/linked/linked.component.js.map +1 -1
  161. package/dist/collection/components/linked/linked.css +1 -1
  162. package/dist/collection/components/modal/modal.component.js +137 -34
  163. package/dist/collection/components/modal/modal.component.js.map +1 -1
  164. package/dist/collection/components/modal/modal.css +1 -1
  165. package/dist/collection/components/pop-confirm/pop-confirm.component.js +668 -294
  166. package/dist/collection/components/pop-confirm/pop-confirm.component.js.map +1 -1
  167. package/dist/collection/components/pop-confirm/pop-confirm.css +1 -1
  168. package/dist/collection/components/popover/popover.component.js +533 -148
  169. package/dist/collection/components/popover/popover.component.js.map +1 -1
  170. package/dist/collection/components/popover/popover.css +1 -1
  171. package/dist/collection/components/radio/radio.component.js +13 -13
  172. package/dist/collection/components/radio-group/radio-group.component.js +15 -15
  173. package/dist/collection/components/segmented-picker/segmented-picker-option.component.js +10 -10
  174. package/dist/collection/components/segmented-picker/segmented-picker-option.component.js.map +1 -1
  175. package/dist/collection/components/segmented-picker/segmented-picker.component.js +7 -7
  176. package/dist/collection/components/segmented-picker/segmented-picker.component.js.map +1 -1
  177. package/dist/collection/components/shortcut/shortcut.js +4 -4
  178. package/dist/collection/components/switch/switch.component.js +17 -17
  179. package/dist/collection/components/switch/switch.css +1 -1
  180. package/dist/collection/components/tabs/tabs-content.component.js +3 -3
  181. package/dist/collection/components/tabs/tabs-list.component.js +3 -3
  182. package/dist/collection/components/tabs/tabs-trigger.component.js +8 -8
  183. package/dist/collection/components/tabs/tabs.component.js +6 -6
  184. package/dist/collection/components/tabs/tabs.component.js.map +1 -1
  185. package/dist/collection/components/text/text.component.js +6 -6
  186. package/dist/collection/components/text/text.css +1 -1
  187. package/dist/collection/components/textarea/textarea.component.js +39 -40
  188. package/dist/collection/components/textarea/textarea.component.js.map +1 -1
  189. package/dist/collection/components/tooltip/tooltip.component.js +567 -192
  190. package/dist/collection/components/tooltip/tooltip.component.js.map +1 -1
  191. package/dist/collection/components/tooltip/tooltip.css +1 -1
  192. package/dist/components/bcm-accordion-group.js +5 -3
  193. package/dist/components/bcm-accordion-group.js.map +1 -1
  194. package/dist/components/bcm-accordion.js +6 -4
  195. package/dist/components/bcm-accordion.js.map +1 -1
  196. package/dist/components/bcm-alert.js +6 -4
  197. package/dist/components/bcm-alert.js.map +1 -1
  198. package/dist/components/bcm-avatar.js +5 -3
  199. package/dist/components/bcm-avatar.js.map +1 -1
  200. package/dist/components/bcm-badge.js +1 -1
  201. package/dist/components/bcm-basic-badge.js +6 -4
  202. package/dist/components/bcm-basic-badge.js.map +1 -1
  203. package/dist/components/bcm-button-group.js +6 -4
  204. package/dist/components/bcm-button-group.js.map +1 -1
  205. package/dist/components/bcm-button.js +1 -1
  206. package/dist/components/bcm-checkbox.js +11 -4
  207. package/dist/components/bcm-checkbox.js.map +1 -1
  208. package/dist/components/bcm-chip.js +5 -3
  209. package/dist/components/bcm-chip.js.map +1 -1
  210. package/dist/components/bcm-divider.js +6 -4
  211. package/dist/components/bcm-divider.js.map +1 -1
  212. package/dist/components/bcm-drawer.js +228 -115
  213. package/dist/components/bcm-drawer.js.map +1 -1
  214. package/dist/components/bcm-dropdown-item.js +7 -5
  215. package/dist/components/bcm-dropdown-item.js.map +1 -1
  216. package/dist/components/bcm-dropdown.js +8 -15
  217. package/dist/components/bcm-dropdown.js.map +1 -1
  218. package/dist/components/bcm-input.js +7 -5
  219. package/dist/components/bcm-input.js.map +1 -1
  220. package/dist/components/bcm-linked.js +1 -1
  221. package/dist/components/bcm-modal.js +56 -4
  222. package/dist/components/bcm-modal.js.map +1 -1
  223. package/dist/components/bcm-pop-confirm.js +278 -171
  224. package/dist/components/bcm-pop-confirm.js.map +1 -1
  225. package/dist/components/bcm-popover.js +355 -110
  226. package/dist/components/bcm-popover.js.map +1 -1
  227. package/dist/components/bcm-radio-group.js +6 -4
  228. package/dist/components/bcm-radio-group.js.map +1 -1
  229. package/dist/components/bcm-radio.js +5 -3
  230. package/dist/components/bcm-radio.js.map +1 -1
  231. package/dist/components/bcm-segmented-picker-option.js +6 -4
  232. package/dist/components/bcm-segmented-picker-option.js.map +1 -1
  233. package/dist/components/bcm-segmented-picker.js +6 -4
  234. package/dist/components/bcm-segmented-picker.js.map +1 -1
  235. package/dist/components/bcm-shortcut.js +5 -3
  236. package/dist/components/bcm-shortcut.js.map +1 -1
  237. package/dist/components/bcm-switch.js +7 -5
  238. package/dist/components/bcm-switch.js.map +1 -1
  239. package/dist/components/bcm-tabs-content.js +5 -3
  240. package/dist/components/bcm-tabs-content.js.map +1 -1
  241. package/dist/components/bcm-tabs-list.js +5 -3
  242. package/dist/components/bcm-tabs-list.js.map +1 -1
  243. package/dist/components/bcm-tabs-trigger.js +5 -3
  244. package/dist/components/bcm-tabs-trigger.js.map +1 -1
  245. package/dist/components/bcm-tabs.js +5 -3
  246. package/dist/components/bcm-tabs.js.map +1 -1
  247. package/dist/components/bcm-text.js +6 -4
  248. package/dist/components/bcm-text.js.map +1 -1
  249. package/dist/components/bcm-textarea.js +7 -5
  250. package/dist/components/bcm-textarea.js.map +1 -1
  251. package/dist/components/bcm-tooltip.js +364 -127
  252. package/dist/components/bcm-tooltip.js.map +1 -1
  253. package/dist/components/index.js +41 -366
  254. package/dist/components/index.js.map +1 -1
  255. package/dist/components/p-6VLsKZvR.js +469 -0
  256. package/dist/components/p-6VLsKZvR.js.map +1 -0
  257. package/dist/components/p-BfTCfPZ1.js.map +1 -1
  258. package/dist/components/p-CEcVC0yX.js.map +1 -1
  259. package/dist/components/{p-CQF7wlXf.js → p-CaemikSK.js} +8 -6
  260. package/dist/components/p-CaemikSK.js.map +1 -0
  261. package/dist/components/{p-DGlecSBr.js → p-CsIBm0J5.js} +9 -7
  262. package/dist/components/p-CsIBm0J5.js.map +1 -0
  263. package/dist/components/{p-CzcTU1ty.js → p-DBDSgIvP.js} +40 -23
  264. package/dist/components/p-DBDSgIvP.js.map +1 -0
  265. package/dist/components/p-IBjzkjef.js.map +1 -1
  266. package/dist/esm/bcm-accordion-group.entry.js +2 -4
  267. package/dist/esm/bcm-accordion.entry.js +3 -5
  268. package/dist/esm/bcm-accordion.entry.js.map +1 -1
  269. package/dist/esm/bcm-alert.entry.js +3 -5
  270. package/dist/esm/bcm-alert.entry.js.map +1 -1
  271. package/dist/esm/bcm-avatar.entry.js +1 -3
  272. package/dist/esm/bcm-badge.entry.js +3 -5
  273. package/dist/esm/bcm-basic-badge.entry.js +3 -5
  274. package/dist/esm/bcm-button-group.entry.js +3 -5
  275. package/dist/esm/bcm-button.bcm-drawer.bcm-linked.bcm-modal.bcm-pop-confirm.bcm-popover.bcm-tooltip.entry.js.map +1 -0
  276. package/dist/esm/bcm-button_7.entry.js +4123 -0
  277. package/dist/esm/bcm-checkbox.entry.js +7 -5
  278. package/dist/esm/bcm-checkbox.entry.js.map +1 -1
  279. package/dist/esm/bcm-chip.entry.js +125 -0
  280. package/dist/esm/bcm-chip.entry.js.map +1 -0
  281. package/dist/esm/bcm-divider.entry.js +3 -5
  282. package/dist/esm/bcm-divider.entry.js.map +1 -1
  283. package/dist/esm/bcm-dropdown-item.entry.js +3 -5
  284. package/dist/esm/bcm-dropdown.entry.js +3 -13
  285. package/dist/esm/bcm-dropdown.entry.js.map +1 -1
  286. package/dist/esm/bcm-input.entry.js +4 -6
  287. package/dist/esm/bcm-input.entry.js.map +1 -1
  288. package/dist/esm/bcm-radio-group.entry.js +3 -5
  289. package/dist/esm/bcm-radio.entry.js +2 -4
  290. package/dist/esm/bcm-segmented-picker-option.entry.js +3 -5
  291. package/dist/esm/bcm-segmented-picker-option.entry.js.map +1 -1
  292. package/dist/esm/bcm-segmented-picker.entry.js +3 -5
  293. package/dist/esm/bcm-segmented-picker.entry.js.map +1 -1
  294. package/dist/esm/bcm-shortcut.entry.js +2 -4
  295. package/dist/esm/bcm-switch.entry.js +4 -6
  296. package/dist/esm/bcm-switch.entry.js.map +1 -1
  297. package/dist/esm/bcm-tabs-content.entry.js +2 -4
  298. package/dist/esm/bcm-tabs-list.entry.js +2 -4
  299. package/dist/esm/bcm-tabs-trigger.entry.js +2 -4
  300. package/dist/esm/bcm-tabs.entry.js +2 -4
  301. package/dist/esm/bcm-tabs.entry.js.map +1 -1
  302. package/dist/esm/bcm-text.entry.js +3 -5
  303. package/dist/esm/bcm-text.entry.js.map +1 -1
  304. package/dist/esm/bcm-textarea.entry.js +4 -6
  305. package/dist/esm/bromcom-ui.js +4 -6
  306. package/dist/esm/bromcom-ui.js.map +1 -1
  307. package/dist/esm/generate-id-IBjzkjef.js.map +1 -1
  308. package/dist/esm/index-BfTCfPZ1.js.map +1 -1
  309. package/dist/esm/{index-BuuGCw0z.js → index-CRwAh9Np.js} +62 -372
  310. package/dist/esm/index-CRwAh9Np.js.map +1 -0
  311. package/dist/esm/index.js +0 -2
  312. package/dist/esm/loader.js +3 -5
  313. package/dist/esm/tv-CEcVC0yX.js.map +1 -1
  314. package/dist/types/components/accordion-group/types.d.ts +2 -2
  315. package/dist/types/components/checkbox/checkbox.component.d.ts +4 -0
  316. package/dist/types/components/drawer/drawer.component.d.ts +143 -3
  317. package/dist/types/components/drawer/types.d.ts +1 -1
  318. package/dist/types/components/dropdown/dropdown.component.d.ts +0 -3
  319. package/dist/types/components/linked/linked.component.d.ts +152 -36
  320. package/dist/types/components/modal/modal.component.d.ts +121 -0
  321. package/dist/types/components/pop-confirm/pop-confirm.component.d.ts +263 -143
  322. package/dist/types/components/popover/popover.component.d.ts +94 -39
  323. package/dist/types/components/tooltip/tooltip.component.d.ts +147 -56
  324. package/dist/types/components.d.ts +1579 -359
  325. package/dist/types/stencil-public-runtime.d.ts +50 -3
  326. package/package.json +1 -1
  327. package/dist/bromcom-ui/bcm-button.bcm-chip.bcm-drawer.bcm-modal.entry.esm.js.map +0 -1
  328. package/dist/bromcom-ui/bcm-linked.entry.esm.js.map +0 -1
  329. package/dist/bromcom-ui/bcm-pop-confirm.entry.esm.js.map +0 -1
  330. package/dist/bromcom-ui/bcm-popover.entry.esm.js.map +0 -1
  331. package/dist/bromcom-ui/bcm-tooltip.entry.esm.js.map +0 -1
  332. package/dist/bromcom-ui/p-0101b4f2.entry.js.map +0 -1
  333. package/dist/bromcom-ui/p-089edfdc.entry.js.map +0 -1
  334. package/dist/bromcom-ui/p-08bc93c5.entry.js +0 -2
  335. package/dist/bromcom-ui/p-08bc93c5.entry.js.map +0 -1
  336. package/dist/bromcom-ui/p-09be61c3.entry.js +0 -2
  337. package/dist/bromcom-ui/p-09be61c3.entry.js.map +0 -1
  338. package/dist/bromcom-ui/p-211ca6e0.entry.js.map +0 -1
  339. package/dist/bromcom-ui/p-2480e468.entry.js.map +0 -1
  340. package/dist/bromcom-ui/p-26d2db9e.entry.js.map +0 -1
  341. package/dist/bromcom-ui/p-2d0a6472.entry.js +0 -2
  342. package/dist/bromcom-ui/p-2d0a6472.entry.js.map +0 -1
  343. package/dist/bromcom-ui/p-360bff8a.entry.js.map +0 -1
  344. package/dist/bromcom-ui/p-488d6ef4.entry.js.map +0 -1
  345. package/dist/bromcom-ui/p-5e0702d1.entry.js.map +0 -1
  346. package/dist/bromcom-ui/p-6169490c.entry.js +0 -2
  347. package/dist/bromcom-ui/p-6169490c.entry.js.map +0 -1
  348. package/dist/bromcom-ui/p-6b585adc.entry.js.map +0 -1
  349. package/dist/bromcom-ui/p-6d7d73d5.entry.js +0 -2
  350. package/dist/bromcom-ui/p-6d7d73d5.entry.js.map +0 -1
  351. package/dist/bromcom-ui/p-7234af90.entry.js +0 -2
  352. package/dist/bromcom-ui/p-7234af90.entry.js.map +0 -1
  353. package/dist/bromcom-ui/p-83f64814.entry.js.map +0 -1
  354. package/dist/bromcom-ui/p-84677827.entry.js +0 -2
  355. package/dist/bromcom-ui/p-84677827.entry.js.map +0 -1
  356. package/dist/bromcom-ui/p-8ace5a6a.entry.js.map +0 -1
  357. package/dist/bromcom-ui/p-8d74249a.entry.js +0 -2
  358. package/dist/bromcom-ui/p-8d74249a.entry.js.map +0 -1
  359. package/dist/bromcom-ui/p-BuuGCw0z.js +0 -3
  360. package/dist/bromcom-ui/p-BuuGCw0z.js.map +0 -1
  361. package/dist/bromcom-ui/p-DxMLMJ3r.js +0 -2
  362. package/dist/bromcom-ui/p-DxMLMJ3r.js.map +0 -1
  363. package/dist/bromcom-ui/p-a88f20e0.entry.js.map +0 -1
  364. package/dist/bromcom-ui/p-bad299f2.entry.js +0 -2
  365. package/dist/bromcom-ui/p-bad299f2.entry.js.map +0 -1
  366. package/dist/bromcom-ui/p-bdaf5653.entry.js.map +0 -1
  367. package/dist/bromcom-ui/p-c0e7f9d6.entry.js.map +0 -1
  368. package/dist/bromcom-ui/p-c34f0a66.entry.js.map +0 -1
  369. package/dist/bromcom-ui/p-c9cf3f14.entry.js +0 -2
  370. package/dist/bromcom-ui/p-c9cf3f14.entry.js.map +0 -1
  371. package/dist/bromcom-ui/p-d7cea19f.entry.js +0 -2
  372. package/dist/bromcom-ui/p-d7cea19f.entry.js.map +0 -1
  373. package/dist/bromcom-ui/p-e5e0ac07.entry.js +0 -2
  374. package/dist/bromcom-ui/p-e5e0ac07.entry.js.map +0 -1
  375. package/dist/bromcom-ui/p-ee5f877f.entry.js.map +0 -1
  376. package/dist/bromcom-ui/p-fbccbffc.entry.js +0 -2
  377. package/dist/bromcom-ui/p-fbccbffc.entry.js.map +0 -1
  378. package/dist/cjs/bcm-accordion-group.cjs.entry.js.map +0 -1
  379. package/dist/cjs/bcm-accordion.cjs.entry.js.map +0 -1
  380. package/dist/cjs/bcm-alert.cjs.entry.js.map +0 -1
  381. package/dist/cjs/bcm-avatar.cjs.entry.js.map +0 -1
  382. package/dist/cjs/bcm-badge.cjs.entry.js.map +0 -1
  383. package/dist/cjs/bcm-basic-badge.cjs.entry.js.map +0 -1
  384. package/dist/cjs/bcm-button-group.cjs.entry.js.map +0 -1
  385. package/dist/cjs/bcm-button.bcm-chip.bcm-drawer.bcm-modal.entry.cjs.js.map +0 -1
  386. package/dist/cjs/bcm-button_4.cjs.entry.js +0 -915
  387. package/dist/cjs/bcm-button_4.cjs.entry.js.map +0 -1
  388. package/dist/cjs/bcm-checkbox.cjs.entry.js.map +0 -1
  389. package/dist/cjs/bcm-divider.cjs.entry.js.map +0 -1
  390. package/dist/cjs/bcm-dropdown-item.cjs.entry.js.map +0 -1
  391. package/dist/cjs/bcm-dropdown.cjs.entry.js.map +0 -1
  392. package/dist/cjs/bcm-input.cjs.entry.js.map +0 -1
  393. package/dist/cjs/bcm-linked.cjs.entry.js +0 -343
  394. package/dist/cjs/bcm-linked.cjs.entry.js.map +0 -1
  395. package/dist/cjs/bcm-linked.entry.cjs.js.map +0 -1
  396. package/dist/cjs/bcm-pop-confirm.cjs.entry.js +0 -250
  397. package/dist/cjs/bcm-pop-confirm.cjs.entry.js.map +0 -1
  398. package/dist/cjs/bcm-pop-confirm.entry.cjs.js.map +0 -1
  399. package/dist/cjs/bcm-popover.cjs.entry.js +0 -189
  400. package/dist/cjs/bcm-popover.cjs.entry.js.map +0 -1
  401. package/dist/cjs/bcm-popover.entry.cjs.js.map +0 -1
  402. package/dist/cjs/bcm-radio-group.cjs.entry.js.map +0 -1
  403. package/dist/cjs/bcm-radio.cjs.entry.js.map +0 -1
  404. package/dist/cjs/bcm-segmented-picker-option.cjs.entry.js.map +0 -1
  405. package/dist/cjs/bcm-segmented-picker.cjs.entry.js.map +0 -1
  406. package/dist/cjs/bcm-shortcut.cjs.entry.js.map +0 -1
  407. package/dist/cjs/bcm-switch.cjs.entry.js.map +0 -1
  408. package/dist/cjs/bcm-tabs-content.cjs.entry.js.map +0 -1
  409. package/dist/cjs/bcm-tabs-list.cjs.entry.js.map +0 -1
  410. package/dist/cjs/bcm-tabs-trigger.cjs.entry.js.map +0 -1
  411. package/dist/cjs/bcm-tabs.cjs.entry.js.map +0 -1
  412. package/dist/cjs/bcm-text.cjs.entry.js.map +0 -1
  413. package/dist/cjs/bcm-textarea.cjs.entry.js.map +0 -1
  414. package/dist/cjs/bcm-tooltip.cjs.entry.js +0 -180
  415. package/dist/cjs/bcm-tooltip.cjs.entry.js.map +0 -1
  416. package/dist/cjs/bcm-tooltip.entry.cjs.js.map +0 -1
  417. package/dist/cjs/floating-ui.dom-DyKmFgkP.js +0 -1605
  418. package/dist/cjs/floating-ui.dom-DyKmFgkP.js.map +0 -1
  419. package/dist/cjs/index-BtiU-G2W.js.map +0 -1
  420. package/dist/components/p-BHwftRkk.js +0 -379
  421. package/dist/components/p-BHwftRkk.js.map +0 -1
  422. package/dist/components/p-CQF7wlXf.js.map +0 -1
  423. package/dist/components/p-CzcTU1ty.js.map +0 -1
  424. package/dist/components/p-DGlecSBr.js.map +0 -1
  425. package/dist/esm/bcm-button.bcm-chip.bcm-drawer.bcm-modal.entry.js.map +0 -1
  426. package/dist/esm/bcm-button_4.entry.js +0 -910
  427. package/dist/esm/bcm-button_4.entry.js.map +0 -1
  428. package/dist/esm/bcm-linked.entry.js +0 -341
  429. package/dist/esm/bcm-linked.entry.js.map +0 -1
  430. package/dist/esm/bcm-pop-confirm.entry.js +0 -248
  431. package/dist/esm/bcm-pop-confirm.entry.js.map +0 -1
  432. package/dist/esm/bcm-popover.entry.js +0 -187
  433. package/dist/esm/bcm-popover.entry.js.map +0 -1
  434. package/dist/esm/bcm-tooltip.entry.js +0 -178
  435. package/dist/esm/bcm-tooltip.entry.js.map +0 -1
  436. package/dist/esm/floating-ui.dom-DxMLMJ3r.js +0 -1598
  437. package/dist/esm/floating-ui.dom-DxMLMJ3r.js.map +0 -1
  438. package/dist/esm/index-BuuGCw0z.js.map +0 -1
@@ -1,2 +0,0 @@
1
- import{r as t,c as e,h as o,H as r,a}from"./p-BuuGCw0z.js";import{t as i}from"./p-CEcVC0yX.js";const s={save:{text:"Save",status:"success",icon:"far fa-save",iconPosition:"prefix",kind:"primary"},ok:{text:"Ok",status:"success",icon:"far fa-check",iconPosition:"prefix"},new:{text:"New",status:"success",icon:"far fa-plus",iconPosition:"prefix"},add:{text:"Add",status:"success",icon:"far fa-plus",iconPosition:"prefix"},create:{text:"Create",status:"success",icon:"far fa-plus",iconPosition:"prefix"},prev:{text:"Prev",status:"default",icon:"far fa-arrow-left",iconPosition:"prefix"},next:{text:"Next",status:"default",icon:"far fa-arrow-right",iconPosition:"suffix"},apply:{text:"Apply",status:"default",icon:"far fa-check-circle",iconPosition:"prefix"},submit:{text:"Submit",status:"default",icon:"far fa-save",iconPosition:"prefix"},send:{text:"Send",status:"success",icon:"far fa-paper-plane",iconPosition:"prefix"},delete:{text:"Delete",status:"error",icon:"far fa-trash",iconPosition:"prefix"},cancel:{text:"Cancel",status:"error",icon:"far fa-times",iconPosition:"prefix"},decline:{text:"Decline",status:"error",icon:"far fa-ban",iconPosition:"prefix"},close:{text:"Close",status:"error",icon:"far fa-times-circle",iconPosition:"prefix"},archive:{text:"Archive",status:"error",icon:"far fa-folder-open",iconPosition:"prefix"},remove:{text:"Remove",status:"error",icon:"far fa-minus-circle",iconPosition:"prefix"},edit:{text:"Edit",status:"default",icon:"far fa-edit",iconPosition:"prefix"},export:{text:"Export",status:"default",icon:"far fa-sign-out",iconPosition:"prefix"},import:{text:"Import",status:"default",icon:"far fa-sign-in",iconPosition:"prefix"},filter:{text:"Filter",status:"default",icon:"far fa-filter",iconPosition:"prefix"},update:{text:"Update",status:"default",icon:"far fa-sync",iconPosition:"prefix"},reset:{text:"Reset",status:"default",icon:"far fa-sync",iconPosition:"prefix"},download:{text:"Download",status:"default",icon:"far fa-download",iconPosition:"prefix"}};const n=".relative{position:relative}:host{display:inline-flex;height:-moz-fit-content;height:fit-content;position:relative;width:-moz-fit-content;width:fit-content}:host([full-width]){width:100%}:host([position=first]) .bcm-button{border-bottom-right-radius:0;border-top-right-radius:0}:host([position=middle]) .bcm-button{border-radius:0}:host([position=last]) .bcm-button{border-bottom-left-radius:0;border-top-left-radius:0}:host([position=first].orientation-vertical) .bcm-button{border-bottom-left-radius:0;border-bottom-right-radius:0;border-top-left-radius:var(--bcm-ui-border-radius,4px);border-top-right-radius:var(--bcm-ui-border-radius,4px)}:host([position=middle].orientation-vertical) .bcm-button{border-radius:0}:host([position=last].orientation-vertical) .bcm-button{border-bottom-left-radius:var(--bcm-ui-border-radius,4px);border-bottom-right-radius:var(--bcm-ui-border-radius,4px);border-top-left-radius:0;border-top-right-radius:0}.static{position:static}.inline-flex{display:inline-flex}.min-h-10{min-height:2.5rem}.min-h-6{min-height:1.5rem}.min-h-8{min-height:2rem}.w-full{width:100%}.cursor-not-allowed{cursor:not-allowed}.cursor-pointer{cursor:pointer}.appearance-none{appearance:none}.items-center{align-items:center}.justify-center{justify-content:center}.rounded{border-radius:var(--bcm-ui-border-radius-default,6px)}.border{border-width:1px}.border-solid{border-style:solid}.border-\\[--bcm-final-border-color\\]{border-color:var(--bcm-final-border-color)}.border-color-disabled{border-color:var(--bcm-ui-color-border-disabled)}.bg-\\[--bcm-final-bg-color\\]{background-color:var(--bcm-final-bg-color)}.bg-\\[--bcm-ui-color-background-disabled-default\\]{background-color:var(--bcm-ui-color-background-disabled-default)}.px-2{padding-left:.5rem;padding-right:.5rem}.px-3{padding-left:.75rem;padding-right:.75rem}.py-0\\.5{padding-bottom:.125rem;padding-top:.125rem}.py-1{padding-bottom:.25rem;padding-top:.25rem}.py-px{padding-bottom:1px;padding-top:1px}.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)}.leading-none{line-height:1}.text-\\[--bcm-final-text-color\\]{color:var(--bcm-final-text-color)}.text-color-disabled{color:var(--bcm-ui-color-text-disabled)}.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)}.outline{outline-style:solid}.outline-0{outline-width:0}.hover\\:bg-\\[--bcm-final-hover-bg-color\\]:hover{background-color:var(--bcm-final-hover-bg-color)}.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)}.active\\:bg-\\[--bcm-final-active-bg-color\\]:active{background-color:var(--bcm-final-active-bg-color)}.flex{display:flex}.max-h-64{max-height:16rem}.min-w-10{min-width:2.5rem}.max-w-64{max-width:16rem}.flex-col{flex-direction:column}.overflow-y-auto{overflow-y:auto}.rounded-lg{border-radius:var(--bcm-ui-border-radius-lg,8px)}.bg-color-basic-panel{background-color:var(--bcm-ui-color-background-basic-panel)}.py-1\\.5{padding-bottom:.375rem;padding-top:.375rem}.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)}.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}.absolute{position:absolute}.z-\\[9999\\]{z-index:9999}.mx-auto{margin-left:auto;margin-right:auto}.hidden{display:none}.size-6{height:1.5rem;width:1.5rem}.h-2{height:.5rem}.w-4{width:1rem}.max-w-80{max-width:20rem}.max-w-96{max-width:24rem}.flex-1{flex:1 1 0%}.flex-row{flex-direction:row}.justify-end{justify-content:flex-end}.justify-between{justify-content:space-between}.gap-2{gap:.5rem}.gap-2\\.5{gap:.625rem}.gap-3{gap:.75rem}.gap-4{gap:1rem}.gap-6{gap:1.5rem}.gap-8{gap:2rem}.text-pretty{text-wrap:pretty}.rounded-\\[--popover-radius\\]{border-radius:var(--popover-radius)}.rounded-full{border-radius:var(--bcm-ui-border-radius-full,9999px)}.bg-\\[--popover-bg\\]{background-color:var(--popover-bg)}.p-4{padding:1rem}.p-6{padding:1.5rem}.p-8{padding:2rem}.font-sans{font-family:Inter,sans-serif}.text-size-7{font-size:var(--bcm-ui-font-size-7,20px);line-height:var(--bcm-ui-line-height-7,28px)}.text-size-inherit{font-size:inherit;line-height:inherit}.font-semibold{font-weight:600}.\\!text-color-header{color:var(--bcm-ui-color-text-header)!important}.text-\\[--text-color\\]{color:var(--text-color)}.shadow,.shadow-2{box-shadow:var(--tw-ring-offset-shadow,0 0 #0000),var(--tw-ring-shadow,0 0 #0000),var(--tw-shadow)}.shadow-2{--tw-shadow:var(--bcm-ui-box-shadow-2);--tw-shadow-colored:var(--bcm-ui-box-shadow-2)}.hover\\:bg-gray-100:hover{background-color:oklch(.967 .003 264.542)}";const c=class{constructor(o){t(this,o);this.bcmClick=e(this,"bcmClick",1);this.bcmFocus=e(this,"bcmFocus",1);this.bcmBlur=e(this,"bcmBlur",1);this.kind="primary";this.size="medium";this.status="default";this.iconPosition="prefix";this.iconOnly=false;this.fullWidth=false;this.type="button";this.loading=false;this.disabled=false;this.active=false;this.handleClick=t=>{if(!this.disabled&&!this.loading){this.bcmClick.emit(t)}};this.handleFocus=t=>{this.bcmFocus.emit(t)};this.handleBlur=t=>{this.bcmBlur.emit(t)};this.buttonClass=i({base:"bcm-button appearance-none inline-flex items-center justify-center border border-solid rounded outline-0",variants:{size:{small:"text-size-4 py-px px-2 min-h-6",medium:"text-size-5 py-0.5 px-3 min-h-8",large:"text-size-6 py-1 px-3 min-h-10"},kind:{primary:"kind-primary",ghost:"kind-ghost",text:"kind-text",outline:"kind-outline"},fullWidth:{true:"full-width w-full"},disabled:{true:"disabled cursor-not-allowed bg-[--bcm-ui-color-background-disabled-default] text-color-disabled border-color-disabled",false:["cursor-pointer","bg-[--bcm-final-bg-color] text-[--bcm-final-text-color] border-[--bcm-final-border-color]","hover:bg-[--bcm-final-hover-bg-color]","active:bg-[--bcm-final-active-bg-color]","focus-visible:ring"]},loading:{true:""},position:{first:"position-first",middle:"position-middle",last:"position-last"}},defaultVariants:{size:"medium",kind:"primary",fullWidth:false,disabled:false,loading:false}},{twMerge:false})}get buttonText(){return this.text||(this.variant&&s[this.variant]?s[this.variant].text:"")}get buttonIcon(){var t;if(this.variant&&((t=s[this.variant])===null||t===void 0?void 0:t.icon)){return{icon:s[this.variant].icon,position:s[this.variant].iconPosition||"prefix"}}return{icon:this.icon,position:this.iconPosition}}get buttonStatus(){return this.variant&&s[this.variant]?s[this.variant].status:this.status}get buttonStyles(){const t=this.buttonStatus==="default"?"primary":this.buttonStatus;const e={primary:{"--bcm-button-bg":`var(--bcm-ui-color-background-${t}-default)`,"--bcm-button-bg-hover":`var(--bcm-ui-color-background-${t}-hover)`,"--bcm-button-bg-active":`var(--bcm-ui-color-background-${t}-active)`,"--bcm-button-border":"transparent","--bcm-button-text":"var(--bcm-ui-color-text-base)"},outline:{"--bcm-button-bg":"var(--bcm-ui-color-background-default-default)","--bcm-button-bg-hover":"var(--bcm-ui-color-background-default-hover)","--bcm-button-bg-active":"var(--bcm-ui-color-background-default-active)","--bcm-button-border":`var(--bcm-ui-color-border-${this.buttonStatus})`,"--bcm-button-text":`var(--bcm-ui-color-text-${this.buttonStatus})`},ghost:{"--bcm-button-bg":"transparent","--bcm-button-bg-hover":"var(--bcm-ui-color-background-default-hover)","--bcm-button-bg-active":"var(--bcm-ui-color-background-default-active)","--bcm-button-border":"transparent","--bcm-button-text":`var(--bcm-ui-color-text-${this.buttonStatus})`},text:{"--bcm-button-bg":"transparent","--bcm-button-bg-hover":"var(--bcm-ui-color-background-default-hover)","--bcm-button-bg-active":"var(--bcm-ui-color-background-default-active)","--bcm-button-border":"transparent","--bcm-button-text":`var(--bcm-ui-color-text-${t})`}};const o=e[this.kind];const r={"--bcm-final-text-color":`var(--bcm-button-custom-text-color, ${o["--bcm-button-text"]})`,"--bcm-final-border-color":`var(--bcm-button-custom-border-color, ${o["--bcm-button-border"]})`,"--bcm-final-bg-color":`var(--bcm-button-custom-bg-color, ${o["--bcm-button-bg"]})`,"--bcm-final-hover-bg-color":`var(--bcm-button-custom-hover-bg-color, ${o["--bcm-button-bg-hover"]})`,"--bcm-final-active-bg-color":`var(--bcm-button-custom-active-bg-color, ${o["--bcm-button-bg-active"]})`};return Object.assign(Object.assign({},o),r)}render(){const{icon:t,position:e}=this.buttonIcon;return o(r,{key:"a9d5f590bcc4175aa663c999f5a84bee10c3c7f2"},o("button",{key:"c18c414edad304b4f9cd0155e683f1f9783b6fde",type:this.type,disabled:this.disabled||this.loading,"aria-label":this.label,"aria-expanded":this.expanded,"aria-controls":this.controls,"aria-disabled":this.disabled,onClick:this.handleClick,onFocus:this.handleFocus,onBlur:this.handleBlur,style:this.buttonStyles,class:this.buttonClass({size:this.size,kind:this.kind,fullWidth:this.fullWidth,disabled:this.disabled,loading:this.loading,position:this.position})},this.loading&&o("slot",{key:"682e48b9d4a5e4ab6fb66bf44781448fad55f720",name:"loading"}),o("span",{key:"b201ef2563f68e42416efa2816b890b2d41867ad"},o("slot",{key:"4b30c9c05551671c45757a7afbccaabe4dea1d9a",name:"prefix"},e==="prefix"&&t&&o("i",{key:"618a7e811aa190f60621095dbece3d29ee133f9e",class:" leading-none "+t}))),o("slot",{key:"b3a3a7257767f3e49895c8e7963899a701cdab43"},this.buttonText),o("span",{key:"81b97078b064ce82516cea7564c64c8a89332759"},o("slot",{key:"4e4d3bfb4814f207f27f6efc2327575e65f69180",name:"suffix"},e==="suffix"&&t&&o("i",{key:"75373a66baeae2a66b219626b2f3694ac7cb4179",class:" leading-none "+t})))))}};c.style=n;const l={info:"blue",error:"red",warning:"amber",success:"green",primary:"primary"};const d=":host{--bcm-chip-bg:var(--bcm-ui-color-background-default-default);--bcm-chip-text:var(--bcm-ui-color-text-default);--bcm-chip-border:var(--bcm-ui-color-border-default);--bcm-chip-hover-bg:var(--bcm-ui-color-background-default-hover);--bcm-chip-active-bg:var(--bcm-ui-color-background-default-active);--bcm-chip-radius:6px;display:inline-block}.bcm-ui-element{-webkit-font-smoothing:antialiased;-moz-osx-font-smoothing:grayscale;font-family:Inter,sans-serif}.static{position:static}.flex{display:flex}.min-w-max{min-width:max-content}.cursor-not-allowed{cursor:not-allowed}.cursor-pointer{cursor:pointer}.items-center{align-items:center}.justify-center{justify-content:center}.gap-1{gap:.25rem}.rounded-\\[--bcm-chip-radius\\]{border-radius:var(--bcm-chip-radius)}.border{border-width:1px}.border-none{border-style:none}.border-\\[--bcm-chip-border\\]{border-color:var(--bcm-chip-border)}.border-transparent{border-color:transparent}.bg-\\[--bcm-chip-bg\\]{background-color:var(--bcm-chip-bg)}.px-2{padding-left:.5rem;padding-right:.5rem}.py-0\\.5{padding-bottom:.125rem;padding-top:.125rem}.py-1{padding-bottom:.25rem;padding-top:.25rem}.py-px{padding-bottom:1px;padding-top:1px}.text-size-3{font-size:var(--bcm-ui-font-size-3,12px);line-height:var(--bcm-ui-line-height-3,16px)}.text-size-4{font-size:var(--bcm-ui-font-size-4,14px);line-height:var(--bcm-ui-line-height-4,20px)}.text-size-5{font-size:var(--bcm-ui-font-size-5,16px);line-height:var(--bcm-ui-line-height-5,24px)}.font-normal{font-weight:400}.text-\\[--bcm-chip-text\\]{color:var(--bcm-chip-text)}.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-\\[--bcm-chip-hover-bg\\]:hover{background-color:var(--bcm-chip-hover-bg)}.active\\:bg-\\[--bcm-chip-active-bg\\]:active{background-color:var(--bcm-chip-active-bg)}";const b=class{constructor(o){t(this,o);this.bcmDismiss=e(this,"bcmDismiss",1);this.size="medium";this.kind="filled";this.status="default";this.dismissible=false;this.disabled=false;this.chipClass=i({base:["chip bcm-ui-element font-normal flex items-center justify-center px-2 gap-1 min-w-max border","bg-[--bcm-chip-bg] text-[--bcm-chip-text] rounded-[--bcm-chip-radius] border-[--bcm-chip-border]","hover:bg-[--bcm-chip-hover-bg] active:bg-[--bcm-chip-active-bg]"],variants:{size:{small:"small py-px text-size-3",medium:"medium py-0.5 text-size-4",large:"large py-1 text-size-5"},kind:{filled:"filled border-transparent",outlined:"outlined",text:"text border-none"},disabled:{true:"cursor-not-allowed"}}},{twMerge:false})}get chipStyle(){let t=this.color;if(this.disabled){return{"--bcm-chip-bg":"var(--bcm-ui-color-background-disabled-default)","--bcm-chip-text":"var(--bcm-ui-color-text-disabled)","--bcm-chip-border":"var(--bcm-ui-color-border-disabled)","--bcm-chip-hover-bg":"var(--bcm-ui-color-background-disabled-default)","--bcm-chip-active-bg":"var(--bcm-ui-color-background-disabled-default)"}}if(this.status!=="default"){t=l[this.status]}const e={filled:{"--bcm-chip-bg":`var(--bcm-ui-color-background-palette-${t}-default)`,"--bcm-chip-text":`var(--bcm-ui-color-text-palette-${t})`,"--bcm-chip-border":`var(--bcm-ui-color-border-${t})`,"--bcm-chip-hover-bg":`var(--bcm-ui-color-background-palette-${t}-hover)`,"--bcm-chip-active-bg":`var(--bcm-ui-color-background-palette-${t}-active)`},outlined:{"--bcm-chip-bg":"transparent","--bcm-chip-text":`var(--bcm-ui-color-text-palette-${t})`,"--bcm-chip-border":`var(--bcm-ui-color-border-${t})`,"--bcm-chip-hover-bg":`var(--bcm-ui-color-background-palette-${t}-hover)`,"--bcm-chip-active-bg":`var(--bcm-ui-color-background-palette-${t}-active)`},text:{"--bcm-chip-bg":"transparent","--bcm-chip-text":`var(--bcm-ui-color-text-palette-${t})`,"--bcm-chip-border":"transparent","--bcm-chip-hover-bg":`var(--bcm-ui-color-background-palette-${t}-hover)`,"--bcm-chip-active-bg":`var(--bcm-ui-color-background-palette-${t}-active)`}};const o={filled:{"--bcm-chip-bg":"var(--bcm-ui-color-background-default-default)","--bcm-chip-text":"var(--bcm-ui-color-text-default)","--bcm-chip-border":"var(--bcm-ui-color-border-default)","--bcm-chip-hover-bg":"var(--bcm-ui-color-background-default-hover)","--bcm-chip-active-bg":"var(--bcm-ui-color-background-default-active)"},outlined:{"--bcm-chip-bg":"transparent","--bcm-chip-text":"var(--bcm-ui-color-text-default)","--bcm-chip-border":"var(--bcm-ui-color-border-default)","--bcm-chip-hover-bg":"var(--bcm-ui-color-background-default-hover)","--bcm-chip-active-bg":"var(--bcm-ui-color-background-default-active)"},text:{"--bcm-chip-bg":"transparent","--bcm-chip-text":"var(--bcm-ui-color-text-default)","--bcm-chip-border":"transparent","--bcm-chip-hover-bg":"var(--bcm-ui-color-background-default-hover)","--bcm-chip-active-bg":"var(--bcm-ui-color-background-default-active)"}};return t?e[this.kind]:o[this.kind]}handleDismiss(){if(!this.disabled){this.bcmDismiss.emit()}}render(){return o("div",{key:"d2692652edd6275d143e7ddffbc789d0b5315027",style:this.chipStyle,class:this.chipClass({size:this.size,kind:this.kind,disabled:this.disabled}),role:"button","aria-disabled":this.disabled?"true":"false"},o("slot",{key:"8d3abf8a40a30dc93003077e52edc81062f10424"}),this.dismissible&&o("bcm-icon",{key:"9914f1803e5d6feece7221e73b041d46f8237e95",onClick:()=>this.handleDismiss(),class:"cursor-pointer","icon-name":"fa-regular fa-xmark","aria-label":"Dismiss chip"}))}};b.style=d;const h=".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)}";const f=class{constructor(o){t(this,o);this.bcmOpen=e(this,"bcmOpen",7);this.bcmClose=e(this,"bcmClose",7);this.bcmBeforeOpen=e(this,"bcmBeforeOpen",7);this.bcmBeforeClose=e(this,"bcmBeforeClose",7);this.open=false;this.size="medium";this.position="right";this.fullWidth=false;this.noHeader=false;this.drawerClass=i({slots:{backdrop:"fixed inset-0 bg-color-transparent z-40 transition-opacity duration-300",wrapper:"bcm-ui-element fixed bg-color-base text-color-default z-50 transform transition-transform duration-300 ease-in-out flex flex-col",header:"flex justify-between items-center bg-color-default text-color-default",title:"font-semibold m-0 text-size-6",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",content:"overflow-y-auto flex-grow"},variants:{open:{true:{backdrop:"opacity-100 visible"},false:{backdrop:"opacity-0 invisible"}},position:{left:{wrapper:"top-0 left-0 bottom-0"},right:{wrapper:"top-0 right-0 bottom-0"},top:{wrapper:"top-0 left-0 right-0"},bottom:{wrapper:"bottom-0 left-0 right-0"}},size:{small:{header:"py-3 px-4",content:"p-4"},medium:{header:"py-3 px-4",content:"p-4"},large:{header:"py-3 px-4",content:"p-4"}},noHeader:{true:{header:"hidden"}}},compoundVariants:[{open:true,position:["left","right"],class:{wrapper:"translate-x-0"}},{open:true,position:["top","bottom"],class:{wrapper:"translate-y-0"}},{open:false,position:"left",class:{wrapper:"-translate-x-full"}},{open:false,position:"right",class:{wrapper:"translate-x-full"}},{open:false,position:"top",class:{wrapper:"-translate-y-full"}},{open:false,position:"bottom",class:{wrapper:"translate-y-full"}}]})}handleOpenChange(t){if(t){document.body.style.overflow="hidden";this.bcmOpen.emit()}else{document.body.style.overflow="";this.bcmClose.emit()}}handleKeyDown(t){if(t.key==="Escape"&&this.open){this.hide()}}async show(){const t=this.bcmBeforeOpen.emit();if(!t.defaultPrevented){this.open=true}}async hide(){const t=this.bcmBeforeClose.emit();if(!t.defaultPrevented){this.open=false}}disconnectedCallback(){document.body.style.overflow=""}getWrapperStyle(){const t={};if(this.fullWidth){if(this.position==="left"||this.position==="right"){t.width="100vw"}else{t.height="100vh"}return t}if(this.position==="left"||this.position==="right"){switch(this.size){case"small":t.width="320px";break;case"medium":t.width="480px";break;case"large":t.width="1064px";break}}else{switch(this.size){case"small":t.height="40vh";break;case"medium":t.height="60vh";break;case"large":t.height="90vh";break}}return t}render(){const{backdrop:t,wrapper:e,header:r,title:a,closeButton:i,content:s}=this.drawerClass({open:this.open,position:this.position,size:this.size,noHeader:this.noHeader});return o("div",{key:"120639c39b40ba77d7420813e82c18952ae67514",part:"base"},o("div",{key:"3f59e0b0c482421b38d8eb39076da51453a91a70",part:"backdrop",class:t(),onClick:()=>this.hide()}),o("div",{key:"9b97aeb2ad7067a11c76a7b265adeb2e3c80eac5",part:"wrapper",class:e(),style:this.getWrapperStyle(),role:"dialog","aria-modal":"true","aria-hidden":!this.open?"true":"false","aria-label":this.headerText},o("div",{key:"d2613cabb535822fed605f52fd782af88c6bef8e",part:"header",class:r()},o("h2",{key:"1771936e710fe478e3793a1846a0acf3f98d8864",part:"title",class:a()},o("slot",{key:"0f6e8cb671e201d20b54b7669de9abec7a5627d0",name:"header"},this.headerText)),o("button",{key:"da006eaf46c4e6e3d7e7f773477e8eb61be69c00",part:"close-button",class:i(),onClick:()=>this.hide(),"aria-label":"Close"},o("bcm-icon",{key:"913497c5cc4305f3b0ddaf751803fdca19143a9d",name:"fa-solid fa-xmark"}))),o("div",{key:"d0a287ee5726197cd180724fc70984c5f54f5ba2",part:"content",class:s()},o("slot",{key:"8401ec9c937f0888499ec8bd4c7bdead3141284e"})),o("div",{key:"14991163fc8d7d78b5a89b8ec18cbf82690a4f0d",part:"footer"},o("slot",{key:"10e3bb6c6e9aefa5eea8d24dd02fa482feedfb18",name:"footer"}))))}get host(){return a(this)}static get watchers(){return{open:["handleOpenChange"]}}};f.style=h;const u=".contents{display:contents}:host{display:contents}.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}.-translate-y-4{--tw-translate-y:-1rem}.-translate-y-4,.translate-y-0{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-0{--tw-translate-y:0px}.scale-100{--tw-scale-x:1;--tw-scale-y:1}.scale-100,.scale-95{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))}.scale-95{--tw-scale-x:.95;--tw-scale-y:.95}.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))}.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-center{align-items:center}.justify-end{justify-content:flex-end}.justify-center{justify-content:center}.justify-between{justify-content:space-between}.gap-2{gap:.5rem}.overflow-y-auto{overflow-y:auto}.overscroll-contain{overscroll-behavior:contain}.rounded{border-radius:var(--bcm-ui-border-radius-default,6px)}.rounded-lg{border-radius:var(--bcm-ui-border-radius-lg,8px)}.rounded-none{border-radius:var(--bcm-ui-border-radius-none,0)}.rounded-t-lg{border-top-left-radius:var(--bcm-ui-border-radius-lg,8px);border-top-right-radius:var(--bcm-ui-border-radius-lg,8px)}.border-0{border-width:0}.border-b{border-bottom-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-color-basic-base{background-color:var(--bcm-ui-color-background-basic-base)}.bg-transparent{background-color:transparent}.p-0{padding:0}.p-4{padding:1rem}.p-5{padding:1.25rem}.p-6{padding:1.5rem}.p-8{padding:2rem}.px-4{padding-left:1rem;padding-right:1rem}.px-5{padding-left:1.25rem;padding-right:1.25rem}.px-6{padding-left:1.5rem;padding-right:1.5rem}.px-8{padding-left:2rem;padding-right:2rem}.py-3{padding-bottom:.75rem;padding-top:.75rem}.py-4{padding-bottom:1rem;padding-top:1rem}.py-5{padding-bottom:1.25rem;padding-top:1.25rem}.pt-20{padding-top:5rem}.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)}.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)}.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-all{transition-duration:.15s;transition-property:all;transition-timing-function:cubic-bezier(.4,0,.2,1)}.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)}.duration-300{transition-duration:.3s}.ease-in-out{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}.backdrop\\:transition-opacity::backdrop{transition-duration:.15s;transition-property:opacity;transition-timing-function:cubic-bezier(.4,0,.2,1)}.backdrop\\:duration-300::backdrop{transition-duration:.3s}.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)}";const m=class{constructor(o){t(this,o);this.bcmOpen=e(this,"bcmOpen",7);this.bcmClose=e(this,"bcmClose",7);this.bcmBeforeOpen=e(this,"bcmBeforeOpen",7);this.bcmBeforeClose=e(this,"bcmBeforeClose",7);this.open=false;this.size="medium";this.placement="center";this.backdrop=true;this.fullWidth=false;this.fullScreen=false;this.noHeader=false;this.noFooter=false;this.closeOnBackdrop=true;this.closeOnEscape=true;this.isAnimating=false;this.shake=false;this.modalClass=i({slots:{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 backdrop:transition-opacity backdrop:duration-300",container:"fixed inset-0 flex items-start justify-center p-4 overflow-y-auto overscroll-contain",modal:"relative bg-color-basic-base text-color-default rounded-lg shadow-2xl transform transition-all duration-300 ease-in-out flex flex-col",header:"flex justify-between items-start bg-color-base text-color-default border-color-default border-solid border-0 border-b rounded-t-lg",headerContent:"flex-1 min-w-0 flex items-center gap-2",title:"font-semibold m-0 text-size-6 text-color-header",helperText:"text-size-5 text-color-placeholder m-0",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 ",content:"flex-grow overflow-y-auto",footer:"flex items-center justify-end gap-2"},variants:{open:{true:{modal:"opacity-100 translate-y-0 scale-100"},false:{modal:"opacity-0 -translate-y-4 scale-95"}},placement:{center:{container:"items-center"},top:{container:"items-start pt-20"}},size:{small:{header:"py-3 px-4",content:"p-4",footer:"py-3 px-4"},medium:{header:"py-4 px-5",content:"p-5",footer:"py-4 px-5"},large:{header:"py-4 px-6",content:"p-6",footer:"py-4 px-6"},xlarge:{header:"py-5 px-6",content:"p-6",footer:"py-5 px-6"},xxlarge:{header:"py-5 px-8",content:"p-8",footer:"py-5 px-8"},full:{header:"py-5 px-8",content:"p-8",footer:"py-5 px-8"}},fullScreen:{true:{modal:"rounded-none w-screen h-screen max-w-none max-h-none",container:"p-0"}},shake:{true:{modal:"animate-shake"}},noHeader:{true:{header:"hidden"}},noFooter:{true:{footer:"hidden"}}}});this.handleBackdropClick=t=>{const e=t.target;if(e.getAttribute("part")==="container"){if(this.backdrop==="static"){this.shakeModal()}else if(this.closeOnBackdrop){this.hide()}}};this.handleDialogCancel=t=>{t.preventDefault();if(this.closeOnEscape){if(this.backdrop==="static"){this.shakeModal()}else{this.hide()}}}}async handleOpenChange(t){if(t){this.isAnimating=true;const t=this.bcmBeforeOpen.emit();if(t.defaultPrevented){this.open=false;return}if(this.dialogRef){this.dialogRef.showModal();await new Promise((t=>setTimeout(t,50)));this.isAnimating=false;this.bcmOpen.emit()}}else{this.isAnimating=true;const t=this.bcmBeforeClose.emit();if(t.defaultPrevented){this.open=true;return}await new Promise((t=>setTimeout(t,300)));if(this.dialogRef){this.dialogRef.close()}this.isAnimating=false;this.bcmClose.emit()}}handleClick(t){const e=t.composedPath();const o=e.find((t=>{var e;return(e=t.hasAttribute)===null||e===void 0?void 0:e.call(t,"data-dismiss")}));const r=e.find((t=>{var e;return(e=t.hasAttribute)===null||e===void 0?void 0:e.call(t,"data-close-modal")}));if(o){this.hide();t.preventDefault();t.stopPropagation()}else if(r){const e=r.getAttribute("data-close-modal");if(!e||e===this.host.id){this.hide();t.preventDefault();t.stopPropagation()}}}handleKeyDown(t){if(t.key==="Escape"&&this.open){const e=Array.from(document.querySelectorAll("bcm-modal[open]"));const o=e[e.length-1];if(o!==this.host){return}t.preventDefault();if(this.closeOnEscape){if(this.backdrop==="static"){this.shakeModal()}else{this.hide()}}else if(this.backdrop==="static"){this.shakeModal()}}}async show(){this.open=true}async hide(){this.open=false}async toggle(){this.open=!this.open}shakeModal(){this.shake=true;setTimeout((()=>{this.shake=false}),300)}getModalStyle(){if(this.fullScreen){return{width:"100vw",height:"100vh",maxWidth:"none",maxHeight:"none"}}if(this.fullWidth){return{width:"100%",maxWidth:"100%"}}const t={small:"400px",medium:"600px",large:"800px",xlarge:"1024px",xxlarge:"1200px",full:"100%"};return{width:t[this.size],maxWidth:this.fullScreen?"none":"90vw",maxHeight:this.fullScreen?"none":"90vh"}}componentDidLoad(){if(this.open&&this.dialogRef){this.dialogRef.showModal()}}disconnectedCallback(){if(this.dialogRef&&this.open){this.dialogRef.close()}}render(){const{dialog:t,container:e,modal:r,header:a,headerContent:i,title:s,helperText:n,closeButton:c,content:l,footer:d}=this.modalClass({open:this.open,placement:this.placement,size:this.size,fullScreen:this.fullScreen,shake:this.shake,noHeader:this.noHeader,noFooter:this.noFooter});return o("dialog",{key:"c56eace3816f22ce8c5c3d779940c32c1a2504fe",ref:t=>this.dialogRef=t,part:"dialog",class:t(),onClick:this.handleBackdropClick,onCancel:this.handleDialogCancel,"aria-labelledby":"modal-title","aria-describedby":this.helperText?"modal-helper":undefined,"aria-modal":"true"},o("div",{key:"0c8185cd161cb0dafcbd8a6c5f67528cd32c23de",part:"container",class:e()},o("div",{key:"ff66ec6396147a71d7819ae5e2f00ca38070b306",part:"modal",class:r(),style:this.getModalStyle(),role:"document",onClick:t=>t.stopPropagation()},!this.noHeader&&o("div",{key:"4cc6b28b668fe76dcaee1138887183ea98466cbe",part:"header",class:a()},o("div",{key:"8b005c9d586d4d2527c0319c4d17512650479bb0",part:"header-content",class:i()},o("h2",{key:"756e7f7f7e0d7b2b8c1f476fcb2b00a204884b8e",id:"modal-title",part:"title",class:s()},o("slot",{key:"d814bb4b44e47455ded1b0f737c8ddf61fddf9b3",name:"header"},this.headerText)),this.helperText&&o("p",{key:"7c385f9dce88bc22bf0b7700bb2b289b7803683e",id:"modal-helper",part:"helper-text",class:n()},o("slot",{key:"57bdf3201dd678a1ebdda9893b67032ff773fd05",name:"helper"},this.helperText))),o("button",{key:"6bcdfc24e13b375f81c9664a20b552a3f0c5d591",part:"close-button",class:c(),onClick:()=>this.hide(),"aria-label":"Close modal",type:"button"},o("bcm-icon",{key:"894f44177f0acbf3e581cbae5cdc76f71e321b57",name:"fa-solid fa-xmark"}))),o("div",{key:"74db820df232cb7728c8a58923a9459b9545e8a1",part:"content",class:l()},o("slot",{key:"95fd04fbbb441d79d649fd68eeef3868ce65bccc"})),!this.noFooter&&o("div",{key:"7c841bfe1a35abc8d9fe031eb0c8fed5a131db4e",part:"footer",class:d()},o("slot",{key:"9bd84178717338a821204f81179571a48bfd1f66",name:"footer"})))))}get host(){return a(this)}static get watchers(){return{open:["handleOpenChange"]}}};m.style=u;export{c as bcm_button,b as bcm_chip,f as bcm_drawer,m as bcm_modal};
2
- //# sourceMappingURL=p-c9cf3f14.entry.js.map
@@ -1 +0,0 @@
1
- {"version":3,"names":["variantOptions","save","text","status","icon","iconPosition","kind","ok","new","add","create","prev","next","apply","submit","send","delete","cancel","decline","close","archive","remove","edit","export","import","filter","update","reset","download","buttonCss","BcmButton","constructor","hostRef","this","size","iconOnly","fullWidth","type","loading","disabled","active","handleClick","event","bcmClick","emit","handleFocus","bcmFocus","handleBlur","bcmBlur","buttonClass","tv","base","variants","small","medium","large","primary","ghost","outline","true","false","position","first","middle","last","defaultVariants","twMerge","buttonText","variant","buttonIcon","_a","buttonStatus","buttonStyles","kindStyleMap","internalDefaultStyles","finalEffectiveStyles","Object","assign","render","h","Host","key","label","expanded","controls","onClick","onFocus","onBlur","style","class","name","STATUS_COLORS","info","error","warning","success","chipCss","BcmChip","dismissible","chipClass","filled","outlined","chipStyle","_color","color","styles","defaultStyles","handleDismiss","bcmDismiss","role","drawerCss","BcmDrawer","open","noHeader","drawerClass","slots","backdrop","wrapper","header","title","closeButton","content","left","right","top","bottom","compoundVariants","handleOpenChange","isOpen","document","body","overflow","bcmOpen","bcmClose","handleKeyDown","hide","show","bcmBeforeOpen","defaultPrevented","bcmBeforeClose","disconnectedCallback","getWrapperStyle","width","height","part","headerText","modalCss","BcmModal","placement","fullScreen","noFooter","closeOnBackdrop","closeOnEscape","isAnimating","shake","modalClass","dialog","container","modal","headerContent","helperText","footer","center","xlarge","xxlarge","full","handleBackdropClick","target","getAttribute","shakeModal","handleDialogCancel","preventDefault","dialogRef","showModal","Promise","resolve","setTimeout","path","composedPath","dismissElement","find","el","hasAttribute","call","closeModalElement","stopPropagation","modalId","host","id","openModals","Array","from","querySelectorAll","topModal","length","toggle","getModalStyle","maxWidth","maxHeight","widths","componentDidLoad","ref","onCancel","undefined","e"],"sources":["src/components/button/types.ts","src/components/button/button.css?tag=bcm-button&encapsulation=shadow","src/components/button/button.component.tsx","src/components/chip/types.ts","src/components/chip/chip.css?tag=bcm-chip&encapsulation=shadow","src/components/chip/chip.component.tsx","src/components/drawer/drawer.css?tag=bcm-drawer&encapsulation=shadow","src/components/drawer/drawer.component.tsx","src/components/modal/modal.css?tag=bcm-modal&encapsulation=shadow","src/components/modal/modal.component.tsx"],"sourcesContent":["export type ButtonKind = 'primary' | 'ghost' | 'text' | 'outline';\nexport type ButtonSize = 'small' | 'medium' | 'large';\nexport type ButtonType = 'button' | 'reset' | 'submit';\nexport type ButtonStatus = 'default' | 'success' | 'error' | 'warning' | 'info';\nexport type IconPosition = 'prefix' | 'suffix';\n\n// Button group position\nexport type ButtonPosition = 'first' | 'middle' | 'last' | null;\n\nexport interface VariantOption {\n text: string;\n icon?: string;\n iconPosition?: IconPosition;\n status?: ButtonStatus;\n kind?: ButtonKind;\n}\n\nexport const variantOptions: Record<string, VariantOption> = {\n save: {\n text: 'Save',\n status: 'success',\n icon: 'far fa-save',\n iconPosition: 'prefix',\n kind: 'primary',\n },\n ok: {\n text: 'Ok',\n status: 'success',\n icon: 'far fa-check',\n iconPosition: 'prefix',\n },\n new: {\n text: 'New',\n status: 'success',\n icon: 'far fa-plus',\n iconPosition: 'prefix',\n },\n add: {\n text: 'Add',\n status: 'success',\n icon: 'far fa-plus',\n iconPosition: 'prefix',\n },\n create: {\n text: 'Create',\n status: 'success',\n icon: 'far fa-plus',\n iconPosition: 'prefix',\n },\n prev: {\n text: 'Prev',\n status: 'default',\n icon: 'far fa-arrow-left',\n iconPosition: 'prefix',\n },\n next: {\n text: 'Next',\n status: 'default',\n icon: 'far fa-arrow-right',\n iconPosition: 'suffix',\n },\n apply: {\n text: 'Apply',\n status: 'default',\n icon: 'far fa-check-circle',\n iconPosition: 'prefix',\n },\n submit: {\n text: 'Submit',\n status: 'default',\n icon: 'far fa-save',\n iconPosition: 'prefix',\n },\n send: {\n text: 'Send',\n status: 'success',\n icon: 'far fa-paper-plane',\n iconPosition: 'prefix',\n },\n delete: {\n text: 'Delete',\n status: 'error',\n icon: 'far fa-trash',\n iconPosition: 'prefix',\n },\n cancel: {\n text: 'Cancel',\n status: 'error',\n icon: 'far fa-times',\n iconPosition: 'prefix',\n },\n decline: {\n text: 'Decline',\n status: 'error',\n icon: 'far fa-ban',\n iconPosition: 'prefix',\n },\n close: {\n text: 'Close',\n status: 'error',\n icon: 'far fa-times-circle',\n iconPosition: 'prefix',\n },\n archive: {\n text: 'Archive',\n status: 'error',\n icon: 'far fa-folder-open',\n iconPosition: 'prefix',\n },\n remove: {\n text: 'Remove',\n status: 'error',\n icon: 'far fa-minus-circle',\n iconPosition: 'prefix',\n },\n edit: {\n text: 'Edit',\n status: 'default',\n icon: 'far fa-edit',\n iconPosition: 'prefix',\n },\n export: {\n text: 'Export',\n status: 'default',\n icon: 'far fa-sign-out',\n iconPosition: 'prefix',\n },\n import: {\n text: 'Import',\n status: 'default',\n icon: 'far fa-sign-in',\n iconPosition: 'prefix',\n },\n filter: {\n text: 'Filter',\n status: 'default',\n icon: 'far fa-filter',\n iconPosition: 'prefix',\n },\n update: {\n text: 'Update',\n status: 'default',\n icon: 'far fa-sync',\n iconPosition: 'prefix',\n },\n reset: {\n text: 'Reset',\n status: 'default',\n icon: 'far fa-sync',\n iconPosition: 'prefix',\n },\n download: {\n text: 'Download',\n status: 'default',\n icon: 'far fa-download',\n iconPosition: 'prefix',\n },\n};\n\nexport type ButtonVariant = keyof typeof variantOptions;\n",":host {\n display: inline-flex;\n position: relative;\n height: fit-content;\n width: fit-content;\n}\n\n:host([full-width]) {\n width: 100%;\n}\n\n:host([position='first']) .bcm-button {\n border-top-right-radius: 0;\n border-bottom-right-radius: 0;\n}\n\n:host([position='middle']) .bcm-button {\n border-radius: 0;\n}\n\n:host([position='last']) .bcm-button {\n border-top-left-radius: 0;\n border-bottom-left-radius: 0;\n}\n\n:host([position='first'].orientation-vertical) .bcm-button {\n border-bottom-left-radius: 0;\n border-bottom-right-radius: 0;\n border-top-right-radius: var(--bcm-ui-border-radius, 4px);\n border-top-left-radius: var(--bcm-ui-border-radius, 4px);\n}\n\n:host([position='middle'].orientation-vertical) .bcm-button {\n border-radius: 0;\n}\n\n:host([position='last'].orientation-vertical) .bcm-button {\n border-top-left-radius: 0;\n border-top-right-radius: 0;\n border-bottom-right-radius: var(--bcm-ui-border-radius, 4px);\n border-bottom-left-radius: var(--bcm-ui-border-radius, 4px);\n}\n","import { Component, Prop, h, Event, EventEmitter, Host } from '@stencil/core';\nimport { ButtonKind, ButtonSize, ButtonType, ButtonStatus, ButtonVariant, IconPosition, ButtonPosition, variantOptions } from './types';\nimport { tv } from '@utils/tv';\n\n@Component({\n tag: 'bcm-button',\n styleUrl: 'button.css',\n shadow: true,\n})\nexport class BcmButton {\n /** Defines the main visual style of the button */\n @Prop()\n kind: ButtonKind = 'primary';\n\n /** Controls the button size */\n @Prop()\n size: ButtonSize = 'medium';\n\n /** Defines the button's status/state color */\n @Prop()\n status: ButtonStatus = 'default';\n\n /** Predefined button variants */\n @Prop()\n variant?: ButtonVariant;\n\n /** Button position in button group (first, middle, last) */\n @Prop({ reflect: true })\n position?: ButtonPosition;\n\n /** Icon class name */\n @Prop()\n icon?: string;\n\n /** Icon placement (prefix/suffix) */\n @Prop()\n iconPosition: IconPosition = 'prefix';\n\n /** Icon-only button mode */\n @Prop()\n iconOnly = false;\n\n /** Full width button */\n @Prop({ attribute: 'full-width', reflect: true })\n fullWidth = false;\n\n /** HTML button type */\n @Prop()\n type: ButtonType = 'button';\n\n /** Loading state */\n @Prop()\n loading = false;\n\n /** Disabled state */\n @Prop()\n disabled = false;\n\n /** Button text content */\n @Prop()\n text?: string;\n\n /** Active state */\n @Prop()\n active = false;\n\n /** Form association */\n @Prop()\n form: string;\n\n @Prop()\n value: string;\n\n @Prop()\n name: string;\n\n /** Screen reader label */\n @Prop()\n label: string;\n\n /** Expanded state for expandable content */\n @Prop()\n expanded?: string;\n\n /** ID of controlled element */\n @Prop()\n controls: string;\n\n @Event({\n composed: false,\n bubbles: false,\n cancelable: true,\n })\n bcmClick: EventEmitter<MouseEvent>;\n\n @Event({\n composed: false,\n bubbles: false,\n cancelable: true,\n })\n bcmFocus: EventEmitter<FocusEvent>;\n\n @Event({\n composed: false,\n bubbles: false,\n cancelable: true,\n })\n bcmBlur: EventEmitter<FocusEvent>;\n\n private handleClick = (event: MouseEvent) => {\n if (!this.disabled && !this.loading) {\n this.bcmClick.emit(event);\n }\n };\n\n private handleFocus = (event: FocusEvent) => {\n this.bcmFocus.emit(event);\n };\n\n private handleBlur = (event: FocusEvent) => {\n this.bcmBlur.emit(event);\n };\n\n private get buttonText(): string {\n return this.text || (this.variant && variantOptions[this.variant] ? variantOptions[this.variant].text : '');\n }\n\n private get buttonIcon(): { icon?: string; position: IconPosition } {\n if (this.variant && variantOptions[this.variant]?.icon) {\n return {\n icon: variantOptions[this.variant].icon,\n position: variantOptions[this.variant].iconPosition || 'prefix',\n };\n }\n\n return {\n icon: this.icon,\n position: this.iconPosition,\n };\n }\n\n private get buttonStatus(): ButtonStatus {\n return this.variant && variantOptions[this.variant] ? variantOptions[this.variant].status : this.status;\n }\n\n private get buttonStyles() {\n const status = this.buttonStatus === 'default' ? 'primary' : this.buttonStatus;\n\n // These are the internal default styles based on component props (kind, status)\n const kindStyleMap = {\n primary: {\n '--bcm-button-bg': `var(--bcm-ui-color-background-${status}-default)`,\n '--bcm-button-bg-hover': `var(--bcm-ui-color-background-${status}-hover)`,\n '--bcm-button-bg-active': `var(--bcm-ui-color-background-${status}-active)`,\n '--bcm-button-border': 'transparent',\n '--bcm-button-text': 'var(--bcm-ui-color-text-base)',\n },\n outline: {\n '--bcm-button-bg': 'var(--bcm-ui-color-background-default-default)',\n '--bcm-button-bg-hover': 'var(--bcm-ui-color-background-default-hover)',\n '--bcm-button-bg-active': 'var(--bcm-ui-color-background-default-active)',\n '--bcm-button-border': `var(--bcm-ui-color-border-${this.buttonStatus})`,\n '--bcm-button-text': `var(--bcm-ui-color-text-${this.buttonStatus})`,\n },\n ghost: {\n '--bcm-button-bg': 'transparent',\n '--bcm-button-bg-hover': 'var(--bcm-ui-color-background-default-hover)',\n '--bcm-button-bg-active': 'var(--bcm-ui-color-background-default-active)',\n '--bcm-button-border': 'transparent',\n '--bcm-button-text': `var(--bcm-ui-color-text-${this.buttonStatus})`,\n },\n text: {\n '--bcm-button-bg': 'transparent',\n '--bcm-button-bg-hover': 'var(--bcm-ui-color-background-default-hover)',\n '--bcm-button-bg-active': 'var(--bcm-ui-color-background-default-active)',\n '--bcm-button-border': 'transparent',\n '--bcm-button-text': `var(--bcm-ui-color-text-${status})`,\n },\n };\n const internalDefaultStyles = kindStyleMap[this.kind];\n\n // These are the \"final\" CSS custom properties used by the component's styling.\n // They use the \"--bcm-button-custom-...\" token if provided by the user,\n // otherwise, they fall back to the internal \"--bcm-button-...\" style defined above.\n const finalEffectiveStyles = {\n '--bcm-final-text-color': `var(--bcm-button-custom-text-color, ${internalDefaultStyles['--bcm-button-text']})`,\n '--bcm-final-border-color': `var(--bcm-button-custom-border-color, ${internalDefaultStyles['--bcm-button-border']})`,\n '--bcm-final-bg-color': `var(--bcm-button-custom-bg-color, ${internalDefaultStyles['--bcm-button-bg']})`,\n '--bcm-final-hover-bg-color': `var(--bcm-button-custom-hover-bg-color, ${internalDefaultStyles['--bcm-button-bg-hover']})`,\n '--bcm-final-active-bg-color': `var(--bcm-button-custom-active-bg-color, ${internalDefaultStyles['--bcm-button-bg-active']})`,\n };\n\n // return kindStyleMap[this.kind];\n\n return {\n ...internalDefaultStyles, // Provides the fallback values like --bcm-button-text\n ...finalEffectiveStyles, // Defines the --bcm-final-xxx tokens that handle the override logic\n };\n }\n\n private buttonClass = tv(\n {\n base: 'bcm-button appearance-none inline-flex items-center justify-center border border-solid rounded outline-0',\n variants: {\n size: {\n small: 'text-size-4 py-px px-2 min-h-6',\n medium: 'text-size-5 py-0.5 px-3 min-h-8',\n large: 'text-size-6 py-1 px-3 min-h-10',\n },\n kind: {\n primary: 'kind-primary',\n ghost: 'kind-ghost',\n text: 'kind-text',\n outline: 'kind-outline',\n },\n fullWidth: {\n true: 'full-width w-full',\n },\n disabled: {\n true: 'disabled cursor-not-allowed bg-[--bcm-ui-color-background-disabled-default] text-color-disabled border-color-disabled',\n false: [\n 'cursor-pointer',\n 'bg-[--bcm-final-bg-color] text-[--bcm-final-text-color] border-[--bcm-final-border-color]',\n 'hover:bg-[--bcm-final-hover-bg-color]',\n 'active:bg-[--bcm-final-active-bg-color]',\n 'focus-visible:ring',\n ],\n },\n loading: {\n true: '',\n },\n position: {\n first: 'position-first',\n middle: 'position-middle',\n last: 'position-last',\n },\n },\n defaultVariants: {\n size: 'medium',\n kind: 'primary',\n fullWidth: false,\n disabled: false,\n loading: false,\n },\n },\n {\n twMerge: false,\n },\n );\n\n render() {\n const { icon, position } = this.buttonIcon;\n\n return (\n <Host>\n <button\n type={this.type}\n disabled={this.disabled || this.loading}\n aria-label={this.label}\n aria-expanded={this.expanded}\n aria-controls={this.controls}\n aria-disabled={this.disabled}\n onClick={this.handleClick}\n onFocus={this.handleFocus}\n onBlur={this.handleBlur}\n style={this.buttonStyles}\n class={this.buttonClass({\n size: this.size,\n kind: this.kind,\n fullWidth: this.fullWidth,\n disabled: this.disabled,\n loading: this.loading,\n position: this.position,\n })}\n >\n {this.loading && <slot name=\"loading\"></slot>}\n <span>\n <slot name=\"prefix\">{position === 'prefix' && icon && <i class={' leading-none ' + icon}></i>}</slot>\n </span>\n <slot>{this.buttonText}</slot>\n <span>\n <slot name=\"suffix\">{position === 'suffix' && icon && <i class={' leading-none ' + icon}></i>}</slot>\n </span>\n </button>\n </Host>\n );\n }\n}\n","export type ChipSize = 'small' | 'medium' | 'large';\nexport type ChipKind = 'filled' | 'outlined' | 'text';\nexport type ChipStatus = 'info' | 'error' | 'warning' | 'success' | 'default' | 'primary';\n\nexport const STATUS_COLORS = {\n info: 'blue',\n error: 'red',\n warning: 'amber',\n success: 'green',\n primary: 'primary',\n} as const;\n",":host {\n display: inline-block;\n --bcm-chip-bg: var(--bcm-ui-color-background-default-default);\n --bcm-chip-text: var(--bcm-ui-color-text-default);\n --bcm-chip-border: var(--bcm-ui-color-border-default);\n --bcm-chip-hover-bg: var(--bcm-ui-color-background-default-hover);\n --bcm-chip-active-bg: var(--bcm-ui-color-background-default-active);\n --bcm-chip-radius: 6px;\n}\n","import { Component, ComponentInterface, h, Prop, Event, EventEmitter } from '@stencil/core';\nimport { ChipKind, ChipSize, ChipStatus, STATUS_COLORS } from './types';\nimport { tv } from '@utils/tv';\n\n/**\n * @component BcmChip\n * @description A versatile chip component that can be used to display compact pieces of information, filters, or actions.\n * Supports different sizes, styles (filled, outlined, text), statuses, and can be dismissible.\n *\n * @example\n * <bcm-chip size=\"medium\" kind=\"filled\" status=\"success\">\n * Success Chip\n * </bcm-chip>\n *\n * @example Dismissible chip\n * <bcm-chip dismissible={true} onDismiss={() => handleDismiss()}>\n * Dismissible Chip\n * </bcm-chip>\n *\n * @prop {ChipSize} size - Defines the size of the chip: 'small' | 'medium' | 'large'\n * @prop {ChipKind} kind - Defines the visual style: 'filled' | 'outlined' | 'text'\n * @prop {ChipStatus} status - Defines the status color: 'info' | 'error' | 'warning' | 'success' | 'default' | 'primary'\n * @prop {boolean} dismissible - Whether the chip can be dismissed\n * @prop {boolean} disabled - Whether the chip is disabled\n * @prop {string} color - Custom color override for the chip\n *\n * @event {EventEmitter<void>} dismiss - Emitted when the dismiss button is clicked\n *\n * @csspart chip - The root chip element\n * @csspart dismiss-icon - The dismiss button icon\n */\n\n@Component({\n tag: 'bcm-chip',\n styleUrl: 'chip.css',\n shadow: true,\n})\nexport class BcmChip implements ComponentInterface {\n /** Chip size variant */\n @Prop()\n size?: ChipSize = 'medium';\n\n /** Chip style variant */\n @Prop()\n kind?: ChipKind = 'filled';\n\n /** Chip status */\n @Prop()\n status?: ChipStatus = 'default';\n\n /** Whether chip can be dismissed */\n @Prop()\n dismissible?: boolean = false;\n\n /** Whether chip is disabled */\n @Prop()\n disabled?: boolean = false;\n\n /** Chip color variant */\n @Prop()\n color?: string;\n\n @Event({\n composed: false,\n bubbles: false,\n cancelable: true,\n })\n bcmDismiss: EventEmitter<void>;\n\n private chipClass = tv(\n {\n base: [\n 'chip bcm-ui-element font-normal flex items-center justify-center px-2 gap-1 min-w-max border',\n 'bg-[--bcm-chip-bg] text-[--bcm-chip-text] rounded-[--bcm-chip-radius] border-[--bcm-chip-border]',\n 'hover:bg-[--bcm-chip-hover-bg] active:bg-[--bcm-chip-active-bg]',\n ],\n variants: {\n size: {\n small: 'small py-px text-size-3',\n medium: 'medium py-0.5 text-size-4',\n large: 'large py-1 text-size-5',\n },\n kind: {\n filled: 'filled border-transparent',\n outlined: 'outlined',\n text: 'text border-none',\n },\n disabled: {\n true: 'cursor-not-allowed',\n },\n },\n },\n { twMerge: false },\n );\n\n private get chipStyle() {\n let _color = this.color;\n\n if (this.disabled) {\n return {\n '--bcm-chip-bg': 'var(--bcm-ui-color-background-disabled-default)',\n '--bcm-chip-text': 'var(--bcm-ui-color-text-disabled)',\n '--bcm-chip-border': 'var(--bcm-ui-color-border-disabled)',\n '--bcm-chip-hover-bg': 'var(--bcm-ui-color-background-disabled-default)',\n '--bcm-chip-active-bg': 'var(--bcm-ui-color-background-disabled-default)',\n };\n }\n\n if (this.status !== 'default') {\n _color = STATUS_COLORS[this.status];\n }\n\n const styles = {\n filled: {\n '--bcm-chip-bg': `var(--bcm-ui-color-background-palette-${_color}-default)`,\n '--bcm-chip-text': `var(--bcm-ui-color-text-palette-${_color})`,\n '--bcm-chip-border': `var(--bcm-ui-color-border-${_color})`,\n '--bcm-chip-hover-bg': `var(--bcm-ui-color-background-palette-${_color}-hover)`,\n '--bcm-chip-active-bg': `var(--bcm-ui-color-background-palette-${_color}-active)`,\n },\n outlined: {\n '--bcm-chip-bg': 'transparent',\n '--bcm-chip-text': `var(--bcm-ui-color-text-palette-${_color})`,\n '--bcm-chip-border': `var(--bcm-ui-color-border-${_color})`,\n '--bcm-chip-hover-bg': `var(--bcm-ui-color-background-palette-${_color}-hover)`,\n '--bcm-chip-active-bg': `var(--bcm-ui-color-background-palette-${_color}-active)`,\n },\n text: {\n '--bcm-chip-bg': 'transparent',\n '--bcm-chip-text': `var(--bcm-ui-color-text-palette-${_color})`,\n '--bcm-chip-border': 'transparent',\n '--bcm-chip-hover-bg': `var(--bcm-ui-color-background-palette-${_color}-hover)`,\n '--bcm-chip-active-bg': `var(--bcm-ui-color-background-palette-${_color}-active)`,\n },\n };\n\n const defaultStyles = {\n filled: {\n '--bcm-chip-bg': 'var(--bcm-ui-color-background-default-default)',\n '--bcm-chip-text': 'var(--bcm-ui-color-text-default)',\n '--bcm-chip-border': 'var(--bcm-ui-color-border-default)',\n '--bcm-chip-hover-bg': 'var(--bcm-ui-color-background-default-hover)',\n '--bcm-chip-active-bg': 'var(--bcm-ui-color-background-default-active)',\n },\n outlined: {\n '--bcm-chip-bg': 'transparent',\n '--bcm-chip-text': 'var(--bcm-ui-color-text-default)',\n '--bcm-chip-border': 'var(--bcm-ui-color-border-default)',\n '--bcm-chip-hover-bg': 'var(--bcm-ui-color-background-default-hover)',\n '--bcm-chip-active-bg': 'var(--bcm-ui-color-background-default-active)',\n },\n text: {\n '--bcm-chip-bg': 'transparent',\n '--bcm-chip-text': 'var(--bcm-ui-color-text-default)',\n '--bcm-chip-border': 'transparent',\n '--bcm-chip-hover-bg': 'var(--bcm-ui-color-background-default-hover)',\n '--bcm-chip-active-bg': 'var(--bcm-ui-color-background-default-active)',\n },\n };\n\n return _color ? styles[this.kind] : defaultStyles[this.kind];\n }\n\n private handleDismiss() {\n if (!this.disabled) {\n this.bcmDismiss.emit();\n }\n }\n\n render() {\n return (\n <div\n style={this.chipStyle}\n class={this.chipClass({ size: this.size, kind: this.kind, disabled: this.disabled })}\n role=\"button\"\n aria-disabled={this.disabled ? 'true' : 'false'}\n >\n <slot></slot>\n {this.dismissible && <bcm-icon onClick={() => this.handleDismiss()} class=\"cursor-pointer\" icon-name=\"fa-regular fa-xmark\" aria-label=\"Dismiss chip\"></bcm-icon>}\n </div>\n );\n }\n}\n",":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",":host {\n display: contents;\n}\n","import { Component, Prop, h, Element, Event, EventEmitter, Method, Watch, Listen, State } from '@stencil/core';\nimport { tv } from '@utils/tv';\n\nexport type ModalSize = 'small' | 'medium' | 'large' | 'xlarge' | 'xxlarge' | 'full';\nexport type ModalPlacement = 'center' | 'top';\n\n@Component({\n tag: 'bcm-modal',\n styleUrl: 'modal.css',\n shadow: true,\n})\nexport class BcmModal {\n @Element() host: HTMLBcmModalElement;\n\n private dialogRef?: HTMLDialogElement;\n\n @Prop({ mutable: true, reflect: true }) open: boolean = false;\n @Prop() size: ModalSize = 'medium';\n @Prop() placement: ModalPlacement = 'center';\n @Prop() backdrop: boolean | 'static' = true;\n @Prop({ attribute: 'full-width' }) fullWidth: boolean = false;\n @Prop({ attribute: 'full-screen' }) fullScreen: boolean = false;\n @Prop({ attribute: 'header-text' }) headerText?: string;\n @Prop({ attribute: 'helper-text' }) helperText?: string;\n @Prop({ attribute: 'no-header' }) noHeader: boolean = false;\n @Prop({ attribute: 'no-footer' }) noFooter: boolean = false;\n @Prop({ attribute: 'close-on-backdrop' }) closeOnBackdrop: boolean = true;\n @Prop({ attribute: 'close-on-escape' }) closeOnEscape: boolean = true;\n\n @State() isAnimating: boolean = false;\n @State() shake: 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 modalClass = 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 backdrop:transition-opacity backdrop:duration-300',\n container: 'fixed inset-0 flex items-start justify-center p-4 overflow-y-auto overscroll-contain',\n modal: 'relative bg-color-basic-base text-color-default rounded-lg shadow-2xl transform transition-all duration-300 ease-in-out flex flex-col',\n header: 'flex justify-between items-start bg-color-base text-color-default border-color-default border-solid border-0 border-b rounded-t-lg',\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',\n footer: 'flex items-center justify-end gap-2',\n },\n variants: {\n open: {\n true: {\n modal: 'opacity-100 translate-y-0 scale-100',\n },\n false: {\n modal: 'opacity-0 -translate-y-4 scale-95',\n },\n },\n placement: {\n center: {\n container: 'items-center',\n },\n top: {\n container: 'items-start pt-20',\n },\n },\n size: {\n small: {\n header: 'py-3 px-4',\n content: 'p-4',\n footer: 'py-3 px-4',\n },\n medium: {\n header: 'py-4 px-5',\n content: 'p-5',\n footer: 'py-4 px-5',\n },\n large: {\n header: 'py-4 px-6',\n content: 'p-6',\n footer: 'py-4 px-6',\n },\n xlarge: {\n header: 'py-5 px-6',\n content: 'p-6',\n footer: 'py-5 px-6',\n },\n xxlarge: {\n header: 'py-5 px-8',\n content: 'p-8',\n footer: 'py-5 px-8',\n },\n full: {\n header: 'py-5 px-8',\n content: 'p-8',\n footer: 'py-5 px-8',\n },\n },\n fullScreen: {\n true: {\n modal: 'rounded-none w-screen h-screen max-w-none max-h-none',\n container: 'p-0',\n },\n },\n shake: {\n true: {\n modal: '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 async handleOpenChange(isOpen: boolean) {\n if (isOpen) {\n this.isAnimating = true;\n const event = this.bcmBeforeOpen.emit();\n if (event.defaultPrevented) {\n this.open = false;\n return;\n }\n\n // Use native dialog API with top-layer\n if (this.dialogRef) {\n this.dialogRef.showModal();\n // Small delay for animation\n await new Promise(resolve => setTimeout(resolve, 50));\n this.isAnimating = false;\n this.bcmOpen.emit();\n }\n } else {\n this.isAnimating = true;\n const event = this.bcmBeforeClose.emit();\n if (event.defaultPrevented) {\n this.open = true;\n return;\n }\n\n // Wait for animation before closing\n await new Promise(resolve => setTimeout(resolve, 300));\n if (this.dialogRef) {\n this.dialogRef.close();\n }\n this.isAnimating = false;\n this.bcmClose.emit();\n }\n }\n\n @Listen('click', { capture: true })\n handleClick(event: MouseEvent) {\n // Use composedPath to work with shadow DOM and slots\n const path = event.composedPath() as HTMLElement[];\n const dismissElement = path.find(el => el.hasAttribute?.('data-dismiss'));\n const closeModalElement = path.find(el => el.hasAttribute?.('data-close-modal'));\n\n if (dismissElement) {\n this.hide();\n event.preventDefault();\n event.stopPropagation();\n } else if (closeModalElement) {\n const modalId = closeModalElement.getAttribute('data-close-modal');\n // If modalId matches this modal's id, close it\n if (!modalId || modalId === this.host.id) {\n this.hide();\n event.preventDefault();\n event.stopPropagation();\n }\n }\n }\n\n @Listen('keydown')\n handleKeyDown(event: KeyboardEvent) {\n if (event.key === 'Escape' && this.open) {\n // Only handle ESC if this is the topmost modal\n const openModals = Array.from(document.querySelectorAll('bcm-modal[open]'));\n const topModal = openModals[openModals.length - 1];\n\n if (topModal !== this.host) {\n return;\n }\n\n event.preventDefault();\n if (this.closeOnEscape) {\n if (this.backdrop === 'static') {\n this.shakeModal();\n } else {\n this.hide();\n }\n } else if (this.backdrop === 'static') {\n this.shakeModal();\n }\n }\n }\n\n @Method()\n async show(): Promise<void> {\n this.open = true;\n }\n\n @Method()\n async hide(): Promise<void> {\n this.open = false;\n }\n\n @Method()\n async toggle(): Promise<void> {\n this.open = !this.open;\n }\n\n private shakeModal() {\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 modal content\n if (target.getAttribute('part') === 'container') {\n if (this.backdrop === 'static') {\n this.shakeModal();\n } else if (this.closeOnBackdrop) {\n this.hide();\n }\n }\n };\n\n private handleDialogCancel = (event: Event) => {\n event.preventDefault();\n if (this.closeOnEscape) {\n if (this.backdrop === 'static') {\n this.shakeModal();\n } else {\n this.hide();\n }\n }\n };\n\n private getModalStyle() {\n if (this.fullScreen) {\n return {\n width: '100vw',\n height: '100vh',\n maxWidth: 'none',\n maxHeight: 'none',\n };\n }\n\n if (this.fullWidth) {\n return {\n width: '100%',\n maxWidth: '100%',\n };\n }\n\n const widths = {\n small: '400px',\n medium: '600px',\n large: '800px',\n xlarge: '1024px',\n xxlarge: '1200px',\n full: '100%',\n };\n\n return {\n width: widths[this.size],\n maxWidth: this.fullScreen ? 'none' : '90vw',\n maxHeight: this.fullScreen ? 'none' : '90vh',\n };\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 render() {\n const { dialog, container, modal, header, headerContent, title, helperText, closeButton, content, footer } = this.modalClass({\n open: this.open,\n placement: this.placement,\n size: this.size,\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=\"modal-title\"\n aria-describedby={this.helperText ? 'modal-helper' : undefined}\n aria-modal=\"true\"\n >\n <div part=\"container\" class={container()}>\n <div part=\"modal\" class={modal()} style={this.getModalStyle()} role=\"document\" onClick={e => e.stopPropagation()}>\n {!this.noHeader && (\n <div part=\"header\" class={header()}>\n <div part=\"header-content\" class={headerContent()}>\n <h2 id=\"modal-title\" part=\"title\" class={title()}>\n <slot name=\"header\">{this.headerText}</slot>\n </h2>\n {this.helperText && (\n <p id=\"modal-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 modal\" 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"],"mappings":"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","ignoreList":[]}
@@ -1,2 +0,0 @@
1
- import{r as e,c as t,h as a}from"./p-BuuGCw0z.js";import{t as r}from"./p-CEcVC0yX.js";const i=":host{--bcm-alert-bg:var(--bcm-ui-color-background-default-default);--bcm-alert-text:var(--bcm-ui-color-text-default);--bcm-alert-radius:6px;display:inline-block;width:100%}.bcm-ui-element{-webkit-font-smoothing:antialiased;-moz-osx-font-smoothing:grayscale;font-family:Inter,sans-serif}.static{position:static}.flex{display:flex}.w-full{width:100%}.cursor-pointer{cursor:pointer}.items-center{align-items:center}.justify-between{justify-content:space-between}.gap-2{gap:.5rem}.gap-3{gap:.75rem}.rounded-\\[--bcm-alert-radius\\]{border-radius:var(--bcm-alert-radius)}.bg-\\[--bcm-alert-bg\\]{background-color:var(--bcm-alert-bg)}.px-3{padding-left:.75rem;padding-right:.75rem}.py-1\\.5{padding-bottom:.375rem;padding-top:.375rem}.py-2{padding-bottom:.5rem;padding-top:.5rem}.py-2\\.5{padding-bottom:.625rem;padding-top:.625rem}.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)}.font-medium{font-weight:500}.text-\\[--bcm-alert-text\\]{color:var(--bcm-alert-text)}.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)}";const c=class{constructor(a){e(this,a);this.bcmDismiss=t(this,"bcmDismiss",7);this.status="default";this.size="medium";this.kind="filled";this.dismissible=true;this.showStatusIcon=true}onDismiss(){this.bcmDismiss.emit()}getStatusIcon(){const e={info:"fa-regular fa-info-circle",error:"fa-regular fa-exclamation-circle",warning:"fa-regular fa-exclamation-triangle",success:"fa-regular fa-check-circle"};return e[this.status]}get alertClass(){return r({slots:{base:"alert bcm-ui-element font-medium flex items-center justify-between bg-[--bcm-alert-bg] text-[--bcm-alert-text] rounded-[--bcm-alert-radius] px-3 gap-3 w-full",section:"flex items-center gap-2"},variants:{size:{small:{base:"py-1.5 text-size-4"},medium:{base:"py-2 text-size-5"},large:{base:"py-2.5 text-size-6"}}}},{twMerge:false})}get alertStyles(){let e={info:"var(--bcm-ui-color-background-palette-blue-default)",error:"var(--bcm-ui-color-background-palette-red-default)",warning:"var(--bcm-ui-color-background-palette-yellow-default)",success:"var(--bcm-ui-color-background-palette-green-default)",default:"var(--bcm-ui-color-background-palette-gray-default)"};let t={info:"var(--bcm-ui-color-text-info)",error:"var(--bcm-ui-color-text-error)",warning:"var(--bcm-ui-color-text-warning)",success:"var(--bcm-ui-color-text-success)",default:"var(--bcm-ui-color-text-default)"};let a={"--bcm-alert-bg":e[this.status],"--bcm-alert-text":t[this.status]};let r={"--bcm-alert-bg":"transparent","--bcm-alert-text":t[this.status]};return this.kind==="filled"?a:r}render(){const{base:e,section:t}=this.alertClass({size:this.size});return a("div",{key:"0dd8d98bdd25ad7aa407c18e4cc56b790d71ad58",role:"alert","aria-live":"assertive","aria-atomic":"true",class:e(),style:this.alertStyles},a("div",{key:"2b146b43d13d88125b06609a7ea23d70b7ba7fa4",class:t()},this.showStatusIcon&&a("bcm-icon",{key:"9a4f3968339dddd1895ad0d41e428772f131f84c","icon-name":this.getStatusIcon()}),a("slot",{key:"5b538aafdf7eaf3d48a9899bfdd2fb4427c2549f"})),a("div",{key:"bb990c1de23d3f24943f12d32a98688bc620333e",class:t()},a("div",{key:"eb59936416e2392ae0a403bef5524915673eddc2",part:"action"},a("slot",{key:"be60960457d8300a7c8412389a3b0e5238ad0df9",name:"action"})),a("span",{key:"ac8c899b7a41bd3bf8ba97476fa78d2964c55e0c",part:"icon"},this.dismissible&&a("bcm-icon",{key:"019f80cfc12ab50df94daed3693ad3a4c03ef0c3",onClick:()=>this.onDismiss(),class:"cursor-pointer","icon-name":"fa-regular fa-xmark"}))))}};c.style=i;export{c as bcm_alert};
2
- //# sourceMappingURL=p-d7cea19f.entry.js.map
@@ -1 +0,0 @@
1
- {"version":3,"names":["alertCss","BcmAlert","constructor","hostRef","this","status","size","kind","dismissible","showStatusIcon","onDismiss","bcmDismiss","emit","getStatusIcon","statusIcon","info","error","warning","success","alertClass","tv","slots","base","section","variants","small","medium","large","twMerge","alertStyles","colorStatus","default","textStatusColor","filleStyle","textStyle","render","h","key","role","class","style","part","name","onClick"],"sources":["src/components/alert/alert.css?tag=bcm-alert&encapsulation=shadow","src/components/alert/alert.component.tsx"],"sourcesContent":[":host {\n display: inline-block;\n width: 100%;\n --bcm-alert-bg: var(--bcm-ui-color-background-default-default);\n --bcm-alert-text: var(--bcm-ui-color-text-default);\n --bcm-alert-radius: 6px;\n}\n","import { Component, ComponentInterface, h, Prop, Event, EventEmitter } from '@stencil/core';\nimport { AlertKind, AlertSize, AlertStatus } from './types';\nimport { tv } from '@utils/tv';\n\n/**\n * Alert component that displays messages with different statuses and styles\n * @class BcmAlert\n */\n@Component({\n tag: 'bcm-alert',\n styleUrl: 'alert.css',\n shadow: true,\n})\nexport class BcmAlert implements ComponentInterface {\n /** Alert status type */\n @Prop()\n status?: AlertStatus = 'default';\n\n /** Alert size variant */\n @Prop()\n size?: AlertSize = 'medium';\n\n /** Alert style variant */\n @Prop()\n kind?: AlertKind = 'filled';\n\n /** Whether alert can be dismissed */\n @Prop()\n dismissible?: boolean = true;\n\n /** Whether to show status icon */\n @Prop()\n showStatusIcon?: boolean = true;\n\n @Event() bcmDismiss: EventEmitter<void>;\n\n /**\n * Handles alert dismissal\n * @private\n */\n private onDismiss() {\n this.bcmDismiss.emit();\n }\n\n private getStatusIcon() {\n const statusIcon = {\n info: 'fa-regular fa-info-circle',\n error: 'fa-regular fa-exclamation-circle',\n warning: 'fa-regular fa-exclamation-triangle',\n success: 'fa-regular fa-check-circle',\n };\n return statusIcon[this.status];\n }\n\n private get alertClass() {\n return tv(\n {\n slots: {\n base: 'alert bcm-ui-element font-medium flex items-center justify-between bg-[--bcm-alert-bg] text-[--bcm-alert-text] rounded-[--bcm-alert-radius] px-3 gap-3 w-full',\n section: 'flex items-center gap-2',\n },\n variants: {\n size: {\n small: {\n base: 'py-1.5 text-size-4',\n },\n medium: {\n base: 'py-2 text-size-5',\n },\n large: {\n base: 'py-2.5 text-size-6',\n },\n },\n },\n },\n {\n twMerge: false,\n },\n );\n }\n\n private get alertStyles() {\n let colorStatus = {\n info: 'var(--bcm-ui-color-background-palette-blue-default)',\n error: 'var(--bcm-ui-color-background-palette-red-default)',\n warning: 'var(--bcm-ui-color-background-palette-yellow-default)',\n success: 'var(--bcm-ui-color-background-palette-green-default)',\n default: 'var(--bcm-ui-color-background-palette-gray-default)',\n };\n\n let textStatusColor = {\n info: 'var(--bcm-ui-color-text-info)',\n error: 'var(--bcm-ui-color-text-error)',\n warning: 'var(--bcm-ui-color-text-warning)',\n success: 'var(--bcm-ui-color-text-success)',\n default: 'var(--bcm-ui-color-text-default)',\n };\n\n let filleStyle = {\n '--bcm-alert-bg': colorStatus[this.status],\n '--bcm-alert-text': textStatusColor[this.status],\n };\n\n let textStyle = {\n '--bcm-alert-bg': 'transparent',\n '--bcm-alert-text': textStatusColor[this.status],\n };\n\n return this.kind === 'filled' ? filleStyle : textStyle;\n }\n\n render() {\n const { base, section } = this.alertClass({ size: this.size });\n return (\n <div role=\"alert\" aria-live=\"assertive\" aria-atomic=\"true\" class={base()} style={this.alertStyles}>\n <div class={section()}>\n {this.showStatusIcon && <bcm-icon icon-name={this.getStatusIcon()}></bcm-icon>}\n <slot></slot>\n </div>\n <div class={section()}>\n <div part=\"action\">\n <slot name=\"action\"></slot>\n </div>\n <span part=\"icon\">{this.dismissible && <bcm-icon onClick={() => this.onDismiss()} class=\"cursor-pointer\" icon-name=\"fa-regular fa-xmark\"></bcm-icon>}</span>\n </div>\n </div>\n );\n }\n}\n"],"mappings":"sFAAA,MAAMA,EAAW,04C,MCaJC,EAAQ,MALrB,WAAAC,CAAAC,G,iDAQEC,KAAMC,OAAiB,UAIvBD,KAAIE,KAAe,SAInBF,KAAIG,KAAe,SAInBH,KAAWI,YAAa,KAIxBJ,KAAcK,eAAa,IAgG5B,CAxFS,SAAAC,GACNN,KAAKO,WAAWC,M,CAGV,aAAAC,GACN,MAAMC,EAAa,CACjBC,KAAM,4BACNC,MAAO,mCACPC,QAAS,qCACTC,QAAS,8BAEX,OAAOJ,EAAWV,KAAKC,O,CAGzB,cAAYc,GACV,OAAOC,EACL,CACEC,MAAO,CACLC,KAAM,gKACNC,QAAS,2BAEXC,SAAU,CACRlB,KAAM,CACJmB,MAAO,CACLH,KAAM,sBAERI,OAAQ,CACNJ,KAAM,oBAERK,MAAO,CACLL,KAAM,yBAKd,CACEM,QAAS,O,CAKf,eAAYC,GACV,IAAIC,EAAc,CAChBf,KAAM,sDACNC,MAAO,qDACPC,QAAS,wDACTC,QAAS,uDACTa,QAAS,uDAGX,IAAIC,EAAkB,CACpBjB,KAAM,gCACNC,MAAO,iCACPC,QAAS,mCACTC,QAAS,mCACTa,QAAS,oCAGX,IAAIE,EAAa,CACf,iBAAkBH,EAAY1B,KAAKC,QACnC,mBAAoB2B,EAAgB5B,KAAKC,SAG3C,IAAI6B,EAAY,CACd,iBAAkB,cAClB,mBAAoBF,EAAgB5B,KAAKC,SAG3C,OAAOD,KAAKG,OAAS,SAAW0B,EAAaC,C,CAG/C,MAAAC,GACE,MAAMb,KAAEA,EAAIC,QAAEA,GAAYnB,KAAKe,WAAW,CAAEb,KAAMF,KAAKE,OACvD,OACE8B,EAAK,OAAAC,IAAA,2CAAAC,KAAK,QAAO,YAAW,YAAwB,qBAAOC,MAAOjB,IAAQkB,MAAOpC,KAAKyB,aACpFO,EAAK,OAAAC,IAAA,2CAAAE,MAAOhB,KACTnB,KAAKK,gBAAkB2B,EAAA,YAAAC,IAAA,uDAAqBjC,KAAKS,kBAClDuB,EAAA,QAAAC,IAAA,8CAEFD,EAAK,OAAAC,IAAA,2CAAAE,MAAOhB,KACVa,EAAK,OAAAC,IAAA,2CAAAI,KAAK,UACRL,EAAA,QAAAC,IAAA,2CAAMK,KAAK,YAEbN,EAAA,QAAAC,IAAA,2CAAMI,KAAK,QAAQrC,KAAKI,aAAe4B,EAAU,YAAAC,IAAA,2CAAAM,QAAS,IAAMvC,KAAKM,YAAa6B,MAAM,iBAA2B,sC","ignoreList":[]}
@@ -1,2 +0,0 @@
1
- import{r as e,h as t}from"./p-BuuGCw0z.js";import{c as o}from"./p-BfTCfPZ1.js";const l={display:"h1",heading1:"h2",heading2:"h3",title1:"h4",title2:"h5",title3:"h6",body:"p",bodyAccent:"p",helper:"p",caption:"p",label:"label",placeholder:"p",link:"a",info:"p",infoAccent:"p"};const i=".static{position:static}.m-0{margin:0}.appearance-none{appearance:none}.truncate{overflow:hidden;text-overflow:ellipsis;white-space:nowrap}.p-0{padding:0}.text-size-12{font-size:var(--bcm-ui-font-size-12,60px);line-height:var(--bcm-ui-line-height-12,72px)}.text-size-3{font-size:var(--bcm-ui-font-size-3,12px);line-height:var(--bcm-ui-line-height-3,16px)}.text-size-4{font-size:var(--bcm-ui-font-size-4,14px);line-height:var(--bcm-ui-line-height-4,20px)}.text-size-5{font-size:var(--bcm-ui-font-size-5,16px);line-height:var(--bcm-ui-line-height-5,24px)}.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-medium{font-weight:500}.font-semibold{font-weight:600}.text-color-caption{color:var(--bcm-ui-color-text-caption)}.text-color-default{color:var(--bcm-ui-color-text-default)}.text-color-disabled{color:var(--bcm-ui-color-text-disabled)}.text-color-header{color:var(--bcm-ui-color-text-header)}.text-color-helper{color:var(--bcm-ui-color-text-helper)}.text-color-label{color:var(--bcm-ui-color-text-label)}.text-color-placeholder{color:var(--bcm-ui-color-text-placeholder)}.text-color-primary{color:var(--bcm-ui-color-text-primary)}.underline{text-decoration-line:underline}.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)}";const r=class{constructor(t){e(this,t);this.variant="body";this.size="medium";this.overflow=false;this.variantClassMap={display:"font-semibold text-size-12 text-color-header",heading1:"font-semibold text-size-7 text-color-header",heading2:"font-semibold text-size-6 text-color-header",title1:{small:"font-semibold text-size-5 text-color-header",medium:"font-semibold text-size-6 text-color-header",large:"font-semibold text-size-7 text-color-header"},title2:{small:"font-semibold text-size-4 text-color-default",medium:"font-semibold text-size-5 text-color-default",large:"font-semibold text-size-6 text-color-default"},title3:{small:"font-semibold text-size-3 text-color-disabled",medium:"font-semibold text-size-4 text-color-disabled",large:"font-semibold text-size-5 text-color-disabled"},body:{small:"font-regular text-size-4 text-color-default",medium:"font-regular text-size-5 text-color-default",large:"font-regular text-size-6 text-color-default"},bodyAccent:{small:"font-medium text-size-4 text-color-default",medium:"font-medium text-size-5 text-color-default",large:"font-medium text-size-6 text-color-default"},helper:{small:"font-regular text-size-4 text-color-helper",medium:"font-regular text-size-5 text-color-helper",large:"font-regular text-size-6 text-color-helper"},caption:{small:"font-regular text-size-3 text-color-caption",medium:"font-regular text-size-4 text-color-caption",large:"font-regular text-size-5 text-color-caption"},link:{small:"font-medium text-size-4 underline text-color-primary",medium:"font-medium text-size-5 underline text-color-primary",large:"font-medium text-size-6 underline text-color-primary"},label:{small:"font-medium text-size-3 text-color-label",medium:"font-medium text-size-4 text-color-label",large:"font-medium text-size-5 text-color-label"},placeholder:{small:"font-regular text-size-4 text-color-placeholder",medium:"font-regular text-size-5 text-color-placeholder",large:"font-regular text-size-6 text-color-placeholder"},info:{small:"font-regular text-size-3 text-color-default",medium:"font-regular text-size-4 text-color-default",large:"font-regular text-size-5 text-color-default"},infoAccent:{small:"font-medium text-size-3 text-color-header",medium:"font-medium text-size-4 text-color-header",large:"font-medium text-size-5 text-color-header"}};this.getTextClass=(e,t)=>{const o=this.variantClassMap[e];if(typeof o==="string"){return o}return o[t]};this.getOverflowClass=e=>e?"truncate":""}render(){var e;const i=l[this.variant];const r=this.getTextClass(this.variant,this.size);const a=this.getOverflowClass((e=this.overflow)!==null&&e!==void 0?e:false);return t(i,{key:"764bafeee7a1afa0b0087b4c3ae6ba1099a0ad99",class:o("bcm-text appearance-none m-0 p-0",r,a),part:"text"},t("slot",{key:"2ce41da65f4abb2ea5f926c6f5b6959488245ead"},this.text))}};r.style=i;export{r as bcm_text};
2
- //# sourceMappingURL=p-e5e0ac07.entry.js.map
@@ -1 +0,0 @@
1
- {"version":3,"names":["variantTagMap","display","heading1","heading2","title1","title2","title3","body","bodyAccent","helper","caption","label","placeholder","link","info","infoAccent","textCss","BcmText","constructor","hostRef","this","variant","size","overflow","variantClassMap","small","medium","large","getTextClass","variantClasses","getOverflowClass","render","Tag","variantClass","overflowClass","_a","h","key","class","cs","part","text"],"sources":["src/components/text/text.utils.ts","src/components/text/text.scss?tag=bcm-text&encapsulation=shadow","src/components/text/text.component.tsx"],"sourcesContent":["import { TextVariant, TextTag } from './text.types';\n\nexport const variantTagMap: Record<TextVariant, TextTag> = {\n display: 'h1',\n heading1: 'h2',\n heading2: 'h3',\n title1: 'h4',\n title2: 'h5',\n title3: 'h6',\n body: 'p',\n bodyAccent: 'p',\n helper: 'p',\n caption: 'p',\n label: 'label',\n placeholder: 'p',\n link: 'a',\n info: 'p',\n infoAccent: 'p',\n};\n",null,"import { Component, h, Prop } from '@stencil/core';\nimport cs from 'classnames';\nimport { TextVariant, TextSize } from './text.types';\nimport { variantTagMap } from './text.utils';\n\n@Component({\n tag: 'bcm-text',\n styleUrl: 'text.scss',\n shadow: true,\n})\nexport class BcmText {\n /** Text content */\n @Prop()\n text: string;\n\n /** Text variant */\n @Prop()\n variant: TextVariant = 'body';\n\n /** Text size */\n @Prop()\n size: TextSize = 'medium';\n\n /** Text overflow behavior */\n @Prop()\n overflow: boolean = false;\n\n private readonly variantClassMap = {\n display: 'font-semibold text-size-12 text-color-header',\n heading1: 'font-semibold text-size-7 text-color-header',\n heading2: 'font-semibold text-size-6 text-color-header',\n title1: {\n small: 'font-semibold text-size-5 text-color-header',\n medium: 'font-semibold text-size-6 text-color-header',\n large: 'font-semibold text-size-7 text-color-header',\n },\n title2: {\n small: 'font-semibold text-size-4 text-color-default',\n medium: 'font-semibold text-size-5 text-color-default',\n large: 'font-semibold text-size-6 text-color-default',\n },\n title3: {\n small: 'font-semibold text-size-3 text-color-disabled',\n medium: 'font-semibold text-size-4 text-color-disabled',\n large: 'font-semibold text-size-5 text-color-disabled',\n },\n body: {\n small: 'font-regular text-size-4 text-color-default',\n medium: 'font-regular text-size-5 text-color-default',\n large: 'font-regular text-size-6 text-color-default',\n },\n bodyAccent: {\n small: 'font-medium text-size-4 text-color-default',\n medium: 'font-medium text-size-5 text-color-default',\n large: 'font-medium text-size-6 text-color-default',\n },\n helper: {\n small: 'font-regular text-size-4 text-color-helper',\n medium: 'font-regular text-size-5 text-color-helper',\n large: 'font-regular text-size-6 text-color-helper',\n },\n caption: {\n small: 'font-regular text-size-3 text-color-caption',\n medium: 'font-regular text-size-4 text-color-caption',\n large: 'font-regular text-size-5 text-color-caption',\n },\n link: {\n small: 'font-medium text-size-4 underline text-color-primary',\n medium: 'font-medium text-size-5 underline text-color-primary',\n large: 'font-medium text-size-6 underline text-color-primary',\n },\n label: {\n small: 'font-medium text-size-3 text-color-label',\n medium: 'font-medium text-size-4 text-color-label',\n large: 'font-medium text-size-5 text-color-label',\n },\n placeholder: {\n small: 'font-regular text-size-4 text-color-placeholder',\n medium: 'font-regular text-size-5 text-color-placeholder',\n large: 'font-regular text-size-6 text-color-placeholder',\n },\n info: {\n small: 'font-regular text-size-3 text-color-default',\n medium: 'font-regular text-size-4 text-color-default',\n large: 'font-regular text-size-5 text-color-default',\n },\n infoAccent: {\n small: 'font-medium text-size-3 text-color-header',\n medium: 'font-medium text-size-4 text-color-header',\n large: 'font-medium text-size-5 text-color-header',\n },\n } as const;\n\n private getTextClass = (variant: TextVariant, size: TextSize): string => {\n const variantClasses = this.variantClassMap[variant];\n\n if (typeof variantClasses === 'string') {\n return variantClasses;\n }\n\n return variantClasses[size];\n };\n\n private getOverflowClass = (overflow: boolean): string => {\n return overflow ? 'truncate' : '';\n };\n\n render() {\n const Tag = variantTagMap[this.variant];\n const variantClass = this.getTextClass(this.variant, this.size);\n const overflowClass = this.getOverflowClass(this.overflow ?? false);\n\n return (\n <Tag class={cs('bcm-text appearance-none m-0 p-0', variantClass, overflowClass)} part=\"text\">\n <slot>{this.text}</slot>\n </Tag>\n );\n }\n}\n"],"mappings":"+EAEO,MAAMA,EAA8C,CACzDC,QAAS,KACTC,SAAU,KACVC,SAAU,KACVC,OAAQ,KACRC,OAAQ,KACRC,OAAQ,KACRC,KAAM,IACNC,WAAY,IACZC,OAAQ,IACRC,QAAS,IACTC,MAAO,QACPC,YAAa,IACbC,KAAM,IACNC,KAAM,IACNC,WAAY,KCjBd,MAAMC,EAAU,+/C,MCUHC,EAAO,MALpB,WAAAC,CAAAC,G,UAYEC,KAAOC,QAAgB,OAIvBD,KAAIE,KAAa,SAIjBF,KAAQG,SAAY,MAEHH,KAAAI,gBAAkB,CACjCvB,QAAS,+CACTC,SAAU,8CACVC,SAAU,8CACVC,OAAQ,CACNqB,MAAO,8CACPC,OAAQ,8CACRC,MAAO,+CAETtB,OAAQ,CACNoB,MAAO,+CACPC,OAAQ,+CACRC,MAAO,gDAETrB,OAAQ,CACNmB,MAAO,gDACPC,OAAQ,gDACRC,MAAO,iDAETpB,KAAM,CACJkB,MAAO,8CACPC,OAAQ,8CACRC,MAAO,+CAETnB,WAAY,CACViB,MAAO,6CACPC,OAAQ,6CACRC,MAAO,8CAETlB,OAAQ,CACNgB,MAAO,6CACPC,OAAQ,6CACRC,MAAO,8CAETjB,QAAS,CACPe,MAAO,8CACPC,OAAQ,8CACRC,MAAO,+CAETd,KAAM,CACJY,MAAO,uDACPC,OAAQ,uDACRC,MAAO,wDAEThB,MAAO,CACLc,MAAO,2CACPC,OAAQ,2CACRC,MAAO,4CAETf,YAAa,CACXa,MAAO,kDACPC,OAAQ,kDACRC,MAAO,mDAETb,KAAM,CACJW,MAAO,8CACPC,OAAQ,8CACRC,MAAO,+CAETZ,WAAY,CACVU,MAAO,4CACPC,OAAQ,4CACRC,MAAO,8CAIHP,KAAAQ,aAAe,CAACP,EAAsBC,KAC5C,MAAMO,EAAiBT,KAAKI,gBAAgBH,GAE5C,UAAWQ,IAAmB,SAAU,CACtC,OAAOA,C,CAGT,OAAOA,EAAeP,EAAK,EAGrBF,KAAAU,iBAAoBP,GACnBA,EAAW,WAAa,EAclC,CAXC,MAAAQ,G,MACE,MAAMC,EAAMhC,EAAcoB,KAAKC,SAC/B,MAAMY,EAAeb,KAAKQ,aAAaR,KAAKC,QAASD,KAAKE,MAC1D,MAAMY,EAAgBd,KAAKU,kBAAiBK,EAAAf,KAAKG,YAAY,MAAAY,SAAA,EAAAA,EAAA,OAE7D,OACEC,EAACJ,EAAI,CAAAK,IAAA,2CAAAC,MAAOC,EAAG,mCAAoCN,EAAcC,GAAgBM,KAAK,QACpFJ,EAAA,QAAAC,IAAA,4CAAOjB,KAAKqB,M","ignoreList":[]}
@@ -1 +0,0 @@
1
- {"version":3,"names":["tabsListCss","BcmTabsList","constructor","hostRef","this","variant","smooth","class","tv","slots","container","inkbar","tabList","backgroundLine","variants","true","false","defaultVariants","render","h","key","slot","role"],"sources":["src/components/tabs/tabs-list.css?tag=bcm-tabs-list&encapsulation=shadow","src/components/tabs/tabs-list.component.tsx"],"sourcesContent":["/* tabs-list.css */\n:host {\n display: block;\n position: relative;\n}\n\n:host([variant='full-width']) {\n width: 100%;\n}\n\n:host([variant='auto-width']) {\n width: auto;\n}\n","import { Component, Prop, h, ComponentInterface } from '@stencil/core';\nimport { tv } from '@utils/tv';\n\n/**\n * @description Container component for tab triggers that includes the sliding indicator (inkbar)\n * @slot - Default slot for tab trigger elements\n */\n@Component({\n tag: 'bcm-tabs-list',\n styleUrl: 'tabs-list.css',\n shadow: true,\n})\nexport class BcmTabsList implements ComponentInterface {\n /**\n * Tab variant - controls width behavior\n */\n @Prop({ reflect: true })\n variant: 'full-width' | 'auto-width' = 'full-width';\n\n /**\n * Whether to enable smooth animations for inkbar and transitions\n */\n @Prop({ reflect: true })\n smooth: boolean = true;\n /**\n * Tailwind variants configuration for styling the tabs list container and inkbar\n */\n private class = tv({\n slots: {\n /**\n * Main container that holds both the tablist and inkbar\n */\n container: 'flex flex-row items-center relative',\n\n /**\n * The sliding indicator that appears under the active tab\n */\n inkbar: 'inkbar absolute bottom-0 left-0 h-0.5 bg-[--bcm-ui-color-text-primary] z-10 opacity-0',\n\n /**\n * The container for tab trigger elements\n */\n tabList: 'tabs-list flex flex-row items-center relative',\n\n /**\n * Background line for auto-width variant\n */\n backgroundLine: 'absolute bottom-0 left-0 right-0 h-0.5 bg-[--bcm-ui-color-text-placeholder]',\n },\n variants: {\n variant: {\n 'full-width': {\n container: 'w-full',\n tabList: 'w-full',\n inkbar: 'right-0',\n backgroundLine: 'hidden',\n },\n 'auto-width': {\n container: 'w-auto',\n tabList: 'w-auto',\n inkbar: 'right-0',\n backgroundLine: 'block',\n },\n },\n smooth: {\n true: {\n inkbar: 'transition-all duration-200 ease-in-out',\n },\n false: {\n inkbar: '',\n },\n },\n },\n defaultVariants: {\n variant: 'full-width',\n smooth: true,\n },\n });\n\n render() {\n const { container, inkbar, tabList, backgroundLine } = this.class({\n variant: this.variant,\n smooth: this.smooth,\n });\n return (\n <div class={container()} slot=\"tabs-list\">\n <div class={backgroundLine()}></div>\n <div class={inkbar()}></div>\n <div class={tabList()} role=\"tablist\">\n <slot></slot>\n </div>\n </div>\n );\n }\n}\n"],"mappings":"+EAAA,MAAMA,EAAc,61C,MCYPC,EAAW,MALxB,WAAAC,CAAAC,G,UAUEC,KAAOC,QAAgC,aAMvCD,KAAME,OAAY,KAIVF,KAAKG,MAAGC,EAAG,CACjBC,MAAO,CAILC,UAAW,sCAKXC,OAAQ,wFAKRC,QAAS,gDAKTC,eAAgB,+EAElBC,SAAU,CACRT,QAAS,CACP,aAAc,CACZK,UAAW,SACXE,QAAS,SACTD,OAAQ,UACRE,eAAgB,UAElB,aAAc,CACZH,UAAW,SACXE,QAAS,SACTD,OAAQ,UACRE,eAAgB,UAGpBP,OAAQ,CACNS,KAAM,CACJJ,OAAQ,2CAEVK,MAAO,CACLL,OAAQ,MAIdM,gBAAiB,CACfZ,QAAS,aACTC,OAAQ,OAmBb,CAfC,MAAAY,GACE,MAAMR,UAAEA,EAASC,OAAEA,EAAMC,QAAEA,EAAOC,eAAEA,GAAmBT,KAAKG,MAAM,CAChEF,QAASD,KAAKC,QACdC,OAAQF,KAAKE,SAEf,OACEa,EAAA,OAAAC,IAAA,2CAAKb,MAAOG,IAAaW,KAAK,aAC5BF,EAAA,OAAAC,IAAA,2CAAKb,MAAOM,MACZM,EAAA,OAAAC,IAAA,2CAAKb,MAAOI,MACZQ,EAAA,OAAAC,IAAA,2CAAKb,MAAOK,IAAWU,KAAK,WAC1BH,EAAa,QAAAC,IAAA,8C","ignoreList":[]}
@@ -1,2 +0,0 @@
1
- import{r as o,c as e,h as t,H as d,a}from"./p-BuuGCw0z.js";import{t as i}from"./p-CEcVC0yX.js";const s=".visible{visibility:visible}.hidden{display:none}.static{position:static}.flex{display:flex}.max-h-64{max-height:16rem}.w-full{width:100%}.min-w-10{min-width:2.5rem}.max-w-64{max-width:16rem}.flex-col{flex-direction:column}.items-center{align-items:center}.overflow-y-auto{overflow-y:auto}.rounded-lg{border-radius:var(--bcm-ui-border-radius-lg,8px)}.bg-color-basic-panel{background-color:var(--bcm-ui-color-background-basic-panel)}.py-1\\.5{padding-bottom:.375rem;padding-top:.375rem}.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}";const r=class{constructor(t){o(this,t);this.bcmDropdownChange=e(this,"bcmDropdownChange",1);this.isReady=false;this.dropdownItems=[];this.dropdownClass=i({base:"dropdown flex flex-col items-center min-w-10 shadow-3 max-w-64 max-h-64 w-full bg-color-basic-panel rounded-lg py-1.5 overflow-y-auto"});this.handleSlotChange=()=>{this.dropdownItems=Array.from(this.host.querySelectorAll("bcm-dropdown-item"));if(this.dropdownItems.length===0){console.warn("No dropdown items found in dropdown component")}}}componentDidLoad(){const o=this.host.shadowRoot.querySelector("bcm-button");if(o){this.buttonRef=o;this.isReady=true}}handleDropdownItemChange(o){var e;const{element:t,selected:d}=o===null||o===void 0?void 0:o.detail;(e=this.dropdownItems)===null||e===void 0?void 0:e.forEach((o=>{if(o!=t){o.selected=false}}));this.bcmDropdownChange.emit({element:t,selected:d})}render(){return t(d,{key:"4bbcd189c404f57d7ac411eb98da8dbd2b6d3b30"},t("bcm-button",{key:"7e571fa321148576cd191a16ffc5bc6c03cdbcd7",kind:"outline"},t("span",{key:"769d43e0dee2c9a0e5b639d1150da63f9f7ff8fd",part:"text"},this.text)),this.isReady&&t("bcm-linked",{key:"220d1c248fee2365150ba58de5065c3f748fe15b",targetElement:this.buttonRef},t("div",{key:"8579fa56fb51741071f646412c5fffd069ba557e",part:"dropdown-container",class:this.dropdownClass()},t("slot",{key:"a94646e1a3f85f9c305d0dd01c8f70467b759fe8",onSlotchange:this.handleSlotChange}))))}get host(){return a(this)}};r.style=s;export{r as bcm_dropdown};
2
- //# sourceMappingURL=p-fbccbffc.entry.js.map
@@ -1 +0,0 @@
1
- {"version":3,"names":["dropdownCss","Dropdown","constructor","hostRef","this","isReady","dropdownItems","dropdownClass","tv","base","handleSlotChange","Array","from","host","querySelectorAll","length","console","warn","componentDidLoad","button","shadowRoot","querySelector","buttonRef","handleDropdownItemChange","event","element","selected","detail","_a","forEach","item","bcmDropdownChange","emit","render","h","Host","key","kind","part","text","targetElement","class","onSlotchange"],"sources":["src/components/dropdown/dropdown.css?tag=bcm-dropdown&encapsulation=shadow","src/components/dropdown/dropdown.component.tsx"],"sourcesContent":["/* :host {\n --dropdown-box-min-weight: 32px;\n --dropdown-box-max-width: 384px;\n --dropdown-box-max-height: 384px;\n --dropdown-box-background-color: var(--bcm-ui-color-background-basic-panel);\n} */\n/* \n.scroll {\n height: 140px;\n width: 140px;\n overflow-y: auto;\n}\n\n.scroll:active::-webkit-scrollbar-thumb,\n.scroll:focus::-webkit-scrollbar-thumb,\n.scroll:hover::-webkit-scrollbar-thumb {\n visibility: visible;\n}\n.scroll::-webkit-scrollbar-thumb {\n background-color: darkgrey;\n visibility: hidden;\n}\n\n.scroll::-webkit-scrollbar {\n width: 8px;\n height: 8px;\n} */\n","import { Component, ComponentInterface, h, Prop, State, Element, Host, Event, EventEmitter, Listen } from '@stencil/core';\nimport { tv } from '@utils/tv';\n\n@Component({\n tag: 'bcm-dropdown',\n styleUrl: 'dropdown.css',\n shadow: true,\n})\nexport class Dropdown implements ComponentInterface {\n @Element() host: HTMLElement;\n\n @Prop() text?: string;\n\n @State() isReady: boolean = false;\n\n @State() dropdownItems: HTMLBcmDropdownItemElement[] = [];\n\n protected buttonRef?: HTMLBcmButtonElement;\n\n @Event({\n composed: false,\n bubbles: false,\n cancelable: true,\n eventName: 'bcmDropdownChange',\n })\n bcmDropdownChange: EventEmitter<any>;\n\n componentDidLoad() {\n const button = this.host.shadowRoot.querySelector('bcm-button') as HTMLBcmButtonElement;\n if (button) {\n this.buttonRef = button;\n this.isReady = true;\n }\n }\n\n @Listen('bcmDropDownItemChange', { capture: true })\n handleDropdownItemChange(event: CustomEvent) {\n const { element, selected } = event?.detail;\n\n this.dropdownItems?.forEach(item => {\n if (item != element) {\n item.selected = false;\n }\n });\n\n this.bcmDropdownChange.emit({\n element: element,\n selected,\n });\n }\n\n private dropdownClass = tv({\n base: 'dropdown flex flex-col items-center min-w-10 shadow-3 max-w-64 max-h-64 w-full bg-color-basic-panel rounded-lg py-1.5 overflow-y-auto',\n });\n\n private handleSlotChange = () => {\n this.dropdownItems = Array.from(this.host.querySelectorAll('bcm-dropdown-item'));\n\n if (this.dropdownItems.length === 0) {\n console.warn('No dropdown items found in dropdown component');\n }\n };\n\n render() {\n return (\n <Host>\n <bcm-button kind=\"outline\">\n <span part=\"text\">{this.text}</span>\n </bcm-button>\n {this.isReady && (\n <bcm-linked targetElement={this.buttonRef}>\n <div part=\"dropdown-container\" class={this.dropdownClass()}>\n <slot onSlotchange={this.handleSlotChange}></slot>\n </div>\n </bcm-linked>\n )}\n </Host>\n );\n }\n}\n"],"mappings":"+FAAA,MAAMA,EAAc,o0B,MCQPC,EAAQ,MALrB,WAAAC,CAAAC,G,+DAUWC,KAAOC,QAAY,MAEnBD,KAAaE,cAAiC,GAoC/CF,KAAaG,cAAGC,EAAG,CACzBC,KAAM,0IAGAL,KAAgBM,iBAAG,KACzBN,KAAKE,cAAgBK,MAAMC,KAAKR,KAAKS,KAAKC,iBAAiB,sBAE3D,GAAIV,KAAKE,cAAcS,SAAW,EAAG,CACnCC,QAAQC,KAAK,gD,EAoBlB,CApDC,gBAAAC,GACE,MAAMC,EAASf,KAAKS,KAAKO,WAAWC,cAAc,cAClD,GAAIF,EAAQ,CACVf,KAAKkB,UAAYH,EACjBf,KAAKC,QAAU,I,EAKnB,wBAAAkB,CAAyBC,G,MACvB,MAAMC,QAAEA,EAAOC,SAAEA,GAAaF,IAAK,MAALA,SAAK,SAALA,EAAOG,QAErCC,EAAAxB,KAAKE,iBAAa,MAAAsB,SAAA,SAAAA,EAAEC,SAAQC,IAC1B,GAAIA,GAAQL,EAAS,CACnBK,EAAKJ,SAAW,K,KAIpBtB,KAAK2B,kBAAkBC,KAAK,CAC1BP,QAASA,EACTC,Y,CAgBJ,MAAAO,GACE,OACEC,EAACC,EAAI,CAAAC,IAAA,4CACHF,EAAY,cAAAE,IAAA,2CAAAC,KAAK,WACfH,EAAM,QAAAE,IAAA,2CAAAE,KAAK,QAAQlC,KAAKmC,OAEzBnC,KAAKC,SACJ6B,EAAA,cAAAE,IAAA,2CAAYI,cAAepC,KAAKkB,WAC9BY,EAAK,OAAAE,IAAA,2CAAAE,KAAK,qBAAqBG,MAAOrC,KAAKG,iBACzC2B,EAAM,QAAAE,IAAA,2CAAAM,aAActC,KAAKM,qB","ignoreList":[]}
@@ -1 +0,0 @@
1
- {"file":"bcm-accordion-group.entry.cjs.js","mappings":";;;;AAAA,MAAM,iBAAiB,GAAG,u9BAAu9B;;MCoEp+B,iBAAiB,GAAA,MAAA;AAL9B,IAAA,WAAA,CAAA,OAAA,EAAA;;;;AAUY,QAAA,IAAK,CAAA,KAAA,GAAY,KAAK;;AAGrB,QAAA,IAAc,CAAA,cAAA,GAA8B,EAAE;AAiDvD;;AAEG;AACK,QAAA,IAAgB,CAAA,gBAAA,GAAG,MAAK;AAC5B,YAAA,IAAI,CAAC,cAAc,GAAG,KAAK,CAAC,IAAI,CAAC,IAAI,CAAC,IAAI,CAAC,gBAAgB,CAAC,eAAe,CAAC,CAAC;YAC7E,IAAI,CAAC,gBAAgB,EAAE;;YAEvB,IAAI,IAAI,CAAC,cAAc,CAAC,MAAM,KAAK,CAAC,EAAE;AAClC,gBAAA,OAAO,CAAC,IAAI,CAAC,6CAA6C,CAAC;;AAEnE,SAAC;AAuCJ;AAzFG;;;AAGG;AAEH,IAAA,MAAM,SAAS,GAAA;AACX,QAAA,IAAI,CAAC,IAAI,CAAC,KAAK,EAAE;AACb,YAAA,OAAO,CAAC,IAAI,CAAC,6CAA6C,CAAC;YAC3D;;QAEJ,MAAM,OAAO,CAAC,GAAG,CAAC,IAAI,CAAC,cAAc,CAAC,GAAG,CAAC,IAAI,IAAI,IAAI,CAAC,MAAM,EAAE,CAAC,CAAC;;AAGrE;;AAEG;AAEH,IAAA,MAAM,WAAW,GAAA;QACb,MAAM,OAAO,CAAC,GAAG,CAAC,IAAI,CAAC,cAAc,CAAC,GAAG,CAAC,IAAI,IAAI,IAAI,CAAC,QAAQ,EAAE,CAAC,CAAC;;AAGvE;;AAEG;AAEH,IAAA,MAAM,gBAAgB,GAAA;AAClB,QAAA,OAAO,IAAI,CAAC,cAAc,CAAC,MAAM,CAAC,IAAI,IAAI,IAAI,CAAC,QAAQ,CAAC;;IAG5D,iBAAiB,GAAA;QACb,IAAI,CAAC,gBAAgB,EAAE;;IAInB,gBAAgB,GAAA;AACpB,QAAA,IAAI,CAAC,cAAc,CAAC,OAAO,CAAC,IAAI,IAAG;AAC/B,YAAA,IAAI,CAAC,KAAK,GAAG,IAAI;AACrB,SAAC,CAAC;;AAeN;;AAEG;AAEH,IAAA,qBAAqB,CAAC,KAA4C,EAAA;QAC9D,IAAI,CAAC,gBAAgB,EAAE;QACvB,MAAM,EAAE,QAAQ,EAAE,MAAM,EAAE,GAAG,KAAK,KAAA,IAAA,IAAL,KAAK,KAAA,MAAA,GAAA,MAAA,GAAL,KAAK,CAAE,MAAM;AAE1C,QAAA,IAAI,CAAC,IAAI,CAAC,KAAK,EAAE;AACb,YAAA,IAAI,CAAC,cAAc,CAAC,OAAO,CAAC,IAAI,IAAG;AAC/B,gBAAA,IAAI,IAAI,KAAK,MAAM,EAAE;oBACjB,IAAI,CAAC,QAAQ,EAAE;;AAEnB,gBAAA,IAAI,CAAC,QAAQ,GAAG,IAAI,KAAK,MAAM,GAAG,QAAQ,GAAG,KAAK;AACtD,aAAC,CAAC;;AAGN,QAAA,MAAM,aAAa,GAAG,IAAI,CAAC,cAAc,CAAC,MAAM,CAAC,IAAI,IAAI,IAAI,CAAC,QAAQ,CAAC;AACvE,QAAA,IAAI,CAAC,uBAAuB,CAAC,IAAI,CAAC;YAC9B,QAAQ;AACR,YAAA,OAAO,EAAE,MAAM;YACf,aAAa;YACb,aAAa,EAAE,aAAa,CAAC,MAAM;AACtC,SAAA,CAAC;;IAGN,MAAM,GAAA;AACF,QAAA,QACIA,OACI,CAAA,KAAA,EAAA,EAAA,GAAA,EAAA,0CAAA,EAAA,KAAK,EAAC,0HAA0H,EAChI,IAAI,EAAC,OAAO,EAAA,YAAA,EACD,iBAAiB,EAAA,EAE5BA,OAAM,CAAA,MAAA,EAAA,EAAA,GAAA,EAAA,0CAAA,EAAA,YAAY,EAAE,IAAI,CAAC,gBAAgB,EAAS,CAAA,CAChD;;;;;;;;","names":["h"],"sources":["src/components/accordion-group/accordion-group.css?tag=bcm-accordion-group&encapsulation=shadow","src/components/accordion-group/accordion-group.component.tsx"],"sourcesContent":[":host {\n display: block;\n width: 100%;\n --bcm-accordion-border: var(--bcm-ui-color-border-default);\n --bcm-accordion-radius: 6px;\n}\n","\nimport { Component, ComponentInterface, h, Element, Prop, Listen, State, Event, EventEmitter, Method } from '@stencil/core';\nimport { AccordionChangeEventType } from '../accordion/types';\nimport { AccordionGroupChangeEventType } from './types';\n\n/**\n* @component BcmAccordionGroup\n* @description A container component that manages a group of accordions. Provides single/multiple expansion \n* modes and methods for controlling all accordions simultaneously. Uses shadow DOM for style encapsulation.\n*\n* @example Basic usage - Single expansion mode\n* <bcm-accordion-group>\n* <bcm-accordion>\n* <div slot=\"title\">Section 1</div>\n* <div>Content 1</div>\n* </bcm-accordion>\n* <bcm-accordion>\n* <div slot=\"title\">Section 2</div>\n* <div>Content 2</div>\n* </bcm-accordion>\n* </bcm-accordion-group>\n*\n* @example Multiple expansion mode\n* <bcm-accordion-group multi={true}>\n* <bcm-accordion>...</bcm-accordion>\n* <bcm-accordion>...</bcm-accordion>\n* </bcm-accordion-group>\n* \n* @example Event handling\n* // Listen to accordion group changes\n* const accordionGroup = document.querySelector('bcm-accordion-group');\n* accordionGroup.addEventListener('bcmAccordionGroupChange', (event) => {\n* const { expanded, changed, expandedItems, expandedCount } = event.detail;\n* console.log('Accordion expanded state:', expanded);\n* console.log('Changed accordion:', changed);\n* console.log('Currently expanded accordions:', expandedItems);\n* console.log('Number of expanded accordions:', expandedCount);\n* });\n* \n* // Using methods\n* await accordionGroup.expandAll(); // Expands all accordions (only in multi mode)\n* await accordionGroup.collapseAll(); // Collapses all accordions\n* const expanded = await accordionGroup.getExpandedItems(); // Gets expanded accordions\n*\n* @prop {boolean} multi - Controls whether multiple accordions can be expanded simultaneously (default: false)\n*\n* @slot default - Container slot for bcm-accordion components\n*\n* @event {EventEmitter<AccordionGroupChangeEventType>} bcmAccordionGroupChange - Emitted when any accordion's state changes\n* @eventProperty {boolean} expanded - Current expanded state of the changed accordion\n* @eventProperty {HTMLElement} changed - The accordion element that triggered the change\n* @eventProperty {HTMLElement[]} expandedItems - Array of currently expanded accordion elements\n* @eventProperty {number} expandedCount - Number of currently expanded accordions\n*\n* @method expandAll() - Expands all accordions (only available in multi mode)\n* @method collapseAll() - Collapses all accordions\n* @method getExpandedItems() - Returns array of currently expanded accordions\n*\n* @csspart container - The accordion group container element\n*\n* @css {string} --bcm-accordion-border - Border color of the accordion group\n* @css {string} --bcm-accordion-radius - Border radius of the accordion group\n*/\n@Component({\n tag: 'bcm-accordion-group',\n styleUrl: 'accordion-group.css',\n shadow: true,\n})\nexport class BcmAccordionGroup implements ComponentInterface {\n /** Reference to the host element */\n @Element() host: HTMLElement;\n\n /** Controls whether multiple accordions can be expanded simultaneously */\n @Prop() multi: boolean = false;\n\n /** Array of accordion elements within the group */\n @State() accordionItems: HTMLBcmAccordionElement[] = [];\n\n /** Event emitted when any accordion's expanded state changes */\n @Event({\n composed: false,\n bubbles: false,\n cancelable: true,\n }) bcmAccordionGroupChange: EventEmitter<AccordionGroupChangeEventType>;\n\n /**\n * Expands all accordions in the group\n * Only available when multi=true\n */\n @Method()\n async expandAll(): Promise<void> {\n if (!this.multi) {\n console.warn('expandAll is only available when multi=true');\n return;\n }\n await Promise.all(this.accordionItems.map(item => item.expand()));\n }\n\n /**\n * Collapses all accordions in the group\n */\n @Method()\n async collapseAll(): Promise<void> {\n await Promise.all(this.accordionItems.map(item => item.collapse()));\n }\n\n /**\n * Returns an array of currently expanded accordion elements\n */\n @Method()\n async getExpandedItems(): Promise<HTMLBcmAccordionElement[]> {\n return this.accordionItems.filter(item => item.expanded);\n }\n\n componentWillLoad() {\n this.handleSlotChange();\n }\n\n\n private setGroupBehavior(): void {\n this.accordionItems.forEach(item => {\n item.group = true;\n });\n }\n\n /**\n * Updates the accordion items array when slot content changes\n */\n private handleSlotChange = () => {\n this.accordionItems = Array.from(this.host.querySelectorAll('bcm-accordion'));\n this.setGroupBehavior();\n // Validate accordion items\n if (this.accordionItems.length === 0) {\n console.warn('No accordion items found in accordion group');\n }\n };\n\n /**\n * Handles state changes of individual accordions\n */\n @Listen('bcmAccordionChange', { capture: true })\n handleAccordionChange(event: CustomEvent<AccordionChangeEventType>) {\n this.handleSlotChange();\n const { expanded, source } = event?.detail;\n\n if (!this.multi) {\n this.accordionItems.forEach(item => {\n if (item !== source) {\n item.collapse();\n }\n item.expanded = item === source ? expanded : false;\n });\n }\n\n const expandedItems = this.accordionItems.filter(item => item.expanded);\n this.bcmAccordionGroupChange.emit({\n expanded,\n changed: source,\n expandedItems,\n expandedCount: expandedItems.length,\n });\n }\n\n render() {\n return (\n <div\n class=\"flex flex-col bcm-ui-element w-full border border-solid border-[--bcm-accordion-border] rounded-[--bcm-accordion-radius]\"\n role=\"group\"\n aria-label=\"Accordion group\"\n >\n <slot onSlotchange={this.handleSlotChange}></slot>\n </div>\n );\n }\n}"],"version":3}
@@ -1 +0,0 @@
1
- {"file":"bcm-accordion.entry.cjs.js","mappings":"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","names":["tv","h"],"sources":["src/components/accordion/accordion.css?tag=bcm-accordion&encapsulation=shadow","src/components/accordion/accordion.component.tsx"],"sourcesContent":[":host {\n display: block;\n width: 100%;\n --bcm-accordion-bg: var(--bcm-ui-color-background-basic-panel);\n --bcm-accordion-content-bg: var(--bcm-ui-color-background-basic-base);\n --bcm-accordion-text: var(--bcm-ui-color-text-header);\n --bcm-accordion-border: var(--bcm-ui-color-border-default);\n --bcm-accordion-radius: 6px;\n --bcm-accordion-footer-bg: var(--bcm-ui-color-background-default-default);\n}\n\n:host(:not([group])) .accordion-container {\n border: 1px solid var(--bcm-accordion-border);\n border-radius: var(--bcm-accordion-radius);\n}\n\n:host([group]) .accordion-container {\n border-bottom: 1px solid var(--bcm-accordion-border);\n border-radius: 0;\n}\n\n:host([group]:last-of-type) .accordion-container {\n border-bottom: none;\n}\n\n:host([group]:first-of-type) .accordion-container {\n border-top-left-radius: var(--bcm-accordion-radius);\n border-top-right-radius: var(--bcm-accordion-radius);\n}\n\n:host([group]:last-of-type) .accordion-footer {\n border-bottom-left-radius: var(--bcm-accordion-radius);\n border-bottom-right-radius: var(--bcm-accordion-radius);\n}\n\n:host(:not([group])) .accordion-footer {\n border-bottom-left-radius: var(--bcm-accordion-radius);\n border-bottom-right-radius: var(--bcm-accordion-radius);\n}\n\n::slotted([slot='title']) {\n display: flex;\n flex-direction: row;\n align-items: center;\n gap: 10px;\n}\n::slotted([slot='actions']) {\n display: flex;\n flex-direction: row;\n align-items: center;\n gap: 12px;\n}\n","import { Component, ComponentInterface, EventEmitter, h, Method, Prop, Event, State, Element } from '@stencil/core';\nimport { tv } from '@utils/tv';\nimport { AccordionChangeEventType } from './types';\n\n/**\n * @component BcmAccordion\n * @description A collapsible accordion component that provides expandable/collapsible content sections with keyboard navigation\n * and accessibility features. Offers customizable header, content, and footer areas through slots.\n *\n * @example Basic usage\n * <bcm-accordion>\n * <div slot=\"title\">Accordion Title</div>\n * <div>Content goes here</div>\n * </bcm-accordion>\n *\n * @example With all slots and hint text\n * <bcm-accordion hint-text=\"Additional information\">\n * <div slot=\"title\">Title</div>\n * <div slot=\"actions\">\n * <button>Action</button>\n * </div>\n * <div>Main content</div>\n * <div slot=\"footer\">Footer content</div>\n * </bcm-accordion>\n *\n * @example Event handling\n * // Listen to accordion state changes\n * const accordion = document.querySelector('bcm-accordion');\n * accordion.addEventListener('bcmAccordionChange', (event) => {\n * const { expanded, source } = event.detail;\n * console.log('Accordion expanded:', expanded);\n * console.log('Changed accordion:', source);\n * });\n *\n * // Programmatically control accordion\n * await accordion.toggle(); // Toggle state\n * await accordion.expand(); // Expand accordion\n * await accordion.collapse(); // Collapse accordion\n *\n * @prop {boolean} expanded - Controls the expanded state of the accordion (default: false)\n * @prop {boolean} group - Indicates if the accordion is part of an accordion group (default: false)\n * @prop {string} hintText - Optional hint text to display in the footer when no footer content is provided\n *\n * @slot title - Primary title content for the accordion header (required)\n * @slot actions - Additional actions to be displayed in the header (optional)\n * @slot default - Main content area of the accordion\n * @slot footer - Optional footer content (overrides hint-text if provided)\n *\n * @event {EventEmitter<AccordionChangeEventType>} bcmAccordionChange - Emitted when the accordion's expanded state changes\n * @eventProperty {boolean} expanded - Current expanded state\n * @eventProperty {HTMLBcmAccordionElement} source - Reference to the accordion element that changed\n *\n * @csspart container - The root container element\n * @csspart header - The header section with title and actions\n * @csspart content - The collapsible content section\n * @csspart footer - The footer section with hint text or footer slot\n * @csspart section - Container for header content sections\n * @csspart icon - The expand/collapse chevron icon\n *\n * @css {string} --bcm-accordion-radius - Border radius of the accordion header (default: 4px)\n * @css {string} --bcm-accordion-bg - Background color of the accordion header\n * @css {string} --bcm-accordion-text - Text color of the accordion\n * @css {string} --bcm-accordion-footer-bg - Background color of the footer section\n *\n * @methods\n * toggle() - Toggles the accordion's expanded state\n * expand() - Expands the accordion if collapsed\n * collapse() - Collapses the accordion if expanded\n */\n@Component({\n tag: 'bcm-accordion',\n styleUrl: 'accordion.css',\n shadow: true,\n})\nexport class BcmAccordion implements ComponentInterface {\n /** Reference to the host element */\n @Element() host: HTMLElement;\n\n /**\n * Controls whether the accordion is expanded or collapsed.\n * @prop\n * @defaultValue false\n */\n @Prop({ reflect: true, mutable: true })\n expanded: boolean = false;\n\n /**\n * Optional title text to display in the header.\n * @prop\n * @defaultValue undefined\n */\n @Prop()\n headerTitle?: string;\n\n /**\n * Indicates if the accordion is part of a group.\n * Used for group behavior coordination.\n * @prop\n * @defaultValue false\n */\n\n @Prop({ reflect: true })\n group: boolean = false;\n\n /**\n * Optional text to display in the footer when no footer slot content is provided.\n * @prop\n */\n @Prop({ attribute: 'hint-text' })\n hintText?: string;\n\n /**\n * Tracks whether footer content is present.\n * @state\n */\n @State()\n hasFooterContent: boolean = false;\n\n /**\n * Emitted when the accordion's expanded state changes.\n * @event\n */\n @Event({\n composed: false,\n bubbles: false,\n cancelable: true,\n eventName: 'bcmAccordionChange',\n })\n bcmAccordionChange: EventEmitter<AccordionChangeEventType>;\n\n private contentEl?: HTMLElement;\n\n /**\n * Toggles the accordion's expanded state.\n * @method\n * @returns Promise<void>\n */\n @Method()\n async toggle(): Promise<void> {\n this.expanded = !this.expanded;\n this.updateAccordion();\n }\n\n /**\n * Expands the accordion if it's not already expanded.\n * @method\n * @returns Promise<void>\n */\n @Method()\n async expand(): Promise<void> {\n if (!this.expanded) {\n this.expanded = true;\n this.updateAccordion();\n }\n }\n\n /**\n * Collapses the accordion if it's currently expanded.\n * @method\n * @returns Promise<void>\n */\n @Method()\n async collapse(): Promise<void> {\n if (this.expanded) {\n this.expanded = false;\n this.updateAccordion();\n }\n }\n\n /**\n * Updates the accordion's content height and emits change event.\n * @private\n */\n private updateAccordion(): void {\n if (this.contentEl) {\n this.contentEl.style.maxHeight = this.expanded ? `${this.contentEl.scrollHeight}px` : '0px';\n }\n this.bcmAccordionChange.emit({ expanded: this.expanded, source: this.host as HTMLBcmAccordionElement });\n }\n\n /**\n * Handles changes to the footer slot content.\n * @private\n * @param e - Slot change event\n */\n private handleFooterSlotChange = (e: Event) => {\n const slot = e.target as HTMLSlotElement;\n const assignedNodes = slot.assignedNodes();\n this.hasFooterContent = assignedNodes.length > 0;\n };\n\n private accordionClass = tv(\n {\n slots: {\n container: 'accordion-container flex flex-col bcm-ui-element w-full',\n header:\n 'accordion-header flex flex-row justify-between gap-2 p-4 min-w-max flex-nowrap text-wrap rounded-[--bcm-accordion-radius] bg-[--bcm-accordion-bg] text-[--bcm-accordion-text] font-semibold text-size-6 cursor-pointer',\n content: 'accordion-content overflow-hidden transition-all duration-300 ease-in-out bg-color-basic-base',\n footer: 'accordion-footer flex flex-row flex-nowrap bg-[--bcm-accordion-footer-bg] text-[--bcm-accordion-text] px-4 py-2 gap-2 text-size-4 font-normal min-w-max',\n icon: 'accordion-icon cursor-pointer transform transition-transform duration-300',\n rightSection: 'accordion-right-section flex flex-row gap-2.5 items-center',\n },\n variants: {\n hasFooterContent: {\n false: { footer: 'hidden' },\n true: { footer: 'flex' },\n },\n expanded: {\n true: { icon: 'rotate-180' },\n false: {\n icon: 'rotate-0',\n content: '',\n },\n },\n },\n },\n {\n twMerge: false,\n },\n );\n\n render() {\n const { container, header, content, footer, icon, rightSection } = this.accordionClass({\n hasFooterContent: this.hasFooterContent || !!this.hintText,\n expanded: this.expanded,\n });\n\n return (\n <div class={container()}>\n {/* Header */}\n <header\n class={header()}\n role=\"button\"\n tabindex=\"0\"\n aria-expanded={this.expanded.toString()}\n aria-controls=\"accordion-content\"\n onKeyDown={e => {\n if (e.key === 'Enter' || e.key === ' ') {\n e.preventDefault();\n this.toggle();\n }\n }}\n onClick={() => this.toggle()}\n >\n <slot name=\"title\">{this.headerTitle}</slot>\n {/* Actions */}\n <div class={rightSection()}>\n <span onClick={e => e.stopPropagation()}>\n <slot name=\"actions\"></slot>\n </span>\n <bcm-icon name=\"fa-regular fa-chevron-down\" class={icon()}></bcm-icon>\n </div>\n </header>\n {/* Content */}\n <div class={content()} style={{ maxHeight: this.expanded ? 'auto' : '0px' }} ref={el => (this.contentEl = el as HTMLElement)}>\n <div class=\"px-4 py-2\">\n <slot></slot>\n </div>\n <footer class={footer()}>\n <slot name=\"footer\" onSlotchange={this.handleFooterSlotChange}>\n {this.hintText}\n </slot>\n </footer>\n </div>\n </div>\n );\n }\n}\n"],"version":3}
@@ -1 +0,0 @@
1
- {"file":"bcm-alert.entry.cjs.js","mappings":"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","names":["tv","h"],"sources":["src/components/alert/alert.css?tag=bcm-alert&encapsulation=shadow","src/components/alert/alert.component.tsx"],"sourcesContent":[":host {\n display: inline-block;\n width: 100%;\n --bcm-alert-bg: var(--bcm-ui-color-background-default-default);\n --bcm-alert-text: var(--bcm-ui-color-text-default);\n --bcm-alert-radius: 6px;\n}\n","import { Component, ComponentInterface, h, Prop, Event, EventEmitter } from '@stencil/core';\nimport { AlertKind, AlertSize, AlertStatus } from './types';\nimport { tv } from '@utils/tv';\n\n/**\n * Alert component that displays messages with different statuses and styles\n * @class BcmAlert\n */\n@Component({\n tag: 'bcm-alert',\n styleUrl: 'alert.css',\n shadow: true,\n})\nexport class BcmAlert implements ComponentInterface {\n /** Alert status type */\n @Prop()\n status?: AlertStatus = 'default';\n\n /** Alert size variant */\n @Prop()\n size?: AlertSize = 'medium';\n\n /** Alert style variant */\n @Prop()\n kind?: AlertKind = 'filled';\n\n /** Whether alert can be dismissed */\n @Prop()\n dismissible?: boolean = true;\n\n /** Whether to show status icon */\n @Prop()\n showStatusIcon?: boolean = true;\n\n @Event() bcmDismiss: EventEmitter<void>;\n\n /**\n * Handles alert dismissal\n * @private\n */\n private onDismiss() {\n this.bcmDismiss.emit();\n }\n\n private getStatusIcon() {\n const statusIcon = {\n info: 'fa-regular fa-info-circle',\n error: 'fa-regular fa-exclamation-circle',\n warning: 'fa-regular fa-exclamation-triangle',\n success: 'fa-regular fa-check-circle',\n };\n return statusIcon[this.status];\n }\n\n private get alertClass() {\n return tv(\n {\n slots: {\n base: 'alert bcm-ui-element font-medium flex items-center justify-between bg-[--bcm-alert-bg] text-[--bcm-alert-text] rounded-[--bcm-alert-radius] px-3 gap-3 w-full',\n section: 'flex items-center gap-2',\n },\n variants: {\n size: {\n small: {\n base: 'py-1.5 text-size-4',\n },\n medium: {\n base: 'py-2 text-size-5',\n },\n large: {\n base: 'py-2.5 text-size-6',\n },\n },\n },\n },\n {\n twMerge: false,\n },\n );\n }\n\n private get alertStyles() {\n let colorStatus = {\n info: 'var(--bcm-ui-color-background-palette-blue-default)',\n error: 'var(--bcm-ui-color-background-palette-red-default)',\n warning: 'var(--bcm-ui-color-background-palette-yellow-default)',\n success: 'var(--bcm-ui-color-background-palette-green-default)',\n default: 'var(--bcm-ui-color-background-palette-gray-default)',\n };\n\n let textStatusColor = {\n info: 'var(--bcm-ui-color-text-info)',\n error: 'var(--bcm-ui-color-text-error)',\n warning: 'var(--bcm-ui-color-text-warning)',\n success: 'var(--bcm-ui-color-text-success)',\n default: 'var(--bcm-ui-color-text-default)',\n };\n\n let filleStyle = {\n '--bcm-alert-bg': colorStatus[this.status],\n '--bcm-alert-text': textStatusColor[this.status],\n };\n\n let textStyle = {\n '--bcm-alert-bg': 'transparent',\n '--bcm-alert-text': textStatusColor[this.status],\n };\n\n return this.kind === 'filled' ? filleStyle : textStyle;\n }\n\n render() {\n const { base, section } = this.alertClass({ size: this.size });\n return (\n <div role=\"alert\" aria-live=\"assertive\" aria-atomic=\"true\" class={base()} style={this.alertStyles}>\n <div class={section()}>\n {this.showStatusIcon && <bcm-icon icon-name={this.getStatusIcon()}></bcm-icon>}\n <slot></slot>\n </div>\n <div class={section()}>\n <div part=\"action\">\n <slot name=\"action\"></slot>\n </div>\n <span part=\"icon\">{this.dismissible && <bcm-icon onClick={() => this.onDismiss()} class=\"cursor-pointer\" icon-name=\"fa-regular fa-xmark\"></bcm-icon>}</span>\n </div>\n </div>\n );\n }\n}\n"],"version":3}
@@ -1 +0,0 @@
1
- {"file":"bcm-avatar.entry.cjs.js","mappings":"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","names":["cs","h"],"sources":["src/components/avatar/avatar.css?tag=bcm-avatar&encapsulation=shadow","src/components/avatar/avatar.component.tsx"],"sourcesContent":[":host {\n --bcm-avatar-bg: var(--bcm-ui-color-background-default-default);\n --bcm-avatar-text: var(--bcm-ui-color-text-default);\n --bcm-avatar-radius: 50%;\n}\n","import { Component, Prop, State, h } from '@stencil/core';\nimport cs from 'classnames';\nimport { AvatarShape, AvatarSize, AvatarStatus } from './types';\n\n@Component({\n tag: 'bcm-avatar',\n styleUrl: 'avatar.css',\n shadow: true,\n})\nexport class BcmAvatar {\n /** Source URL for avatar image */\n @Prop()\n image: string;\n\n /** Alternative text for image */\n @Prop()\n alt: string;\n\n /** Shape of the avatar (ellipse/square) */\n @Prop()\n shape: AvatarShape = 'ellipse';\n\n /** Size of the avatar */\n @Prop()\n size: AvatarSize = 'medium';\n\n /** Custom background color */\n @Prop()\n color: string;\n\n /** Fallback icon class */\n @Prop()\n icon: string = 'fas fa-user';\n\n /** Status indicator type */\n @Prop()\n status: AvatarStatus;\n\n /** Status indicator animation */\n @Prop()\n blink = false;\n\n /** Display name (used for initials) */\n @Prop()\n name: string;\n\n @State() isFallback: boolean = false;\n\n private getFirstLetters(name: string): string {\n const words = name.split(' ');\n const initials = words.map(word => word.charAt(0).toUpperCase()).join('');\n return initials.substring(0, 2);\n }\n\n render() {\n const baseClass = cs(\n 'bcm-avatar bcm-ui-element bcm-ui-content-display',\n 'uppercase font-medium',\n 'inline-flex items-center justify-center',\n 'bg-[--bcm-avatar-bg] text-[--bcm-avatar-text]',\n {\n 'shape-ellipse rounded-full': this.shape === 'ellipse',\n 'shape-square rounded-[--bcm-ui-radius]': this.shape === 'square',\n 'size-small text-size-4 w-6 h-6': this.size === 'small',\n 'size-medium text-size-5 w-8 h-8': this.size === 'medium',\n 'size-large text-size-6 w-10 h-10': this.size === 'large',\n },\n );\n\n const badgeClass = cs('badge', {\n 'top-0 right-0': this.shape === 'ellipse',\n '-top-0.5 -right-0.5': this.shape === 'square',\n });\n\n const imageClass = cs('image w-full h-full', {\n 'rounded-full': this.shape === 'ellipse',\n 'rounded-[--bcm-ui-radius]': this.shape === 'square',\n });\n\n let style = {};\n\n if (this.color) {\n const isColorTone = this.color.includes('-');\n const _color = isColorTone ? this.color.split('-')[0] : this.color;\n\n const bgColor = `var(--bcm-ui-color-background-palette-${_color}-default)`;\n const textColor = `var(--bcm-ui-color-text-palette-${_color}`;\n style = {\n '--bcm-avatar-bg': bgColor,\n '--bcm-avatar-text': textColor,\n };\n }\n\n const customSize = !Object.keys(['small', 'medium', 'large']).includes(this.size)\n ? {\n width: `${this.size}px`,\n height: `${this.size}px`,\n fontSize: `${+this.size / 2}px`,\n }\n : {};\n\n const RenderContent = () => {\n if (this.isFallback) {\n if (this.name) {\n return this.getFirstLetters(this.name);\n } else {\n return <i class={this.icon}></i>;\n }\n } else if (this.image) {\n return <img class={imageClass} onError={() => (this.isFallback = true)} src={this.image} alt={this.alt} aria-label={this.alt || this.name || 'Avatar'} />;\n } else if (this.name) {\n return this.getFirstLetters(this.name);\n } else {\n return <i class={this.icon}></i>;\n }\n };\n\n return (\n <div role=\"img\" aria-label={this.alt || this.name || 'Avatar'} class={baseClass} style={{ ...style, ...customSize }}>\n <RenderContent />\n {this.status && <bcm-badge class={badgeClass} status={this.status} blink={this.blink} aria-hidden=\"true\"></bcm-badge>}\n <slot></slot>\n </div>\n );\n }\n}\n"],"version":3}
@@ -1 +0,0 @@
1
- {"file":"bcm-badge.entry.cjs.js","mappings":"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","names":["tv","h"],"sources":["src/components/badge/badge.css?tag=bcm-badge&encapsulation=shadow","src/components/badge/badge.component.tsx"],"sourcesContent":[":host {\n display: inline-block;\n position: relative;\n --bcm-badge-bg: var(--bcm-ui-color-background-default-default);\n --bcm-badge-text: var(--bcm-ui-color-text-default);\n --bcm-badge-radius: 9999px;\n}\n\n::slotted([slot='badge']) {\n color: var(--bcm-badge-text);\n font-weight: 500;\n}\n","import { Component, ComponentInterface, Prop, h } from '@stencil/core';\nimport { tv } from '@utils/tv';\n\n/**\n * @component BcmBadge\n * @description A versatile badge component that can be positioned around its container.\n * Supports different sizes, variants (dot/text), colors, and positioning options.\n * Can display status indicators with optional blinking animation.\n *\n * @example Basic usage\n * <bcm-badge color=\"primary\" position=\"top-right\">\n * <div>Container Content</div>\n * <span slot=\"badge\">New</span>\n * </bcm-badge>\n *\n * @example Status indicator with blink\n * <bcm-badge variant=\"dot\" color=\"success\" blink={true} status=\"Online\">\n * <div>User Profile</div>\n * </bcm-badge>\n */\n@Component({\n tag: 'bcm-badge',\n styleUrl: 'badge.css',\n shadow: true,\n})\nexport class Badge implements ComponentInterface {\n /**\n * Determines the size of the badge.\n * @type {'small' | 'medium' | 'large'}\n * @default 'medium'\n */\n @Prop()\n size: 'small' | 'medium' | 'large' = 'medium';\n\n /**\n * Sets the visual variant of the badge.\n * 'dot': Appears as a small dot indicator\n * 'text': Displays content as text\n * @type {'dot' | 'text'}\n * @default 'text'\n */\n @Prop()\n variant: 'dot' | 'text' = 'text';\n\n /**\n * Defines the color of the badge.\n * Uses system color variables (e.g., 'primary', 'success', 'warning', etc.)\n * @type {string}\n * @optional\n */\n @Prop()\n color?: string;\n\n /**\n * Enables soft color mode for the badge.\n * When true, uses lighter tones and pastel colors.\n * @type {boolean}\n * @default false\n */\n @Prop()\n soft: boolean = false;\n\n /**\n * Enables blinking animation for the badge.\n * Useful for drawing attention or indicating active status.\n * @type {boolean}\n * @default false\n */\n @Prop()\n blink: boolean = false;\n\n /**\n * Status message for accessibility purposes.\n * Will be read by screen readers.\n * @type {string}\n * @optional\n */\n @Prop()\n status?: string;\n\n /**\n * Sets the position of the badge relative to its container.\n * @type {'top-right' | 'top-left' | 'bottom-right' | 'bottom-left'}\n * @default 'top-right'\n */\n @Prop()\n position: 'top-right' | 'top-left' | 'bottom-right' | 'bottom-left' = 'top-right';\n\n /**\n * Fine-tune the badge position with custom offset.\n * Format: \"x,y\" in pixels (e.g., \"10,-5\")\n * @type {string}\n * @optional\n */\n @Prop()\n offset: string;\n\n /**\n * Text to be displayed inside the badge.\n * Used when variant is set to 'text'.\n * Can be overridden using the \"badge\" slot.\n * @type {string}\n * @optional\n */\n @Prop()\n text?: string;\n\n private classes = tv({\n base: 'badge bcm-ui-element absolute font-medium inline-flex items-center justify-center bg-[--bcm-badge-bg] text-[--bcm-badge-text] rounded-[--bcm-badge-radius] z-10',\n variants: {\n size: {\n small: 'gap-1 px-1 text-size-3',\n medium: 'gap-1 py-0.5 px-1.5 text-size-4',\n large: 'gap-2 py-1 px-2 text-size-5',\n },\n variant: {\n dot: 'gap-0 p-0 text-[0px] leading-none',\n text: '',\n },\n position: {\n 'top-right': '-top-1 -right-1',\n 'top-left': '-top-1 -left-1',\n 'bottom-right': '-bottom-1 -right-1',\n 'bottom-left': '-bottom-1 -left-1',\n },\n blink: {\n true: 'after:content-[\"\"] after:absolute after:rounded-full after:bg-[--bcm-badge-bg] after:animate-blink after:w-full after:h-full',\n },\n },\n compoundVariants: [\n {\n variant: 'dot',\n size: 'small',\n class: 'size-1',\n },\n {\n variant: 'dot',\n size: 'medium',\n class: 'size-1.5',\n },\n {\n variant: 'dot',\n size: 'large',\n class: 'size-2',\n },\n ],\n defaultVariants: {\n variant: 'text',\n size: 'medium',\n position: 'top-right',\n blink: false,\n },\n });\n\n private get offsetStyle() {\n if (!this.offset) return {};\n const [x = 0, y = 0] = this.offset.split(',').map(val => val.trim());\n return { transform: `translate(${x}px, ${y}px)` };\n }\n\n private get badgeStyle() {\n if (!this.color) return {};\n const variantType = this.soft ? 'soft' : 'vivid';\n\n return {\n '--bcm-badge-bg': `var(--bcm-ui-color-background-${variantType}-${this.color}-default)`,\n '--bcm-badge-text': this.soft ? `var(--bcm-ui-color-text-palette-${this.color})` : 'var(--bcm-ui-color-text-base)',\n };\n }\n\n render() {\n return (\n <div class=\"relative inline-flex\">\n <slot></slot>\n <div\n role=\"status\"\n aria-live=\"polite\"\n aria-label={this.status ? `Status: ${this.status}` : undefined}\n class={this.classes({\n size: this.size,\n variant: this.variant,\n position: this.position,\n blink: this.blink,\n })}\n style={{\n ...this.badgeStyle,\n ...this.offsetStyle,\n }}\n >\n {this.variant == 'text' && <slot name=\"badge\">{this.text}</slot>}\n </div>\n </div>\n );\n }\n}\n"],"version":3}
@@ -1 +0,0 @@
1
- {"file":"bcm-basic-badge.entry.cjs.js","mappings":";;;;;AAAA,MAAM,aAAa,GAAG,ovDAAovD;;MCsB7vD,UAAU,GAAA,MAAA;AALvB,IAAA,WAAA,CAAA,OAAA,EAAA;;AAME;;;;AAIG;AAEH,QAAA,IAAI,CAAA,IAAA,GAAiC,QAAQ;AAE7C;;;;;;AAMG;AAEH,QAAA,IAAO,CAAA,OAAA,GAAmB,MAAM;AAWhC;;;;;AAKG;AAEH,QAAA,IAAI,CAAA,IAAA,GAAY,KAAK;AAWb,QAAA,IAAO,CAAA,OAAA,GAAGA,KAAE,CAAC;AACnB,YAAA,IAAI,EAAE,iLAAiL;AACvL,YAAA,QAAQ,EAAE;AACR,gBAAA,IAAI,EAAE;AACJ,oBAAA,KAAK,EAAE,kBAAkB;AACzB,oBAAA,MAAM,EAAE,2BAA2B;AACnC,oBAAA,KAAK,EAAE,uBAAuB;AAC/B,iBAAA;AACD,gBAAA,OAAO,EAAE;AACP,oBAAA,GAAG,EAAE,mCAAmC;AACxC,oBAAA,IAAI,EAAE,EAAE;AACT,iBAAA;AACF,aAAA;AACD,YAAA,gBAAgB,EAAE;AAChB,gBAAA;AACE,oBAAA,OAAO,EAAE,KAAK;AACd,oBAAA,IAAI,EAAE,OAAO;AACb,oBAAA,KAAK,EAAE,QAAQ;AAChB,iBAAA;AACD,gBAAA;AACE,oBAAA,OAAO,EAAE,KAAK;AACd,oBAAA,IAAI,EAAE,QAAQ;AACd,oBAAA,KAAK,EAAE,UAAU;AAClB,iBAAA;AACD,gBAAA;AACE,oBAAA,OAAO,EAAE,KAAK;AACd,oBAAA,IAAI,EAAE,OAAO;AACb,oBAAA,KAAK,EAAE,QAAQ;AAChB,iBAAA;AACF,aAAA;AACD,YAAA,eAAe,EAAE;AACf,gBAAA,OAAO,EAAE,MAAM;AACf,gBAAA,IAAI,EAAE,QAAQ;AACd,gBAAA,KAAK,EAAE,KAAK;AACb,aAAA;AACF,SAAA,CAAC;AAgCH;AA9BC,IAAA,IAAY,UAAU,GAAA;QACpB,IAAI,CAAC,IAAI,CAAC,KAAK;AAAE,YAAA,OAAO,EAAE;AAC1B,QAAA,MAAM,WAAW,GAAG,IAAI,CAAC,IAAI,GAAG,SAAS,GAAG,OAAO;QAEnD,OAAO;AACL,YAAA,gBAAgB,EAAE,CAAiC,8BAAA,EAAA,WAAW,IAAI,IAAI,CAAC,KAAK,CAAW,SAAA,CAAA;AACvF,YAAA,kBAAkB,EAAE,IAAI,CAAC,IAAI,GAAG,CAAmC,gCAAA,EAAA,IAAI,CAAC,KAAK,CAAA,CAAA,CAAG,GAAG,+BAA+B;SACnH;;IAGH,MAAM,GAAA;AACJ,QAAA,QACEC,mEACE,IAAI,EAAC,MAAM,EACX,IAAI,EAAC,QAAQ,EACH,WAAA,EAAA,QAAQ,EAClB,KAAK,EAAE,IAAI,CAAC,UAAU,EACtB,KAAK,EAAE,IAAI,CAAC,OAAO,CAAC;gBAClB,IAAI,EAAE,IAAI,CAAC,IAAI;gBACf,OAAO,EAAE,IAAI,CAAC,OAAO;AACtB,aAAA,CAAC,EAAA,EAED,IAAI,CAAC,OAAO,KAAK,MAAM,KACtBA,OAAA,CAAA,MAAA,EAAA,EAAA,GAAA,EAAA,0CAAA,EAAM,KAAK,EAAC,eAAe,EAAA,EACzBA,OAAA,CAAA,MAAA,EAAA,EAAA,GAAA,EAAA,0CAAA,EAAA,CAAa,CACR,CACR,CACI;;;;;;;","names":["tv","h"],"sources":["src/components/basic-badge/basic-badge.css?tag=bcm-basic-badge&encapsulation=shadow","src/components/basic-badge/basic-badge.component.tsx"],"sourcesContent":[":host {\n display: inline-flex;\n height: fit-content;\n width: fit-content;\n --bcm-badge-bg: var(--bcm-ui-color-background-default-default);\n --bcm-badge-text: var(--bcm-ui-color-text-default);\n --bcm-badge-radius: 9999px;\n}\n\n.badge-content {\n color: var(--bcm-badge-text);\n font-weight: 500;\n}\n","import { Component, ComponentInterface, Prop, h } from '@stencil/core';\nimport { tv } from '@utils/tv';\n\n/**\n * @component BcmBasicBadge\n * @description A basic badge component that can be used as a status indicator or to highlight content.\n * Supports dot and text variants with different sizes and color options.\n *\n * @example Basic usage\n * <bcm-basic-badge size=\"medium\" color=\"primary\">\n * New\n * </bcm-basic-badge>\n *\n * @example Dot variant\n * <bcm-basic-badge variant=\"dot\" color=\"success\" />\n */\n\n@Component({\n tag: 'bcm-basic-badge',\n styleUrl: 'basic-badge.css',\n shadow: true,\n})\nexport class BasicBadge implements ComponentInterface {\n /**\n * Determines the size of the badge.\n * @type {'small' | 'medium' | 'large'}\n * @default 'medium'\n */\n @Prop()\n size: 'small' | 'medium' | 'large' = 'medium';\n\n /**\n * Sets the visual variant of the badge.\n * 'dot': Appears as a small dot indicator\n * 'text': Displays content as text\n * @type {'dot' | 'text'}\n * @default 'text'\n */\n @Prop()\n variant: 'dot' | 'text' = 'text';\n\n /**\n * Defines the color of the badge.\n * Uses system color variables (e.g., 'primary', 'success', 'warning', etc.)\n * @type {string}\n * @optional\n */\n @Prop()\n color?: string;\n\n /**\n * Enables soft color mode for the badge.\n * When true, uses lighter tones and pastel colors.\n * @type {boolean}\n * @default false\n */\n @Prop()\n soft: boolean = false;\n\n /**\n * Text to be displayed inside the badge.\n * Used when variant is set to 'text'.\n * @type {string}\n * @optional\n */\n @Prop()\n text?: string;\n\n private classes = tv({\n base: 'badge bcm-ui-element inline-flex items-center justify-center whitespace-nowrap select-none font-medium bg-[--bcm-badge-bg] text-[--bcm-badge-text] rounded-[--bcm-badge-radius]',\n variants: {\n size: {\n small: 'px-1 text-size-3',\n medium: 'py-0.5 px-1.5 text-size-4',\n large: 'py-1 px-2 text-size-5',\n },\n variant: {\n dot: 'gap-0 p-0 text-[0px] leading-none',\n text: '',\n },\n },\n compoundVariants: [\n {\n variant: 'dot',\n size: 'small',\n class: 'size-1',\n },\n {\n variant: 'dot',\n size: 'medium',\n class: 'size-1.5',\n },\n {\n variant: 'dot',\n size: 'large',\n class: 'size-2',\n },\n ],\n defaultVariants: {\n variant: 'text',\n size: 'medium',\n blink: false,\n },\n });\n\n private get badgeStyle() {\n if (!this.color) return {};\n const variantType = this.soft ? 'palette' : 'vivid';\n\n return {\n '--bcm-badge-bg': `var(--bcm-ui-color-background-${variantType}-${this.color}-default)`,\n '--bcm-badge-text': this.soft ? `var(--bcm-ui-color-text-palette-${this.color})` : 'var(--bcm-ui-color-text-base)',\n };\n }\n\n render() {\n return (\n <span\n part=\"base\"\n role=\"status\"\n aria-live=\"polite\"\n style={this.badgeStyle}\n class={this.classes({\n size: this.size,\n variant: this.variant,\n })}\n >\n {this.variant === 'text' && (\n <span class=\"badge-content\">\n <slot></slot>\n </span>\n )}\n </span>\n );\n }\n}\n"],"version":3}
@@ -1 +0,0 @@
1
- {"file":"bcm-button-group.entry.cjs.js","mappings":"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","names":["tv","h","Host"],"sources":["src/components/button-group/button-group.css?tag=bcm-button-group&encapsulation=shadow","src/components/button-group/button-group.component.tsx"],"sourcesContent":[":host {\n display: block;\n}\n\n.bcm-button-group {\n display: flex;\n}\n","import { Component, Prop, h, Host, Element, ComponentInterface } from '@stencil/core';\nimport { ButtonKind, ButtonSize, ButtonStatus } from '../button/types';\nimport { tv } from '@utils/tv';\n\n@Component({\n tag: 'bcm-button-group',\n styleUrl: 'button-group.css',\n shadow: true,\n})\nexport class BcmButtonGroup implements ComponentInterface {\n @Element() host: HTMLElement;\n\n /** Defines the main visual style of buttons */\n @Prop()\n kind?: ButtonKind;\n\n /** Controls the button size */\n @Prop()\n size?: ButtonSize;\n\n /** Defines the button's status/state color */\n @Prop()\n status?: ButtonStatus;\n\n /** Full width buttons */\n @Prop({ attribute: 'full-width', reflect: true })\n fullWidth?: boolean;\n\n /** Loading state */\n @Prop()\n loading?: boolean;\n\n /** Disabled state */\n @Prop()\n disabled?: boolean;\n\n /** Button orientation */\n @Prop({ reflect: true })\n orientation: 'horizontal' | 'vertical' = 'horizontal';\n\n componentDidLoad() {\n this.applyPropertiesToButtons();\n this.setButtonPositions();\n }\n\n componentDidUpdate() {\n this.applyPropertiesToButtons();\n this.setButtonPositions();\n }\n\n private applyPropertiesToButtons() {\n const buttons = this.host.querySelectorAll('bcm-button');\n\n buttons.forEach(button => {\n if (this.kind !== undefined) button.kind = this.kind;\n if (this.size !== undefined) button.size = this.size;\n if (this.status !== undefined) button.status = this.status;\n if (this.fullWidth !== undefined) button.fullWidth = this.fullWidth;\n if (this.loading !== undefined) button.loading = this.loading;\n if (this.disabled !== undefined) button.disabled = this.disabled;\n\n if (this.orientation === 'vertical') {\n button.classList.add('orientation-vertical');\n } else {\n button.classList.remove('orientation-vertical');\n }\n });\n }\n\n private setButtonPositions() {\n const buttons = this.host.querySelectorAll('bcm-button');\n const totalButtons = buttons.length;\n\n if (totalButtons === 0) return;\n\n buttons.forEach((button, index) => {\n if (totalButtons === 1) {\n button.position = null;\n } else if (index === 0) {\n button.position = 'first';\n } else if (index === totalButtons - 1) {\n button.position = 'last';\n } else {\n button.position = 'middle';\n }\n });\n }\n\n private buttonGroupClass = tv(\n {\n base: 'bcm-button-group',\n variants: {\n orientation: {\n horizontal: 'flex flex-row',\n vertical: 'flex flex-col',\n },\n fullWidth: {\n true: 'w-full',\n },\n },\n defaultVariants: {\n orientation: 'horizontal',\n },\n },\n {\n twMerge: false,\n },\n );\n\n render() {\n return (\n <Host>\n <div\n class={this.buttonGroupClass({\n orientation: this.orientation,\n fullWidth: this.fullWidth,\n })}\n >\n <slot></slot>\n </div>\n </Host>\n );\n }\n}\n"],"version":3}