bromcom-ui-next 0.1.8 → 0.1.10

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 (258) hide show
  1. package/dist/bromcom-ui/bromcom-ui.esm.js +1 -1
  2. package/dist/bromcom-ui/bromcom-ui.esm.js.map +1 -1
  3. package/dist/bromcom-ui/{p-a1aae3ef.entry.js → p-09b53a8f.entry.js} +2 -2
  4. package/dist/bromcom-ui/{p-49b0e982.entry.js → p-1392a235.entry.js} +2 -2
  5. package/dist/bromcom-ui/{p-389f1976.entry.js → p-1867c3e6.entry.js} +2 -2
  6. package/dist/bromcom-ui/p-1d44a091.entry.js +2 -0
  7. package/dist/bromcom-ui/{p-cee68279.entry.js.map → p-1d44a091.entry.js.map} +1 -1
  8. package/dist/bromcom-ui/p-2820ad28.entry.js +2 -0
  9. package/dist/bromcom-ui/p-2820ad28.entry.js.map +1 -0
  10. package/dist/bromcom-ui/{p-58ee24a8.entry.js → p-2cb15e60.entry.js} +2 -2
  11. package/dist/bromcom-ui/p-3583888a.entry.js +2 -0
  12. package/dist/bromcom-ui/{p-9ab4d2be.entry.js.map → p-3583888a.entry.js.map} +1 -1
  13. package/dist/bromcom-ui/{p-cd271b49.entry.js → p-3d424afc.entry.js} +2 -2
  14. package/dist/bromcom-ui/p-3ed3885e.entry.js +2 -0
  15. package/dist/bromcom-ui/{p-a3dbbeaf.entry.js.map → p-3ed3885e.entry.js.map} +1 -1
  16. package/dist/bromcom-ui/{p-e89ab4a7.entry.js → p-3f153277.entry.js} +2 -2
  17. package/dist/bromcom-ui/{p-13784cd7.entry.js → p-4762d66b.entry.js} +2 -2
  18. package/dist/bromcom-ui/{p-bf69fc8a.entry.js → p-4bba4ab4.entry.js} +2 -2
  19. package/dist/bromcom-ui/{p-9594cebb.js → p-50133556.js} +2 -2
  20. package/dist/bromcom-ui/{p-d57587e5.entry.js → p-50713153.entry.js} +2 -2
  21. package/dist/bromcom-ui/{p-056c9348.entry.js → p-5541403c.entry.js} +2 -2
  22. package/dist/bromcom-ui/p-651a6761.entry.js +2 -0
  23. package/dist/bromcom-ui/p-651a6761.entry.js.map +1 -0
  24. package/dist/bromcom-ui/p-79082ca0.entry.js +2 -0
  25. package/dist/bromcom-ui/p-79082ca0.entry.js.map +1 -0
  26. package/dist/bromcom-ui/{p-bd0f7e78.entry.js → p-86704b91.entry.js} +2 -2
  27. package/dist/bromcom-ui/{p-55c4263c.entry.js → p-898d5cf6.entry.js} +2 -2
  28. package/dist/bromcom-ui/p-9bd6c84d.entry.js +2 -0
  29. package/dist/bromcom-ui/p-9bd6c84d.entry.js.map +1 -0
  30. package/dist/bromcom-ui/{p-0d0d6483.entry.js → p-c45d9e50.entry.js} +2 -2
  31. package/dist/bromcom-ui/{p-625bbd86.entry.js → p-c78b12c3.entry.js} +2 -2
  32. package/dist/bromcom-ui/{p-1bf71c9b.entry.js → p-d7b636bf.entry.js} +2 -2
  33. package/dist/bromcom-ui/p-ddf64315.js.map +1 -1
  34. package/dist/bromcom-ui/{p-c995a48c.entry.js → p-ea274e8b.entry.js} +2 -2
  35. package/dist/bromcom-ui/p-ea6cdc17.entry.js +2 -0
  36. package/dist/bromcom-ui/{p-0d273bac.entry.js.map → p-ea6cdc17.entry.js.map} +1 -1
  37. package/dist/bromcom-ui/p-edfa3b52.entry.js +2 -0
  38. package/dist/bromcom-ui/p-edfa3b52.entry.js.map +1 -0
  39. package/dist/cjs/app-globals-e0eef2e9.js.map +1 -1
  40. package/dist/cjs/bcm-accordion-group.cjs.entry.js +2 -2
  41. package/dist/cjs/bcm-accordion-group.cjs.entry.js.map +1 -1
  42. package/dist/cjs/bcm-accordion.cjs.entry.js +2 -2
  43. package/dist/cjs/bcm-alert.cjs.entry.js +1 -1
  44. package/dist/cjs/bcm-avatar.cjs.entry.js +89 -0
  45. package/dist/cjs/bcm-avatar.cjs.entry.js.map +1 -0
  46. package/dist/cjs/bcm-badge.cjs.entry.js +123 -0
  47. package/dist/cjs/bcm-badge.cjs.entry.js.map +1 -0
  48. package/dist/cjs/bcm-basic-badge.cjs.entry.js +92 -0
  49. package/dist/cjs/bcm-basic-badge.cjs.entry.js.map +1 -0
  50. package/dist/cjs/bcm-button-group.cjs.entry.js +2 -2
  51. package/dist/cjs/bcm-button_5.cjs.entry.js +830 -0
  52. package/dist/cjs/bcm-button_5.cjs.entry.js.map +1 -0
  53. package/dist/cjs/bcm-checkbox.cjs.entry.js +1 -1
  54. package/dist/cjs/bcm-chip.cjs.entry.js +2 -2
  55. package/dist/cjs/bcm-chip.cjs.entry.js.map +1 -1
  56. package/dist/cjs/bcm-divider.cjs.entry.js +1 -1
  57. package/dist/cjs/bcm-input.cjs.entry.js +5 -3
  58. package/dist/cjs/bcm-input.cjs.entry.js.map +1 -1
  59. package/dist/cjs/bcm-pop-confirm.cjs.entry.js +1 -1
  60. package/dist/cjs/bcm-popover.cjs.entry.js +1 -1
  61. package/dist/cjs/bcm-radio-group.cjs.entry.js +2 -2
  62. package/dist/cjs/bcm-radio.cjs.entry.js +2 -2
  63. package/dist/cjs/bcm-radio.cjs.entry.js.map +1 -1
  64. package/dist/cjs/bcm-segmented-picker-option.cjs.entry.js +2 -2
  65. package/dist/cjs/bcm-segmented-picker.cjs.entry.js +2 -2
  66. package/dist/cjs/bcm-switch.cjs.entry.js +2 -2
  67. package/dist/cjs/bcm-tabs-content.cjs.entry.js +1 -1
  68. package/dist/cjs/bcm-tabs-list.cjs.entry.js +1 -1
  69. package/dist/cjs/bcm-tabs-trigger.cjs.entry.js +1 -1
  70. package/dist/cjs/bcm-tabs.cjs.entry.js +1 -1
  71. package/dist/cjs/bcm-textarea.cjs.entry.js +3 -3
  72. package/dist/cjs/bcm-tooltip.cjs.entry.js +1 -1
  73. package/dist/cjs/bromcom-ui.cjs.js +1 -1
  74. package/dist/cjs/loader.cjs.js +1 -1
  75. package/dist/collection/collection-manifest.json +1 -1
  76. package/dist/collection/components/accordion/accordion.component.js +2 -2
  77. package/dist/collection/components/accordion-group/accordion-group.component.js +1 -1
  78. package/dist/collection/components/accordion-group/accordion-group.css +1 -1
  79. package/dist/collection/components/alert/alert.component.js +1 -1
  80. package/dist/collection/components/badge/badge.component.js +2 -2
  81. package/dist/collection/components/badge/badge.css +1 -1
  82. package/dist/collection/components/basic-badge/basic-badge.component.js +2 -2
  83. package/dist/collection/components/basic-badge/basic-badge.css +1 -1
  84. package/dist/collection/components/button/button.component.js +2 -2
  85. package/dist/collection/components/button/button.css +1 -1
  86. package/dist/collection/components/button-group/button-group.component.js +2 -2
  87. package/dist/collection/components/checkbox/checkbox.component.js +1 -1
  88. package/dist/collection/components/chip/chip.component.js +1 -1
  89. package/dist/collection/components/chip/chip.css +1 -1
  90. package/dist/collection/components/divider/divider.component.js +1 -1
  91. package/dist/collection/components/dropdown/dropdown.component.js +2 -2
  92. package/dist/collection/components/dropdown/dropdown.component.js.map +1 -1
  93. package/dist/collection/components/dropdown/dropdown.css +1 -1
  94. package/dist/collection/components/dropdown-item/dropdown-item.component.js +2 -2
  95. package/dist/collection/components/input/input.component.js +4 -2
  96. package/dist/collection/components/input/input.component.js.map +1 -1
  97. package/dist/collection/components/input/input.css +1 -1
  98. package/dist/collection/components/linked/linked.component.js +610 -49
  99. package/dist/collection/components/linked/linked.component.js.map +1 -1
  100. package/dist/collection/components/linked/linked.css +1 -1
  101. package/dist/collection/components/pop-confirm/pop-confirm.component.js +1 -1
  102. package/dist/collection/components/popover/popover.component.js +1 -1
  103. package/dist/collection/components/radio/radio.component.js +1 -1
  104. package/dist/collection/components/radio/radio.css +1 -1
  105. package/dist/collection/components/radio-group/radio-group.component.js +2 -2
  106. package/dist/collection/components/segmented-picker/segmented-picker-option.component.js +2 -2
  107. package/dist/collection/components/segmented-picker/segmented-picker.component.js +2 -2
  108. package/dist/collection/components/switch/switch.component.js +2 -2
  109. package/dist/collection/components/tabs/tabs-content.component.js +1 -1
  110. package/dist/collection/components/tabs/tabs-list.component.js +1 -1
  111. package/dist/collection/components/tabs/tabs-trigger.component.js +1 -1
  112. package/dist/collection/components/tabs/tabs.component.js +1 -1
  113. package/dist/collection/components/text/text.component.js +28 -1
  114. package/dist/collection/components/text/text.component.js.map +1 -1
  115. package/dist/collection/components/text/text.css +1 -1
  116. package/dist/collection/components/textarea/textarea.component.js +3 -3
  117. package/dist/collection/components/tooltip/tooltip.component.js +1 -1
  118. package/dist/components/bcm-accordion-group.js +2 -2
  119. package/dist/components/bcm-accordion-group.js.map +1 -1
  120. package/dist/components/bcm-accordion.js +2 -2
  121. package/dist/components/bcm-alert.js +1 -1
  122. package/dist/components/bcm-avatar.js +1 -1
  123. package/dist/components/bcm-badge.js +1 -1
  124. package/dist/components/bcm-basic-badge.js +3 -3
  125. package/dist/components/bcm-basic-badge.js.map +1 -1
  126. package/dist/components/bcm-button-group.js +2 -2
  127. package/dist/components/bcm-button.js +1 -1
  128. package/dist/components/bcm-checkbox.js +1 -1
  129. package/dist/components/bcm-chip.js +2 -2
  130. package/dist/components/bcm-chip.js.map +1 -1
  131. package/dist/components/bcm-divider.js +1 -1
  132. package/dist/components/bcm-dropdown-item.js +2 -2
  133. package/dist/components/bcm-dropdown.js +5 -5
  134. package/dist/components/bcm-dropdown.js.map +1 -1
  135. package/dist/components/bcm-input.js +5 -3
  136. package/dist/components/bcm-input.js.map +1 -1
  137. package/dist/components/bcm-linked.js +1 -1
  138. package/dist/components/bcm-pop-confirm.js +3 -3
  139. package/dist/components/bcm-popover.js +2 -2
  140. package/dist/components/bcm-radio-group.js +2 -2
  141. package/dist/components/bcm-radio.js +2 -2
  142. package/dist/components/bcm-radio.js.map +1 -1
  143. package/dist/components/bcm-segmented-picker-option.js +2 -2
  144. package/dist/components/bcm-segmented-picker.js +2 -2
  145. package/dist/components/bcm-switch.js +2 -2
  146. package/dist/components/bcm-tabs-content.js +1 -1
  147. package/dist/components/bcm-tabs-list.js +1 -1
  148. package/dist/components/bcm-tabs-trigger.js +1 -1
  149. package/dist/components/bcm-tabs.js +1 -1
  150. package/dist/components/bcm-text.js +11 -3
  151. package/dist/components/bcm-text.js.map +1 -1
  152. package/dist/components/bcm-textarea.js +3 -3
  153. package/dist/components/bcm-tooltip.js +2 -2
  154. package/dist/components/{p-49f20ff7.js → p-2fe931c0.js} +4 -4
  155. package/dist/components/{p-49f20ff7.js.map → p-2fe931c0.js.map} +1 -1
  156. package/dist/components/{p-9594cebb.js → p-50133556.js} +2 -2
  157. package/dist/components/{p-9594cebb.js.map → p-50133556.js.map} +1 -1
  158. package/dist/components/p-9bf969b2.js +336 -0
  159. package/dist/components/p-9bf969b2.js.map +1 -0
  160. package/dist/components/{p-434bf03a.js → p-c978f1a7.js} +4 -4
  161. package/dist/components/{p-434bf03a.js.map → p-c978f1a7.js.map} +1 -1
  162. package/dist/esm/app-globals-f7994f55.js.map +1 -1
  163. package/dist/esm/bcm-accordion-group.entry.js +2 -2
  164. package/dist/esm/bcm-accordion-group.entry.js.map +1 -1
  165. package/dist/esm/bcm-accordion.entry.js +2 -2
  166. package/dist/esm/bcm-alert.entry.js +1 -1
  167. package/dist/esm/bcm-avatar.entry.js +85 -0
  168. package/dist/esm/bcm-avatar.entry.js.map +1 -0
  169. package/dist/esm/bcm-badge.entry.js +119 -0
  170. package/dist/esm/bcm-badge.entry.js.map +1 -0
  171. package/dist/esm/bcm-basic-badge.entry.js +88 -0
  172. package/dist/esm/bcm-basic-badge.entry.js.map +1 -0
  173. package/dist/esm/bcm-button-group.entry.js +2 -2
  174. package/dist/esm/bcm-button_5.entry.js +822 -0
  175. package/dist/esm/bcm-button_5.entry.js.map +1 -0
  176. package/dist/esm/bcm-checkbox.entry.js +1 -1
  177. package/dist/esm/bcm-chip.entry.js +2 -2
  178. package/dist/esm/bcm-chip.entry.js.map +1 -1
  179. package/dist/esm/bcm-divider.entry.js +1 -1
  180. package/dist/esm/bcm-input.entry.js +5 -3
  181. package/dist/esm/bcm-input.entry.js.map +1 -1
  182. package/dist/esm/bcm-pop-confirm.entry.js +2 -2
  183. package/dist/esm/bcm-popover.entry.js +2 -2
  184. package/dist/esm/bcm-radio-group.entry.js +2 -2
  185. package/dist/esm/bcm-radio.entry.js +2 -2
  186. package/dist/esm/bcm-radio.entry.js.map +1 -1
  187. package/dist/esm/bcm-segmented-picker-option.entry.js +2 -2
  188. package/dist/esm/bcm-segmented-picker.entry.js +2 -2
  189. package/dist/esm/bcm-switch.entry.js +2 -2
  190. package/dist/esm/bcm-tabs-content.entry.js +1 -1
  191. package/dist/esm/bcm-tabs-list.entry.js +1 -1
  192. package/dist/esm/bcm-tabs-trigger.entry.js +1 -1
  193. package/dist/esm/bcm-tabs.entry.js +1 -1
  194. package/dist/esm/bcm-textarea.entry.js +3 -3
  195. package/dist/esm/bcm-tooltip.entry.js +2 -2
  196. package/dist/esm/bromcom-ui.js +1 -1
  197. package/dist/esm/{floating-ui.dom.esm-480e0f15.js → floating-ui.dom.esm-b7749b71.js} +2 -2
  198. package/dist/esm/{floating-ui.dom.esm-480e0f15.js.map → floating-ui.dom.esm-b7749b71.js.map} +1 -1
  199. package/dist/esm/loader.js +1 -1
  200. package/dist/types/components/linked/linked.component.d.ts +47 -7
  201. package/dist/types/components/text/text.component.d.ts +3 -0
  202. package/dist/types/components.d.ts +57 -1
  203. package/package.json +2 -1
  204. package/dist/bromcom-ui/p-0d273bac.entry.js +0 -2
  205. package/dist/bromcom-ui/p-9ab4d2be.entry.js +0 -2
  206. package/dist/bromcom-ui/p-a3dbbeaf.entry.js +0 -2
  207. package/dist/bromcom-ui/p-b1b493ab.entry.js +0 -2
  208. package/dist/bromcom-ui/p-b1b493ab.entry.js.map +0 -1
  209. package/dist/bromcom-ui/p-c427ffee.entry.js +0 -2
  210. package/dist/bromcom-ui/p-c427ffee.entry.js.map +0 -1
  211. package/dist/bromcom-ui/p-c444235a.entry.js +0 -2
  212. package/dist/bromcom-ui/p-c444235a.entry.js.map +0 -1
  213. package/dist/bromcom-ui/p-cee68279.entry.js +0 -2
  214. package/dist/bromcom-ui/p-e7e8305f.entry.js +0 -2
  215. package/dist/bromcom-ui/p-e7e8305f.entry.js.map +0 -1
  216. package/dist/bromcom-ui/p-f4e8a47d.entry.js +0 -2
  217. package/dist/bromcom-ui/p-f4e8a47d.entry.js.map +0 -1
  218. package/dist/bromcom-ui/p-f7890098.entry.js +0 -2
  219. package/dist/bromcom-ui/p-f7890098.entry.js.map +0 -1
  220. package/dist/cjs/bcm-avatar_4.cjs.entry.js +0 -596
  221. package/dist/cjs/bcm-avatar_4.cjs.entry.js.map +0 -1
  222. package/dist/cjs/bcm-dropdown-item.cjs.entry.js +0 -63
  223. package/dist/cjs/bcm-dropdown-item.cjs.entry.js.map +0 -1
  224. package/dist/cjs/bcm-dropdown.cjs.entry.js +0 -56
  225. package/dist/cjs/bcm-dropdown.cjs.entry.js.map +0 -1
  226. package/dist/cjs/bcm-linked.cjs.entry.js +0 -91
  227. package/dist/cjs/bcm-linked.cjs.entry.js.map +0 -1
  228. package/dist/cjs/bcm-text.cjs.entry.js +0 -119
  229. package/dist/cjs/bcm-text.cjs.entry.js.map +0 -1
  230. package/dist/components/p-5f7a0d0d.js +0 -107
  231. package/dist/components/p-5f7a0d0d.js.map +0 -1
  232. package/dist/esm/bcm-avatar_4.entry.js +0 -589
  233. package/dist/esm/bcm-avatar_4.entry.js.map +0 -1
  234. package/dist/esm/bcm-dropdown-item.entry.js +0 -59
  235. package/dist/esm/bcm-dropdown-item.entry.js.map +0 -1
  236. package/dist/esm/bcm-dropdown.entry.js +0 -52
  237. package/dist/esm/bcm-dropdown.entry.js.map +0 -1
  238. package/dist/esm/bcm-linked.entry.js +0 -87
  239. package/dist/esm/bcm-linked.entry.js.map +0 -1
  240. package/dist/esm/bcm-text.entry.js +0 -115
  241. package/dist/esm/bcm-text.entry.js.map +0 -1
  242. /package/dist/bromcom-ui/{p-a1aae3ef.entry.js.map → p-09b53a8f.entry.js.map} +0 -0
  243. /package/dist/bromcom-ui/{p-49b0e982.entry.js.map → p-1392a235.entry.js.map} +0 -0
  244. /package/dist/bromcom-ui/{p-389f1976.entry.js.map → p-1867c3e6.entry.js.map} +0 -0
  245. /package/dist/bromcom-ui/{p-58ee24a8.entry.js.map → p-2cb15e60.entry.js.map} +0 -0
  246. /package/dist/bromcom-ui/{p-cd271b49.entry.js.map → p-3d424afc.entry.js.map} +0 -0
  247. /package/dist/bromcom-ui/{p-e89ab4a7.entry.js.map → p-3f153277.entry.js.map} +0 -0
  248. /package/dist/bromcom-ui/{p-13784cd7.entry.js.map → p-4762d66b.entry.js.map} +0 -0
  249. /package/dist/bromcom-ui/{p-bf69fc8a.entry.js.map → p-4bba4ab4.entry.js.map} +0 -0
  250. /package/dist/bromcom-ui/{p-9594cebb.js.map → p-50133556.js.map} +0 -0
  251. /package/dist/bromcom-ui/{p-d57587e5.entry.js.map → p-50713153.entry.js.map} +0 -0
  252. /package/dist/bromcom-ui/{p-056c9348.entry.js.map → p-5541403c.entry.js.map} +0 -0
  253. /package/dist/bromcom-ui/{p-bd0f7e78.entry.js.map → p-86704b91.entry.js.map} +0 -0
  254. /package/dist/bromcom-ui/{p-55c4263c.entry.js.map → p-898d5cf6.entry.js.map} +0 -0
  255. /package/dist/bromcom-ui/{p-0d0d6483.entry.js.map → p-c45d9e50.entry.js.map} +0 -0
  256. /package/dist/bromcom-ui/{p-625bbd86.entry.js.map → p-c78b12c3.entry.js.map} +0 -0
  257. /package/dist/bromcom-ui/{p-1bf71c9b.entry.js.map → p-d7b636bf.entry.js.map} +0 -0
  258. /package/dist/bromcom-ui/{p-c995a48c.entry.js.map → p-ea274e8b.entry.js.map} +0 -0
@@ -0,0 +1,89 @@
1
+ 'use strict';
2
+
3
+ Object.defineProperty(exports, '__esModule', { value: true });
4
+
5
+ const index = require('./index-9a2c5938.js');
6
+ const index$1 = require('./index-5a88e57b.js');
7
+
8
+ const avatarCss = ":host{--bcm-avatar-bg:var(--bcm-ui-color-background-default-default);--bcm-avatar-text:var(--bcm-ui-color-text-default);--bcm-avatar-radius:50%}.bcm-ui-element{-webkit-font-smoothing:antialiased;-moz-osx-font-smoothing:grayscale;font-family:Inter,sans-serif}.static{position:static}.-right-0\\.5{right:-.125rem}.-top-0\\.5{top:-.125rem}.right-0{right:0}.top-0{top:0}.inline-flex{display:inline-flex}.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%}.items-center{align-items:center}.justify-center{justify-content:center}.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-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}.uppercase{text-transform:uppercase}.text-\\[--bcm-avatar-text\\]{color:var(--bcm-avatar-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)}";
9
+ const BcmAvatarStyle0 = avatarCss;
10
+
11
+ const BcmAvatar = class {
12
+ constructor(hostRef) {
13
+ index.registerInstance(this, hostRef);
14
+ /** Shape of the avatar (ellipse/square) */
15
+ this.shape = 'ellipse';
16
+ /** Size of the avatar */
17
+ this.size = 'medium';
18
+ /** Fallback icon class */
19
+ this.icon = 'fas fa-user';
20
+ /** Status indicator animation */
21
+ this.blink = false;
22
+ this.isFallback = false;
23
+ }
24
+ getFirstLetters(name) {
25
+ const words = name.split(' ');
26
+ const initials = words.map(word => word.charAt(0).toUpperCase()).join('');
27
+ return initials.substring(0, 2);
28
+ }
29
+ render() {
30
+ const baseClass = index$1.classNames('bcm-avatar bcm-ui-element bcm-ui-content-display', 'uppercase font-medium', 'inline-flex items-center justify-center', 'bg-[--bcm-avatar-bg] text-[--bcm-avatar-text]', {
31
+ 'shape-ellipse rounded-full': this.shape === 'ellipse',
32
+ 'shape-square rounded-[--bcm-ui-radius]': this.shape === 'square',
33
+ 'size-small text-size-4 w-6 h-6': this.size === 'small',
34
+ 'size-medium text-size-5 w-8 h-8': this.size === 'medium',
35
+ 'size-large text-size-6 w-10 h-10': this.size === 'large',
36
+ });
37
+ const badgeClass = index$1.classNames('badge', {
38
+ 'top-0 right-0': this.shape === 'ellipse',
39
+ '-top-0.5 -right-0.5': this.shape === 'square',
40
+ });
41
+ const imageClass = index$1.classNames('image w-full h-full', {
42
+ 'rounded-full': this.shape === 'ellipse',
43
+ 'rounded-[--bcm-ui-radius]': this.shape === 'square',
44
+ });
45
+ let style = {};
46
+ if (this.color) {
47
+ const isColorTone = this.color.includes('-');
48
+ const _color = isColorTone ? this.color.split('-')[0] : this.color;
49
+ const bgColor = `var(--bcm-ui-color-background-palette-${_color}-default)`;
50
+ const textColor = `var(--bcm-ui-color-text-palette-${_color}`;
51
+ style = {
52
+ '--bcm-avatar-bg': bgColor,
53
+ '--bcm-avatar-text': textColor,
54
+ };
55
+ }
56
+ const customSize = !Object.keys(['small', 'medium', 'large']).includes(this.size)
57
+ ? {
58
+ width: `${this.size}px`,
59
+ height: `${this.size}px`,
60
+ fontSize: `${+this.size / 2}px`,
61
+ }
62
+ : {};
63
+ const RenderContent = () => {
64
+ if (this.isFallback) {
65
+ if (this.name) {
66
+ return this.getFirstLetters(this.name);
67
+ }
68
+ else {
69
+ return index.h("i", { class: this.icon });
70
+ }
71
+ }
72
+ else if (this.image) {
73
+ return index.h("img", { class: imageClass, onError: () => (this.isFallback = true), src: this.image, alt: this.alt, "aria-label": this.alt || this.name || 'Avatar' });
74
+ }
75
+ else if (this.name) {
76
+ return this.getFirstLetters(this.name);
77
+ }
78
+ else {
79
+ return index.h("i", { class: this.icon });
80
+ }
81
+ };
82
+ return (index.h("div", { role: "img", "aria-label": this.alt || this.name || 'Avatar', class: baseClass, style: Object.assign(Object.assign({}, style), customSize) }, index.h(RenderContent, null), this.status && index.h("bcm-badge", { class: badgeClass, status: this.status, blink: this.blink, "aria-hidden": "true" }), index.h("slot", null)));
83
+ }
84
+ };
85
+ BcmAvatar.style = BcmAvatarStyle0;
86
+
87
+ exports.bcm_avatar = BcmAvatar;
88
+
89
+ //# sourceMappingURL=bcm-avatar.cjs.entry.js.map
@@ -0,0 +1 @@
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}
@@ -0,0 +1,123 @@
1
+ 'use strict';
2
+
3
+ Object.defineProperty(exports, '__esModule', { value: true });
4
+
5
+ const index = require('./index-9a2c5938.js');
6
+ const index$1 = require('./index-310db2a6.js');
7
+
8
+ 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}.bcm-ui-element{-webkit-font-smoothing:antialiased;-moz-osx-font-smoothing:grayscale;font-family:Inter,sans-serif}.static{position:static}.-right-0\\.5{right:-.125rem}.-top-0\\.5{top:-.125rem}.right-0{right:0}.top-0{top:0}.inline-flex{display:inline-flex}.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%}.items-center{align-items:center}.justify-center{justify-content:center}.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-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}.uppercase{text-transform:uppercase}.text-\\[--bcm-avatar-text\\]{color:var(--bcm-avatar-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)}.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}}.absolute{position:absolute}.-bottom-1{bottom:-.25rem}.-left-1{left:-.25rem}.-right-1{right:-.25rem}.-top-1{top:-.25rem}.z-10{z-index:10}.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))}.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)}.leading-none{line-height:1}.text-\\[--bcm-badge-text\\]{color:var(--bcm-badge-text)}.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)}";
9
+ const BcmBadgeStyle0 = badgeCss;
10
+
11
+ const Badge = class {
12
+ constructor(hostRef) {
13
+ index.registerInstance(this, hostRef);
14
+ /**
15
+ * Determines the size of the badge.
16
+ * @type {'small' | 'medium' | 'large'}
17
+ * @default 'medium'
18
+ */
19
+ this.size = 'medium';
20
+ /**
21
+ * Sets the visual variant of the badge.
22
+ * 'dot': Appears as a small dot indicator
23
+ * 'text': Displays content as text
24
+ * @type {'dot' | 'text'}
25
+ * @default 'text'
26
+ */
27
+ this.variant = 'text';
28
+ /**
29
+ * Enables soft color mode for the badge.
30
+ * When true, uses lighter tones and pastel colors.
31
+ * @type {boolean}
32
+ * @default false
33
+ */
34
+ this.soft = false;
35
+ /**
36
+ * Enables blinking animation for the badge.
37
+ * Useful for drawing attention or indicating active status.
38
+ * @type {boolean}
39
+ * @default false
40
+ */
41
+ this.blink = false;
42
+ /**
43
+ * Sets the position of the badge relative to its container.
44
+ * @type {'top-right' | 'top-left' | 'bottom-right' | 'bottom-left'}
45
+ * @default 'top-right'
46
+ */
47
+ this.position = 'top-right';
48
+ this.classes = index$1.ce({
49
+ 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',
50
+ variants: {
51
+ size: {
52
+ small: 'gap-1 px-1 text-size-3',
53
+ medium: 'gap-1 py-0.5 px-1.5 text-size-4',
54
+ large: 'gap-2 py-1 px-2 text-size-5',
55
+ },
56
+ variant: {
57
+ dot: 'gap-0 p-0 text-[0px] leading-none',
58
+ text: '',
59
+ },
60
+ position: {
61
+ 'top-right': '-top-1 -right-1',
62
+ 'top-left': '-top-1 -left-1',
63
+ 'bottom-right': '-bottom-1 -right-1',
64
+ 'bottom-left': '-bottom-1 -left-1',
65
+ },
66
+ blink: {
67
+ true: 'after:content-[""] after:absolute after:rounded-full after:bg-[--bcm-badge-bg] after:animate-blink after:w-full after:h-full',
68
+ },
69
+ },
70
+ compoundVariants: [
71
+ {
72
+ variant: 'dot',
73
+ size: 'small',
74
+ class: 'size-1',
75
+ },
76
+ {
77
+ variant: 'dot',
78
+ size: 'medium',
79
+ class: 'size-1.5',
80
+ },
81
+ {
82
+ variant: 'dot',
83
+ size: 'large',
84
+ class: 'size-2',
85
+ },
86
+ ],
87
+ defaultVariants: {
88
+ variant: 'text',
89
+ size: 'medium',
90
+ position: 'top-right',
91
+ blink: false,
92
+ },
93
+ });
94
+ }
95
+ get offsetStyle() {
96
+ if (!this.offset)
97
+ return {};
98
+ const [x = 0, y = 0] = this.offset.split(',').map(val => val.trim());
99
+ return { transform: `translate(${x}px, ${y}px)` };
100
+ }
101
+ get badgeStyle() {
102
+ if (!this.color)
103
+ return {};
104
+ const variantType = this.soft ? 'soft' : 'vivid';
105
+ return {
106
+ '--bcm-badge-bg': `var(--bcm-ui-color-background-${variantType}-${this.color}-default)`,
107
+ '--bcm-badge-text': this.soft ? `var(--bcm-ui-color-text-palette-${this.color})` : 'var(--bcm-ui-color-text-base)',
108
+ };
109
+ }
110
+ render() {
111
+ return (index.h("div", { key: 'b0a8277ca8db5c5185934d3317d3eb9c9c1d716e', class: "relative inline-flex" }, index.h("slot", { key: 'c01defe477f2e3f4ea3044dea4ab888ec254c447' }), index.h("div", { key: '30cb7f923a995af3c648ea396fc65f4b8b7424be', role: "status", "aria-live": "polite", "aria-label": this.status ? `Status: ${this.status}` : undefined, class: this.classes({
112
+ size: this.size,
113
+ variant: this.variant,
114
+ position: this.position,
115
+ blink: this.blink,
116
+ }), style: Object.assign(Object.assign({}, this.badgeStyle), this.offsetStyle) }, this.variant == 'text' && index.h("slot", { key: 'ca64be7fb4f14e7287c93f2223894552b96a68e8', name: "badge" }, this.text))));
117
+ }
118
+ };
119
+ Badge.style = BcmBadgeStyle0;
120
+
121
+ exports.bcm_badge = Badge;
122
+
123
+ //# sourceMappingURL=bcm-badge.cjs.entry.js.map
@@ -0,0 +1 @@
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 '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}
@@ -0,0 +1,92 @@
1
+ 'use strict';
2
+
3
+ Object.defineProperty(exports, '__esModule', { value: true });
4
+
5
+ const index = require('./index-9a2c5938.js');
6
+ const index$1 = require('./index-310db2a6.js');
7
+
8
+ const basicBadgeCss = ":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-flex;height:-moz-fit-content;height:fit-content;width:-moz-fit-content;width:fit-content}.badge-content{color:var(--bcm-badge-text);font-weight:500}.bcm-ui-element{-webkit-font-smoothing:antialiased;-moz-osx-font-smoothing:grayscale;font-family:Inter,sans-serif}.inline-flex{display:inline-flex}.size-1{height:.25rem;width:.25rem}.size-1\\.5{height:.375rem;width:.375rem}.size-2{height:.5rem;width:.5rem}.select-none{user-select:none}.items-center{align-items:center}.justify-center{justify-content:center}.gap-0{gap:0}.whitespace-nowrap{white-space:nowrap}.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)}";
9
+ const BcmBasicBadgeStyle0 = basicBadgeCss;
10
+
11
+ const BasicBadge = class {
12
+ constructor(hostRef) {
13
+ index.registerInstance(this, hostRef);
14
+ /**
15
+ * Determines the size of the badge.
16
+ * @type {'small' | 'medium' | 'large'}
17
+ * @default 'medium'
18
+ */
19
+ this.size = 'medium';
20
+ /**
21
+ * Sets the visual variant of the badge.
22
+ * 'dot': Appears as a small dot indicator
23
+ * 'text': Displays content as text
24
+ * @type {'dot' | 'text'}
25
+ * @default 'text'
26
+ */
27
+ this.variant = 'text';
28
+ /**
29
+ * Enables soft color mode for the badge.
30
+ * When true, uses lighter tones and pastel colors.
31
+ * @type {boolean}
32
+ * @default false
33
+ */
34
+ this.soft = false;
35
+ this.classes = index$1.ce({
36
+ 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]',
37
+ variants: {
38
+ size: {
39
+ small: 'px-1 text-size-3',
40
+ medium: 'py-0.5 px-1.5 text-size-4',
41
+ large: 'py-1 px-2 text-size-5',
42
+ },
43
+ variant: {
44
+ dot: 'gap-0 p-0 text-[0px] leading-none',
45
+ text: '',
46
+ },
47
+ },
48
+ compoundVariants: [
49
+ {
50
+ variant: 'dot',
51
+ size: 'small',
52
+ class: 'size-1',
53
+ },
54
+ {
55
+ variant: 'dot',
56
+ size: 'medium',
57
+ class: 'size-1.5',
58
+ },
59
+ {
60
+ variant: 'dot',
61
+ size: 'large',
62
+ class: 'size-2',
63
+ },
64
+ ],
65
+ defaultVariants: {
66
+ variant: 'text',
67
+ size: 'medium',
68
+ blink: false,
69
+ },
70
+ });
71
+ }
72
+ get badgeStyle() {
73
+ if (!this.color)
74
+ return {};
75
+ const variantType = this.soft ? 'palette' : 'vivid';
76
+ return {
77
+ '--bcm-badge-bg': `var(--bcm-ui-color-background-${variantType}-${this.color}-default)`,
78
+ '--bcm-badge-text': this.soft ? `var(--bcm-ui-color-text-palette-${this.color})` : 'var(--bcm-ui-color-text-base)',
79
+ };
80
+ }
81
+ render() {
82
+ return (index.h("span", { key: '88bfcbdbe5a55de1a246e9ec5749c95fc308586c', part: "base", role: "status", "aria-live": "polite", style: this.badgeStyle, class: this.classes({
83
+ size: this.size,
84
+ variant: this.variant,
85
+ }) }, this.variant === 'text' && (index.h("span", { key: '69543870a331e5dd44ff5861118be51ec0eda479', class: "badge-content" }, index.h("slot", { key: '8dbf3236b8f768ca0a43d0d939a5f0708f26f928' })))));
86
+ }
87
+ };
88
+ BasicBadge.style = BcmBasicBadgeStyle0;
89
+
90
+ exports.bcm_basic_badge = BasicBadge;
91
+
92
+ //# sourceMappingURL=bcm-basic-badge.cjs.entry.js.map
@@ -0,0 +1 @@
1
+ {"file":"bcm-basic-badge.entry.cjs.js","mappings":";;;;;;;AAAA,MAAM,aAAa,GAAG,4tDAA4tD,CAAC;AACnvD,4BAAe,aAAa;;MCqBf,UAAU;IALvB;;;;;;;QAYE,SAAI,GAAiC,QAAQ,CAAC;;;;;;;;QAU9C,YAAO,GAAmB,MAAM,CAAC;;;;;;;QAkBjC,SAAI,GAAY,KAAK,CAAC;QAWd,YAAO,GAAGA,UAAE,CAAC;YACnB,IAAI,EAAE,iLAAiL;YACvL,QAAQ,EAAE;gBACR,IAAI,EAAE;oBACJ,KAAK,EAAE,kBAAkB;oBACzB,MAAM,EAAE,2BAA2B;oBACnC,KAAK,EAAE,uBAAuB;iBAC/B;gBACD,OAAO,EAAE;oBACP,GAAG,EAAE,mCAAmC;oBACxC,IAAI,EAAE,EAAE;iBACT;aACF;YACD,gBAAgB,EAAE;gBAChB;oBACE,OAAO,EAAE,KAAK;oBACd,IAAI,EAAE,OAAO;oBACb,KAAK,EAAE,QAAQ;iBAChB;gBACD;oBACE,OAAO,EAAE,KAAK;oBACd,IAAI,EAAE,QAAQ;oBACd,KAAK,EAAE,UAAU;iBAClB;gBACD;oBACE,OAAO,EAAE,KAAK;oBACd,IAAI,EAAE,OAAO;oBACb,KAAK,EAAE,QAAQ;iBAChB;aACF;YACD,eAAe,EAAE;gBACf,OAAO,EAAE,MAAM;gBACf,IAAI,EAAE,QAAQ;gBACd,KAAK,EAAE,KAAK;aACb;SACF,CAAC,CAAC;KAgCJ;IA9BC,IAAY,UAAU;QACpB,IAAI,CAAC,IAAI,CAAC,KAAK;YAAE,OAAO,EAAE,CAAC;QAC3B,MAAM,WAAW,GAAG,IAAI,CAAC,IAAI,GAAG,SAAS,GAAG,OAAO,CAAC;QAEpD,OAAO;YACL,gBAAgB,EAAE,iCAAiC,WAAW,IAAI,IAAI,CAAC,KAAK,WAAW;YACvF,kBAAkB,EAAE,IAAI,CAAC,IAAI,GAAG,mCAAmC,IAAI,CAAC,KAAK,GAAG,GAAG,+BAA+B;SACnH,CAAC;KACH;IAED,MAAM;QACJ,QACEC,mEACE,IAAI,EAAC,MAAM,EACX,IAAI,EAAC,QAAQ,eACH,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,CAAC,IAED,IAAI,CAAC,OAAO,KAAK,MAAM,KACtBA,mEAAM,KAAK,EAAC,eAAe,IACzBA,oEAAa,CACR,CACR,CACI,EACP;KACH;;;;;;","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 'tailwind-variants';\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}
@@ -83,10 +83,10 @@ const BcmButtonGroup = class {
83
83
  });
84
84
  }
85
85
  render() {
86
- return (index.h(index.Host, { key: '46b90f2d30cb7a20009a81264510d49a3afc5e09' }, index.h("div", { key: '270f01895044e9f891b7ba783f4f9b07308d9cfe', class: this.buttonGroupClass({
86
+ return (index.h(index.Host, { key: 'f3c8fc74dcc6b88bc5ff94ee74e85deebdcc5948' }, index.h("div", { key: '6aac96cedff122649792ac644a28cfefb0767efa', class: this.buttonGroupClass({
87
87
  orientation: this.orientation,
88
88
  fullWidth: this.fullWidth,
89
- }) }, index.h("slot", { key: '3e27849d072eafb554b1505ece75c24d48ec127b' }))));
89
+ }) }, index.h("slot", { key: '9cd5ba51032dba5c89c07bd8cace9f0d0ebc464d' }))));
90
90
  }
91
91
  get host() { return index.getElement(this); }
92
92
  };