bromcom-ui-next 0.1.5 → 0.1.7

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 (396) 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-056c9348.entry.js +2 -0
  5. package/dist/bromcom-ui/{p-5bee2e76.entry.js.map → p-056c9348.entry.js.map} +1 -1
  6. package/dist/bromcom-ui/p-0d0d6483.entry.js +2 -0
  7. package/dist/bromcom-ui/{p-e08b23ff.entry.js.map → p-0d0d6483.entry.js.map} +1 -1
  8. package/dist/bromcom-ui/p-13784cd7.entry.js +2 -0
  9. package/dist/bromcom-ui/p-13784cd7.entry.js.map +1 -0
  10. package/dist/bromcom-ui/p-13a245f6.js +2 -0
  11. package/dist/bromcom-ui/p-13a245f6.js.map +1 -0
  12. package/dist/bromcom-ui/p-15829c47.entry.js +2 -0
  13. package/dist/bromcom-ui/{p-53f21d16.entry.js.map → p-15829c47.entry.js.map} +1 -1
  14. package/dist/bromcom-ui/p-389f1976.entry.js +2 -0
  15. package/dist/bromcom-ui/p-389f1976.entry.js.map +1 -0
  16. package/dist/bromcom-ui/p-49b0e982.entry.js +2 -0
  17. package/dist/bromcom-ui/p-49b0e982.entry.js.map +1 -0
  18. package/dist/bromcom-ui/p-4b7294a3.entry.js +2 -0
  19. package/dist/bromcom-ui/{p-2bbd3c52.entry.js.map → p-4b7294a3.entry.js.map} +1 -1
  20. package/dist/bromcom-ui/p-55c4263c.entry.js +2 -0
  21. package/dist/bromcom-ui/p-55c4263c.entry.js.map +1 -0
  22. package/dist/bromcom-ui/{p-f9eeafa7.entry.js → p-58ee24a8.entry.js} +2 -2
  23. package/dist/bromcom-ui/p-625bbd86.entry.js +2 -0
  24. package/dist/bromcom-ui/p-625bbd86.entry.js.map +1 -0
  25. package/dist/bromcom-ui/p-729a870f.js.map +1 -1
  26. package/dist/bromcom-ui/p-7d8ad3dd.entry.js +2 -0
  27. package/dist/bromcom-ui/p-7d8ad3dd.entry.js.map +1 -0
  28. package/dist/bromcom-ui/p-9594cebb.js +2 -0
  29. package/dist/bromcom-ui/p-9594cebb.js.map +1 -0
  30. package/dist/bromcom-ui/p-9ab4d2be.entry.js +2 -0
  31. package/dist/bromcom-ui/p-9ab4d2be.entry.js.map +1 -0
  32. package/dist/bromcom-ui/p-a29e61a4.entry.js +2 -0
  33. package/dist/bromcom-ui/{p-7a1bf6a6.entry.js.map → p-a29e61a4.entry.js.map} +1 -1
  34. package/dist/bromcom-ui/p-ae16edd3.entry.js +2 -0
  35. package/dist/bromcom-ui/p-ae16edd3.entry.js.map +1 -0
  36. package/dist/bromcom-ui/p-ba2410ef.js +2 -0
  37. package/dist/bromcom-ui/p-ba2410ef.js.map +1 -0
  38. package/dist/bromcom-ui/p-bd0f7e78.entry.js +2 -0
  39. package/dist/bromcom-ui/p-bd0f7e78.entry.js.map +1 -0
  40. package/dist/bromcom-ui/p-bf69fc8a.entry.js +2 -0
  41. package/dist/bromcom-ui/p-bf69fc8a.entry.js.map +1 -0
  42. package/dist/bromcom-ui/p-c2b3945e.entry.js +2 -0
  43. package/dist/bromcom-ui/p-c2b3945e.entry.js.map +1 -0
  44. package/dist/bromcom-ui/p-c444235a.entry.js +2 -0
  45. package/dist/bromcom-ui/{p-63cb0933.entry.js.map → p-c444235a.entry.js.map} +1 -1
  46. package/dist/bromcom-ui/p-c995a48c.entry.js +2 -0
  47. package/dist/bromcom-ui/p-c995a48c.entry.js.map +1 -0
  48. package/dist/bromcom-ui/p-c9b736d9.js +3 -0
  49. package/dist/{cjs/index-4795c073.js.map → bromcom-ui/p-c9b736d9.js.map} +1 -1
  50. package/dist/bromcom-ui/p-cd271b49.entry.js +2 -0
  51. package/dist/bromcom-ui/p-cd271b49.entry.js.map +1 -0
  52. package/dist/bromcom-ui/{p-6abaf96f.entry.js → p-d57587e5.entry.js} +2 -2
  53. package/dist/bromcom-ui/p-e6025578.entry.js +2 -0
  54. package/dist/bromcom-ui/p-e6025578.entry.js.map +1 -0
  55. package/dist/bromcom-ui/p-e89ab4a7.entry.js +2 -0
  56. package/dist/bromcom-ui/p-e89ab4a7.entry.js.map +1 -0
  57. package/dist/bromcom-ui/{p-4f402148.entry.js → p-f2d8aa70.entry.js} +2 -2
  58. package/dist/bromcom-ui/p-f4e8a47d.entry.js +2 -0
  59. package/dist/bromcom-ui/p-f4e8a47d.entry.js.map +1 -0
  60. package/dist/bromcom-ui/p-f7890098.entry.js +2 -0
  61. package/dist/bromcom-ui/{p-f0ece968.entry.js.map → p-f7890098.entry.js.map} +1 -1
  62. package/dist/cjs/app-globals-29edfda4.js.map +1 -1
  63. package/dist/cjs/bcm-accordion-group.cjs.entry.js +1 -1
  64. package/dist/cjs/bcm-accordion.cjs.entry.js +2 -2
  65. package/dist/cjs/bcm-accordion.cjs.entry.js.map +1 -1
  66. package/dist/cjs/bcm-alert.cjs.entry.js +1 -1
  67. package/dist/cjs/bcm-avatar_4.cjs.entry.js +12 -6
  68. package/dist/cjs/bcm-avatar_4.cjs.entry.js.map +1 -1
  69. package/dist/cjs/bcm-button-group.cjs.entry.js +97 -0
  70. package/dist/cjs/bcm-button-group.cjs.entry.js.map +1 -0
  71. package/dist/cjs/bcm-checkbox.cjs.entry.js +226 -0
  72. package/dist/cjs/bcm-checkbox.cjs.entry.js.map +1 -0
  73. package/dist/cjs/bcm-chip.cjs.entry.js +3 -3
  74. package/dist/cjs/bcm-chip.cjs.entry.js.map +1 -1
  75. package/dist/cjs/bcm-divider.cjs.entry.js +2 -2
  76. package/dist/cjs/bcm-dropdown-item.cjs.entry.js +4 -4
  77. package/dist/cjs/bcm-dropdown-item.cjs.entry.js.map +1 -1
  78. package/dist/cjs/bcm-dropdown.cjs.entry.js +3 -3
  79. package/dist/cjs/bcm-dropdown.cjs.entry.js.map +1 -1
  80. package/dist/cjs/bcm-input.cjs.entry.js +7 -6
  81. package/dist/cjs/bcm-input.cjs.entry.js.map +1 -1
  82. package/dist/cjs/bcm-linked.cjs.entry.js +9 -1899
  83. package/dist/cjs/bcm-linked.cjs.entry.js.map +1 -1
  84. package/dist/cjs/bcm-pop-confirm.cjs.entry.js +252 -0
  85. package/dist/cjs/bcm-pop-confirm.cjs.entry.js.map +1 -0
  86. package/dist/cjs/bcm-popover.cjs.entry.js +191 -0
  87. package/dist/cjs/bcm-popover.cjs.entry.js.map +1 -0
  88. package/dist/cjs/bcm-radio-group.cjs.entry.js +171 -0
  89. package/dist/cjs/bcm-radio-group.cjs.entry.js.map +1 -0
  90. package/dist/cjs/bcm-radio.cjs.entry.js +173 -0
  91. package/dist/cjs/bcm-radio.cjs.entry.js.map +1 -0
  92. package/dist/cjs/bcm-segmented-picker-option.cjs.entry.js +109 -0
  93. package/dist/cjs/bcm-segmented-picker-option.cjs.entry.js.map +1 -0
  94. package/dist/cjs/bcm-segmented-picker.cjs.entry.js +146 -0
  95. package/dist/cjs/bcm-segmented-picker.cjs.entry.js.map +1 -0
  96. package/dist/cjs/bcm-switch.cjs.entry.js +188 -0
  97. package/dist/cjs/bcm-switch.cjs.entry.js.map +1 -0
  98. package/dist/cjs/bcm-tabs-content.cjs.entry.js +22 -0
  99. package/dist/cjs/bcm-tabs-content.cjs.entry.js.map +1 -0
  100. package/dist/cjs/bcm-tabs-list.cjs.entry.js +43 -0
  101. package/dist/cjs/bcm-tabs-list.cjs.entry.js.map +1 -0
  102. package/dist/cjs/bcm-tabs-trigger.cjs.entry.js +92 -0
  103. package/dist/cjs/bcm-tabs-trigger.cjs.entry.js.map +1 -0
  104. package/dist/cjs/bcm-tabs.cjs.entry.js +211 -0
  105. package/dist/cjs/bcm-tabs.cjs.entry.js.map +1 -0
  106. package/dist/cjs/bcm-text.cjs.entry.js +3 -3
  107. package/dist/cjs/bcm-text.cjs.entry.js.map +1 -1
  108. package/dist/cjs/bcm-textarea.cjs.entry.js +8 -7
  109. package/dist/cjs/bcm-textarea.cjs.entry.js.map +1 -1
  110. package/dist/cjs/bcm-tooltip.cjs.entry.js +187 -0
  111. package/dist/cjs/bcm-tooltip.cjs.entry.js.map +1 -0
  112. package/dist/cjs/bromcom-ui.cjs.js +2 -2
  113. package/dist/cjs/floating-ui.dom.esm-3ec8404c.js +2085 -0
  114. package/dist/cjs/floating-ui.dom.esm-3ec8404c.js.map +1 -0
  115. package/dist/{components/p-31354aaa.js → cjs/generate-id-f6982042.js} +4 -47
  116. package/dist/cjs/generate-id-f6982042.js.map +1 -0
  117. package/dist/cjs/{index-4795c073.js → index-9a2c5938.js} +36 -7
  118. package/dist/{bromcom-ui/p-15fe392b.js.map → cjs/index-9a2c5938.js.map} +1 -1
  119. package/dist/cjs/loader.cjs.js +2 -2
  120. package/dist/cjs/validation-messages-18389279.js +52 -0
  121. package/dist/cjs/validation-messages-18389279.js.map +1 -0
  122. package/dist/collection/collection-manifest.json +15 -1
  123. package/dist/collection/components/accordion/accordion.css +1 -1
  124. package/dist/collection/components/avatar/avatar.css +1 -1
  125. package/dist/collection/components/badge/badge.css +1 -1
  126. package/dist/collection/components/button/button.component.js +33 -2
  127. package/dist/collection/components/button/button.component.js.map +1 -1
  128. package/dist/collection/components/button/button.css +1 -1
  129. package/dist/collection/components/button/types.js.map +1 -1
  130. package/dist/collection/components/button-group/button-group.component.js +252 -0
  131. package/dist/collection/components/button-group/button-group.component.js.map +1 -0
  132. package/dist/collection/components/button-group/button-group.css +1 -0
  133. package/dist/collection/components/button-group/types.js +2 -0
  134. package/dist/collection/components/button-group/types.js.map +1 -0
  135. package/dist/collection/components/checkbox/checkbox.component.js +440 -0
  136. package/dist/collection/components/checkbox/checkbox.component.js.map +1 -0
  137. package/dist/collection/components/checkbox/checkbox.css +1 -0
  138. package/dist/collection/components/chip/chip.component.js +1 -1
  139. package/dist/collection/components/chip/chip.css +1 -1
  140. package/dist/collection/components/divider/divider.component.js +1 -1
  141. package/dist/collection/components/dropdown/dropdown.component.js +1 -1
  142. package/dist/collection/components/dropdown/dropdown.css +1 -1
  143. package/dist/collection/components/dropdown-item/dropdown-item.component.js +2 -2
  144. package/dist/collection/components/dropdown-item/dropdown-item.css +1 -1
  145. package/dist/collection/components/input/input.component.js +2 -2
  146. package/dist/collection/components/input/input.css +1 -1
  147. package/dist/collection/components/linked/linked.component.js +2 -2
  148. package/dist/collection/components/linked/linked.css +1 -1
  149. package/dist/collection/components/pop-confirm/pop-confirm.component.js +629 -0
  150. package/dist/collection/components/pop-confirm/pop-confirm.component.js.map +1 -0
  151. package/dist/collection/components/pop-confirm/pop-confirm.css +1 -0
  152. package/dist/collection/components/popover/popover.component.js +477 -0
  153. package/dist/collection/components/popover/popover.component.js.map +1 -0
  154. package/dist/collection/components/popover/popover.css +1 -0
  155. package/dist/collection/components/radio/radio.component.js +502 -0
  156. package/dist/collection/components/radio/radio.component.js.map +1 -0
  157. package/dist/collection/components/radio/radio.css +1 -0
  158. package/dist/collection/components/radio-group/radio-group.component.js +523 -0
  159. package/dist/collection/components/radio-group/radio-group.component.js.map +1 -0
  160. package/dist/collection/components/radio-group/radio-group.css +1 -0
  161. package/dist/collection/components/segmented-picker/segmented-picker-option.component.js +253 -0
  162. package/dist/collection/components/segmented-picker/segmented-picker-option.component.js.map +1 -0
  163. package/dist/collection/components/segmented-picker/segmented-picker-option.css +1 -0
  164. package/dist/collection/components/segmented-picker/segmented-picker.component.js +269 -0
  165. package/dist/collection/components/segmented-picker/segmented-picker.component.js.map +1 -0
  166. package/dist/collection/components/segmented-picker/segmented-picker.css +1 -0
  167. package/dist/collection/components/segmented-picker/types.js +2 -0
  168. package/dist/collection/components/segmented-picker/types.js.map +1 -0
  169. package/dist/collection/components/switch/switch.component.js +452 -0
  170. package/dist/collection/components/switch/switch.component.js.map +1 -0
  171. package/dist/collection/components/switch/switch.css +1 -0
  172. package/dist/collection/components/tabs/bcm-tabs.css +1 -0
  173. package/dist/collection/components/tabs/tabs-content.component.js +46 -0
  174. package/dist/collection/components/tabs/tabs-content.component.js.map +1 -0
  175. package/dist/collection/components/tabs/tabs-content.css +1 -0
  176. package/dist/collection/components/tabs/tabs-list.component.js +46 -0
  177. package/dist/collection/components/tabs/tabs-list.component.js.map +1 -0
  178. package/dist/collection/components/tabs/tabs-list.css +1 -0
  179. package/dist/collection/components/tabs/tabs-trigger.component.js +195 -0
  180. package/dist/collection/components/tabs/tabs-trigger.component.js.map +1 -0
  181. package/dist/collection/components/tabs/tabs-trigger.css +1 -0
  182. package/dist/collection/components/tabs/tabs.component.js +422 -0
  183. package/dist/collection/components/tabs/tabs.component.js.map +1 -0
  184. package/dist/collection/components/text/text.component.js +1 -1
  185. package/dist/collection/components/text/text.css +1 -1
  186. package/dist/collection/components/textarea/textarea.component.js +3 -3
  187. package/dist/collection/components/textarea/textarea.css +1 -1
  188. package/dist/collection/components/tooltip/tooltip.component.js +385 -0
  189. package/dist/collection/components/tooltip/tooltip.component.js.map +1 -0
  190. package/dist/collection/components/tooltip/tooltip.css +1 -0
  191. package/dist/collection/styles/theme-variables.js +414 -18
  192. package/dist/collection/styles/theme-variables.js.map +1 -1
  193. package/dist/components/bcm-accordion-group.js +1 -1
  194. package/dist/components/bcm-accordion.js +2 -2
  195. package/dist/components/bcm-accordion.js.map +1 -1
  196. package/dist/components/bcm-alert.js +1 -1
  197. package/dist/components/bcm-avatar.js +3 -3
  198. package/dist/components/bcm-avatar.js.map +1 -1
  199. package/dist/components/bcm-badge.js +1 -1
  200. package/dist/components/bcm-basic-badge.js +1 -1
  201. package/dist/components/bcm-button-group.d.ts +11 -0
  202. package/dist/components/bcm-button-group.js +120 -0
  203. package/dist/components/bcm-button-group.js.map +1 -0
  204. package/dist/components/bcm-button.js +1 -1
  205. package/dist/components/bcm-checkbox.d.ts +11 -0
  206. package/dist/components/bcm-checkbox.js +256 -0
  207. package/dist/components/bcm-checkbox.js.map +1 -0
  208. package/dist/components/bcm-chip.js +3 -3
  209. package/dist/components/bcm-chip.js.map +1 -1
  210. package/dist/components/bcm-divider.js +2 -2
  211. package/dist/components/bcm-dropdown-item.js +4 -4
  212. package/dist/components/bcm-dropdown-item.js.map +1 -1
  213. package/dist/components/bcm-dropdown.js +5 -5
  214. package/dist/components/bcm-dropdown.js.map +1 -1
  215. package/dist/components/bcm-input.js +6 -5
  216. package/dist/components/bcm-input.js.map +1 -1
  217. package/dist/components/bcm-linked.js +1 -1
  218. package/dist/components/bcm-pop-confirm.d.ts +11 -0
  219. package/dist/components/bcm-pop-confirm.js +288 -0
  220. package/dist/components/bcm-pop-confirm.js.map +1 -0
  221. package/dist/components/bcm-popover.d.ts +11 -0
  222. package/dist/components/bcm-popover.js +216 -0
  223. package/dist/components/bcm-popover.js.map +1 -0
  224. package/dist/components/bcm-radio-group.d.ts +11 -0
  225. package/dist/components/bcm-radio-group.js +200 -0
  226. package/dist/components/bcm-radio-group.js.map +1 -0
  227. package/dist/components/bcm-radio.d.ts +11 -0
  228. package/dist/components/bcm-radio.js +198 -0
  229. package/dist/components/bcm-radio.js.map +1 -0
  230. package/dist/components/bcm-segmented-picker-option.d.ts +11 -0
  231. package/dist/components/bcm-segmented-picker-option.js +131 -0
  232. package/dist/components/bcm-segmented-picker-option.js.map +1 -0
  233. package/dist/components/bcm-segmented-picker.d.ts +11 -0
  234. package/dist/components/bcm-segmented-picker.js +170 -0
  235. package/dist/components/bcm-segmented-picker.js.map +1 -0
  236. package/dist/components/bcm-switch.d.ts +11 -0
  237. package/dist/components/bcm-switch.js +215 -0
  238. package/dist/components/bcm-switch.js.map +1 -0
  239. package/dist/components/bcm-tabs-content.d.ts +11 -0
  240. package/dist/components/bcm-tabs-content.js +39 -0
  241. package/dist/components/bcm-tabs-content.js.map +1 -0
  242. package/dist/components/bcm-tabs-list.d.ts +11 -0
  243. package/dist/components/bcm-tabs-list.js +58 -0
  244. package/dist/components/bcm-tabs-list.js.map +1 -0
  245. package/dist/components/bcm-tabs-trigger.d.ts +11 -0
  246. package/dist/components/bcm-tabs-trigger.js +112 -0
  247. package/dist/components/bcm-tabs-trigger.js.map +1 -0
  248. package/dist/components/bcm-tabs.d.ts +11 -0
  249. package/dist/components/bcm-tabs.js +239 -0
  250. package/dist/components/bcm-tabs.js.map +1 -0
  251. package/dist/components/bcm-text.js +3 -3
  252. package/dist/components/bcm-text.js.map +1 -1
  253. package/dist/components/bcm-textarea.js +7 -6
  254. package/dist/components/bcm-textarea.js.map +1 -1
  255. package/dist/components/bcm-tooltip.d.ts +11 -0
  256. package/dist/components/bcm-tooltip.js +211 -0
  257. package/dist/components/bcm-tooltip.js.map +1 -0
  258. package/dist/components/index.js +1 -1
  259. package/dist/components/p-13a245f6.js +48 -0
  260. package/dist/components/p-13a245f6.js.map +1 -0
  261. package/dist/components/{p-e918f815.js → p-49f20ff7.js} +3 -3
  262. package/dist/components/{p-e918f815.js.map → p-49f20ff7.js.map} +1 -1
  263. package/dist/components/{p-13582168.js → p-5377117d.js} +32 -6
  264. package/dist/components/p-5377117d.js.map +1 -0
  265. package/dist/components/p-5f7a0d0d.js +107 -0
  266. package/dist/components/p-5f7a0d0d.js.map +1 -0
  267. package/dist/components/{p-613ee92d.js → p-9594cebb.js} +201 -120
  268. package/dist/components/p-9594cebb.js.map +1 -0
  269. package/dist/{esm/validation-messages-a29d53be.js → components/p-ba2410ef.js} +2 -47
  270. package/dist/components/p-ba2410ef.js.map +1 -0
  271. package/dist/components/{p-0063a3d9.js → p-e6567774.js} +12 -5
  272. package/dist/components/p-e6567774.js.map +1 -0
  273. package/dist/esm/app-globals-bfa07b76.js.map +1 -1
  274. package/dist/esm/bcm-accordion-group.entry.js +1 -1
  275. package/dist/esm/bcm-accordion.entry.js +2 -2
  276. package/dist/esm/bcm-accordion.entry.js.map +1 -1
  277. package/dist/esm/bcm-alert.entry.js +1 -1
  278. package/dist/esm/bcm-avatar_4.entry.js +12 -6
  279. package/dist/esm/bcm-avatar_4.entry.js.map +1 -1
  280. package/dist/esm/bcm-button-group.entry.js +93 -0
  281. package/dist/esm/bcm-button-group.entry.js.map +1 -0
  282. package/dist/esm/bcm-checkbox.entry.js +222 -0
  283. package/dist/esm/bcm-checkbox.entry.js.map +1 -0
  284. package/dist/esm/bcm-chip.entry.js +3 -3
  285. package/dist/esm/bcm-chip.entry.js.map +1 -1
  286. package/dist/esm/bcm-divider.entry.js +2 -2
  287. package/dist/esm/bcm-dropdown-item.entry.js +4 -4
  288. package/dist/esm/bcm-dropdown-item.entry.js.map +1 -1
  289. package/dist/esm/bcm-dropdown.entry.js +3 -3
  290. package/dist/esm/bcm-dropdown.entry.js.map +1 -1
  291. package/dist/esm/bcm-input.entry.js +6 -5
  292. package/dist/esm/bcm-input.entry.js.map +1 -1
  293. package/dist/esm/bcm-linked.entry.js +5 -1895
  294. package/dist/esm/bcm-linked.entry.js.map +1 -1
  295. package/dist/esm/bcm-pop-confirm.entry.js +248 -0
  296. package/dist/esm/bcm-pop-confirm.entry.js.map +1 -0
  297. package/dist/esm/bcm-popover.entry.js +187 -0
  298. package/dist/esm/bcm-popover.entry.js.map +1 -0
  299. package/dist/esm/bcm-radio-group.entry.js +167 -0
  300. package/dist/esm/bcm-radio-group.entry.js.map +1 -0
  301. package/dist/esm/bcm-radio.entry.js +169 -0
  302. package/dist/esm/bcm-radio.entry.js.map +1 -0
  303. package/dist/esm/bcm-segmented-picker-option.entry.js +105 -0
  304. package/dist/esm/bcm-segmented-picker-option.entry.js.map +1 -0
  305. package/dist/esm/bcm-segmented-picker.entry.js +142 -0
  306. package/dist/esm/bcm-segmented-picker.entry.js.map +1 -0
  307. package/dist/esm/bcm-switch.entry.js +184 -0
  308. package/dist/esm/bcm-switch.entry.js.map +1 -0
  309. package/dist/esm/bcm-tabs-content.entry.js +18 -0
  310. package/dist/esm/bcm-tabs-content.entry.js.map +1 -0
  311. package/dist/esm/bcm-tabs-list.entry.js +39 -0
  312. package/dist/esm/bcm-tabs-list.entry.js.map +1 -0
  313. package/dist/esm/bcm-tabs-trigger.entry.js +88 -0
  314. package/dist/esm/bcm-tabs-trigger.entry.js.map +1 -0
  315. package/dist/esm/bcm-tabs.entry.js +207 -0
  316. package/dist/esm/bcm-tabs.entry.js.map +1 -0
  317. package/dist/esm/bcm-text.entry.js +3 -3
  318. package/dist/esm/bcm-text.entry.js.map +1 -1
  319. package/dist/esm/bcm-textarea.entry.js +7 -6
  320. package/dist/esm/bcm-textarea.entry.js.map +1 -1
  321. package/dist/esm/bcm-tooltip.entry.js +183 -0
  322. package/dist/esm/bcm-tooltip.entry.js.map +1 -0
  323. package/dist/esm/bromcom-ui.js +3 -3
  324. package/dist/esm/floating-ui.dom.esm-480e0f15.js +2078 -0
  325. package/dist/esm/floating-ui.dom.esm-480e0f15.js.map +1 -0
  326. package/dist/{cjs/validation-messages-c36e5c31.js → esm/generate-id-3b2fcb93.js} +2 -52
  327. package/dist/esm/generate-id-3b2fcb93.js.map +1 -0
  328. package/dist/esm/{index-27cc1bac.js → index-8571fbf7.js} +36 -8
  329. package/dist/esm/index-8571fbf7.js.map +1 -0
  330. package/dist/esm/loader.js +3 -3
  331. package/dist/esm/validation-messages-af4512f0.js +48 -0
  332. package/dist/esm/validation-messages-af4512f0.js.map +1 -0
  333. package/dist/types/components/button/button.component.d.ts +3 -1
  334. package/dist/types/components/button/types.d.ts +4 -4
  335. package/dist/types/components/button-group/button-group.component.d.ts +25 -0
  336. package/dist/types/components/button-group/types.d.ts +2 -0
  337. package/dist/types/components/checkbox/checkbox.component.d.ts +99 -0
  338. package/dist/types/components/pop-confirm/pop-confirm.component.d.ts +195 -0
  339. package/dist/types/components/popover/popover.component.d.ts +118 -0
  340. package/dist/types/components/radio/radio.component.d.ts +105 -0
  341. package/dist/types/components/radio-group/radio-group.component.d.ts +124 -0
  342. package/dist/types/components/segmented-picker/segmented-picker-option.component.d.ts +30 -0
  343. package/dist/types/components/segmented-picker/segmented-picker.component.d.ts +35 -0
  344. package/dist/types/components/segmented-picker/types.d.ts +1 -0
  345. package/dist/types/components/switch/switch.component.d.ts +62 -0
  346. package/dist/types/components/tabs/tabs-content.component.d.ts +13 -0
  347. package/dist/types/components/tabs/tabs-list.component.d.ts +12 -0
  348. package/dist/types/components/tabs/tabs-trigger.component.d.ts +41 -0
  349. package/dist/types/components/tabs/tabs.component.d.ts +88 -0
  350. package/dist/types/components/tooltip/tooltip.component.d.ts +86 -0
  351. package/dist/types/components.d.ts +2576 -819
  352. package/dist/types/styles/theme-variables.d.ts +399 -3
  353. package/package.json +1 -1
  354. package/dist/bromcom-ui/p-15fe392b.js +0 -3
  355. package/dist/bromcom-ui/p-2bbd3c52.entry.js +0 -2
  356. package/dist/bromcom-ui/p-2f1d87a7.entry.js +0 -2
  357. package/dist/bromcom-ui/p-2f1d87a7.entry.js.map +0 -1
  358. package/dist/bromcom-ui/p-31354aaa.js +0 -2
  359. package/dist/bromcom-ui/p-31354aaa.js.map +0 -1
  360. package/dist/bromcom-ui/p-53f21d16.entry.js +0 -2
  361. package/dist/bromcom-ui/p-5737e7de.entry.js +0 -2
  362. package/dist/bromcom-ui/p-5737e7de.entry.js.map +0 -1
  363. package/dist/bromcom-ui/p-5bee2e76.entry.js +0 -2
  364. package/dist/bromcom-ui/p-63cb0933.entry.js +0 -2
  365. package/dist/bromcom-ui/p-7a1bf6a6.entry.js +0 -2
  366. package/dist/bromcom-ui/p-e08b23ff.entry.js +0 -2
  367. package/dist/bromcom-ui/p-f0ece968.entry.js +0 -2
  368. package/dist/bromcom-ui/styles/theme-variables.ts +0 -369
  369. package/dist/bromcom-ui/styles/themes/index.css +0 -1
  370. package/dist/bromcom-ui/styles/themes/library/default.css +0 -73
  371. package/dist/bromcom-ui/styles/variables/box-shadow.css +0 -15
  372. package/dist/bromcom-ui/styles/variables/colors-dark.css +0 -314
  373. package/dist/bromcom-ui/styles/variables/colors-light.css +0 -325
  374. package/dist/bromcom-ui/styles/variables/font-size-rem.css +0 -33
  375. package/dist/bromcom-ui/styles/variables/font-size.css +0 -33
  376. package/dist/bromcom-ui/styles/variables/index.css +0 -6
  377. package/dist/cjs/validation-messages-c36e5c31.js.map +0 -1
  378. package/dist/collection/styles/theme-variables.ts +0 -369
  379. package/dist/collection/styles/themes/index.css +0 -1
  380. package/dist/collection/styles/themes/library/default.css +0 -73
  381. package/dist/collection/styles/variables/box-shadow.css +0 -15
  382. package/dist/collection/styles/variables/colors-dark.css +0 -314
  383. package/dist/collection/styles/variables/colors-light.css +0 -325
  384. package/dist/collection/styles/variables/font-size-rem.css +0 -33
  385. package/dist/collection/styles/variables/font-size.css +0 -33
  386. package/dist/collection/styles/variables/index.css +0 -6
  387. package/dist/components/p-0063a3d9.js.map +0 -1
  388. package/dist/components/p-13582168.js.map +0 -1
  389. package/dist/components/p-31354aaa.js.map +0 -1
  390. package/dist/components/p-613ee92d.js.map +0 -1
  391. package/dist/esm/index-27cc1bac.js.map +0 -1
  392. package/dist/esm/validation-messages-a29d53be.js.map +0 -1
  393. package/dist/tailwind.config.js +0 -32
  394. /package/dist/bromcom-ui/{p-f9eeafa7.entry.js.map → p-58ee24a8.entry.js.map} +0 -0
  395. /package/dist/bromcom-ui/{p-6abaf96f.entry.js.map → p-d57587e5.entry.js.map} +0 -0
  396. /package/dist/bromcom-ui/{p-4f402148.entry.js.map → p-f2d8aa70.entry.js.map} +0 -0
@@ -0,0 +1,195 @@
1
+ import { h, Host } from "@stencil/core";
2
+ import { tv } from "tailwind-variants";
3
+ /**
4
+ * @description Tab trigger component that functions as a clickable tab button
5
+ * @slot - Default slot for tab label content
6
+ */
7
+ export class BcmTabsTrigger {
8
+ constructor() {
9
+ /**
10
+ * Whether the tab is currently active
11
+ */
12
+ this.active = false;
13
+ /**
14
+ * Size of the tab
15
+ */
16
+ this.size = 'medium';
17
+ /**
18
+ * Whether the tab is disabled
19
+ */
20
+ this.disabled = false;
21
+ /**
22
+ * Tailwind variants configuration for styling
23
+ */
24
+ this.class = tv({
25
+ slots: {
26
+ tab: 'bcm-ui-element text-center flex flex-row justify-center items-center font-medium transition-all duration-200 ease-in-out py-1 px-3 w-full bg-white border-none',
27
+ borderLine: 'bottom-0 w-full left-0 right-0 h-[2px] bg-color-primary transition-all duration-200 ease-in-out',
28
+ },
29
+ variants: {
30
+ size: {
31
+ small: { tab: 'text-size-4 gap-2' },
32
+ medium: { tab: 'text-size-5 gap-2.5' },
33
+ large: { tab: 'text-size-6 gap-3' },
34
+ },
35
+ active: {
36
+ true: {
37
+ tab: 'text-color-primary',
38
+ },
39
+ false: {
40
+ tab: 'text-color',
41
+ },
42
+ },
43
+ disabled: {
44
+ true: {
45
+ tab: 'cursor-not-allowed text-color-disabled',
46
+ borderLine: 'bg-[--bcm-ui-color-text-disabled]',
47
+ },
48
+ false: {
49
+ tab: 'cursor-pointer text-color hover:text-color-primary',
50
+ borderLine: 'bg-[--bcm-ui-color-text-default]',
51
+ },
52
+ },
53
+ },
54
+ defaultVariants: {
55
+ size: 'medium',
56
+ active: false,
57
+ disabled: false,
58
+ },
59
+ }, {
60
+ twMerge: false,
61
+ });
62
+ }
63
+ /**
64
+ * Handles click events on the tab
65
+ * Emits bcmTabSelected event with tab value if not disabled
66
+ */
67
+ handleClick() {
68
+ if (this.disabled)
69
+ return;
70
+ this.bcmTabSelected.emit(this.value);
71
+ }
72
+ render() {
73
+ const { tab, borderLine } = this.class({
74
+ size: this.size,
75
+ active: this.active,
76
+ disabled: this.disabled,
77
+ });
78
+ return (h(Host, { key: 'd55ce1eaa9290ffe2d47f6a0fa747cf9dd9f1b7c', role: "tab", "aria-selected": this.active.toString(), "aria-disabled": this.disabled }, h("button", { key: 'd9dcc8685a2007e0c8f234913e461de90916a32d', class: tab(), disabled: this.disabled, part: "tab", onClick: () => this.handleClick() }, h("slot", { key: '4ef0ed0302f2fedd966e461a77fd3f79bcb3c6c0' })), h("div", { key: 'a0afbb81a99afe7eeab0917a824e67078c4c0636', class: borderLine() })));
79
+ }
80
+ static get is() { return "bcm-tabs-trigger"; }
81
+ static get encapsulation() { return "shadow"; }
82
+ static get originalStyleUrls() {
83
+ return {
84
+ "$": ["tabs-trigger.css"]
85
+ };
86
+ }
87
+ static get styleUrls() {
88
+ return {
89
+ "$": ["tabs-trigger.css"]
90
+ };
91
+ }
92
+ static get properties() {
93
+ return {
94
+ "value": {
95
+ "type": "string",
96
+ "mutable": false,
97
+ "complexType": {
98
+ "original": "string",
99
+ "resolved": "string",
100
+ "references": {}
101
+ },
102
+ "required": false,
103
+ "optional": false,
104
+ "docs": {
105
+ "tags": [],
106
+ "text": "Unique identifier value for the tab"
107
+ },
108
+ "getter": false,
109
+ "setter": false,
110
+ "attribute": "value",
111
+ "reflect": true
112
+ },
113
+ "active": {
114
+ "type": "boolean",
115
+ "mutable": false,
116
+ "complexType": {
117
+ "original": "boolean",
118
+ "resolved": "boolean",
119
+ "references": {}
120
+ },
121
+ "required": false,
122
+ "optional": false,
123
+ "docs": {
124
+ "tags": [],
125
+ "text": "Whether the tab is currently active"
126
+ },
127
+ "getter": false,
128
+ "setter": false,
129
+ "attribute": "active",
130
+ "reflect": true,
131
+ "defaultValue": "false"
132
+ },
133
+ "size": {
134
+ "type": "string",
135
+ "mutable": false,
136
+ "complexType": {
137
+ "original": "'small' | 'medium' | 'large'",
138
+ "resolved": "\"large\" | \"medium\" | \"small\"",
139
+ "references": {}
140
+ },
141
+ "required": false,
142
+ "optional": false,
143
+ "docs": {
144
+ "tags": [],
145
+ "text": "Size of the tab"
146
+ },
147
+ "getter": false,
148
+ "setter": false,
149
+ "attribute": "size",
150
+ "reflect": true,
151
+ "defaultValue": "'medium'"
152
+ },
153
+ "disabled": {
154
+ "type": "boolean",
155
+ "mutable": false,
156
+ "complexType": {
157
+ "original": "boolean",
158
+ "resolved": "boolean",
159
+ "references": {}
160
+ },
161
+ "required": false,
162
+ "optional": false,
163
+ "docs": {
164
+ "tags": [],
165
+ "text": "Whether the tab is disabled"
166
+ },
167
+ "getter": false,
168
+ "setter": false,
169
+ "attribute": "disabled",
170
+ "reflect": true,
171
+ "defaultValue": "false"
172
+ }
173
+ };
174
+ }
175
+ static get events() {
176
+ return [{
177
+ "method": "bcmTabSelected",
178
+ "name": "bcmTabSelected",
179
+ "bubbles": false,
180
+ "cancelable": true,
181
+ "composed": false,
182
+ "docs": {
183
+ "tags": [],
184
+ "text": "Event emitted when this tab is selected"
185
+ },
186
+ "complexType": {
187
+ "original": "string",
188
+ "resolved": "string",
189
+ "references": {}
190
+ }
191
+ }];
192
+ }
193
+ static get elementRef() { return "el"; }
194
+ }
195
+ //# sourceMappingURL=tabs-trigger.component.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"tabs-trigger.component.js","sourceRoot":"","sources":["../../../src/components/tabs/tabs-trigger.component.tsx"],"names":[],"mappings":"AAAA,OAAO,EAAE,SAAS,EAAE,IAAI,EAAE,CAAC,EAAE,IAAI,EAAE,OAAO,EAAE,KAAK,EAAoC,MAAM,eAAe,CAAC;AAC3G,OAAO,EAAE,EAAE,EAAE,MAAM,mBAAmB,CAAC;AAEvC;;;GAGG;AAMH,MAAM,OAAO,cAAc;IAL3B;QAiBI;;WAEG;QAEH,WAAM,GAAY,KAAK,CAAC;QAExB;;WAEG;QAEH,SAAI,GAAiC,QAAQ,CAAC;QAE9C;;WAEG;QAEH,aAAQ,GAAY,KAAK,CAAC;QAsB1B;;WAEG;QACK,UAAK,GAAG,EAAE,CACd;YACI,KAAK,EAAE;gBACH,GAAG,EAAE,gKAAgK;gBACrK,UAAU,EAAE,iGAAiG;aAChH;YACD,QAAQ,EAAE;gBACN,IAAI,EAAE;oBACF,KAAK,EAAE,EAAE,GAAG,EAAE,mBAAmB,EAAE;oBACnC,MAAM,EAAE,EAAE,GAAG,EAAE,qBAAqB,EAAE;oBACtC,KAAK,EAAE,EAAE,GAAG,EAAE,mBAAmB,EAAE;iBACtC;gBACD,MAAM,EAAE;oBACJ,IAAI,EAAE;wBACF,GAAG,EAAE,oBAAoB;qBAC5B;oBACD,KAAK,EAAE;wBACH,GAAG,EAAE,YAAY;qBACpB;iBACJ;gBACD,QAAQ,EAAE;oBACN,IAAI,EAAE;wBACF,GAAG,EAAE,wCAAwC;wBAC7C,UAAU,EAAE,mCAAmC;qBAClD;oBACD,KAAK,EAAE;wBACH,GAAG,EAAE,oDAAoD;wBACzD,UAAU,EAAE,kCAAkC;qBACjD;iBACJ;aACJ;YACD,eAAe,EAAE;gBACb,IAAI,EAAE,QAAQ;gBACd,MAAM,EAAE,KAAK;gBACb,QAAQ,EAAE,KAAK;aAClB;SACJ,EACD;YACI,OAAO,EAAE,KAAK;SACjB,CACJ,CAAC;KAiBL;IArEG;;;OAGG;IACK,WAAW;QACf,IAAI,IAAI,CAAC,QAAQ;YAAE,OAAO;QAC1B,IAAI,CAAC,cAAc,CAAC,IAAI,CAAC,IAAI,CAAC,KAAK,CAAC,CAAC;IACzC,CAAC;IA+CD,MAAM;QACF,MAAM,EAAE,GAAG,EAAE,UAAU,EAAE,GAAG,IAAI,CAAC,KAAK,CAAC;YACnC,IAAI,EAAE,IAAI,CAAC,IAAI;YACf,MAAM,EAAE,IAAI,CAAC,MAAM;YACnB,QAAQ,EAAE,IAAI,CAAC,QAAQ;SAC1B,CAAC,CAAC;QACH,OAAO,CACH,EAAC,IAAI,qDAAC,IAAI,EAAC,KAAK,mBAAgB,IAAI,CAAC,MAAM,CAAC,QAAQ,EAAE,mBAAiB,IAAI,CAAC,QAAQ;YAChF,+DAAQ,KAAK,EAAE,GAAG,EAAE,EAAE,QAAQ,EAAE,IAAI,CAAC,QAAQ,EAAE,IAAI,EAAC,KAAK,EAAC,OAAO,EAAE,GAAG,EAAE,CAAC,IAAI,CAAC,WAAW,EAAE;gBACvF,8DAAQ,CACH;YACT,4DAAK,KAAK,EAAE,UAAU,EAAE,GAAQ,CAC7B,CACV,CAAC;IACN,CAAC;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;CACJ","sourcesContent":["import { Component, Prop, h, Host, Element, Event, EventEmitter, ComponentInterface } from '@stencil/core';\nimport { tv } from 'tailwind-variants';\n\n/**\n * @description Tab trigger component that functions as a clickable tab button\n * @slot - Default slot for tab label content\n */\n@Component({\n tag: 'bcm-tabs-trigger',\n styleUrl: 'tabs-trigger.css',\n shadow: true,\n})\nexport class BcmTabsTrigger implements ComponentInterface {\n /**\n * Reference to the host element\n */\n @Element() el: HTMLElement;\n\n /**\n * Unique identifier value for the tab\n */\n @Prop({ reflect: true })\n value: string;\n\n /**\n * Whether the tab is currently active\n */\n @Prop({ reflect: true })\n active: boolean = false;\n\n /**\n * Size of the tab\n */\n @Prop({ reflect: true })\n size: 'small' | 'medium' | 'large' = 'medium';\n\n /**\n * Whether the tab is disabled\n */\n @Prop({ reflect: true })\n disabled: boolean = false;\n\n /**\n * Event emitted when this tab is selected\n */\n @Event({\n composed: false,\n bubbles: false,\n cancelable: true,\n eventName: 'bcmTabSelected',\n })\n bcmTabSelected: EventEmitter<string>;\n\n /**\n * Handles click events on the tab\n * Emits bcmTabSelected event with tab value if not disabled\n */\n private handleClick() {\n if (this.disabled) return;\n this.bcmTabSelected.emit(this.value);\n }\n\n /**\n * Tailwind variants configuration for styling\n */\n private class = tv(\n {\n slots: {\n tab: 'bcm-ui-element text-center flex flex-row justify-center items-center font-medium transition-all duration-200 ease-in-out py-1 px-3 w-full bg-white border-none',\n borderLine: 'bottom-0 w-full left-0 right-0 h-[2px] bg-color-primary transition-all duration-200 ease-in-out',\n },\n variants: {\n size: {\n small: { tab: 'text-size-4 gap-2' },\n medium: { tab: 'text-size-5 gap-2.5' },\n large: { tab: 'text-size-6 gap-3' },\n },\n active: {\n true: {\n tab: 'text-color-primary',\n },\n false: {\n tab: 'text-color',\n },\n },\n disabled: {\n true: {\n tab: 'cursor-not-allowed text-color-disabled',\n borderLine: 'bg-[--bcm-ui-color-text-disabled]',\n },\n false: {\n tab: 'cursor-pointer text-color hover:text-color-primary',\n borderLine: 'bg-[--bcm-ui-color-text-default]',\n },\n },\n },\n defaultVariants: {\n size: 'medium',\n active: false,\n disabled: false,\n },\n },\n {\n twMerge: false,\n },\n );\n\n render() {\n const { tab, borderLine } = this.class({\n size: this.size,\n active: this.active,\n disabled: this.disabled,\n });\n return (\n <Host role=\"tab\" aria-selected={this.active.toString()} aria-disabled={this.disabled}>\n <button class={tab()} disabled={this.disabled} part=\"tab\" onClick={() => this.handleClick()}>\n <slot />\n </button>\n <div class={borderLine()}></div>\n </Host>\n );\n }\n}"]}
@@ -0,0 +1 @@
1
+ .relative{position:relative}.block{display:block}:host{display:block;position:relative;width:100%}.bcm-ui-element{-webkit-font-smoothing:antialiased;-moz-osx-font-smoothing:grayscale;font-family:Inter,sans-serif}.bottom-0{bottom:0}.left-0{left:0}.right-0{right:0}.flex{display:flex}.h-\[2px\]{height:2px}.w-full{width:100%}.cursor-not-allowed{cursor:not-allowed}.cursor-pointer{cursor:pointer}.flex-row{flex-direction:row}.items-center{align-items:center}.justify-center{justify-content:center}.gap-2{gap:.5rem}.gap-2\.5{gap:.625rem}.gap-3{gap:.75rem}.border-none{border-style:none}.bg-\[--bcm-ui-color-text-default\]{background-color:var(--bcm-ui-color-text-default)}.bg-\[--bcm-ui-color-text-disabled\]{background-color:var(--bcm-ui-color-text-disabled)}.bg-color-primary{background-color:var(--bcm-ui-color-background-primary-default)}.bg-white{--tw-bg-opacity:1;background-color:rgb(255 255 255/var(--tw-bg-opacity,1))}.px-3{padding-left:.75rem;padding-right:.75rem}.py-1{padding-bottom:.25rem;padding-top:.25rem}.text-center{text-align:center}.text-size-4{font-size:var(--bcm-ui-font-size-4,14px);line-height:var(--bcm-ui-line-height-4,20px)}.text-size-5{font-size:var(--bcm-ui-font-size-5,16px);line-height:var(--bcm-ui-line-height-5,24px)}.text-size-6{font-size:var(--bcm-ui-font-size-6,18px);line-height:var(--bcm-ui-line-height-6,24px)}.font-medium{font-weight:500}.text-color-disabled{color:var(--bcm-ui-color-text-disabled)}.text-color-primary{color:var(--bcm-ui-color-text-primary)}.shadow{--tw-shadow:var(--bcm-ui-box-shadow-default);--tw-shadow-colored:var(--bcm-ui-box-shadow-default);box-shadow:var(--tw-ring-offset-shadow,0 0 #0000),var(--tw-ring-shadow,0 0 #0000),var(--tw-shadow)}.transition-all{transition-duration:.15s;transition-property:all;transition-timing-function:cubic-bezier(.4,0,.2,1)}.duration-200{transition-duration:.2s}.ease-in-out{transition-timing-function:cubic-bezier(.4,0,.2,1)}.hover\:text-color-primary:hover{color:var(--bcm-ui-color-text-primary)}
@@ -0,0 +1,422 @@
1
+ import { h, Host } from "@stencil/core";
2
+ import { tv } from "tailwind-variants";
3
+ /**
4
+ * @description Tab interface component
5
+ * @slot - Default slot for content area
6
+ * @slot tabs-list - Special slot for tab list
7
+ */
8
+ export class BcmTabs {
9
+ constructor() {
10
+ /**
11
+ * Tab size
12
+ */
13
+ this.size = 'medium';
14
+ this.triggers = [];
15
+ this.contents = [];
16
+ /**
17
+ * Tab container class
18
+ */
19
+ this.tabClass = tv({
20
+ base: 'tabs-container bcm-ui-element flex flex-col w-full',
21
+ });
22
+ }
23
+ componentWillLoad() {
24
+ this.activeTab = this.defaultValue;
25
+ }
26
+ componentDidLoad() {
27
+ this.refreshElementReferences();
28
+ this.updateTriggerProperties();
29
+ this.setupRelations();
30
+ this.updateInkbar();
31
+ this.updateContentVisibility();
32
+ }
33
+ /**
34
+ * Refreshes DOM element references
35
+ */
36
+ refreshElementReferences() {
37
+ this.triggers = Array.from(this.el.querySelectorAll('bcm-tabs-trigger'));
38
+ this.contents = Array.from(this.el.querySelectorAll('bcm-tabs-content'));
39
+ this.tabsList = this.el.querySelector('bcm-tabs-list');
40
+ }
41
+ /**
42
+ * Establishes relationships between tabs and content
43
+ */
44
+ setupRelations() {
45
+ this.triggers.forEach(trigger => {
46
+ trigger.active = trigger.value === this.activeTab;
47
+ const panel = this.contents.find(content => content.value === trigger.value);
48
+ if (panel) {
49
+ const panelId = `panel-${trigger.value}`;
50
+ panel.id = panelId;
51
+ trigger.setAttribute('aria-controls', panelId);
52
+ panel.setAttribute('aria-labelledby', `trigger-${trigger.value}`);
53
+ trigger.id = `trigger-${trigger.value}`;
54
+ }
55
+ });
56
+ }
57
+ updateTriggerProperties() {
58
+ var _a;
59
+ if (((_a = this.triggers) === null || _a === void 0 ? void 0 : _a.length) > 0) {
60
+ this.triggers.forEach(trigger => {
61
+ trigger.size = this.size;
62
+ });
63
+ }
64
+ }
65
+ handleSizeChange() {
66
+ this.updateTriggerProperties();
67
+ }
68
+ async disableTab(value) {
69
+ const trigger = this.triggers.find(t => t.value === value);
70
+ if (trigger) {
71
+ trigger.disabled = true;
72
+ }
73
+ }
74
+ async enableTab(value) {
75
+ const trigger = this.triggers.find(t => t.value === value);
76
+ if (trigger) {
77
+ trigger.disabled = false;
78
+ }
79
+ }
80
+ /**
81
+ * Disables all tabs
82
+ */
83
+ async disableAllTabs() {
84
+ this.triggers.forEach(trigger => {
85
+ trigger.disabled = true;
86
+ });
87
+ }
88
+ /**
89
+ * Enables all tabs
90
+ */
91
+ async enableAllTabs() {
92
+ this.triggers.forEach(trigger => {
93
+ trigger.disabled = false;
94
+ });
95
+ }
96
+ /**
97
+ * Returns the active tab value
98
+ */
99
+ async getActiveTab() {
100
+ return this.activeTab;
101
+ }
102
+ /**
103
+ * Sets the active tab
104
+ */
105
+ async setActiveTab(value) {
106
+ const trigger = this.triggers.find(t => t.value === value);
107
+ if (trigger && !trigger.disabled) {
108
+ this.previousTab = this.activeTab;
109
+ this.activeTab = value;
110
+ this.updateInkbar();
111
+ this.updateContentVisibility();
112
+ this.updateTabStatus();
113
+ this.bcmTabChange.emit({
114
+ activeTab: this.activeTab,
115
+ element: trigger,
116
+ previousTab: this.previousTab,
117
+ });
118
+ }
119
+ }
120
+ /**
121
+ * Updates tab status
122
+ */
123
+ updateTabStatus() {
124
+ this.triggers.forEach(trigger => {
125
+ const isActive = trigger.value === this.activeTab;
126
+ trigger.active = isActive;
127
+ });
128
+ }
129
+ handleResize() {
130
+ this.updateInkbar();
131
+ }
132
+ /**
133
+ * Triggered when a tab is selected
134
+ */
135
+ handleTabSelected(event) {
136
+ this.previousTab = this.activeTab;
137
+ this.activeTab = event.detail;
138
+ this.updateTabStatus();
139
+ this.updateInkbar();
140
+ this.updateContentVisibility();
141
+ const activeElement = this.triggers.find(trigger => trigger.value === this.activeTab);
142
+ if (activeElement) {
143
+ this.bcmTabChange.emit({
144
+ activeTab: this.activeTab,
145
+ element: activeElement,
146
+ previousTab: this.previousTab,
147
+ });
148
+ }
149
+ }
150
+ /**
151
+ * Updates content visibility
152
+ */
153
+ updateContentVisibility() {
154
+ this.contents.forEach(content => {
155
+ const isVisible = content.value === this.activeTab;
156
+ content.style.display = isVisible ? 'block' : 'none';
157
+ content.setAttribute('aria-hidden', (!isVisible).toString());
158
+ });
159
+ }
160
+ /**
161
+ * Updates inkbar position
162
+ */
163
+ updateInkbar() {
164
+ var _a, _b, _c, _d, _e;
165
+ if (!this.tabsList) {
166
+ console.warn('bcm-tabs-list not found');
167
+ return;
168
+ }
169
+ const totalTriggers = this.triggers.length;
170
+ if (totalTriggers === 0)
171
+ return;
172
+ const inkbar = (_b = (_a = this.tabsList) === null || _a === void 0 ? void 0 : _a.shadowRoot) === null || _b === void 0 ? void 0 : _b.querySelector('.inkbar');
173
+ const activeTrigger = this.triggers.find(trigger => trigger.value === this.activeTab);
174
+ if (activeTrigger && inkbar) {
175
+ const triggerRect = activeTrigger.getBoundingClientRect();
176
+ const groupRect = (_e = (_d = (_c = this.tabsList) === null || _c === void 0 ? void 0 : _c.shadowRoot) === null || _d === void 0 ? void 0 : _d.querySelector('.tabs-list')) === null || _e === void 0 ? void 0 : _e.getBoundingClientRect();
177
+ if (triggerRect && groupRect) {
178
+ const left = triggerRect.left - groupRect.left;
179
+ const width = triggerRect.width;
180
+ inkbar.style.width = `${width}px`;
181
+ inkbar.style.transform = `translateX(${left}px)`;
182
+ inkbar.style.opacity = '1';
183
+ }
184
+ else {
185
+ console.warn('Group or trigger rect calculation failed');
186
+ inkbar.style.opacity = '0';
187
+ }
188
+ }
189
+ else {
190
+ if (inkbar)
191
+ inkbar.style.opacity = '0';
192
+ }
193
+ }
194
+ render() {
195
+ return (h(Host, { key: 'b5c18df30963fa3e2efcfb84a3b0d93cd2b4a940' }, h("div", { key: 'b62f25ebe6ba5e7c9bb04a725d047a64f1cb22bf', class: this.tabClass() }, h("slot", { key: 'c09c33175f8004c5a9d8a77fe234bdfbe4244214', name: "tabs-list" }), h("slot", { key: '9ae9022486322bdf34d0e2c7838760a50bc6e90e' }))));
196
+ }
197
+ static get is() { return "bcm-tabs"; }
198
+ static get encapsulation() { return "shadow"; }
199
+ static get originalStyleUrls() {
200
+ return {
201
+ "$": ["bcm-tabs.css"]
202
+ };
203
+ }
204
+ static get styleUrls() {
205
+ return {
206
+ "$": ["bcm-tabs.css"]
207
+ };
208
+ }
209
+ static get properties() {
210
+ return {
211
+ "defaultValue": {
212
+ "type": "string",
213
+ "mutable": false,
214
+ "complexType": {
215
+ "original": "string",
216
+ "resolved": "string",
217
+ "references": {}
218
+ },
219
+ "required": false,
220
+ "optional": false,
221
+ "docs": {
222
+ "tags": [],
223
+ "text": "Default active tab value"
224
+ },
225
+ "getter": false,
226
+ "setter": false,
227
+ "attribute": "default-value",
228
+ "reflect": true
229
+ },
230
+ "size": {
231
+ "type": "string",
232
+ "mutable": false,
233
+ "complexType": {
234
+ "original": "'small' | 'medium' | 'large'",
235
+ "resolved": "\"large\" | \"medium\" | \"small\"",
236
+ "references": {}
237
+ },
238
+ "required": false,
239
+ "optional": false,
240
+ "docs": {
241
+ "tags": [],
242
+ "text": "Tab size"
243
+ },
244
+ "getter": false,
245
+ "setter": false,
246
+ "attribute": "size",
247
+ "reflect": true,
248
+ "defaultValue": "'medium'"
249
+ }
250
+ };
251
+ }
252
+ static get states() {
253
+ return {
254
+ "activeTab": {},
255
+ "previousTab": {}
256
+ };
257
+ }
258
+ static get events() {
259
+ return [{
260
+ "method": "bcmTabChange",
261
+ "name": "bcmTabChange",
262
+ "bubbles": false,
263
+ "cancelable": true,
264
+ "composed": false,
265
+ "docs": {
266
+ "tags": [],
267
+ "text": "Triggers when tab changes"
268
+ },
269
+ "complexType": {
270
+ "original": "{\n activeTab: string;\n element: HTMLBcmTabsTriggerElement;\n previousTab?: string;\n }",
271
+ "resolved": "{ activeTab: string; element: HTMLBcmTabsTriggerElement; previousTab?: string; }",
272
+ "references": {
273
+ "HTMLBcmTabsTriggerElement": {
274
+ "location": "global",
275
+ "id": "global::HTMLBcmTabsTriggerElement"
276
+ }
277
+ }
278
+ }
279
+ }];
280
+ }
281
+ static get methods() {
282
+ return {
283
+ "disableTab": {
284
+ "complexType": {
285
+ "signature": "(value: string) => Promise<void>",
286
+ "parameters": [{
287
+ "name": "value",
288
+ "type": "string",
289
+ "docs": ""
290
+ }],
291
+ "references": {
292
+ "Promise": {
293
+ "location": "global",
294
+ "id": "global::Promise"
295
+ }
296
+ },
297
+ "return": "Promise<void>"
298
+ },
299
+ "docs": {
300
+ "text": "",
301
+ "tags": []
302
+ }
303
+ },
304
+ "enableTab": {
305
+ "complexType": {
306
+ "signature": "(value: string) => Promise<void>",
307
+ "parameters": [{
308
+ "name": "value",
309
+ "type": "string",
310
+ "docs": ""
311
+ }],
312
+ "references": {
313
+ "Promise": {
314
+ "location": "global",
315
+ "id": "global::Promise"
316
+ }
317
+ },
318
+ "return": "Promise<void>"
319
+ },
320
+ "docs": {
321
+ "text": "",
322
+ "tags": []
323
+ }
324
+ },
325
+ "disableAllTabs": {
326
+ "complexType": {
327
+ "signature": "() => Promise<void>",
328
+ "parameters": [],
329
+ "references": {
330
+ "Promise": {
331
+ "location": "global",
332
+ "id": "global::Promise"
333
+ }
334
+ },
335
+ "return": "Promise<void>"
336
+ },
337
+ "docs": {
338
+ "text": "Disables all tabs",
339
+ "tags": []
340
+ }
341
+ },
342
+ "enableAllTabs": {
343
+ "complexType": {
344
+ "signature": "() => Promise<void>",
345
+ "parameters": [],
346
+ "references": {
347
+ "Promise": {
348
+ "location": "global",
349
+ "id": "global::Promise"
350
+ }
351
+ },
352
+ "return": "Promise<void>"
353
+ },
354
+ "docs": {
355
+ "text": "Enables all tabs",
356
+ "tags": []
357
+ }
358
+ },
359
+ "getActiveTab": {
360
+ "complexType": {
361
+ "signature": "() => Promise<string>",
362
+ "parameters": [],
363
+ "references": {
364
+ "Promise": {
365
+ "location": "global",
366
+ "id": "global::Promise"
367
+ }
368
+ },
369
+ "return": "Promise<string>"
370
+ },
371
+ "docs": {
372
+ "text": "Returns the active tab value",
373
+ "tags": []
374
+ }
375
+ },
376
+ "setActiveTab": {
377
+ "complexType": {
378
+ "signature": "(value: string) => Promise<void>",
379
+ "parameters": [{
380
+ "name": "value",
381
+ "type": "string",
382
+ "docs": ""
383
+ }],
384
+ "references": {
385
+ "Promise": {
386
+ "location": "global",
387
+ "id": "global::Promise"
388
+ }
389
+ },
390
+ "return": "Promise<void>"
391
+ },
392
+ "docs": {
393
+ "text": "Sets the active tab",
394
+ "tags": []
395
+ }
396
+ }
397
+ };
398
+ }
399
+ static get elementRef() { return "el"; }
400
+ static get watchers() {
401
+ return [{
402
+ "propName": "size",
403
+ "methodName": "handleSizeChange"
404
+ }];
405
+ }
406
+ static get listeners() {
407
+ return [{
408
+ "name": "resize",
409
+ "method": "handleResize",
410
+ "target": "window",
411
+ "capture": false,
412
+ "passive": true
413
+ }, {
414
+ "name": "bcmTabSelected",
415
+ "method": "handleTabSelected",
416
+ "target": undefined,
417
+ "capture": true,
418
+ "passive": false
419
+ }];
420
+ }
421
+ }
422
+ //# sourceMappingURL=tabs.component.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"tabs.component.js","sourceRoot":"","sources":["../../../src/components/tabs/tabs.component.tsx"],"names":[],"mappings":"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","sourcesContent":["import { Component, State, Prop, Element, h, Host, Listen, ComponentInterface, Event, EventEmitter, Watch, Method } from '@stencil/core';\nimport { tv } from 'tailwind-variants';\n\n/**\n * @description Tab interface component\n * @slot - Default slot for content area\n * @slot tabs-list - Special slot for tab list\n */\n@Component({\n tag: 'bcm-tabs',\n styleUrl: 'bcm-tabs.css',\n shadow: true,\n})\nexport class BcmTabs implements ComponentInterface {\n @Element() el: HTMLElement;\n\n /**\n * Default active tab value\n */\n @Prop({ reflect: true })\n defaultValue: string;\n\n /**\n * Tab size\n */\n @Prop({ reflect: true })\n size: 'small' | 'medium' | 'large' = 'medium';\n\n /**\n * Triggers when tab changes\n */\n @Event({\n composed: false,\n bubbles: false,\n cancelable: true,\n eventName: 'bcmTabChange',\n })\n bcmTabChange: EventEmitter<{\n activeTab: string;\n element: HTMLBcmTabsTriggerElement;\n previousTab?: string;\n }>;\n\n /**\n * Active tab value\n */\n @State() activeTab: string;\n\n /**\n * Previous active tab value\n */\n @State() previousTab: string;\n\n private triggers: HTMLBcmTabsTriggerElement[] = [];\n private contents: HTMLBcmTabsContentElement[] = [];\n private tabsList: HTMLBcmTabsListElement;\n\n componentWillLoad() {\n this.activeTab = this.defaultValue;\n }\n\n componentDidLoad() {\n this.refreshElementReferences();\n this.updateTriggerProperties();\n this.setupRelations();\n this.updateInkbar();\n this.updateContentVisibility();\n }\n\n /**\n * Refreshes DOM element references\n */\n private refreshElementReferences() {\n this.triggers = Array.from(this.el.querySelectorAll('bcm-tabs-trigger'));\n this.contents = Array.from(this.el.querySelectorAll('bcm-tabs-content'));\n this.tabsList = this.el.querySelector('bcm-tabs-list');\n }\n\n /**\n * Establishes relationships between tabs and content\n */\n private setupRelations() {\n this.triggers.forEach(trigger => {\n trigger.active = trigger.value === this.activeTab;\n const panel = this.contents.find(content => content.value === trigger.value);\n if (panel) {\n const panelId = `panel-${trigger.value}`;\n panel.id = panelId;\n trigger.setAttribute('aria-controls', panelId);\n panel.setAttribute('aria-labelledby', `trigger-${trigger.value}`);\n trigger.id = `trigger-${trigger.value}`;\n }\n });\n }\n\n private updateTriggerProperties() {\n if (this.triggers?.length > 0) {\n this.triggers.forEach(trigger => {\n trigger.size = this.size;\n });\n }\n }\n\n @Watch('size')\n handleSizeChange() {\n this.updateTriggerProperties();\n }\n\n @Method()\n async disableTab(value: string): Promise<void> {\n const trigger = this.triggers.find(t => t.value === value);\n if (trigger) {\n trigger.disabled = true;\n }\n }\n\n @Method()\n async enableTab(value: string): Promise<void> {\n const trigger = this.triggers.find(t => t.value === value);\n if (trigger) {\n trigger.disabled = false;\n }\n }\n\n /**\n * Disables all tabs\n */\n @Method()\n async disableAllTabs() {\n this.triggers.forEach(trigger => {\n trigger.disabled = true;\n });\n }\n\n /**\n * Enables all tabs\n */\n @Method()\n async enableAllTabs() {\n this.triggers.forEach(trigger => {\n trigger.disabled = false;\n });\n }\n\n /**\n * Returns the active tab value\n */\n @Method()\n async getActiveTab(): Promise<string> {\n return this.activeTab;\n }\n\n /**\n * Sets the active tab\n */\n @Method()\n async setActiveTab(value: string): Promise<void> {\n const trigger = this.triggers.find(t => t.value === value);\n if (trigger && !trigger.disabled) {\n this.previousTab = this.activeTab;\n this.activeTab = value;\n this.updateInkbar();\n this.updateContentVisibility();\n this.updateTabStatus();\n\n this.bcmTabChange.emit({\n activeTab: this.activeTab,\n element: trigger,\n previousTab: this.previousTab,\n });\n }\n }\n\n /**\n * Updates tab status\n */\n private updateTabStatus() {\n this.triggers.forEach(trigger => {\n const isActive = trigger.value === this.activeTab;\n trigger.active = isActive;\n });\n }\n\n @Listen('resize', { target: 'window' })\n handleResize() {\n this.updateInkbar();\n }\n\n /**\n * Triggered when a tab is selected\n */\n @Listen('bcmTabSelected', { capture: true })\n handleTabSelected(event: CustomEvent<string>) {\n this.previousTab = this.activeTab;\n this.activeTab = event.detail;\n\n this.updateTabStatus();\n this.updateInkbar();\n this.updateContentVisibility();\n\n const activeElement = this.triggers.find(trigger => trigger.value === this.activeTab);\n if (activeElement) {\n this.bcmTabChange.emit({\n activeTab: this.activeTab,\n element: activeElement,\n previousTab: this.previousTab,\n });\n }\n }\n\n /**\n * Updates content visibility\n */\n private updateContentVisibility() {\n this.contents.forEach(content => {\n const isVisible = content.value === this.activeTab;\n content.style.display = isVisible ? 'block' : 'none';\n content.setAttribute('aria-hidden', (!isVisible).toString());\n });\n }\n\n /**\n * Updates inkbar position\n */\n private updateInkbar() {\n if (!this.tabsList) {\n console.warn('bcm-tabs-list not found');\n return;\n }\n\n const totalTriggers = this.triggers.length;\n if (totalTriggers === 0) return;\n\n const inkbar = this.tabsList?.shadowRoot?.querySelector('.inkbar') as HTMLElement;\n const activeTrigger = this.triggers.find(trigger => trigger.value === this.activeTab);\n\n if (activeTrigger && inkbar) {\n const triggerRect = activeTrigger.getBoundingClientRect();\n const groupRect = this.tabsList?.shadowRoot?.querySelector('.tabs-list')?.getBoundingClientRect();\n\n if (triggerRect && groupRect) {\n const left = triggerRect.left - groupRect.left;\n const width = triggerRect.width;\n\n inkbar.style.width = `${width}px`;\n inkbar.style.transform = `translateX(${left}px)`;\n inkbar.style.opacity = '1';\n } else {\n console.warn('Group or trigger rect calculation failed');\n inkbar.style.opacity = '0';\n }\n } else {\n if (inkbar) inkbar.style.opacity = '0';\n }\n }\n\n /**\n * Tab container class\n */\n private tabClass = tv({\n base: 'tabs-container bcm-ui-element flex flex-col w-full',\n });\n\n render() {\n return (\n <Host>\n <div class={this.tabClass()}>\n <slot name=\"tabs-list\" />\n <slot></slot>\n </div>\n </Host>\n );\n }\n}\n"]}
@@ -83,7 +83,7 @@ export class BcmText {
83
83
  render() {
84
84
  const Tag = variantTagMap[this.variant];
85
85
  const variantClass = this.getTextClass(this.variant, this.size);
86
- return (h(Tag, { key: '0c0bc7beb4e4b42b87c535fcd4cc9ab755a93298', class: cs('bcm-text appearance-none m-0 p-0', variantClass), part: "text" }, h("slot", { key: '159aa12143bbcac220e37d38956d1be928f6fe7f' }, this.text)));
86
+ return (h(Tag, { key: '53890d0b241119b0df415e599538e806bd870517', class: cs('bcm-text appearance-none m-0 p-0', variantClass), part: "text" }, h("slot", { key: '25ccb62cbbe1393379c42bd13b3a98d8806fa2cb' }, this.text)));
87
87
  }
88
88
  static get is() { return "bcm-text"; }
89
89
  static get encapsulation() { return "shadow"; }