bromcom-ui-next 0.1.4 → 0.1.6

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
Files changed (395) hide show
  1. package/dist/bromcom-ui/bromcom-ui.css +1 -1
  2. package/dist/bromcom-ui/bromcom-ui.esm.js +1 -1
  3. package/dist/bromcom-ui/bromcom-ui.esm.js.map +1 -1
  4. package/dist/bromcom-ui/p-0d0d6483.entry.js +2 -0
  5. package/dist/bromcom-ui/{p-3b607038.entry.js.map → p-0d0d6483.entry.js.map} +1 -1
  6. package/dist/bromcom-ui/p-13784cd7.entry.js +2 -0
  7. package/dist/bromcom-ui/p-13784cd7.entry.js.map +1 -0
  8. package/dist/bromcom-ui/p-13a245f6.js +2 -0
  9. package/dist/bromcom-ui/p-13a245f6.js.map +1 -0
  10. package/dist/bromcom-ui/p-25038cc8.entry.js +2 -0
  11. package/dist/bromcom-ui/p-25038cc8.entry.js.map +1 -0
  12. package/dist/bromcom-ui/p-308f865b.entry.js +2 -0
  13. package/dist/bromcom-ui/p-308f865b.entry.js.map +1 -0
  14. package/dist/bromcom-ui/p-385fa0f3.entry.js +2 -0
  15. package/dist/bromcom-ui/p-385fa0f3.entry.js.map +1 -0
  16. package/dist/bromcom-ui/p-389f1976.entry.js +2 -0
  17. package/dist/bromcom-ui/p-389f1976.entry.js.map +1 -0
  18. package/dist/bromcom-ui/p-3b230145.entry.js +2 -0
  19. package/dist/bromcom-ui/p-3b230145.entry.js.map +1 -0
  20. package/dist/bromcom-ui/p-49b0e982.entry.js +2 -0
  21. package/dist/bromcom-ui/p-49b0e982.entry.js.map +1 -0
  22. package/dist/bromcom-ui/p-55c4263c.entry.js +2 -0
  23. package/dist/bromcom-ui/p-55c4263c.entry.js.map +1 -0
  24. package/dist/bromcom-ui/{p-ebed10d5.entry.js → p-58ee24a8.entry.js} +2 -2
  25. package/dist/bromcom-ui/{p-ebed10d5.entry.js.map → p-58ee24a8.entry.js.map} +1 -1
  26. package/dist/bromcom-ui/p-729a870f.js.map +1 -1
  27. package/dist/bromcom-ui/p-9551c35e.entry.js +2 -0
  28. package/dist/bromcom-ui/p-9551c35e.entry.js.map +1 -0
  29. package/dist/bromcom-ui/p-9594cebb.js +2 -0
  30. package/dist/bromcom-ui/p-9594cebb.js.map +1 -0
  31. package/dist/bromcom-ui/p-98c76392.entry.js +2 -0
  32. package/dist/bromcom-ui/p-98c76392.entry.js.map +1 -0
  33. package/dist/bromcom-ui/p-a29e61a4.entry.js +2 -0
  34. package/dist/bromcom-ui/{p-cd437280.entry.js.map → p-a29e61a4.entry.js.map} +1 -1
  35. package/dist/bromcom-ui/p-ba2410ef.js +2 -0
  36. package/dist/bromcom-ui/p-ba2410ef.js.map +1 -0
  37. package/dist/bromcom-ui/p-bd0f7e78.entry.js +2 -0
  38. package/dist/bromcom-ui/p-bd0f7e78.entry.js.map +1 -0
  39. package/dist/bromcom-ui/p-bf69fc8a.entry.js +2 -0
  40. package/dist/bromcom-ui/p-bf69fc8a.entry.js.map +1 -0
  41. package/dist/bromcom-ui/{p-5d0838e9.entry.js → p-c1161950.entry.js} +2 -2
  42. package/dist/bromcom-ui/{p-5d0838e9.entry.js.map → p-c1161950.entry.js.map} +1 -1
  43. package/dist/bromcom-ui/p-c2b3945e.entry.js +2 -0
  44. package/dist/bromcom-ui/p-c2b3945e.entry.js.map +1 -0
  45. package/dist/bromcom-ui/p-c427ffee.entry.js +2 -0
  46. package/dist/bromcom-ui/{p-dcea8d62.entry.js.map → p-c427ffee.entry.js.map} +1 -1
  47. package/dist/bromcom-ui/p-c444235a.entry.js +2 -0
  48. package/dist/bromcom-ui/p-c444235a.entry.js.map +1 -0
  49. package/dist/bromcom-ui/p-c995a48c.entry.js +2 -0
  50. package/dist/bromcom-ui/p-c995a48c.entry.js.map +1 -0
  51. package/dist/bromcom-ui/p-c9b736d9.js +3 -0
  52. package/dist/{cjs/index-4795c073.js.map → bromcom-ui/p-c9b736d9.js.map} +1 -1
  53. package/dist/bromcom-ui/p-cd271b49.entry.js +2 -0
  54. package/dist/bromcom-ui/p-cd271b49.entry.js.map +1 -0
  55. package/dist/bromcom-ui/p-cee68279.entry.js +2 -0
  56. package/dist/bromcom-ui/{p-1d86c1cf.entry.js.map → p-cee68279.entry.js.map} +1 -1
  57. package/dist/bromcom-ui/{p-a590f793.entry.js → p-d57587e5.entry.js} +2 -2
  58. package/dist/bromcom-ui/{p-a590f793.entry.js.map → p-d57587e5.entry.js.map} +1 -1
  59. package/dist/bromcom-ui/p-e89ab4a7.entry.js +2 -0
  60. package/dist/bromcom-ui/p-e89ab4a7.entry.js.map +1 -0
  61. package/dist/bromcom-ui/{p-1b11150b.entry.js → p-f2d8aa70.entry.js} +2 -2
  62. package/dist/bromcom-ui/{p-1b11150b.entry.js.map → p-f2d8aa70.entry.js.map} +1 -1
  63. package/dist/bromcom-ui/p-f4e8a47d.entry.js +2 -0
  64. package/dist/bromcom-ui/p-f4e8a47d.entry.js.map +1 -0
  65. package/dist/cjs/app-globals-29edfda4.js.map +1 -1
  66. package/dist/cjs/bcm-accordion-group.cjs.entry.js +2 -2
  67. package/dist/cjs/bcm-accordion-group.cjs.entry.js.map +1 -1
  68. package/dist/cjs/bcm-accordion.cjs.entry.js +2 -2
  69. package/dist/cjs/bcm-accordion.cjs.entry.js.map +1 -1
  70. package/dist/cjs/bcm-alert.cjs.entry.js +2 -2
  71. package/dist/cjs/bcm-alert.cjs.entry.js.map +1 -1
  72. package/dist/cjs/bcm-avatar_4.cjs.entry.js +13 -7
  73. package/dist/cjs/bcm-avatar_4.cjs.entry.js.map +1 -1
  74. package/dist/cjs/bcm-button-group.cjs.entry.js +97 -0
  75. package/dist/cjs/bcm-button-group.cjs.entry.js.map +1 -0
  76. package/dist/cjs/bcm-checkbox.cjs.entry.js +226 -0
  77. package/dist/cjs/bcm-checkbox.cjs.entry.js.map +1 -0
  78. package/dist/cjs/bcm-chip.cjs.entry.js +3 -3
  79. package/dist/cjs/bcm-chip.cjs.entry.js.map +1 -1
  80. package/dist/cjs/bcm-divider.cjs.entry.js +3 -3
  81. package/dist/cjs/bcm-divider.cjs.entry.js.map +1 -1
  82. package/dist/cjs/bcm-dropdown-item.cjs.entry.js +63 -0
  83. package/dist/cjs/bcm-dropdown-item.cjs.entry.js.map +1 -0
  84. package/dist/cjs/bcm-dropdown.cjs.entry.js +56 -0
  85. package/dist/cjs/bcm-dropdown.cjs.entry.js.map +1 -0
  86. package/dist/cjs/bcm-input.cjs.entry.js +7 -6
  87. package/dist/cjs/bcm-input.cjs.entry.js.map +1 -1
  88. package/dist/cjs/bcm-linked.cjs.entry.js +91 -0
  89. package/dist/cjs/bcm-linked.cjs.entry.js.map +1 -0
  90. package/dist/cjs/bcm-pop-confirm.cjs.entry.js +252 -0
  91. package/dist/cjs/bcm-pop-confirm.cjs.entry.js.map +1 -0
  92. package/dist/cjs/bcm-popover.cjs.entry.js +191 -0
  93. package/dist/cjs/bcm-popover.cjs.entry.js.map +1 -0
  94. package/dist/cjs/bcm-radio-group.cjs.entry.js +171 -0
  95. package/dist/cjs/bcm-radio-group.cjs.entry.js.map +1 -0
  96. package/dist/cjs/bcm-radio.cjs.entry.js +173 -0
  97. package/dist/cjs/bcm-radio.cjs.entry.js.map +1 -0
  98. package/dist/cjs/bcm-segmented-picker-option.cjs.entry.js +109 -0
  99. package/dist/cjs/bcm-segmented-picker-option.cjs.entry.js.map +1 -0
  100. package/dist/cjs/bcm-segmented-picker.cjs.entry.js +146 -0
  101. package/dist/cjs/bcm-segmented-picker.cjs.entry.js.map +1 -0
  102. package/dist/cjs/bcm-switch.cjs.entry.js +188 -0
  103. package/dist/cjs/bcm-switch.cjs.entry.js.map +1 -0
  104. package/dist/cjs/bcm-tabs-content.cjs.entry.js +22 -0
  105. package/dist/cjs/bcm-tabs-content.cjs.entry.js.map +1 -0
  106. package/dist/cjs/bcm-tabs-list.cjs.entry.js +43 -0
  107. package/dist/cjs/bcm-tabs-list.cjs.entry.js.map +1 -0
  108. package/dist/cjs/bcm-tabs-trigger.cjs.entry.js +92 -0
  109. package/dist/cjs/bcm-tabs-trigger.cjs.entry.js.map +1 -0
  110. package/dist/cjs/bcm-tabs.cjs.entry.js +211 -0
  111. package/dist/cjs/bcm-tabs.cjs.entry.js.map +1 -0
  112. package/dist/cjs/bcm-text.cjs.entry.js +3 -3
  113. package/dist/cjs/bcm-text.cjs.entry.js.map +1 -1
  114. package/dist/cjs/bcm-textarea.cjs.entry.js +8 -7
  115. package/dist/cjs/bcm-textarea.cjs.entry.js.map +1 -1
  116. package/dist/cjs/bcm-tooltip.cjs.entry.js +187 -0
  117. package/dist/cjs/bcm-tooltip.cjs.entry.js.map +1 -0
  118. package/dist/cjs/bromcom-ui.cjs.js +2 -2
  119. package/dist/cjs/floating-ui.dom.esm-3ec8404c.js +2085 -0
  120. package/dist/cjs/floating-ui.dom.esm-3ec8404c.js.map +1 -0
  121. package/dist/{components/p-31354aaa.js → cjs/generate-id-f6982042.js} +4 -47
  122. package/dist/cjs/generate-id-f6982042.js.map +1 -0
  123. package/dist/cjs/{index-4795c073.js → index-9a2c5938.js} +36 -7
  124. package/dist/{bromcom-ui/p-15fe392b.js.map → cjs/index-9a2c5938.js.map} +1 -1
  125. package/dist/cjs/loader.cjs.js +2 -2
  126. package/dist/cjs/validation-messages-18389279.js +52 -0
  127. package/dist/cjs/validation-messages-18389279.js.map +1 -0
  128. package/dist/collection/collection-manifest.json +18 -1
  129. package/dist/collection/components/accordion/accordion.css +1 -1
  130. package/dist/collection/components/accordion-group/accordion-group.css +1 -1
  131. package/dist/collection/components/alert/alert.css +1 -1
  132. package/dist/collection/components/avatar/avatar.css +1 -1
  133. package/dist/collection/components/badge/badge.css +1 -1
  134. package/dist/collection/components/basic-badge/basic-badge.css +1 -1
  135. package/dist/collection/components/button/button.component.js +33 -2
  136. package/dist/collection/components/button/button.component.js.map +1 -1
  137. package/dist/collection/components/button/button.css +1 -1
  138. package/dist/collection/components/button/types.js.map +1 -1
  139. package/dist/collection/components/button-group/button-group.component.js +252 -0
  140. package/dist/collection/components/button-group/button-group.component.js.map +1 -0
  141. package/dist/collection/components/button-group/button-group.css +1 -0
  142. package/dist/collection/components/button-group/types.js +2 -0
  143. package/dist/collection/components/button-group/types.js.map +1 -0
  144. package/dist/collection/components/checkbox/checkbox.component.js +440 -0
  145. package/dist/collection/components/checkbox/checkbox.component.js.map +1 -0
  146. package/dist/collection/components/checkbox/checkbox.css +1 -0
  147. package/dist/collection/components/chip/chip.component.js +1 -1
  148. package/dist/collection/components/chip/chip.css +1 -1
  149. package/dist/collection/components/divider/divider.component.js +1 -1
  150. package/dist/collection/components/divider/divider.css +1 -1
  151. package/dist/collection/components/dropdown/dropdown.component.js +110 -0
  152. package/dist/collection/components/dropdown/dropdown.component.js.map +1 -0
  153. package/dist/collection/components/dropdown/dropdown.css +1 -0
  154. package/dist/collection/components/dropdown-item/dropdown-item.component.js +198 -0
  155. package/dist/collection/components/dropdown-item/dropdown-item.component.js.map +1 -0
  156. package/dist/collection/components/dropdown-item/dropdown-item.css +1 -0
  157. package/dist/collection/components/input/input.component.js +2 -2
  158. package/dist/collection/components/input/input.css +1 -1
  159. package/dist/collection/components/linked/linked.component.js +140 -0
  160. package/dist/collection/components/linked/linked.component.js.map +1 -0
  161. package/dist/collection/components/linked/linked.css +1 -0
  162. package/dist/collection/components/pop-confirm/pop-confirm.component.js +629 -0
  163. package/dist/collection/components/pop-confirm/pop-confirm.component.js.map +1 -0
  164. package/dist/collection/components/pop-confirm/pop-confirm.css +1 -0
  165. package/dist/collection/components/popover/popover.component.js +477 -0
  166. package/dist/collection/components/popover/popover.component.js.map +1 -0
  167. package/dist/collection/components/popover/popover.css +1 -0
  168. package/dist/collection/components/radio/radio.component.js +502 -0
  169. package/dist/collection/components/radio/radio.component.js.map +1 -0
  170. package/dist/collection/components/radio/radio.css +1 -0
  171. package/dist/collection/components/radio-group/radio-group.component.js +523 -0
  172. package/dist/collection/components/radio-group/radio-group.component.js.map +1 -0
  173. package/dist/collection/components/radio-group/radio-group.css +1 -0
  174. package/dist/collection/components/segmented-picker/segmented-picker-option.component.js +253 -0
  175. package/dist/collection/components/segmented-picker/segmented-picker-option.component.js.map +1 -0
  176. package/dist/collection/components/segmented-picker/segmented-picker-option.css +1 -0
  177. package/dist/collection/components/segmented-picker/segmented-picker.component.js +269 -0
  178. package/dist/collection/components/segmented-picker/segmented-picker.component.js.map +1 -0
  179. package/dist/collection/components/segmented-picker/segmented-picker.css +1 -0
  180. package/dist/collection/components/segmented-picker/types.js +2 -0
  181. package/dist/collection/components/segmented-picker/types.js.map +1 -0
  182. package/dist/collection/components/switch/switch.component.js +452 -0
  183. package/dist/collection/components/switch/switch.component.js.map +1 -0
  184. package/dist/collection/components/switch/switch.css +1 -0
  185. package/dist/collection/components/tabs/bcm-tabs.css +1 -0
  186. package/dist/collection/components/tabs/tabs-content.component.js +46 -0
  187. package/dist/collection/components/tabs/tabs-content.component.js.map +1 -0
  188. package/dist/collection/components/tabs/tabs-content.css +1 -0
  189. package/dist/collection/components/tabs/tabs-list.component.js +46 -0
  190. package/dist/collection/components/tabs/tabs-list.component.js.map +1 -0
  191. package/dist/collection/components/tabs/tabs-list.css +1 -0
  192. package/dist/collection/components/tabs/tabs-trigger.component.js +195 -0
  193. package/dist/collection/components/tabs/tabs-trigger.component.js.map +1 -0
  194. package/dist/collection/components/tabs/tabs-trigger.css +1 -0
  195. package/dist/collection/components/tabs/tabs.component.js +422 -0
  196. package/dist/collection/components/tabs/tabs.component.js.map +1 -0
  197. package/dist/collection/components/text/text.component.js +1 -1
  198. package/dist/collection/components/text/text.css +1 -1
  199. package/dist/collection/components/textarea/textarea.component.js +3 -3
  200. package/dist/collection/components/textarea/textarea.css +1 -1
  201. package/dist/collection/components/tooltip/tooltip.component.js +385 -0
  202. package/dist/collection/components/tooltip/tooltip.component.js.map +1 -0
  203. package/dist/collection/components/tooltip/tooltip.css +1 -0
  204. package/dist/collection/styles/theme-variables.js +29 -0
  205. package/dist/collection/styles/theme-variables.js.map +1 -1
  206. package/dist/components/bcm-accordion-group.js +2 -2
  207. package/dist/components/bcm-accordion-group.js.map +1 -1
  208. package/dist/components/bcm-accordion.js +2 -2
  209. package/dist/components/bcm-accordion.js.map +1 -1
  210. package/dist/components/bcm-alert.js +2 -2
  211. package/dist/components/bcm-alert.js.map +1 -1
  212. package/dist/components/bcm-avatar.js +3 -3
  213. package/dist/components/bcm-avatar.js.map +1 -1
  214. package/dist/components/bcm-badge.js +1 -1
  215. package/dist/components/bcm-basic-badge.js +2 -2
  216. package/dist/components/bcm-basic-badge.js.map +1 -1
  217. package/dist/components/bcm-button-group.d.ts +11 -0
  218. package/dist/components/bcm-button-group.js +120 -0
  219. package/dist/components/bcm-button-group.js.map +1 -0
  220. package/dist/components/bcm-button.js +1 -327
  221. package/dist/components/bcm-button.js.map +1 -1
  222. package/dist/components/bcm-checkbox.d.ts +11 -0
  223. package/dist/components/bcm-checkbox.js +256 -0
  224. package/dist/components/bcm-checkbox.js.map +1 -0
  225. package/dist/components/bcm-chip.js +3 -3
  226. package/dist/components/bcm-chip.js.map +1 -1
  227. package/dist/components/bcm-divider.js +3 -3
  228. package/dist/components/bcm-divider.js.map +1 -1
  229. package/dist/components/bcm-dropdown-item.d.ts +11 -0
  230. package/dist/components/bcm-dropdown-item.js +85 -0
  231. package/dist/components/bcm-dropdown-item.js.map +1 -0
  232. package/dist/components/bcm-dropdown.d.ts +11 -0
  233. package/dist/components/bcm-dropdown.js +87 -0
  234. package/dist/components/bcm-dropdown.js.map +1 -0
  235. package/dist/components/bcm-input.js +6 -5
  236. package/dist/components/bcm-input.js.map +1 -1
  237. package/dist/components/bcm-linked.d.ts +11 -0
  238. package/dist/components/bcm-linked.js +8 -0
  239. package/dist/components/bcm-linked.js.map +1 -0
  240. package/dist/components/bcm-pop-confirm.d.ts +11 -0
  241. package/dist/components/bcm-pop-confirm.js +288 -0
  242. package/dist/components/bcm-pop-confirm.js.map +1 -0
  243. package/dist/components/bcm-popover.d.ts +11 -0
  244. package/dist/components/bcm-popover.js +216 -0
  245. package/dist/components/bcm-popover.js.map +1 -0
  246. package/dist/components/bcm-radio-group.d.ts +11 -0
  247. package/dist/components/bcm-radio-group.js +200 -0
  248. package/dist/components/bcm-radio-group.js.map +1 -0
  249. package/dist/components/bcm-radio.d.ts +11 -0
  250. package/dist/components/bcm-radio.js +198 -0
  251. package/dist/components/bcm-radio.js.map +1 -0
  252. package/dist/components/bcm-segmented-picker-option.d.ts +11 -0
  253. package/dist/components/bcm-segmented-picker-option.js +131 -0
  254. package/dist/components/bcm-segmented-picker-option.js.map +1 -0
  255. package/dist/components/bcm-segmented-picker.d.ts +11 -0
  256. package/dist/components/bcm-segmented-picker.js +170 -0
  257. package/dist/components/bcm-segmented-picker.js.map +1 -0
  258. package/dist/components/bcm-switch.d.ts +11 -0
  259. package/dist/components/bcm-switch.js +215 -0
  260. package/dist/components/bcm-switch.js.map +1 -0
  261. package/dist/components/bcm-tabs-content.d.ts +11 -0
  262. package/dist/components/bcm-tabs-content.js +39 -0
  263. package/dist/components/bcm-tabs-content.js.map +1 -0
  264. package/dist/components/bcm-tabs-list.d.ts +11 -0
  265. package/dist/components/bcm-tabs-list.js +58 -0
  266. package/dist/components/bcm-tabs-list.js.map +1 -0
  267. package/dist/components/bcm-tabs-trigger.d.ts +11 -0
  268. package/dist/components/bcm-tabs-trigger.js +112 -0
  269. package/dist/components/bcm-tabs-trigger.js.map +1 -0
  270. package/dist/components/bcm-tabs.d.ts +11 -0
  271. package/dist/components/bcm-tabs.js +239 -0
  272. package/dist/components/bcm-tabs.js.map +1 -0
  273. package/dist/components/bcm-text.js +3 -3
  274. package/dist/components/bcm-text.js.map +1 -1
  275. package/dist/components/bcm-textarea.js +7 -6
  276. package/dist/components/bcm-textarea.js.map +1 -1
  277. package/dist/components/bcm-tooltip.d.ts +11 -0
  278. package/dist/components/bcm-tooltip.js +211 -0
  279. package/dist/components/bcm-tooltip.js.map +1 -0
  280. package/dist/components/index.js +1 -1
  281. package/dist/components/p-13a245f6.js +48 -0
  282. package/dist/components/p-13a245f6.js.map +1 -0
  283. package/dist/components/{p-39637e05.js → p-49f20ff7.js} +3 -3
  284. package/dist/components/{p-39637e05.js.map → p-49f20ff7.js.map} +1 -1
  285. package/dist/components/{p-13582168.js → p-5377117d.js} +32 -6
  286. package/dist/components/p-5377117d.js.map +1 -0
  287. package/dist/components/p-5f7a0d0d.js +107 -0
  288. package/dist/components/p-5f7a0d0d.js.map +1 -0
  289. package/dist/components/p-9594cebb.js +2078 -0
  290. package/dist/components/p-9594cebb.js.map +1 -0
  291. package/dist/{esm/validation-messages-a29d53be.js → components/p-ba2410ef.js} +2 -47
  292. package/dist/components/p-ba2410ef.js.map +1 -0
  293. package/dist/components/p-c3a60937.js +338 -0
  294. package/dist/components/p-c3a60937.js.map +1 -0
  295. package/dist/esm/app-globals-bfa07b76.js.map +1 -1
  296. package/dist/esm/bcm-accordion-group.entry.js +2 -2
  297. package/dist/esm/bcm-accordion-group.entry.js.map +1 -1
  298. package/dist/esm/bcm-accordion.entry.js +2 -2
  299. package/dist/esm/bcm-accordion.entry.js.map +1 -1
  300. package/dist/esm/bcm-alert.entry.js +2 -2
  301. package/dist/esm/bcm-alert.entry.js.map +1 -1
  302. package/dist/esm/bcm-avatar_4.entry.js +13 -7
  303. package/dist/esm/bcm-avatar_4.entry.js.map +1 -1
  304. package/dist/esm/bcm-button-group.entry.js +93 -0
  305. package/dist/esm/bcm-button-group.entry.js.map +1 -0
  306. package/dist/esm/bcm-checkbox.entry.js +222 -0
  307. package/dist/esm/bcm-checkbox.entry.js.map +1 -0
  308. package/dist/esm/bcm-chip.entry.js +3 -3
  309. package/dist/esm/bcm-chip.entry.js.map +1 -1
  310. package/dist/esm/bcm-divider.entry.js +3 -3
  311. package/dist/esm/bcm-divider.entry.js.map +1 -1
  312. package/dist/esm/bcm-dropdown-item.entry.js +59 -0
  313. package/dist/esm/bcm-dropdown-item.entry.js.map +1 -0
  314. package/dist/esm/bcm-dropdown.entry.js +52 -0
  315. package/dist/esm/bcm-dropdown.entry.js.map +1 -0
  316. package/dist/esm/bcm-input.entry.js +6 -5
  317. package/dist/esm/bcm-input.entry.js.map +1 -1
  318. package/dist/esm/bcm-linked.entry.js +87 -0
  319. package/dist/esm/bcm-linked.entry.js.map +1 -0
  320. package/dist/esm/bcm-pop-confirm.entry.js +248 -0
  321. package/dist/esm/bcm-pop-confirm.entry.js.map +1 -0
  322. package/dist/esm/bcm-popover.entry.js +187 -0
  323. package/dist/esm/bcm-popover.entry.js.map +1 -0
  324. package/dist/esm/bcm-radio-group.entry.js +167 -0
  325. package/dist/esm/bcm-radio-group.entry.js.map +1 -0
  326. package/dist/esm/bcm-radio.entry.js +169 -0
  327. package/dist/esm/bcm-radio.entry.js.map +1 -0
  328. package/dist/esm/bcm-segmented-picker-option.entry.js +105 -0
  329. package/dist/esm/bcm-segmented-picker-option.entry.js.map +1 -0
  330. package/dist/esm/bcm-segmented-picker.entry.js +142 -0
  331. package/dist/esm/bcm-segmented-picker.entry.js.map +1 -0
  332. package/dist/esm/bcm-switch.entry.js +184 -0
  333. package/dist/esm/bcm-switch.entry.js.map +1 -0
  334. package/dist/esm/bcm-tabs-content.entry.js +18 -0
  335. package/dist/esm/bcm-tabs-content.entry.js.map +1 -0
  336. package/dist/esm/bcm-tabs-list.entry.js +39 -0
  337. package/dist/esm/bcm-tabs-list.entry.js.map +1 -0
  338. package/dist/esm/bcm-tabs-trigger.entry.js +88 -0
  339. package/dist/esm/bcm-tabs-trigger.entry.js.map +1 -0
  340. package/dist/esm/bcm-tabs.entry.js +207 -0
  341. package/dist/esm/bcm-tabs.entry.js.map +1 -0
  342. package/dist/esm/bcm-text.entry.js +3 -3
  343. package/dist/esm/bcm-text.entry.js.map +1 -1
  344. package/dist/esm/bcm-textarea.entry.js +7 -6
  345. package/dist/esm/bcm-textarea.entry.js.map +1 -1
  346. package/dist/esm/bcm-tooltip.entry.js +183 -0
  347. package/dist/esm/bcm-tooltip.entry.js.map +1 -0
  348. package/dist/esm/bromcom-ui.js +3 -3
  349. package/dist/esm/floating-ui.dom.esm-480e0f15.js +2078 -0
  350. package/dist/esm/floating-ui.dom.esm-480e0f15.js.map +1 -0
  351. package/dist/{cjs/validation-messages-c36e5c31.js → esm/generate-id-3b2fcb93.js} +2 -52
  352. package/dist/esm/generate-id-3b2fcb93.js.map +1 -0
  353. package/dist/esm/{index-27cc1bac.js → index-8571fbf7.js} +36 -8
  354. package/dist/esm/index-8571fbf7.js.map +1 -0
  355. package/dist/esm/loader.js +3 -3
  356. package/dist/esm/validation-messages-af4512f0.js +48 -0
  357. package/dist/esm/validation-messages-af4512f0.js.map +1 -0
  358. package/dist/types/components/button/button.component.d.ts +3 -1
  359. package/dist/types/components/button/types.d.ts +4 -4
  360. package/dist/types/components/button-group/button-group.component.d.ts +25 -0
  361. package/dist/types/components/button-group/types.d.ts +2 -0
  362. package/dist/types/components/checkbox/checkbox.component.d.ts +99 -0
  363. package/dist/types/components/dropdown/dropdown.component.d.ts +14 -0
  364. package/dist/types/components/dropdown-item/dropdown-item.component.d.ts +14 -0
  365. package/dist/types/components/linked/linked.component.d.ts +16 -0
  366. package/dist/types/components/pop-confirm/pop-confirm.component.d.ts +195 -0
  367. package/dist/types/components/popover/popover.component.d.ts +118 -0
  368. package/dist/types/components/radio/radio.component.d.ts +105 -0
  369. package/dist/types/components/radio-group/radio-group.component.d.ts +124 -0
  370. package/dist/types/components/segmented-picker/segmented-picker-option.component.d.ts +30 -0
  371. package/dist/types/components/segmented-picker/segmented-picker.component.d.ts +35 -0
  372. package/dist/types/components/segmented-picker/types.d.ts +1 -0
  373. package/dist/types/components/switch/switch.component.d.ts +62 -0
  374. package/dist/types/components/tabs/tabs-content.component.d.ts +13 -0
  375. package/dist/types/components/tabs/tabs-list.component.d.ts +12 -0
  376. package/dist/types/components/tabs/tabs-trigger.component.d.ts +41 -0
  377. package/dist/types/components/tabs/tabs.component.d.ts +88 -0
  378. package/dist/types/components/tooltip/tooltip.component.d.ts +86 -0
  379. package/dist/types/components.d.ts +2495 -649
  380. package/dist/types/styles/theme-variables.d.ts +29 -0
  381. package/package.json +2 -1
  382. package/dist/bromcom-ui/p-04f6d730.entry.js +0 -2
  383. package/dist/bromcom-ui/p-04f6d730.entry.js.map +0 -1
  384. package/dist/bromcom-ui/p-15fe392b.js +0 -3
  385. package/dist/bromcom-ui/p-1d86c1cf.entry.js +0 -2
  386. package/dist/bromcom-ui/p-31354aaa.js +0 -2
  387. package/dist/bromcom-ui/p-31354aaa.js.map +0 -1
  388. package/dist/bromcom-ui/p-3b607038.entry.js +0 -2
  389. package/dist/bromcom-ui/p-cd437280.entry.js +0 -2
  390. package/dist/bromcom-ui/p-dcea8d62.entry.js +0 -2
  391. package/dist/cjs/validation-messages-c36e5c31.js.map +0 -1
  392. package/dist/components/p-13582168.js.map +0 -1
  393. package/dist/components/p-31354aaa.js.map +0 -1
  394. package/dist/esm/index-27cc1bac.js.map +0 -1
  395. package/dist/esm/validation-messages-a29d53be.js.map +0 -1
@@ -2,10 +2,11 @@
2
2
 
3
3
  Object.defineProperty(exports, '__esModule', { value: true });
4
4
 
5
- const index = require('./index-4795c073.js');
5
+ const index = require('./index-9a2c5938.js');
6
6
  const index$1 = require('./index-310db2a6.js');
7
7
  const index$2 = require('./index-5a88e57b.js');
8
- const validationMessages = require('./validation-messages-c36e5c31.js');
8
+ const generateId = require('./generate-id-f6982042.js');
9
+ const validationMessages = require('./validation-messages-18389279.js');
9
10
 
10
11
  const defaultIcons = {
11
12
  'search': 'fa-regular fa-magnifying-glass',
@@ -33,7 +34,7 @@ const checkSlotContent = (element, slotName) => {
33
34
  return assignedNodes.length > 0;
34
35
  };
35
36
 
36
- const inputCss = ".visible{visibility:visible}.collapse{visibility:collapse}.relative{position:relative}.block{display:block}.table{display:table}.contents{display:contents}.hidden{display:none}.border-collapse{border-collapse:collapse}.transform{transform:translate(var(--tw-translate-x),var(--tw-translate-y)) rotate(var(--tw-rotate)) skewX(var(--tw-skew-x)) skewY(var(--tw-skew-y)) scaleX(var(--tw-scale-x)) scaleY(var(--tw-scale-y))}.resize{resize:both}.border{border-width:1px}.underline{text-decoration-line:underline}.outline{outline-style:solid}/*! tailwindcss v3.4.17 | MIT License | https://tailwindcss.com*/*,:after,:before{border:0 solid oklch(.928 .006 264.531);box-sizing:border-box}:after,:before{--tw-content:\"\"}:host,html{-webkit-text-size-adjust:100%;font-feature-settings:normal;-webkit-tap-highlight-color:transparent;font-family:Inter,sans-serif;font-variation-settings:normal;line-height:1.5;-moz-tab-size:4;-o-tab-size:4;tab-size:4}body{line-height:inherit;margin:0}hr{border-top-width:1px;color:inherit;height:0}abbr:where([title]){-webkit-text-decoration:underline dotted;text-decoration:underline dotted}h1,h2,h3,h4,h5,h6{font-size:inherit;font-weight:inherit}a{color:inherit;text-decoration:inherit}b,strong{font-weight:bolder}code,kbd,pre,samp{font-feature-settings:normal;font-family:ui-monospace,SFMono-Regular,Menlo,Monaco,Consolas,Liberation Mono,Courier New,monospace;font-size:1em;font-variation-settings:normal}small{font-size:80%}sub,sup{font-size:75%;line-height:0;position:relative;vertical-align:baseline}sub{bottom:-.25em}sup{top:-.5em}table{border-collapse:collapse;border-color:inherit;text-indent:0}button,input,optgroup,select,textarea{font-feature-settings:inherit;color:inherit;font-family:inherit;font-size:100%;font-variation-settings:inherit;font-weight:inherit;letter-spacing:inherit;line-height:inherit;margin:0;padding:0}button,select{text-transform:none}button,input:where([type=button]),input:where([type=reset]),input:where([type=submit]){-webkit-appearance:button;background-color:transparent;background-image:none}:-moz-focusring{outline:auto}:-moz-ui-invalid{box-shadow:none}progress{vertical-align:baseline}::-webkit-inner-spin-button,::-webkit-outer-spin-button{height:auto}[type=search]{-webkit-appearance:textfield;outline-offset:-2px}::-webkit-search-decoration{-webkit-appearance:none}::-webkit-file-upload-button{-webkit-appearance:button;font:inherit}summary{display:list-item}blockquote,dd,dl,fieldset,figure,h1,h2,h3,h4,h5,h6,hr,p,pre{margin:0}fieldset,legend{padding:0}menu,ol,ul{list-style:none;margin:0;padding:0}dialog{padding:0}textarea{resize:vertical}input::-moz-placeholder,textarea::-moz-placeholder{color:oklch(.707 .022 261.325);opacity:1}input::placeholder,textarea::placeholder{color:oklch(.707 .022 261.325);opacity:1}[role=button],button{cursor:pointer}:disabled{cursor:default}audio,canvas,embed,iframe,img,object,svg,video{display:block;vertical-align:middle}img,video{height:auto;max-width:100%}[hidden]:where(:not([hidden=until-found])){display:none}:host{display:inline-block}.bcm-ui-element{-webkit-font-smoothing:antialiased;-moz-osx-font-smoothing:grayscale;font-family:Inter,sans-serif}.static{position:static}.mt-1{margin-top:.25rem}.flex{display:flex}.h-10{height:2.5rem}.h-6{height:1.5rem}.h-8{height:2rem}.w-full{width:100%}.flex-1{flex:1 1 0%}.cursor-not-allowed{cursor:not-allowed}.appearance-none{appearance:none}.items-center{align-items:center}.justify-between{justify-content:space-between}.gap-2{gap:.5rem}.text-ellipsis{text-overflow:ellipsis}.rounded{border-radius:.25rem}.border-0{border-width:0}.border-solid{border-style:solid}.border-\\[--bcm-ui-color-border-default\\]{border-color:var(--bcm-ui-color-border-default)}.border-\\[--bcm-ui-color-border-error\\]{border-color:var(--bcm-ui-color-border-error)}.border-\\[--bcm-ui-color-border-info\\]{border-color:var(--bcm-ui-color-border-info)}.border-\\[--bcm-ui-color-border-success\\]{border-color:var(--bcm-ui-color-border-success)}.border-\\[--bcm-ui-color-border-warning\\]{border-color:var(--bcm-ui-color-border-warning)}.bg-\\[--bcm-ui-color-background-base-default\\]{background-color:var(--bcm-ui-color-background-base-default)}.bg-transparent{background-color:transparent}.px-1{padding-left:.25rem;padding-right:.25rem}.px-2{padding-left:.5rem;padding-right:.5rem}.font-sans{font-family:Inter,sans-serif}.text-size-3{font-size:var(--bcm-ui-font-size-3,12px);line-height:var(--bcm-ui-line-height-3,16px)}.text-size-4{font-size:var(--bcm-ui-font-size-4,14px);line-height:var(--bcm-ui-line-height-4,20px)}.text-size-5{font-size:var(--bcm-ui-font-size-5,16px);line-height:var(--bcm-ui-line-height-5,24px)}.text-size-6{font-size:var(--bcm-ui-font-size-6,18px);line-height:var(--bcm-ui-line-height-6,24px)}.font-medium{font-weight:500}.text-\\[--bcm-ui-color-text-caption\\]{color:var(--bcm-ui-color-text-caption)}.text-\\[--bcm-ui-color-text-default\\]{color:var(--bcm-ui-color-text-default)}.text-\\[--bcm-ui-color-text-disabled\\]{color:var(--bcm-ui-color-text-disabled)}.text-\\[--bcm-ui-color-text-error\\]{color:var(--bcm-ui-color-text-error)}.text-\\[--bcm-ui-color-text-info\\]{color:var(--bcm-ui-color-text-info)}.text-\\[--bcm-ui-color-text-success\\]{color:var(--bcm-ui-color-text-success)}.text-\\[--bcm-ui-color-text-warning\\]{color:var(--bcm-ui-color-text-warning)}.text-color-disabled{color:var(--bcm-ui-color-text-disabled)}.text-color-label{color:var(--bcm-ui-color-text-label)}.antialiased{-webkit-font-smoothing:antialiased;-moz-osx-font-smoothing:grayscale}.shadow{--tw-shadow:0 1px 3px 0 rgba(0,0,0,.1),0 1px 2px -1px rgba(0,0,0,.1);--tw-shadow-colored:0 1px 3px 0 var(--tw-shadow-color),0 1px 2px -1px var(--tw-shadow-color);box-shadow:var(--tw-ring-offset-shadow,0 0 #0000),var(--tw-ring-shadow,0 0 #0000),var(--tw-shadow)}.outline-0{outline-width:0}.blur{--tw-blur:blur(8px);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)}.transition-colors{transition-duration:.15s;transition-property:color,background-color,border-color,text-decoration-color,fill,stroke;transition-timing-function:cubic-bezier(.4,0,.2,1)}.duration-200{transition-duration:.2s}.placeholder\\:font-normal::placeholder{font-weight:400}.placeholder\\:text-\\[--bcm-ui-color-text-placeholder\\]::placeholder{color:var(--bcm-ui-color-text-placeholder)}.hover\\:border-\\[--bcm-ui-color-border-error\\]:hover{border-color:var(--bcm-ui-color-border-error)}.hover\\:border-\\[--bcm-ui-color-border-info\\]:hover{border-color:var(--bcm-ui-color-border-info)}.hover\\:border-\\[--bcm-ui-color-border-primary\\]:hover{border-color:var(--bcm-ui-color-border-primary)}.hover\\:border-\\[--bcm-ui-color-border-success\\]:hover{border-color:var(--bcm-ui-color-border-success)}.hover\\:border-\\[--bcm-ui-color-border-warning\\]:hover{border-color:var(--bcm-ui-color-border-warning)}.has-\\[\\:focus\\]\\:border-\\[--bcm-ui-color-border-error\\]:has(:focus){border-color:var(--bcm-ui-color-border-error)}.has-\\[\\:focus\\]\\:border-\\[--bcm-ui-color-border-info\\]:has(:focus){border-color:var(--bcm-ui-color-border-info)}.has-\\[\\:focus\\]\\:border-\\[--bcm-ui-color-border-primary\\]:has(:focus){border-color:var(--bcm-ui-color-border-primary)}.has-\\[\\:focus\\]\\:border-\\[--bcm-ui-color-border-success\\]:has(:focus){border-color:var(--bcm-ui-color-border-success)}.has-\\[\\:focus\\]\\:border-\\[--bcm-ui-color-border-warning\\]:has(:focus){border-color:var(--bcm-ui-color-border-warning)}";
37
+ const inputCss = ".visible{visibility:visible}.collapse{visibility:collapse}.relative{position:relative}.block{display:block}.table{display:table}.contents{display:contents}.hidden{display:none}.border-collapse{border-collapse:collapse}.transform{transform:translate(var(--tw-translate-x),var(--tw-translate-y)) rotate(var(--tw-rotate)) skewX(var(--tw-skew-x)) skewY(var(--tw-skew-y)) scaleX(var(--tw-scale-x)) scaleY(var(--tw-scale-y))}.resize{resize:both}.border{border-width:1px}.underline{text-decoration-line:underline}.outline{outline-style:solid}/*! tailwindcss v3.4.17 | MIT License | https://tailwindcss.com*/*,:after,:before{border:0 solid oklch(.928 .006 264.531);box-sizing:border-box}:after,:before{--tw-content:\"\"}:host,html{-webkit-text-size-adjust:100%;font-feature-settings:normal;-webkit-tap-highlight-color:transparent;font-family:Inter,sans-serif;font-variation-settings:normal;line-height:1.5;-moz-tab-size:4;-o-tab-size:4;tab-size:4}body{line-height:inherit;margin:0}hr{border-top-width:1px;color:inherit;height:0}abbr:where([title]){-webkit-text-decoration:underline dotted;text-decoration:underline dotted}h1,h2,h3,h4,h5,h6{font-size:inherit;font-weight:inherit}a{color:inherit;text-decoration:inherit}b,strong{font-weight:bolder}code,kbd,pre,samp{font-feature-settings:normal;font-family:ui-monospace,SFMono-Regular,Menlo,Monaco,Consolas,Liberation Mono,Courier New,monospace;font-size:1em;font-variation-settings:normal}small{font-size:80%}sub,sup{font-size:75%;line-height:0;position:relative;vertical-align:baseline}sub{bottom:-.25em}sup{top:-.5em}table{border-collapse:collapse;border-color:inherit;text-indent:0}button,input,optgroup,select,textarea{font-feature-settings:inherit;color:inherit;font-family:inherit;font-size:100%;font-variation-settings:inherit;font-weight:inherit;letter-spacing:inherit;line-height:inherit;margin:0;padding:0}button,select{text-transform:none}button,input:where([type=button]),input:where([type=reset]),input:where([type=submit]){-webkit-appearance:button;background-color:transparent;background-image:none}:-moz-focusring{outline:auto}:-moz-ui-invalid{box-shadow:none}progress{vertical-align:baseline}::-webkit-inner-spin-button,::-webkit-outer-spin-button{height:auto}[type=search]{-webkit-appearance:textfield;outline-offset:-2px}::-webkit-search-decoration{-webkit-appearance:none}::-webkit-file-upload-button{-webkit-appearance:button;font:inherit}summary{display:list-item}blockquote,dd,dl,fieldset,figure,h1,h2,h3,h4,h5,h6,hr,p,pre{margin:0}fieldset,legend{padding:0}menu,ol,ul{list-style:none;margin:0;padding:0}dialog{padding:0}textarea{resize:vertical}input::-moz-placeholder,textarea::-moz-placeholder{color:oklch(.707 .022 261.325);opacity:1}input::placeholder,textarea::placeholder{color:oklch(.707 .022 261.325);opacity:1}[role=button],button{cursor:pointer}:disabled{cursor:default}audio,canvas,embed,iframe,img,object,svg,video{display:block;vertical-align:middle}img,video{height:auto;max-width:100%}[hidden]:where(:not([hidden=until-found])){display:none}:host{display:inline-block}.bcm-ui-element{-webkit-font-smoothing:antialiased;-moz-osx-font-smoothing:grayscale;font-family:Inter,sans-serif}.static{position:static}.mt-1{margin-top:.25rem}.flex{display:flex}.h-10{height:2.5rem}.h-6{height:1.5rem}.h-8{height:2rem}.w-full{width:100%}.flex-1{flex:1 1 0%}.cursor-not-allowed{cursor:not-allowed}.appearance-none{appearance:none}.items-center{align-items:center}.justify-between{justify-content:space-between}.gap-2{gap:.5rem}.text-ellipsis{text-overflow:ellipsis}.rounded{border-radius:var(--bcm-ui-border-radius-default,6px)}.border-0{border-width:0}.border-solid{border-style:solid}.border-\\[--bcm-ui-color-border-default\\]{border-color:var(--bcm-ui-color-border-default)}.border-\\[--bcm-ui-color-border-error\\]{border-color:var(--bcm-ui-color-border-error)}.border-\\[--bcm-ui-color-border-info\\]{border-color:var(--bcm-ui-color-border-info)}.border-\\[--bcm-ui-color-border-success\\]{border-color:var(--bcm-ui-color-border-success)}.border-\\[--bcm-ui-color-border-warning\\]{border-color:var(--bcm-ui-color-border-warning)}.bg-\\[--bcm-ui-color-background-base-default\\]{background-color:var(--bcm-ui-color-background-base-default)}.bg-transparent{background-color:transparent}.px-1{padding-left:.25rem;padding-right:.25rem}.px-2{padding-left:.5rem;padding-right:.5rem}.font-sans{font-family:Inter,sans-serif}.text-size-3{font-size:var(--bcm-ui-font-size-3,12px);line-height:var(--bcm-ui-line-height-3,16px)}.text-size-4{font-size:var(--bcm-ui-font-size-4,14px);line-height:var(--bcm-ui-line-height-4,20px)}.text-size-5{font-size:var(--bcm-ui-font-size-5,16px);line-height:var(--bcm-ui-line-height-5,24px)}.text-size-6{font-size:var(--bcm-ui-font-size-6,18px);line-height:var(--bcm-ui-line-height-6,24px)}.font-medium{font-weight:500}.text-\\[--bcm-ui-color-text-caption\\]{color:var(--bcm-ui-color-text-caption)}.text-\\[--bcm-ui-color-text-default\\]{color:var(--bcm-ui-color-text-default)}.text-\\[--bcm-ui-color-text-disabled\\]{color:var(--bcm-ui-color-text-disabled)}.text-\\[--bcm-ui-color-text-error\\]{color:var(--bcm-ui-color-text-error)}.text-\\[--bcm-ui-color-text-info\\]{color:var(--bcm-ui-color-text-info)}.text-\\[--bcm-ui-color-text-success\\]{color:var(--bcm-ui-color-text-success)}.text-\\[--bcm-ui-color-text-warning\\]{color:var(--bcm-ui-color-text-warning)}.text-color-disabled{color:var(--bcm-ui-color-text-disabled)}.text-color-label{color:var(--bcm-ui-color-text-label)}.antialiased{-webkit-font-smoothing:antialiased;-moz-osx-font-smoothing:grayscale}.shadow{--tw-shadow:var(--bcm-ui-box-shadow-default);--tw-shadow-colored:var(--bcm-ui-box-shadow-default);box-shadow:var(--tw-ring-offset-shadow,0 0 #0000),var(--tw-ring-shadow,0 0 #0000),var(--tw-shadow)}.outline-0{outline-width:0}.blur{--tw-blur:blur(8px);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)}.transition-colors{transition-duration:.15s;transition-property:color,background-color,border-color,text-decoration-color,fill,stroke;transition-timing-function:cubic-bezier(.4,0,.2,1)}.duration-200{transition-duration:.2s}.placeholder\\:font-normal::placeholder{font-weight:400}.placeholder\\:text-\\[--bcm-ui-color-text-placeholder\\]::placeholder{color:var(--bcm-ui-color-text-placeholder)}.hover\\:border-\\[--bcm-ui-color-border-error\\]:hover{border-color:var(--bcm-ui-color-border-error)}.hover\\:border-\\[--bcm-ui-color-border-info\\]:hover{border-color:var(--bcm-ui-color-border-info)}.hover\\:border-\\[--bcm-ui-color-border-primary\\]:hover{border-color:var(--bcm-ui-color-border-primary)}.hover\\:border-\\[--bcm-ui-color-border-success\\]:hover{border-color:var(--bcm-ui-color-border-success)}.hover\\:border-\\[--bcm-ui-color-border-warning\\]:hover{border-color:var(--bcm-ui-color-border-warning)}.has-\\[\\:focus\\]\\:border-\\[--bcm-ui-color-border-error\\]:has(:focus){border-color:var(--bcm-ui-color-border-error)}.has-\\[\\:focus\\]\\:border-\\[--bcm-ui-color-border-info\\]:has(:focus){border-color:var(--bcm-ui-color-border-info)}.has-\\[\\:focus\\]\\:border-\\[--bcm-ui-color-border-primary\\]:has(:focus){border-color:var(--bcm-ui-color-border-primary)}.has-\\[\\:focus\\]\\:border-\\[--bcm-ui-color-border-success\\]:has(:focus){border-color:var(--bcm-ui-color-border-success)}.has-\\[\\:focus\\]\\:border-\\[--bcm-ui-color-border-warning\\]:has(:focus){border-color:var(--bcm-ui-color-border-warning)}";
37
38
  const BcmInputStyle0 = inputCss;
38
39
 
39
40
  const BcmInput = class {
@@ -51,7 +52,7 @@ const BcmInput = class {
51
52
  /** Input value */
52
53
  this.value = '';
53
54
  /** Input id */
54
- this._id = validationMessages.generateId('input');
55
+ this._id = generateId.generateId('input');
55
56
  /** Controls the input size */
56
57
  this.size = 'medium';
57
58
  /** Defines the input's status/state */
@@ -279,14 +280,14 @@ const BcmInput = class {
279
280
  medium: 16,
280
281
  large: 18,
281
282
  }[this.size];
282
- return (index.h("div", { key: '2d734e68473e991fa5bf264a000387a7e8c6d806', class: "bcm-ui-element" }, this.label && (index.h("label", { key: 'ed2362eae0dbedb6ab360d8c8e437a3ca282b0ea', class: index$2.classNames('input-label font-medium', {
283
+ return (index.h("div", { key: 'a0fa86f738a07e475cd809c9abe8bd7aa5f50d2e', class: "bcm-ui-element" }, this.label && (index.h("label", { key: 'b2715f3669bf51b2bc93b29a4ce78fc84d6a8fec', class: index$2.classNames('input-label font-medium', {
283
284
  'text-color-label': !this.disabled,
284
285
  'text-color-disabled': this.disabled,
285
286
  }, {
286
287
  'text-size-3': this.size === 'small',
287
288
  'text-size-4': this.size === 'medium',
288
289
  'text-size-5': this.size === 'large',
289
- }), htmlFor: inputId }, index.h("slot", { key: '9ef244524cbe01412d7860c4bb1842f8d3b58fdd', name: "label" }, this.label), this.required && index.h("span", { key: '411c0522038e0dba40bc2b335c5298dd1e538fcc' }, "*"))), index.h("div", { key: '567dbda203fba555203af092175165b32282c98b', class: base() }, (this.hasSlotContent('prefix') || this.prefixIcon || this.getDefaultIconForType()) && (index.h("div", { key: 'cc1073ccc66a13fb0bd8a21fcd5507755a2985a4', class: "flex items-center gap-2 px-2" }, (this.prefixIcon || this.getDefaultIconForType()) && (index.h("bcm-icon", { key: '10af5ceee34923e96229b1c0cb3acfc82c042fbe', class: "prefix-icon", "icon-name": this.prefixIcon || this.getDefaultIconForType(), size: iconSize })), index.h("slot", { key: '64677d561c6b8b909f3332c831c780c8213b192f', name: "prefix" }))), index.h("input", { key: 'e1cf6364100bb073b20fc7d0989e8d92c9dc41e8', ref: el => (this.inputRef = el), id: inputId, class: inputClass(), type: this.type, name: this.name, disabled: this.disabled, readonly: this.readonly, required: this.required, placeholder: this.placeholder, autocomplete: this.autocomplete, minlength: this.minLength, maxlength: this.maxLength, min: this.min, max: this.max, step: this.step, pattern: this.pattern, "aria-invalid": this.status === 'error', "aria-required": this.required, "aria-labelledby": this.labelledby, "aria-describedby": this.describedby, value: this.value, onInput: this.onInput, onChange: this.onChange, onFocus: this.onFocus, onBlur: this.onBlur, onKeyDown: this.onKeyDown, onKeyUp: this.onKeyUp }), (this.hasSlotContent('suffix') || this.suffixIcon) && (index.h("div", { key: 'a3b5e1bd54d8c4a326c71e0f6a955fcbeeec9723', class: "flex items-center gap-2 px-2" }, index.h("slot", { key: 'a90f3f8ccb5f82f85f726c714aa1a4f70c1fcecd', name: "suffix" }), this.suffixIcon && index.h("bcm-icon", { key: '6551bd6154e1f15906dfc098362d8f3269bda7f2', class: "suffix-icon", "icon-name": this.suffixIcon, size: iconSize })))), (this.captionText || this.internalErrorMessage || this.validationMessage) && (index.h("div", { key: '1d34fb86e2637d52ed5500e1a1906023fb084c78', class: index$2.classNames('input-caption-text font-regular mt-1', {
290
+ }), htmlFor: inputId }, index.h("slot", { key: '26f991e1bad25cc2f074b9259320cc555c3d4bd9', name: "label" }, this.label), this.required && index.h("span", { key: '0b5a332b842ece285b093b2474e7dd376530d613' }, "*"))), index.h("div", { key: 'f4b1d4087e2bdfb07c140170e4e59e10c2163535', class: base() }, (this.hasSlotContent('prefix') || this.prefixIcon || this.getDefaultIconForType()) && (index.h("div", { key: 'dcc49ae6c4ad4795d1f10f85065e44cb061fce0e', class: "flex items-center gap-2 px-2" }, (this.prefixIcon || this.getDefaultIconForType()) && (index.h("bcm-icon", { key: 'c56c06852192dcfc4e7d3df24851afc31804b6b9', class: "prefix-icon", "icon-name": this.prefixIcon || this.getDefaultIconForType(), size: iconSize })), index.h("slot", { key: '29bd74d28492d5e95b4c3155b3c5a9fed3671a2a', name: "prefix" }))), index.h("input", { key: '21a06d459d5f68be085d46580134ea4718192d89', ref: el => (this.inputRef = el), id: inputId, class: inputClass(), type: this.type, name: this.name, disabled: this.disabled, readonly: this.readonly, required: this.required, placeholder: this.placeholder, autocomplete: this.autocomplete, minlength: this.minLength, maxlength: this.maxLength, min: this.min, max: this.max, step: this.step, pattern: this.pattern, "aria-invalid": this.status === 'error', "aria-required": this.required, "aria-labelledby": this.labelledby, "aria-describedby": this.describedby, value: this.value, onInput: this.onInput, onChange: this.onChange, onFocus: this.onFocus, onBlur: this.onBlur, onKeyDown: this.onKeyDown, onKeyUp: this.onKeyUp }), (this.hasSlotContent('suffix') || this.suffixIcon) && (index.h("div", { key: 'd3852234f0410ed5ceb7df79c2645a97c45afac2', class: "flex items-center gap-2 px-2" }, index.h("slot", { key: '1e280c327b4791631c3dda4f3ec49706b8a88300', name: "suffix" }), this.suffixIcon && index.h("bcm-icon", { key: 'd0d14a9d2c7ce1be1de030afb661866b7bf60546', class: "suffix-icon", "icon-name": this.suffixIcon, size: iconSize })))), (this.captionText || this.internalErrorMessage || this.validationMessage) && (index.h("div", { key: '4408fc79afa594d8a932898f13573395ae33cccd', class: index$2.classNames('input-caption-text font-regular mt-1', {
290
291
  'text-[--bcm-ui-color-text-caption]': !this.disabled && this.internalStatus === 'default',
291
292
  'text-[--bcm-ui-color-text-error]': !this.disabled && (this.internalStatus === 'error' || !this.isValid),
292
293
  'text-[--bcm-ui-color-text-success]': !this.disabled && this.internalStatus === 'success',
@@ -1 +1 @@
1
- {"file":"bcm-input.entry.cjs.js","mappings":"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","names":["generateId","tv","setValidationMessages","defaultValidationMessages","getValidationMessage","h","classNames"],"sources":["src/components/input/types.ts","src/utils/slot/check-slot-content.ts","src/components/input/input.scss?tag=bcm-input&encapsulation=shadow","src/components/input/input.component.tsx"],"sourcesContent":["export type InputSize = 'small' | 'medium' | 'large';\nexport type InputStatus = 'default' | 'error' | 'success' | 'warning' | 'info';\nexport type InputType = 'text' | 'password' | 'email' | 'number' | 'tel' | 'url' | 'search' | 'date' | 'time' | 'datetime-local';\n\nexport const defaultIcons = {\n 'search': 'fa-regular fa-magnifying-glass',\n 'email': 'fa-regular fa-envelope',\n 'tel': 'fa-regular fa-phone',\n 'url': 'fa-regular fa-link',\n 'date': 'fa-regular fa-calendar',\n 'time': 'fa-regular fa-clock',\n 'datetime-local': 'fa-regular fa-calendar-clock',\n 'password': 'fa-regular fa-lock',\n} as const;\n","/**\n * Checks if a named slot has any content\n * @param element - The host element (component instance)\n * @param slotName - Name of the slot to check\n * @returns boolean indicating if the slot has any assigned nodes\n */\nexport const checkSlotContent = (element: HTMLElement, slotName: string): boolean => {\n const slot = element.shadowRoot?.querySelector(`slot[name=\"${slotName}\"]`) as HTMLSlotElement;\n if (!slot) return false;\n\n const assignedNodes = slot.assignedNodes();\n return assignedNodes.length > 0;\n};\n",":host {\n display: inline-block;\n}\n","import { Component, Prop, h, Event, EventEmitter, Method, State, Watch, Element } from '@stencil/core';\nimport { InputSize, InputStatus, InputType, defaultIcons } from './types';\nimport { tv } from 'tailwind-variants';\nimport classNames from 'classnames';\nimport { generateId } from '../../utils/id/generate-id';\nimport { checkSlotContent } from '../../utils/slot/check-slot-content';\nimport { getValidationMessage, setValidationMessages, defaultValidationMessages } from '../../utils/validation-messages';\n\n@Component({\n tag: 'bcm-input',\n styleUrl: 'input.scss',\n shadow: true,\n})\nexport class BcmInput {\n @Element() el: HTMLElement;\n private inputRef: HTMLInputElement;\n\n @State() isFocused = false;\n @State() validationMessage: string;\n @State() isValid = true;\n @State() internalStatus: InputStatus = 'default';\n @State() internalErrorMessage: string;\n\n /** Input value */\n @Prop({ mutable: true, reflect: true })\n value: string = '';\n\n /** Input placeholder text */\n @Prop()\n placeholder?: string;\n\n /** Input name */\n @Prop()\n name?: string;\n\n /** Input id */\n @Prop({ attribute: 'id', reflect: true })\n _id?: string = generateId('input');\n\n /** Controls the input size */\n @Prop()\n size: InputSize = 'medium';\n\n /** Defines the input's status/state */\n @Prop()\n status: InputStatus = 'default';\n\n /** Full width input */\n @Prop({ attribute: 'full-width', reflect: true })\n fullWidth = false;\n\n /** HTML input type */\n @Prop()\n type: InputType = 'text';\n\n /** Whether the input is disabled */\n @Prop()\n disabled = false;\n\n /** Whether the input is readonly */\n @Prop()\n readonly = false;\n\n /** Whether the input is required */\n @Prop()\n required = false;\n\n /** Input autocomplete attribute */\n @Prop()\n autocomplete?: string;\n\n /** Min length for text input */\n @Prop()\n minLength?: number;\n\n /** Max length for text input */\n @Prop()\n maxLength?: number;\n\n /** Min value for number input */\n @Prop()\n min?: number;\n\n /** Max value for number input */\n @Prop()\n max?: number;\n\n /** Step value for number input */\n @Prop()\n step?: number;\n\n /** Pattern for validation */\n @Prop()\n pattern?: string;\n\n /** Input label for accessibility */\n @Prop()\n label?: string;\n\n /** Error message to display */\n @Prop()\n errorMessage?: string;\n\n /** Caption text to display below input */\n @Prop()\n captionText?: string;\n\n /** ID of associated label element */\n @Prop()\n labelledby?: string;\n\n /** ID of associated caption/error text element */\n @Prop()\n describedby?: string;\n\n /** Prefix icon class name */\n @Prop()\n prefixIcon?: string;\n\n /** Suffix icon class name */\n @Prop()\n suffixIcon?: string;\n\n /** Whether to use native form validation\n * If false, component will handle validation internally\n */\n @Prop()\n useNativeValidation = true;\n\n /** Custom validation function */\n @Prop()\n validator?: (value: string) => string | undefined;\n\n @Event({\n composed: false,\n bubbles: false,\n cancelable: true,\n })\n bcmInput: EventEmitter<InputEvent>;\n\n @Event({\n composed: false,\n bubbles: false,\n cancelable: true,\n })\n bcmChange: EventEmitter<Event>;\n\n @Event({\n composed: false,\n bubbles: false,\n cancelable: true,\n })\n bcmFocus: EventEmitter<FocusEvent>;\n\n @Event({\n composed: false,\n bubbles: false,\n cancelable: true,\n })\n bcmBlur: EventEmitter<FocusEvent>;\n\n @Event({\n composed: false,\n bubbles: false,\n cancelable: true,\n })\n bcmKeyDown: EventEmitter<KeyboardEvent>;\n\n @Event({\n composed: false,\n bubbles: false,\n cancelable: true,\n })\n bcmKeyUp: EventEmitter<KeyboardEvent>;\n\n @Watch('value')\n handleValueChange(newValue: string) {\n if (this.inputRef) {\n this.inputRef.value = newValue;\n }\n }\n\n @Watch('status')\n watchStatus(newValue: InputStatus) {\n this.internalStatus = newValue;\n }\n\n @Watch('errorMessage')\n watchErrorMessage(newValue: string) {\n this.internalErrorMessage = newValue;\n }\n\n @Method()\n async setFocus() {\n this.inputRef?.focus();\n }\n\n @Method()\n async setBlur() {\n this.inputRef?.blur();\n }\n\n @Method()\n async select() {\n this.inputRef?.select();\n }\n\n /** Sets locale and messages for all inputs */\n @Method()\n async setLocale(locale: string, messages: Record<string, string>) {\n // Set messages and update validation immediately\n setValidationMessages(locale, messages);\n\n // Mevcut validasyon mesajını güncelle\n if (!this.isValid) {\n this.validateInput();\n }\n }\n\n componentWillLoad() {\n // I18n için default mesajları set et\n setValidationMessages('en', defaultValidationMessages);\n this.internalStatus = this.status;\n this.internalErrorMessage = this.errorMessage;\n }\n\n private validateInput(): void {\n if (!this.inputRef) return;\n\n // Reset validation state\n this.isValid = true;\n this.validationMessage = '';\n\n const value = this.inputRef.value;\n\n // Required check\n if (this.required && !value) {\n this.isValid = false;\n this.validationMessage = getValidationMessage('required');\n this.internalStatus = 'error';\n this.internalErrorMessage = this.validationMessage;\n return;\n }\n\n // Minimum length check\n else if (this.minLength && value.length < this.minLength) {\n this.isValid = false;\n this.validationMessage = getValidationMessage('minlength', { min: this.minLength });\n }\n // Maximum length check\n else if (this.maxLength && value.length > this.maxLength) {\n this.isValid = false;\n this.validationMessage = getValidationMessage('maxlength', { max: this.maxLength });\n }\n // Pattern check\n else if (this.pattern && !new RegExp(this.pattern).test(value)) {\n this.isValid = false;\n this.validationMessage = getValidationMessage('pattern');\n }\n // Email check\n else if (this.type === 'email' && value && !/^[^\\s@]+@[^\\s@]+\\.[^\\s@]+$/.test(value)) {\n this.isValid = false;\n this.validationMessage = getValidationMessage('email');\n }\n // Number range check\n else if (this.type === 'number' && value) {\n const numValue = parseFloat(value);\n if (this.min !== undefined && numValue < this.min) {\n this.isValid = false;\n this.validationMessage = getValidationMessage('min', { min: this.min });\n } else if (this.max !== undefined && numValue > this.max) {\n this.isValid = false;\n this.validationMessage = getValidationMessage('max', { max: this.max });\n }\n }\n\n // Update component state\n this.internalStatus = this.isValid ? 'default' : 'error';\n this.internalErrorMessage = this.validationMessage;\n }\n\n private onInput = (event: InputEvent) => {\n const input = event.target as HTMLInputElement;\n this.value = input.value;\n this.bcmInput.emit(event);\n this.validateInput();\n };\n\n private onChange = (event: Event) => {\n this.bcmChange.emit(event);\n };\n\n private onFocus = (event: FocusEvent) => {\n this.isFocused = true;\n this.bcmFocus.emit(event);\n };\n\n private onBlur = (event: FocusEvent) => {\n this.isFocused = false;\n this.bcmBlur.emit(event);\n this.validateInput();\n };\n\n private onKeyDown = (event: KeyboardEvent) => {\n this.bcmKeyDown.emit(event);\n };\n\n private onKeyUp = (event: KeyboardEvent) => {\n this.bcmKeyUp.emit(event);\n };\n\n private hasSlotContent(slotName: string): boolean {\n return checkSlotContent(this.el, slotName);\n }\n\n private styleClass = tv(\n {\n slots: {\n base: [\n 'bcm-input bcm-input__container',\n 'bg-[--bcm-ui-color-background-base-default]',\n 'border border-solid rounded',\n 'flex items-center justify-between',\n 'transition-colors duration-200',\n 'px-2',\n ],\n inputClass: [\n 'input',\n 'w-full flex-1',\n 'border-0 outline-0 bg-transparent',\n 'appearance-none text-ellipsis',\n 'text-[--bcm-ui-color-text-default] placeholder:text-[--bcm-ui-color-text-placeholder] placeholder:font-normal',\n 'font-sans antialiased font-medium',\n 'px-1',\n ],\n },\n variants: {\n size: {\n small: {\n base: '',\n inputClass: 'text-size-4 h-6',\n },\n medium: {\n base: '',\n inputClass: 'text-size-5 h-8',\n },\n large: {\n base: '',\n inputClass: 'text-size-6 h-10',\n },\n },\n status: {\n default: {\n base: ['border-[--bcm-ui-color-border-default]', 'hover:border-[--bcm-ui-color-border-primary]', 'has-[:focus]:border-[--bcm-ui-color-border-primary]'],\n },\n error: {\n base: ['border-[--bcm-ui-color-border-error]', 'hover:border-[--bcm-ui-color-border-error]', 'has-[:focus]:border-[--bcm-ui-color-border-error]'],\n },\n success: {\n base: ['border-[--bcm-ui-color-border-success]', 'hover:border-[--bcm-ui-color-border-success]', 'has-[:focus]:border-[--bcm-ui-color-border-success]'],\n },\n warning: {\n base: ['border-[--bcm-ui-color-border-warning]', 'hover:border-[--bcm-ui-color-border-warning]', 'has-[:focus]:border-[--bcm-ui-color-border-warning]'],\n },\n info: {\n base: ['border-[--bcm-ui-color-border-info]', 'hover:border-[--bcm-ui-color-border-info]', 'has-[:focus]:border-[--bcm-ui-color-border-info]'],\n },\n },\n fullWidth: {\n true: 'full-width w-full',\n },\n disabled: {\n true: 'disabled cursor-not-allowed',\n false: '',\n },\n focused: {\n true: {\n base: '',\n },\n },\n },\n defaultVariants: {\n size: 'medium',\n status: 'default',\n fullWidth: false,\n disabled: false,\n focused: false,\n },\n },\n {\n twMerge: false,\n },\n );\n\n private getDefaultIconForType(): string | undefined {\n return defaultIcons[this.type as keyof typeof defaultIcons];\n }\n\n render() {\n const inputId = this._id + '-input' || this.name;\n\n const { base, inputClass } = this.styleClass({\n size: this.size,\n status: this.internalStatus,\n fullWidth: this.fullWidth,\n disabled: this.disabled,\n focused: this.isFocused,\n });\n\n const iconSize = {\n small: 14,\n medium: 16,\n large: 18,\n }[this.size];\n\n return (\n <div class=\"bcm-ui-element\">\n {this.label && (\n <label\n class={classNames(\n 'input-label font-medium',\n {\n 'text-color-label': !this.disabled,\n 'text-color-disabled': this.disabled,\n },\n {\n 'text-size-3': this.size === 'small',\n 'text-size-4': this.size === 'medium',\n 'text-size-5': this.size === 'large',\n },\n )}\n htmlFor={inputId}\n >\n <slot name=\"label\">{this.label}</slot>\n {this.required && <span>*</span>}\n </label>\n )}\n\n <div class={base()}>\n {(this.hasSlotContent('prefix') || this.prefixIcon || this.getDefaultIconForType()) && (\n <div class=\"flex items-center gap-2 px-2\">\n {(this.prefixIcon || this.getDefaultIconForType()) && (\n <bcm-icon class=\"prefix-icon\" icon-name={this.prefixIcon || this.getDefaultIconForType()} size={iconSize}></bcm-icon>\n )}\n <slot name=\"prefix\"></slot>\n </div>\n )}\n <input\n ref={el => (this.inputRef = el)}\n id={inputId}\n class={inputClass()}\n type={this.type}\n name={this.name}\n disabled={this.disabled}\n readonly={this.readonly}\n required={this.required}\n placeholder={this.placeholder}\n autocomplete={this.autocomplete}\n minlength={this.minLength}\n maxlength={this.maxLength}\n min={this.min}\n max={this.max}\n step={this.step}\n pattern={this.pattern}\n aria-invalid={this.status === 'error'}\n aria-required={this.required}\n aria-labelledby={this.labelledby}\n aria-describedby={this.describedby}\n value={this.value}\n onInput={this.onInput}\n onChange={this.onChange}\n onFocus={this.onFocus}\n onBlur={this.onBlur}\n onKeyDown={this.onKeyDown}\n onKeyUp={this.onKeyUp}\n />\n {(this.hasSlotContent('suffix') || this.suffixIcon) && (\n <div class=\"flex items-center gap-2 px-2\">\n <slot name=\"suffix\"></slot>\n {this.suffixIcon && <bcm-icon class=\"suffix-icon\" icon-name={this.suffixIcon} size={iconSize}></bcm-icon>}\n </div>\n )}\n </div>\n {(this.captionText || this.internalErrorMessage || this.validationMessage) && (\n <div\n class={classNames(\n 'input-caption-text font-regular mt-1',\n {\n 'text-[--bcm-ui-color-text-caption]': !this.disabled && this.internalStatus === 'default',\n 'text-[--bcm-ui-color-text-error]': !this.disabled && (this.internalStatus === 'error' || !this.isValid),\n 'text-[--bcm-ui-color-text-success]': !this.disabled && this.internalStatus === 'success',\n 'text-[--bcm-ui-color-text-warning]': !this.disabled && this.internalStatus === 'warning',\n 'text-[--bcm-ui-color-text-info]': !this.disabled && this.internalStatus === 'info',\n 'text-[--bcm-ui-color-text-disabled]': this.disabled,\n },\n {\n 'text-size-3': this.size === 'small',\n 'text-size-4': this.size === 'medium',\n 'text-size-5': this.size === 'large',\n },\n )}\n >\n {!this.isValid ? this.validationMessage : this.internalStatus === 'error' ? this.internalErrorMessage : this.captionText}\n </div>\n )}\n </div>\n );\n }\n}\n"],"version":3}
1
+ {"file":"bcm-input.entry.cjs.js","mappings":"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","names":["generateId","tv","setValidationMessages","defaultValidationMessages","getValidationMessage","h","classNames"],"sources":["src/components/input/types.ts","src/utils/slot/check-slot-content.ts","src/components/input/input.scss?tag=bcm-input&encapsulation=shadow","src/components/input/input.component.tsx"],"sourcesContent":["export type InputSize = 'small' | 'medium' | 'large';\nexport type InputStatus = 'default' | 'error' | 'success' | 'warning' | 'info';\nexport type InputType = 'text' | 'password' | 'email' | 'number' | 'tel' | 'url' | 'search' | 'date' | 'time' | 'datetime-local';\n\nexport const defaultIcons = {\n 'search': 'fa-regular fa-magnifying-glass',\n 'email': 'fa-regular fa-envelope',\n 'tel': 'fa-regular fa-phone',\n 'url': 'fa-regular fa-link',\n 'date': 'fa-regular fa-calendar',\n 'time': 'fa-regular fa-clock',\n 'datetime-local': 'fa-regular fa-calendar-clock',\n 'password': 'fa-regular fa-lock',\n} as const;\n","/**\n * Checks if a named slot has any content\n * @param element - The host element (component instance)\n * @param slotName - Name of the slot to check\n * @returns boolean indicating if the slot has any assigned nodes\n */\nexport const checkSlotContent = (element: HTMLElement, slotName: string): boolean => {\n const slot = element.shadowRoot?.querySelector(`slot[name=\"${slotName}\"]`) as HTMLSlotElement;\n if (!slot) return false;\n\n const assignedNodes = slot.assignedNodes();\n return assignedNodes.length > 0;\n};\n",":host {\n display: inline-block;\n}\n","import { Component, Prop, h, Event, EventEmitter, Method, State, Watch, Element } from '@stencil/core';\nimport { InputSize, InputStatus, InputType, defaultIcons } from './types';\nimport { tv } from 'tailwind-variants';\nimport classNames from 'classnames';\nimport { generateId } from '../../utils/id/generate-id';\nimport { checkSlotContent } from '../../utils/slot/check-slot-content';\nimport { getValidationMessage, setValidationMessages, defaultValidationMessages } from '../../utils/validation-messages';\n\n@Component({\n tag: 'bcm-input',\n styleUrl: 'input.scss',\n shadow: true,\n})\nexport class BcmInput {\n @Element() el: HTMLElement;\n private inputRef: HTMLInputElement;\n\n @State() isFocused = false;\n @State() validationMessage: string;\n @State() isValid = true;\n @State() internalStatus: InputStatus = 'default';\n @State() internalErrorMessage: string;\n\n /** Input value */\n @Prop({ mutable: true, reflect: true })\n value: string = '';\n\n /** Input placeholder text */\n @Prop()\n placeholder?: string;\n\n /** Input name */\n @Prop()\n name?: string;\n\n /** Input id */\n @Prop({ attribute: 'id', reflect: true })\n _id?: string = generateId('input');\n\n /** Controls the input size */\n @Prop()\n size: InputSize = 'medium';\n\n /** Defines the input's status/state */\n @Prop()\n status: InputStatus = 'default';\n\n /** Full width input */\n @Prop({ attribute: 'full-width', reflect: true })\n fullWidth = false;\n\n /** HTML input type */\n @Prop()\n type: InputType = 'text';\n\n /** Whether the input is disabled */\n @Prop()\n disabled = false;\n\n /** Whether the input is readonly */\n @Prop()\n readonly = false;\n\n /** Whether the input is required */\n @Prop()\n required = false;\n\n /** Input autocomplete attribute */\n @Prop()\n autocomplete?: string;\n\n /** Min length for text input */\n @Prop()\n minLength?: number;\n\n /** Max length for text input */\n @Prop()\n maxLength?: number;\n\n /** Min value for number input */\n @Prop()\n min?: number;\n\n /** Max value for number input */\n @Prop()\n max?: number;\n\n /** Step value for number input */\n @Prop()\n step?: number;\n\n /** Pattern for validation */\n @Prop()\n pattern?: string;\n\n /** Input label for accessibility */\n @Prop()\n label?: string;\n\n /** Error message to display */\n @Prop()\n errorMessage?: string;\n\n /** Caption text to display below input */\n @Prop()\n captionText?: string;\n\n /** ID of associated label element */\n @Prop()\n labelledby?: string;\n\n /** ID of associated caption/error text element */\n @Prop()\n describedby?: string;\n\n /** Prefix icon class name */\n @Prop()\n prefixIcon?: string;\n\n /** Suffix icon class name */\n @Prop()\n suffixIcon?: string;\n\n /** Whether to use native form validation\n * If false, component will handle validation internally\n */\n @Prop()\n useNativeValidation = true;\n\n /** Custom validation function */\n @Prop()\n validator?: (value: string) => string | undefined;\n\n @Event({\n composed: false,\n bubbles: false,\n cancelable: true,\n })\n bcmInput: EventEmitter<InputEvent>;\n\n @Event({\n composed: false,\n bubbles: false,\n cancelable: true,\n })\n bcmChange: EventEmitter<Event>;\n\n @Event({\n composed: false,\n bubbles: false,\n cancelable: true,\n })\n bcmFocus: EventEmitter<FocusEvent>;\n\n @Event({\n composed: false,\n bubbles: false,\n cancelable: true,\n })\n bcmBlur: EventEmitter<FocusEvent>;\n\n @Event({\n composed: false,\n bubbles: false,\n cancelable: true,\n })\n bcmKeyDown: EventEmitter<KeyboardEvent>;\n\n @Event({\n composed: false,\n bubbles: false,\n cancelable: true,\n })\n bcmKeyUp: EventEmitter<KeyboardEvent>;\n\n @Watch('value')\n handleValueChange(newValue: string) {\n if (this.inputRef) {\n this.inputRef.value = newValue;\n }\n }\n\n @Watch('status')\n watchStatus(newValue: InputStatus) {\n this.internalStatus = newValue;\n }\n\n @Watch('errorMessage')\n watchErrorMessage(newValue: string) {\n this.internalErrorMessage = newValue;\n }\n\n @Method()\n async setFocus() {\n this.inputRef?.focus();\n }\n\n @Method()\n async setBlur() {\n this.inputRef?.blur();\n }\n\n @Method()\n async select() {\n this.inputRef?.select();\n }\n\n /** Sets locale and messages for all inputs */\n @Method()\n async setLocale(locale: string, messages: Record<string, string>) {\n // Set messages and update validation immediately\n setValidationMessages(locale, messages);\n\n // Mevcut validasyon mesajını güncelle\n if (!this.isValid) {\n this.validateInput();\n }\n }\n\n componentWillLoad() {\n // I18n için default mesajları set et\n setValidationMessages('en', defaultValidationMessages);\n this.internalStatus = this.status;\n this.internalErrorMessage = this.errorMessage;\n }\n\n private validateInput(): void {\n if (!this.inputRef) return;\n\n // Reset validation state\n this.isValid = true;\n this.validationMessage = '';\n\n const value = this.inputRef.value;\n\n // Required check\n if (this.required && !value) {\n this.isValid = false;\n this.validationMessage = getValidationMessage('required');\n this.internalStatus = 'error';\n this.internalErrorMessage = this.validationMessage;\n return;\n }\n\n // Minimum length check\n else if (this.minLength && value.length < this.minLength) {\n this.isValid = false;\n this.validationMessage = getValidationMessage('minlength', { min: this.minLength });\n }\n // Maximum length check\n else if (this.maxLength && value.length > this.maxLength) {\n this.isValid = false;\n this.validationMessage = getValidationMessage('maxlength', { max: this.maxLength });\n }\n // Pattern check\n else if (this.pattern && !new RegExp(this.pattern).test(value)) {\n this.isValid = false;\n this.validationMessage = getValidationMessage('pattern');\n }\n // Email check\n else if (this.type === 'email' && value && !/^[^\\s@]+@[^\\s@]+\\.[^\\s@]+$/.test(value)) {\n this.isValid = false;\n this.validationMessage = getValidationMessage('email');\n }\n // Number range check\n else if (this.type === 'number' && value) {\n const numValue = parseFloat(value);\n if (this.min !== undefined && numValue < this.min) {\n this.isValid = false;\n this.validationMessage = getValidationMessage('min', { min: this.min });\n } else if (this.max !== undefined && numValue > this.max) {\n this.isValid = false;\n this.validationMessage = getValidationMessage('max', { max: this.max });\n }\n }\n\n // Update component state\n this.internalStatus = this.isValid ? 'default' : 'error';\n this.internalErrorMessage = this.validationMessage;\n }\n\n private onInput = (event: InputEvent) => {\n const input = event.target as HTMLInputElement;\n this.value = input.value;\n this.bcmInput.emit(event);\n this.validateInput();\n };\n\n private onChange = (event: Event) => {\n this.bcmChange.emit(event);\n };\n\n private onFocus = (event: FocusEvent) => {\n this.isFocused = true;\n this.bcmFocus.emit(event);\n };\n\n private onBlur = (event: FocusEvent) => {\n this.isFocused = false;\n this.bcmBlur.emit(event);\n this.validateInput();\n };\n\n private onKeyDown = (event: KeyboardEvent) => {\n this.bcmKeyDown.emit(event);\n };\n\n private onKeyUp = (event: KeyboardEvent) => {\n this.bcmKeyUp.emit(event);\n };\n\n private hasSlotContent(slotName: string): boolean {\n return checkSlotContent(this.el, slotName);\n }\n\n private styleClass = tv(\n {\n slots: {\n base: [\n 'bcm-input bcm-input__container',\n 'bg-[--bcm-ui-color-background-base-default]',\n 'border border-solid rounded',\n 'flex items-center justify-between',\n 'transition-colors duration-200',\n 'px-2',\n ],\n inputClass: [\n 'input',\n 'w-full flex-1',\n 'border-0 outline-0 bg-transparent',\n 'appearance-none text-ellipsis',\n 'text-[--bcm-ui-color-text-default] placeholder:text-[--bcm-ui-color-text-placeholder] placeholder:font-normal',\n 'font-sans antialiased font-medium',\n 'px-1',\n ],\n },\n variants: {\n size: {\n small: {\n base: '',\n inputClass: 'text-size-4 h-6',\n },\n medium: {\n base: '',\n inputClass: 'text-size-5 h-8',\n },\n large: {\n base: '',\n inputClass: 'text-size-6 h-10',\n },\n },\n status: {\n default: {\n base: ['border-[--bcm-ui-color-border-default]', 'hover:border-[--bcm-ui-color-border-primary]', 'has-[:focus]:border-[--bcm-ui-color-border-primary]'],\n },\n error: {\n base: ['border-[--bcm-ui-color-border-error]', 'hover:border-[--bcm-ui-color-border-error]', 'has-[:focus]:border-[--bcm-ui-color-border-error]'],\n },\n success: {\n base: ['border-[--bcm-ui-color-border-success]', 'hover:border-[--bcm-ui-color-border-success]', 'has-[:focus]:border-[--bcm-ui-color-border-success]'],\n },\n warning: {\n base: ['border-[--bcm-ui-color-border-warning]', 'hover:border-[--bcm-ui-color-border-warning]', 'has-[:focus]:border-[--bcm-ui-color-border-warning]'],\n },\n info: {\n base: ['border-[--bcm-ui-color-border-info]', 'hover:border-[--bcm-ui-color-border-info]', 'has-[:focus]:border-[--bcm-ui-color-border-info]'],\n },\n },\n fullWidth: {\n true: 'full-width w-full',\n },\n disabled: {\n true: 'disabled cursor-not-allowed',\n false: '',\n },\n focused: {\n true: {\n base: '',\n },\n },\n },\n defaultVariants: {\n size: 'medium',\n status: 'default',\n fullWidth: false,\n disabled: false,\n focused: false,\n },\n },\n {\n twMerge: false,\n },\n );\n\n private getDefaultIconForType(): string | undefined {\n return defaultIcons[this.type as keyof typeof defaultIcons];\n }\n\n render() {\n const inputId = this._id + '-input' || this.name;\n\n const { base, inputClass } = this.styleClass({\n size: this.size,\n status: this.internalStatus,\n fullWidth: this.fullWidth,\n disabled: this.disabled,\n focused: this.isFocused,\n });\n\n const iconSize = {\n small: 14,\n medium: 16,\n large: 18,\n }[this.size];\n\n return (\n <div class=\"bcm-ui-element\">\n {this.label && (\n <label\n class={classNames(\n 'input-label font-medium',\n {\n 'text-color-label': !this.disabled,\n 'text-color-disabled': this.disabled,\n },\n {\n 'text-size-3': this.size === 'small',\n 'text-size-4': this.size === 'medium',\n 'text-size-5': this.size === 'large',\n },\n )}\n htmlFor={inputId}\n >\n <slot name=\"label\">{this.label}</slot>\n {this.required && <span>*</span>}\n </label>\n )}\n\n <div class={base()}>\n {(this.hasSlotContent('prefix') || this.prefixIcon || this.getDefaultIconForType()) && (\n <div class=\"flex items-center gap-2 px-2\">\n {(this.prefixIcon || this.getDefaultIconForType()) && (\n <bcm-icon class=\"prefix-icon\" icon-name={this.prefixIcon || this.getDefaultIconForType()} size={iconSize}></bcm-icon>\n )}\n <slot name=\"prefix\"></slot>\n </div>\n )}\n <input\n ref={el => (this.inputRef = el)}\n id={inputId}\n class={inputClass()}\n type={this.type}\n name={this.name}\n disabled={this.disabled}\n readonly={this.readonly}\n required={this.required}\n placeholder={this.placeholder}\n autocomplete={this.autocomplete}\n minlength={this.minLength}\n maxlength={this.maxLength}\n min={this.min}\n max={this.max}\n step={this.step}\n pattern={this.pattern}\n aria-invalid={this.status === 'error'}\n aria-required={this.required}\n aria-labelledby={this.labelledby}\n aria-describedby={this.describedby}\n value={this.value}\n onInput={this.onInput}\n onChange={this.onChange}\n onFocus={this.onFocus}\n onBlur={this.onBlur}\n onKeyDown={this.onKeyDown}\n onKeyUp={this.onKeyUp}\n />\n {(this.hasSlotContent('suffix') || this.suffixIcon) && (\n <div class=\"flex items-center gap-2 px-2\">\n <slot name=\"suffix\"></slot>\n {this.suffixIcon && <bcm-icon class=\"suffix-icon\" icon-name={this.suffixIcon} size={iconSize}></bcm-icon>}\n </div>\n )}\n </div>\n {(this.captionText || this.internalErrorMessage || this.validationMessage) && (\n <div\n class={classNames(\n 'input-caption-text font-regular mt-1',\n {\n 'text-[--bcm-ui-color-text-caption]': !this.disabled && this.internalStatus === 'default',\n 'text-[--bcm-ui-color-text-error]': !this.disabled && (this.internalStatus === 'error' || !this.isValid),\n 'text-[--bcm-ui-color-text-success]': !this.disabled && this.internalStatus === 'success',\n 'text-[--bcm-ui-color-text-warning]': !this.disabled && this.internalStatus === 'warning',\n 'text-[--bcm-ui-color-text-info]': !this.disabled && this.internalStatus === 'info',\n 'text-[--bcm-ui-color-text-disabled]': this.disabled,\n },\n {\n 'text-size-3': this.size === 'small',\n 'text-size-4': this.size === 'medium',\n 'text-size-5': this.size === 'large',\n },\n )}\n >\n {!this.isValid ? this.validationMessage : this.internalStatus === 'error' ? this.internalErrorMessage : this.captionText}\n </div>\n )}\n </div>\n );\n }\n}\n"],"version":3}
@@ -0,0 +1,91 @@
1
+ 'use strict';
2
+
3
+ Object.defineProperty(exports, '__esModule', { value: true });
4
+
5
+ const index = require('./index-9a2c5938.js');
6
+ const floatingUi_dom_esm = require('./floating-ui.dom.esm-3ec8404c.js');
7
+
8
+ const linkedCss = ".contents{display:contents}:host{display:contents;width:100%}.static{position:static}.flex{display:flex}.max-h-\\[--dropdown-box-max-height\\]{max-height:var(--dropdown-box-max-height)}.w-full{width:100%}.min-w-\\[--dropdown-box-min-weight\\]{min-width:var(--dropdown-box-min-weight)}.max-w-\\[--dropdown-box-max-weight\\]{max-width:var(--dropdown-box-max-weight)}.flex-col{flex-direction:column}.items-center{align-items:center}.rounded-lg{border-radius:var(--bcm-ui-border-radius-lg,8px)}.bg-\\[--dropdown-box-background-color\\]{background-color:var(--dropdown-box-background-color)}.py-1\\.5{padding-bottom:.375rem;padding-top:.375rem}.shadow{--tw-shadow:var(--bcm-ui-box-shadow-default);--tw-shadow-colored:var(--bcm-ui-box-shadow-default)}.shadow,.shadow-3{box-shadow:var(--tw-ring-offset-shadow,0 0 #0000),var(--tw-ring-shadow,0 0 #0000),var(--tw-shadow)}.shadow-3{--tw-shadow:var(--bcm-ui-box-shadow-3);--tw-shadow-colored:var(--bcm-ui-box-shadow-3)}.outline{outline-style:solid}.absolute{position:absolute}.z-\\[1000\\]{z-index:1000}.block{display:block}.min-w-max{min-width:max-content}";
9
+ const BcmLinkedStyle0 = linkedCss;
10
+
11
+ const BcmLinked = class {
12
+ constructor(hostRef) {
13
+ index.registerInstance(this, hostRef);
14
+ this.isVisible = false;
15
+ }
16
+ componentDidLoad() {
17
+ requestAnimationFrame(() => {
18
+ this.targetEl = this.targetElement || (this.targetId ? document.getElementById(this.targetId) : null);
19
+ this.floatingEl = this.host.shadowRoot.querySelector('.floating-content');
20
+ if (this.targetEl) {
21
+ this.targetEl.addEventListener('click', (e) => {
22
+ e.stopPropagation();
23
+ this.toggle();
24
+ });
25
+ const handleClickOutside = (e) => {
26
+ var _a, _b;
27
+ const target = e.target;
28
+ if (!((_a = this.floatingEl) === null || _a === void 0 ? void 0 : _a.contains(target)) &&
29
+ !((_b = this.targetEl) === null || _b === void 0 ? void 0 : _b.contains(target)) &&
30
+ !this.host.contains(target)) {
31
+ this.hide();
32
+ }
33
+ };
34
+ document.addEventListener('click', handleClickOutside);
35
+ this.host['_handleClickOutside'] = handleClickOutside;
36
+ }
37
+ });
38
+ }
39
+ async updatePosition() {
40
+ if (!this.targetEl || !this.floatingEl)
41
+ return;
42
+ const { x, y } = await floatingUi_dom_esm.computePosition(this.targetEl, this.floatingEl, {
43
+ placement: 'bottom-start',
44
+ middleware: [
45
+ floatingUi_dom_esm.offset(2),
46
+ floatingUi_dom_esm.flip({
47
+ fallbackPlacements: ['top-start'],
48
+ }),
49
+ floatingUi_dom_esm.shift({ padding: 8 }),
50
+ ],
51
+ });
52
+ Object.assign(this.floatingEl.style, {
53
+ left: `${x}px`,
54
+ top: `${y}px`,
55
+ });
56
+ }
57
+ show() {
58
+ this.isVisible = true;
59
+ this.updatePosition();
60
+ }
61
+ hide() {
62
+ this.isVisible = false;
63
+ }
64
+ toggle() {
65
+ this.isVisible = !this.isVisible;
66
+ if (this.isVisible) {
67
+ this.updatePosition();
68
+ }
69
+ }
70
+ render() {
71
+ return (index.h("div", { key: '3f941aabcf3f17e8ee628c645ebb1316a305a43f', class: "floating-content z-[1000] flex min-w-max", style: {
72
+ display: this.isVisible ? 'block' : 'none',
73
+ position: 'absolute',
74
+ top: "0px",
75
+ left: "0px",
76
+ } }, index.h("slot", { key: 'd75ff826bc512230c7befcf51757797ffe52abc6' })));
77
+ }
78
+ disconnectedCallback() {
79
+ if (this.targetEl) {
80
+ this.targetEl.removeEventListener('mouseenter', () => this.show());
81
+ this.targetEl.removeEventListener('mouseleave', () => this.hide());
82
+ this.targetEl.removeEventListener('click', () => this.toggle());
83
+ }
84
+ }
85
+ get host() { return index.getElement(this); }
86
+ };
87
+ BcmLinked.style = BcmLinkedStyle0;
88
+
89
+ exports.bcm_linked = BcmLinked;
90
+
91
+ //# sourceMappingURL=bcm-linked.cjs.entry.js.map
@@ -0,0 +1 @@
1
+ {"file":"bcm-linked.entry.cjs.js","mappings":";;;;;;;AAAA,MAAM,SAAS,GAAG,0kCAA0kC,CAAC;AAC7lC,wBAAe,SAAS;;MCOX,SAAS;IALtB;;QAYa,cAAS,GAAY,KAAK,CAAC;KA4FvC;IAtFG,gBAAgB;QACZ,qBAAqB,CAAC;YAClB,IAAI,CAAC,QAAQ,GAAG,IAAI,CAAC,aAAa,KAAK,IAAI,CAAC,QAAQ,GAAG,QAAQ,CAAC,cAAc,CAAC,IAAI,CAAC,QAAQ,CAAC,GAAG,IAAI,CAAC,CAAC;YACtG,IAAI,CAAC,UAAU,GAAG,IAAI,CAAC,IAAI,CAAC,UAAU,CAAC,aAAa,CAAC,mBAAmB,CAAC,CAAC;YAE1E,IAAI,IAAI,CAAC,QAAQ,EAAE;gBACf,IAAI,CAAC,QAAQ,CAAC,gBAAgB,CAAC,OAAO,EAAE,CAAC,CAAC;oBACtC,CAAC,CAAC,eAAe,EAAE,CAAC;oBACpB,IAAI,CAAC,MAAM,EAAE,CAAC;iBACjB,CAAC,CAAC;gBAEH,MAAM,kBAAkB,GAAG,CAAC,CAAa;;oBACrC,MAAM,MAAM,GAAG,CAAC,CAAC,MAAc,CAAC;oBAChC,IAAI,EAAC,MAAA,IAAI,CAAC,UAAU,0CAAE,QAAQ,CAAC,MAAM,CAAC,CAAA;wBAClC,EAAC,MAAA,IAAI,CAAC,QAAQ,0CAAE,QAAQ,CAAC,MAAM,CAAC,CAAA;wBAChC,CAAC,IAAI,CAAC,IAAI,CAAC,QAAQ,CAAC,MAAM,CAAC,EAAE;wBAC7B,IAAI,CAAC,IAAI,EAAE,CAAC;qBACf;iBACJ,CAAC;gBAEF,QAAQ,CAAC,gBAAgB,CAAC,OAAO,EAAE,kBAAkB,CAAC,CAAC;gBAEvD,IAAI,CAAC,IAAI,CAAC,qBAAqB,CAAC,GAAG,kBAAkB,CAAC;aACzD;SACJ,CAAC,CAAC;KACN;IAEO,MAAM,cAAc;QACxB,IAAI,CAAC,IAAI,CAAC,QAAQ,IAAI,CAAC,IAAI,CAAC,UAAU;YAAE,OAAO;QAE/C,MAAM,EAAE,CAAC,EAAE,CAAC,EAAE,GAAG,MAAMA,kCAAe,CAAC,IAAI,CAAC,QAAQ,EAAE,IAAI,CAAC,UAAU,EAAE;YACnE,SAAS,EAAE,cAAc;YACzB,UAAU,EAAE;gBACRC,yBAAM,CAAC,CAAC,CAAC;gBACTC,uBAAI,CAAC;oBACD,kBAAkB,EAAE,CAAC,WAAW,CAAC;iBACpC,CAAC;gBACFC,wBAAK,CAAC,EAAE,OAAO,EAAE,CAAC,EAAE,CAAC;aACxB;SACJ,CAAC,CAAC;QAEH,MAAM,CAAC,MAAM,CAAC,IAAI,CAAC,UAAU,CAAC,KAAK,EAAE;YACjC,IAAI,EAAE,GAAG,CAAC,IAAI;YACd,GAAG,EAAE,GAAG,CAAC,IAAI;SAChB,CAAC,CAAC;KACN;IAEO,IAAI;QACR,IAAI,CAAC,SAAS,GAAG,IAAI,CAAC;QACtB,IAAI,CAAC,cAAc,EAAE,CAAC;KACzB;IAEO,IAAI;QACR,IAAI,CAAC,SAAS,GAAG,KAAK,CAAC;KAC1B;IAEO,MAAM;QACV,IAAI,CAAC,SAAS,GAAG,CAAC,IAAI,CAAC,SAAS,CAAC;QACjC,IAAI,IAAI,CAAC,SAAS,EAAE;YAChB,IAAI,CAAC,cAAc,EAAE,CAAC;SACzB;KACJ;IAED,MAAM;QACF,QACIC,kEACI,KAAK,EAAC,0CAA0C,EAChD,KAAK,EAAE;gBACH,OAAO,EAAE,IAAI,CAAC,SAAS,GAAG,OAAO,GAAG,MAAM;gBAC1C,QAAQ,EAAE,UAAU;gBACpB,GAAG,EAAE,KAAK;gBACV,IAAI,EAAE,KAAK;aACd,IAEDA,oEAAa,CACX,EACR;KACL;IAED,oBAAoB;QAChB,IAAI,IAAI,CAAC,QAAQ,EAAE;YACf,IAAI,CAAC,QAAQ,CAAC,mBAAmB,CAAC,YAAY,EAAE,MAAM,IAAI,CAAC,IAAI,EAAE,CAAC,CAAC;YACnE,IAAI,CAAC,QAAQ,CAAC,mBAAmB,CAAC,YAAY,EAAE,MAAM,IAAI,CAAC,IAAI,EAAE,CAAC,CAAC;YACnE,IAAI,CAAC,QAAQ,CAAC,mBAAmB,CAAC,OAAO,EAAE,MAAM,IAAI,CAAC,MAAM,EAAE,CAAC,CAAC;SACnE;KACJ;;;;;;;","names":["computePosition","offset","flip","shift","h"],"sources":["src/components/linked/linked.css?tag=bcm-linked&encapsulation=shadow","src/components/linked/linked.component.tsx"],"sourcesContent":[":host {\n display: contents;\n width: 100%;\n}\n","import { Component, ComponentInterface, Prop, Element, State, h } from \"@stencil/core\";\nimport { computePosition, flip, shift, offset } from '@floating-ui/dom';\n\n@Component({\n tag: 'bcm-linked',\n styleUrl: 'linked.css',\n shadow: true,\n})\nexport class BcmLinked implements ComponentInterface {\n @Element() host: HTMLElement;\n\n @Prop({ reflect: true, attribute: 'target-id' }) targetId: string;\n\n @Prop() targetElement?: HTMLElement;\n\n @State() isVisible: boolean = false;\n\n private floatingEl?: HTMLElement;\n private targetEl?: HTMLElement;\n\n\n componentDidLoad() {\n requestAnimationFrame(() => {\n this.targetEl = this.targetElement || (this.targetId ? document.getElementById(this.targetId) : null);\n this.floatingEl = this.host.shadowRoot.querySelector('.floating-content');\n\n if (this.targetEl) {\n this.targetEl.addEventListener('click', (e) => {\n e.stopPropagation();\n this.toggle();\n });\n\n const handleClickOutside = (e: MouseEvent) => {\n const target = e.target as Node;\n if (!this.floatingEl?.contains(target) &&\n !this.targetEl?.contains(target) &&\n !this.host.contains(target)) {\n this.hide();\n }\n };\n\n document.addEventListener('click', handleClickOutside);\n\n this.host['_handleClickOutside'] = handleClickOutside;\n }\n });\n }\n\n private async updatePosition() {\n if (!this.targetEl || !this.floatingEl) return;\n\n const { x, y } = await computePosition(this.targetEl, this.floatingEl, {\n placement: 'bottom-start',\n middleware: [\n offset(2),\n flip({\n fallbackPlacements: ['top-start'],\n }),\n shift({ padding: 8 }),\n ],\n });\n\n Object.assign(this.floatingEl.style, {\n left: `${x}px`,\n top: `${y}px`,\n });\n }\n\n private show() {\n this.isVisible = true;\n this.updatePosition();\n }\n\n private hide() {\n this.isVisible = false;\n }\n\n private toggle() {\n this.isVisible = !this.isVisible;\n if (this.isVisible) {\n this.updatePosition();\n }\n }\n\n render() {\n return (\n <div\n class=\"floating-content z-[1000] flex min-w-max\"\n style={{\n display: this.isVisible ? 'block' : 'none',\n position: 'absolute',\n top: \"0px\",\n left: \"0px\",\n }}\n >\n <slot></slot>\n </div>\n );\n }\n\n disconnectedCallback() {\n if (this.targetEl) {\n this.targetEl.removeEventListener('mouseenter', () => this.show());\n this.targetEl.removeEventListener('mouseleave', () => this.hide());\n this.targetEl.removeEventListener('click', () => this.toggle());\n }\n }\n}"],"version":3}
@@ -0,0 +1,252 @@
1
+ 'use strict';
2
+
3
+ Object.defineProperty(exports, '__esModule', { value: true });
4
+
5
+ const index = require('./index-9a2c5938.js');
6
+ const floatingUi_dom_esm = require('./floating-ui.dom.esm-3ec8404c.js');
7
+ const index$1 = require('./index-310db2a6.js');
8
+
9
+ const popConfirmCss = ".absolute{position:absolute}.transform{transform:translate(var(--tw-translate-x),var(--tw-translate-y)) rotate(var(--tw-rotate)) skewX(var(--tw-skew-x)) skewY(var(--tw-skew-y)) scaleX(var(--tw-scale-x)) scaleY(var(--tw-scale-y))}.text-wrap{text-wrap:wrap}:host{--popover-bg:var(--bcm-ui-color-background-basic-panel);--popover-radius:6px;--popover-text-color:var(--bcm-ui-color-text-basic);display:inline-block}.arrow{background:var(--arrow-color);clip-path:polygon(50% 0,100% 100%,0 100%);position:absolute;z-index:1}.arrow.top{transform:rotate(180deg)}.arrow.bottom{transform:rotate(0deg)}.arrow.right{transform:rotate(-90deg)}.arrow.left{transform:rotate(90deg)}::slotted([slot=body]){text-wrap:pretty;font-family:Inter,sans-serif}.container{width:100%}@media (min-width:640px){.container{max-width:640px}}@media (min-width:768px){.container{max-width:768px}}@media (min-width:1024px){.container{max-width:1024px}}@media (min-width:1280px){.container{max-width:1280px}}@media (min-width:1536px){.container{max-width:1536px}}.bcm-ui-element{-webkit-font-smoothing:antialiased;-moz-osx-font-smoothing:grayscale;font-family:Inter,sans-serif}.static{position:static}.relative{position:relative}.z-\\[9999\\]{z-index:9999}.mx-auto{margin-left:auto;margin-right:auto}.flex{display:flex}.hidden{display:none}.size-6{height:1.5rem;width:1.5rem}.h-2{height:.5rem}.w-4{width:1rem}.w-full{width:100%}.max-w-64{max-width:16rem}.max-w-80{max-width:20rem}.max-w-96{max-width:24rem}.flex-1{flex:1 1 0%}.cursor-pointer{cursor:pointer}.flex-row{flex-direction:row}.flex-col{flex-direction:column}.items-center{align-items:center}.justify-end{justify-content:flex-end}.justify-center{justify-content:center}.justify-between{justify-content:space-between}.gap-2{gap:.5rem}.gap-2\\.5{gap:.625rem}.gap-3{gap:.75rem}.gap-4{gap:1rem}.gap-6{gap:1.5rem}.gap-8{gap:2rem}.text-pretty{text-wrap:pretty}.rounded-\\[--popover-radius\\]{border-radius:var(--popover-radius)}.rounded-full{border-radius:var(--bcm-ui-border-radius-full,9999px)}.bg-\\[--popover-bg\\]{background-color:var(--popover-bg)}.p-4{padding:1rem}.p-6{padding:1.5rem}.p-8{padding:2rem}.font-sans{font-family:Inter,sans-serif}.text-size-4{font-size:var(--bcm-ui-font-size-4,14px);line-height:var(--bcm-ui-line-height-4,20px)}.text-size-5{font-size:var(--bcm-ui-font-size-5,16px);line-height:var(--bcm-ui-line-height-5,24px)}.text-size-6{font-size:var(--bcm-ui-font-size-6,18px);line-height:var(--bcm-ui-line-height-6,24px)}.text-size-7{font-size:var(--bcm-ui-font-size-7,20px);line-height:var(--bcm-ui-line-height-7,28px)}.text-size-inherit{font-size:inherit;line-height:inherit}.font-semibold{font-weight:600}.\\!text-color-header{color:var(--bcm-ui-color-text-header)!important}.text-\\[--text-color\\]{color:var(--text-color)}.shadow{--tw-shadow:var(--bcm-ui-box-shadow-default);--tw-shadow-colored:var(--bcm-ui-box-shadow-default)}.shadow,.shadow-2{box-shadow:var(--tw-ring-offset-shadow,0 0 #0000),var(--tw-ring-shadow,0 0 #0000),var(--tw-shadow)}.shadow-2{--tw-shadow:var(--bcm-ui-box-shadow-2);--tw-shadow-colored:var(--bcm-ui-box-shadow-2)}.outline{outline-style:solid}.hover\\:bg-gray-100:hover{background-color:oklch(.967 .003 264.542)}";
10
+ const BcmPopConfirmStyle0 = popConfirmCss;
11
+
12
+ // Status icons for different states
13
+ const statusIcons = {
14
+ info: 'fa-solid fa-circle-info',
15
+ success: 'fa-solid fa-circle-check',
16
+ warning: 'fa-solid fa-triangle-exclamation',
17
+ error: 'fa-solid fa-circle-x',
18
+ };
19
+ const PopConfirm = class {
20
+ constructor(hostRef) {
21
+ index.registerInstance(this, hostRef);
22
+ this.bcmConfirm = index.createEvent(this, "bcmConfirm", 1);
23
+ this.bcmCancel = index.createEvent(this, "bcmCancel", 1);
24
+ /**
25
+ * The color of the arrow pointing to the trigger element.
26
+ * Can be a CSS custom property or a specific color value.
27
+ * @default 'var(--bcm-ui-color-background-basic-panel)'
28
+ */
29
+ this.arrowColor = 'var(--bcm-ui-color-background-basic-panel)'; // Default color
30
+ /**
31
+ * The text displayed on the cancel button.
32
+ * @default 'Cancel'
33
+ */
34
+ this.cancelText = 'Cancel';
35
+ /**
36
+ * The text displayed on the confirm button.
37
+ * @default 'Yes'
38
+ */
39
+ this.confirmText = 'Yes';
40
+ /**
41
+ * The description or body content of the pop-up.
42
+ * @default ''
43
+ */
44
+ this.description = '';
45
+ /**
46
+ * The header text displayed at the top of the pop-up.
47
+ * @default ''
48
+ */
49
+ this.headerText = '';
50
+ /**
51
+ * The placement position of the pop-up relative to the trigger element.
52
+ * @default 'bottom'
53
+ */
54
+ this.placement = 'bottom';
55
+ /**
56
+ * The size of the pop-up, determining its dimensions and padding.
57
+ * @default 'medium'
58
+ */
59
+ this.size = 'medium';
60
+ /**
61
+ * The status of the pop-up, affecting its icon and color scheme.
62
+ * @default 'info'
63
+ */
64
+ this.status = 'info';
65
+ /**
66
+ * Whether to display a status icon based on the `status` prop.
67
+ * @default true
68
+ */
69
+ this.statusIcon = true;
70
+ // State variables
71
+ /**
72
+ * Indicates whether the pop-up is currently open or closed.
73
+ * @default false
74
+ */
75
+ this.isOpen = false;
76
+ /**
77
+ * Handles the click event on the trigger element to open the pop-up.
78
+ * Prevents default behavior and propagation, then opens the pop-up if it's closed.
79
+ * @param event The mouse event triggering the action.
80
+ */
81
+ this.handleTriggerClick = (event) => {
82
+ event.preventDefault();
83
+ event.stopPropagation();
84
+ if (!this.isOpen) {
85
+ this.isOpen = true;
86
+ requestAnimationFrame(() => {
87
+ this.updatePosition();
88
+ });
89
+ }
90
+ };
91
+ /**
92
+ * Handles the confirm button click, closing the pop-up and emitting the confirm event.
93
+ * Prevents default behavior and propagation.
94
+ * @param event The mouse event triggering the action.
95
+ */
96
+ this.handleConfirm = (event) => {
97
+ event.preventDefault();
98
+ event.stopPropagation();
99
+ this.isOpen = false;
100
+ this.bcmConfirm.emit();
101
+ };
102
+ /**
103
+ * Handles the cancel button click, closing the pop-up and emitting the cancel event.
104
+ * Prevents default behavior and propagation.
105
+ * @param event The mouse event triggering the action.
106
+ */
107
+ this.handleCancel = (event) => {
108
+ event.preventDefault();
109
+ event.stopPropagation();
110
+ this.isOpen = false;
111
+ this.bcmCancel.emit();
112
+ };
113
+ /**
114
+ * Updates the position of the pop-up relative to the trigger element using Floating UI.
115
+ * Ensures the pop-up stays within viewport bounds and positions the arrow correctly.
116
+ */
117
+ this.updatePosition = async () => {
118
+ if (!this.triggerElement || !this.popoverElement || !this.arrowElement)
119
+ return;
120
+ const { x, y, placement, middlewareData } = await floatingUi_dom_esm.computePosition(this.triggerElement, this.popoverElement, {
121
+ placement: this.placement,
122
+ middleware: [floatingUi_dom_esm.offset(12), floatingUi_dom_esm.flip({ fallbackPlacements: ['top', 'left', 'bottom', 'right'] }), floatingUi_dom_esm.shift({ padding: 8 }), floatingUi_dom_esm.arrow({ element: this.arrowElement })],
123
+ });
124
+ this.currentPlacement = placement;
125
+ Object.assign(this.popoverElement.style, {
126
+ left: `${x}px`,
127
+ top: `${y}px`,
128
+ });
129
+ const { x: arrowX, y: arrowY } = middlewareData.arrow || { x: 0, y: 0 };
130
+ const basePlacement = placement.split('-')[0];
131
+ const staticSide = {
132
+ top: 'bottom',
133
+ right: 'left',
134
+ bottom: 'top',
135
+ left: 'right',
136
+ }[basePlacement];
137
+ Object.assign(this.arrowElement.style, {
138
+ left: arrowX != null ? `${arrowX}px` : '',
139
+ top: arrowY != null ? `${arrowY}px` : '',
140
+ [staticSide]: ['top', 'bottom'].includes(basePlacement) ? '-8px' : '-12px',
141
+ });
142
+ };
143
+ /**
144
+ * Defines Tailwind Variants classes for the pop-up's structure and styling.
145
+ * Supports different sizes and generates dynamic class names.
146
+ */
147
+ this.classes = index$1.ce({
148
+ slots: {
149
+ container: 'absolute bcm-ui-element flex flex-col shadow-2 rounded-[--popover-radius] bg-[--popover-bg] z-[9999] w-full',
150
+ header: 'flex justify-between items-center',
151
+ headerLeftContent: 'flex items-center gap-2 text-size-inherit text-[--text-color]',
152
+ closeIconArea: 'flex flex-row gap-2 size-6 items-center justify-center hover:bg-gray-100 rounded-full cursor-pointer text-size-inherit',
153
+ titleContainer: '!text-color-header font-semibold',
154
+ footer: 'flex flex-row justify-end gap-2',
155
+ },
156
+ variants: {
157
+ size: {
158
+ small: {
159
+ container: 'text-size-4 max-w-64 p-4 gap-4',
160
+ header: 'text-size-4',
161
+ footer: 'text-size-4',
162
+ titleContainer: 'text-size-5',
163
+ headerLeftContent: 'gap-2',
164
+ },
165
+ medium: {
166
+ container: 'text-size-5 max-w-80 gap-6 p-6',
167
+ header: 'text-size-5',
168
+ footer: 'text-size-5',
169
+ titleContainer: 'text-size-6',
170
+ headerLeftContent: 'gap-2.5',
171
+ },
172
+ large: {
173
+ container: 'text-size-6 max-w-96 p-8 gap-8',
174
+ header: 'text-size-6',
175
+ footer: 'text-size-6',
176
+ titleContainer: 'text-size-7',
177
+ headerLeftContent: 'gap-3',
178
+ },
179
+ },
180
+ },
181
+ defaultVariants: {
182
+ size: 'medium',
183
+ },
184
+ });
185
+ }
186
+ /**
187
+ * Lifecycle method called when the component is loaded.
188
+ * Initializes the trigger element and attaches a click event listener.
189
+ */
190
+ componentDidLoad() {
191
+ this.triggerElement = document.getElementById(this.targetId);
192
+ if (!this.triggerElement) {
193
+ console.warn(`Target element with ID '${this.targetId}' not found.`);
194
+ return;
195
+ }
196
+ this.triggerElement.addEventListener('click', this.handleTriggerClick);
197
+ }
198
+ /**
199
+ * Programmatically shows the pop-up by setting `isOpen` to true and updating its position.
200
+ * @returns A promise that resolves when the pop-up is shown.
201
+ */
202
+ async show() {
203
+ this.isOpen = true;
204
+ requestAnimationFrame(() => {
205
+ this.updatePosition();
206
+ });
207
+ }
208
+ /**
209
+ * Programmatically hides the pop-up by setting `isOpen` to false.
210
+ * @returns A promise that resolves when the pop-up is hidden.
211
+ */
212
+ async hide() {
213
+ this.isOpen = false;
214
+ }
215
+ /**
216
+ * Returns the dynamic styles for the pop-up, including text and arrow colors.
217
+ * @returns An object containing CSS custom properties.
218
+ */
219
+ get popoverStyle() {
220
+ return {
221
+ '--text-color': `var(--bcm-ui-color-text-${this.status})`,
222
+ '--arrow-color': this.arrowColor,
223
+ };
224
+ }
225
+ /**
226
+ * Lifecycle method called when the component is removed from the DOM.
227
+ * Cleans up the event listener to prevent memory leaks.
228
+ */
229
+ disconnectedCallback() {
230
+ if (this.triggerElement) {
231
+ this.triggerElement.removeEventListener('click', this.handleTriggerClick);
232
+ }
233
+ }
234
+ /**
235
+ * Renders the pop-up component, showing it only when `isOpen` is true.
236
+ * Includes header, main content, and footer sections with dynamic styling and slots for customization.
237
+ * @returns JSX.Element representing the pop-up or an empty fragment if closed.
238
+ */
239
+ render() {
240
+ var _a;
241
+ const { container, header, footer, headerLeftContent, closeIconArea, titleContainer } = this.classes({
242
+ size: this.size,
243
+ });
244
+ return (index.h(index.Fragment, { key: '9c275c728ff7cabce1a564cf1f062b65c732c2f7' }, this.isOpen && (index.h("div", { key: '04b20e5773d7c2ce6a2bb4fbe2801bb0d775a425', role: "dialog", "aria-labelledby": "pop-confirm-title", style: this.popoverStyle, class: container(), ref: el => (this.popoverElement = el) }, index.h("div", { key: 'bff8a3617e2615efdfe24ff9e73bcad4b55e54ea', ref: el => (this.arrowElement = el), class: `arrow w-4 h-2 ${(_a = this.currentPlacement) !== null && _a !== void 0 ? _a : 'top'}` }), index.h("header", { key: 'fb7c440f138f4950dbfd0c6e473ab769d37e5e20', class: header() }, index.h("div", { key: 'ed166db8cf2ced87a0442af476037f0706ad5f67', class: headerLeftContent() }, this.statusIcon && index.h("bcm-icon", { key: '077dd2de165608062c49ad831c0d67488e5270de', "icon-name": statusIcons[this.status] }), index.h("span", { key: '4be735274dad1742b9cd956da5520eb922a9a817', class: titleContainer() }, this.headerText), index.h("slot", { key: '59cec868d0e73e3d8f0577fc7528a6332998b93a', name: "header" })), index.h("div", { key: '225623a00d44c07bfdd6611b7ee98a7fb49ba008', class: closeIconArea(), onClick: this.handleCancel }, index.h("bcm-icon", { key: '6b096f888794673d678d8edae338edc50485df57', "icon-name": "far fa-times" }))), index.h("main", { key: '4ff8930d218641bb7f3a722ca5a065f7df73a40e', class: "flex-1 mx-auto font-sans text-pretty" }, index.h("slot", { key: '0058d440b9e703ff30d2c41aee14d4122d82aeaa', name: "body" }, this.description)), index.h("footer", { key: '6ffcd9df426bf280b77d2cfb39552647115253ec', class: footer() }, index.h("bcm-button", { key: '997610d1ca83cf3357d0a8d3f1102e25d2966240', kind: "outline", size: this.size, onClick: this.handleCancel }, this.cancelText), index.h("bcm-button", { key: 'c1f633f3e8837b724dd9e26580a3c7260543e8b4', size: this.size, status: this.status, kind: "primary", onClick: this.handleConfirm }, this.confirmText), index.h("slot", { key: '2f9d5ab32c2e62bcdad247ab4ce93df53358f843', name: "footer" }))))));
245
+ }
246
+ get el() { return index.getElement(this); }
247
+ };
248
+ PopConfirm.style = BcmPopConfirmStyle0;
249
+
250
+ exports.bcm_pop_confirm = PopConfirm;
251
+
252
+ //# sourceMappingURL=bcm-pop-confirm.cjs.entry.js.map