bromcom-ui-next 0.1.4 → 0.1.6

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 (395) hide show
  1. package/dist/bromcom-ui/bromcom-ui.css +1 -1
  2. package/dist/bromcom-ui/bromcom-ui.esm.js +1 -1
  3. package/dist/bromcom-ui/bromcom-ui.esm.js.map +1 -1
  4. package/dist/bromcom-ui/p-0d0d6483.entry.js +2 -0
  5. package/dist/bromcom-ui/{p-3b607038.entry.js.map → p-0d0d6483.entry.js.map} +1 -1
  6. package/dist/bromcom-ui/p-13784cd7.entry.js +2 -0
  7. package/dist/bromcom-ui/p-13784cd7.entry.js.map +1 -0
  8. package/dist/bromcom-ui/p-13a245f6.js +2 -0
  9. package/dist/bromcom-ui/p-13a245f6.js.map +1 -0
  10. package/dist/bromcom-ui/p-25038cc8.entry.js +2 -0
  11. package/dist/bromcom-ui/p-25038cc8.entry.js.map +1 -0
  12. package/dist/bromcom-ui/p-308f865b.entry.js +2 -0
  13. package/dist/bromcom-ui/p-308f865b.entry.js.map +1 -0
  14. package/dist/bromcom-ui/p-385fa0f3.entry.js +2 -0
  15. package/dist/bromcom-ui/p-385fa0f3.entry.js.map +1 -0
  16. package/dist/bromcom-ui/p-389f1976.entry.js +2 -0
  17. package/dist/bromcom-ui/p-389f1976.entry.js.map +1 -0
  18. package/dist/bromcom-ui/p-3b230145.entry.js +2 -0
  19. package/dist/bromcom-ui/p-3b230145.entry.js.map +1 -0
  20. package/dist/bromcom-ui/p-49b0e982.entry.js +2 -0
  21. package/dist/bromcom-ui/p-49b0e982.entry.js.map +1 -0
  22. package/dist/bromcom-ui/p-55c4263c.entry.js +2 -0
  23. package/dist/bromcom-ui/p-55c4263c.entry.js.map +1 -0
  24. package/dist/bromcom-ui/{p-ebed10d5.entry.js → p-58ee24a8.entry.js} +2 -2
  25. package/dist/bromcom-ui/{p-ebed10d5.entry.js.map → p-58ee24a8.entry.js.map} +1 -1
  26. package/dist/bromcom-ui/p-729a870f.js.map +1 -1
  27. package/dist/bromcom-ui/p-9551c35e.entry.js +2 -0
  28. package/dist/bromcom-ui/p-9551c35e.entry.js.map +1 -0
  29. package/dist/bromcom-ui/p-9594cebb.js +2 -0
  30. package/dist/bromcom-ui/p-9594cebb.js.map +1 -0
  31. package/dist/bromcom-ui/p-98c76392.entry.js +2 -0
  32. package/dist/bromcom-ui/p-98c76392.entry.js.map +1 -0
  33. package/dist/bromcom-ui/p-a29e61a4.entry.js +2 -0
  34. package/dist/bromcom-ui/{p-cd437280.entry.js.map → p-a29e61a4.entry.js.map} +1 -1
  35. package/dist/bromcom-ui/p-ba2410ef.js +2 -0
  36. package/dist/bromcom-ui/p-ba2410ef.js.map +1 -0
  37. package/dist/bromcom-ui/p-bd0f7e78.entry.js +2 -0
  38. package/dist/bromcom-ui/p-bd0f7e78.entry.js.map +1 -0
  39. package/dist/bromcom-ui/p-bf69fc8a.entry.js +2 -0
  40. package/dist/bromcom-ui/p-bf69fc8a.entry.js.map +1 -0
  41. package/dist/bromcom-ui/{p-5d0838e9.entry.js → p-c1161950.entry.js} +2 -2
  42. package/dist/bromcom-ui/{p-5d0838e9.entry.js.map → p-c1161950.entry.js.map} +1 -1
  43. package/dist/bromcom-ui/p-c2b3945e.entry.js +2 -0
  44. package/dist/bromcom-ui/p-c2b3945e.entry.js.map +1 -0
  45. package/dist/bromcom-ui/p-c427ffee.entry.js +2 -0
  46. package/dist/bromcom-ui/{p-dcea8d62.entry.js.map → p-c427ffee.entry.js.map} +1 -1
  47. package/dist/bromcom-ui/p-c444235a.entry.js +2 -0
  48. package/dist/bromcom-ui/p-c444235a.entry.js.map +1 -0
  49. package/dist/bromcom-ui/p-c995a48c.entry.js +2 -0
  50. package/dist/bromcom-ui/p-c995a48c.entry.js.map +1 -0
  51. package/dist/bromcom-ui/p-c9b736d9.js +3 -0
  52. package/dist/{cjs/index-4795c073.js.map → bromcom-ui/p-c9b736d9.js.map} +1 -1
  53. package/dist/bromcom-ui/p-cd271b49.entry.js +2 -0
  54. package/dist/bromcom-ui/p-cd271b49.entry.js.map +1 -0
  55. package/dist/bromcom-ui/p-cee68279.entry.js +2 -0
  56. package/dist/bromcom-ui/{p-1d86c1cf.entry.js.map → p-cee68279.entry.js.map} +1 -1
  57. package/dist/bromcom-ui/{p-a590f793.entry.js → p-d57587e5.entry.js} +2 -2
  58. package/dist/bromcom-ui/{p-a590f793.entry.js.map → p-d57587e5.entry.js.map} +1 -1
  59. package/dist/bromcom-ui/p-e89ab4a7.entry.js +2 -0
  60. package/dist/bromcom-ui/p-e89ab4a7.entry.js.map +1 -0
  61. package/dist/bromcom-ui/{p-1b11150b.entry.js → p-f2d8aa70.entry.js} +2 -2
  62. package/dist/bromcom-ui/{p-1b11150b.entry.js.map → p-f2d8aa70.entry.js.map} +1 -1
  63. package/dist/bromcom-ui/p-f4e8a47d.entry.js +2 -0
  64. package/dist/bromcom-ui/p-f4e8a47d.entry.js.map +1 -0
  65. package/dist/cjs/app-globals-29edfda4.js.map +1 -1
  66. package/dist/cjs/bcm-accordion-group.cjs.entry.js +2 -2
  67. package/dist/cjs/bcm-accordion-group.cjs.entry.js.map +1 -1
  68. package/dist/cjs/bcm-accordion.cjs.entry.js +2 -2
  69. package/dist/cjs/bcm-accordion.cjs.entry.js.map +1 -1
  70. package/dist/cjs/bcm-alert.cjs.entry.js +2 -2
  71. package/dist/cjs/bcm-alert.cjs.entry.js.map +1 -1
  72. package/dist/cjs/bcm-avatar_4.cjs.entry.js +13 -7
  73. package/dist/cjs/bcm-avatar_4.cjs.entry.js.map +1 -1
  74. package/dist/cjs/bcm-button-group.cjs.entry.js +97 -0
  75. package/dist/cjs/bcm-button-group.cjs.entry.js.map +1 -0
  76. package/dist/cjs/bcm-checkbox.cjs.entry.js +226 -0
  77. package/dist/cjs/bcm-checkbox.cjs.entry.js.map +1 -0
  78. package/dist/cjs/bcm-chip.cjs.entry.js +3 -3
  79. package/dist/cjs/bcm-chip.cjs.entry.js.map +1 -1
  80. package/dist/cjs/bcm-divider.cjs.entry.js +3 -3
  81. package/dist/cjs/bcm-divider.cjs.entry.js.map +1 -1
  82. package/dist/cjs/bcm-dropdown-item.cjs.entry.js +63 -0
  83. package/dist/cjs/bcm-dropdown-item.cjs.entry.js.map +1 -0
  84. package/dist/cjs/bcm-dropdown.cjs.entry.js +56 -0
  85. package/dist/cjs/bcm-dropdown.cjs.entry.js.map +1 -0
  86. package/dist/cjs/bcm-input.cjs.entry.js +7 -6
  87. package/dist/cjs/bcm-input.cjs.entry.js.map +1 -1
  88. package/dist/cjs/bcm-linked.cjs.entry.js +91 -0
  89. package/dist/cjs/bcm-linked.cjs.entry.js.map +1 -0
  90. package/dist/cjs/bcm-pop-confirm.cjs.entry.js +252 -0
  91. package/dist/cjs/bcm-pop-confirm.cjs.entry.js.map +1 -0
  92. package/dist/cjs/bcm-popover.cjs.entry.js +191 -0
  93. package/dist/cjs/bcm-popover.cjs.entry.js.map +1 -0
  94. package/dist/cjs/bcm-radio-group.cjs.entry.js +171 -0
  95. package/dist/cjs/bcm-radio-group.cjs.entry.js.map +1 -0
  96. package/dist/cjs/bcm-radio.cjs.entry.js +173 -0
  97. package/dist/cjs/bcm-radio.cjs.entry.js.map +1 -0
  98. package/dist/cjs/bcm-segmented-picker-option.cjs.entry.js +109 -0
  99. package/dist/cjs/bcm-segmented-picker-option.cjs.entry.js.map +1 -0
  100. package/dist/cjs/bcm-segmented-picker.cjs.entry.js +146 -0
  101. package/dist/cjs/bcm-segmented-picker.cjs.entry.js.map +1 -0
  102. package/dist/cjs/bcm-switch.cjs.entry.js +188 -0
  103. package/dist/cjs/bcm-switch.cjs.entry.js.map +1 -0
  104. package/dist/cjs/bcm-tabs-content.cjs.entry.js +22 -0
  105. package/dist/cjs/bcm-tabs-content.cjs.entry.js.map +1 -0
  106. package/dist/cjs/bcm-tabs-list.cjs.entry.js +43 -0
  107. package/dist/cjs/bcm-tabs-list.cjs.entry.js.map +1 -0
  108. package/dist/cjs/bcm-tabs-trigger.cjs.entry.js +92 -0
  109. package/dist/cjs/bcm-tabs-trigger.cjs.entry.js.map +1 -0
  110. package/dist/cjs/bcm-tabs.cjs.entry.js +211 -0
  111. package/dist/cjs/bcm-tabs.cjs.entry.js.map +1 -0
  112. package/dist/cjs/bcm-text.cjs.entry.js +3 -3
  113. package/dist/cjs/bcm-text.cjs.entry.js.map +1 -1
  114. package/dist/cjs/bcm-textarea.cjs.entry.js +8 -7
  115. package/dist/cjs/bcm-textarea.cjs.entry.js.map +1 -1
  116. package/dist/cjs/bcm-tooltip.cjs.entry.js +187 -0
  117. package/dist/cjs/bcm-tooltip.cjs.entry.js.map +1 -0
  118. package/dist/cjs/bromcom-ui.cjs.js +2 -2
  119. package/dist/cjs/floating-ui.dom.esm-3ec8404c.js +2085 -0
  120. package/dist/cjs/floating-ui.dom.esm-3ec8404c.js.map +1 -0
  121. package/dist/{components/p-31354aaa.js → cjs/generate-id-f6982042.js} +4 -47
  122. package/dist/cjs/generate-id-f6982042.js.map +1 -0
  123. package/dist/cjs/{index-4795c073.js → index-9a2c5938.js} +36 -7
  124. package/dist/{bromcom-ui/p-15fe392b.js.map → cjs/index-9a2c5938.js.map} +1 -1
  125. package/dist/cjs/loader.cjs.js +2 -2
  126. package/dist/cjs/validation-messages-18389279.js +52 -0
  127. package/dist/cjs/validation-messages-18389279.js.map +1 -0
  128. package/dist/collection/collection-manifest.json +18 -1
  129. package/dist/collection/components/accordion/accordion.css +1 -1
  130. package/dist/collection/components/accordion-group/accordion-group.css +1 -1
  131. package/dist/collection/components/alert/alert.css +1 -1
  132. package/dist/collection/components/avatar/avatar.css +1 -1
  133. package/dist/collection/components/badge/badge.css +1 -1
  134. package/dist/collection/components/basic-badge/basic-badge.css +1 -1
  135. package/dist/collection/components/button/button.component.js +33 -2
  136. package/dist/collection/components/button/button.component.js.map +1 -1
  137. package/dist/collection/components/button/button.css +1 -1
  138. package/dist/collection/components/button/types.js.map +1 -1
  139. package/dist/collection/components/button-group/button-group.component.js +252 -0
  140. package/dist/collection/components/button-group/button-group.component.js.map +1 -0
  141. package/dist/collection/components/button-group/button-group.css +1 -0
  142. package/dist/collection/components/button-group/types.js +2 -0
  143. package/dist/collection/components/button-group/types.js.map +1 -0
  144. package/dist/collection/components/checkbox/checkbox.component.js +440 -0
  145. package/dist/collection/components/checkbox/checkbox.component.js.map +1 -0
  146. package/dist/collection/components/checkbox/checkbox.css +1 -0
  147. package/dist/collection/components/chip/chip.component.js +1 -1
  148. package/dist/collection/components/chip/chip.css +1 -1
  149. package/dist/collection/components/divider/divider.component.js +1 -1
  150. package/dist/collection/components/divider/divider.css +1 -1
  151. package/dist/collection/components/dropdown/dropdown.component.js +110 -0
  152. package/dist/collection/components/dropdown/dropdown.component.js.map +1 -0
  153. package/dist/collection/components/dropdown/dropdown.css +1 -0
  154. package/dist/collection/components/dropdown-item/dropdown-item.component.js +198 -0
  155. package/dist/collection/components/dropdown-item/dropdown-item.component.js.map +1 -0
  156. package/dist/collection/components/dropdown-item/dropdown-item.css +1 -0
  157. package/dist/collection/components/input/input.component.js +2 -2
  158. package/dist/collection/components/input/input.css +1 -1
  159. package/dist/collection/components/linked/linked.component.js +140 -0
  160. package/dist/collection/components/linked/linked.component.js.map +1 -0
  161. package/dist/collection/components/linked/linked.css +1 -0
  162. package/dist/collection/components/pop-confirm/pop-confirm.component.js +629 -0
  163. package/dist/collection/components/pop-confirm/pop-confirm.component.js.map +1 -0
  164. package/dist/collection/components/pop-confirm/pop-confirm.css +1 -0
  165. package/dist/collection/components/popover/popover.component.js +477 -0
  166. package/dist/collection/components/popover/popover.component.js.map +1 -0
  167. package/dist/collection/components/popover/popover.css +1 -0
  168. package/dist/collection/components/radio/radio.component.js +502 -0
  169. package/dist/collection/components/radio/radio.component.js.map +1 -0
  170. package/dist/collection/components/radio/radio.css +1 -0
  171. package/dist/collection/components/radio-group/radio-group.component.js +523 -0
  172. package/dist/collection/components/radio-group/radio-group.component.js.map +1 -0
  173. package/dist/collection/components/radio-group/radio-group.css +1 -0
  174. package/dist/collection/components/segmented-picker/segmented-picker-option.component.js +253 -0
  175. package/dist/collection/components/segmented-picker/segmented-picker-option.component.js.map +1 -0
  176. package/dist/collection/components/segmented-picker/segmented-picker-option.css +1 -0
  177. package/dist/collection/components/segmented-picker/segmented-picker.component.js +269 -0
  178. package/dist/collection/components/segmented-picker/segmented-picker.component.js.map +1 -0
  179. package/dist/collection/components/segmented-picker/segmented-picker.css +1 -0
  180. package/dist/collection/components/segmented-picker/types.js +2 -0
  181. package/dist/collection/components/segmented-picker/types.js.map +1 -0
  182. package/dist/collection/components/switch/switch.component.js +452 -0
  183. package/dist/collection/components/switch/switch.component.js.map +1 -0
  184. package/dist/collection/components/switch/switch.css +1 -0
  185. package/dist/collection/components/tabs/bcm-tabs.css +1 -0
  186. package/dist/collection/components/tabs/tabs-content.component.js +46 -0
  187. package/dist/collection/components/tabs/tabs-content.component.js.map +1 -0
  188. package/dist/collection/components/tabs/tabs-content.css +1 -0
  189. package/dist/collection/components/tabs/tabs-list.component.js +46 -0
  190. package/dist/collection/components/tabs/tabs-list.component.js.map +1 -0
  191. package/dist/collection/components/tabs/tabs-list.css +1 -0
  192. package/dist/collection/components/tabs/tabs-trigger.component.js +195 -0
  193. package/dist/collection/components/tabs/tabs-trigger.component.js.map +1 -0
  194. package/dist/collection/components/tabs/tabs-trigger.css +1 -0
  195. package/dist/collection/components/tabs/tabs.component.js +422 -0
  196. package/dist/collection/components/tabs/tabs.component.js.map +1 -0
  197. package/dist/collection/components/text/text.component.js +1 -1
  198. package/dist/collection/components/text/text.css +1 -1
  199. package/dist/collection/components/textarea/textarea.component.js +3 -3
  200. package/dist/collection/components/textarea/textarea.css +1 -1
  201. package/dist/collection/components/tooltip/tooltip.component.js +385 -0
  202. package/dist/collection/components/tooltip/tooltip.component.js.map +1 -0
  203. package/dist/collection/components/tooltip/tooltip.css +1 -0
  204. package/dist/collection/styles/theme-variables.js +29 -0
  205. package/dist/collection/styles/theme-variables.js.map +1 -1
  206. package/dist/components/bcm-accordion-group.js +2 -2
  207. package/dist/components/bcm-accordion-group.js.map +1 -1
  208. package/dist/components/bcm-accordion.js +2 -2
  209. package/dist/components/bcm-accordion.js.map +1 -1
  210. package/dist/components/bcm-alert.js +2 -2
  211. package/dist/components/bcm-alert.js.map +1 -1
  212. package/dist/components/bcm-avatar.js +3 -3
  213. package/dist/components/bcm-avatar.js.map +1 -1
  214. package/dist/components/bcm-badge.js +1 -1
  215. package/dist/components/bcm-basic-badge.js +2 -2
  216. package/dist/components/bcm-basic-badge.js.map +1 -1
  217. package/dist/components/bcm-button-group.d.ts +11 -0
  218. package/dist/components/bcm-button-group.js +120 -0
  219. package/dist/components/bcm-button-group.js.map +1 -0
  220. package/dist/components/bcm-button.js +1 -327
  221. package/dist/components/bcm-button.js.map +1 -1
  222. package/dist/components/bcm-checkbox.d.ts +11 -0
  223. package/dist/components/bcm-checkbox.js +256 -0
  224. package/dist/components/bcm-checkbox.js.map +1 -0
  225. package/dist/components/bcm-chip.js +3 -3
  226. package/dist/components/bcm-chip.js.map +1 -1
  227. package/dist/components/bcm-divider.js +3 -3
  228. package/dist/components/bcm-divider.js.map +1 -1
  229. package/dist/components/bcm-dropdown-item.d.ts +11 -0
  230. package/dist/components/bcm-dropdown-item.js +85 -0
  231. package/dist/components/bcm-dropdown-item.js.map +1 -0
  232. package/dist/components/bcm-dropdown.d.ts +11 -0
  233. package/dist/components/bcm-dropdown.js +87 -0
  234. package/dist/components/bcm-dropdown.js.map +1 -0
  235. package/dist/components/bcm-input.js +6 -5
  236. package/dist/components/bcm-input.js.map +1 -1
  237. package/dist/components/bcm-linked.d.ts +11 -0
  238. package/dist/components/bcm-linked.js +8 -0
  239. package/dist/components/bcm-linked.js.map +1 -0
  240. package/dist/components/bcm-pop-confirm.d.ts +11 -0
  241. package/dist/components/bcm-pop-confirm.js +288 -0
  242. package/dist/components/bcm-pop-confirm.js.map +1 -0
  243. package/dist/components/bcm-popover.d.ts +11 -0
  244. package/dist/components/bcm-popover.js +216 -0
  245. package/dist/components/bcm-popover.js.map +1 -0
  246. package/dist/components/bcm-radio-group.d.ts +11 -0
  247. package/dist/components/bcm-radio-group.js +200 -0
  248. package/dist/components/bcm-radio-group.js.map +1 -0
  249. package/dist/components/bcm-radio.d.ts +11 -0
  250. package/dist/components/bcm-radio.js +198 -0
  251. package/dist/components/bcm-radio.js.map +1 -0
  252. package/dist/components/bcm-segmented-picker-option.d.ts +11 -0
  253. package/dist/components/bcm-segmented-picker-option.js +131 -0
  254. package/dist/components/bcm-segmented-picker-option.js.map +1 -0
  255. package/dist/components/bcm-segmented-picker.d.ts +11 -0
  256. package/dist/components/bcm-segmented-picker.js +170 -0
  257. package/dist/components/bcm-segmented-picker.js.map +1 -0
  258. package/dist/components/bcm-switch.d.ts +11 -0
  259. package/dist/components/bcm-switch.js +215 -0
  260. package/dist/components/bcm-switch.js.map +1 -0
  261. package/dist/components/bcm-tabs-content.d.ts +11 -0
  262. package/dist/components/bcm-tabs-content.js +39 -0
  263. package/dist/components/bcm-tabs-content.js.map +1 -0
  264. package/dist/components/bcm-tabs-list.d.ts +11 -0
  265. package/dist/components/bcm-tabs-list.js +58 -0
  266. package/dist/components/bcm-tabs-list.js.map +1 -0
  267. package/dist/components/bcm-tabs-trigger.d.ts +11 -0
  268. package/dist/components/bcm-tabs-trigger.js +112 -0
  269. package/dist/components/bcm-tabs-trigger.js.map +1 -0
  270. package/dist/components/bcm-tabs.d.ts +11 -0
  271. package/dist/components/bcm-tabs.js +239 -0
  272. package/dist/components/bcm-tabs.js.map +1 -0
  273. package/dist/components/bcm-text.js +3 -3
  274. package/dist/components/bcm-text.js.map +1 -1
  275. package/dist/components/bcm-textarea.js +7 -6
  276. package/dist/components/bcm-textarea.js.map +1 -1
  277. package/dist/components/bcm-tooltip.d.ts +11 -0
  278. package/dist/components/bcm-tooltip.js +211 -0
  279. package/dist/components/bcm-tooltip.js.map +1 -0
  280. package/dist/components/index.js +1 -1
  281. package/dist/components/p-13a245f6.js +48 -0
  282. package/dist/components/p-13a245f6.js.map +1 -0
  283. package/dist/components/{p-39637e05.js → p-49f20ff7.js} +3 -3
  284. package/dist/components/{p-39637e05.js.map → p-49f20ff7.js.map} +1 -1
  285. package/dist/components/{p-13582168.js → p-5377117d.js} +32 -6
  286. package/dist/components/p-5377117d.js.map +1 -0
  287. package/dist/components/p-5f7a0d0d.js +107 -0
  288. package/dist/components/p-5f7a0d0d.js.map +1 -0
  289. package/dist/components/p-9594cebb.js +2078 -0
  290. package/dist/components/p-9594cebb.js.map +1 -0
  291. package/dist/{esm/validation-messages-a29d53be.js → components/p-ba2410ef.js} +2 -47
  292. package/dist/components/p-ba2410ef.js.map +1 -0
  293. package/dist/components/p-c3a60937.js +338 -0
  294. package/dist/components/p-c3a60937.js.map +1 -0
  295. package/dist/esm/app-globals-bfa07b76.js.map +1 -1
  296. package/dist/esm/bcm-accordion-group.entry.js +2 -2
  297. package/dist/esm/bcm-accordion-group.entry.js.map +1 -1
  298. package/dist/esm/bcm-accordion.entry.js +2 -2
  299. package/dist/esm/bcm-accordion.entry.js.map +1 -1
  300. package/dist/esm/bcm-alert.entry.js +2 -2
  301. package/dist/esm/bcm-alert.entry.js.map +1 -1
  302. package/dist/esm/bcm-avatar_4.entry.js +13 -7
  303. package/dist/esm/bcm-avatar_4.entry.js.map +1 -1
  304. package/dist/esm/bcm-button-group.entry.js +93 -0
  305. package/dist/esm/bcm-button-group.entry.js.map +1 -0
  306. package/dist/esm/bcm-checkbox.entry.js +222 -0
  307. package/dist/esm/bcm-checkbox.entry.js.map +1 -0
  308. package/dist/esm/bcm-chip.entry.js +3 -3
  309. package/dist/esm/bcm-chip.entry.js.map +1 -1
  310. package/dist/esm/bcm-divider.entry.js +3 -3
  311. package/dist/esm/bcm-divider.entry.js.map +1 -1
  312. package/dist/esm/bcm-dropdown-item.entry.js +59 -0
  313. package/dist/esm/bcm-dropdown-item.entry.js.map +1 -0
  314. package/dist/esm/bcm-dropdown.entry.js +52 -0
  315. package/dist/esm/bcm-dropdown.entry.js.map +1 -0
  316. package/dist/esm/bcm-input.entry.js +6 -5
  317. package/dist/esm/bcm-input.entry.js.map +1 -1
  318. package/dist/esm/bcm-linked.entry.js +87 -0
  319. package/dist/esm/bcm-linked.entry.js.map +1 -0
  320. package/dist/esm/bcm-pop-confirm.entry.js +248 -0
  321. package/dist/esm/bcm-pop-confirm.entry.js.map +1 -0
  322. package/dist/esm/bcm-popover.entry.js +187 -0
  323. package/dist/esm/bcm-popover.entry.js.map +1 -0
  324. package/dist/esm/bcm-radio-group.entry.js +167 -0
  325. package/dist/esm/bcm-radio-group.entry.js.map +1 -0
  326. package/dist/esm/bcm-radio.entry.js +169 -0
  327. package/dist/esm/bcm-radio.entry.js.map +1 -0
  328. package/dist/esm/bcm-segmented-picker-option.entry.js +105 -0
  329. package/dist/esm/bcm-segmented-picker-option.entry.js.map +1 -0
  330. package/dist/esm/bcm-segmented-picker.entry.js +142 -0
  331. package/dist/esm/bcm-segmented-picker.entry.js.map +1 -0
  332. package/dist/esm/bcm-switch.entry.js +184 -0
  333. package/dist/esm/bcm-switch.entry.js.map +1 -0
  334. package/dist/esm/bcm-tabs-content.entry.js +18 -0
  335. package/dist/esm/bcm-tabs-content.entry.js.map +1 -0
  336. package/dist/esm/bcm-tabs-list.entry.js +39 -0
  337. package/dist/esm/bcm-tabs-list.entry.js.map +1 -0
  338. package/dist/esm/bcm-tabs-trigger.entry.js +88 -0
  339. package/dist/esm/bcm-tabs-trigger.entry.js.map +1 -0
  340. package/dist/esm/bcm-tabs.entry.js +207 -0
  341. package/dist/esm/bcm-tabs.entry.js.map +1 -0
  342. package/dist/esm/bcm-text.entry.js +3 -3
  343. package/dist/esm/bcm-text.entry.js.map +1 -1
  344. package/dist/esm/bcm-textarea.entry.js +7 -6
  345. package/dist/esm/bcm-textarea.entry.js.map +1 -1
  346. package/dist/esm/bcm-tooltip.entry.js +183 -0
  347. package/dist/esm/bcm-tooltip.entry.js.map +1 -0
  348. package/dist/esm/bromcom-ui.js +3 -3
  349. package/dist/esm/floating-ui.dom.esm-480e0f15.js +2078 -0
  350. package/dist/esm/floating-ui.dom.esm-480e0f15.js.map +1 -0
  351. package/dist/{cjs/validation-messages-c36e5c31.js → esm/generate-id-3b2fcb93.js} +2 -52
  352. package/dist/esm/generate-id-3b2fcb93.js.map +1 -0
  353. package/dist/esm/{index-27cc1bac.js → index-8571fbf7.js} +36 -8
  354. package/dist/esm/index-8571fbf7.js.map +1 -0
  355. package/dist/esm/loader.js +3 -3
  356. package/dist/esm/validation-messages-af4512f0.js +48 -0
  357. package/dist/esm/validation-messages-af4512f0.js.map +1 -0
  358. package/dist/types/components/button/button.component.d.ts +3 -1
  359. package/dist/types/components/button/types.d.ts +4 -4
  360. package/dist/types/components/button-group/button-group.component.d.ts +25 -0
  361. package/dist/types/components/button-group/types.d.ts +2 -0
  362. package/dist/types/components/checkbox/checkbox.component.d.ts +99 -0
  363. package/dist/types/components/dropdown/dropdown.component.d.ts +14 -0
  364. package/dist/types/components/dropdown-item/dropdown-item.component.d.ts +14 -0
  365. package/dist/types/components/linked/linked.component.d.ts +16 -0
  366. package/dist/types/components/pop-confirm/pop-confirm.component.d.ts +195 -0
  367. package/dist/types/components/popover/popover.component.d.ts +118 -0
  368. package/dist/types/components/radio/radio.component.d.ts +105 -0
  369. package/dist/types/components/radio-group/radio-group.component.d.ts +124 -0
  370. package/dist/types/components/segmented-picker/segmented-picker-option.component.d.ts +30 -0
  371. package/dist/types/components/segmented-picker/segmented-picker.component.d.ts +35 -0
  372. package/dist/types/components/segmented-picker/types.d.ts +1 -0
  373. package/dist/types/components/switch/switch.component.d.ts +62 -0
  374. package/dist/types/components/tabs/tabs-content.component.d.ts +13 -0
  375. package/dist/types/components/tabs/tabs-list.component.d.ts +12 -0
  376. package/dist/types/components/tabs/tabs-trigger.component.d.ts +41 -0
  377. package/dist/types/components/tabs/tabs.component.d.ts +88 -0
  378. package/dist/types/components/tooltip/tooltip.component.d.ts +86 -0
  379. package/dist/types/components.d.ts +2495 -649
  380. package/dist/types/styles/theme-variables.d.ts +29 -0
  381. package/package.json +2 -1
  382. package/dist/bromcom-ui/p-04f6d730.entry.js +0 -2
  383. package/dist/bromcom-ui/p-04f6d730.entry.js.map +0 -1
  384. package/dist/bromcom-ui/p-15fe392b.js +0 -3
  385. package/dist/bromcom-ui/p-1d86c1cf.entry.js +0 -2
  386. package/dist/bromcom-ui/p-31354aaa.js +0 -2
  387. package/dist/bromcom-ui/p-31354aaa.js.map +0 -1
  388. package/dist/bromcom-ui/p-3b607038.entry.js +0 -2
  389. package/dist/bromcom-ui/p-cd437280.entry.js +0 -2
  390. package/dist/bromcom-ui/p-dcea8d62.entry.js +0 -2
  391. package/dist/cjs/validation-messages-c36e5c31.js.map +0 -1
  392. package/dist/components/p-13582168.js.map +0 -1
  393. package/dist/components/p-31354aaa.js.map +0 -1
  394. package/dist/esm/index-27cc1bac.js.map +0 -1
  395. package/dist/esm/validation-messages-a29d53be.js.map +0 -1
@@ -0,0 +1,211 @@
1
+ import { p as proxyCustomElement, H, h } from './p-5377117d.js';
2
+ import { b as autoUpdate, c as computePosition, o as offset, f as flip, s as shift, a as arrow } from './p-9594cebb.js';
3
+ import { c as ce } from './p-5fcf77f9.js';
4
+
5
+ const tooltipCss = ":host{--tooltip-bg:var(--bcm-ui-color-background-default-dark-default)}.bcm-ui-element{-webkit-font-smoothing:antialiased;-moz-osx-font-smoothing:grayscale;font-family:Inter,sans-serif}.static{position:static}.absolute{position:absolute}.relative{position:relative}.z-\\[-1\\]{z-index:-1}.z-\\[9999\\]{z-index:9999}.block{display:block}.hidden{display:none}.h-4{height:1rem}.w-4{width:1rem}.min-w-max{min-width:max-content}.rotate-45{--tw-rotate:45deg}.rotate-45,.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))}.rounded-md{border-radius:var(--bcm-ui-border-radius-md,6px)}.bg-\\[--tooltip-bg\\]{background-color:var(--tooltip-bg)}.px-3{padding-left:.75rem;padding-right:.75rem}.py-1{padding-bottom:.25rem;padding-top:.25rem}.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-medium{font-weight:500}.text-color-base{color:var(--bcm-ui-color-text-base)}.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)}";
6
+ const BcmTooltipStyle0 = tooltipCss;
7
+
8
+ const Tooltip = /*@__PURE__*/ proxyCustomElement(class Tooltip extends H {
9
+ constructor() {
10
+ super();
11
+ this.__registerHost();
12
+ this.__attachShadow();
13
+ /**
14
+ * @prop {('click' | 'hover')} trigger - Defines the interaction type to show/hide the tooltip.
15
+ * 'click' toggles on click, 'hover' shows on mouse enter and hides on mouse leave.
16
+ * Default: 'hover'
17
+ */
18
+ this.trigger = 'hover';
19
+ /**
20
+ * @prop {('top' | 'right' | 'bottom' | 'left')} placement - Defines the position of the tooltip relative to the target element.
21
+ * Default: 'top'
22
+ */
23
+ this.placement = 'top';
24
+ /**
25
+ * @prop {('small' | 'medium' | 'large')} size - Defines the size of the tooltip.
26
+ * Controls the text size and padding of the tooltip content.
27
+ * Default: 'medium'
28
+ */
29
+ this.size = 'medium';
30
+ /**
31
+ * @prop {number} showDelay - Delay in milliseconds before showing or hiding the tooltip.
32
+ * Helps prevent flickering on quick mouse movements.
33
+ * Default: 150
34
+ */
35
+ this.showDelay = 150;
36
+ this.open = false;
37
+ this.toggleTooltip = () => {
38
+ this.open = !this.open;
39
+ this.updateOutsideClickListener();
40
+ };
41
+ this.showTooltip = () => {
42
+ clearTimeout(this.hoverTimeout);
43
+ this.hoverTimeout = setTimeout(() => {
44
+ this.open = true;
45
+ this.updateOutsideClickListener();
46
+ }, this.showDelay);
47
+ };
48
+ this.hideTooltip = () => {
49
+ clearTimeout(this.hoverTimeout);
50
+ this.hoverTimeout = setTimeout(() => {
51
+ this.open = false;
52
+ this.updateOutsideClickListener();
53
+ }, this.showDelay);
54
+ };
55
+ this.handleSlotChange = () => {
56
+ const slot = this.el.shadowRoot.querySelector('slot');
57
+ const elements = slot.assignedElements();
58
+ this.targetElement = elements[0];
59
+ if (this.targetElement) {
60
+ this.targetElement.removeEventListener('click', this.toggleTooltip);
61
+ this.targetElement.removeEventListener('mouseenter', this.showTooltip);
62
+ this.targetElement.removeEventListener('mouseleave', this.hideTooltip);
63
+ if (this.trigger === 'click') {
64
+ this.targetElement.addEventListener('click', this.toggleTooltip);
65
+ this.targetElement.setAttribute('aria-expanded', this.open.toString());
66
+ this.targetElement.setAttribute('aria-describedby', 'tooltip');
67
+ }
68
+ if (this.trigger === 'hover') {
69
+ this.targetElement.addEventListener('mouseenter', this.showTooltip);
70
+ this.targetElement.addEventListener('mouseleave', this.hideTooltip);
71
+ this.targetElement.setAttribute('aria-describedby', 'tooltip');
72
+ }
73
+ if (this.tooltipElement && !this.cleanupAutoUpdate) {
74
+ this.cleanupAutoUpdate = autoUpdate(this.targetElement, this.tooltipElement, () => this.updatePosition(), { animationFrame: false });
75
+ }
76
+ }
77
+ };
78
+ this.handleOutsideClick = (event) => {
79
+ if (!this.el.contains(event.target) && this.open) {
80
+ this.open = false;
81
+ this.updateOutsideClickListener();
82
+ }
83
+ };
84
+ this.updatePosition = async () => {
85
+ if (!this.targetElement || !this.tooltipElement || !this.arrowElement)
86
+ return;
87
+ const { x, y, placement, middlewareData } = await computePosition(this.targetElement, this.tooltipElement, {
88
+ placement: this.placement,
89
+ middleware: [
90
+ offset(12),
91
+ flip({ fallbackPlacements: ['top', 'left', 'bottom', 'right'] }),
92
+ shift({ padding: 8 }),
93
+ arrow({ element: this.arrowElement }),
94
+ ],
95
+ });
96
+ Object.assign(this.tooltipElement.style, {
97
+ left: `${x}px`,
98
+ top: `${y}px`,
99
+ });
100
+ const { x: arrowX, y: arrowY } = middlewareData.arrow || { x: 0, y: 0 };
101
+ const basePlacement = placement.split('-')[0];
102
+ const staticSide = {
103
+ top: 'bottom',
104
+ right: 'left',
105
+ bottom: 'top',
106
+ left: 'right',
107
+ }[basePlacement];
108
+ Object.assign(this.arrowElement.style, {
109
+ left: arrowX != null ? `${arrowX}px` : '',
110
+ top: arrowY != null ? `${arrowY}px` : '',
111
+ [staticSide]: '-4px',
112
+ });
113
+ };
114
+ this.tooltipClass = ce({
115
+ slots: {
116
+ tooltip: 'bcm-ui-element bcm-tooltip absolute bg-[--tooltip-bg] rounded-md shadow-3 py-1 px-3 min-w-max z-[9999] text-color-base font-medium',
117
+ arrow: 'absolute w-4 h-4 bg-[--tooltip-bg] transform rotate-45 z-[-1]',
118
+ },
119
+ variants: {
120
+ size: {
121
+ small: { tooltip: 'text-size-3' },
122
+ medium: { tooltip: 'text-size-4' },
123
+ large: { tooltip: 'text-size-5' },
124
+ },
125
+ isOpen: {
126
+ true: { tooltip: 'block' },
127
+ false: { tooltip: 'hidden' },
128
+ },
129
+ },
130
+ defaultVariants: {
131
+ size: 'medium',
132
+ isOpen: false,
133
+ },
134
+ }, { twMerge: false });
135
+ }
136
+ disconnectedCallback() {
137
+ var _a;
138
+ document.removeEventListener('click', this.handleOutsideClick);
139
+ if (this.targetElement) {
140
+ this.targetElement.removeEventListener('click', this.toggleTooltip);
141
+ this.targetElement.removeEventListener('mouseenter', this.showTooltip);
142
+ this.targetElement.removeEventListener('mouseleave', this.hideTooltip);
143
+ }
144
+ (_a = this.cleanupAutoUpdate) === null || _a === void 0 ? void 0 : _a.call(this);
145
+ this.cleanupAutoUpdate = null;
146
+ clearTimeout(this.hoverTimeout);
147
+ }
148
+ updateOutsideClickListener() {
149
+ if (this.open) {
150
+ document.addEventListener('click', this.handleOutsideClick);
151
+ }
152
+ else {
153
+ document.removeEventListener('click', this.handleOutsideClick);
154
+ }
155
+ }
156
+ /**
157
+ * @method {Promise<void>} openTooltip - Programmatically opens the tooltip.
158
+ * Triggers the showTooltip logic with the specified delay.
159
+ * @returns {Promise<void>} A promise that resolves when the tooltip is opened.
160
+ */
161
+ async openTooltip() {
162
+ this.showTooltip();
163
+ }
164
+ /**
165
+ * @method {Promise<void>} closeTooltip - Programmatically closes the tooltip.
166
+ * Triggers the hideTooltip logic with the specified delay.
167
+ * @returns {Promise<void>} A promise that resolves when the tooltip is closed.
168
+ */
169
+ async closeTooltip() {
170
+ this.hideTooltip();
171
+ }
172
+ render() {
173
+ const { tooltip, arrow } = this.tooltipClass({
174
+ size: this.size,
175
+ isOpen: this.open,
176
+ });
177
+ return (h("div", { key: 'ec1364939788f2b7f08b41701e531d4d0dfcb210', class: "relative" }, h("slot", { key: '6f306a622969246c95f0bcaa3090eec851a36482', onSlotchange: () => this.handleSlotChange() }), h("div", { key: '4a84252e30beca5fa65044235759fa2a6b99740e', role: "tooltip", class: tooltip(), ref: (el) => (this.tooltipElement = el), part: "tooltip" }, h("div", { key: '5593a61678ec37c40f20bc51af7ee4c249ea0f0a', class: arrow(), ref: (el) => (this.arrowElement = el), part: "arrow" }), h("slot", { key: 'dd4a200eaa7ae61b12b19491355b303633eda445', name: "tooltip" }, this.message))));
178
+ }
179
+ get el() { return this; }
180
+ static get style() { return BcmTooltipStyle0; }
181
+ }, [1, "bcm-tooltip", {
182
+ "trigger": [1],
183
+ "placement": [1],
184
+ "size": [1],
185
+ "message": [1],
186
+ "showDelay": [2, "show-delay"],
187
+ "open": [32],
188
+ "openTooltip": [64],
189
+ "closeTooltip": [64]
190
+ }]);
191
+ function defineCustomElement$1() {
192
+ if (typeof customElements === "undefined") {
193
+ return;
194
+ }
195
+ const components = ["bcm-tooltip"];
196
+ components.forEach(tagName => { switch (tagName) {
197
+ case "bcm-tooltip":
198
+ if (!customElements.get(tagName)) {
199
+ customElements.define(tagName, Tooltip);
200
+ }
201
+ break;
202
+ } });
203
+ }
204
+ defineCustomElement$1();
205
+
206
+ const BcmTooltip = Tooltip;
207
+ const defineCustomElement = defineCustomElement$1;
208
+
209
+ export { BcmTooltip, defineCustomElement };
210
+
211
+ //# sourceMappingURL=bcm-tooltip.js.map
@@ -0,0 +1 @@
1
+ {"file":"bcm-tooltip.js","mappings":"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","names":["tv"],"sources":["src/components/tooltip/tooltip.css?tag=bcm-tooltip&encapsulation=shadow","src/components/tooltip/tooltip.component.tsx"],"sourcesContent":[":host {\n --tooltip-bg: var(--bcm-ui-color-background-default-dark-default);\n}\n","import { arrow, autoUpdate, computePosition, flip, offset, shift } from '@floating-ui/dom';\nimport { Component, ComponentInterface, h, Element, Prop, State, Method } from '@stencil/core';\nimport { tv } from 'tailwind-variants';\n\n/**\n * @component BcmTooltip\n * @description A lightweight tooltip component that displays brief contextual information when hovering or clicking on a target element.\n * Supports different sizes, trigger types (click or hover), placements (top, right, bottom, left), and can be controlled via slots or props.\n *\n * @example Basic Hover Tooltip\n * <bcm-tooltip trigger=\"hover\" size=\"medium\" placement=\"top\" message=\"This is a tooltip.\">\n * <bcm-button>Hover Me</bcm-button>\n * </bcm-tooltip>\n *\n * @example Click Tooltip with Programmatic Control\n * <bcm-tooltip id=\"my-tooltip\" trigger=\"click\" message=\"Controlled tooltip.\">\n * <bcm-button>Click Me</bcm-button>\n * </bcm-tooltip>\n * <script>\n * const tooltip = document.querySelector('#my-tooltip');\n * tooltip.openTooltip(); // Opens the tooltip\n * tooltip.closeTooltip(); // Closes the tooltip\n * </script>\n *\n * @slot - Default slot for the target element that triggers the tooltip\n * @slot tooltip - Slot for custom tooltip content\n *\n * @csspart tooltip - The root tooltip container element, stylable for the entire tooltip\n * @csspart arrow - The arrow element of the tooltip, stylable for the positioning arrow\n */\n\n@Component({\n tag: 'bcm-tooltip',\n styleUrl: 'tooltip.css',\n shadow: true,\n})\nexport class Tooltip implements ComponentInterface {\n @Element() el: HTMLElement;\n\n /**\n * @prop {('click' | 'hover')} trigger - Defines the interaction type to show/hide the tooltip.\n * 'click' toggles on click, 'hover' shows on mouse enter and hides on mouse leave.\n * Default: 'hover'\n */\n @Prop()\n trigger: 'click' | 'hover' = 'hover';\n\n /**\n * @prop {('top' | 'right' | 'bottom' | 'left')} placement - Defines the position of the tooltip relative to the target element.\n * Default: 'top'\n */\n @Prop()\n placement: 'top' | 'right' | 'bottom' | 'left' = 'top';\n\n /**\n * @prop {('small' | 'medium' | 'large')} size - Defines the size of the tooltip.\n * Controls the text size and padding of the tooltip content.\n * Default: 'medium'\n */\n @Prop()\n size: 'small' | 'medium' | 'large' = 'medium';\n\n /**\n * @prop {string} message - Custom text for the tooltip content.\n * Used as fallback content if the 'tooltip' slot is not provided.\n */\n @Prop()\n message: string;\n\n /**\n * @prop {number} showDelay - Delay in milliseconds before showing or hiding the tooltip.\n * Helps prevent flickering on quick mouse movements.\n * Default: 150\n */\n @Prop()\n showDelay: number = 150;\n\n @State() open = false;\n\n private tooltipElement: HTMLElement;\n private arrowElement: HTMLElement;\n private targetElement: HTMLElement;\n private hoverTimeout: any;\n private cleanupAutoUpdate: () => void;\n\n disconnectedCallback() {\n document.removeEventListener('click', this.handleOutsideClick);\n if (this.targetElement) {\n this.targetElement.removeEventListener('click', this.toggleTooltip);\n this.targetElement.removeEventListener('mouseenter', this.showTooltip);\n this.targetElement.removeEventListener('mouseleave', this.hideTooltip);\n }\n this.cleanupAutoUpdate?.();\n this.cleanupAutoUpdate = null;\n clearTimeout(this.hoverTimeout);\n }\n\n private updateOutsideClickListener() {\n if (this.open) {\n document.addEventListener('click', this.handleOutsideClick);\n } else {\n document.removeEventListener('click', this.handleOutsideClick);\n }\n }\n\n private toggleTooltip = () => {\n this.open = !this.open;\n this.updateOutsideClickListener();\n };\n\n private showTooltip = () => {\n clearTimeout(this.hoverTimeout);\n this.hoverTimeout = setTimeout(() => {\n this.open = true;\n this.updateOutsideClickListener();\n }, this.showDelay);\n };\n\n private hideTooltip = () => {\n clearTimeout(this.hoverTimeout);\n this.hoverTimeout = setTimeout(() => {\n this.open = false;\n this.updateOutsideClickListener();\n }, this.showDelay);\n };\n\n /**\n * @method {Promise<void>} openTooltip - Programmatically opens the tooltip.\n * Triggers the showTooltip logic with the specified delay.\n * @returns {Promise<void>} A promise that resolves when the tooltip is opened.\n */\n @Method()\n async openTooltip() {\n this.showTooltip();\n }\n\n /**\n * @method {Promise<void>} closeTooltip - Programmatically closes the tooltip.\n * Triggers the hideTooltip logic with the specified delay.\n * @returns {Promise<void>} A promise that resolves when the tooltip is closed.\n */\n @Method()\n async closeTooltip() {\n this.hideTooltip();\n }\n\n private handleSlotChange = () => {\n const slot = this.el.shadowRoot.querySelector('slot');\n const elements = slot.assignedElements();\n this.targetElement = elements[0] as HTMLElement;\n\n if (this.targetElement) {\n this.targetElement.removeEventListener('click', this.toggleTooltip);\n this.targetElement.removeEventListener('mouseenter', this.showTooltip);\n this.targetElement.removeEventListener('mouseleave', this.hideTooltip);\n\n if (this.trigger === 'click') {\n this.targetElement.addEventListener('click', this.toggleTooltip);\n this.targetElement.setAttribute('aria-expanded', this.open.toString());\n this.targetElement.setAttribute('aria-describedby', 'tooltip');\n }\n\n if (this.trigger === 'hover') {\n this.targetElement.addEventListener('mouseenter', this.showTooltip);\n this.targetElement.addEventListener('mouseleave', this.hideTooltip);\n this.targetElement.setAttribute('aria-describedby', 'tooltip');\n }\n\n if (this.tooltipElement && !this.cleanupAutoUpdate) {\n this.cleanupAutoUpdate = autoUpdate(\n this.targetElement,\n this.tooltipElement,\n () => this.updatePosition(),\n { animationFrame: false }\n );\n }\n }\n };\n\n private handleOutsideClick = (event: Event) => {\n if (!this.el.contains(event.target as Node) && this.open) {\n this.open = false;\n this.updateOutsideClickListener();\n }\n };\n\n private updatePosition = async () => {\n if (!this.targetElement || !this.tooltipElement || !this.arrowElement) return;\n\n const { x, y, placement, middlewareData } = await computePosition(\n this.targetElement,\n this.tooltipElement,\n {\n placement: this.placement,\n middleware: [\n offset(12),\n flip({ fallbackPlacements: ['top', 'left', 'bottom', 'right'] }),\n shift({ padding: 8 }),\n arrow({ element: this.arrowElement }),\n ],\n }\n );\n\n Object.assign(this.tooltipElement.style, {\n left: `${x}px`,\n top: `${y}px`,\n });\n\n const { x: arrowX, y: arrowY } = middlewareData.arrow || { x: 0, y: 0 };\n const basePlacement = placement.split('-')[0] as 'top' | 'right' | 'bottom' | 'left';\n const staticSide = {\n top: 'bottom',\n right: 'left',\n bottom: 'top',\n left: 'right',\n }[basePlacement];\n\n Object.assign(this.arrowElement.style, {\n left: arrowX != null ? `${arrowX}px` : '',\n top: arrowY != null ? `${arrowY}px` : '',\n [staticSide]: '-4px',\n });\n };\n\n private tooltipClass = tv({\n slots: {\n tooltip:\n 'bcm-ui-element bcm-tooltip absolute bg-[--tooltip-bg] rounded-md shadow-3 py-1 px-3 min-w-max z-[9999] text-color-base font-medium',\n arrow: 'absolute w-4 h-4 bg-[--tooltip-bg] transform rotate-45 z-[-1]',\n },\n variants: {\n size: {\n small: { tooltip: 'text-size-3' },\n medium: { tooltip: 'text-size-4' },\n large: { tooltip: 'text-size-5' },\n },\n isOpen: {\n true: { tooltip: 'block' },\n false: { tooltip: 'hidden' },\n },\n },\n defaultVariants: {\n size: 'medium',\n isOpen: false,\n },\n }, { twMerge: false });\n\n render() {\n const { tooltip, arrow } = this.tooltipClass({\n size: this.size,\n isOpen: this.open,\n });\n return (\n <div class=\"relative\">\n <slot onSlotchange={() => this.handleSlotChange()}></slot>\n <div role=\"tooltip\" class={tooltip()} ref={(el) => (this.tooltipElement = el)} part=\"tooltip\">\n <div class={arrow()} ref={(el) => (this.arrowElement = el)} part=\"arrow\"></div>\n <slot name=\"tooltip\">{this.message}</slot>\n </div>\n </div>\n );\n }\n}\n"],"version":3}
@@ -1,4 +1,4 @@
1
- export { g as getAssetPath, s as setAssetPath, a as setNonce, b as setPlatformOptions } from './p-13582168.js';
1
+ export { g as getAssetPath, s as setAssetPath, a as setNonce, b as setPlatformOptions } from './p-5377117d.js';
2
2
 
3
3
  function addHeadScript(obj) {
4
4
  const head = document.head;
@@ -0,0 +1,48 @@
1
+ class I18n {
2
+ static setMessages(locale, messages) {
3
+ this.messages[locale] = messages;
4
+ this.currentLocale = locale; // Mesajları set ederken locale'i de güncelle
5
+ // console.log(`I18n messages set for locale: ${locale}`, messages);
6
+ }
7
+ static setLocale(locale) {
8
+ if (this.messages[locale]) {
9
+ this.currentLocale = locale;
10
+ // Locale değiştiğinde console'a bilgi ver (development için)
11
+ console.log(`I18n locale changed to: ${locale}`);
12
+ }
13
+ else {
14
+ console.warn(`Locale '${locale}' not found in messages`);
15
+ }
16
+ }
17
+ static t(key, data) {
18
+ var _a;
19
+ const message = ((_a = this.messages[this.currentLocale]) === null || _a === void 0 ? void 0 : _a[key]) || key;
20
+ if (!data)
21
+ return message;
22
+ return Object.entries(data).reduce((msg, [key, value]) => {
23
+ return msg.replace(new RegExp(`{${key}}`, 'g'), String(value));
24
+ }, message);
25
+ }
26
+ }
27
+ I18n.messages = {};
28
+ I18n.currentLocale = 'en';
29
+
30
+ const defaultValidationMessages = {
31
+ email: 'Please enter a valid email address',
32
+ required: 'This field is required',
33
+ minlength: 'Please enter at least {min} characters',
34
+ maxlength: 'Please enter no more than {max} characters',
35
+ min: 'Value must be at least {min}',
36
+ max: 'Value must be at most {max}',
37
+ pattern: 'Please enter a valid format',
38
+ };
39
+ const setValidationMessages = (locale, messages) => {
40
+ I18n.setMessages(locale, Object.assign(Object.assign({}, defaultValidationMessages), messages));
41
+ };
42
+ const getValidationMessage = (type, data) => {
43
+ return I18n.t(type, data);
44
+ };
45
+
46
+ export { defaultValidationMessages as d, getValidationMessage as g, setValidationMessages as s };
47
+
48
+ //# sourceMappingURL=p-13a245f6.js.map
@@ -0,0 +1 @@
1
+ {"file":"p-13a245f6.js","mappings":"MAEa,IAAI;IAIf,OAAO,WAAW,CAAC,MAAc,EAAE,QAAgC;QACjE,IAAI,CAAC,QAAQ,CAAC,MAAM,CAAC,GAAG,QAAQ,CAAC;QACjC,IAAI,CAAC,aAAa,GAAG,MAAM,CAAC;;KAE7B;IAED,OAAO,SAAS,CAAC,MAAc;QAC7B,IAAI,IAAI,CAAC,QAAQ,CAAC,MAAM,CAAC,EAAE;YACzB,IAAI,CAAC,aAAa,GAAG,MAAM,CAAC;;YAE5B,OAAO,CAAC,GAAG,CAAC,2BAA2B,MAAM,EAAE,CAAC,CAAC;SAClD;aAAM;YACL,OAAO,CAAC,IAAI,CAAC,WAAW,MAAM,yBAAyB,CAAC,CAAC;SAC1D;KACF;IAED,OAAO,CAAC,CAAC,GAAW,EAAE,IAA0B;;QAC9C,MAAM,OAAO,GAAG,CAAA,MAAA,IAAI,CAAC,QAAQ,CAAC,IAAI,CAAC,aAAa,CAAC,0CAAG,GAAG,CAAC,KAAI,GAAG,CAAC;QAChE,IAAI,CAAC,IAAI;YAAE,OAAO,OAAO,CAAC;QAE1B,OAAO,MAAM,CAAC,OAAO,CAAC,IAAI,CAAC,CAAC,MAAM,CAAC,CAAC,GAAG,EAAE,CAAC,GAAG,EAAE,KAAK,CAAC;YACnD,OAAO,GAAG,CAAC,OAAO,CAAC,IAAI,MAAM,CAAC,IAAI,GAAG,GAAG,EAAE,GAAG,CAAC,EAAE,MAAM,CAAC,KAAK,CAAC,CAAC,CAAC;SAChE,EAAE,OAAO,CAAC,CAAC;KACb;;AA1Bc,aAAQ,GAA2C,EAAE,CAAC;AACtD,kBAAa,GAAG,IAAI;;MCFxB,yBAAyB,GAAG;IACvC,KAAK,EAAE,oCAAoC;IAC3C,QAAQ,EAAE,wBAAwB;IAClC,SAAS,EAAE,wCAAwC;IACnD,SAAS,EAAE,4CAA4C;IACvD,GAAG,EAAE,8BAA8B;IACnC,GAAG,EAAE,6BAA6B;IAClC,OAAO,EAAE,6BAA6B;EACtC;MAEW,qBAAqB,GAAG,CAAC,MAAc,EAAE,QAAmD;IACvG,IAAI,CAAC,WAAW,CAAC,MAAM,kCAAO,yBAAyB,GAAK,QAAQ,EAAG,CAAC;AAC1E,EAAE;MAEW,oBAAoB,GAAG,CAAC,IAA4C,EAAE,IAAsC;IACvH,OAAO,IAAI,CAAC,CAAC,CAAC,IAAI,EAAE,IAAI,CAAC,CAAC;AAC5B;;;;","names":[],"sources":["src/utils/i18n.ts","src/utils/validation-messages.ts"],"sourcesContent":["export type MessageTemplateData = Record<string, string | number>;\n\nexport class I18n {\n private static messages: Record<string, Record<string, string>> = {};\n private static currentLocale = 'en';\n\n static setMessages(locale: string, messages: Record<string, string>) {\n this.messages[locale] = messages;\n this.currentLocale = locale; // Mesajları set ederken locale'i de güncelle\n // console.log(`I18n messages set for locale: ${locale}`, messages);\n }\n\n static setLocale(locale: string) {\n if (this.messages[locale]) {\n this.currentLocale = locale;\n // Locale değiştiğinde console'a bilgi ver (development için)\n console.log(`I18n locale changed to: ${locale}`);\n } else {\n console.warn(`Locale '${locale}' not found in messages`);\n }\n }\n\n static t(key: string, data?: MessageTemplateData): string {\n const message = this.messages[this.currentLocale]?.[key] || key;\n if (!data) return message;\n\n return Object.entries(data).reduce((msg, [key, value]) => {\n return msg.replace(new RegExp(`{${key}}`, 'g'), String(value));\n }, message);\n }\n}\n","import { I18n } from './i18n';\n\nexport const defaultValidationMessages = {\n email: 'Please enter a valid email address',\n required: 'This field is required',\n minlength: 'Please enter at least {min} characters',\n maxlength: 'Please enter no more than {max} characters',\n min: 'Value must be at least {min}',\n max: 'Value must be at most {max}',\n pattern: 'Please enter a valid format',\n};\n\nexport const setValidationMessages = (locale: string, messages: Partial<typeof defaultValidationMessages>) => {\n I18n.setMessages(locale, { ...defaultValidationMessages, ...messages });\n};\n\nexport const getValidationMessage = (type: keyof typeof defaultValidationMessages, data?: Record<string, string | number>) => {\n return I18n.t(type, data);\n};\n"],"version":3}
@@ -1,7 +1,7 @@
1
- import { p as proxyCustomElement, H, h } from './p-13582168.js';
1
+ import { p as proxyCustomElement, H, h } from './p-5377117d.js';
2
2
  import { c as ce } from './p-5fcf77f9.js';
3
3
 
4
- const badgeCss = ".relative{position:relative}:host{--bcm-badge-bg:var(--bcm-ui-color-background-default-default);--bcm-badge-text:var(--bcm-ui-color-text-default);--bcm-badge-radius:9999px;display:inline-block;position:relative}::slotted([slot=badge]){color:var(--bcm-badge-text);font-weight:500}.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}.absolute{position:absolute}.-bottom-1{bottom:-.25rem}.-left-1{left:-.25rem}.-right-1{right:-.25rem}.-top-1{top:-.25rem}.z-10{z-index:10}.inline-flex{display:inline-flex}.size-1{height:.25rem;width:.25rem}.size-1\\.5{height:.375rem;width:.375rem}.size-2{height:.5rem;width:.5rem}.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))}.items-center{align-items:center}.justify-center{justify-content:center}.gap-0{gap:0}.gap-1{gap:.25rem}.gap-2{gap:.5rem}.rounded-\\[--bcm-badge-radius\\]{border-radius:var(--bcm-badge-radius)}.bg-\\[--bcm-badge-bg\\]{background-color:var(--bcm-badge-bg)}.p-0{padding:0}.px-1{padding-left:.25rem;padding-right:.25rem}.px-1\\.5{padding-left:.375rem;padding-right:.375rem}.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}.text-\\[0px\\]{font-size:0}.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-medium{font-weight:500}.leading-none{line-height:1}.text-\\[--bcm-badge-text\\]{color:var(--bcm-badge-text)}.shadow{--tw-shadow:0 1px 3px 0 rgba(0,0,0,.1),0 1px 2px -1px rgba(0,0,0,.1);--tw-shadow-colored:0 1px 3px 0 var(--tw-shadow-color),0 1px 2px -1px var(--tw-shadow-color);box-shadow:var(--tw-ring-offset-shadow,0 0 #0000),var(--tw-ring-shadow,0 0 #0000),var(--tw-shadow)}.after\\:absolute:after{content:var(--tw-content);position:absolute}.after\\:h-full:after{content:var(--tw-content);height:100%}.after\\:w-full:after{content:var(--tw-content);width:100%}@keyframes ping{75%,to{content:var(--tw-content);opacity:0;transform:scale(2)}}.after\\:animate-blink:after{animation:ping 2s infinite;content:var(--tw-content)}.after\\:rounded-full:after{border-radius:9999px;content:var(--tw-content)}.after\\:bg-\\[--bcm-badge-bg\\]:after{background-color:var(--bcm-badge-bg);content:var(--tw-content)}.after\\:content-\\[\\\"\\\"\\]:after{--tw-content:\"\";content:var(--tw-content)}.-right-0\\.5{right:-.125rem}.-top-0\\.5{top:-.125rem}.right-0{right:0}.top-0{top:0}.h-10{height:2.5rem}.h-6{height:1.5rem}.h-8{height:2rem}.h-full{height:100%}.w-10{width:2.5rem}.w-6{width:1.5rem}.w-8{width:2rem}.w-full{width:100%}.rounded-\\[--bcm-ui-radius\\]{border-radius:var(--bcm-ui-radius)}.rounded-full{border-radius:9999px}.bg-\\[--bcm-avatar-bg\\]{background-color:var(--bcm-avatar-bg)}.text-size-6{font-size:var(--bcm-ui-font-size-6,18px);line-height:var(--bcm-ui-line-height-6,24px)}.uppercase{text-transform:uppercase}.text-\\[--bcm-avatar-text\\]{color:var(--bcm-avatar-text)}";
4
+ const badgeCss = ".relative{position:relative}:host{--bcm-badge-bg:var(--bcm-ui-color-background-default-default);--bcm-badge-text:var(--bcm-ui-color-text-default);--bcm-badge-radius:9999px;display:inline-block;position:relative}::slotted([slot=badge]){color:var(--bcm-badge-text);font-weight:500}.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}.absolute{position:absolute}.-bottom-1{bottom:-.25rem}.-left-1{left:-.25rem}.-right-1{right:-.25rem}.-top-1{top:-.25rem}.z-10{z-index:10}.inline-flex{display:inline-flex}.size-1{height:.25rem;width:.25rem}.size-1\\.5{height:.375rem;width:.375rem}.size-2{height:.5rem;width:.5rem}.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))}.items-center{align-items:center}.justify-center{justify-content:center}.gap-0{gap:0}.gap-1{gap:.25rem}.gap-2{gap:.5rem}.rounded-\\[--bcm-badge-radius\\]{border-radius:var(--bcm-badge-radius)}.bg-\\[--bcm-badge-bg\\]{background-color:var(--bcm-badge-bg)}.p-0{padding:0}.px-1{padding-left:.25rem;padding-right:.25rem}.px-1\\.5{padding-left:.375rem;padding-right:.375rem}.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}.text-\\[0px\\]{font-size:0}.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-medium{font-weight:500}.leading-none{line-height:1}.text-\\[--bcm-badge-text\\]{color:var(--bcm-badge-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)}.after\\:absolute:after{content:var(--tw-content);position:absolute}.after\\:h-full:after{content:var(--tw-content);height:100%}.after\\:w-full:after{content:var(--tw-content);width:100%}@keyframes ping{75%,to{content:var(--tw-content);opacity:0;transform:scale(2)}}.after\\:animate-blink:after{animation:ping 2s infinite;content:var(--tw-content)}.after\\:rounded-full:after{border-radius:var(--bcm-ui-border-radius-full,9999px);content:var(--tw-content)}.after\\:bg-\\[--bcm-badge-bg\\]:after{background-color:var(--bcm-badge-bg);content:var(--tw-content)}.after\\:content-\\[\\\"\\\"\\]:after{--tw-content:\"\";content:var(--tw-content)}.-right-0\\.5{right:-.125rem}.-top-0\\.5{top:-.125rem}.right-0{right:0}.top-0{top:0}.h-10{height:2.5rem}.h-6{height:1.5rem}.h-8{height:2rem}.h-full{height:100%}.w-10{width:2.5rem}.w-6{width:1.5rem}.w-8{width:2rem}.w-full{width:100%}.rounded-\\[--bcm-ui-radius\\]{border-radius:var(--bcm-ui-radius)}.rounded-full{border-radius:var(--bcm-ui-border-radius-full,9999px)}.bg-\\[--bcm-avatar-bg\\]{background-color:var(--bcm-avatar-bg)}.text-size-6{font-size:var(--bcm-ui-font-size-6,18px);line-height:var(--bcm-ui-line-height-6,24px)}.uppercase{text-transform:uppercase}.text-\\[--bcm-avatar-text\\]{color:var(--bcm-avatar-text)}";
5
5
  const BcmBadgeStyle0 = badgeCss;
6
6
 
7
7
  const Badge = /*@__PURE__*/ proxyCustomElement(class Badge extends H {
@@ -142,4 +142,4 @@ defineCustomElement();
142
142
 
143
143
  export { Badge as B, defineCustomElement as d };
144
144
 
145
- //# sourceMappingURL=p-39637e05.js.map
145
+ //# sourceMappingURL=p-49f20ff7.js.map
@@ -1 +1 @@
1
- {"file":"p-39637e05.js","mappings":"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","names":["tv"],"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 'tailwind-variants';\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
+ {"file":"p-49f20ff7.js","mappings":"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","names":["tv"],"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 'tailwind-variants';\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,5 +1,5 @@
1
1
  const NAMESPACE = 'bromcom-ui';
2
- const BUILD = /* bromcom-ui */ { allRenderFn: true, appendChildSlotFix: false, asyncLoading: true, asyncQueue: false, attachStyles: true, cloneNodeFix: false, cmpDidLoad: true, cmpDidRender: false, cmpDidUnload: false, cmpDidUpdate: false, cmpShouldUpdate: false, cmpWillLoad: true, cmpWillRender: false, cmpWillUpdate: false, connectedCallback: false, constructableCSS: true, cssAnnotations: true, devTools: false, disconnectedCallback: true, element: false, event: true, experimentalScopedSlotChanges: false, experimentalSlotFixes: false, formAssociated: false, hasRenderFn: true, hostListener: true, hostListenerTarget: false, hostListenerTargetBody: false, hostListenerTargetDocument: false, hostListenerTargetParent: false, hostListenerTargetWindow: false, hotModuleReplacement: false, hydrateClientSide: false, hydrateServerSide: false, hydratedAttribute: false, hydratedClass: true, hydratedSelectorName: "hydrated", invisiblePrehydration: true, isDebug: false, isDev: false, isTesting: false, lazyLoad: false, lifecycle: true, lifecycleDOMEvents: false, member: true, method: true, mode: false, modernPropertyDecls: false, observeAttribute: true, profile: false, prop: true, propBoolean: true, propMutable: true, propNumber: true, propString: true, reflect: true, scoped: false, scopedSlotTextContentFix: false, scriptDataOpts: false, shadowDelegatesFocus: false, shadowDom: true, slot: true, slotChildNodesFix: false, slotRelocation: false, state: true, style: true, svg: false, taskQueue: true, updatable: true, vdomAttribute: true, vdomClass: true, vdomFunctional: true, vdomKey: true, vdomListener: true, vdomPropOrAttr: true, vdomRef: true, vdomRender: true, vdomStyle: true, vdomText: true, vdomXlink: false, watchCallback: true };
2
+ const BUILD = /* bromcom-ui */ { allRenderFn: true, appendChildSlotFix: false, asyncLoading: true, asyncQueue: false, attachStyles: true, cloneNodeFix: false, cmpDidLoad: true, cmpDidRender: false, cmpDidUnload: false, cmpDidUpdate: true, cmpShouldUpdate: false, cmpWillLoad: true, cmpWillRender: false, cmpWillUpdate: false, connectedCallback: true, constructableCSS: true, cssAnnotations: true, devTools: false, disconnectedCallback: true, element: false, event: true, experimentalScopedSlotChanges: false, experimentalSlotFixes: false, formAssociated: false, hasRenderFn: true, hostListener: true, hostListenerTarget: true, hostListenerTargetBody: false, hostListenerTargetDocument: false, hostListenerTargetParent: false, hostListenerTargetWindow: true, hotModuleReplacement: false, hydrateClientSide: false, hydrateServerSide: false, hydratedAttribute: false, hydratedClass: true, hydratedSelectorName: "hydrated", invisiblePrehydration: true, isDebug: false, isDev: false, isTesting: false, lazyLoad: false, lifecycle: true, lifecycleDOMEvents: false, member: true, method: true, mode: false, modernPropertyDecls: false, observeAttribute: true, profile: false, prop: true, propBoolean: true, propMutable: true, propNumber: true, propString: true, reflect: true, scoped: false, scopedSlotTextContentFix: false, scriptDataOpts: false, shadowDelegatesFocus: false, shadowDom: true, slot: true, slotChildNodesFix: false, slotRelocation: false, state: true, style: true, svg: false, taskQueue: true, updatable: true, vdomAttribute: true, vdomClass: true, vdomFunctional: true, vdomKey: true, vdomListener: true, vdomPropOrAttr: true, vdomRef: true, vdomRender: true, vdomStyle: true, vdomText: true, vdomXlink: true, watchCallback: true };
3
3
 
4
4
  /*
5
5
  Stencil Client Platform v4.25.1 | MIT Licensed | https://stenciljs.com
@@ -36,6 +36,7 @@ var consoleError = (e, el) => (0, console.error)(e, el);
36
36
  var styles = /* @__PURE__ */ new Map();
37
37
  var HYDRATED_STYLE_ID = "sty-id";
38
38
  var SLOT_FB_CSS = "slot-fb{display:contents}slot-fb[hidden]{display:none}";
39
+ var XLINK_NS = "http://www.w3.org/1999/xlink";
39
40
  var win = typeof window !== "undefined" ? window : {};
40
41
  var doc = win.document || { head: {} };
41
42
  var H = win.HTMLElement || class {
@@ -488,15 +489,26 @@ var setAccessor = (elm, memberName, oldValue, newValue, isSvg, flags, initialRen
488
489
  } catch (e) {
489
490
  }
490
491
  }
492
+ let xlink = false;
493
+ {
494
+ if (ln !== (ln = ln.replace(/^xlink\:?/, ""))) {
495
+ memberName = ln;
496
+ xlink = true;
497
+ }
498
+ }
491
499
  if (newValue == null || newValue === false) {
492
500
  if (newValue !== false || elm.getAttribute(memberName) === "") {
493
- {
501
+ if (xlink) {
502
+ elm.removeAttributeNS(XLINK_NS, memberName);
503
+ } else {
494
504
  elm.removeAttribute(memberName);
495
505
  }
496
506
  }
497
507
  } else if ((!isProp || flags & 4 /* isHost */ || isSvg) && !isComplex) {
498
508
  newValue = newValue === true ? "" : newValue;
499
- {
509
+ if (xlink) {
510
+ elm.setAttributeNS(XLINK_NS, memberName, newValue);
511
+ } else {
500
512
  elm.setAttribute(memberName, newValue);
501
513
  }
502
514
  }
@@ -894,6 +906,9 @@ var postUpdateComponent = (hostRef) => {
894
906
  }
895
907
  }
896
908
  } else {
909
+ {
910
+ safeCall(instance, "componentDidUpdate", void 0, elm);
911
+ }
897
912
  endPostUpdate();
898
913
  }
899
914
  {
@@ -1168,6 +1183,7 @@ var proxyCustomElement = (Cstr, compactMeta) => {
1168
1183
  {
1169
1184
  cmpMeta.$attrsToReflect$ = [];
1170
1185
  }
1186
+ const originalConnectedCallback = Cstr.prototype.connectedCallback;
1171
1187
  const originalDisconnectedCallback = Cstr.prototype.disconnectedCallback;
1172
1188
  Object.assign(Cstr.prototype, {
1173
1189
  __hasHostListenerAttached: false,
@@ -1181,6 +1197,9 @@ var proxyCustomElement = (Cstr, compactMeta) => {
1181
1197
  this.__hasHostListenerAttached = true;
1182
1198
  }
1183
1199
  connectedCallback(this);
1200
+ if (originalConnectedCallback) {
1201
+ originalConnectedCallback.call(this);
1202
+ }
1184
1203
  },
1185
1204
  disconnectedCallback() {
1186
1205
  disconnectedCallback(this);
@@ -1217,10 +1236,13 @@ var proxyCustomElement = (Cstr, compactMeta) => {
1217
1236
  Cstr.is = cmpMeta.$tagName$;
1218
1237
  return proxyComponent(Cstr, cmpMeta, 1 /* isElementConstructor */ | 2 /* proxyState */);
1219
1238
  };
1239
+
1240
+ // src/runtime/fragment.ts
1241
+ var Fragment = (_, children) => children;
1220
1242
  var addHostEventListeners = (elm, hostRef, listeners, attachParentListeners) => {
1221
1243
  if (listeners) {
1222
1244
  listeners.map(([flags, name, method]) => {
1223
- const target = elm;
1245
+ const target = getHostListenerTarget(elm, flags) ;
1224
1246
  const handler = hostListenerProxy(hostRef, method);
1225
1247
  const opts = hostListenerOpts(flags);
1226
1248
  plt.ael(target, name, handler, opts);
@@ -1237,6 +1259,10 @@ var hostListenerProxy = (hostRef, methodName) => (ev) => {
1237
1259
  consoleError(e, hostRef.$hostElement$);
1238
1260
  }
1239
1261
  };
1262
+ var getHostListenerTarget = (elm, flags) => {
1263
+ if (flags & 8 /* TargetWindow */) return win;
1264
+ return elm;
1265
+ };
1240
1266
  var hostListenerOpts = (flags) => supportsListenerOptions ? {
1241
1267
  passive: (flags & 1 /* Passive */) !== 0,
1242
1268
  capture: (flags & 2 /* Capture */) !== 0
@@ -1248,6 +1274,6 @@ var setNonce = (nonce) => plt.$nonce$ = nonce;
1248
1274
  // src/runtime/platform-options.ts
1249
1275
  var setPlatformOptions = (opts) => Object.assign(plt, opts);
1250
1276
 
1251
- export { H, setNonce as a, setPlatformOptions as b, createEvent as c, Host as d, getAssetPath as g, h, proxyCustomElement as p, setAssetPath as s };
1277
+ export { Fragment as F, H, setNonce as a, setPlatformOptions as b, createEvent as c, Host as d, getAssetPath as g, h, proxyCustomElement as p, setAssetPath as s };
1252
1278
 
1253
- //# sourceMappingURL=p-13582168.js.map
1279
+ //# sourceMappingURL=p-5377117d.js.map