bromcom-ui-next 0.1.5 → 0.1.6

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
Files changed (377) hide show
  1. package/dist/bromcom-ui/bromcom-ui.css +1 -1
  2. package/dist/bromcom-ui/bromcom-ui.esm.js +1 -1
  3. package/dist/bromcom-ui/bromcom-ui.esm.js.map +1 -1
  4. package/dist/bromcom-ui/p-0d0d6483.entry.js +2 -0
  5. package/dist/bromcom-ui/{p-e08b23ff.entry.js.map → p-0d0d6483.entry.js.map} +1 -1
  6. package/dist/bromcom-ui/p-13784cd7.entry.js +2 -0
  7. package/dist/bromcom-ui/p-13784cd7.entry.js.map +1 -0
  8. package/dist/bromcom-ui/p-13a245f6.js +2 -0
  9. package/dist/bromcom-ui/p-13a245f6.js.map +1 -0
  10. package/dist/bromcom-ui/p-25038cc8.entry.js +2 -0
  11. package/dist/bromcom-ui/p-25038cc8.entry.js.map +1 -0
  12. package/dist/bromcom-ui/p-308f865b.entry.js +2 -0
  13. package/dist/bromcom-ui/p-308f865b.entry.js.map +1 -0
  14. package/dist/bromcom-ui/{p-f0ece968.entry.js → p-385fa0f3.entry.js} +2 -2
  15. package/dist/bromcom-ui/p-389f1976.entry.js +2 -0
  16. package/dist/bromcom-ui/p-389f1976.entry.js.map +1 -0
  17. package/dist/bromcom-ui/p-3b230145.entry.js +2 -0
  18. package/dist/bromcom-ui/p-3b230145.entry.js.map +1 -0
  19. package/dist/bromcom-ui/p-49b0e982.entry.js +2 -0
  20. package/dist/bromcom-ui/p-49b0e982.entry.js.map +1 -0
  21. package/dist/bromcom-ui/p-55c4263c.entry.js +2 -0
  22. package/dist/bromcom-ui/p-55c4263c.entry.js.map +1 -0
  23. package/dist/bromcom-ui/{p-f9eeafa7.entry.js → p-58ee24a8.entry.js} +2 -2
  24. package/dist/bromcom-ui/p-729a870f.js.map +1 -1
  25. package/dist/bromcom-ui/p-9551c35e.entry.js +2 -0
  26. package/dist/bromcom-ui/p-9551c35e.entry.js.map +1 -0
  27. package/dist/bromcom-ui/p-9594cebb.js +2 -0
  28. package/dist/bromcom-ui/p-9594cebb.js.map +1 -0
  29. package/dist/bromcom-ui/p-98c76392.entry.js +2 -0
  30. package/dist/bromcom-ui/p-98c76392.entry.js.map +1 -0
  31. package/dist/bromcom-ui/p-a29e61a4.entry.js +2 -0
  32. package/dist/bromcom-ui/{p-7a1bf6a6.entry.js.map → p-a29e61a4.entry.js.map} +1 -1
  33. package/dist/bromcom-ui/p-ba2410ef.js +2 -0
  34. package/dist/bromcom-ui/p-ba2410ef.js.map +1 -0
  35. package/dist/bromcom-ui/p-bd0f7e78.entry.js +2 -0
  36. package/dist/bromcom-ui/p-bd0f7e78.entry.js.map +1 -0
  37. package/dist/bromcom-ui/p-bf69fc8a.entry.js +2 -0
  38. package/dist/bromcom-ui/p-bf69fc8a.entry.js.map +1 -0
  39. package/dist/bromcom-ui/{p-5bee2e76.entry.js → p-c1161950.entry.js} +2 -2
  40. package/dist/bromcom-ui/p-c2b3945e.entry.js +2 -0
  41. package/dist/bromcom-ui/p-c2b3945e.entry.js.map +1 -0
  42. package/dist/bromcom-ui/{p-53f21d16.entry.js → p-c427ffee.entry.js} +2 -2
  43. package/dist/bromcom-ui/p-c444235a.entry.js +2 -0
  44. package/dist/bromcom-ui/{p-63cb0933.entry.js.map → p-c444235a.entry.js.map} +1 -1
  45. package/dist/bromcom-ui/p-c995a48c.entry.js +2 -0
  46. package/dist/bromcom-ui/p-c995a48c.entry.js.map +1 -0
  47. package/dist/bromcom-ui/p-c9b736d9.js +3 -0
  48. package/dist/{cjs/index-4795c073.js.map → bromcom-ui/p-c9b736d9.js.map} +1 -1
  49. package/dist/bromcom-ui/p-cd271b49.entry.js +2 -0
  50. package/dist/bromcom-ui/p-cd271b49.entry.js.map +1 -0
  51. package/dist/bromcom-ui/p-cee68279.entry.js +2 -0
  52. package/dist/bromcom-ui/{p-2bbd3c52.entry.js.map → p-cee68279.entry.js.map} +1 -1
  53. package/dist/bromcom-ui/{p-6abaf96f.entry.js → p-d57587e5.entry.js} +2 -2
  54. package/dist/bromcom-ui/p-e89ab4a7.entry.js +2 -0
  55. package/dist/bromcom-ui/p-e89ab4a7.entry.js.map +1 -0
  56. package/dist/bromcom-ui/{p-4f402148.entry.js → p-f2d8aa70.entry.js} +2 -2
  57. package/dist/bromcom-ui/p-f4e8a47d.entry.js +2 -0
  58. package/dist/bromcom-ui/p-f4e8a47d.entry.js.map +1 -0
  59. package/dist/cjs/app-globals-29edfda4.js.map +1 -1
  60. package/dist/cjs/bcm-accordion-group.cjs.entry.js +1 -1
  61. package/dist/cjs/bcm-accordion.cjs.entry.js +1 -1
  62. package/dist/cjs/bcm-alert.cjs.entry.js +1 -1
  63. package/dist/cjs/bcm-avatar_4.cjs.entry.js +12 -6
  64. package/dist/cjs/bcm-avatar_4.cjs.entry.js.map +1 -1
  65. package/dist/cjs/bcm-button-group.cjs.entry.js +97 -0
  66. package/dist/cjs/bcm-button-group.cjs.entry.js.map +1 -0
  67. package/dist/cjs/bcm-checkbox.cjs.entry.js +226 -0
  68. package/dist/cjs/bcm-checkbox.cjs.entry.js.map +1 -0
  69. package/dist/cjs/bcm-chip.cjs.entry.js +2 -2
  70. package/dist/cjs/bcm-divider.cjs.entry.js +2 -2
  71. package/dist/cjs/bcm-dropdown-item.cjs.entry.js +3 -3
  72. package/dist/cjs/bcm-dropdown.cjs.entry.js +3 -3
  73. package/dist/cjs/bcm-dropdown.cjs.entry.js.map +1 -1
  74. package/dist/cjs/bcm-input.cjs.entry.js +7 -6
  75. package/dist/cjs/bcm-input.cjs.entry.js.map +1 -1
  76. package/dist/cjs/bcm-linked.cjs.entry.js +9 -1899
  77. package/dist/cjs/bcm-linked.cjs.entry.js.map +1 -1
  78. package/dist/cjs/bcm-pop-confirm.cjs.entry.js +252 -0
  79. package/dist/cjs/bcm-pop-confirm.cjs.entry.js.map +1 -0
  80. package/dist/cjs/bcm-popover.cjs.entry.js +191 -0
  81. package/dist/cjs/bcm-popover.cjs.entry.js.map +1 -0
  82. package/dist/cjs/bcm-radio-group.cjs.entry.js +171 -0
  83. package/dist/cjs/bcm-radio-group.cjs.entry.js.map +1 -0
  84. package/dist/cjs/bcm-radio.cjs.entry.js +173 -0
  85. package/dist/cjs/bcm-radio.cjs.entry.js.map +1 -0
  86. package/dist/cjs/bcm-segmented-picker-option.cjs.entry.js +109 -0
  87. package/dist/cjs/bcm-segmented-picker-option.cjs.entry.js.map +1 -0
  88. package/dist/cjs/bcm-segmented-picker.cjs.entry.js +146 -0
  89. package/dist/cjs/bcm-segmented-picker.cjs.entry.js.map +1 -0
  90. package/dist/cjs/bcm-switch.cjs.entry.js +188 -0
  91. package/dist/cjs/bcm-switch.cjs.entry.js.map +1 -0
  92. package/dist/cjs/bcm-tabs-content.cjs.entry.js +22 -0
  93. package/dist/cjs/bcm-tabs-content.cjs.entry.js.map +1 -0
  94. package/dist/cjs/bcm-tabs-list.cjs.entry.js +43 -0
  95. package/dist/cjs/bcm-tabs-list.cjs.entry.js.map +1 -0
  96. package/dist/cjs/bcm-tabs-trigger.cjs.entry.js +92 -0
  97. package/dist/cjs/bcm-tabs-trigger.cjs.entry.js.map +1 -0
  98. package/dist/cjs/bcm-tabs.cjs.entry.js +211 -0
  99. package/dist/cjs/bcm-tabs.cjs.entry.js.map +1 -0
  100. package/dist/cjs/bcm-text.cjs.entry.js +2 -2
  101. package/dist/cjs/bcm-textarea.cjs.entry.js +8 -7
  102. package/dist/cjs/bcm-textarea.cjs.entry.js.map +1 -1
  103. package/dist/cjs/bcm-tooltip.cjs.entry.js +187 -0
  104. package/dist/cjs/bcm-tooltip.cjs.entry.js.map +1 -0
  105. package/dist/cjs/bromcom-ui.cjs.js +2 -2
  106. package/dist/cjs/floating-ui.dom.esm-3ec8404c.js +2085 -0
  107. package/dist/cjs/floating-ui.dom.esm-3ec8404c.js.map +1 -0
  108. package/dist/{components/p-31354aaa.js → cjs/generate-id-f6982042.js} +4 -47
  109. package/dist/cjs/generate-id-f6982042.js.map +1 -0
  110. package/dist/cjs/{index-4795c073.js → index-9a2c5938.js} +36 -7
  111. package/dist/{bromcom-ui/p-15fe392b.js.map → cjs/index-9a2c5938.js.map} +1 -1
  112. package/dist/cjs/loader.cjs.js +2 -2
  113. package/dist/cjs/validation-messages-18389279.js +52 -0
  114. package/dist/cjs/validation-messages-18389279.js.map +1 -0
  115. package/dist/collection/collection-manifest.json +15 -1
  116. package/dist/collection/components/avatar/avatar.css +1 -1
  117. package/dist/collection/components/badge/badge.css +1 -1
  118. package/dist/collection/components/button/button.component.js +33 -2
  119. package/dist/collection/components/button/button.component.js.map +1 -1
  120. package/dist/collection/components/button/button.css +1 -1
  121. package/dist/collection/components/button/types.js.map +1 -1
  122. package/dist/collection/components/button-group/button-group.component.js +252 -0
  123. package/dist/collection/components/button-group/button-group.component.js.map +1 -0
  124. package/dist/collection/components/button-group/button-group.css +1 -0
  125. package/dist/collection/components/button-group/types.js +2 -0
  126. package/dist/collection/components/button-group/types.js.map +1 -0
  127. package/dist/collection/components/checkbox/checkbox.component.js +440 -0
  128. package/dist/collection/components/checkbox/checkbox.component.js.map +1 -0
  129. package/dist/collection/components/checkbox/checkbox.css +1 -0
  130. package/dist/collection/components/chip/chip.component.js +1 -1
  131. package/dist/collection/components/divider/divider.component.js +1 -1
  132. package/dist/collection/components/dropdown/dropdown.component.js +1 -1
  133. package/dist/collection/components/dropdown/dropdown.css +1 -1
  134. package/dist/collection/components/dropdown-item/dropdown-item.component.js +2 -2
  135. package/dist/collection/components/input/input.component.js +2 -2
  136. package/dist/collection/components/input/input.css +1 -1
  137. package/dist/collection/components/linked/linked.component.js +2 -2
  138. package/dist/collection/components/linked/linked.css +1 -1
  139. package/dist/collection/components/pop-confirm/pop-confirm.component.js +629 -0
  140. package/dist/collection/components/pop-confirm/pop-confirm.component.js.map +1 -0
  141. package/dist/collection/components/pop-confirm/pop-confirm.css +1 -0
  142. package/dist/collection/components/popover/popover.component.js +477 -0
  143. package/dist/collection/components/popover/popover.component.js.map +1 -0
  144. package/dist/collection/components/popover/popover.css +1 -0
  145. package/dist/collection/components/radio/radio.component.js +502 -0
  146. package/dist/collection/components/radio/radio.component.js.map +1 -0
  147. package/dist/collection/components/radio/radio.css +1 -0
  148. package/dist/collection/components/radio-group/radio-group.component.js +523 -0
  149. package/dist/collection/components/radio-group/radio-group.component.js.map +1 -0
  150. package/dist/collection/components/radio-group/radio-group.css +1 -0
  151. package/dist/collection/components/segmented-picker/segmented-picker-option.component.js +253 -0
  152. package/dist/collection/components/segmented-picker/segmented-picker-option.component.js.map +1 -0
  153. package/dist/collection/components/segmented-picker/segmented-picker-option.css +1 -0
  154. package/dist/collection/components/segmented-picker/segmented-picker.component.js +269 -0
  155. package/dist/collection/components/segmented-picker/segmented-picker.component.js.map +1 -0
  156. package/dist/collection/components/segmented-picker/segmented-picker.css +1 -0
  157. package/dist/collection/components/segmented-picker/types.js +2 -0
  158. package/dist/collection/components/segmented-picker/types.js.map +1 -0
  159. package/dist/collection/components/switch/switch.component.js +452 -0
  160. package/dist/collection/components/switch/switch.component.js.map +1 -0
  161. package/dist/collection/components/switch/switch.css +1 -0
  162. package/dist/collection/components/tabs/bcm-tabs.css +1 -0
  163. package/dist/collection/components/tabs/tabs-content.component.js +46 -0
  164. package/dist/collection/components/tabs/tabs-content.component.js.map +1 -0
  165. package/dist/collection/components/tabs/tabs-content.css +1 -0
  166. package/dist/collection/components/tabs/tabs-list.component.js +46 -0
  167. package/dist/collection/components/tabs/tabs-list.component.js.map +1 -0
  168. package/dist/collection/components/tabs/tabs-list.css +1 -0
  169. package/dist/collection/components/tabs/tabs-trigger.component.js +195 -0
  170. package/dist/collection/components/tabs/tabs-trigger.component.js.map +1 -0
  171. package/dist/collection/components/tabs/tabs-trigger.css +1 -0
  172. package/dist/collection/components/tabs/tabs.component.js +422 -0
  173. package/dist/collection/components/tabs/tabs.component.js.map +1 -0
  174. package/dist/collection/components/text/text.component.js +1 -1
  175. package/dist/collection/components/textarea/textarea.component.js +3 -3
  176. package/dist/collection/components/textarea/textarea.css +1 -1
  177. package/dist/collection/components/tooltip/tooltip.component.js +385 -0
  178. package/dist/collection/components/tooltip/tooltip.component.js.map +1 -0
  179. package/dist/collection/components/tooltip/tooltip.css +1 -0
  180. package/dist/collection/styles/theme-variables.js +14 -0
  181. package/dist/collection/styles/theme-variables.js.map +1 -1
  182. package/dist/components/bcm-accordion-group.js +1 -1
  183. package/dist/components/bcm-accordion.js +1 -1
  184. package/dist/components/bcm-alert.js +1 -1
  185. package/dist/components/bcm-avatar.js +3 -3
  186. package/dist/components/bcm-avatar.js.map +1 -1
  187. package/dist/components/bcm-badge.js +1 -1
  188. package/dist/components/bcm-basic-badge.js +1 -1
  189. package/dist/components/bcm-button-group.d.ts +11 -0
  190. package/dist/components/bcm-button-group.js +120 -0
  191. package/dist/components/bcm-button-group.js.map +1 -0
  192. package/dist/components/bcm-button.js +1 -1
  193. package/dist/components/bcm-checkbox.d.ts +11 -0
  194. package/dist/components/bcm-checkbox.js +256 -0
  195. package/dist/components/bcm-checkbox.js.map +1 -0
  196. package/dist/components/bcm-chip.js +2 -2
  197. package/dist/components/bcm-divider.js +2 -2
  198. package/dist/components/bcm-dropdown-item.js +3 -3
  199. package/dist/components/bcm-dropdown.js +5 -5
  200. package/dist/components/bcm-dropdown.js.map +1 -1
  201. package/dist/components/bcm-input.js +6 -5
  202. package/dist/components/bcm-input.js.map +1 -1
  203. package/dist/components/bcm-linked.js +1 -1
  204. package/dist/components/bcm-pop-confirm.d.ts +11 -0
  205. package/dist/components/bcm-pop-confirm.js +288 -0
  206. package/dist/components/bcm-pop-confirm.js.map +1 -0
  207. package/dist/components/bcm-popover.d.ts +11 -0
  208. package/dist/components/bcm-popover.js +216 -0
  209. package/dist/components/bcm-popover.js.map +1 -0
  210. package/dist/components/bcm-radio-group.d.ts +11 -0
  211. package/dist/components/bcm-radio-group.js +200 -0
  212. package/dist/components/bcm-radio-group.js.map +1 -0
  213. package/dist/components/bcm-radio.d.ts +11 -0
  214. package/dist/components/bcm-radio.js +198 -0
  215. package/dist/components/bcm-radio.js.map +1 -0
  216. package/dist/components/bcm-segmented-picker-option.d.ts +11 -0
  217. package/dist/components/bcm-segmented-picker-option.js +131 -0
  218. package/dist/components/bcm-segmented-picker-option.js.map +1 -0
  219. package/dist/components/bcm-segmented-picker.d.ts +11 -0
  220. package/dist/components/bcm-segmented-picker.js +170 -0
  221. package/dist/components/bcm-segmented-picker.js.map +1 -0
  222. package/dist/components/bcm-switch.d.ts +11 -0
  223. package/dist/components/bcm-switch.js +215 -0
  224. package/dist/components/bcm-switch.js.map +1 -0
  225. package/dist/components/bcm-tabs-content.d.ts +11 -0
  226. package/dist/components/bcm-tabs-content.js +39 -0
  227. package/dist/components/bcm-tabs-content.js.map +1 -0
  228. package/dist/components/bcm-tabs-list.d.ts +11 -0
  229. package/dist/components/bcm-tabs-list.js +58 -0
  230. package/dist/components/bcm-tabs-list.js.map +1 -0
  231. package/dist/components/bcm-tabs-trigger.d.ts +11 -0
  232. package/dist/components/bcm-tabs-trigger.js +112 -0
  233. package/dist/components/bcm-tabs-trigger.js.map +1 -0
  234. package/dist/components/bcm-tabs.d.ts +11 -0
  235. package/dist/components/bcm-tabs.js +239 -0
  236. package/dist/components/bcm-tabs.js.map +1 -0
  237. package/dist/components/bcm-text.js +2 -2
  238. package/dist/components/bcm-textarea.js +7 -6
  239. package/dist/components/bcm-textarea.js.map +1 -1
  240. package/dist/components/bcm-tooltip.d.ts +11 -0
  241. package/dist/components/bcm-tooltip.js +211 -0
  242. package/dist/components/bcm-tooltip.js.map +1 -0
  243. package/dist/components/index.js +1 -1
  244. package/dist/components/p-13a245f6.js +48 -0
  245. package/dist/components/p-13a245f6.js.map +1 -0
  246. package/dist/components/{p-e918f815.js → p-49f20ff7.js} +3 -3
  247. package/dist/components/{p-e918f815.js.map → p-49f20ff7.js.map} +1 -1
  248. package/dist/components/{p-13582168.js → p-5377117d.js} +32 -6
  249. package/dist/components/p-5377117d.js.map +1 -0
  250. package/dist/components/p-5f7a0d0d.js +107 -0
  251. package/dist/components/p-5f7a0d0d.js.map +1 -0
  252. package/dist/components/{p-613ee92d.js → p-9594cebb.js} +201 -120
  253. package/dist/components/p-9594cebb.js.map +1 -0
  254. package/dist/{esm/validation-messages-a29d53be.js → components/p-ba2410ef.js} +2 -47
  255. package/dist/components/p-ba2410ef.js.map +1 -0
  256. package/dist/components/{p-0063a3d9.js → p-c3a60937.js} +12 -5
  257. package/dist/components/p-c3a60937.js.map +1 -0
  258. package/dist/esm/app-globals-bfa07b76.js.map +1 -1
  259. package/dist/esm/bcm-accordion-group.entry.js +1 -1
  260. package/dist/esm/bcm-accordion.entry.js +1 -1
  261. package/dist/esm/bcm-alert.entry.js +1 -1
  262. package/dist/esm/bcm-avatar_4.entry.js +12 -6
  263. package/dist/esm/bcm-avatar_4.entry.js.map +1 -1
  264. package/dist/esm/bcm-button-group.entry.js +93 -0
  265. package/dist/esm/bcm-button-group.entry.js.map +1 -0
  266. package/dist/esm/bcm-checkbox.entry.js +222 -0
  267. package/dist/esm/bcm-checkbox.entry.js.map +1 -0
  268. package/dist/esm/bcm-chip.entry.js +2 -2
  269. package/dist/esm/bcm-divider.entry.js +2 -2
  270. package/dist/esm/bcm-dropdown-item.entry.js +3 -3
  271. package/dist/esm/bcm-dropdown.entry.js +3 -3
  272. package/dist/esm/bcm-dropdown.entry.js.map +1 -1
  273. package/dist/esm/bcm-input.entry.js +6 -5
  274. package/dist/esm/bcm-input.entry.js.map +1 -1
  275. package/dist/esm/bcm-linked.entry.js +5 -1895
  276. package/dist/esm/bcm-linked.entry.js.map +1 -1
  277. package/dist/esm/bcm-pop-confirm.entry.js +248 -0
  278. package/dist/esm/bcm-pop-confirm.entry.js.map +1 -0
  279. package/dist/esm/bcm-popover.entry.js +187 -0
  280. package/dist/esm/bcm-popover.entry.js.map +1 -0
  281. package/dist/esm/bcm-radio-group.entry.js +167 -0
  282. package/dist/esm/bcm-radio-group.entry.js.map +1 -0
  283. package/dist/esm/bcm-radio.entry.js +169 -0
  284. package/dist/esm/bcm-radio.entry.js.map +1 -0
  285. package/dist/esm/bcm-segmented-picker-option.entry.js +105 -0
  286. package/dist/esm/bcm-segmented-picker-option.entry.js.map +1 -0
  287. package/dist/esm/bcm-segmented-picker.entry.js +142 -0
  288. package/dist/esm/bcm-segmented-picker.entry.js.map +1 -0
  289. package/dist/esm/bcm-switch.entry.js +184 -0
  290. package/dist/esm/bcm-switch.entry.js.map +1 -0
  291. package/dist/esm/bcm-tabs-content.entry.js +18 -0
  292. package/dist/esm/bcm-tabs-content.entry.js.map +1 -0
  293. package/dist/esm/bcm-tabs-list.entry.js +39 -0
  294. package/dist/esm/bcm-tabs-list.entry.js.map +1 -0
  295. package/dist/esm/bcm-tabs-trigger.entry.js +88 -0
  296. package/dist/esm/bcm-tabs-trigger.entry.js.map +1 -0
  297. package/dist/esm/bcm-tabs.entry.js +207 -0
  298. package/dist/esm/bcm-tabs.entry.js.map +1 -0
  299. package/dist/esm/bcm-text.entry.js +2 -2
  300. package/dist/esm/bcm-textarea.entry.js +7 -6
  301. package/dist/esm/bcm-textarea.entry.js.map +1 -1
  302. package/dist/esm/bcm-tooltip.entry.js +183 -0
  303. package/dist/esm/bcm-tooltip.entry.js.map +1 -0
  304. package/dist/esm/bromcom-ui.js +3 -3
  305. package/dist/esm/floating-ui.dom.esm-480e0f15.js +2078 -0
  306. package/dist/esm/floating-ui.dom.esm-480e0f15.js.map +1 -0
  307. package/dist/{cjs/validation-messages-c36e5c31.js → esm/generate-id-3b2fcb93.js} +2 -52
  308. package/dist/esm/generate-id-3b2fcb93.js.map +1 -0
  309. package/dist/esm/{index-27cc1bac.js → index-8571fbf7.js} +36 -8
  310. package/dist/esm/index-8571fbf7.js.map +1 -0
  311. package/dist/esm/loader.js +3 -3
  312. package/dist/esm/validation-messages-af4512f0.js +48 -0
  313. package/dist/esm/validation-messages-af4512f0.js.map +1 -0
  314. package/dist/types/components/button/button.component.d.ts +3 -1
  315. package/dist/types/components/button/types.d.ts +4 -4
  316. package/dist/types/components/button-group/button-group.component.d.ts +25 -0
  317. package/dist/types/components/button-group/types.d.ts +2 -0
  318. package/dist/types/components/checkbox/checkbox.component.d.ts +99 -0
  319. package/dist/types/components/pop-confirm/pop-confirm.component.d.ts +195 -0
  320. package/dist/types/components/popover/popover.component.d.ts +118 -0
  321. package/dist/types/components/radio/radio.component.d.ts +105 -0
  322. package/dist/types/components/radio-group/radio-group.component.d.ts +124 -0
  323. package/dist/types/components/segmented-picker/segmented-picker-option.component.d.ts +30 -0
  324. package/dist/types/components/segmented-picker/segmented-picker.component.d.ts +35 -0
  325. package/dist/types/components/segmented-picker/types.d.ts +1 -0
  326. package/dist/types/components/switch/switch.component.d.ts +62 -0
  327. package/dist/types/components/tabs/tabs-content.component.d.ts +13 -0
  328. package/dist/types/components/tabs/tabs-list.component.d.ts +12 -0
  329. package/dist/types/components/tabs/tabs-trigger.component.d.ts +41 -0
  330. package/dist/types/components/tabs/tabs.component.d.ts +88 -0
  331. package/dist/types/components/tooltip/tooltip.component.d.ts +86 -0
  332. package/dist/types/components.d.ts +2576 -819
  333. package/dist/types/styles/theme-variables.d.ts +14 -0
  334. package/package.json +1 -1
  335. package/dist/bromcom-ui/p-15fe392b.js +0 -3
  336. package/dist/bromcom-ui/p-2bbd3c52.entry.js +0 -2
  337. package/dist/bromcom-ui/p-2f1d87a7.entry.js +0 -2
  338. package/dist/bromcom-ui/p-2f1d87a7.entry.js.map +0 -1
  339. package/dist/bromcom-ui/p-31354aaa.js +0 -2
  340. package/dist/bromcom-ui/p-31354aaa.js.map +0 -1
  341. package/dist/bromcom-ui/p-5737e7de.entry.js +0 -2
  342. package/dist/bromcom-ui/p-5737e7de.entry.js.map +0 -1
  343. package/dist/bromcom-ui/p-63cb0933.entry.js +0 -2
  344. package/dist/bromcom-ui/p-7a1bf6a6.entry.js +0 -2
  345. package/dist/bromcom-ui/p-e08b23ff.entry.js +0 -2
  346. package/dist/bromcom-ui/styles/theme-variables.ts +0 -369
  347. package/dist/bromcom-ui/styles/themes/index.css +0 -1
  348. package/dist/bromcom-ui/styles/themes/library/default.css +0 -73
  349. package/dist/bromcom-ui/styles/variables/box-shadow.css +0 -15
  350. package/dist/bromcom-ui/styles/variables/colors-dark.css +0 -314
  351. package/dist/bromcom-ui/styles/variables/colors-light.css +0 -325
  352. package/dist/bromcom-ui/styles/variables/font-size-rem.css +0 -33
  353. package/dist/bromcom-ui/styles/variables/font-size.css +0 -33
  354. package/dist/bromcom-ui/styles/variables/index.css +0 -6
  355. package/dist/cjs/validation-messages-c36e5c31.js.map +0 -1
  356. package/dist/collection/styles/theme-variables.ts +0 -369
  357. package/dist/collection/styles/themes/index.css +0 -1
  358. package/dist/collection/styles/themes/library/default.css +0 -73
  359. package/dist/collection/styles/variables/box-shadow.css +0 -15
  360. package/dist/collection/styles/variables/colors-dark.css +0 -314
  361. package/dist/collection/styles/variables/colors-light.css +0 -325
  362. package/dist/collection/styles/variables/font-size-rem.css +0 -33
  363. package/dist/collection/styles/variables/font-size.css +0 -33
  364. package/dist/collection/styles/variables/index.css +0 -6
  365. package/dist/components/p-0063a3d9.js.map +0 -1
  366. package/dist/components/p-13582168.js.map +0 -1
  367. package/dist/components/p-31354aaa.js.map +0 -1
  368. package/dist/components/p-613ee92d.js.map +0 -1
  369. package/dist/esm/index-27cc1bac.js.map +0 -1
  370. package/dist/esm/validation-messages-a29d53be.js.map +0 -1
  371. package/dist/tailwind.config.js +0 -32
  372. /package/dist/bromcom-ui/{p-f0ece968.entry.js.map → p-385fa0f3.entry.js.map} +0 -0
  373. /package/dist/bromcom-ui/{p-f9eeafa7.entry.js.map → p-58ee24a8.entry.js.map} +0 -0
  374. /package/dist/bromcom-ui/{p-5bee2e76.entry.js.map → p-c1161950.entry.js.map} +0 -0
  375. /package/dist/bromcom-ui/{p-53f21d16.entry.js.map → p-c427ffee.entry.js.map} +0 -0
  376. /package/dist/bromcom-ui/{p-6abaf96f.entry.js.map → p-d57587e5.entry.js.map} +0 -0
  377. /package/dist/bromcom-ui/{p-4f402148.entry.js.map → p-f2d8aa70.entry.js.map} +0 -0
@@ -0,0 +1,169 @@
1
+ import { r as registerInstance, c as createEvent, h, g as getElement } from './index-8571fbf7.js';
2
+ import { c as ce } from './index-f3b17e60.js';
3
+
4
+ const radioCss = ".block{display:block}:host{display:block}.container{width:100%}@media (min-width:640px){.container{max-width:640px}}@media (min-width:768px){.container{max-width:768px}}@media (min-width:1024px){.container{max-width:1024px}}@media (min-width:1280px){.container{max-width:1280px}}@media (min-width:1536px){.container{max-width:1536px}}.bcm-ui-element{-webkit-font-smoothing:antialiased;-moz-osx-font-smoothing:grayscale;font-family:Inter,sans-serif}.sr-only{clip:rect(0,0,0,0);border-width:0;height:1px;margin:-1px;overflow:hidden;padding:0;position:absolute;white-space:nowrap;width:1px}.pointer-events-none{pointer-events:none}.static{position:static}.absolute{position:absolute}.relative{position:relative}.flex{display:flex}.inline-flex{display:inline-flex}.size-2{height:.5rem;width:.5rem}.size-2\\.5{height:.625rem;width:.625rem}.size-3{height:.75rem;width:.75rem}.size-3\\.5{height:.875rem;width:.875rem}.size-4{height:1rem;width:1rem}.size-\\[18px\\]{height:18px;width:18px}.cursor-default{cursor:default}.cursor-not-allowed{cursor:not-allowed}.cursor-pointer{cursor:pointer}.appearance-none{appearance:none}.flex-row{flex-direction:row}.flex-row-reverse{flex-direction:row-reverse}.items-center{align-items:center}.justify-center{justify-content:center}.gap-2{gap:.5rem}.gap-2\\.5{gap:.625rem}.gap-3{gap:.75rem}.rounded-full{border-radius:var(--bcm-ui-border-radius-full,9999px)}.bg-\\[--bcm-radio-bg\\]{background-color:var(--bcm-radio-bg)}.bg-\\[--bcm-radio-checked\\]{background-color:var(--bcm-radio-checked)}.text-size-4{font-size:var(--bcm-ui-font-size-4,14px);line-height:var(--bcm-ui-line-height-4,20px)}.text-size-5{font-size:var(--bcm-ui-font-size-5,16px);line-height:var(--bcm-ui-line-height-5,24px)}.text-size-6{font-size:var(--bcm-ui-font-size-6,18px);line-height:var(--bcm-ui-line-height-6,24px)}.font-medium{font-weight:500}.text-\\[--bcm-radio-text-color\\]{color:var(--bcm-radio-text-color)}.opacity-0{opacity:0}.opacity-100{opacity:1}.shadow{--tw-shadow:var(--bcm-ui-box-shadow-default);--tw-shadow-colored:var(--bcm-ui-box-shadow-default)}.shadow,.shadow-\\[inset_0_0_0_1px_var\\(--bcm-radio-border\\)\\]{box-shadow:var(--tw-ring-offset-shadow,0 0 #0000),var(--tw-ring-shadow,0 0 #0000),var(--tw-shadow)}.shadow-\\[inset_0_0_0_1px_var\\(--bcm-radio-border\\)\\]{--tw-shadow:inset 0 0 0 1px var(--bcm-radio-border);--tw-shadow-colored:inset 0 0 0 1px var(--tw-shadow-color)}.shadow-\\[inset_0_0_0_3px_var\\(--bcm-radio-border\\)\\]{--tw-shadow:inset 0 0 0 3px var(--bcm-radio-border);--tw-shadow-colored:inset 0 0 0 3px var(--tw-shadow-color);box-shadow:var(--tw-ring-offset-shadow,0 0 #0000),var(--tw-ring-shadow,0 0 #0000),var(--tw-shadow)}.transition{transition-duration:.15s;transition-property:color,background-color,border-color,text-decoration-color,fill,stroke,opacity,box-shadow,transform,filter,backdrop-filter;transition-timing-function:cubic-bezier(.4,0,.2,1)}.focus-visible\\:ring:focus-visible{--tw-ring-offset-shadow:var(--tw-ring-inset) 0 0 0 var(--tw-ring-offset-width) var(--tw-ring-offset-color);--tw-ring-shadow:var(--tw-ring-inset) 0 0 0 calc(2px + var(--tw-ring-offset-width)) var(--tw-ring-color);box-shadow:var(--tw-ring-offset-shadow),var(--tw-ring-shadow),var(--tw-shadow,0 0 #0000)}.group:hover .group-hover\\:shadow-\\[inset_0_0_0_1px_var\\(--bcm-radio-border-hover\\)\\]{--tw-shadow:inset 0 0 0 1px var(--bcm-radio-border-hover);--tw-shadow-colored:inset 0 0 0 1px var(--tw-shadow-color);box-shadow:var(--tw-ring-offset-shadow,0 0 #0000),var(--tw-ring-shadow,0 0 #0000),var(--tw-shadow)}";
5
+ const BcmRadioStyle0 = radioCss;
6
+
7
+ const BcmRadio = class {
8
+ constructor(hostRef) {
9
+ registerInstance(this, hostRef);
10
+ this.bcmRadioChange = createEvent(this, "bcmRadioChange", 1);
11
+ this.bcmBlur = createEvent(this, "bcmBlur", 1);
12
+ this.bcmFocus = createEvent(this, "bcmFocus", 1);
13
+ /**
14
+ * Whether the radio button is selected.
15
+ * @prop
16
+ * @defaultValue false
17
+ */
18
+ this.checked = false;
19
+ /**
20
+ * Defines the size of the radio button: 'small' | 'medium' | 'large'.
21
+ * @prop
22
+ * @defaultValue 'medium'
23
+ */
24
+ this.size = 'medium';
25
+ /**
26
+ * Whether the radio button is disabled.
27
+ * @prop
28
+ * @defaultValue false
29
+ */
30
+ this.disabled = false;
31
+ /**
32
+ * Whether the radio button is readonly.
33
+ * @prop
34
+ * @defaultValue false
35
+ */
36
+ this.readonly = false;
37
+ /**
38
+ * Position of the label relative to the radio button: 'right' | 'left'.
39
+ * @prop
40
+ * @defaultValue 'right'
41
+ */
42
+ this.labelPosition = 'right';
43
+ /**
44
+ * Whether the radio button is in an error state.
45
+ * @prop
46
+ * @defaultValue false
47
+ */
48
+ this.error = false;
49
+ this.getRadioClass = ce({
50
+ slots: {
51
+ container: 'bcm-ui-element bcm-radio group',
52
+ dot: 'absolute rounded-full transition bg-[--bcm-radio-checked]',
53
+ dotContainer: 'relative rounded-full flex items-center justify-center shadow-[inset_0_0_0_1px_var(--bcm-radio-border)] bg-[--bcm-radio-bg] transition group-hover:shadow-[inset_0_0_0_1px_var(--bcm-radio-border-hover)]',
54
+ labelClass: 'font-medium text-[--bcm-radio-text-color]',
55
+ },
56
+ variants: {
57
+ size: {
58
+ small: {
59
+ container: 'gap-2',
60
+ dotContainer: 'size-3.5',
61
+ dot: 'size-2',
62
+ labelClass: 'text-size-4',
63
+ },
64
+ medium: {
65
+ container: 'gap-2.5',
66
+ dotContainer: 'size-4',
67
+ dot: 'size-2.5',
68
+ labelClass: 'text-size-5',
69
+ },
70
+ large: {
71
+ container: 'gap-3',
72
+ dotContainer: 'size-[18px]',
73
+ dot: 'size-3',
74
+ labelClass: 'text-size-6',
75
+ },
76
+ },
77
+ checked: {
78
+ true: {
79
+ dot: 'opacity-100',
80
+ },
81
+ false: {
82
+ dot: 'opacity-0',
83
+ },
84
+ },
85
+ disabled: {
86
+ true: {
87
+ container: 'cursor-not-allowed',
88
+ },
89
+ false: {
90
+ container: 'cursor-pointer focus-visible:ring',
91
+ },
92
+ },
93
+ readonly: {
94
+ true: {
95
+ container: 'cursor-default pointer-events-none',
96
+ dot: 'opacity-100',
97
+ dotContainer: 'shadow-[inset_0_0_0_3px_var(--bcm-radio-border)]',
98
+ },
99
+ false: '',
100
+ },
101
+ labelPosition: {
102
+ left: {
103
+ container: 'inline-flex flex-row-reverse items-center',
104
+ },
105
+ right: {
106
+ container: 'inline-flex flex-row items-center',
107
+ },
108
+ },
109
+ },
110
+ }, {
111
+ twMerge: false,
112
+ });
113
+ }
114
+ handleClick() {
115
+ if (this.readonly || this.disabled)
116
+ return;
117
+ if (!this.checked) {
118
+ this.checked = true;
119
+ this.bcmRadioChange.emit();
120
+ }
121
+ }
122
+ getRadioStyle() {
123
+ const defaultStyle = {
124
+ '--bcm-radio-bg': 'var(--bcm-ui-color-background-default-default)',
125
+ '--bcm-radio-border': 'var(--bcm-ui-color-border-disabled)',
126
+ '--bcm-radio-border-hover': 'var(--bcm-ui-color-border-primary)',
127
+ '--bcm-radio-checked': 'var(--bcm-ui-color-background-primary-default)',
128
+ '--bcm-radio-text-color': 'var(--bcm-ui-color-text-default)',
129
+ };
130
+ const errorStyle = {
131
+ '--bcm-radio-bg': 'var(--bcm-ui-color-background-palette-red-default)',
132
+ '--bcm-radio-border': 'var(--bcm-ui-color-border-error)',
133
+ '--bcm-radio-border-hover': 'var(--bcm-ui-color-border-error)',
134
+ '--bcm-radio-checked': 'var(--bcm-ui-color-background-error-default)',
135
+ '--bcm-radio-text-color': 'var(--bcm-ui-color-text-default)',
136
+ };
137
+ const disabledStyle = {
138
+ '--bcm-radio-bg': 'var(--bcm-ui-color-background-disabled-default)',
139
+ '--bcm-radio-border': 'var(--bcm-ui-color-border-disabled)',
140
+ '--bcm-radio-border-hover': 'var(--bcm-ui-color-border-disabled)',
141
+ '--bcm-radio-checked': 'var(--bcm-ui-color-background-disabled-default)',
142
+ '--bcm-radio-text-color': 'var(--bcm-ui-color-text-disabled)',
143
+ };
144
+ const readonlyStyle = {
145
+ '--bcm-radio-bg': 'transparent',
146
+ '--bcm-radio-border': 'var(--bcm-ui-color-border-disabled)',
147
+ '--bcm-radio-checked': 'var(--bcm-ui-color-background-default-default)',
148
+ '--bcm-radio-border-hover': 'var(--bcm-ui-color-border-disabled)',
149
+ '--bcm-radio-text-color': 'var(--bcm-ui-color-text-default)',
150
+ };
151
+ return Object.assign(Object.assign(Object.assign(Object.assign({}, defaultStyle), (this.error && errorStyle)), (this.disabled && disabledStyle)), (this.readonly && readonlyStyle));
152
+ }
153
+ render() {
154
+ const { container, dot, dotContainer, labelClass } = this.getRadioClass({
155
+ size: this.size,
156
+ checked: this.checked,
157
+ disabled: this.disabled,
158
+ readonly: this.readonly,
159
+ labelPosition: this.labelPosition,
160
+ });
161
+ return (h("label", { key: '2a95bd2335f3ecc987bcdd378225967837e55df9', class: container(), style: this.getRadioStyle() }, h("input", { key: '782735ff733b1d373803c3a1c6f56c16b745a159', "aria-label": this.label, role: "radio", "aria-checked": this.checked.toString(), type: "radio", name: this.name, value: this.value, disabled: this.disabled, readOnly: this.readonly, checked: this.checked, class: "appearance-none sr-only", onClick: () => this.handleClick(), onFocus: e => this.bcmFocus.emit(e), onBlur: e => this.bcmBlur.emit(e) }), h("div", { key: '638f0fe8ffab984b459c0b5f11f0a929b105de2a', class: dotContainer() }, h("div", { key: '65f618afcd4c1d0101961b6c6642ba146a37d6ef', class: dot() })), h("span", { key: 'a4690721cbe1c99ba47c572a9b354bdebac20a5e', class: labelClass() }, h("slot", { key: '2af90a0ab77da5b63a25fef3edbd0e14fc87516d' }, this.label))));
162
+ }
163
+ get host() { return getElement(this); }
164
+ };
165
+ BcmRadio.style = BcmRadioStyle0;
166
+
167
+ export { BcmRadio as bcm_radio };
168
+
169
+ //# sourceMappingURL=bcm-radio.entry.js.map
@@ -0,0 +1 @@
1
+ {"file":"bcm-radio.entry.js","mappings":"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","names":["tv"],"sources":["src/components/radio/radio.css?tag=bcm-radio&encapsulation=shadow","src/components/radio/radio.component.tsx"],"sourcesContent":[":host {\n display: block;\n}\n","/**\n * @component BcmRadio\n * @description A customizable radio button component for forms, supporting various sizes, states, and label positioning.\n * It can be used to select a single option from a group of choices, with support for error, disabled, and readonly states.\n *\n * @example\n * <bcm-radio label=\"Option 1\" name=\"group1\" value=\"1\" size=\"medium\" label-position=\"right\">\n * Option 1\n * </bcm-radio>\n *\n * @example Radio with error state\n * <bcm-radio label=\"Error Option\" name=\"group1\" value=\"2\" error={true}>\n * Error Option\n * </bcm-radio>\n *\n * @prop {string} label - The text label to display next to the radio button.\n * @prop {string} name - The name attribute for the radio input, used to group radio buttons.\n * @prop {string} value - The value of the radio button, submitted with the form.\n * @prop {boolean} checked - Whether the radio button is selected.\n * @defaultValue false\n * @prop {RadioSize} size - Defines the size of the radio button: 'small' | 'medium' | 'large'.\n * @defaultValue 'medium'\n * @prop {boolean} disabled - Whether the radio button is disabled.\n * @defaultValue false\n * @prop {boolean} readonly - Whether the radio button is readonly.\n * @defaultValue false\n * @prop {LabelPosition} labelPosition - Position of the label relative to the radio button: 'right' | 'left'.\n * @defaultValue 'right'\n * @prop {boolean} error - Whether the radio button is in an error state.\n * @defaultValue false\n *\n * @event {EventEmitter<void>} bcmRadioChange - Emitted when the radio button's checked state changes.\n * @event {EventEmitter<FocusEvent>} bcmFocus - Emitted when the radio button gains focus.\n * @event {EventEmitter<FocusEvent>} bcmBlur - Emitted when the radio button loses focus.\n *\n * @csspart container - The root label element wrapping the radio button and label.\n * @csspart dotContainer - The container for the radio button dot.\n * @csspart dot - The inner dot of the radio button.\n * @csspart label - The label text element.\n */\n\nimport { Component, ComponentInterface, Prop, h, Element, Event, EventEmitter } from '@stencil/core';\nimport { tv } from 'tailwind-variants';\n\n@Component({\n tag: 'bcm-radio',\n styleUrl: 'radio.css',\n shadow: true,\n})\nexport class BcmRadio implements ComponentInterface {\n @Element() host: HTMLBcmRadioElement;\n\n /**\n * The text label to display next to the radio button.\n * @prop\n * @defaultValue undefined\n */\n @Prop()\n label: string;\n\n /**\n * The name attribute for the radio input, used to group radio buttons.\n * @prop\n * @defaultValue undefined\n */\n @Prop()\n name: string;\n\n /**\n * The value of the radio button, submitted with the form.\n * @prop\n * @defaultValue undefined\n */\n @Prop()\n value: string;\n\n /**\n * Whether the radio button is selected.\n * @prop\n * @defaultValue false\n */\n @Prop({ reflect: true })\n checked: boolean = false;\n\n /**\n * Defines the size of the radio button: 'small' | 'medium' | 'large'.\n * @prop\n * @defaultValue 'medium'\n */\n @Prop()\n size: 'small' | 'medium' | 'large' = 'medium';\n\n /**\n * Whether the radio button is disabled.\n * @prop\n * @defaultValue false\n */\n @Prop()\n disabled = false;\n\n /**\n * Whether the radio button is readonly.\n * @prop\n * @defaultValue false\n */\n @Prop()\n readonly = false;\n\n /**\n * Position of the label relative to the radio button: 'right' | 'left'.\n * @prop\n * @defaultValue 'right'\n */\n @Prop()\n labelPosition: 'right' | 'left' = 'right';\n\n /**\n * Whether the radio button is in an error state.\n * @prop\n * @defaultValue false\n */\n @Prop()\n error: boolean = false;\n\n @Event({\n composed: false,\n bubbles: false,\n cancelable: true,\n eventName: 'bcmRadioChange',\n })\n bcmRadioChange: EventEmitter<void>;\n\n @Event({\n composed: false,\n bubbles: false,\n cancelable: true,\n })\n bcmBlur: EventEmitter<FocusEvent>;\n\n @Event({\n composed: false,\n bubbles: false,\n cancelable: true,\n })\n bcmFocus: EventEmitter<FocusEvent>;\n\n private handleClick(): void {\n if (this.readonly || this.disabled) return;\n if (!this.checked) {\n this.checked = true;\n this.bcmRadioChange.emit();\n }\n }\n\n private getRadioStyle() {\n const defaultStyle = {\n '--bcm-radio-bg': 'var(--bcm-ui-color-background-default-default)',\n '--bcm-radio-border': 'var(--bcm-ui-color-border-disabled)',\n '--bcm-radio-border-hover': 'var(--bcm-ui-color-border-primary)',\n '--bcm-radio-checked': 'var(--bcm-ui-color-background-primary-default)',\n '--bcm-radio-text-color': 'var(--bcm-ui-color-text-default)',\n };\n\n const errorStyle = {\n '--bcm-radio-bg': 'var(--bcm-ui-color-background-palette-red-default)',\n '--bcm-radio-border': 'var(--bcm-ui-color-border-error)',\n '--bcm-radio-border-hover': 'var(--bcm-ui-color-border-error)',\n '--bcm-radio-checked': 'var(--bcm-ui-color-background-error-default)',\n '--bcm-radio-text-color': 'var(--bcm-ui-color-text-default)',\n };\n\n const disabledStyle = {\n '--bcm-radio-bg': 'var(--bcm-ui-color-background-disabled-default)',\n '--bcm-radio-border': 'var(--bcm-ui-color-border-disabled)',\n '--bcm-radio-border-hover': 'var(--bcm-ui-color-border-disabled)',\n '--bcm-radio-checked': 'var(--bcm-ui-color-background-disabled-default)',\n '--bcm-radio-text-color': 'var(--bcm-ui-color-text-disabled)',\n };\n\n const readonlyStyle = {\n '--bcm-radio-bg': 'transparent',\n '--bcm-radio-border': 'var(--bcm-ui-color-border-disabled)',\n '--bcm-radio-checked': 'var(--bcm-ui-color-background-default-default)',\n '--bcm-radio-border-hover': 'var(--bcm-ui-color-border-disabled)',\n '--bcm-radio-text-color': 'var(--bcm-ui-color-text-default)',\n };\n\n return {\n ...defaultStyle,\n ...(this.error && errorStyle),\n ...(this.disabled && disabledStyle),\n ...(this.readonly && readonlyStyle),\n };\n }\n\n private getRadioClass = tv(\n {\n slots: {\n container: 'bcm-ui-element bcm-radio group',\n dot: 'absolute rounded-full transition bg-[--bcm-radio-checked]',\n dotContainer:\n 'relative rounded-full flex items-center justify-center shadow-[inset_0_0_0_1px_var(--bcm-radio-border)] bg-[--bcm-radio-bg] transition group-hover:shadow-[inset_0_0_0_1px_var(--bcm-radio-border-hover)]',\n labelClass: 'font-medium text-[--bcm-radio-text-color]',\n },\n variants: {\n size: {\n small: {\n container: 'gap-2',\n dotContainer: 'size-3.5',\n dot: 'size-2',\n labelClass: 'text-size-4',\n },\n medium: {\n container: 'gap-2.5',\n dotContainer: 'size-4',\n dot: 'size-2.5',\n labelClass: 'text-size-5',\n },\n large: {\n container: 'gap-3',\n dotContainer: 'size-[18px]',\n dot: 'size-3',\n labelClass: 'text-size-6',\n },\n },\n checked: {\n true: {\n dot: 'opacity-100',\n },\n false: {\n dot: 'opacity-0',\n },\n },\n disabled: {\n true: {\n container: 'cursor-not-allowed',\n },\n false: {\n container: 'cursor-pointer focus-visible:ring',\n },\n },\n readonly: {\n true: {\n container: 'cursor-default pointer-events-none',\n dot: 'opacity-100',\n dotContainer: 'shadow-[inset_0_0_0_3px_var(--bcm-radio-border)]',\n },\n false: '',\n },\n labelPosition: {\n left: {\n container: 'inline-flex flex-row-reverse items-center',\n },\n right: {\n container: 'inline-flex flex-row items-center',\n },\n },\n },\n },\n {\n twMerge: false,\n },\n );\n\n render() {\n const { container, dot, dotContainer, labelClass } = this.getRadioClass({\n size: this.size,\n checked: this.checked,\n disabled: this.disabled,\n readonly: this.readonly,\n labelPosition: this.labelPosition,\n });\n\n return (\n <label class={container()} style={this.getRadioStyle()}>\n <input\n aria-label={this.label}\n role=\"radio\"\n aria-checked={this.checked.toString()}\n type=\"radio\"\n name={this.name}\n value={this.value}\n disabled={this.disabled}\n readOnly={this.readonly}\n checked={this.checked}\n class=\"appearance-none sr-only\"\n onClick={() => this.handleClick()}\n onFocus={e => this.bcmFocus.emit(e)}\n onBlur={e => this.bcmBlur.emit(e)}\n ></input>\n <div class={dotContainer()}>\n <div class={dot()}></div>\n </div>\n <span class={labelClass()}>\n <slot>{this.label}</slot>\n </span>\n </label>\n );\n }\n}\n"],"version":3}
@@ -0,0 +1,105 @@
1
+ import { r as registerInstance, c as createEvent, h, H as Host, g as getElement } from './index-8571fbf7.js';
2
+ import { c as ce } from './index-f3b17e60.js';
3
+
4
+ const segmentedPickerOptionCss = ".relative{position:relative}.flex{display:flex}.outline{outline-style:solid}:host{display:inline-block;flex:1}.segmented-option{background:transparent;height:100%;outline:none;position:relative;width:100%;z-index:1}.bcm-ui-element{-webkit-font-smoothing:antialiased;-moz-osx-font-smoothing:grayscale;font-family:Inter,sans-serif}.static{position:static}.inline-flex{display:inline-flex}.cursor-not-allowed{cursor:not-allowed}.cursor-pointer{cursor:pointer}.select-none{user-select:none}.items-center{align-items:center}.justify-center{justify-content:center}.border-0{border-width:0}.px-3{padding-left:.75rem;padding-right:.75rem}.py-\\[1px\\]{padding-bottom:1px;padding-top:1px}.py-\\[3px\\]{padding-bottom:3px;padding-top:3px}.py-\\[6px\\]{padding-bottom:6px;padding-top:6px}.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)}.text-\\[--bcm-ui-color-text-header\\]{color:var(--bcm-ui-color-text-header)}.text-\\[--bcm-ui-color-text-helper\\]{color:var(--bcm-ui-color-text-helper)}.opacity-50{opacity:.5}.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)}";
5
+ const BcmSegmentedPickerOptionStyle0 = segmentedPickerOptionCss;
6
+
7
+ const BcmSegmentedPickerOption = class {
8
+ constructor(hostRef) {
9
+ registerInstance(this, hostRef);
10
+ this.bcmOptionClick = createEvent(this, "bcmOptionClick", 5);
11
+ /** Whether this option is selected */
12
+ this.selected = false;
13
+ /** Whether this option is disabled */
14
+ this.disabled = false;
15
+ this.parentRef = null;
16
+ this.handleClick = () => {
17
+ if (this.isDisabled())
18
+ return;
19
+ this.bcmOptionClick.emit(this.value);
20
+ };
21
+ this.optionClass = ce({
22
+ base: 'segmented-option bcm-ui-element inline-flex items-center justify-center text-center border-0 cursor-pointer select-none',
23
+ variants: {
24
+ size: {
25
+ small: 'py-[1px] px-3 text-size-4',
26
+ medium: 'py-[3px] px-3 text-size-5',
27
+ large: 'py-[6px] px-3 text-size-6',
28
+ },
29
+ selected: {
30
+ true: 'text-[--bcm-ui-color-text-header]',
31
+ false: 'text-[--bcm-ui-color-text-helper]',
32
+ },
33
+ disabled: {
34
+ true: 'cursor-not-allowed opacity-50',
35
+ false: '',
36
+ },
37
+ },
38
+ defaultVariants: {
39
+ size: 'medium',
40
+ selected: false,
41
+ disabled: false,
42
+ },
43
+ }, {
44
+ twMerge: false,
45
+ });
46
+ }
47
+ componentWillLoad() {
48
+ // Parent referansını al
49
+ this.parentRef = this.host.closest('bcm-segmented-picker');
50
+ // İlk yüklemede selected durumu
51
+ if (this.parentRef) {
52
+ this.selected = this.parentRef.getAttribute('value') === this.value;
53
+ }
54
+ }
55
+ componentDidLoad() {
56
+ // DOM yüklendikten sonra sadece parent değer değişikliklerini gözlemeye başla
57
+ // Burada artık prop değişikliği yok
58
+ this.setupValueObserver();
59
+ }
60
+ disconnectedCallback() {
61
+ if (this.parentValueObserver) {
62
+ this.parentValueObserver.disconnect();
63
+ }
64
+ }
65
+ setupValueObserver() {
66
+ if (this.parentRef) {
67
+ this.parentValueObserver = new MutationObserver(() => {
68
+ this.selected = this.isValueSelected();
69
+ });
70
+ this.parentValueObserver.observe(this.parentRef, { attributes: true, attributeFilter: ['value'] });
71
+ }
72
+ }
73
+ isValueSelected() {
74
+ var _a;
75
+ return ((_a = this.parentRef) === null || _a === void 0 ? void 0 : _a.getAttribute('value')) === this.value;
76
+ }
77
+ getSizeFromParent() {
78
+ var _a;
79
+ return ((_a = this.parentRef) === null || _a === void 0 ? void 0 : _a.getAttribute('size')) || 'medium';
80
+ }
81
+ isDisabled() {
82
+ var _a;
83
+ return this.disabled || ((_a = this.parentRef) === null || _a === void 0 ? void 0 : _a.hasAttribute('disabled')) || false;
84
+ }
85
+ async getWidth() {
86
+ var _a;
87
+ const element = (_a = this.host.shadowRoot) === null || _a === void 0 ? void 0 : _a.querySelector('.segmented-option');
88
+ return (element === null || element === void 0 ? void 0 : element.getBoundingClientRect().width) || 0;
89
+ }
90
+ render() {
91
+ const size = this.size || this.getSizeFromParent();
92
+ const disabled = this.isDisabled();
93
+ return (h(Host, { key: '753ba2aeeb51583c312798ef3bc7dfa00203548d' }, h("button", { key: '403c1a1c2fb28894ae9b9c93f2b50b958bfe4657', class: this.optionClass({
94
+ size,
95
+ selected: this.selected,
96
+ disabled,
97
+ }), onClick: this.handleClick, disabled: disabled, type: "button" }, h("slot", { key: 'effebfd8ea1a412483c1f6789eec1d2736dc5e97' }, this.label))));
98
+ }
99
+ get host() { return getElement(this); }
100
+ };
101
+ BcmSegmentedPickerOption.style = BcmSegmentedPickerOptionStyle0;
102
+
103
+ export { BcmSegmentedPickerOption as bcm_segmented_picker_option };
104
+
105
+ //# sourceMappingURL=bcm-segmented-picker-option.entry.js.map
@@ -0,0 +1 @@
1
+ {"file":"bcm-segmented-picker-option.entry.js","mappings":";;;AAAA,MAAM,wBAAwB,GAAG,i9CAAi9C,CAAC;AACn/C,uCAAe,wBAAwB;;MCQ1B,wBAAwB;IALrC;;;;QAsBE,aAAQ,GAAG,KAAK,CAAC;;QAIjB,aAAQ,GAAG,KAAK,CAAC;QAWT,cAAS,GAAuB,IAAI,CAAC;QA6CrC,gBAAW,GAAG;YACpB,IAAI,IAAI,CAAC,UAAU,EAAE;gBAAE,OAAO;YAC9B,IAAI,CAAC,cAAc,CAAC,IAAI,CAAC,IAAI,CAAC,KAAK,CAAC,CAAC;SACtC,CAAC;QAQM,gBAAW,GAAGA,EAAE,CACtB;YACE,IAAI,EAAE,yHAAyH;YAC/H,QAAQ,EAAE;gBACR,IAAI,EAAE;oBACJ,KAAK,EAAE,2BAA2B;oBAClC,MAAM,EAAE,2BAA2B;oBACnC,KAAK,EAAE,2BAA2B;iBACnC;gBACD,QAAQ,EAAE;oBACR,IAAI,EAAE,mCAAmC;oBACzC,KAAK,EAAE,mCAAmC;iBAC3C;gBACD,QAAQ,EAAE;oBACR,IAAI,EAAE,+BAA+B;oBACrC,KAAK,EAAE,EAAE;iBACV;aACF;YACD,eAAe,EAAE;gBACf,IAAI,EAAE,QAAQ;gBACd,QAAQ,EAAE,KAAK;gBACf,QAAQ,EAAE,KAAK;aAChB;SACF,EACD;YACE,OAAO,EAAE,KAAK;SACf,CACF,CAAC;KAuBH;IAxGC,iBAAiB;;QAEf,IAAI,CAAC,SAAS,GAAG,IAAI,CAAC,IAAI,CAAC,OAAO,CAAC,sBAAsB,CAAC,CAAC;;QAG3D,IAAI,IAAI,CAAC,SAAS,EAAE;YAClB,IAAI,CAAC,QAAQ,GAAG,IAAI,CAAC,SAAS,CAAC,YAAY,CAAC,OAAO,CAAC,KAAK,IAAI,CAAC,KAAK,CAAC;SACrE;KACF;IAED,gBAAgB;;;QAGd,IAAI,CAAC,kBAAkB,EAAE,CAAC;KAC3B;IAED,oBAAoB;QAClB,IAAI,IAAI,CAAC,mBAAmB,EAAE;YAC5B,IAAI,CAAC,mBAAmB,CAAC,UAAU,EAAE,CAAC;SACvC;KACF;IAEO,kBAAkB;QACxB,IAAI,IAAI,CAAC,SAAS,EAAE;YAClB,IAAI,CAAC,mBAAmB,GAAG,IAAI,gBAAgB,CAAC;gBAC9C,IAAI,CAAC,QAAQ,GAAG,IAAI,CAAC,eAAe,EAAE,CAAC;aACxC,CAAC,CAAC;YACH,IAAI,CAAC,mBAAmB,CAAC,OAAO,CAAC,IAAI,CAAC,SAAS,EAAE,EAAE,UAAU,EAAE,IAAI,EAAE,eAAe,EAAE,CAAC,OAAO,CAAC,EAAE,CAAC,CAAC;SACpG;KACF;IAEO,eAAe;;QACrB,OAAO,CAAA,MAAA,IAAI,CAAC,SAAS,0CAAE,YAAY,CAAC,OAAO,CAAC,MAAK,IAAI,CAAC,KAAK,CAAC;KAC7D;IAEO,iBAAiB;;QACvB,OAAO,CAAC,MAAA,IAAI,CAAC,SAAS,0CAAE,YAAY,CAAC,MAAM,CAAyB,KAAI,QAAQ,CAAC;KAClF;IAEO,UAAU;;QAChB,OAAO,IAAI,CAAC,QAAQ,KAAI,MAAA,IAAI,CAAC,SAAS,0CAAE,YAAY,CAAC,UAAU,CAAC,CAAA,IAAI,KAAK,CAAC;KAC3E;IAQD,MAAM,QAAQ;;QACZ,MAAM,OAAO,GAAG,MAAA,IAAI,CAAC,IAAI,CAAC,UAAU,0CAAE,aAAa,CAAC,mBAAmB,CAAC,CAAC;QACzE,OAAO,CAAA,OAAO,aAAP,OAAO,uBAAP,OAAO,CAAE,qBAAqB,GAAG,KAAK,KAAI,CAAC,CAAC;KACpD;IA+BD,MAAM;QACJ,MAAM,IAAI,GAAG,IAAI,CAAC,IAAI,IAAI,IAAI,CAAC,iBAAiB,EAAE,CAAC;QACnD,MAAM,QAAQ,GAAG,IAAI,CAAC,UAAU,EAAE,CAAC;QAEnC,QACE,EAAC,IAAI,uDACH,+DACE,KAAK,EAAE,IAAI,CAAC,WAAW,CAAC;gBACtB,IAAI;gBACJ,QAAQ,EAAE,IAAI,CAAC,QAAQ;gBACvB,QAAQ;aACT,CAAC,EACF,OAAO,EAAE,IAAI,CAAC,WAAW,EACzB,QAAQ,EAAE,QAAQ,EAClB,IAAI,EAAC,QAAQ,IAEb,+DAAO,IAAI,CAAC,KAAK,CAAQ,CAClB,CACJ,EACP;KACH;;;;;;;","names":["tv"],"sources":["src/components/segmented-picker/segmented-picker-option.css?tag=bcm-segmented-picker-option&encapsulation=shadow","src/components/segmented-picker/segmented-picker-option.component.tsx"],"sourcesContent":[":host {\n display: inline-block;\n flex: 1;\n}\n\n.segmented-option {\n width: 100%;\n height: 100%;\n background: transparent;\n position: relative;\n z-index: 1;\n outline: none;\n}\n","import { Component, Prop, h, Host, Element, Event, EventEmitter, Method } from '@stencil/core';\nimport { SegmentedPickerSize } from './types';\nimport { tv } from 'tailwind-variants';\n\n@Component({\n tag: 'bcm-segmented-picker-option',\n styleUrl: 'segmented-picker-option.css',\n shadow: true,\n})\nexport class BcmSegmentedPickerOption {\n @Element() host: HTMLElement;\n\n /** Option value */\n @Prop()\n value!: string;\n\n /** Option display label */\n @Prop()\n label?: string;\n\n /** Controls the option size */\n @Prop()\n size?: SegmentedPickerSize;\n\n /** Whether this option is selected */\n @Prop({ mutable: true })\n selected = false;\n\n /** Whether this option is disabled */\n @Prop()\n disabled = false;\n\n /** Click event */\n @Event({\n composed: false,\n bubbles: true,\n cancelable: true,\n })\n bcmOptionClick: EventEmitter<string>;\n\n private parentValueObserver: MutationObserver;\n private parentRef: HTMLElement | null = null;\n\n componentWillLoad() {\n // Parent referansını al\n this.parentRef = this.host.closest('bcm-segmented-picker');\n\n // İlk yüklemede selected durumu\n if (this.parentRef) {\n this.selected = this.parentRef.getAttribute('value') === this.value;\n }\n }\n\n componentDidLoad() {\n // DOM yüklendikten sonra sadece parent değer değişikliklerini gözlemeye başla\n // Burada artık prop değişikliği yok\n this.setupValueObserver();\n }\n\n disconnectedCallback() {\n if (this.parentValueObserver) {\n this.parentValueObserver.disconnect();\n }\n }\n\n private setupValueObserver() {\n if (this.parentRef) {\n this.parentValueObserver = new MutationObserver(() => {\n this.selected = this.isValueSelected();\n });\n this.parentValueObserver.observe(this.parentRef, { attributes: true, attributeFilter: ['value'] });\n }\n }\n\n private isValueSelected(): boolean {\n return this.parentRef?.getAttribute('value') === this.value;\n }\n\n private getSizeFromParent(): SegmentedPickerSize {\n return (this.parentRef?.getAttribute('size') as SegmentedPickerSize) || 'medium';\n }\n\n private isDisabled(): boolean {\n return this.disabled || this.parentRef?.hasAttribute('disabled') || false;\n }\n\n private handleClick = () => {\n if (this.isDisabled()) return;\n this.bcmOptionClick.emit(this.value);\n };\n\n @Method()\n async getWidth(): Promise<number> {\n const element = this.host.shadowRoot?.querySelector('.segmented-option');\n return element?.getBoundingClientRect().width || 0;\n }\n\n private optionClass = tv(\n {\n base: 'segmented-option bcm-ui-element inline-flex items-center justify-center text-center border-0 cursor-pointer select-none',\n variants: {\n size: {\n small: 'py-[1px] px-3 text-size-4',\n medium: 'py-[3px] px-3 text-size-5',\n large: 'py-[6px] px-3 text-size-6',\n },\n selected: {\n true: 'text-[--bcm-ui-color-text-header]',\n false: 'text-[--bcm-ui-color-text-helper]',\n },\n disabled: {\n true: 'cursor-not-allowed opacity-50',\n false: '',\n },\n },\n defaultVariants: {\n size: 'medium',\n selected: false,\n disabled: false,\n },\n },\n {\n twMerge: false,\n },\n );\n\n render() {\n const size = this.size || this.getSizeFromParent();\n const disabled = this.isDisabled();\n\n return (\n <Host>\n <button\n class={this.optionClass({\n size,\n selected: this.selected,\n disabled,\n })}\n onClick={this.handleClick}\n disabled={disabled}\n type=\"button\"\n >\n <slot>{this.label}</slot>\n </button>\n </Host>\n );\n }\n}\n"],"version":3}
@@ -0,0 +1,142 @@
1
+ import { r as registerInstance, c as createEvent, h, H as Host, g as getElement } from './index-8571fbf7.js';
2
+ import { c as ce } from './index-f3b17e60.js';
3
+
4
+ const segmentedPickerCss = ".relative{position:relative}.flex{display:flex}.transition{transition-duration:.15s;transition-property:color,background-color,border-color,text-decoration-color,fill,stroke,opacity,box-shadow,transform,filter,backdrop-filter;transition-timing-function:cubic-bezier(.4,0,.2,1)}:host{display:inline-block;position:relative}:host([full-width]){width:100%}.segmented-container{border-radius:var(--bcm-ui-border-radius,4px)}.segmented-indicator{border-radius:var(--bcm-ui-border-radius-md,2px);height:100%;top:0;transition:left .2s ease-in-out,width .2s ease-in-out}.segmented-options{display:flex}.bcm-ui-element{-webkit-font-smoothing:antialiased;-moz-osx-font-smoothing:grayscale;font-family:Inter,sans-serif}.static{position:static}.absolute{position:absolute}.z-0{z-index:0}.z-10{z-index:10}.inline-flex{display:inline-flex}.w-full{width:100%}.cursor-not-allowed{cursor:not-allowed}.cursor-pointer{cursor:pointer}.overflow-hidden{overflow:hidden}.rounded{border-radius:var(--bcm-ui-border-radius-default,6px)}.border{border-width:1px}.border-solid{border-style:solid}.border-\\[--bcm-ui-color-border-default\\]{border-color:var(--bcm-ui-color-border-default)}.bg-\\[--bcm-ui-color-background-base-default\\]{background-color:var(--bcm-ui-color-background-base-default)}.bg-\\[--bcm-ui-color-background-default-default\\]{background-color:var(--bcm-ui-color-background-default-default)}.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)}.opacity-50{opacity:.5}.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)}.filter{filter:var(--tw-blur) var(--tw-brightness) var(--tw-contrast) var(--tw-grayscale) var(--tw-hue-rotate) var(--tw-invert) var(--tw-saturate) var(--tw-sepia) var(--tw-drop-shadow)}.ease-in-out{transition-timing-function:cubic-bezier(.4,0,.2,1)}";
5
+ const BcmSegmentedPickerStyle0 = segmentedPickerCss;
6
+
7
+ const BcmSegmentedPicker = class {
8
+ constructor(hostRef) {
9
+ registerInstance(this, hostRef);
10
+ this.bcmChange = createEvent(this, "bcmChange", 1);
11
+ /** Controls the component size */
12
+ this.size = 'medium';
13
+ /** Disabled state */
14
+ this.disabled = false;
15
+ /** Full width component */
16
+ this.fullWidth = false;
17
+ this.options = [];
18
+ this.indicatorStyles = {
19
+ left: '0',
20
+ width: '0',
21
+ transition: 'none',
22
+ };
23
+ this.segmentedClass = ce({
24
+ base: 'segmented-container bcm-ui-element inline-flex relative bg-[--bcm-ui-color-background-default-default] border border-solid border-[--bcm-ui-color-border-default] rounded overflow-hidden',
25
+ variants: {
26
+ size: {
27
+ small: 'text-size-4',
28
+ medium: 'text-size-5',
29
+ large: 'text-size-6',
30
+ },
31
+ fullWidth: {
32
+ true: 'w-full',
33
+ },
34
+ disabled: {
35
+ true: 'opacity-50 cursor-not-allowed',
36
+ false: 'cursor-pointer',
37
+ },
38
+ },
39
+ defaultVariants: {
40
+ size: 'medium',
41
+ fullWidth: false,
42
+ disabled: false,
43
+ },
44
+ }, {
45
+ twMerge: false,
46
+ });
47
+ }
48
+ componentWillLoad() {
49
+ // İlk yüklemede options'ları belirle
50
+ this.parseOptions();
51
+ // Eğer value belirtilmemişse ve options varsa, ilk option'ı seç
52
+ if (!this.value && this.options.length > 0) {
53
+ this.value = this.options[0].value;
54
+ }
55
+ }
56
+ componentDidLoad() {
57
+ // DOM yüklendikten sonra sadece gösterge pozisyonunu güncelle
58
+ this.updateIndicatorPosition(false);
59
+ }
60
+ componentDidUpdate() {
61
+ this.updateIndicatorPosition();
62
+ }
63
+ valueChanged() {
64
+ this.updateIndicatorPosition();
65
+ }
66
+ handleOptionClick(event) {
67
+ if (this.disabled)
68
+ return;
69
+ const value = event.detail;
70
+ if (this.value !== value) {
71
+ this.value = value;
72
+ this.bcmChange.emit({ value });
73
+ }
74
+ }
75
+ parseOptions() {
76
+ const slotNodes = Array.from(this.host.children);
77
+ this.options = slotNodes
78
+ .filter(node => node.nodeName.toLowerCase() === 'bcm-segmented-picker-option')
79
+ .map(option => ({
80
+ value: option.getAttribute('value') || '',
81
+ label: option.getAttribute('label') || option.textContent || '',
82
+ }));
83
+ }
84
+ updateIndicatorPosition(animate = true) {
85
+ // Seçili option elemanını bul
86
+ const selectedOption = this.host.querySelector(`bcm-segmented-picker-option[value="${this.value}"]`);
87
+ if (!selectedOption)
88
+ return;
89
+ // Tüm option'ları seç
90
+ const allOptions = this.host.querySelectorAll('bcm-segmented-picker-option');
91
+ // Seçili option'ın indeksini bul
92
+ let selectedIndex = -1;
93
+ for (let i = 0; i < allOptions.length; i++) {
94
+ if (allOptions[i].getAttribute('value') === this.value) {
95
+ selectedIndex = i;
96
+ break;
97
+ }
98
+ }
99
+ if (selectedIndex === -1)
100
+ return;
101
+ // DOM manipülasyonu asenkron olarak yap
102
+ setTimeout(() => {
103
+ try {
104
+ // Seçili option'a kadar olan genişliği hesapla
105
+ let leftPosition = 0;
106
+ for (let i = 0; i < selectedIndex; i++) {
107
+ const optionElement = allOptions[i];
108
+ if (optionElement) {
109
+ leftPosition += optionElement.offsetWidth;
110
+ }
111
+ }
112
+ // Seçili option'ın genişliği
113
+ const selectedWidth = allOptions[selectedIndex].offsetWidth;
114
+ // İndikatör stillerini güncelle
115
+ this.indicatorStyles = {
116
+ left: `${leftPosition}px`,
117
+ width: `${selectedWidth}px`,
118
+ transition: animate ? 'all 0.2s ease-in-out' : 'none',
119
+ };
120
+ }
121
+ catch (error) {
122
+ console.error('Error updating indicator position:', error);
123
+ }
124
+ }, 10);
125
+ }
126
+ render() {
127
+ return (h(Host, { key: 'c82527ac7d8fb0d1d66005eb82431b0f951cad97' }, h("div", { key: 'c32f4c59d6c843eef0d20a72d21304f3eeaebab6', class: this.segmentedClass({
128
+ size: this.size,
129
+ fullWidth: this.fullWidth,
130
+ disabled: this.disabled,
131
+ }) }, h("div", { key: 'b5c38f756af549436dabaadfb49aac8f30afad41', class: "segmented-indicator absolute bg-[--bcm-ui-color-background-base-default] z-0 rounded", style: this.indicatorStyles }), h("div", { key: '6a0f9c7d6d2dbc6a8b5ea43e19e2c9b902613812', class: "segmented-options flex relative z-10 w-full" }, h("slot", { key: '2ae6718da8ddb236648e120ae769f21eb6434b31' })))));
132
+ }
133
+ get host() { return getElement(this); }
134
+ static get watchers() { return {
135
+ "value": ["valueChanged"]
136
+ }; }
137
+ };
138
+ BcmSegmentedPicker.style = BcmSegmentedPickerStyle0;
139
+
140
+ export { BcmSegmentedPicker as bcm_segmented_picker };
141
+
142
+ //# sourceMappingURL=bcm-segmented-picker.entry.js.map
@@ -0,0 +1 @@
1
+ {"file":"bcm-segmented-picker.entry.js","mappings":"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","names":["tv"],"sources":["src/components/segmented-picker/segmented-picker.css?tag=bcm-segmented-picker&encapsulation=shadow","src/components/segmented-picker/segmented-picker.component.tsx"],"sourcesContent":[":host {\n display: inline-block;\n position: relative;\n}\n\n:host([full-width]) {\n width: 100%;\n}\n\n.segmented-container {\n border-radius: var(--bcm-ui-border-radius, 4px);\n}\n\n.segmented-indicator {\n height: 100%;\n top: 0;\n border-radius: var(--bcm-ui-border-radius-md, 2px);\n transition: left 0.2s ease-in-out, width 0.2s ease-in-out;\n}\n\n.segmented-options {\n display: flex;\n}\n","import { Component, Prop, h, Host, Element, Event, EventEmitter, Watch, State, Listen } from '@stencil/core';\nimport { tv } from 'tailwind-variants';\nimport { SegmentedPickerSize } from './types';\n\n@Component({\n tag: 'bcm-segmented-picker',\n styleUrl: 'segmented-picker.css',\n shadow: true,\n})\nexport class BcmSegmentedPicker {\n @Element() host: HTMLElement;\n\n /** Controls the component size */\n @Prop()\n size: SegmentedPickerSize = 'medium';\n\n /** The selected option value */\n @Prop({ mutable: true, reflect: true })\n value?: string;\n\n /** Disabled state */\n @Prop()\n disabled = false;\n\n /** Full width component */\n @Prop({ attribute: 'full-width', reflect: true })\n fullWidth = false;\n\n /** Change event */\n @Event({\n composed: false,\n bubbles: false,\n cancelable: true,\n })\n bcmChange: EventEmitter<{ value: string }>;\n\n @State() options: Array<{ value: string; label: string }> = [];\n @State() indicatorStyles: { left: string; width: string; transition: string } = {\n left: '0',\n width: '0',\n transition: 'none',\n };\n\n componentWillLoad() {\n // İlk yüklemede options'ları belirle\n this.parseOptions();\n\n // Eğer value belirtilmemişse ve options varsa, ilk option'ı seç\n if (!this.value && this.options.length > 0) {\n this.value = this.options[0].value;\n }\n }\n\n componentDidLoad() {\n // DOM yüklendikten sonra sadece gösterge pozisyonunu güncelle\n this.updateIndicatorPosition(false);\n }\n\n componentDidUpdate() {\n this.updateIndicatorPosition();\n }\n\n @Watch('value')\n valueChanged() {\n this.updateIndicatorPosition();\n }\n\n @Listen('bcmOptionClick')\n handleOptionClick(event: CustomEvent<string>) {\n if (this.disabled) return;\n\n const value = event.detail;\n if (this.value !== value) {\n this.value = value;\n this.bcmChange.emit({ value });\n }\n }\n\n private parseOptions() {\n const slotNodes = Array.from(this.host.children);\n this.options = slotNodes\n .filter(node => node.nodeName.toLowerCase() === 'bcm-segmented-picker-option')\n .map(option => ({\n value: option.getAttribute('value') || '',\n label: option.getAttribute('label') || option.textContent || '',\n }));\n }\n\n private updateIndicatorPosition(animate = true) {\n // Seçili option elemanını bul\n const selectedOption = this.host.querySelector(`bcm-segmented-picker-option[value=\"${this.value}\"]`) as HTMLElement;\n if (!selectedOption) return;\n\n // Tüm option'ları seç\n const allOptions = this.host.querySelectorAll('bcm-segmented-picker-option');\n\n // Seçili option'ın indeksini bul\n let selectedIndex = -1;\n for (let i = 0; i < allOptions.length; i++) {\n if (allOptions[i].getAttribute('value') === this.value) {\n selectedIndex = i;\n break;\n }\n }\n\n if (selectedIndex === -1) return;\n\n // DOM manipülasyonu asenkron olarak yap\n setTimeout(() => {\n try {\n // Seçili option'a kadar olan genişliği hesapla\n let leftPosition = 0;\n\n for (let i = 0; i < selectedIndex; i++) {\n const optionElement = allOptions[i] as HTMLElement;\n if (optionElement) {\n leftPosition += optionElement.offsetWidth;\n }\n }\n\n // Seçili option'ın genişliği\n const selectedWidth = (allOptions[selectedIndex] as HTMLElement).offsetWidth;\n\n // İndikatör stillerini güncelle\n this.indicatorStyles = {\n left: `${leftPosition}px`,\n width: `${selectedWidth}px`,\n transition: animate ? 'all 0.2s ease-in-out' : 'none',\n };\n } catch (error) {\n console.error('Error updating indicator position:', error);\n }\n }, 10);\n }\n\n private segmentedClass = tv(\n {\n base: 'segmented-container bcm-ui-element inline-flex relative bg-[--bcm-ui-color-background-default-default] border border-solid border-[--bcm-ui-color-border-default] rounded overflow-hidden',\n variants: {\n size: {\n small: 'text-size-4',\n medium: 'text-size-5',\n large: 'text-size-6',\n },\n fullWidth: {\n true: 'w-full',\n },\n disabled: {\n true: 'opacity-50 cursor-not-allowed',\n false: 'cursor-pointer',\n },\n },\n defaultVariants: {\n size: 'medium',\n fullWidth: false,\n disabled: false,\n },\n },\n {\n twMerge: false,\n },\n );\n\n render() {\n return (\n <Host>\n <div\n class={this.segmentedClass({\n size: this.size,\n fullWidth: this.fullWidth,\n disabled: this.disabled,\n })}\n >\n <div class=\"segmented-indicator absolute bg-[--bcm-ui-color-background-base-default] z-0 rounded\" style={this.indicatorStyles}></div>\n <div class=\"segmented-options flex relative z-10 w-full\">\n <slot></slot>\n </div>\n </div>\n </Host>\n );\n }\n}\n"],"version":3}