@actabldesign/bellhop-core 0.0.4 → 0.0.7

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
Files changed (626) hide show
  1. package/{dist/components → components}/bh-accordion-item.d.ts +1 -1
  2. package/{dist/components → components}/bh-accordion-item.js +1 -2
  3. package/components/bh-accordion-item.js.map +1 -0
  4. package/{dist/components → components}/bh-accordion.d.ts +1 -1
  5. package/{dist/components → components}/bh-accordion.js +1 -2
  6. package/components/bh-accordion.js.map +1 -0
  7. package/{dist/components → components}/bh-appbar.d.ts +1 -1
  8. package/{dist/components → components}/bh-appbar.js +4 -5
  9. package/components/bh-appbar.js.map +1 -0
  10. package/{dist/components → components}/bh-autocomplete-menu.d.ts +1 -1
  11. package/{dist/components → components}/bh-autocomplete-menu.js +1 -1
  12. package/{dist/components → components}/bh-avatar-add.d.ts +1 -1
  13. package/{dist/components → components}/bh-avatar-add.js +1 -1
  14. package/{dist/components → components}/bh-avatar-stacked.d.ts +1 -1
  15. package/{dist/components → components}/bh-avatar-stacked.js +4 -5
  16. package/components/bh-avatar-stacked.js.map +1 -0
  17. package/{dist/components → components}/bh-avatar.d.ts +1 -1
  18. package/{dist/components → components}/bh-avatar.js +1 -1
  19. package/{dist/components → components}/bh-badge-dot.d.ts +1 -1
  20. package/{dist/components → components}/bh-badge-dot.js +1 -1
  21. package/{dist/components → components}/bh-badge.d.ts +1 -1
  22. package/{dist/components → components}/bh-badge.js +1 -1
  23. package/{dist/components → components}/bh-bar-chart.d.ts +1 -1
  24. package/{dist/components → components}/bh-bar-chart.js +2 -3
  25. package/components/bh-bar-chart.js.map +1 -0
  26. package/{dist/components → components}/bh-breadcrumbs.d.ts +1 -1
  27. package/{dist/components → components}/bh-breadcrumbs.js +1 -1
  28. package/{dist/components → components}/bh-button-icon.d.ts +1 -1
  29. package/{dist/components → components}/bh-button-icon.js +1 -1
  30. package/{dist/components → components}/bh-button.d.ts +1 -1
  31. package/{dist/components → components}/bh-button.js +1 -1
  32. package/{dist/components → components}/bh-card-footer.d.ts +1 -1
  33. package/{dist/components/p-DK92X9HV.js → components/bh-card-footer.js} +10 -8
  34. package/components/bh-card-footer.js.map +1 -0
  35. package/{dist/components → components}/bh-card-header.d.ts +1 -1
  36. package/{dist/components/p-BNeBcvHu.js → components/bh-card-header.js} +16 -14
  37. package/components/bh-card-header.js.map +1 -0
  38. package/{dist/components → components}/bh-card.d.ts +1 -1
  39. package/{dist/components/p-DtbXB8r4.js → components/bh-card.js} +10 -8
  40. package/components/bh-card.js.map +1 -0
  41. package/{dist/components → components}/bh-chart-tooltip.d.ts +1 -1
  42. package/{dist/components → components}/bh-chart-tooltip.js +1 -1
  43. package/{dist/components → components}/bh-checkbox-group-item.d.ts +1 -1
  44. package/{dist/components/p-Ccq-Rk5W.js → components/bh-checkbox-group-item.js} +20 -18
  45. package/components/bh-checkbox-group-item.js.map +1 -0
  46. package/{dist/components → components}/bh-checkbox-group.d.ts +1 -1
  47. package/{dist/components/p-BOk69MBi.js → components/bh-checkbox-group.js} +10 -8
  48. package/components/bh-checkbox-group.js.map +1 -0
  49. package/{dist/components → components}/bh-checkbox.d.ts +1 -1
  50. package/{dist/components → components}/bh-checkbox.js +1 -1
  51. package/{dist/components → components}/bh-container-footer.d.ts +1 -1
  52. package/{dist/components → components}/bh-container-footer.js +3 -4
  53. package/components/bh-container-footer.js.map +1 -0
  54. package/{dist/components → components}/bh-container.d.ts +1 -1
  55. package/{dist/components → components}/bh-container.js +1 -2
  56. package/components/bh-container.js.map +1 -0
  57. package/{dist/components → components}/bh-data-grid.d.ts +1 -1
  58. package/{dist/components/p-D-RHfFhc.js → components/bh-data-grid.js} +28 -26
  59. package/components/bh-data-grid.js.map +1 -0
  60. package/{dist/components → components}/bh-date-picker-content.d.ts +1 -1
  61. package/{dist/components → components}/bh-date-picker-content.js +1 -1
  62. package/{dist/components → components}/bh-date-picker.d.ts +1 -1
  63. package/{dist/components → components}/bh-date-picker.js +10 -11
  64. package/components/bh-date-picker.js.map +1 -0
  65. package/{dist/components → components}/bh-date-range-picker-content.d.ts +1 -1
  66. package/{dist/components → components}/bh-date-range-picker-content.js +1 -1
  67. package/{dist/components → components}/bh-date-range-picker.d.ts +1 -1
  68. package/{dist/components → components}/bh-date-range-picker.js +11 -12
  69. package/components/bh-date-range-picker.js.map +1 -0
  70. package/{dist/components → components}/bh-dropdown-menu.d.ts +1 -1
  71. package/{dist/components → components}/bh-dropdown-menu.js +1 -1
  72. package/{dist/components → components}/bh-dropdown.d.ts +1 -1
  73. package/{dist/components → components}/bh-dropdown.js +1 -1
  74. package/{dist/components → components}/bh-empty-state.d.ts +1 -1
  75. package/{dist/components → components}/bh-empty-state.js +1 -1
  76. package/{dist/components → components}/bh-featured-icon.d.ts +1 -1
  77. package/{dist/components → components}/bh-featured-icon.js +1 -1
  78. package/{dist/components → components}/bh-illustrations.d.ts +1 -1
  79. package/{dist/components → components}/bh-illustrations.js +1 -2
  80. package/components/bh-illustrations.js.map +1 -0
  81. package/{dist/components → components}/bh-input-autocomplete.d.ts +1 -1
  82. package/{dist/components → components}/bh-input-autocomplete.js +8 -9
  83. package/components/bh-input-autocomplete.js.map +1 -0
  84. package/{dist/components → components}/bh-input-number.d.ts +1 -1
  85. package/{dist/components → components}/bh-input-number.js +4 -5
  86. package/components/bh-input-number.js.map +1 -0
  87. package/{dist/components → components}/bh-input-password.d.ts +1 -1
  88. package/{dist/components → components}/bh-input-password.js +3 -4
  89. package/components/bh-input-password.js.map +1 -0
  90. package/{dist/components → components}/bh-input-text.d.ts +1 -1
  91. package/{dist/components → components}/bh-input-text.js +1 -1
  92. package/{dist/components → components}/bh-input-verification.d.ts +1 -1
  93. package/{dist/components → components}/bh-input-verification.js +3 -4
  94. package/components/bh-input-verification.js.map +1 -0
  95. package/{dist/components → components}/bh-label.d.ts +1 -1
  96. package/{dist/components → components}/bh-label.js +1 -1
  97. package/{dist/components → components}/bh-loader-spinner.d.ts +1 -1
  98. package/{dist/components → components}/bh-loader-spinner.js +1 -1
  99. package/{dist/components → components}/bh-logo-box.d.ts +1 -1
  100. package/{dist/components → components}/bh-logo-box.js +1 -1
  101. package/{dist/components → components}/bh-modal-actions.d.ts +1 -1
  102. package/{dist/components → components}/bh-modal-actions.js +3 -4
  103. package/components/bh-modal-actions.js.map +1 -0
  104. package/{dist/components → components}/bh-modal-header.d.ts +1 -1
  105. package/{dist/components → components}/bh-modal-header.js +3 -4
  106. package/components/bh-modal-header.js.map +1 -0
  107. package/{dist/components → components}/bh-modal.d.ts +1 -1
  108. package/{dist/components/p-DURWm67o.js → components/bh-modal.js} +10 -8
  109. package/components/bh-modal.js.map +1 -0
  110. package/{dist/components → components}/bh-month-picker-content.d.ts +1 -1
  111. package/{dist/components → components}/bh-month-picker-content.js +1 -1
  112. package/{dist/components → components}/bh-month-picker.d.ts +1 -1
  113. package/{dist/components → components}/bh-month-picker.js +8 -9
  114. package/components/bh-month-picker.js.map +1 -0
  115. package/{dist/components → components}/bh-nav-item.d.ts +1 -1
  116. package/{dist/components → components}/bh-nav-item.js +1 -1
  117. package/{dist/components → components}/bh-notification.d.ts +1 -1
  118. package/{dist/components → components}/bh-notification.js +4 -5
  119. package/components/bh-notification.js.map +1 -0
  120. package/{dist/components → components}/bh-page-navigation-child.d.ts +1 -1
  121. package/{dist/components → components}/bh-page-navigation-child.js +1 -1
  122. package/{dist/components → components}/bh-page-navigation-multi-level.d.ts +1 -1
  123. package/{dist/components → components}/bh-page-navigation-multi-level.js +1 -1
  124. package/{dist/components → components}/bh-page-navigation-single-level.d.ts +1 -1
  125. package/{dist/components → components}/bh-page-navigation-single-level.js +1 -1
  126. package/{dist/components → components}/bh-page-navigation.d.ts +1 -1
  127. package/{dist/components → components}/bh-page-navigation.js +6 -7
  128. package/components/bh-page-navigation.js.map +1 -0
  129. package/{dist/components → components}/bh-pagination.d.ts +1 -1
  130. package/{dist/components → components}/bh-pagination.js +1 -1
  131. package/{dist/components → components}/bh-picker-menu.d.ts +1 -1
  132. package/{dist/components → components}/bh-picker-menu.js +1 -1
  133. package/{dist/components → components}/bh-pie-chart.d.ts +1 -1
  134. package/{dist/components → components}/bh-pie-chart.js +2 -3
  135. package/components/bh-pie-chart.js.map +1 -0
  136. package/{dist/components → components}/bh-popover.d.ts +1 -1
  137. package/{dist/components → components}/bh-popover.js +1 -2
  138. package/components/bh-popover.js.map +1 -0
  139. package/{dist/components → components}/bh-product-switcher.d.ts +1 -1
  140. package/{dist/components → components}/bh-product-switcher.js +1 -1
  141. package/{dist/components → components}/bh-property-switcher.d.ts +1 -1
  142. package/{dist/components → components}/bh-property-switcher.js +1 -2
  143. package/components/bh-property-switcher.js.map +1 -0
  144. package/{dist/components → components}/bh-radio-button.d.ts +1 -1
  145. package/{dist/components → components}/bh-radio-button.js +1 -1
  146. package/{dist/components → components}/bh-sidebar.d.ts +1 -1
  147. package/{dist/components → components}/bh-sidebar.js +10 -11
  148. package/components/bh-sidebar.js.map +1 -0
  149. package/{dist/components → components}/bh-skeleton-loader.d.ts +1 -1
  150. package/{dist/components → components}/bh-skeleton-loader.js +1 -1
  151. package/{dist/components → components}/bh-tab-item.d.ts +1 -1
  152. package/{dist/components → components}/bh-tab-item.js +1 -2
  153. package/components/bh-tab-item.js.map +1 -0
  154. package/{dist/components → components}/bh-tabs.d.ts +1 -1
  155. package/{dist/components → components}/bh-tabs.js +1 -2
  156. package/components/bh-tabs.js.map +1 -0
  157. package/{dist/components → components}/bh-tag.d.ts +1 -1
  158. package/{dist/components → components}/bh-tag.js +1 -1
  159. package/{dist/components → components}/bh-textarea.d.ts +1 -1
  160. package/{dist/components → components}/bh-textarea.js +3 -4
  161. package/components/bh-textarea.js.map +1 -0
  162. package/{dist/components → components}/bh-toggle.d.ts +1 -1
  163. package/{dist/components/p-dlKpBGSA.js → components/bh-toggle.js} +10 -8
  164. package/components/bh-toggle.js.map +1 -0
  165. package/{dist/components → components}/bh-tooltip.d.ts +1 -1
  166. package/{dist/components → components}/bh-tooltip.js +1 -1
  167. package/{dist/components → components}/bh-trend-chart.d.ts +1 -1
  168. package/{dist/components → components}/bh-trend-chart.js +1 -2
  169. package/components/bh-trend-chart.js.map +1 -0
  170. package/components/index.d.ts +170 -0
  171. package/components/index.js +71 -0
  172. package/components/index.js.map +1 -0
  173. package/{dist/components/p-DW54267I.js → components/p-8bOZFmdg.js} +6 -7
  174. package/components/p-8bOZFmdg.js.map +1 -0
  175. package/{dist/components/p-BFhwq3_y.js → components/p-B02xFf1P.js} +4 -5
  176. package/components/p-B02xFf1P.js.map +1 -0
  177. package/{dist/components/p-DsCDXclM.js → components/p-B0vRPcr5.js} +4 -5
  178. package/components/p-B0vRPcr5.js.map +1 -0
  179. package/{dist/components/p-CWGpUs1b.js → components/p-B9W7gNtY.js} +3 -4
  180. package/components/p-B9W7gNtY.js.map +1 -0
  181. package/{dist/components/p-Bs2Z3XIQ.js → components/p-BJLHKnwL.js} +5 -6
  182. package/components/p-BJLHKnwL.js.map +1 -0
  183. package/{dist/components/p-Df5drD7C.js → components/p-BLCjD0ux.js} +3 -4
  184. package/components/p-BLCjD0ux.js.map +1 -0
  185. package/{dist/components/p-DOaC_o63.js → components/p-BQKx1tGq.js} +7 -8
  186. package/components/p-BQKx1tGq.js.map +1 -0
  187. package/{dist/components/p-5LJWVh2v.js → components/p-BSok41i-.js} +3 -4
  188. package/components/p-BSok41i-.js.map +1 -0
  189. package/{dist/components/p-B7eVYv2t.js → components/p-BajBGXic.js} +3 -4
  190. package/components/p-BajBGXic.js.map +1 -0
  191. package/{dist/components/p-Cu6Uuaq7.js → components/p-BkK6rWZn.js} +4 -5
  192. package/components/p-BkK6rWZn.js.map +1 -0
  193. package/{dist/components/p-ChfLhYiJ.js → components/p-BsHlTsAN.js} +665 -11
  194. package/components/p-BsHlTsAN.js.map +1 -0
  195. package/{dist/components/p-B8MWhPHT.js → components/p-Bu0BcHwL.js} +6 -7
  196. package/components/p-Bu0BcHwL.js.map +1 -0
  197. package/{dist/components/p-Dm3E-tB8.js → components/p-Bx_0JeAb.js} +3 -4
  198. package/components/p-Bx_0JeAb.js.map +1 -0
  199. package/{dist/components/p-kd43PSY6.js → components/p-C0fcjlnS.js} +4 -5
  200. package/components/p-C0fcjlnS.js.map +1 -0
  201. package/{dist/components/p-CMomxDPL.js → components/p-CMoGgYqw.js} +3 -4
  202. package/components/p-CMoGgYqw.js.map +1 -0
  203. package/{dist/components/p-CK89kJIU.js → components/p-CUWjjZT-.js} +3 -4
  204. package/components/p-CUWjjZT-.js.map +1 -0
  205. package/{dist/components/p-uG5vRdFz.js → components/p-C_wf2KGn.js} +4 -5
  206. package/components/p-C_wf2KGn.js.map +1 -0
  207. package/{dist/components/p-BaLh9-zk.js → components/p-CdwyUif-.js} +3 -4
  208. package/components/p-CdwyUif-.js.map +1 -0
  209. package/{dist/components/p-BZELvMID.js → components/p-Cmo_S3fO.js} +5 -6
  210. package/components/p-Cmo_S3fO.js.map +1 -0
  211. package/{dist/components/p-C69LfZib.js → components/p-D0Ba0gOA.js} +5 -6
  212. package/components/p-D0Ba0gOA.js.map +1 -0
  213. package/{dist/components/p-CePuvH9t.js → components/p-D3FuyNC4.js} +7 -8
  214. package/components/p-D3FuyNC4.js.map +1 -0
  215. package/{dist/components/p-DAp7fLS-.js → components/p-D9aamyuM.js} +5 -6
  216. package/components/p-D9aamyuM.js.map +1 -0
  217. package/{dist/components/p-BpXkE6y8.js → components/p-DO_g_QMm.js} +3 -4
  218. package/components/p-DO_g_QMm.js.map +1 -0
  219. package/{dist/components/p-DIeMf4U9.js → components/p-DYC2IZEs.js} +8 -9
  220. package/components/p-DYC2IZEs.js.map +1 -0
  221. package/{dist/components/p-DufL1yr4.js → components/p-Df8KgHhe.js} +4 -5
  222. package/components/p-Df8KgHhe.js.map +1 -0
  223. package/{dist/components/p-D6w8lxZi.js → components/p-Do29ZTL9.js} +3 -4
  224. package/components/p-Do29ZTL9.js.map +1 -0
  225. package/{dist/components/p-DcoR-p0a.js → components/p-DxNNy00t.js} +3 -4
  226. package/components/p-DxNNy00t.js.map +1 -0
  227. package/{dist/components/p-SkkbcLa0.js → components/p-Npcwl1Z8.js} +3 -4
  228. package/components/p-Npcwl1Z8.js.map +1 -0
  229. package/{dist/components/p-DkGh2r0W.js → components/p-S3PEg8gv.js} +3 -4
  230. package/components/p-S3PEg8gv.js.map +1 -0
  231. package/{dist/components/p-CbeeTFys.js → components/p-WibqGBGu.js} +3 -4
  232. package/components/p-WibqGBGu.js.map +1 -0
  233. package/{dist/components/p-DQUicoqi.js → components/p-h6juyPoa.js} +3 -4
  234. package/components/p-h6juyPoa.js.map +1 -0
  235. package/{dist/components/p-C97e5uAI.js → components/p-u2N2FclB.js} +4 -5
  236. package/components/p-u2N2FclB.js.map +1 -0
  237. package/{dist/components/p-B2edfvL2.js → components/p-wPu4WTba.js} +3 -4
  238. package/components/p-wPu4WTba.js.map +1 -0
  239. package/dist/bellhop-core/bellhop-core.esm.js +1 -1
  240. package/dist/bellhop-core/index.esm.js +1 -1
  241. package/dist/bellhop-core/{p-2c796978.entry.js → p-07c9b7fa.entry.js} +2 -2
  242. package/dist/bellhop-core/{p-496fca9b.entry.js → p-091171da.entry.js} +2 -2
  243. package/dist/bellhop-core/{p-03e93cd8.entry.js → p-09a50860.entry.js} +2 -2
  244. package/dist/bellhop-core/{p-3719852a.entry.js → p-0e34250c.entry.js} +2 -2
  245. package/dist/bellhop-core/{p-cdd593fb.entry.js → p-11a6e5fc.entry.js} +2 -2
  246. package/dist/bellhop-core/{p-870fc023.entry.js → p-1540001e.entry.js} +2 -2
  247. package/dist/bellhop-core/{p-09f3464e.entry.js → p-1b670545.entry.js} +2 -2
  248. package/dist/bellhop-core/{p-8981025c.entry.js → p-1be3e908.entry.js} +2 -2
  249. package/dist/bellhop-core/{p-e86780b6.entry.js → p-21bc4f77.entry.js} +2 -2
  250. package/dist/bellhop-core/{p-2310cb6e.entry.js → p-233540f9.entry.js} +3 -3
  251. package/dist/bellhop-core/{p-0438e0a9.entry.js → p-272afebb.entry.js} +2 -2
  252. package/dist/bellhop-core/{p-860be0be.entry.js → p-2db7990e.entry.js} +2 -2
  253. package/dist/bellhop-core/{p-10967cab.entry.js → p-3194a87d.entry.js} +2 -2
  254. package/dist/bellhop-core/{p-e99bc91a.entry.js → p-3255019b.entry.js} +2 -2
  255. package/dist/bellhop-core/{p-56b857f5.entry.js → p-36166900.entry.js} +2 -2
  256. package/dist/bellhop-core/{p-686dea4a.entry.js → p-3a1c52a9.entry.js} +2 -2
  257. package/dist/bellhop-core/{p-58879213.entry.js → p-43c41dfb.entry.js} +2 -2
  258. package/dist/bellhop-core/{p-dcaa20e2.entry.js → p-442121f3.entry.js} +2 -2
  259. package/dist/bellhop-core/{p-4a14cbb5.entry.js → p-49edd1bb.entry.js} +2 -2
  260. package/dist/bellhop-core/{p-20d680ce.entry.js → p-4a8844ff.entry.js} +2 -2
  261. package/dist/bellhop-core/{p-f6e1b47c.entry.js → p-4e483d25.entry.js} +2 -2
  262. package/dist/bellhop-core/{p-b546cd23.entry.js → p-5514d7fb.entry.js} +2 -2
  263. package/dist/bellhop-core/{p-5760ce66.entry.js → p-5c4f74b8.entry.js} +2 -2
  264. package/dist/bellhop-core/{p-90b9047d.entry.js → p-5f92cb28.entry.js} +2 -2
  265. package/dist/bellhop-core/{p-e190ac50.entry.js → p-62235d6e.entry.js} +2 -2
  266. package/dist/bellhop-core/{p-f7c7416d.entry.js → p-67956598.entry.js} +2 -2
  267. package/dist/bellhop-core/{p-d4bfd30d.entry.js → p-6bc81ebb.entry.js} +2 -2
  268. package/dist/bellhop-core/{p-c8fb7f34.entry.js → p-6e8dd0f7.entry.js} +2 -2
  269. package/dist/bellhop-core/{p-abe24947.entry.js → p-7a85db89.entry.js} +2 -2
  270. package/dist/bellhop-core/{p-87fb26a0.entry.js → p-7b0cba50.entry.js} +2 -2
  271. package/dist/bellhop-core/{p-363dce47.entry.js → p-80e07b3d.entry.js} +2 -2
  272. package/dist/bellhop-core/{p-ef47dcd1.entry.js → p-83443918.entry.js} +2 -2
  273. package/dist/bellhop-core/{p-859f45da.entry.js → p-8962e1a6.entry.js} +2 -2
  274. package/dist/bellhop-core/{p-70ee270c.entry.js → p-8bf6364f.entry.js} +2 -2
  275. package/dist/bellhop-core/{p-e9ed7c17.entry.js → p-8cd61bd8.entry.js} +2 -2
  276. package/dist/bellhop-core/{p-5ab50add.entry.js → p-9a19cbf7.entry.js} +2 -2
  277. package/dist/bellhop-core/{p-239c7e6b.entry.js → p-9bf79c21.entry.js} +2 -2
  278. package/dist/bellhop-core/{p-DshiN5nT.js → p-CSYwm_Ke.js} +2 -2
  279. package/dist/bellhop-core/{p-DshiN5nT.js.map → p-CSYwm_Ke.js.map} +1 -1
  280. package/dist/bellhop-core/{p-CIj6YHfo.js → p-Ck1gRAmI.js} +2 -2
  281. package/dist/bellhop-core/{p-CIj6YHfo.js.map → p-Ck1gRAmI.js.map} +1 -1
  282. package/dist/bellhop-core/{p-I9CPXdBF.js → p-DY76Ee-p.js} +2 -2
  283. package/dist/bellhop-core/{p-I9CPXdBF.js.map → p-DY76Ee-p.js.map} +1 -1
  284. package/dist/bellhop-core/{p-6433b0a7.entry.js → p-a30e22f7.entry.js} +2 -2
  285. package/dist/bellhop-core/{p-086e8c86.entry.js → p-a41b3673.entry.js} +2 -2
  286. package/dist/bellhop-core/{p-b7801d25.entry.js → p-a42e8ddb.entry.js} +2 -2
  287. package/dist/bellhop-core/{p-67452ed0.entry.js → p-afd85291.entry.js} +2 -2
  288. package/dist/bellhop-core/{p-356a2ed7.entry.js → p-b0dda4df.entry.js} +2 -2
  289. package/dist/bellhop-core/{p-ab9c5351.entry.js → p-b878539a.entry.js} +2 -2
  290. package/dist/bellhop-core/{p-69f85850.entry.js → p-bd00d5ad.entry.js} +2 -2
  291. package/dist/bellhop-core/{p-b1cb34e9.entry.js → p-c0e36166.entry.js} +2 -2
  292. package/dist/bellhop-core/{p-ab2b037c.entry.js → p-c33f6e73.entry.js} +2 -2
  293. package/dist/bellhop-core/{p-44241bad.entry.js → p-c70d11a2.entry.js} +2 -2
  294. package/dist/bellhop-core/{p-94d2d599.entry.js → p-c9ac177b.entry.js} +2 -2
  295. package/dist/bellhop-core/{p-9a585c1a.entry.js → p-c9f7d922.entry.js} +2 -2
  296. package/dist/bellhop-core/{p-adcd2e15.entry.js → p-cf412873.entry.js} +2 -2
  297. package/dist/bellhop-core/{p-afd0e309.entry.js → p-d5bf49ab.entry.js} +2 -2
  298. package/dist/bellhop-core/{p-f5468da0.entry.js → p-defe9916.entry.js} +2 -2
  299. package/dist/bellhop-core/{p-23b74b40.entry.js → p-df4498cd.entry.js} +2 -2
  300. package/dist/bellhop-core/{p-57ac382d.entry.js → p-efd3dfed.entry.js} +2 -2
  301. package/dist/bellhop-core/{p-52e877e0.entry.js → p-f85a9eaa.entry.js} +2 -2
  302. package/dist/bellhop-core/{p-dd43d560.entry.js → p-ffb29d95.entry.js} +2 -2
  303. package/dist/bellhop-core/p-nAAobRRQ.js +3 -0
  304. package/dist/bellhop-core/p-nAAobRRQ.js.map +1 -0
  305. package/dist/cjs/bellhop-core.cjs.js +1 -1
  306. package/dist/cjs/bh-accordion-item.cjs.entry.js +1 -1
  307. package/dist/cjs/bh-accordion.cjs.entry.js +1 -1
  308. package/dist/cjs/bh-appbar.cjs.entry.js +1 -1
  309. package/dist/cjs/bh-autocomplete-menu_2.cjs.entry.js +1 -1
  310. package/dist/cjs/bh-avatar-add.cjs.entry.js +1 -1
  311. package/dist/cjs/bh-avatar-stacked.cjs.entry.js +1 -1
  312. package/dist/cjs/bh-avatar.cjs.entry.js +1 -1
  313. package/dist/cjs/bh-badge-dot_2.cjs.entry.js +1 -1
  314. package/dist/cjs/bh-badge.cjs.entry.js +1 -1
  315. package/dist/cjs/bh-bar-chart.cjs.entry.js +1 -1
  316. package/dist/cjs/{bh-button-CKYE8jYL.js → bh-button-DD0c0ODJ.js} +3 -3
  317. package/dist/cjs/{bh-button-CKYE8jYL.js.map → bh-button-DD0c0ODJ.js.map} +1 -1
  318. package/dist/cjs/bh-button-icon.cjs.entry.js +1 -1
  319. package/dist/cjs/bh-button_2.cjs.entry.js +2 -2
  320. package/dist/cjs/bh-card-footer.cjs.entry.js +1 -1
  321. package/dist/cjs/bh-card-header.cjs.entry.js +1 -1
  322. package/dist/cjs/bh-card.cjs.entry.js +1 -1
  323. package/dist/cjs/bh-chart-tooltip.cjs.entry.js +1 -1
  324. package/dist/cjs/bh-checkbox-group-item.cjs.entry.js +1 -1
  325. package/dist/cjs/bh-checkbox-group.cjs.entry.js +1 -1
  326. package/dist/cjs/bh-checkbox_2.cjs.entry.js +1 -1
  327. package/dist/cjs/bh-container-footer.cjs.entry.js +1 -1
  328. package/dist/cjs/bh-container.cjs.entry.js +1 -1
  329. package/dist/cjs/bh-data-grid.cjs.entry.js +1 -1
  330. package/dist/cjs/bh-date-picker-content.cjs.entry.js +1 -1
  331. package/dist/cjs/bh-date-picker.cjs.entry.js +1 -1
  332. package/dist/cjs/bh-date-range-picker-content.cjs.entry.js +1 -1
  333. package/dist/cjs/bh-date-range-picker.cjs.entry.js +1 -1
  334. package/dist/cjs/bh-dropdown-menu.cjs.entry.js +1 -1
  335. package/dist/cjs/bh-dropdown_3.cjs.entry.js +1 -1
  336. package/dist/cjs/bh-empty-state_3.cjs.entry.js +2 -2
  337. package/dist/cjs/bh-featured-icon.cjs.entry.js +1 -1
  338. package/dist/cjs/bh-illustrations.cjs.entry.js +1 -1
  339. package/dist/cjs/bh-input-autocomplete.cjs.entry.js +1 -1
  340. package/dist/cjs/bh-input-number.cjs.entry.js +1 -1
  341. package/dist/cjs/bh-input-password.cjs.entry.js +1 -1
  342. package/dist/cjs/bh-input-text_2.cjs.entry.js +1 -1
  343. package/dist/cjs/bh-input-verification.cjs.entry.js +1 -1
  344. package/dist/cjs/{bh-label-DRC8k-B9.js → bh-label-MpXjm9k0.js} +3 -3
  345. package/dist/cjs/{bh-label-DRC8k-B9.js.map → bh-label-MpXjm9k0.js.map} +1 -1
  346. package/dist/cjs/bh-label_2.cjs.entry.js +2 -2
  347. package/dist/cjs/bh-modal-actions.cjs.entry.js +1 -1
  348. package/dist/cjs/bh-modal-header.cjs.entry.js +1 -1
  349. package/dist/cjs/bh-modal.cjs.entry.js +1 -1
  350. package/dist/cjs/bh-month-picker-content.cjs.entry.js +1 -1
  351. package/dist/cjs/bh-month-picker.cjs.entry.js +1 -1
  352. package/dist/cjs/bh-notification.cjs.entry.js +1 -1
  353. package/dist/cjs/bh-page-navigation-child.cjs.entry.js +1 -1
  354. package/dist/cjs/bh-page-navigation-multi-level_2.cjs.entry.js +1 -1
  355. package/dist/cjs/bh-page-navigation.cjs.entry.js +1 -1
  356. package/dist/cjs/{bh-pagination-BJ1azyCc.js → bh-pagination-CgER63yz.js} +3 -3
  357. package/dist/cjs/{bh-pagination-BJ1azyCc.js.map → bh-pagination-CgER63yz.js.map} +1 -1
  358. package/dist/cjs/bh-pie-chart.cjs.entry.js +1 -1
  359. package/dist/cjs/bh-popover.cjs.entry.js +1 -1
  360. package/dist/cjs/bh-product-switcher.cjs.entry.js +1 -1
  361. package/dist/cjs/bh-property-switcher.cjs.entry.js +1 -1
  362. package/dist/cjs/bh-sidebar.cjs.entry.js +1 -1
  363. package/dist/cjs/bh-tab-item.cjs.entry.js +1 -1
  364. package/dist/cjs/bh-tabs.cjs.entry.js +1 -1
  365. package/dist/cjs/bh-textarea.cjs.entry.js +1 -1
  366. package/dist/cjs/bh-toggle.cjs.entry.js +1 -1
  367. package/dist/cjs/bh-trend-chart.cjs.entry.js +1 -1
  368. package/dist/cjs/{index-BVJ_Kket.js → index-DQwSUT6k.js} +666 -9
  369. package/dist/cjs/index-DQwSUT6k.js.map +1 -0
  370. package/dist/cjs/index.cjs.js +4 -4
  371. package/dist/cjs/loader.cjs.js +1 -1
  372. package/dist/esm/bellhop-core.js +2 -2
  373. package/dist/esm/bh-accordion-item.entry.js +1 -1
  374. package/dist/esm/bh-accordion.entry.js +1 -1
  375. package/dist/esm/bh-appbar.entry.js +1 -1
  376. package/dist/esm/bh-autocomplete-menu_2.entry.js +1 -1
  377. package/dist/esm/bh-avatar-add.entry.js +1 -1
  378. package/dist/esm/bh-avatar-stacked.entry.js +1 -1
  379. package/dist/esm/bh-avatar.entry.js +1 -1
  380. package/dist/esm/bh-badge-dot_2.entry.js +1 -1
  381. package/dist/esm/bh-badge.entry.js +1 -1
  382. package/dist/esm/bh-bar-chart.entry.js +1 -1
  383. package/dist/esm/{bh-button-n5gkWRSP.js → bh-button-ImGVvXaj.js} +3 -3
  384. package/dist/esm/{bh-button-n5gkWRSP.js.map → bh-button-ImGVvXaj.js.map} +1 -1
  385. package/dist/esm/bh-button-icon.entry.js +1 -1
  386. package/dist/esm/bh-button_2.entry.js +2 -2
  387. package/dist/esm/bh-card-footer.entry.js +1 -1
  388. package/dist/esm/bh-card-header.entry.js +1 -1
  389. package/dist/esm/bh-card.entry.js +1 -1
  390. package/dist/esm/bh-chart-tooltip.entry.js +1 -1
  391. package/dist/esm/bh-checkbox-group-item.entry.js +1 -1
  392. package/dist/esm/bh-checkbox-group.entry.js +1 -1
  393. package/dist/esm/bh-checkbox_2.entry.js +1 -1
  394. package/dist/esm/bh-container-footer.entry.js +1 -1
  395. package/dist/esm/bh-container.entry.js +1 -1
  396. package/dist/esm/bh-data-grid.entry.js +1 -1
  397. package/dist/esm/bh-date-picker-content.entry.js +1 -1
  398. package/dist/esm/bh-date-picker.entry.js +1 -1
  399. package/dist/esm/bh-date-range-picker-content.entry.js +1 -1
  400. package/dist/esm/bh-date-range-picker.entry.js +1 -1
  401. package/dist/esm/bh-dropdown-menu.entry.js +1 -1
  402. package/dist/esm/bh-dropdown_3.entry.js +1 -1
  403. package/dist/esm/bh-empty-state_3.entry.js +2 -2
  404. package/dist/esm/bh-featured-icon.entry.js +1 -1
  405. package/dist/esm/bh-illustrations.entry.js +1 -1
  406. package/dist/esm/bh-input-autocomplete.entry.js +1 -1
  407. package/dist/esm/bh-input-number.entry.js +1 -1
  408. package/dist/esm/bh-input-password.entry.js +1 -1
  409. package/dist/esm/bh-input-text_2.entry.js +1 -1
  410. package/dist/esm/bh-input-verification.entry.js +1 -1
  411. package/dist/esm/{bh-label-fV57YpXm.js → bh-label-PLT7t4We.js} +3 -3
  412. package/dist/esm/{bh-label-fV57YpXm.js.map → bh-label-PLT7t4We.js.map} +1 -1
  413. package/dist/esm/bh-label_2.entry.js +2 -2
  414. package/dist/esm/bh-modal-actions.entry.js +1 -1
  415. package/dist/esm/bh-modal-header.entry.js +1 -1
  416. package/dist/esm/bh-modal.entry.js +1 -1
  417. package/dist/esm/bh-month-picker-content.entry.js +1 -1
  418. package/dist/esm/bh-month-picker.entry.js +1 -1
  419. package/dist/esm/bh-notification.entry.js +1 -1
  420. package/dist/esm/bh-page-navigation-child.entry.js +1 -1
  421. package/dist/esm/bh-page-navigation-multi-level_2.entry.js +1 -1
  422. package/dist/esm/bh-page-navigation.entry.js +1 -1
  423. package/dist/esm/{bh-pagination-BtbbslVs.js → bh-pagination-CUeRSYsV.js} +3 -3
  424. package/dist/esm/{bh-pagination-BtbbslVs.js.map → bh-pagination-CUeRSYsV.js.map} +1 -1
  425. package/dist/esm/bh-pie-chart.entry.js +1 -1
  426. package/dist/esm/bh-popover.entry.js +1 -1
  427. package/dist/esm/bh-product-switcher.entry.js +1 -1
  428. package/dist/esm/bh-property-switcher.entry.js +1 -1
  429. package/dist/esm/bh-sidebar.entry.js +1 -1
  430. package/dist/esm/bh-tab-item.entry.js +1 -1
  431. package/dist/esm/bh-tabs.entry.js +1 -1
  432. package/dist/esm/bh-textarea.entry.js +1 -1
  433. package/dist/esm/bh-toggle.entry.js +1 -1
  434. package/dist/esm/bh-trend-chart.entry.js +1 -1
  435. package/dist/esm/{index-DXAL-jSE.js → index-nAAobRRQ.js} +666 -9
  436. package/dist/esm/index-nAAobRRQ.js.map +1 -0
  437. package/dist/esm/index.js +4 -4
  438. package/dist/esm/loader.js +2 -2
  439. package/hydrate/index.d.ts +275 -0
  440. package/hydrate/index.js +33803 -0
  441. package/hydrate/index.mjs +33795 -0
  442. package/hydrate/package.json +12 -0
  443. package/llms.txt +41649 -0
  444. package/package.json +22 -11
  445. package/react.d.ts +253 -0
  446. package/dist/bellhop-core/p-DXAL-jSE.js +0 -3
  447. package/dist/bellhop-core/p-DXAL-jSE.js.map +0 -1
  448. package/dist/cjs/index-BVJ_Kket.js.map +0 -1
  449. package/dist/components/bh-accordion-item.js.map +0 -1
  450. package/dist/components/bh-accordion.js.map +0 -1
  451. package/dist/components/bh-appbar.js.map +0 -1
  452. package/dist/components/bh-avatar-stacked.js.map +0 -1
  453. package/dist/components/bh-bar-chart.js.map +0 -1
  454. package/dist/components/bh-card-footer.js +0 -9
  455. package/dist/components/bh-card-footer.js.map +0 -1
  456. package/dist/components/bh-card-header.js +0 -9
  457. package/dist/components/bh-card-header.js.map +0 -1
  458. package/dist/components/bh-card.js +0 -9
  459. package/dist/components/bh-card.js.map +0 -1
  460. package/dist/components/bh-checkbox-group-item.js +0 -9
  461. package/dist/components/bh-checkbox-group-item.js.map +0 -1
  462. package/dist/components/bh-checkbox-group.js +0 -9
  463. package/dist/components/bh-checkbox-group.js.map +0 -1
  464. package/dist/components/bh-container-footer.js.map +0 -1
  465. package/dist/components/bh-container.js.map +0 -1
  466. package/dist/components/bh-data-grid.js +0 -9
  467. package/dist/components/bh-data-grid.js.map +0 -1
  468. package/dist/components/bh-date-picker.js.map +0 -1
  469. package/dist/components/bh-date-range-picker.js.map +0 -1
  470. package/dist/components/bh-illustrations.js.map +0 -1
  471. package/dist/components/bh-input-autocomplete.js.map +0 -1
  472. package/dist/components/bh-input-number.js.map +0 -1
  473. package/dist/components/bh-input-password.js.map +0 -1
  474. package/dist/components/bh-input-verification.js.map +0 -1
  475. package/dist/components/bh-modal-actions.js.map +0 -1
  476. package/dist/components/bh-modal-header.js.map +0 -1
  477. package/dist/components/bh-modal.js +0 -9
  478. package/dist/components/bh-modal.js.map +0 -1
  479. package/dist/components/bh-month-picker.js.map +0 -1
  480. package/dist/components/bh-notification.js.map +0 -1
  481. package/dist/components/bh-page-navigation.js.map +0 -1
  482. package/dist/components/bh-pie-chart.js.map +0 -1
  483. package/dist/components/bh-popover.js.map +0 -1
  484. package/dist/components/bh-property-switcher.js.map +0 -1
  485. package/dist/components/bh-sidebar.js.map +0 -1
  486. package/dist/components/bh-tab-item.js.map +0 -1
  487. package/dist/components/bh-tabs.js.map +0 -1
  488. package/dist/components/bh-textarea.js.map +0 -1
  489. package/dist/components/bh-toggle.js +0 -9
  490. package/dist/components/bh-toggle.js.map +0 -1
  491. package/dist/components/bh-trend-chart.js.map +0 -1
  492. package/dist/components/index.d.ts +0 -33
  493. package/dist/components/index.js +0 -17
  494. package/dist/components/index.js.map +0 -1
  495. package/dist/components/p-5LJWVh2v.js.map +0 -1
  496. package/dist/components/p-B2edfvL2.js.map +0 -1
  497. package/dist/components/p-B7eVYv2t.js.map +0 -1
  498. package/dist/components/p-B8MWhPHT.js.map +0 -1
  499. package/dist/components/p-BFhwq3_y.js.map +0 -1
  500. package/dist/components/p-BNeBcvHu.js.map +0 -1
  501. package/dist/components/p-BOk69MBi.js.map +0 -1
  502. package/dist/components/p-BZELvMID.js.map +0 -1
  503. package/dist/components/p-BaLh9-zk.js.map +0 -1
  504. package/dist/components/p-BpXkE6y8.js.map +0 -1
  505. package/dist/components/p-Bs2Z3XIQ.js.map +0 -1
  506. package/dist/components/p-C69LfZib.js.map +0 -1
  507. package/dist/components/p-C97e5uAI.js.map +0 -1
  508. package/dist/components/p-CK89kJIU.js.map +0 -1
  509. package/dist/components/p-CMomxDPL.js.map +0 -1
  510. package/dist/components/p-CWGpUs1b.js.map +0 -1
  511. package/dist/components/p-CbeeTFys.js.map +0 -1
  512. package/dist/components/p-Ccq-Rk5W.js.map +0 -1
  513. package/dist/components/p-CePuvH9t.js.map +0 -1
  514. package/dist/components/p-ChfLhYiJ.js.map +0 -1
  515. package/dist/components/p-Cu6Uuaq7.js.map +0 -1
  516. package/dist/components/p-D-RHfFhc.js.map +0 -1
  517. package/dist/components/p-D6w8lxZi.js.map +0 -1
  518. package/dist/components/p-DAp7fLS-.js.map +0 -1
  519. package/dist/components/p-DIeMf4U9.js.map +0 -1
  520. package/dist/components/p-DK92X9HV.js.map +0 -1
  521. package/dist/components/p-DOaC_o63.js.map +0 -1
  522. package/dist/components/p-DQUicoqi.js.map +0 -1
  523. package/dist/components/p-DURWm67o.js.map +0 -1
  524. package/dist/components/p-DW54267I.js.map +0 -1
  525. package/dist/components/p-DcoR-p0a.js.map +0 -1
  526. package/dist/components/p-Df5drD7C.js.map +0 -1
  527. package/dist/components/p-DkGh2r0W.js.map +0 -1
  528. package/dist/components/p-Dm3E-tB8.js.map +0 -1
  529. package/dist/components/p-DsCDXclM.js.map +0 -1
  530. package/dist/components/p-DtbXB8r4.js.map +0 -1
  531. package/dist/components/p-DufL1yr4.js.map +0 -1
  532. package/dist/components/p-SkkbcLa0.js.map +0 -1
  533. package/dist/components/p-dlKpBGSA.js.map +0 -1
  534. package/dist/components/p-kd43PSY6.js.map +0 -1
  535. package/dist/components/p-uG5vRdFz.js.map +0 -1
  536. package/dist/esm/index-DXAL-jSE.js.map +0 -1
  537. /package/{dist/components → components}/bh-autocomplete-menu.js.map +0 -0
  538. /package/{dist/components → components}/bh-avatar-add.js.map +0 -0
  539. /package/{dist/components → components}/bh-avatar.js.map +0 -0
  540. /package/{dist/components → components}/bh-badge-dot.js.map +0 -0
  541. /package/{dist/components → components}/bh-badge.js.map +0 -0
  542. /package/{dist/components → components}/bh-breadcrumbs.js.map +0 -0
  543. /package/{dist/components → components}/bh-button-icon.js.map +0 -0
  544. /package/{dist/components → components}/bh-button.js.map +0 -0
  545. /package/{dist/components → components}/bh-chart-tooltip.js.map +0 -0
  546. /package/{dist/components → components}/bh-checkbox.js.map +0 -0
  547. /package/{dist/components → components}/bh-date-picker-content.js.map +0 -0
  548. /package/{dist/components → components}/bh-date-range-picker-content.js.map +0 -0
  549. /package/{dist/components → components}/bh-dropdown-menu.js.map +0 -0
  550. /package/{dist/components → components}/bh-dropdown.js.map +0 -0
  551. /package/{dist/components → components}/bh-empty-state.js.map +0 -0
  552. /package/{dist/components → components}/bh-featured-icon.js.map +0 -0
  553. /package/{dist/components → components}/bh-input-text.js.map +0 -0
  554. /package/{dist/components → components}/bh-label.js.map +0 -0
  555. /package/{dist/components → components}/bh-loader-spinner.js.map +0 -0
  556. /package/{dist/components → components}/bh-logo-box.js.map +0 -0
  557. /package/{dist/components → components}/bh-month-picker-content.js.map +0 -0
  558. /package/{dist/components → components}/bh-nav-item.js.map +0 -0
  559. /package/{dist/components → components}/bh-page-navigation-child.js.map +0 -0
  560. /package/{dist/components → components}/bh-page-navigation-multi-level.js.map +0 -0
  561. /package/{dist/components → components}/bh-page-navigation-single-level.js.map +0 -0
  562. /package/{dist/components → components}/bh-pagination.js.map +0 -0
  563. /package/{dist/components → components}/bh-picker-menu.js.map +0 -0
  564. /package/{dist/components → components}/bh-product-switcher.js.map +0 -0
  565. /package/{dist/components → components}/bh-radio-button.js.map +0 -0
  566. /package/{dist/components → components}/bh-skeleton-loader.js.map +0 -0
  567. /package/{dist/components → components}/bh-tag.js.map +0 -0
  568. /package/{dist/components → components}/bh-tooltip.js.map +0 -0
  569. /package/{dist/components → components}/p-2KjdCYlS.js +0 -0
  570. /package/{dist/components → components}/p-2KjdCYlS.js.map +0 -0
  571. /package/dist/bellhop-core/{p-2c796978.entry.js.map → p-07c9b7fa.entry.js.map} +0 -0
  572. /package/dist/bellhop-core/{p-496fca9b.entry.js.map → p-091171da.entry.js.map} +0 -0
  573. /package/dist/bellhop-core/{p-03e93cd8.entry.js.map → p-09a50860.entry.js.map} +0 -0
  574. /package/dist/bellhop-core/{p-3719852a.entry.js.map → p-0e34250c.entry.js.map} +0 -0
  575. /package/dist/bellhop-core/{p-cdd593fb.entry.js.map → p-11a6e5fc.entry.js.map} +0 -0
  576. /package/dist/bellhop-core/{p-870fc023.entry.js.map → p-1540001e.entry.js.map} +0 -0
  577. /package/dist/bellhop-core/{p-09f3464e.entry.js.map → p-1b670545.entry.js.map} +0 -0
  578. /package/dist/bellhop-core/{p-8981025c.entry.js.map → p-1be3e908.entry.js.map} +0 -0
  579. /package/dist/bellhop-core/{p-e86780b6.entry.js.map → p-21bc4f77.entry.js.map} +0 -0
  580. /package/dist/bellhop-core/{p-2310cb6e.entry.js.map → p-233540f9.entry.js.map} +0 -0
  581. /package/dist/bellhop-core/{p-0438e0a9.entry.js.map → p-272afebb.entry.js.map} +0 -0
  582. /package/dist/bellhop-core/{p-860be0be.entry.js.map → p-2db7990e.entry.js.map} +0 -0
  583. /package/dist/bellhop-core/{p-10967cab.entry.js.map → p-3194a87d.entry.js.map} +0 -0
  584. /package/dist/bellhop-core/{p-e99bc91a.entry.js.map → p-3255019b.entry.js.map} +0 -0
  585. /package/dist/bellhop-core/{p-56b857f5.entry.js.map → p-36166900.entry.js.map} +0 -0
  586. /package/dist/bellhop-core/{p-686dea4a.entry.js.map → p-3a1c52a9.entry.js.map} +0 -0
  587. /package/dist/bellhop-core/{p-58879213.entry.js.map → p-43c41dfb.entry.js.map} +0 -0
  588. /package/dist/bellhop-core/{p-dcaa20e2.entry.js.map → p-442121f3.entry.js.map} +0 -0
  589. /package/dist/bellhop-core/{p-4a14cbb5.entry.js.map → p-49edd1bb.entry.js.map} +0 -0
  590. /package/dist/bellhop-core/{p-20d680ce.entry.js.map → p-4a8844ff.entry.js.map} +0 -0
  591. /package/dist/bellhop-core/{p-f6e1b47c.entry.js.map → p-4e483d25.entry.js.map} +0 -0
  592. /package/dist/bellhop-core/{p-b546cd23.entry.js.map → p-5514d7fb.entry.js.map} +0 -0
  593. /package/dist/bellhop-core/{p-5760ce66.entry.js.map → p-5c4f74b8.entry.js.map} +0 -0
  594. /package/dist/bellhop-core/{p-90b9047d.entry.js.map → p-5f92cb28.entry.js.map} +0 -0
  595. /package/dist/bellhop-core/{p-e190ac50.entry.js.map → p-62235d6e.entry.js.map} +0 -0
  596. /package/dist/bellhop-core/{p-f7c7416d.entry.js.map → p-67956598.entry.js.map} +0 -0
  597. /package/dist/bellhop-core/{p-d4bfd30d.entry.js.map → p-6bc81ebb.entry.js.map} +0 -0
  598. /package/dist/bellhop-core/{p-c8fb7f34.entry.js.map → p-6e8dd0f7.entry.js.map} +0 -0
  599. /package/dist/bellhop-core/{p-abe24947.entry.js.map → p-7a85db89.entry.js.map} +0 -0
  600. /package/dist/bellhop-core/{p-87fb26a0.entry.js.map → p-7b0cba50.entry.js.map} +0 -0
  601. /package/dist/bellhop-core/{p-363dce47.entry.js.map → p-80e07b3d.entry.js.map} +0 -0
  602. /package/dist/bellhop-core/{p-ef47dcd1.entry.js.map → p-83443918.entry.js.map} +0 -0
  603. /package/dist/bellhop-core/{p-859f45da.entry.js.map → p-8962e1a6.entry.js.map} +0 -0
  604. /package/dist/bellhop-core/{p-70ee270c.entry.js.map → p-8bf6364f.entry.js.map} +0 -0
  605. /package/dist/bellhop-core/{p-e9ed7c17.entry.js.map → p-8cd61bd8.entry.js.map} +0 -0
  606. /package/dist/bellhop-core/{p-5ab50add.entry.js.map → p-9a19cbf7.entry.js.map} +0 -0
  607. /package/dist/bellhop-core/{p-239c7e6b.entry.js.map → p-9bf79c21.entry.js.map} +0 -0
  608. /package/dist/bellhop-core/{p-6433b0a7.entry.js.map → p-a30e22f7.entry.js.map} +0 -0
  609. /package/dist/bellhop-core/{p-086e8c86.entry.js.map → p-a41b3673.entry.js.map} +0 -0
  610. /package/dist/bellhop-core/{p-b7801d25.entry.js.map → p-a42e8ddb.entry.js.map} +0 -0
  611. /package/dist/bellhop-core/{p-67452ed0.entry.js.map → p-afd85291.entry.js.map} +0 -0
  612. /package/dist/bellhop-core/{p-356a2ed7.entry.js.map → p-b0dda4df.entry.js.map} +0 -0
  613. /package/dist/bellhop-core/{p-ab9c5351.entry.js.map → p-b878539a.entry.js.map} +0 -0
  614. /package/dist/bellhop-core/{p-69f85850.entry.js.map → p-bd00d5ad.entry.js.map} +0 -0
  615. /package/dist/bellhop-core/{p-b1cb34e9.entry.js.map → p-c0e36166.entry.js.map} +0 -0
  616. /package/dist/bellhop-core/{p-ab2b037c.entry.js.map → p-c33f6e73.entry.js.map} +0 -0
  617. /package/dist/bellhop-core/{p-44241bad.entry.js.map → p-c70d11a2.entry.js.map} +0 -0
  618. /package/dist/bellhop-core/{p-94d2d599.entry.js.map → p-c9ac177b.entry.js.map} +0 -0
  619. /package/dist/bellhop-core/{p-9a585c1a.entry.js.map → p-c9f7d922.entry.js.map} +0 -0
  620. /package/dist/bellhop-core/{p-adcd2e15.entry.js.map → p-cf412873.entry.js.map} +0 -0
  621. /package/dist/bellhop-core/{p-afd0e309.entry.js.map → p-d5bf49ab.entry.js.map} +0 -0
  622. /package/dist/bellhop-core/{p-f5468da0.entry.js.map → p-defe9916.entry.js.map} +0 -0
  623. /package/dist/bellhop-core/{p-23b74b40.entry.js.map → p-df4498cd.entry.js.map} +0 -0
  624. /package/dist/bellhop-core/{p-57ac382d.entry.js.map → p-efd3dfed.entry.js.map} +0 -0
  625. /package/dist/bellhop-core/{p-52e877e0.entry.js.map → p-f85a9eaa.entry.js.map} +0 -0
  626. /package/dist/bellhop-core/{p-dd43d560.entry.js.map → p-ffb29d95.entry.js.map} +0 -0
@@ -1 +0,0 @@
1
- {"file":"p-D6w8lxZi.js","mappings":";;AAAA,MAAM,8BAA8B,GAAG,4yJAA4yJ;;MCOt0J,2BAA2B,iBAAAA,kBAAA,CAAA,MAAA,2BAAA,SAAAC,CAAA,CAAA;;;;;;;;;AACtC;;AAEG;AACK,IAAA,KAAK;AAEb;;AAEG;IACK,IAAI,GAAW,wBAAwB;AAE/C;;AAEG;IACK,QAAQ,GAAY,KAAK;AAEjC;;AAEG;AACM,IAAA,WAAW;IAEZ,WAAW,GAAG,MAAK;AACzB,QAAA,IAAI,CAAC,WAAW,CAAC,IAAI,EAAE;AACzB,KAAC;IAEO,cAAc,GAAA;QACpB,OAAO;AACL,YAAA,8BAA8B,EAAE,IAAI;AACpC,YAAA,gCAAgC,EAAE,IAAI;YACtC,QAAQ,EAAE,IAAI,CAAC,QAAQ;SACxB;;IAGH,MAAM,GAAA;QACJ,QACE,EAAC,IAAI,EAAA,EAAA,GAAA,EAAA,0CAAA,EAAA,EACH,CAAA,CAAA,KAAA,EAAA,EAAA,GAAA,EAAA,0CAAA,EAAK,KAAK,EAAE,IAAI,CAAC,cAAc,EAAE,EAAE,OAAO,EAAE,MAAM,IAAI,CAAC,WAAW,EAAE,EAAA,EAClE,CAAK,CAAA,KAAA,EAAA,EAAA,GAAA,EAAA,0CAAA,EAAA,KAAK,EAAC,8BAA8B,EAAA,EACvC,CAAA,CAAA,MAAA,EAAA,EAAA,GAAA,EAAA,0CAAA,EAAM,KAAK,EAAC,qDAAqD,IAC9D,IAAI,CAAC,IAAI,CACL,EACP,CAAA,CAAA,MAAA,EAAA,EAAA,GAAA,EAAA,0CAAA,EAAM,KAAK,EAAC,4BAA4B,EAAA,EAAE,IAAI,CAAC,KAAK,CAAQ,CACxD,CACF,CACD;;;;;;;;;;;;;;;;;;;;;;;;;","names":["__stencil_proxyCustomElement","HTMLElement"],"sources":["src/components/bh-page-navigation-single-level/bh-page-navigation-single-level.css?tag=bh-page-navigation-single-level&encapsulation=shadow","src/components/bh-page-navigation-single-level/bh-page-navigation-single-level.tsx"],"sourcesContent":["/* ==========================================================================\n PAGE NAVIGATION COMPONENT - REACT IMPLEMENTATION\n Unified styles for page navigation matching Angular functionality\n ========================================================================== */\n\n/* Main Page Navigation Container */\n.page-navigation {\n width: 320px;\n min-width: 280px;\n background-color: var(--color-white);\n padding: var(--spacing-xl) var(--spacing-md);\n font-family: var(--font-inter);\n height: 100vh;\n overflow-y: auto;\n border-right: 1px solid var(--color-neutral-200);\n box-sizing: border-box;\n user-select: none;\n -webkit-user-select: none;\n -moz-user-select: none;\n -ms-user-select: none;\n}\n\n.page-navigation-header {\n margin-bottom: var(--spacing-3xl);\n}\n\n.page-navigation-title {\n font-size: var(--text-xl-size);\n font-weight: var(--weight-semibold);\n line-height: var(--text-xl-line);\n color: var(--color-neutral-900);\n padding: var(--spacing-none) var(--spacing-xl);\n margin: 0;\n}\n\n.page-navigation-list {\n display: flex;\n flex-direction: column;\n gap: var(--spacing-sm);\n}\n\n/* ==========================================================================\n SINGLE LEVEL NAVIGATION ITEMS\n ========================================================================== */\n\n.page-navigation-single-level {\n display: flex;\n align-items: center;\n padding: var(--spacing-lg);\n cursor: pointer;\n gap: var(--spacing-md);\n position: relative;\n transition: all 0.15s ease;\n min-height: 40px;\n max-height: 44px;\n box-sizing: border-box;\n border-radius: 6px;\n margin: var(--spacing-none) var(--spacing-xs);\n background-color: transparent;\n border: 1px solid transparent;\n}\n\n/* Active/Selected state for single level */\n.page-navigation-single-level.active {\n background-color: transparent;\n border: 1px solid transparent;\n}\n\n/* Hover state for single level */\n.page-navigation-single-level:hover {\n background-color: var(--color-neutral-50) !important;\n}\n\n/* ==========================================================================\n MULTI LEVEL NAVIGATION ITEMS\n ========================================================================== */\n\n.page-navigation-multi-level {\n margin: var(--spacing-none) var(--spacing-xs);\n}\n\n.page-navigation-multi-level-parent {\n display: flex;\n align-items: center;\n padding: var(--spacing-lg);\n cursor: pointer;\n gap: var(--spacing-md);\n position: relative;\n transition: all 0.15s ease;\n min-height: 40px;\n max-height: 44px;\n box-sizing: border-box;\n border-radius: var(--radius-sm);\n background-color: transparent;\n border: 1px solid transparent;\n}\n\n/* Has active child state */\n.page-navigation-multi-level.has-active-child .page-navigation-multi-level-parent {\n background-color: transparent;\n border: 1px solid transparent;\n}\n\n/* Hover state for multi level parent */\n.page-navigation-multi-level-parent:hover {\n background-color: var(--color-neutral-50) !important;\n}\n\n/* Children container with smooth animation */\n.page-navigation-children {\n margin-top: var(--spacing-xs);\n margin-bottom: var(--spacing-xs);\n position: relative;\n margin-left: var(--spacing-xl);\n display: flex;\n flex-direction: column;\n gap: var(--spacing-xs);\n /*overflow: hidden;*/\n max-height: 1000px;\n opacity: 1;\n transition: max-height 0.4s cubic-bezier(0.08, 0.52, 0.52, 1),\n opacity 0.4s cubic-bezier(0.08, 0.52, 0.52, 1),\n margin 0.4s cubic-bezier(0.08, 0.52, 0.52, 1);\n}\n\n.page-navigation-children.collapsed {\n max-height: 0;\n opacity: 0;\n margin-top: 0;\n margin-bottom: 0;\n}\n\n/* Vertical line indicator for children */\n.page-navigation-children::before {\n content: '';\n position: absolute;\n left: 0;\n top: -2px;\n height: calc(100% + 4px);\n width: 2px;\n background-color: var(--color-neutral-200);\n margin-left: var(--spacing-sm);\n z-index: 2;\n}\n\n/* ==========================================================================\n CHILD NAVIGATION ITEMS\n ========================================================================== */\n\n.page-navigation-child {\n display: flex;\n align-items: center;\n padding: var(--spacing-md) var(--spacing-lg);\n cursor: pointer;\n gap: var(--spacing-md);\n position: relative;\n transition: all 0.15s ease;\n min-height: 36px;\n box-sizing: border-box;\n border-radius: var(--radius-sm);\n margin: var(--spacing-none) var(--spacing-xs);\n background-color: transparent;\n border: 1px solid transparent;\n margin-left: 9px;\n}\n\n/* Hover state for child items */\n.page-navigation-child:hover:not(.active) {\n background-color: var(--color-neutral-50);\n position: relative;\n z-index: 1;\n}\n\n/* Hover overlay to cover the vertical line */\n.page-navigation-child:hover:not(.active)::after {\n content: '';\n position: absolute;\n left: -20px;\n top: 0;\n bottom: 0;\n width: 20px;\n background-color: var(--color-neutral-100);\n z-index: 1;\n border-radius: var(--radius-sm);\n}\n\n/* Active/Selected state for child items */\n.page-navigation-child.active {\n background-color: transparent;\n}\n\n/* Active line indicator for child items */\n.page-navigation-child.active::before {\n content: '';\n position: absolute;\n left: -4.5px;\n top: 50%;\n transform: translateY(-50%);\n width: 2px;\n height: 24px;\n background-color: var(--color-brand-600);\n z-index: 3;\n}\n\n/* ==========================================================================\n ITEM CONTENT AND COMMON ELEMENTS\n ========================================================================== */\n\n.page-navigation-item-content,\n.page-navigation-child-content {\n display: flex;\n align-items: center;\n gap: var(--spacing-md);\n width: 100%;\n}\n\n/* Icons */\n.page-navigation-item-icon {\n flex-shrink: 0;\n color: var(--color-neutral-600);\n font-size: 20px;\n width: 20px;\n height: 20px;\n transition: color 0.15s ease;\n}\n\n/* Smooth animation class for page navigation items */\n.page-navigation-animate-smooth {\n transform-origin: top center;\n transition: all var(--animation-duration-normal) var(--animation-ease-enter);\n}\n\n/* Chevron icon styling - separate from main icons */\n.page-navigation-chevron-icon {\n flex-shrink: 0;\n color: var(--color-neutral-600);\n font-size: 20px;\n width: 20px;\n height: 20px;\n transition: color 0.15s ease, transform var(--animation-duration-fast) var(--animation-ease-smooth);\n}\n\n/* Chevron rotation when expanded */\n.page-navigation-chevron-icon.expanded {\n transform: rotate(180deg);\n}\n\n/* Icon color changes for active states */\n.page-navigation-single-level.active .page-navigation-item-icon,\n.page-navigation-multi-level.has-active-child .page-navigation-item-icon {\n color: var(--color-neutral-900);\n}\n\n/* Labels */\n.page-navigation-item-label,\n.page-navigation-child-label {\n font-family: 'Inter', sans-serif;\n font-size: 14px;\n font-weight: 500;\n line-height: 20px;\n color: var(--color-neutral-600);\n flex: 1;\n transition: all 0.15s ease;\n}\n\n\n/* Label color and weight changes for active states */\n.page-navigation-single-level.active .page-navigation-item-label,\n.page-navigation-multi-level.has-active-child .page-navigation-item-label {\n color: var(--color-neutral-900);\n font-weight: 600;\n}\n\n.page-navigation-child.active .page-navigation-child-label {\n color: var(--color-brand-600);\n font-weight: 600;\n}\n\n/* Badges */\n.page-navigation-item-badge,\n.page-navigation-child-badge {\n margin-left: auto;\n}\n\n/* ==========================================================================\n RESPONSIVE DESIGN\n ========================================================================== */\n\n@media (max-width: 768px) {\n .page-navigation {\n width: 280px;\n min-width: 280px;\n }\n}","import { Component, Prop, Event, EventEmitter, h, Host } from '@stencil/core';\n\n@Component({\n tag: 'bh-page-navigation-single-level',\n styleUrl: 'bh-page-navigation-single-level.css',\n shadow: true,\n})\nexport class BhPageNavigationSingleLevel {\n /**\n * Label text for the navigation item\n */\n @Prop() label!: string;\n\n /**\n * Material icon name\n */\n @Prop() icon: string = 'radio_button_unchecked';\n\n /**\n * Whether the item is currently active/selected\n */\n @Prop() isActive: boolean = false;\n\n /**\n * Event emitted when the navigation item is clicked\n */\n @Event() bhItemClick!: EventEmitter<void>;\n\n private handleClick = () => {\n this.bhItemClick.emit();\n };\n\n private getItemClasses() {\n return {\n 'page-navigation-single-level': true,\n 'page-navigation-animate-smooth': true,\n 'active': this.isActive,\n };\n }\n\n render() {\n return (\n <Host>\n <div class={this.getItemClasses()} onClick={() => this.handleClick()}>\n <div class=\"page-navigation-item-content\">\n <span class=\"page-navigation-item-icon material-symbols-outlined\">\n {this.icon}\n </span>\n <span class=\"page-navigation-item-label\">{this.label}</span>\n </div>\n </div>\n </Host>\n );\n }\n}\n"],"version":3}
@@ -1 +0,0 @@
1
- {"file":"p-DAp7fLS-.js","mappings":"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","names":["__stencil_proxyCustomElement","HTMLElement"],"sources":["src/components/bh-empty-state/bh-empty-state.css?tag=bh-empty-state&encapsulation=shadow","src/components/bh-empty-state/bh-empty-state.tsx"],"sourcesContent":[":host {\n display: block;\n font-family: var(\n --font-inter,\n 'Inter',\n -apple-system,\n BlinkMacSystemFont,\n sans-serif\n );\n}\n\n/* Container */\n.empty-state {\n display: flex;\n flex-direction: column;\n align-items: center;\n gap: 32px;\n padding: 48px 24px;\n text-align: center;\n}\n\n/* Content */\n.empty-state-content {\n display: flex;\n flex-direction: column;\n align-items: center;\n gap: 24px;\n}\n\n/* Illustration */\n.empty-state-illustration {\n display: flex;\n align-items: center;\n justify-content: center;\n}\n\n.empty-state-illustration img {\n object-fit: contain;\n}\n\n/* Text */\n.empty-state-text {\n display: flex;\n flex-direction: column;\n align-items: center;\n gap: 8px;\n}\n\n.empty-state-title {\n font-size: var(--text-lg-size, 18px);\n font-weight: 600;\n color: var(--color-neutral-900, #101828);\n margin: 0;\n line-height: 1.33;\n}\n\n.empty-state-description {\n font-size: var(--text-sm-size, 14px);\n font-weight: 400;\n color: var(--color-neutral-600, #475467);\n margin: 0;\n line-height: 1.43;\n max-width: 400px;\n}\n\n/* Actions */\n.empty-state-actions {\n display: flex;\n gap: 12px;\n flex-wrap: wrap;\n justify-content: center;\n}\n\n/* Material Symbols */\n.material-symbols-outlined {\n font-family: 'Material Symbols Outlined';\n font-weight: normal;\n font-style: normal;\n line-height: 1;\n letter-spacing: normal;\n text-transform: none;\n display: inline-block;\n white-space: nowrap;\n word-wrap: normal;\n direction: ltr;\n font-feature-settings: 'liga';\n -webkit-font-smoothing: antialiased;\n font-variation-settings: 'FILL' 0, 'wght' 400, 'GRAD' 0, 'opsz' 24;\n}\n","import { Component, Prop, Event, EventEmitter, h } from '@stencil/core';\n\nexport type EmptyStateIllustrationSize = 'sm' | 'md' | 'lg';\n\n@Component({\n tag: 'bh-empty-state',\n styleUrl: 'bh-empty-state.css',\n shadow: true,\n})\nexport class BhEmptyState {\n /**\n * Title text\n */\n @Prop() emptyTitle: string = 'No items found';\n\n /**\n * Description text\n */\n @Prop() description: string = 'There are no items to display at the moment.';\n\n /**\n * Size of the illustration\n */\n @Prop() illustrationSize: EmptyStateIllustrationSize = 'md';\n\n /**\n * Path to the illustration SVG\n */\n @Prop() illustrationPath: string = '';\n\n /**\n * Primary action button text\n */\n @Prop() primaryActionText: string = '';\n\n /**\n * Primary action icon name\n */\n @Prop() primaryActionIcon: string = '';\n\n /**\n * Secondary action button text\n */\n @Prop() secondaryActionText: string = '';\n\n /**\n * Secondary action icon name\n */\n @Prop() secondaryActionIcon: string = '';\n\n /**\n * Max width of the component\n */\n @Prop() maxWidth: string = '512px';\n\n /**\n * Emitted when primary action is clicked\n */\n @Event() bhPrimaryAction!: EventEmitter<void>;\n\n /**\n * Emitted when secondary action is clicked\n */\n @Event() bhSecondaryAction!: EventEmitter<void>;\n\n private handlePrimaryAction = (): void => {\n this.bhPrimaryAction.emit();\n };\n\n private handleSecondaryAction = (): void => {\n this.bhSecondaryAction.emit();\n };\n\n private getIllustrationDimensions(): { width: string; height: string } {\n switch (this.illustrationSize) {\n case 'sm':\n return { width: '120px', height: '120px' };\n case 'md':\n return { width: '200px', height: '200px' };\n case 'lg':\n return { width: '280px', height: '280px' };\n default:\n return { width: '200px', height: '200px' };\n }\n }\n\n render() {\n const dimensions = this.getIllustrationDimensions();\n const hasActions = this.primaryActionText || this.secondaryActionText;\n\n return (\n <div\n class=\"empty-state\"\n style={{ maxWidth: this.maxWidth }}\n part=\"container\"\n >\n <div class=\"empty-state-content\">\n {/* Illustration */}\n {this.illustrationPath && (\n <div class=\"empty-state-illustration\">\n <img\n src={this.illustrationPath}\n alt=\"Empty state illustration\"\n style={{ width: dimensions.width, height: dimensions.height }}\n />\n </div>\n )}\n\n {/* Text Content */}\n <div class=\"empty-state-text\">\n <h3 class=\"empty-state-title\">{this.emptyTitle}</h3>\n <p class=\"empty-state-description\">{this.description}</p>\n </div>\n </div>\n\n {/* Actions */}\n {hasActions && (\n <div class=\"empty-state-actions\">\n {this.secondaryActionText && (\n <bh-button\n hierarchy=\"secondary\"\n size=\"md\"\n label={this.secondaryActionText}\n icon={this.secondaryActionIcon ? 'leading' : 'none'}\n iconName={this.secondaryActionIcon}\n onBhClick={this.handleSecondaryAction}\n />\n )}\n {this.primaryActionText && (\n <bh-button\n hierarchy=\"primary\"\n size=\"md\"\n label={this.primaryActionText}\n icon={this.primaryActionIcon ? 'leading' : 'none'}\n iconName={this.primaryActionIcon}\n onBhClick={this.handlePrimaryAction}\n />\n )}\n </div>\n )}\n </div>\n );\n }\n}\n"],"version":3}
@@ -1 +0,0 @@
1
- {"file":"p-DIeMf4U9.js","mappings":"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","names":["__stencil_proxyCustomElement","HTMLElement"],"sources":["src/components/bh-date-range-picker-content/bh-date-range-picker-content.css?tag=bh-date-range-picker-content&encapsulation=shadow","src/components/bh-date-range-picker-content/bh-date-range-picker-content.tsx"],"sourcesContent":["@import '../../global/global.css';\n\n:host {\n display: block;\n}\n\n/* Main container */\n.date-range-picker-content {\n display: flex;\n flex-direction: column;\n font-family: var(--font-inter);\n width: fit-content;\n}\n\n/* Date pickers container - side by side layout */\n.date-pickers {\n display: flex;\n flex-direction: row;\n width: 100%;\n position: relative;\n gap: var(--spacing-sm);\n}\n\n/* Left picker */\n.left-picker {\n display: flex;\n flex-direction: column;\n width: 296px;\n}\n\n/* Right picker */\n.right-picker {\n display: flex;\n flex-direction: column;\n width: 296px;\n}\n\n/* Vertical divider between calendars */\n.date-pickers::after {\n content: '';\n position: absolute;\n left: 50%;\n top: 50%;\n transform: translateX(-50%) translateY(-50%);\n width: 1px;\n height: 100%;\n background: var(--color-neutral-200);\n pointer-events: none;\n z-index: 1;\n}\n\n/* Responsive adjustments */\n@media (max-width: 768px) {\n .date-range-picker-content {\n width: 320px;\n }\n\n .date-pickers {\n flex-direction: column;\n }\n\n .left-picker,\n .right-picker {\n width: 100%;\n }\n\n /* Hide vertical divider on mobile */\n .date-pickers::after {\n display: none;\n }\n}\n","import { Component, Prop, State, Event, EventEmitter, Watch, h, Host } from '@stencil/core';\nimport { SelectedDate, DisabledDate } from '../bh-date-picker-content/bh-date-picker-content';\n\nexport interface SelectedDateRange {\n startDate: SelectedDate | null;\n endDate: SelectedDate | null;\n}\n\n@Component({\n tag: 'bh-date-range-picker-content',\n styleUrl: 'bh-date-range-picker-content.css',\n shadow: true,\n})\nexport class BhDateRangePickerContent {\n /**\n * Minimum year in the picker\n */\n @Prop() minYear: number = 1998;\n\n /**\n * Maximum year in the picker\n */\n @Prop() maxYear: number = 2060;\n\n /**\n * Whether the picker is disabled\n */\n @Prop() disabled: boolean = false;\n\n /**\n * Array of disabled dates\n */\n @Prop() disabledDates: DisabledDate[] = [];\n\n /**\n * Whether to show days from other months\n */\n @Prop() showOtherMonthDays: boolean = true;\n\n /**\n * Currently selected value\n */\n @Prop() value?: SelectedDateRange;\n\n @State() selectedRange: SelectedDateRange | null = null;\n @State() leftMonth: number = new Date().getMonth();\n @State() leftYear: number = new Date().getFullYear();\n @State() rightMonth: number = (new Date().getMonth() + 1) % 12;\n @State() rightYear: number = new Date().getMonth() === 11 ? new Date().getFullYear() + 1 : new Date().getFullYear();\n\n /**\n * Event emitted when value changes\n */\n @Event({ bubbles: true, composed: true }) bhChange!: EventEmitter<SelectedDateRange | null>;\n\n /**\n * Event emitted when a date range is selected\n */\n @Event({ bubbles: true, composed: true }) bhDateRangeSelect!: EventEmitter<SelectedDateRange | null>;\n\n @Watch('value')\n handleValueChange(newValue: SelectedDateRange | undefined) {\n if (newValue !== undefined) {\n this.selectedRange = { ...newValue };\n } else {\n this.selectedRange = null;\n }\n }\n\n componentWillLoad() {\n const today = new Date();\n const currentMonth = today.getMonth();\n const currentYear = today.getFullYear();\n\n this.leftMonth = currentMonth;\n this.leftYear = currentYear;\n\n const nextMonthYear = this.getNextMonth(currentMonth, currentYear);\n this.rightMonth = nextMonthYear.month;\n this.rightYear = nextMonthYear.year;\n\n if (this.value) {\n this.selectedRange = this.value;\n }\n }\n\n private getNextMonth(month: number, year: number): { month: number; year: number } {\n const nextMonth = month + 1;\n if (nextMonth > 11) {\n return { month: 0, year: year + 1 };\n }\n return { month: nextMonth, year };\n }\n\n private getPreviousMonth(month: number, year: number): { month: number; year: number } {\n const prevMonth = month - 1;\n if (prevMonth < 0) {\n return { month: 11, year: year - 1 };\n }\n return { month: prevMonth, year };\n }\n\n private handleLeftDateSelect = (event: CustomEvent<SelectedDate | null>) => {\n this.handleDateSelect(event.detail);\n };\n\n private handleRightDateSelect = (event: CustomEvent<SelectedDate | null>) => {\n this.handleDateSelect(event.detail);\n };\n\n private handleDateSelect(date: SelectedDate | null) {\n if (!date) return;\n\n let newRange: SelectedDateRange;\n\n if (!this.selectedRange?.startDate || (this.selectedRange.startDate && this.selectedRange.endDate)) {\n // Start new range\n newRange = { startDate: date, endDate: null };\n } else if (this.selectedRange.startDate && !this.selectedRange.endDate) {\n // Complete the range\n const startDate = this.selectedRange.startDate;\n const isAfterStart = date.year > startDate.year ||\n (date.year === startDate.year && date.month > startDate.month) ||\n (date.year === startDate.year && date.month === startDate.month && date.day > startDate.day);\n\n if (isAfterStart) {\n newRange = { startDate, endDate: date };\n } else {\n newRange = { startDate: date, endDate: startDate };\n }\n } else {\n newRange = { startDate: date, endDate: null };\n }\n\n this.selectedRange = newRange;\n this.bhChange.emit(newRange);\n this.bhDateRangeSelect.emit(newRange);\n }\n\n private handleLeftMonthYearChange = (event: CustomEvent<{ month: number; year: number }>) => {\n const { month, year } = event.detail;\n this.leftMonth = month;\n this.leftYear = year;\n\n // Ensure right calendar is always at least one month ahead\n if (year > this.rightYear || (year === this.rightYear && month >= this.rightMonth)) {\n const nextMonthYear = this.getNextMonth(month, year);\n this.rightMonth = nextMonthYear.month;\n this.rightYear = nextMonthYear.year;\n }\n };\n\n private handleRightMonthYearChange = (event: CustomEvent<{ month: number; year: number }>) => {\n const { month, year } = event.detail;\n this.rightMonth = month;\n this.rightYear = year;\n\n // Ensure left calendar is always at least one month behind\n if (year < this.leftYear || (year === this.leftYear && month <= this.leftMonth)) {\n const prevMonthYear = this.getPreviousMonth(month, year);\n this.leftMonth = prevMonthYear.month;\n this.leftYear = prevMonthYear.year;\n }\n };\n\n render() {\n return (\n <Host>\n <div class=\"date-range-picker-content\">\n <div class=\"date-pickers\">\n <div class=\"left-picker\">\n <bh-date-picker-content\n minYear={this.minYear}\n maxYear={this.maxYear}\n disabled={this.disabled}\n disabledDates={this.disabledDates}\n showOtherMonthDays={this.showOtherMonthDays}\n displayMonth={this.leftMonth}\n displayYear={this.leftYear}\n rangeStart={this.selectedRange?.startDate ?? undefined}\n rangeEnd={this.selectedRange?.endDate ?? undefined}\n onBhChange={this.handleLeftDateSelect}\n onBhMonthYearChange={this.handleLeftMonthYearChange}\n ></bh-date-picker-content>\n </div>\n <div class=\"right-picker\">\n <bh-date-picker-content\n minYear={this.minYear}\n maxYear={this.maxYear}\n disabled={this.disabled}\n disabledDates={this.disabledDates}\n showOtherMonthDays={this.showOtherMonthDays}\n displayMonth={this.rightMonth}\n displayYear={this.rightYear}\n rangeStart={this.selectedRange?.startDate ?? undefined}\n rangeEnd={this.selectedRange?.endDate ?? undefined}\n onBhChange={this.handleRightDateSelect}\n onBhMonthYearChange={this.handleRightMonthYearChange}\n ></bh-date-picker-content>\n </div>\n </div>\n </div>\n </Host>\n );\n }\n}\n"],"version":3}
@@ -1 +0,0 @@
1
- {"file":"p-DK92X9HV.js","mappings":";;AAAA,MAAM,eAAe,GAAG,+uBAA+uB;;MCS1vB,YAAY,iBAAAA,kBAAA,CAAA,MAAA,YAAA,SAAAC,CAAA,CAAA;;;;;;;;AACvB;;AAEG;IACK,WAAW,GAAY,IAAI;AAEnC;;AAEG;IACK,SAAS,GAAwB,eAAe;IAExD,MAAM,GAAA;AACJ,QAAA,MAAM,oBAAoB,GAAG;AAC3B,YAAA,qBAAqB,EAAE,IAAI;AAC3B,YAAA,CAAC,qBAAqB,IAAI,CAAC,SAAS,CAAE,CAAA,GAAG,IAAI;SAC9C;QAED,QACE,EAAC,IAAI,EAAA,EAAA,GAAA,EAAA,0CAAA,EAAA,EACH,CAAK,CAAA,KAAA,EAAA,EAAA,GAAA,EAAA,0CAAA,EAAA,KAAK,EAAC,aAAa,EAAA,EACrB,IAAI,CAAC,WAAW,IAAI,4DAAK,KAAK,EAAC,qBAAqB,EAAG,CAAA,EACxD,CAAK,CAAA,KAAA,EAAA,EAAA,GAAA,EAAA,0CAAA,EAAA,KAAK,EAAE,oBAAoB,EAAA,EAC9B,CAAK,CAAA,KAAA,EAAA,EAAA,GAAA,EAAA,0CAAA,EAAA,KAAK,EAAC,6BAA6B,EAAA,EACtC,CAAA,CAAA,MAAA,EAAA,EAAA,GAAA,EAAA,0CAAA,EAAM,IAAI,EAAC,iBAAiB,EAAA,CAAG,CAC3B,EACN,CAAK,CAAA,KAAA,EAAA,EAAA,GAAA,EAAA,0CAAA,EAAA,KAAK,EAAC,+BAA+B,EAAA,EACxC,CAAM,CAAA,MAAA,EAAA,EAAA,GAAA,EAAA,0CAAA,EAAA,IAAI,EAAC,mBAAmB,EAAA,CAAG,CAC7B,CACF,CACF,CACD;;;;;;;;;;;;;;;;;;;;;;;;","names":["__stencil_proxyCustomElement","HTMLElement"],"sources":["src/components/bh-card-footer/bh-card-footer.css?tag=bh-card-footer&encapsulation=shadow","src/components/bh-card-footer/bh-card-footer.tsx"],"sourcesContent":[":host {\n display: block;\n}\n\n.card-footer {\n display: flex;\n flex-direction: column;\n gap: var(--spacing-xs);\n background: var(--color-white);\n}\n\n.card-footer-divider {\n height: 1px;\n background: var(--color-neutral-200);\n}\n\n.card-footer-content {\n display: flex;\n align-items: center;\n gap: var(--spacing-md);\n padding: var(--spacing-lg) var(--spacing-xl);\n}\n\n.card-footer-align-left {\n justify-content: flex-start;\n}\n\n.card-footer-align-right {\n justify-content: flex-end;\n}\n\n.card-footer-align-space-between {\n justify-content: space-between;\n}\n\n.card-footer-primary-actions {\n display: flex;\n flex: 1 0 0;\n align-items: center;\n gap: var(--spacing-none);\n min-width: 0;\n}\n\n.card-footer-secondary-actions {\n display: flex;\n align-items: center;\n gap: var(--spacing-md);\n}\n\n/* Hide empty slots */\n.card-footer-primary-actions:empty,\n.card-footer-secondary-actions:empty {\n display: none;\n}\n","import { Component, Prop, h, Host } from '@stencil/core';\n\nexport type CardFooterAlignment = 'left' | 'right' | 'space-between';\n\n@Component({\n tag: 'bh-card-footer',\n styleUrl: 'bh-card-footer.css',\n shadow: true,\n})\nexport class BhCardFooter {\n /**\n * Whether to show the divider above the footer\n */\n @Prop() showDivider: boolean = true;\n\n /**\n * Alignment of the footer content\n */\n @Prop() alignment: CardFooterAlignment = 'space-between';\n\n render() {\n const footerContentClasses = {\n 'card-footer-content': true,\n [`card-footer-align-${this.alignment}`]: true,\n };\n\n return (\n <Host>\n <div class=\"card-footer\">\n {this.showDivider && <div class=\"card-footer-divider\" />}\n <div class={footerContentClasses}>\n <div class=\"card-footer-primary-actions\">\n <slot name=\"primary-actions\" />\n </div>\n <div class=\"card-footer-secondary-actions\">\n <slot name=\"secondary-actions\" />\n </div>\n </div>\n </div>\n </Host>\n );\n }\n}\n"],"version":3}
@@ -1 +0,0 @@
1
- {"file":"p-DOaC_o63.js","mappings":"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","names":["__stencil_proxyCustomElement","HTMLElement"],"sources":["src/components/bh-date-picker-content/bh-date-picker-content.css?tag=bh-date-picker-content&encapsulation=shadow","src/components/bh-date-picker-content/bh-date-picker-content.tsx"],"sourcesContent":["@import '../../global/global.css';\n\n:host {\n display: block;\n}\n\n/* Content area - reusable calendar content */\n.date-picker-content {\n width: 100%;\n font-family: var(--font-inter);\n display: flex;\n flex-direction: column;\n}\n\n/* Month Navigation */\n.month-navigation {\n display: flex;\n justify-content: space-between;\n align-items: center;\n gap: var(--spacing-sm);\n padding: var(--spacing-md);\n}\n\n/* Inline Month Picker - constrain to container */\n.month-picker-inline {\n flex: 1;\n overflow: hidden;\n max-height: 270px;\n animation: fadeIn 150ms ease-out;\n}\n\n@keyframes fadeIn {\n from {\n opacity: 0;\n transform: translateY(-10px);\n }\n to {\n opacity: 1;\n transform: translateY(0);\n }\n}\n\n.month-picker-inline.animate-fade-out {\n animation: fadeOut 150ms ease-out;\n}\n\n@keyframes fadeOut {\n from {\n opacity: 1;\n transform: translateY(0);\n }\n to {\n opacity: 0;\n transform: translateY(-10px);\n }\n}\n\n/* Calendar Grid */\n.calendar-grid {\n padding: 0 var(--spacing-md) var(--spacing-md);\n flex: 1;\n}\n\n.day-names {\n display: grid;\n grid-template-columns: repeat(7, 1fr);\n width: 280px;\n gap: 0;\n margin-bottom: var(--spacing-sm);\n}\n\n.day-name {\n width: 40px;\n height: 40px;\n display: flex;\n align-items: center;\n justify-content: center;\n font-family: var(--font-inter);\n font-weight: var(--weight-medium);\n font-size: var(--text-sm-size);\n line-height: var(--text-sm-line);\n color: var(--color-neutral-500);\n}\n\n.date-cells {\n display: grid;\n grid-template-columns: repeat(7, 1fr);\n width: 280px;\n row-gap: var(--spacing-xs, 4px);\n column-gap: 0;\n justify-items: center;\n align-items: center;\n}\n\n/* Calendar Cell States */\n.calendar-cell {\n width: 40px;\n height: 40px;\n display: flex;\n align-items: center;\n justify-content: center;\n position: relative;\n border-radius: var(--radius-full);\n font-family: var(--font-inter);\n font-weight: var(--weight-medium);\n font-size: var(--text-sm-size);\n line-height: var(--text-sm-line);\n cursor: pointer;\n transition: all var(--animation-duration-fast, 0.1s) var(--animation-easing-ease, ease);\n}\n\n.calendar-cell.other-month .date-number {\n color: var(--color-neutral-400);\n}\n\n.calendar-cell.other-month.disabled .date-number {\n color: var(--color-neutral-300);\n}\n\n.calendar-cell.selectable .date-number {\n color: var(--color-neutral-500);\n}\n\n.calendar-cell.selectable:hover {\n background: var(--color-neutral-50);\n}\n\n.calendar-cell.selectable:hover .date-number {\n color: var(--color-neutral-800);\n}\n\n.calendar-cell.today {\n border: 2px solid var(--color-brand-600);\n}\n\n.calendar-cell.today .date-number {\n color: var(--color-neutral-500);\n}\n\n.calendar-cell.today:hover {\n background: var(--color-brand-100);\n}\n\n.calendar-cell.today:hover .date-number {\n color: var(--color-brand-600);\n}\n\n.calendar-cell.selected {\n background: var(--color-brand-600);\n}\n\n.calendar-cell.selected .date-number {\n color: var(--color-white);\n font-weight: var(--weight-semibold);\n}\n\n.calendar-cell.selected:hover {\n background: var(--color-brand-800);\n}\n\n.calendar-cell.selected:hover .date-number {\n color: var(--color-white);\n font-weight: var(--weight-semibold);\n}\n\n/* Range states - in-range background */\n.calendar-cell.in-range {\n background: var(--color-neutral-100);\n border-radius: 0;\n position: relative;\n}\n\n.calendar-cell.in-range .date-number {\n color: var(--color-neutral-800);\n font-weight: var(--weight-medium);\n}\n\n.calendar-cell.in-range:hover {\n background: var(--color-neutral-100);\n}\n\n.calendar-cell.in-range:hover .date-number {\n background: var(--color-neutral-200);\n border-radius: var(--radius-full);\n width: 40px;\n height: 40px;\n display: flex;\n align-items: center;\n justify-content: center;\n}\n\n/* Range start and end styling */\n.calendar-cell.range-start,\n.calendar-cell.range-end {\n position: relative;\n}\n\n.calendar-cell.range-start .date-number,\n.calendar-cell.range-end .date-number {\n background: var(--color-brand-600);\n color: var(--color-white);\n font-weight: var(--weight-semibold);\n border-radius: var(--radius-full);\n width: 40px;\n height: 40px;\n display: flex;\n align-items: center;\n justify-content: center;\n}\n\n.calendar-cell.range-start:hover .date-number,\n.calendar-cell.range-start.selectable:hover .date-number,\n.calendar-cell.range-end:hover .date-number,\n.calendar-cell.range-end.selectable:hover .date-number {\n background: var(--color-brand-800);\n color: var(--color-white);\n}\n\n/* Range start - extend background to the right */\n.calendar-cell.range-start {\n background: transparent;\n}\n\n.calendar-cell.range-start::after {\n content: '';\n position: absolute;\n left: 50%;\n top: 0;\n width: 50%;\n height: 100%;\n background: var(--color-neutral-100);\n border-radius: var(--radius-full) 0 0 var(--radius-full);\n z-index: 0;\n}\n\n.calendar-cell.range-start:hover::after,\n.calendar-cell.range-start.selectable:hover::after {\n background: var(--color-neutral-200);\n}\n\n/* Range end - extend background to the left */\n.calendar-cell.range-end {\n background: transparent;\n}\n\n.calendar-cell.range-end::after {\n content: '';\n position: absolute;\n left: 0;\n top: 0;\n width: 50%;\n height: 100%;\n background: var(--color-neutral-100);\n border-radius: 0 var(--radius-full) var(--radius-full) 0;\n z-index: 0;\n}\n\n.calendar-cell.range-end:hover::after,\n.calendar-cell.range-end.selectable:hover::after {\n background: var(--color-neutral-200);\n}\n\n/* When both start and end are the same day */\n.calendar-cell.range-start.range-end {\n background: transparent;\n}\n\n.calendar-cell.range-start.range-end::after {\n display: none;\n}\n\n.calendar-cell.range-start.range-end .date-number {\n border-radius: var(--radius-full);\n}\n\n/* Range start without end (first selection only) */\n.calendar-cell.range-start:not(.in-range):not(:has(~ .range-end))::after {\n display: none;\n}\n\n/* Row start/end rounding for in-range cells */\n.calendar-cell.in-range:nth-child(7n+1) {\n border-top-left-radius: var(--radius-full);\n border-bottom-left-radius: var(--radius-full);\n}\n\n.calendar-cell.in-range:nth-child(7n) {\n border-top-right-radius: var(--radius-full);\n border-bottom-right-radius: var(--radius-full);\n}\n\n/* Range start at end of row */\n.calendar-cell.range-start:nth-child(7n)::after {\n display: none;\n}\n\n/* Range end at start of row */\n.calendar-cell.range-end:nth-child(7n+1)::after {\n display: none;\n}\n\n/* Today in range */\n.calendar-cell.today.in-range {\n background: var(--color-brand-50);\n}\n\n.calendar-cell.today.in-range .date-number {\n color: var(--color-brand-600);\n font-weight: var(--weight-medium);\n background: transparent;\n border: 2px solid var(--color-brand-600);\n}\n\n.calendar-cell.today.in-range:hover {\n background: var(--color-brand-100);\n}\n\n/* Today as range start/end */\n.calendar-cell.today.range-start .date-number,\n.calendar-cell.today.range-end .date-number {\n background: var(--color-brand-600);\n color: var(--color-white);\n border: none;\n}\n\n.calendar-cell.disabled {\n cursor: not-allowed;\n}\n\n.calendar-cell.disabled .date-number {\n color: var(--color-neutral-300);\n}\n\n.date-number {\n position: relative;\n z-index: 1;\n}\n","import { Component, Prop, State, Event, EventEmitter, Watch, h, Host } from '@stencil/core';\nimport { MonthYear } from '../bh-month-picker-content/bh-month-picker-content';\n\nexport interface SelectedDate {\n year: number;\n month: number; // 0-11\n day: number; // 1-31\n}\n\nexport interface DisabledDate {\n year: number;\n month: number;\n day: number;\n}\n\ninterface CalendarCell {\n day: number;\n isCurrentMonth: boolean;\n isToday: boolean;\n isSelected: boolean;\n isDisabled: boolean;\n isRangeStart: boolean;\n isRangeEnd: boolean;\n isInRange: boolean;\n date: Date;\n}\n\n@Component({\n tag: 'bh-date-picker-content',\n styleUrl: 'bh-date-picker-content.css',\n shadow: true,\n})\nexport class BhDatePickerContent {\n /**\n * Minimum year in the picker\n */\n @Prop() minYear: number = 1998;\n\n /**\n * Maximum year in the picker\n */\n @Prop() maxYear: number = 2060;\n\n /**\n * Whether the picker is disabled\n */\n @Prop() disabled: boolean = false;\n\n /**\n * Array of disabled dates\n */\n @Prop() disabledDates: DisabledDate[] = [];\n\n /**\n * Initial month to display (0-11)\n */\n @Prop() initialMonth?: number;\n\n /**\n * Initial year to display\n */\n @Prop() initialYear?: number;\n\n /**\n * Display month (for external control, 0-11)\n */\n @Prop() displayMonth?: number;\n\n /**\n * Display year (for external control)\n */\n @Prop() displayYear?: number;\n\n /**\n * Range start date (for date range picker)\n */\n @Prop() rangeStart?: SelectedDate;\n\n /**\n * Range end date (for date range picker)\n */\n @Prop() rangeEnd?: SelectedDate;\n\n /**\n * Currently selected value\n */\n @Prop() value?: SelectedDate;\n\n /**\n * Whether to show days from other months\n */\n @Prop() showOtherMonthDays: boolean = true;\n\n @State() selectedDate: SelectedDate | null = null;\n @State() currentMonth: number = new Date().getMonth();\n @State() currentYear: number = new Date().getFullYear();\n @State() isMonthDropdownOpen: boolean = false;\n @State() isMonthDropdownClosing: boolean = false;\n\n private today = new Date();\n private monthNames = [\n 'January', 'February', 'March', 'April', 'May', 'June',\n 'July', 'August', 'September', 'October', 'November', 'December',\n ];\n private dayNames = ['Mo', 'Tu', 'We', 'Th', 'Fr', 'Sa', 'Su'];\n\n /**\n * Event emitted when value changes\n */\n @Event({ bubbles: true, composed: true }) bhChange!: EventEmitter<SelectedDate | null>;\n\n /**\n * Event emitted when a date is selected\n */\n @Event({ bubbles: true, composed: true }) bhDateSelect!: EventEmitter<SelectedDate | null>;\n\n /**\n * Event emitted when month changes\n */\n @Event({ bubbles: true, composed: true }) bhMonthChange!: EventEmitter<{ month: number; year: number }>;\n\n /**\n * Event emitted when month/year changes\n */\n @Event({ bubbles: true, composed: true }) bhMonthYearChange!: EventEmitter<{ month: number; year: number }>;\n\n @Watch('value')\n handleValueChange(newValue: SelectedDate | undefined) {\n if (newValue) {\n this.selectedDate = newValue;\n if (this.displayMonth === undefined && this.displayYear === undefined) {\n this.currentMonth = newValue.month;\n this.currentYear = newValue.year;\n }\n } else {\n this.selectedDate = null;\n }\n }\n\n @Watch('displayMonth')\n handleDisplayMonthChange(newValue: number | undefined) {\n if (newValue !== undefined) {\n this.currentMonth = newValue;\n }\n }\n\n @Watch('displayYear')\n handleDisplayYearChange(newValue: number | undefined) {\n if (newValue !== undefined) {\n this.currentYear = newValue;\n }\n }\n\n componentWillLoad() {\n // Initialize month/year\n if (this.displayMonth !== undefined) {\n this.currentMonth = this.displayMonth;\n } else if (this.initialMonth !== undefined) {\n this.currentMonth = this.initialMonth;\n } else {\n this.currentMonth = this.today.getMonth();\n }\n\n if (this.displayYear !== undefined) {\n this.currentYear = this.displayYear;\n } else if (this.initialYear !== undefined) {\n this.currentYear = this.initialYear;\n } else {\n this.currentYear = this.today.getFullYear();\n }\n\n // Initialize selected date\n if (this.value) {\n this.selectedDate = this.value;\n }\n }\n\n private get isInRangeMode(): boolean {\n return this.rangeStart !== undefined || this.rangeEnd !== undefined;\n }\n\n private get calendarCells(): CalendarCell[] {\n const cells: CalendarCell[] = [];\n const firstDay = new Date(this.currentYear, this.currentMonth, 1);\n const lastDay = new Date(this.currentYear, this.currentMonth + 1, 0);\n\n // Get the day of the week for the first day (0 = Sunday, 6 = Saturday)\n let firstDayOfWeek = firstDay.getDay();\n // Convert to Monday start (0 = Monday, 6 = Sunday)\n firstDayOfWeek = firstDayOfWeek === 0 ? 6 : firstDayOfWeek - 1;\n\n // Add cells for days before the first of the month\n if (this.showOtherMonthDays) {\n for (let i = 0; i < firstDayOfWeek; i++) {\n const prevMonthLastDay = new Date(this.currentYear, this.currentMonth, -i);\n cells.unshift(this.createCell(prevMonthLastDay, false));\n }\n } else {\n for (let i = 0; i < firstDayOfWeek; i++) {\n cells.unshift({\n day: 0,\n isCurrentMonth: false,\n isToday: false,\n isSelected: false,\n isDisabled: true,\n isRangeStart: false,\n isRangeEnd: false,\n isInRange: false,\n date: new Date(this.currentYear, this.currentMonth, -i),\n });\n }\n }\n\n // Add cells for current month\n for (let day = 1; day <= lastDay.getDate(); day++) {\n const date = new Date(this.currentYear, this.currentMonth, day);\n cells.push(this.createCell(date, true));\n }\n\n // Add next month days to fill the grid\n if (this.showOtherMonthDays) {\n const totalCells = cells.length;\n const remainingCells = 42 - totalCells;\n\n for (let day = 1; day <= remainingCells; day++) {\n const nextMonthDay = new Date(this.currentYear, this.currentMonth + 1, day);\n cells.push(this.createCell(nextMonthDay, false));\n\n if (cells.length % 7 === 0) break;\n }\n }\n\n return cells;\n }\n\n private createCell(date: Date, isCurrentMonth: boolean): CalendarCell {\n const isRangeStart = this.isDateRangeStart(date);\n const isRangeEnd = this.isDateRangeEnd(date);\n const isInRange = this.isDateInRange(date);\n\n return {\n day: date.getDate(),\n isCurrentMonth,\n isToday: this.isSameDay(date, this.today),\n isSelected: this.isDateSelected(date),\n isDisabled: !isCurrentMonth || this.isDateDisabled(date),\n isRangeStart,\n isRangeEnd,\n isInRange,\n date,\n };\n }\n\n private isSameDay(date1: Date, date2: Date): boolean {\n return (\n date1.getFullYear() === date2.getFullYear() &&\n date1.getMonth() === date2.getMonth() &&\n date1.getDate() === date2.getDate()\n );\n }\n\n private isDateDisabled(date: Date): boolean {\n if (!this.disabledDates || !Array.isArray(this.disabledDates)) {\n return false;\n }\n const year = date.getFullYear();\n const month = date.getMonth();\n const day = date.getDate();\n return this.disabledDates.some(\n disabled => disabled.year === year && disabled.month === month && disabled.day === day\n );\n }\n\n private isDateSelected(date: Date): boolean {\n if (this.isInRangeMode) return false;\n if (!this.selectedDate) return false;\n\n return (\n date.getFullYear() === this.selectedDate.year &&\n date.getMonth() === this.selectedDate.month &&\n date.getDate() === this.selectedDate.day\n );\n }\n\n private isDateRangeStart(date: Date): boolean {\n if (!this.rangeStart) return false;\n\n return (\n date.getFullYear() === this.rangeStart.year &&\n date.getMonth() === this.rangeStart.month &&\n date.getDate() === this.rangeStart.day\n );\n }\n\n private isDateRangeEnd(date: Date): boolean {\n if (!this.rangeEnd) return false;\n\n return (\n date.getFullYear() === this.rangeEnd.year &&\n date.getMonth() === this.rangeEnd.month &&\n date.getDate() === this.rangeEnd.day\n );\n }\n\n private isDateInRange(date: Date): boolean {\n if (!this.rangeStart || !this.rangeEnd) return false;\n\n const dateTime = date.getTime();\n const startTime = new Date(this.rangeStart.year, this.rangeStart.month, this.rangeStart.day).getTime();\n const endTime = new Date(this.rangeEnd.year, this.rangeEnd.month, this.rangeEnd.day).getTime();\n\n return dateTime > startTime && dateTime < endTime;\n }\n\n private handleCellClick(cell: CalendarCell) {\n if (cell.isDisabled || this.disabled || !cell.isCurrentMonth) {\n return;\n }\n\n const newSelectedDate: SelectedDate = {\n year: cell.date.getFullYear(),\n month: cell.date.getMonth(),\n day: cell.date.getDate(),\n };\n\n // If we're in range mode, let the parent handle it\n if (this.isInRangeMode) {\n this.bhChange.emit(newSelectedDate);\n this.bhDateSelect.emit(newSelectedDate);\n return;\n }\n\n // Toggle selection\n const isCurrentlySelected = this.selectedDate &&\n this.selectedDate.year === newSelectedDate.year &&\n this.selectedDate.month === newSelectedDate.month &&\n this.selectedDate.day === newSelectedDate.day;\n\n if (isCurrentlySelected) {\n this.selectedDate = null;\n this.bhChange.emit(null);\n this.bhDateSelect.emit(null);\n } else {\n this.selectedDate = newSelectedDate;\n this.bhChange.emit(newSelectedDate);\n this.bhDateSelect.emit(newSelectedDate);\n }\n }\n\n private handleMonthDropdownToggle = () => {\n if (this.isMonthDropdownOpen) {\n this.closeMonthDropdown();\n } else {\n this.isMonthDropdownOpen = true;\n }\n };\n\n private closeMonthDropdown() {\n this.isMonthDropdownClosing = true;\n setTimeout(() => {\n this.isMonthDropdownOpen = false;\n this.isMonthDropdownClosing = false;\n }, 150);\n }\n\n private handleMonthYearSelect = (event: CustomEvent<MonthYear>) => {\n this.closeMonthDropdown();\n\n setTimeout(() => {\n const monthYear = event.detail;\n this.currentMonth = monthYear.month;\n this.currentYear = monthYear.year;\n this.bhMonthChange.emit({ month: monthYear.month, year: monthYear.year });\n this.bhMonthYearChange.emit({ month: monthYear.month, year: monthYear.year });\n }, 100);\n };\n\n private handlePreviousMonth = () => {\n if (this.disabled) return;\n\n let newMonth = this.currentMonth - 1;\n let newYear = this.currentYear;\n\n if (newMonth < 0) {\n newMonth = 11;\n newYear = this.currentYear - 1;\n }\n\n if (newYear >= this.minYear) {\n this.currentMonth = newMonth;\n this.currentYear = newYear;\n this.bhMonthChange.emit({ month: newMonth, year: newYear });\n this.bhMonthYearChange.emit({ month: newMonth, year: newYear });\n }\n };\n\n private handleNextMonth = () => {\n if (this.disabled) return;\n\n let newMonth = this.currentMonth + 1;\n let newYear = this.currentYear;\n\n if (newMonth > 11) {\n newMonth = 0;\n newYear = this.currentYear + 1;\n }\n\n if (newYear <= this.maxYear) {\n this.currentMonth = newMonth;\n this.currentYear = newYear;\n this.bhMonthChange.emit({ month: newMonth, year: newYear });\n this.bhMonthYearChange.emit({ month: newMonth, year: newYear });\n }\n };\n\n private getCellClass(cell: CalendarCell): string {\n const classes = ['calendar-cell'];\n\n if (!cell.isCurrentMonth) classes.push('other-month');\n if (cell.isToday) classes.push('today');\n if (cell.isRangeStart) classes.push('range-start');\n if (cell.isRangeEnd) classes.push('range-end');\n if (cell.isInRange) classes.push('in-range');\n if (cell.isSelected) classes.push('selected');\n if (cell.isDisabled) classes.push('disabled');\n else if (cell.isCurrentMonth) classes.push('selectable');\n\n return classes.join(' ');\n }\n\n render() {\n const currentMonthYear = `${this.monthNames[this.currentMonth]} ${this.currentYear}`;\n\n return (\n <Host>\n <div class=\"date-picker-content\">\n {/* Month Navigation */}\n <div class=\"month-navigation\">\n <bh-button-icon\n hierarchy=\"tertiary\"\n size=\"md\"\n iconName=\"chevron_left\"\n onBhClick={this.handlePreviousMonth}\n disabled={this.disabled || (this.currentYear === this.minYear && this.currentMonth === 0)}\n ></bh-button-icon>\n\n <bh-button\n hierarchy=\"tertiary\"\n size=\"sm\"\n label={currentMonthYear}\n icon=\"trailing\"\n iconName=\"expand_more\"\n onBhClick={this.handleMonthDropdownToggle}\n ></bh-button>\n\n <bh-button-icon\n hierarchy=\"tertiary\"\n size=\"md\"\n iconName=\"chevron_right\"\n onBhClick={this.handleNextMonth}\n disabled={this.disabled || (this.currentYear === this.maxYear && this.currentMonth === 11)}\n ></bh-button-icon>\n </div>\n\n {/* Calendar Grid or Month Picker */}\n {!this.isMonthDropdownOpen && (\n <div class=\"calendar-grid\">\n {/* Day Names Header */}\n <div class=\"day-names\">\n {this.dayNames.map(dayName => (\n <div key={dayName} class=\"day-name\">{dayName}</div>\n ))}\n </div>\n\n {/* Date Cells */}\n <div class=\"date-cells\">\n {this.calendarCells.map((cell, index) => (\n <div\n key={index}\n class={this.getCellClass(cell)}\n onClick={() => this.handleCellClick(cell)}\n >\n <span class=\"date-number\">{cell.day === 0 ? '' : cell.day}</span>\n </div>\n ))}\n </div>\n </div>\n )}\n\n {/* Month Picker Content */}\n {(this.isMonthDropdownOpen || this.isMonthDropdownClosing) && (\n <div class={`month-picker-inline ${this.isMonthDropdownClosing ? 'animate-fade-out' : ''}`}>\n <bh-month-picker-content\n scrollable={true}\n height=\"275px\"\n selectedMonth={this.currentMonth}\n selectedYear={this.currentYear}\n onBhChange={this.handleMonthYearSelect}\n minYear={this.minYear}\n maxYear={this.maxYear}\n ></bh-month-picker-content>\n </div>\n )}\n </div>\n </Host>\n );\n }\n}\n"],"version":3}
@@ -1 +0,0 @@
1
- {"file":"p-DQUicoqi.js","mappings":";;AAAA,MAAM,iBAAiB,GAAG,4tGAA4tG;;MCWzuG,cAAc,iBAAAA,kBAAA,CAAA,MAAA,cAAA,SAAAC,CAAA,CAAA;;;;;;;;AACzB;;AAEG;IACK,IAAI,GAAqB,IAAI;AAErC;;AAEG;IACK,KAAK,GAAsB,MAAM;AAEzC;;AAEG;IACK,SAAS,GAAsB,UAAU;AAEjD;;AAEG;IACK,IAAI,GAAW,MAAM;IAE7B,MAAM,GAAA;AACJ,QAAA,MAAM,gBAAgB,GAAG;AACvB,YAAA,eAAe,EAAE,IAAI;AACrB,YAAA,CAAC,iBAAiB,IAAI,CAAC,IAAI,CAAE,CAAA,GAAG,IAAI;AACpC,YAAA,CAAC,iBAAiB,IAAI,CAAC,KAAK,CAAE,CAAA,GAAG,IAAI;AACrC,YAAA,CAAC,iBAAiB,IAAI,CAAC,SAAS,CAAE,CAAA,GAAG,IAAI;SAC1C;AAED,QAAA,MAAM,WAAW,GAAG,CAAA,+BAAA,EAAkC,IAAI,CAAC,IAAI,EAAE;AAEjE,QAAA,QACE,4DAAK,KAAK,EAAE,gBAAgB,EAAE,IAAI,EAAC,WAAW,EAAA,EAC5C,CAAM,CAAA,MAAA,EAAA,EAAA,GAAA,EAAA,0CAAA,EAAA,KAAK,EAAE,WAAW,EAAG,EAAA,IAAI,CAAC,IAAI,CAAQ,CACxC;;;;;;;;;;;;;;;;;;;;;;;;;;","names":["__stencil_proxyCustomElement","HTMLElement"],"sources":["src/components/bh-featured-icon/bh-featured-icon.css?tag=bh-featured-icon&encapsulation=shadow","src/components/bh-featured-icon/bh-featured-icon.tsx"],"sourcesContent":["/* ==========================================================================\n BH-FEATURED-ICON COMPONENT STYLES\n ========================================================================== */\n\n:host {\n display: inline-block;\n}\n\n.featured-icon {\n display: inline-flex;\n align-items: center;\n justify-content: center;\n transition: all 0.2s ease;\n}\n\n/* Size variations */\n.featured-icon-sm {\n width: 32px;\n height: 32px;\n border-radius: 6px;\n}\n\n.featured-icon-md {\n width: 40px;\n height: 40px;\n border-radius: 8px;\n}\n\n.featured-icon-lg {\n width: 48px;\n height: 48px;\n border-radius: 10px;\n}\n\n.featured-icon-xl {\n width: 56px;\n height: 56px;\n border-radius: 12px;\n}\n\n/* Icon sizes - matching Figma specs */\n.icon-sm {\n font-size: var(--icon-size-xs);\n width: var(--icon-size-xs);\n height: var(--icon-size-xs);\n line-height: 1;\n}\n\n.icon-md {\n font-size: var(--icon-size-md);\n width: var(--icon-size-md);\n height: var(--icon-size-md);\n line-height: 1;\n}\n\n.icon-lg {\n font-size: var(--icon-size-lg);\n width: var(--icon-size-lg);\n height: var(--icon-size-lg);\n line-height: 1;\n}\n\n.icon-xl {\n font-size: var(--icon-size-2xl);\n width: var(--icon-size-2xl);\n height: var(--icon-size-2xl);\n line-height: 1;\n}\n\n/* ============================================\n OUTLINED STYLES\n ============================================ */\n\n/* Brand color - Outlined */\n.featured-icon-brand.featured-icon-outlined {\n background-color: transparent;\n border: 1px solid var(--color-neutral-200);\n}\n\n.featured-icon-brand.featured-icon-outlined .material-symbols-outlined {\n color: var(--color-brand-600);\n}\n\n/* Gray color - Outlined */\n.featured-icon-gray.featured-icon-outlined {\n border: 1px solid var(--color-neutral-200);\n}\n\n.featured-icon-gray.featured-icon-outlined .material-symbols-outlined {\n color: var(--color-neutral-600);\n}\n\n/* Error color - Outlined */\n.featured-icon-error.featured-icon-outlined {\n border: 1px solid var(--color-neutral-200);\n}\n\n.featured-icon-error.featured-icon-outlined .material-symbols-outlined {\n color: var(--color-error-600);\n}\n\n/* Warning color - Outlined */\n.featured-icon-warning.featured-icon-outlined {\n border: 1px solid var(--color-neutral-200);\n}\n\n.featured-icon-warning.featured-icon-outlined .material-symbols-outlined {\n color: var(--color-warning-600);\n}\n\n/* Success color - Outlined */\n.featured-icon-success.featured-icon-outlined {\n border: 1px solid var(--color-neutral-200);\n}\n\n.featured-icon-success.featured-icon-outlined .material-symbols-outlined {\n color: var(--color-success-600);\n}\n\n/* Highlight color - Outlined */\n.featured-icon-highlight.featured-icon-outlined {\n border: 1px solid var(--color-neutral-200);\n}\n\n.featured-icon-highlight.featured-icon-outlined .material-symbols-outlined {\n color: var(--color-purple-600);\n}\n\n/* ============================================\n FILLED STYLES\n ============================================ */\n\n/* Brand color - Filled */\n.featured-icon-brand.featured-icon-filled {\n background-color: var(--color-brand-100);\n border: none;\n}\n\n.featured-icon-brand.featured-icon-filled .material-symbols-outlined {\n color: var(--color-brand-600);\n}\n\n/* Gray color - Filled */\n.featured-icon-gray.featured-icon-filled {\n background-color: var(--color-neutral-100);\n border: none;\n}\n\n.featured-icon-gray.featured-icon-filled .material-symbols-outlined {\n color: var(--color-neutral-600);\n}\n\n/* Error color - Filled */\n.featured-icon-error.featured-icon-filled {\n background-color: var(--color-error-100);\n border: none;\n}\n\n.featured-icon-error.featured-icon-filled .material-symbols-outlined {\n color: var(--color-error-600);\n}\n\n/* Warning color - Filled */\n.featured-icon-warning.featured-icon-filled {\n background-color: var(--color-warning-200);\n border: none;\n}\n\n.featured-icon-warning.featured-icon-filled .material-symbols-outlined {\n color: var(--color-warning-600);\n}\n\n/* Success color - Filled */\n.featured-icon-success.featured-icon-filled {\n background-color: var(--color-success-100);\n border: none;\n}\n\n.featured-icon-success.featured-icon-filled .material-symbols-outlined {\n color: var(--color-success-600);\n}\n\n/* Highlight color - Filled */\n.featured-icon-highlight.featured-icon-filled {\n background-color: var(--color-purple-200);\n border: none;\n}\n\n.featured-icon-highlight.featured-icon-filled .material-symbols-outlined {\n color: var(--color-purple-600);\n}\n\n/* Material Symbols base styles */\n.material-symbols-outlined {\n font-family: 'Material Symbols Outlined';\n font-variation-settings: 'FILL' 0, 'wght' 400, 'GRAD' 0, 'opsz' 24;\n user-select: none;\n}\n","import { Component, Prop, h } from '@stencil/core';\n\nexport type FeaturedIconSize = 'sm' | 'md' | 'lg' | 'xl';\nexport type FeaturedIconColor = 'brand' | 'gray' | 'error' | 'warning' | 'success' | 'highlight';\nexport type FeaturedIconStyle = 'outlined' | 'filled';\n\n@Component({\n tag: 'bh-featured-icon',\n styleUrl: 'bh-featured-icon.css',\n shadow: true,\n})\nexport class BhFeaturedIcon {\n /**\n * The size of the featured icon\n */\n @Prop() size: FeaturedIconSize = 'md';\n\n /**\n * The color theme of the featured icon\n */\n @Prop() color: FeaturedIconColor = 'gray';\n\n /**\n * The style variant (outlined or filled)\n */\n @Prop() iconStyle: FeaturedIconStyle = 'outlined';\n\n /**\n * The Material Symbol icon name\n */\n @Prop() icon: string = 'star';\n\n render() {\n const containerClasses = {\n 'featured-icon': true,\n [`featured-icon-${this.size}`]: true,\n [`featured-icon-${this.color}`]: true,\n [`featured-icon-${this.iconStyle}`]: true,\n };\n\n const iconClasses = `material-symbols-outlined icon-${this.size}`;\n\n return (\n <div class={containerClasses} part=\"container\">\n <span class={iconClasses}>{this.icon}</span>\n </div>\n );\n }\n}\n"],"version":3}
@@ -1 +0,0 @@
1
- {"file":"p-DURWm67o.js","mappings":";;AAAA,MAAM,UAAU,GAAG,o+BAAo+B;;ACIv/B,MAAM,YAAY,GAA+B;AAC/C,IAAA,EAAE,EAAE,OAAO;AACX,IAAA,EAAE,EAAE,OAAO;AACX,IAAA,EAAE,EAAE,OAAO;AACX,IAAA,EAAE,EAAE,OAAO;AACX,IAAA,GAAG,EAAE,OAAO;CACb;MAOY,OAAO,iBAAAA,kBAAA,CAAA,MAAA,OAAA,SAAAC,CAAA,CAAA;;;;;;;;;AAClB;;AAEG;IACK,OAAO,GAAY,KAAK;AAEhC;;AAEG;IACK,OAAO,GAAY,IAAI;AAE/B;;AAEG;IACK,KAAK,GAAe,IAAI;AAEhC;;AAEG;AACM,IAAA,OAAO;IAER,WAAW,GAAG,MAAW;AAC/B,QAAA,IAAI,CAAC,OAAO,CAAC,IAAI,EAAE;AACrB,KAAC;AAEO,IAAA,kBAAkB,GAAG,CAAC,KAAiB,KAAU;QACvD,IAAI,KAAK,CAAC,MAAM,KAAK,KAAK,CAAC,aAAa,EAAE;YACxC,IAAI,CAAC,WAAW,EAAE;;AAEtB,KAAC;IAED,MAAM,GAAA;QACJ,IAAI,CAAC,IAAI,CAAC,OAAO;AAAE,YAAA,OAAO,IAAI;AAE9B,QAAA,MAAM,YAAY,GAAG;AACnB,YAAA,eAAe,EAAE,IAAI;YACrB,oBAAoB,EAAE,IAAI,CAAC,OAAO;SACnC;QAED,QACE,EAAC,IAAI,EAAA,IAAA,EACH,CAAK,CAAA,KAAA,EAAA,EAAA,KAAK,EAAE,YAAY,EAAE,OAAO,EAAE,IAAI,CAAC,kBAAkB,EAAA,EACvD,IAAI,CAAC,OAAO,IAAI,WAAK,KAAK,EAAC,eAAe,EAAG,CAAA,EAE9C,CAAA,CAAA,KAAA,EAAA,EAAK,KAAK,EAAC,OAAO,EAAC,KAAK,EAAE,EAAE,QAAQ,EAAE,YAAY,CAAC,IAAI,CAAC,KAAK,CAAC,EAAE,EAAA,EAC9D,CAAM,CAAA,MAAA,EAAA,EAAA,IAAI,EAAC,QAAQ,EAAG,CAAA,EACtB,CAAQ,CAAA,MAAA,EAAA,IAAA,CAAA,EACR,CAAM,CAAA,MAAA,EAAA,EAAA,IAAI,EAAC,SAAS,EAAA,CAAG,CACnB,CACF,CACD;;;;;;;;;;;;;;;;;;;;;;;;;","names":["__stencil_proxyCustomElement","HTMLElement"],"sources":["src/components/bh-modal/bh-modal.css?tag=bh-modal&encapsulation=shadow","src/components/bh-modal/bh-modal.tsx"],"sourcesContent":["/* ==========================================================================\n BH-MODAL COMPONENT STYLES\n ========================================================================== */\n\n:host {\n display: block;\n}\n\n/* Modal wrapper - fixed positioning for modal dialog */\n.modal-wrapper {\n position: fixed;\n top: 0;\n left: 0;\n right: 0;\n bottom: 0;\n display: flex;\n align-items: center;\n justify-content: center;\n padding: var(--spacing-4xl, 32px);\n z-index: 1000;\n}\n\n/* Backdrop overlay */\n.modal-overlay {\n position: absolute;\n inset: 0;\n background: var(--color-bg-overlay, rgba(64, 73, 104, 0.7));\n backdrop-filter: blur(16px);\n -webkit-backdrop-filter: blur(16px);\n}\n\n/* Modal container */\n.modal {\n position: relative;\n display: flex;\n flex-direction: column;\n align-items: center;\n width: 100%;\n max-width: 400px;\n background: var(--color-bg-primary, #ffffff);\n border-radius: var(--radius-xl, 12px);\n box-shadow:\n 0px 20px 24px -4px rgba(16, 24, 40, 0.08),\n 0px 8px 8px -4px rgba(16, 24, 40, 0.03);\n overflow: hidden;\n z-index: 1;\n}\n\n/* Responsive adjustments */\n@media (max-width: 480px) {\n .modal-wrapper {\n padding: var(--spacing-xl, 16px);\n }\n\n .modal {\n max-width: 100%;\n }\n}\n\n/* Animation for modal entry */\n@keyframes modalFadeIn {\n from {\n opacity: 0;\n transform: scale(0.95);\n }\n to {\n opacity: 1;\n transform: scale(1);\n }\n}\n\n@keyframes overlayFadeIn {\n from {\n opacity: 0;\n }\n to {\n opacity: 1;\n }\n}\n\n.modal {\n animation: modalFadeIn 0.2s ease-out;\n}\n\n.modal-overlay {\n animation: overlayFadeIn 0.2s ease-out;\n}\n","import { Component, Prop, Event, EventEmitter, h, Host } from '@stencil/core';\n\nexport type ModalWidth = 'sm' | 'md' | 'lg' | 'xl' | 'xxl';\n\nconst MODAL_WIDTHS: Record<ModalWidth, string> = {\n sm: '400px',\n md: '480px',\n lg: '520px',\n xl: '640px',\n xxl: '688px',\n};\n\n@Component({\n tag: 'bh-modal',\n styleUrl: 'bh-modal.css',\n shadow: true,\n})\nexport class BhModal {\n /**\n * Whether the modal is visible\n */\n @Prop() visible: boolean = false;\n\n /**\n * Whether to show the backdrop overlay\n */\n @Prop() overlay: boolean = true;\n\n /**\n * Preset width of the modal: sm (400px), md (480px), lg (520px), xl (640px), xxl (688px)\n */\n @Prop() width: ModalWidth = 'sm';\n\n /**\n * Emitted when the modal is closed (overlay click or close button)\n */\n @Event() bhClose!: EventEmitter<void>;\n\n private handleClose = (): void => {\n this.bhClose.emit();\n };\n\n private handleOverlayClick = (event: MouseEvent): void => {\n if (event.target === event.currentTarget) {\n this.handleClose();\n }\n };\n\n render() {\n if (!this.visible) return null;\n\n const modalClasses = {\n 'modal-wrapper': true,\n 'modal-with-overlay': this.overlay,\n };\n\n return (\n <Host>\n <div class={modalClasses} onClick={this.handleOverlayClick}>\n {this.overlay && <div class=\"modal-overlay\" />}\n\n <div class=\"modal\" style={{ maxWidth: MODAL_WIDTHS[this.width] }}>\n <slot name=\"header\" />\n <slot />\n <slot name=\"actions\" />\n </div>\n </div>\n </Host>\n );\n }\n}\n"],"version":3}
@@ -1 +0,0 @@
1
- {"file":"p-DW54267I.js","mappings":"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","names":["__stencil_proxyCustomElement","HTMLElement"],"sources":["src/components/bh-picker-menu/bh-picker-menu.css?tag=bh-picker-menu&encapsulation=shadow","src/components/bh-picker-menu/bh-picker-menu.tsx"],"sourcesContent":["@import '../../global/global.css';\n\n:host {\n display: block;\n}\n\n/* Base picker menu styles - matching dropdown menu */\n.picker-menu {\n width: fit-content;\n min-width: 320px;\n background: var(--color-white);\n border-radius: var(--radius-md);\n box-shadow: 0px 32px 64px -12px rgba(64, 73, 104, 0.14),\n 0px 0px 1px 1px rgba(64, 73, 104, 0.1);\n border: 1px solid var(--color-neutral-200);\n overflow: hidden;\n flex-shrink: 0;\n position: relative;\n box-sizing: border-box;\n}\n\n/* Animation classes */\n.picker-menu.animate-dropdown-enter {\n animation: dropdownEnter 0.15s ease-out forwards;\n}\n\n.picker-menu.animate-dropdown-exit {\n animation: dropdownExit 0.15s ease-out forwards;\n}\n\n@keyframes dropdownEnter {\n from {\n opacity: 0;\n transform: translateY(-8px);\n }\n to {\n opacity: 1;\n transform: translateY(0);\n }\n}\n\n@keyframes dropdownExit {\n from {\n opacity: 1;\n transform: translateY(0);\n }\n to {\n opacity: 0;\n transform: translateY(-8px);\n }\n}\n\n/* No footer variant */\n.picker-menu.no-footer {\n padding-bottom: var(--spacing-md);\n}\n\n/* Footer - following dropdown menu pattern */\n.picker-menu-footer {\n border-top: 1px solid var(--color-neutral-200);\n padding: var(--spacing-xl) var(--spacing-xl);\n background: var(--color-white);\n}\n\n.picker-menu-actions {\n display: flex;\n justify-content: flex-end;\n align-items: center;\n gap: var(--spacing-lg);\n}\n\n/* When today button is present, use space-between layout */\n.picker-menu-actions.has-today-button {\n justify-content: space-between;\n}\n\n.picker-menu-main-actions {\n display: flex;\n gap: var(--spacing-lg);\n}\n","import { Component, Prop, State, Event, EventEmitter, Watch, h, Host } from '@stencil/core';\nimport { MonthYear, DisabledMonth } from '../bh-month-picker-content/bh-month-picker-content';\n\n@Component({\n tag: 'bh-picker-menu',\n styleUrl: 'bh-picker-menu.css',\n shadow: true,\n})\nexport class BhPickerMenu {\n /**\n * Minimum year in the picker\n */\n @Prop() minYear: number = 1998;\n\n /**\n * Maximum year in the picker\n */\n @Prop() maxYear: number = 2060;\n\n /**\n * Whether the picker is disabled\n */\n @Prop() disabled: boolean = false;\n\n /**\n * Array of disabled months\n */\n @Prop() disabledMonths: DisabledMonth[] = [];\n\n /**\n * Animation class for the menu\n */\n @Prop() animationClass: string = 'animate-dropdown-enter';\n\n /**\n * Whether the menu is visible\n */\n @Prop() visible: boolean = true;\n\n /**\n * Whether to show the footer with action buttons\n */\n @Prop() showFooter: boolean = true;\n\n /**\n * Whether to show the today button\n */\n @Prop() showTodayButton: boolean = false;\n\n /**\n * Whether the apply button is disabled\n */\n @Prop() disableApply: boolean = false;\n\n /**\n * Current value\n */\n @Prop() value?: MonthYear;\n\n @State() isClosing: boolean = false;\n @State() shouldRender: boolean = true;\n @State() selectedMonth: number | null = null;\n @State() selectedYear: number | null = null;\n\n /**\n * Event emitted when value changes\n */\n @Event() bhChange!: EventEmitter<MonthYear | null>;\n\n /**\n * Event emitted when a month/year is selected\n */\n @Event() bhMonthYearSelect!: EventEmitter<MonthYear>;\n\n /**\n * Event emitted when cancel is clicked\n */\n @Event() bhCancel!: EventEmitter<void>;\n\n /**\n * Event emitted when apply is clicked\n */\n @Event() bhApply!: EventEmitter<void>;\n\n /**\n * Event emitted when today button is clicked\n */\n @Event() bhToday!: EventEmitter<void>;\n\n @Watch('visible')\n handleVisibleChange(newValue: boolean) {\n if (newValue) {\n this.shouldRender = true;\n this.isClosing = false;\n } else {\n this.isClosing = true;\n setTimeout(() => {\n this.shouldRender = false;\n this.isClosing = false;\n }, 150);\n }\n }\n\n @Watch('value')\n handleValueChange(newValue: MonthYear | undefined) {\n if (newValue) {\n this.selectedMonth = newValue.month;\n this.selectedYear = newValue.year;\n }\n }\n\n componentWillLoad() {\n this.shouldRender = this.visible;\n\n if (this.value) {\n this.selectedMonth = this.value.month;\n this.selectedYear = this.value.year;\n } else {\n // Initialize with current date\n const now = new Date();\n const currentMonth = now.getMonth();\n const currentYear = now.getFullYear();\n\n if (currentYear >= this.minYear && currentYear <= this.maxYear) {\n this.selectedMonth = currentMonth;\n this.selectedYear = currentYear;\n } else if (currentYear < this.minYear) {\n this.selectedYear = this.minYear;\n this.selectedMonth = currentMonth;\n } else {\n this.selectedYear = this.maxYear;\n this.selectedMonth = currentMonth;\n }\n }\n }\n\n private handleMonthYearSelect = (event: CustomEvent<MonthYear>) => {\n const selection = event.detail;\n this.selectedMonth = selection.month;\n this.selectedYear = selection.year;\n this.bhChange.emit(selection);\n this.bhMonthYearSelect.emit(selection);\n };\n\n private handleCancel = () => {\n this.bhCancel.emit();\n };\n\n private handleApply = () => {\n this.bhApply.emit();\n };\n\n private handleToday = () => {\n this.bhToday.emit();\n };\n\n render() {\n if (!this.shouldRender) {\n return null;\n }\n\n const menuClasses = {\n 'picker-menu': true,\n 'animate-dropdown-exit': this.isClosing,\n [this.animationClass]: !this.isClosing,\n 'no-footer': !this.showFooter,\n };\n\n return (\n <Host>\n <div class={menuClasses}>\n {/* Main Content Area - render slot if provided, otherwise MonthPickerContent */}\n <slot>\n <bh-month-picker-content\n minYear={this.minYear}\n maxYear={this.maxYear}\n disabled={this.disabled}\n disabledMonths={this.disabledMonths}\n scrollable={true}\n selectedMonth={this.selectedMonth ?? undefined}\n selectedYear={this.selectedYear ?? undefined}\n onBhChange={this.handleMonthYearSelect}\n ></bh-month-picker-content>\n </slot>\n\n {/* Footer Actions - conditionally rendered */}\n {this.showFooter && (\n <div class=\"picker-menu-footer\">\n <div class={`picker-menu-actions ${this.showTodayButton ? 'has-today-button' : ''}`}>\n {/* Today button on the left */}\n {this.showTodayButton && (\n <bh-button\n hierarchy=\"secondary\"\n size=\"sm\"\n icon=\"only\"\n iconName=\"today\"\n onBhClick={this.handleToday}\n ></bh-button>\n )}\n\n {/* Cancel and Apply buttons always on the right */}\n <div class=\"picker-menu-main-actions\">\n <bh-button\n hierarchy=\"secondary\"\n size=\"sm\"\n label=\"Cancel\"\n onBhClick={this.handleCancel}\n ></bh-button>\n <bh-button\n hierarchy=\"primary\"\n size=\"sm\"\n label=\"Apply\"\n disabled={this.disableApply}\n onBhClick={this.handleApply}\n ></bh-button>\n </div>\n </div>\n </div>\n )}\n </div>\n </Host>\n );\n }\n\n}\n"],"version":3}
@@ -1 +0,0 @@
1
- {"file":"p-DcoR-p0a.js","mappings":";;AAAA,MAAM,aAAa,GAAG,sgCAAsgC;;MCU/gC,UAAU,iBAAAA,kBAAA,CAAA,MAAA,UAAA,SAAAC,CAAA,CAAA;;;;;;;;AACrB;;AAEG;IACK,IAAI,GAAiB,IAAI;AAEjC;;AAEG;IACK,KAAK,GAAkB,OAAO;AAEtC;;AAEG;IACK,OAAO,GAAY,KAAK;IAEhC,MAAM,GAAA;AACJ,QAAA,MAAM,UAAU,GAAG;AACjB,YAAA,WAAW,EAAE,IAAI;AACjB,YAAA,CAAC,aAAa,IAAI,CAAC,IAAI,CAAE,CAAA,GAAG,IAAI;AAChC,YAAA,CAAC,aAAa,IAAI,CAAC,KAAK,CAAE,CAAA,GAAG,IAAI;YACjC,mBAAmB,EAAE,IAAI,CAAC,OAAO;SAClC;AAED,QAAA,OAAO,CAAA,CAAA,KAAA,EAAA,EAAA,GAAA,EAAA,0CAAA,EAAK,KAAK,EAAE,UAAU,EAAE,IAAI,EAAC,KAAK,EAAA,CAAO;;;;;;;;;;;;;;;;;;;;;;;;;","names":["__stencil_proxyCustomElement","HTMLElement"],"sources":["src/components/bh-badge-dot/bh-badge-dot.css?tag=bh-badge-dot&encapsulation=shadow","src/components/bh-badge-dot/bh-badge-dot.tsx"],"sourcesContent":[":host {\n display: inline-block;\n}\n\n/* Base Badge Dot */\n.badge-dot {\n border-radius: 9999px;\n position: relative;\n display: inline-block;\n box-sizing: border-box;\n}\n\n/* Sizes */\n.badge-dot-sm {\n width: 6px;\n height: 6px;\n}\n\n.badge-dot-md {\n width: 8px;\n height: 8px;\n}\n\n.badge-dot-lg {\n width: 10px;\n height: 10px;\n}\n\n/* Colors */\n.badge-dot-success {\n background-color: var(--color-success-500, #17B26A);\n}\n\n.badge-dot-blue {\n background-color: var(--color-blue-500, #5068DD);\n}\n\n.badge-dot-error {\n background-color: var(--color-error-500, #F05250);\n}\n\n.badge-dot-warning {\n background-color: var(--color-warning-500, #F79009);\n}\n\n/* Outline versions */\n.badge-dot-outline.badge-dot-sm {\n outline: 3px solid;\n outline-offset: 0;\n}\n\n.badge-dot-outline.badge-dot-md {\n outline: 4px solid;\n outline-offset: 0;\n}\n\n.badge-dot-outline.badge-dot-lg {\n outline: 5px solid;\n outline-offset: 0;\n}\n\n/* Outline colors */\n.badge-dot-outline.badge-dot-success {\n outline-color: var(--color-success-100, #D1FADF);\n}\n\n.badge-dot-outline.badge-dot-blue {\n outline-color: var(--color-blue-200, #E1EAFE);\n}\n\n.badge-dot-outline.badge-dot-error {\n outline-color: var(--color-error-200, #FEE4E2);\n}\n\n.badge-dot-outline.badge-dot-warning {\n outline-color: var(--color-warning-200, #FEF0C7);\n}\n","import { Component, Prop, h } from '@stencil/core';\n\nexport type BadgeDotSize = 'sm' | 'md' | 'lg';\nexport type BadgeDotColor = 'success' | 'blue' | 'error' | 'warning';\n\n@Component({\n tag: 'bh-badge-dot',\n styleUrl: 'bh-badge-dot.css',\n shadow: true,\n})\nexport class BhBadgeDot {\n /**\n * The size of the badge dot\n */\n @Prop() size: BadgeDotSize = 'md';\n\n /**\n * The color of the badge dot\n */\n @Prop() color: BadgeDotColor = 'error';\n\n /**\n * Whether to show an outline ring around the dot\n */\n @Prop() outline: boolean = false;\n\n render() {\n const dotClasses = {\n 'badge-dot': true,\n [`badge-dot-${this.size}`]: true,\n [`badge-dot-${this.color}`]: true,\n 'badge-dot-outline': this.outline,\n };\n\n return <div class={dotClasses} part=\"dot\"></div>;\n }\n}\n"],"version":3}
@@ -1 +0,0 @@
1
- {"file":"p-Df5drD7C.js","mappings":";;AAAA,MAAM,YAAY,GAAG,w3DAAw3D;;MCOh4D,SAAS,iBAAAA,kBAAA,CAAA,MAAA,SAAA,SAAAC,CAAA,CAAA;;;;;;;;;AACpB;;AAEG;IACK,IAAI,GAAW,MAAM;AAE7B;;AAEG;IACK,KAAK,GAAW,MAAM;AAE9B;;AAEG;IACK,QAAQ,GAAY,KAAK;AAEjC;;AAEG;IACK,QAAQ,GAAY,KAAK;AAEjC;;AAEG;AACM,IAAA,OAAO;IAER,WAAW,GAAG,MAAK;AACzB,QAAA,IAAI,CAAC,IAAI,CAAC,QAAQ,EAAE;AAClB,YAAA,IAAI,CAAC,OAAO,CAAC,IAAI,EAAE;;AAEvB,KAAC;AAEO,IAAA,aAAa,GAAG,CAAC,KAAoB,KAAI;AAC/C,QAAA,IAAI,CAAC,KAAK,CAAC,GAAG,KAAK,OAAO,IAAI,KAAK,CAAC,GAAG,KAAK,GAAG,KAAK,CAAC,IAAI,CAAC,QAAQ,EAAE;YAClE,KAAK,CAAC,cAAc,EAAE;AACtB,YAAA,IAAI,CAAC,OAAO,CAAC,IAAI,EAAE;;AAEvB,KAAC;IAED,MAAM,GAAA;AACJ,QAAA,MAAM,cAAc,GAAG;AACrB,YAAA,UAAU,EAAE,IAAI;YAChB,QAAQ,EAAE,IAAI,CAAC,QAAQ;YACvB,UAAU,EAAE,IAAI,CAAC,QAAQ;SAC1B;QAED,QACE,CAAA,CAAA,KAAA,EAAA,EAAA,GAAA,EAAA,0CAAA,EAAK,KAAK,EAAE,cAAc,EAAA,EACxB,CAAA,CAAA,QAAA,EAAA,EAAA,GAAA,EAAA,0CAAA,EACE,KAAK,EAAC,iBAAiB,gBACX,IAAI,CAAC,KAAK,EACtB,IAAI,EAAC,QAAQ,EACb,OAAO,EAAE,IAAI,CAAC,WAAW,EACzB,SAAS,EAAE,IAAI,CAAC,aAAa,EAC7B,QAAQ,EAAE,IAAI,CAAC,QAAQ,EACvB,QAAQ,EAAE,IAAI,CAAC,QAAQ,GAAG,EAAE,GAAG,CAAC,EAAA,EAEhC,CAAM,CAAA,MAAA,EAAA,EAAA,GAAA,EAAA,0CAAA,EAAA,KAAK,EAAC,gCAAgC,EAAA,EAAE,IAAI,CAAC,IAAI,CAAQ,CACxD,EACT,CAAG,CAAA,GAAA,EAAA,EAAA,GAAA,EAAA,0CAAA,EAAA,KAAK,EAAC,gBAAgB,EAAE,EAAA,IAAI,CAAC,KAAK,CAAK,CACtC;;;;;;;;;;;;;;;;;;;;;;;;;;","names":["__stencil_proxyCustomElement","HTMLElement"],"sources":["src/components/bh-sidebar/bh-nav-item.css?tag=bh-nav-item&encapsulation=shadow","src/components/bh-sidebar/bh-nav-item.tsx"],"sourcesContent":["/* ==========================================================================\n BH-NAV-ITEM COMPONENT STYLES\n Navigation item for sidebar navigation\n ========================================================================== */\n\n:host {\n display: inline-block;\n}\n\n.nav-item {\n display: flex;\n flex-direction: column;\n align-items: center;\n justify-content: flex-start;\n position: relative;\n flex-shrink: 0;\n width: 100%;\n max-width: 52px;\n height: fit-content;\n}\n\n.nav-item-button {\n background-color: var(--color-white);\n box-sizing: border-box;\n display: flex;\n align-items: center;\n justify-content: center;\n overflow: hidden;\n padding: var(--spacing-md);\n position: relative;\n border-radius: var(--radius-sm);\n flex-shrink: 0;\n transition: background-color 0.2s ease;\n cursor: pointer;\n border: none;\n outline: none;\n}\n\n.nav-item-button:hover {\n background-color: var(--color-neutral-50);\n}\n\n.nav-item-button:focus-visible {\n box-shadow: 0 0 0 2px var(--color-brand-100);\n}\n\n.nav-item.active .nav-item-button {\n background-color: var(--color-brand-50);\n}\n\n.nav-item-button .icon {\n width: 20px;\n height: 20px;\n display: block;\n flex-shrink: 0;\n color: var(--color-neutral-500);\n transition: color 0.2s ease;\n font-size: 20px;\n font-variation-settings: 'FILL' 0, 'wght' 400, 'GRAD' 0, 'opsz' 20;\n}\n\n.nav-item-button:hover .icon {\n color: var(--color-neutral-700);\n}\n\n.nav-item.active .nav-item-button .icon {\n color: var(--color-brand-600);\n font-variation-settings: 'FILL' 0, 'wght' 400, 'GRAD' 0, 'opsz' 20;\n}\n\n.nav-item-label {\n font-family: var(--font-inter);\n font-weight: var(--weight-medium);\n height: 18px;\n line-height: 18px;\n font-style: normal;\n overflow: hidden;\n text-overflow: ellipsis;\n position: relative;\n flex-shrink: 0;\n color: var(--color-neutral-700);\n font-size: 10px;\n text-align: center;\n white-space: nowrap;\n width: 100%;\n max-width: 100%;\n margin: var(--spacing-none);\n margin-top: var(--spacing-xxs);\n box-sizing: border-box;\n direction: ltr;\n}\n\n.nav-item.active .nav-item-label {\n color: var(--color-neutral-700);\n font-weight: var(--weight-semibold);\n}\n\n/* Disabled state */\n.nav-item.disabled .nav-item-button {\n cursor: not-allowed;\n opacity: 0.5;\n}\n\n.nav-item.disabled .nav-item-button:hover {\n background-color: var(--color-white);\n}\n\n.nav-item.disabled .nav-item-button .icon {\n color: var(--color-neutral-400);\n}\n\n.nav-item.disabled .nav-item-label {\n color: var(--color-neutral-400);\n}\n","import { Component, Prop, Event, EventEmitter, h } from '@stencil/core';\n\n@Component({\n tag: 'bh-nav-item',\n styleUrl: 'bh-nav-item.css',\n shadow: true,\n})\nexport class BhNavItem {\n /**\n * Material Symbols icon name\n */\n @Prop() icon: string = 'home';\n\n /**\n * Label text displayed below the icon\n */\n @Prop() label: string = 'Home';\n\n /**\n * Whether the nav item is active/selected\n */\n @Prop() isActive: boolean = false;\n\n /**\n * Whether the nav item is disabled\n */\n @Prop() disabled: boolean = false;\n\n /**\n * Event emitted when the nav item is clicked\n */\n @Event() bhClick!: EventEmitter<void>;\n\n private handleClick = () => {\n if (!this.disabled) {\n this.bhClick.emit();\n }\n };\n\n private handleKeyDown = (event: KeyboardEvent) => {\n if ((event.key === 'Enter' || event.key === ' ') && !this.disabled) {\n event.preventDefault();\n this.bhClick.emit();\n }\n };\n\n render() {\n const navItemClasses = {\n 'nav-item': true,\n 'active': this.isActive,\n 'disabled': this.disabled,\n };\n\n return (\n <div class={navItemClasses}>\n <button\n class=\"nav-item-button\"\n aria-label={this.label}\n type=\"button\"\n onClick={this.handleClick}\n onKeyDown={this.handleKeyDown}\n disabled={this.disabled}\n tabIndex={this.disabled ? -1 : 0}\n >\n <span class=\"material-symbols-outlined icon\">{this.icon}</span>\n </button>\n <p class=\"nav-item-label\">{this.label}</p>\n </div>\n );\n }\n}\n"],"version":3}
@@ -1 +0,0 @@
1
- {"file":"p-DkGh2r0W.js","mappings":"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","names":["__stencil_proxyCustomElement","HTMLElement"],"sources":["src/components/bh-loader-spinner/bh-loader-spinner.css?tag=bh-loader-spinner&encapsulation=shadow","src/components/bh-loader-spinner/bh-loader-spinner.tsx"],"sourcesContent":["/* ==========================================================================\n LOADER SPINNER COMPONENT - StencilJS\n ========================================================================== */\n\n:host {\n display: inline-block;\n}\n\n/* Overlay styles */\n.loader-overlay {\n position: fixed;\n top: 0;\n left: 0;\n width: 100%;\n height: 100%;\n background-color: rgba(0, 0, 0, 0.3);\n backdrop-filter: blur(4px);\n display: flex;\n align-items: center;\n justify-content: center;\n z-index: 9999;\n}\n\n.loader-overlay-content {\n display: flex;\n flex-direction: column;\n align-items: center;\n gap: var(--spacing-md);\n}\n\n/* Container styles */\n.loader-container {\n display: flex;\n flex-direction: column;\n align-items: center;\n gap: var(--spacing-sm);\n}\n\n.loader-spinner {\n position: relative;\n display: inline-block;\n}\n\n/* Message styles */\n.loader-message {\n color: var(--color-neutral-700);\n font-size: var(--text-sm-size);\n line-height: var(--text-sm-line);\n font-weight: var(--weight-medium);\n text-align: center;\n margin-top: var(--spacing-xs);\n}\n\n.loader-overlay .loader-message {\n color: var(--color-white);\n}\n\n/* =========================\n GRADIENT VARIANT - Bellhop Sidebar Style\n ========================= */\n.spinner-gradient {\n animation: gradient-rotate 2s linear infinite;\n will-change: transform;\n}\n\n.gradient-svg {\n display: block;\n transform-origin: 50% 50%;\n}\n\n.gradient-path {\n stroke-dasharray: 90, 150;\n stroke-dashoffset: 0;\n animation: gradient-dash 1.5s ease-in-out infinite;\n transform-origin: 50% 50%;\n}\n\n/* Size variations for gradient */\n.size-sm .gradient-svg {\n width: 20px;\n height: 20px;\n}\n\n.size-sm .gradient-path {\n stroke-width: 5;\n}\n\n.size-md .gradient-svg {\n width: 30px;\n height: 30px;\n}\n\n.size-md .gradient-path {\n stroke-width: 5;\n}\n\n.size-lg .gradient-svg {\n width: 40px;\n height: 40px;\n}\n\n.size-lg .gradient-path {\n stroke-width: 5;\n}\n\n.size-xl .gradient-svg {\n width: 60px;\n height: 60px;\n}\n\n.size-xl .gradient-path {\n stroke-width: 6;\n}\n\n@keyframes gradient-rotate {\n 100% {\n transform: rotate(360deg);\n }\n}\n\n@keyframes gradient-dash {\n 0% {\n stroke-dasharray: 1, 150;\n stroke-dashoffset: 0;\n }\n 50% {\n stroke-dasharray: 90, 150;\n stroke-dashoffset: -35;\n }\n 100% {\n stroke-dasharray: 90, 150;\n stroke-dashoffset: -124;\n }\n}\n\n/* Hover effects - Ultra smooth acceleration */\n.loader-container:hover .spinner-gradient {\n animation-duration: 1s;\n}\n\n.loader-container:hover .gradient-path {\n animation-duration: 0.6s;\n}\n\n/* Performance optimizations */\n.spinner-gradient {\n backface-visibility: hidden;\n perspective: 1000px;\n}\n\n.gradient-svg {\n transform: translateZ(0);\n}\n","import { Component, Prop, h } from '@stencil/core';\n\nexport type LoaderSize = 'sm' | 'md' | 'lg' | 'xl';\nexport type LoaderVariant = 'default' | 'white';\n\n@Component({\n tag: 'bh-loader-spinner',\n styleUrl: 'bh-loader-spinner.css',\n shadow: true,\n})\nexport class BhLoaderSpinner {\n /** Loader size */\n @Prop() size: LoaderSize = 'md';\n\n /** Loader color variant - use 'white' for dark surfaces like buttons */\n @Prop() variant: LoaderVariant = 'default';\n\n /** Whether to show as overlay */\n @Prop() overlay: boolean = false;\n\n /** Message to show in overlay mode */\n @Prop() overlayMessage: string = '';\n\n /** Whether to show message */\n @Prop() showMessage: boolean = false;\n\n /** Message text */\n @Prop() message: string = 'Loading...';\n\n private renderSpinner() {\n const gradientId = this.variant === 'white' ? 'bellhop-gradient-white' : 'bellhop-gradient';\n\n return (\n <div class={`loader-spinner variant-${this.variant}`}>\n <div class=\"spinner-gradient\">\n <svg class=\"gradient-svg\" viewBox=\"0 0 50 50\">\n <defs>\n {this.variant === 'white' ? (\n <linearGradient\n id=\"bellhop-gradient-white\"\n x1=\"0%\"\n y1=\"0%\"\n x2=\"0%\"\n y2=\"100%\"\n >\n <stop offset=\"0%\" style={{ stopColor: 'rgba(255, 255, 255, 1)' }} />\n <stop offset=\"50%\" style={{ stopColor: 'rgba(255, 255, 255, 0.8)' }} />\n <stop offset=\"100%\" style={{ stopColor: 'rgba(255, 255, 255, 0.5)' }} />\n </linearGradient>\n ) : (\n <linearGradient\n id=\"bellhop-gradient\"\n x1=\"0%\"\n y1=\"0%\"\n x2=\"0%\"\n y2=\"100%\"\n >\n <stop offset=\"0%\" style={{ stopColor: 'var(--color-accent-300)' }} />\n <stop offset=\"51%\" style={{ stopColor: 'var(--color-brand-400)' }} />\n <stop offset=\"100%\" style={{ stopColor: 'var(--color-brand-600)' }} />\n </linearGradient>\n )}\n </defs>\n <circle\n class=\"gradient-path\"\n cx=\"25\"\n cy=\"25\"\n r=\"20\"\n fill=\"none\"\n stroke={`url(#${gradientId})`}\n stroke-width=\"4\"\n stroke-linecap=\"round\"\n />\n </svg>\n </div>\n </div>\n );\n }\n\n private renderMessage(isOverlay: boolean) {\n const shouldShowMessage = isOverlay\n ? (this.showMessage || this.overlayMessage)\n : this.showMessage;\n\n if (!shouldShowMessage) return null;\n\n return (\n <div class=\"loader-message\">\n {isOverlay ? (this.overlayMessage || this.message) : this.message}\n </div>\n );\n }\n\n render() {\n if (this.overlay) {\n return (\n <div class=\"loader-overlay\">\n <div class=\"loader-overlay-content\">\n <div class={`loader-container size-${this.size}`}>\n {this.renderSpinner()}\n </div>\n {this.renderMessage(true)}\n </div>\n </div>\n );\n }\n\n return (\n <div class={`loader-container size-${this.size}`}>\n {this.renderSpinner()}\n {this.renderMessage(false)}\n </div>\n );\n }\n}\n"],"version":3}
@@ -1 +0,0 @@
1
- {"file":"p-Dm3E-tB8.js","mappings":"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","names":["__stencil_proxyCustomElement","HTMLElement"],"sources":["src/components/bh-autocomplete-menu/bh-autocomplete-menu.css?tag=bh-autocomplete-menu&encapsulation=shadow","src/components/bh-autocomplete-menu/bh-autocomplete-menu.tsx"],"sourcesContent":["/* ==========================================================================\n AUTOCOMPLETE MENU COMPONENT\n Shared styles for all frameworks\n ========================================================================== */\n\n.autocomplete-menu {\n position: absolute;\n z-index: 1000;\n top: calc(100% + var(--spacing-sm));\n left: 0;\n right: 0;\n width: 100%;\n min-width: 240px;\n background: var(--color-white);\n border-radius: var(--radius-md);\n box-shadow: 0px 32px 64px -12px rgba(64, 73, 104, 0.14),\n 0px 0px 1px 1px rgba(64, 73, 104, 0.1);\n border: 1px solid var(--color-neutral-200);\n overflow: hidden;\n overflow-y: auto;\n /* Add padding like dropdown-menu items container */\n padding: var(--spacing-xs) 0;\n /* Optimizations for stable layout */\n box-sizing: border-box;\n transform: translateZ(0); /* Hardware acceleration */\n will-change: opacity, transform;\n}\n\n\n/* Menu Items - Match dropdown-menu styling exactly */\n.autocomplete-item {\n padding: var(--spacing-none) var(--spacing-sm);\n cursor: pointer;\n}\n\n.autocomplete-item.disabled {\n opacity: 0.5;\n cursor: not-allowed;\n}\n\n.item-content {\n display: flex;\n align-items: center;\n justify-content: space-between;\n gap: var(--spacing-lg);\n padding: var(--spacing-md) var(--spacing-md);\n border-radius: var(--radius-sm);\n transition: background-color 0.15s ease;\n}\n\n.autocomplete-item:hover:not(.disabled) .item-content {\n background: var(--color-neutral-100);\n}\n\n.autocomplete-item.selected .item-content {\n background: var(--color-neutral-100);\n}\n\n.item-text {\n font-family: var(--font-inter);\n font-weight: var(--weight-medium);\n font-size: var(--text-sm-size);\n line-height: var(--text-sm-line);\n color: var(--color-neutral-700);\n flex: 1;\n white-space: nowrap;\n overflow: hidden;\n text-overflow: ellipsis;\n min-width: 0;\n}\n\n.autocomplete-item.selected .item-text {\n color: var(--color-neutral-700);\n font-weight: var(--weight-medium);\n}\n\n.autocomplete-item.disabled .item-text {\n color: var(--color-neutral-400);\n}\n\n/* Highlight matching text */\n.item-text .highlight {\n font-weight: var(--weight-semibold);\n color: var(--color-neutral-800);\n}\n\n/* Check icon for multi-select */\n.check-icon {\n font-size: var(--text-xl-size);\n color: var(--color-brand-600);\n flex-shrink: 0;\n font-variation-settings: 'FILL' 1, 'wght' 500, 'GRAD' 0, 'opsz' 24;\n}\n\n/* Custom Scrollbar */\n.autocomplete-menu::-webkit-scrollbar {\n width: 6px;\n}\n\n.autocomplete-menu::-webkit-scrollbar-track {\n background: var(--color-neutral-50);\n border-radius: var(--radius-xs);\n}\n\n.autocomplete-menu::-webkit-scrollbar-thumb {\n background: var(--color-neutral-200);\n border-radius: var(--radius-xs);\n}\n\n.autocomplete-menu::-webkit-scrollbar-thumb:hover {\n background: var(--color-neutral-300);\n}\n\n/* Firefox scrollbar */\n.autocomplete-menu {\n scrollbar-width: thin;\n scrollbar-color: var(--color-neutral-200) var(--color-neutral-50);\n}\n\n/* High contrast mode support */\n@media (prefers-contrast: high) {\n .autocomplete-menu {\n border-width: 2px;\n }\n\n .autocomplete-item.selected {\n outline: 2px solid var(--color-brand-500);\n outline-offset: -2px;\n }\n}\n\n/* Reduced motion support */\n@media (prefers-reduced-motion: reduce) {\n .autocomplete-menu.animate-dropdown-enter,\n .autocomplete-menu.animate-dropdown-exit {\n animation: none;\n }\n\n .autocomplete-item {\n transition: none;\n }\n}\n","import { Component, Prop, Event, EventEmitter, State, Watch, h, Host } from '@stencil/core';\n\nexport interface AutocompleteMenuItem {\n id: string;\n label: string;\n disabled?: boolean;\n selected?: boolean;\n}\n\n@Component({\n tag: 'bh-autocomplete-menu',\n styleUrl: 'bh-autocomplete-menu.css',\n shadow: true,\n})\nexport class BhAutocompleteMenu {\n /**\n * Array of menu items\n */\n @Prop() menuItems: AutocompleteMenuItem[] = [];\n\n /**\n * Whether the menu is visible\n */\n @Prop() visible: boolean = false;\n\n /**\n * Currently selected item index\n */\n @Prop() selectedIndex: number = -1;\n\n /**\n * Maximum height of the menu in pixels\n */\n @Prop() maxHeight: number = 280;\n\n /**\n * Enable multi-select mode with checkmarks\n */\n @Prop() multiSelect: boolean = false;\n\n /**\n * Search query for highlighting text\n */\n @Prop() searchQuery: string = '';\n\n /**\n * Event emitted when an item is clicked\n */\n @Event() bhItemClick!: EventEmitter<AutocompleteMenuItem>;\n\n /**\n * Event emitted when an item is hovered\n */\n @Event() bhItemHover!: EventEmitter<number>;\n\n @State() isAnimating: boolean = false;\n @State() shouldRender: boolean = false;\n @State() items: AutocompleteMenuItem[] = [];\n\n @Watch('visible')\n watchVisible(newValue: boolean) {\n if (newValue) {\n this.shouldRender = true;\n this.isAnimating = false;\n } else {\n this.isAnimating = true;\n setTimeout(() => {\n this.shouldRender = false;\n this.isAnimating = false;\n }, 150);\n }\n }\n\n @Watch('menuItems')\n watchMenuItems(newValue: AutocompleteMenuItem[]) {\n this.items = [...newValue];\n }\n\n componentWillLoad() {\n this.shouldRender = this.visible;\n this.items = [...this.menuItems];\n }\n\n private handleItemClick = (item: AutocompleteMenuItem) => {\n if (!item.disabled) {\n if (this.multiSelect) {\n // Toggle selection in multi-select mode\n this.items = this.items.map(i =>\n i.id === item.id ? { ...i, selected: !i.selected } : i\n );\n const updatedItem = this.items.find(i => i.id === item.id)!;\n this.bhItemClick.emit(updatedItem);\n } else {\n this.bhItemClick.emit(item);\n }\n }\n };\n\n private handleItemMouseEnter = (index: number) => {\n this.bhItemHover.emit(index);\n };\n\n private handleMouseDown = (e: MouseEvent) => {\n e.preventDefault();\n };\n\n private getMenuClasses = () => {\n return {\n 'autocomplete-menu': true,\n 'animate-dropdown-exit': this.isAnimating && !this.visible,\n 'animate-dropdown-enter': this.visible && !this.isAnimating,\n };\n };\n\n private getItemClasses = (index: number, item: AutocompleteMenuItem) => {\n return {\n 'autocomplete-item': true,\n 'disabled': !!item.disabled,\n 'selected': index === this.selectedIndex,\n };\n };\n\n private getHighlightedText = (text: string) => {\n if (!this.searchQuery || this.searchQuery.length < 3) {\n return text;\n }\n\n const regex = new RegExp(`(${this.searchQuery})`, 'gi');\n const parts = text.split(regex);\n\n return parts.map((part, index) =>\n regex.test(part) ? (\n <span key={index} class=\"highlight\">{part}</span>\n ) : (\n <span key={index}>{part}</span>\n )\n );\n };\n\n render() {\n if (!this.shouldRender || this.items.length === 0) {\n return null;\n }\n\n return (\n <Host>\n <div\n class={this.getMenuClasses()}\n style={{ maxHeight: `${this.maxHeight}px` }}\n >\n {this.items.map((item, index) => (\n <div\n key={item.id}\n class={this.getItemClasses(index, item)}\n onMouseEnter={() => this.handleItemMouseEnter(index)}\n role=\"option\"\n aria-selected={index === this.selectedIndex ? 'true' : 'false'}\n aria-disabled={item.disabled ? 'true' : 'false'}\n >\n <div\n class=\"item-content\"\n onClick={() => this.handleItemClick(item)}\n onMouseDown={this.handleMouseDown}\n >\n <span class=\"item-text\" title={item.label}>\n {this.getHighlightedText(item.label)}\n </span>\n {this.multiSelect && item.selected && (\n <span class=\"check-icon material-symbols-outlined\">\n check\n </span>\n )}\n </div>\n </div>\n ))}\n </div>\n </Host>\n );\n }\n}\n"],"version":3}
@@ -1 +0,0 @@
1
- {"file":"p-DsCDXclM.js","mappings":";;;AAAA,MAAM,cAAc,GAAG,qhEAAqhE;;MCS/hE,WAAW,iBAAAA,kBAAA,CAAA,MAAA,WAAA,SAAAC,CAAA,CAAA;;;;;;;;;AACtB;;AAEG;IACK,IAAI,GAAkB,IAAI;AAElC;;AAEG;IACK,QAAQ,GAAY,KAAK;AAEjC;;AAEG;IACK,WAAW,GAAY,KAAK;AAEpC;;AAEG;IACK,WAAW,GAAW,UAAU;AAExC;;AAEG;IACM,SAAS,GAAY,KAAK;AAEnC;;AAEG;IACM,SAAS,GAAY,KAAK;AAEnC;;AAEG;AACM,IAAA,OAAO;AAER,IAAA,WAAW,GAAG,CAAC,KAAiB,KAAU;AAChD,QAAA,IAAI,CAAC,IAAI,CAAC,QAAQ,EAAE;AAClB,YAAA,IAAI,CAAC,OAAO,CAAC,IAAI,CAAC,KAAK,CAAC;;AAE5B,KAAC;AAEO,IAAA,aAAa,GAAG,CAAC,KAAoB,KAAU;AACrD,QAAA,IAAI,CAAC,KAAK,CAAC,GAAG,KAAK,OAAO,IAAI,KAAK,CAAC,GAAG,KAAK,GAAG,KAAK,CAAC,IAAI,CAAC,QAAQ,EAAE;YAClE,KAAK,CAAC,cAAc,EAAE;AACtB,YAAA,IAAI,CAAC,OAAO,CAAC,IAAI,CAAC,KAA8B,CAAC;;AAErD,KAAC;IAED,MAAM,GAAA;AACJ,QAAA,MAAM,aAAa,GAAG;AACpB,YAAA,YAAY,EAAE,IAAI;AAClB,YAAA,CAAC,cAAc,IAAI,CAAC,IAAI,CAAE,CAAA,GAAG,IAAI;YACjC,kBAAkB,EAAE,IAAI,CAAC,SAAS,IAAI,CAAC,IAAI,CAAC,QAAQ;YACpD,kBAAkB,EAAE,IAAI,CAAC,SAAS,IAAI,CAAC,IAAI,CAAC,QAAQ;YACpD,qBAAqB,EAAE,IAAI,CAAC,QAAQ;SACrC;QAED,QACE,CAAA,CAAA,KAAA,EAAA,EAAA,GAAA,EAAA,0CAAA,EAAK,KAAK,EAAC,sBAAsB,EAAA,EAC/B,CAAA,CAAA,QAAA,EAAA,EAAA,GAAA,EAAA,0CAAA,EACE,IAAI,EAAC,QAAQ,EACb,KAAK,EAAE,aAAa,EACpB,QAAQ,EAAE,IAAI,CAAC,QAAQ,EACvB,OAAO,EAAE,IAAI,CAAC,WAAW,EACzB,SAAS,EAAE,IAAI,CAAC,aAAa,EAC7B,YAAY,EAAE,MAAK;gBACjB,IAAI,CAAC,IAAI,CAAC,QAAQ;AAAE,oBAAA,IAAI,CAAC,SAAS,GAAG,IAAI;AAC3C,aAAC,EACD,YAAY,EAAE,MAAK;AACjB,gBAAA,IAAI,CAAC,SAAS,GAAG,KAAK;AACxB,aAAC,EACD,OAAO,EAAE,MAAK;gBACZ,IAAI,CAAC,IAAI,CAAC,QAAQ;AAAE,oBAAA,IAAI,CAAC,SAAS,GAAG,IAAI;AAC3C,aAAC,EACD,MAAM,EAAE,MAAK;AACX,gBAAA,IAAI,CAAC,SAAS,GAAG,KAAK;AACxB,aAAC,gBACW,IAAI,CAAC,WAAW,EAC5B,IAAI,EAAC,QAAQ,EAAA,EAEb,CAAM,CAAA,MAAA,EAAA,EAAA,GAAA,EAAA,0CAAA,EAAA,KAAK,EAAC,oBAAoB,EAAA,EAC9B,CAAA,CAAA,MAAA,EAAA,EAAA,GAAA,EAAA,0CAAA,EAAM,KAAK,EAAC,2CAA2C,EAAA,EAAA,KAAA,CAAW,CAC7D,CACA,EAER,IAAI,CAAC,WAAW,KACf,CACE,CAAA,YAAA,EAAA,EAAA,GAAA,EAAA,0CAAA,EAAA,IAAI,EAAE,IAAI,CAAC,WAAW,EACtB,OAAO,EAAE,IAAI,CAAC,SAAS,IAAI,CAAC,IAAI,CAAC,QAAQ,EACzC,QAAQ,EAAC,QAAQ,EAAA,CACjB,CACH,CACG;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;","names":["__stencil_proxyCustomElement","HTMLElement"],"sources":["src/components/bh-avatar-add/bh-avatar-add.css?tag=bh-avatar-add&encapsulation=shadow","src/components/bh-avatar-add/bh-avatar-add.tsx"],"sourcesContent":[":host {\n display: inline-block;\n font-family: var(\n --font-inter,\n 'Inter',\n -apple-system,\n BlinkMacSystemFont,\n sans-serif\n );\n}\n\n/* Container */\n.avatar-add-container {\n position: relative;\n display: inline-flex;\n}\n\n/* Base Button */\n.avatar-add {\n position: relative;\n display: inline-flex;\n align-items: center;\n justify-content: center;\n background-color: var(--color-white, #ffffff);\n border: 1px dashed var(--color-neutral-300, #d0d5dd);\n border-radius: 50%;\n cursor: pointer;\n transition: all 0.2s ease-in-out;\n padding: 0;\n outline: none;\n}\n\n/* Button Sizes */\n.avatar-add-xs {\n width: 24px;\n height: 24px;\n}\n\n.avatar-add-xs .avatar-add-icon {\n font-size: 14px;\n}\n\n.avatar-add-sm {\n width: 32px;\n height: 32px;\n}\n\n.avatar-add-sm .avatar-add-icon {\n font-size: 16px;\n}\n\n.avatar-add-md {\n width: 40px;\n height: 40px;\n}\n\n.avatar-add-md .avatar-add-icon {\n font-size: 20px;\n}\n\n.avatar-add-lg {\n width: 48px;\n height: 48px;\n}\n\n.avatar-add-lg .avatar-add-icon {\n font-size: 24px;\n}\n\n.avatar-add-xl {\n width: 56px;\n height: 56px;\n}\n\n.avatar-add-xl .avatar-add-icon {\n font-size: 28px;\n}\n\n.avatar-add-2xl {\n width: 64px;\n height: 64px;\n}\n\n.avatar-add-2xl .avatar-add-icon {\n font-size: 32px;\n}\n\n/* Hover State */\n.avatar-add-hover {\n background-color: var(--color-neutral-50, #f9fafb);\n border-color: var(--color-brand-500, #7f56d9);\n}\n\n.avatar-add-hover .avatar-add-icon {\n color: var(--color-brand-500, #7f56d9);\n}\n\n/* Focus State */\n.avatar-add-focus {\n background-color: var(--color-white, #ffffff);\n box-shadow: 0 0 0 2px var(--color-white, #ffffff),\n 0 0 0 4px var(--color-brand-500, #7f56d9);\n}\n\n/* Disabled State */\n.avatar-add-disabled {\n background-color: var(--color-neutral-50, #f9fafb);\n cursor: not-allowed;\n pointer-events: none;\n}\n\n.avatar-add-disabled .avatar-add-icon {\n color: var(--color-neutral-300, #d0d5dd);\n}\n\n/* Content Container */\n.avatar-add-content {\n display: flex;\n align-items: center;\n justify-content: center;\n}\n\n/* Icon */\n.avatar-add-icon {\n color: var(--color-neutral-500, #667085);\n line-height: 1;\n transition: color 0.2s ease-in-out;\n}\n\n/* Material Symbols */\n.material-symbols-outlined {\n font-family: 'Material Symbols Outlined';\n font-weight: normal;\n font-style: normal;\n line-height: 1;\n letter-spacing: normal;\n text-transform: none;\n display: inline-block;\n white-space: nowrap;\n word-wrap: normal;\n direction: ltr;\n font-feature-settings: 'liga';\n -webkit-font-smoothing: antialiased;\n font-variation-settings: 'FILL' 0, 'wght' 400, 'GRAD' 0, 'opsz' 24;\n}\n","import { Component, Prop, State, Event, EventEmitter, h } from '@stencil/core';\n\nexport type AvatarAddSize = 'xs' | 'sm' | 'md' | 'lg' | 'xl' | '2xl';\n\n@Component({\n tag: 'bh-avatar-add',\n styleUrl: 'bh-avatar-add.css',\n shadow: true,\n})\nexport class BhAvatarAdd {\n /**\n * Size of the avatar add button\n */\n @Prop() size: AvatarAddSize = 'md';\n\n /**\n * Whether the button is disabled\n */\n @Prop() disabled: boolean = false;\n\n /**\n * Whether to show tooltip on hover\n */\n @Prop() showTooltip: boolean = false;\n\n /**\n * Tooltip text\n */\n @Prop() tooltipText: string = 'Add user';\n\n /**\n * Track hover state\n */\n @State() isHovered: boolean = false;\n\n /**\n * Track focus state\n */\n @State() isFocused: boolean = false;\n\n /**\n * Emitted when the button is clicked\n */\n @Event() bhClick!: EventEmitter<MouseEvent>;\n\n private handleClick = (event: MouseEvent): void => {\n if (!this.disabled) {\n this.bhClick.emit(event);\n }\n };\n\n private handleKeyDown = (event: KeyboardEvent): void => {\n if ((event.key === 'Enter' || event.key === ' ') && !this.disabled) {\n event.preventDefault();\n this.bhClick.emit(event as unknown as MouseEvent);\n }\n };\n\n render() {\n const buttonClasses = {\n 'avatar-add': true,\n [`avatar-add-${this.size}`]: true,\n 'avatar-add-hover': this.isHovered && !this.disabled,\n 'avatar-add-focus': this.isFocused && !this.disabled,\n 'avatar-add-disabled': this.disabled,\n };\n\n return (\n <div class=\"avatar-add-container\">\n <button\n type=\"button\"\n class={buttonClasses}\n disabled={this.disabled}\n onClick={this.handleClick}\n onKeyDown={this.handleKeyDown}\n onMouseEnter={() => {\n if (!this.disabled) this.isHovered = true;\n }}\n onMouseLeave={() => {\n this.isHovered = false;\n }}\n onFocus={() => {\n if (!this.disabled) this.isFocused = true;\n }}\n onBlur={() => {\n this.isFocused = false;\n }}\n aria-label={this.tooltipText}\n part=\"button\"\n >\n <span class=\"avatar-add-content\">\n <span class=\"material-symbols-outlined avatar-add-icon\">add</span>\n </span>\n </button>\n\n {this.showTooltip && (\n <bh-tooltip\n text={this.tooltipText}\n visible={this.isHovered && !this.disabled}\n position=\"bottom\"\n />\n )}\n </div>\n );\n }\n}\n"],"version":3}
@@ -1 +0,0 @@
1
- {"file":"p-DtbXB8r4.js","mappings":";;AAAA,MAAM,SAAS,GAAG,m8BAAm8B;;MCOx8B,MAAM,iBAAAA,kBAAA,CAAA,MAAA,MAAA,SAAAC,CAAA,CAAA;;;;;;;;;AAGjB;;AAEG;IACK,UAAU,GAAY,IAAI;AAElC;;AAEG;IACK,UAAU,GAAY,IAAI;AAElC;;AAEG;IACK,gBAAgB,GAAW,GAAG;AAEtC;;AAEG;IACK,eAAe,GAAW,mBAAmB;IAE5C,UAAU,GAAY,KAAK;IAEpC,iBAAiB,GAAA;QACf,IAAI,CAAC,eAAe,EAAE;;IAGhB,eAAe,GAAA;QACrB,MAAM,QAAQ,GAAG,KAAK,CAAC,IAAI,CAAC,IAAI,CAAC,EAAE,CAAC,UAAU,CAAC,CAAC,MAAM,CACpD,CAAC,IAAI,KACH,CAAC,IAAI,CAAC,QAAQ,KAAK,IAAI,CAAC,YAAY;AAClC,YAAA,CAAE,IAAgB,CAAC,YAAY,CAAC,MAAM,CAAC;AACzC,aAAC,IAAI,CAAC,QAAQ,KAAK,IAAI,CAAC,SAAS,IAAI,IAAI,CAAC,WAAW,EAAE,IAAI,EAAE,CAAC,CACjE;QACD,IAAI,CAAC,UAAU,GAAG,QAAQ,CAAC,MAAM,GAAG,CAAC;;IAGvC,MAAM,GAAA;AACJ,QAAA,MAAM,YAAY,GAAG;AACnB,YAAA,SAAS,EAAE,CAAA,EAAG,IAAI,CAAC,gBAAgB,CAAI,EAAA,CAAA;SACxC;AAED,QAAA,QACE,EAAC,IAAI,EAAA,EAAA,GAAA,EAAA,0CAAA,EAAA,EACH,CAAK,CAAA,KAAA,EAAA,EAAA,GAAA,EAAA,0CAAA,EAAA,KAAK,EAAC,MAAM,EAAA,EACd,IAAI,CAAC,UAAU,KACd,CAAK,CAAA,KAAA,EAAA,EAAA,GAAA,EAAA,0CAAA,EAAA,KAAK,EAAC,kBAAkB,EAAA,EAC3B,CAAA,CAAA,MAAA,EAAA,EAAA,GAAA,EAAA,0CAAA,EAAM,IAAI,EAAC,QAAQ,EAAA,CAAG,CAClB,CACP,EACD,CAAA,CAAA,KAAA,EAAA,EAAA,GAAA,EAAA,0CAAA,EAAK,KAAK,EAAC,cAAc,EAAC,KAAK,EAAE,YAAY,EAAA,EAC3C,CAAQ,CAAA,MAAA,EAAA,EAAA,GAAA,EAAA,0CAAA,EAAA,CAAA,EACP,CAAC,IAAI,CAAC,UAAU,KACf,CAAK,CAAA,KAAA,EAAA,EAAA,GAAA,EAAA,0CAAA,EAAA,KAAK,EAAC,0BAA0B,EAAA,EACnC,CAAM,CAAA,MAAA,EAAA,EAAA,GAAA,EAAA,0CAAA,EAAA,KAAK,EAAC,uBAAuB,EAAE,EAAA,IAAI,CAAC,eAAe,CAAQ,CAC7D,CACP,CACG,EACL,IAAI,CAAC,UAAU,KACd,CAAK,CAAA,KAAA,EAAA,EAAA,GAAA,EAAA,0CAAA,EAAA,KAAK,EAAC,kBAAkB,EAAA,EAC3B,CAAM,CAAA,MAAA,EAAA,EAAA,GAAA,EAAA,0CAAA,EAAA,IAAI,EAAC,QAAQ,EAAA,CAAG,CAClB,CACP,CACG,CACD;;;;;;;;;;;;;;;;;;;;;;;;;;;","names":["__stencil_proxyCustomElement","HTMLElement"],"sources":["src/components/bh-card/bh-card.css?tag=bh-card&encapsulation=shadow","src/components/bh-card/bh-card.tsx"],"sourcesContent":[":host {\n display: block;\n}\n\n.card {\n display: flex;\n flex-direction: column;\n background: var(--color-white);\n border: 1px solid var(--color-neutral-200);\n border-radius: var(--radius-xl);\n overflow: hidden;\n font-family: var(--font-inter);\n}\n\n.card-header-slot {\n display: contents;\n}\n\n.card-content {\n display: flex;\n flex-direction: column;\n flex: 1 0 auto;\n padding: var(--spacing-lg) var(--spacing-xl);\n gap: var(--spacing-none);\n}\n\n.card-footer-slot {\n display: contents;\n}\n\n/* Placeholder styles */\n.card-content-placeholder {\n display: flex;\n flex-direction: column;\n align-items: center;\n justify-content: center;\n flex: 1;\n gap: var(--spacing-md);\n padding: var(--spacing-xl);\n background: var(--color-purple-50, #f5f3ff);\n border: 1px dashed var(--color-purple-500, #7c3aed);\n border-radius: var(--radius-xl);\n min-height: 100%;\n}\n\n.card-placeholder-icon {\n font-size: 32px;\n color: var(--color-purple-500, #7c3aed);\n}\n\n.card-placeholder-text {\n font-size: var(--font-size-sm);\n font-weight: var(--font-weight-medium);\n color: var(--color-purple-700, #6d28d9);\n text-decoration: underline;\n text-align: center;\n}\n","import { Component, Prop, State, Element, h, Host } from '@stencil/core';\n\n@Component({\n tag: 'bh-card',\n styleUrl: 'bh-card.css',\n shadow: true,\n})\nexport class BhCard {\n @Element() el!: HTMLElement;\n\n /**\n * Whether to show the header section\n */\n @Prop() showHeader: boolean = true;\n\n /**\n * Whether to show the footer section\n */\n @Prop() showFooter: boolean = true;\n\n /**\n * Minimum height of the content area in pixels\n */\n @Prop() contentMinHeight: number = 200;\n\n /**\n * Placeholder text shown when no content is provided\n */\n @Prop() placeholderText: string = 'Card content slot';\n\n @State() hasContent: boolean = false;\n\n componentWillLoad() {\n this.checkForContent();\n }\n\n private checkForContent() {\n const children = Array.from(this.el.childNodes).filter(\n (node) =>\n (node.nodeType === Node.ELEMENT_NODE &&\n !(node as Element).hasAttribute('slot')) ||\n (node.nodeType === Node.TEXT_NODE && node.textContent?.trim())\n );\n this.hasContent = children.length > 0;\n }\n\n render() {\n const contentStyle = {\n minHeight: `${this.contentMinHeight}px`,\n };\n\n return (\n <Host>\n <div class=\"card\">\n {this.showHeader && (\n <div class=\"card-header-slot\">\n <slot name=\"header\" />\n </div>\n )}\n <div class=\"card-content\" style={contentStyle}>\n <slot />\n {!this.hasContent && (\n <div class=\"card-content-placeholder\">\n <span class=\"card-placeholder-text\">{this.placeholderText}</span>\n </div>\n )}\n </div>\n {this.showFooter && (\n <div class=\"card-footer-slot\">\n <slot name=\"footer\" />\n </div>\n )}\n </div>\n </Host>\n );\n }\n}\n"],"version":3}
@@ -1 +0,0 @@
1
- {"file":"p-DufL1yr4.js","mappings":"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","names":["__stencil_proxyCustomElement","HTMLElement"],"sources":["src/components/bh-label/bh-label.css?tag=bh-label&encapsulation=shadow","src/components/bh-label/bh-label.tsx"],"sourcesContent":[":host {\n display: block;\n font-family: var(--font-inter, 'Inter', sans-serif);\n}\n\n.label-container {\n display: flex;\n flex-direction: column;\n gap: var(--spacing-xs, 6px);\n}\n\n.label-container.layout-block {\n flex-direction: column;\n}\n\n.label-container.layout-inline {\n flex-direction: row;\n align-items: flex-start;\n gap: var(--spacing-sm, 8px);\n}\n\n.label-container.layout-inline .label-wrapper {\n flex-shrink: 0;\n}\n\n.label-container.layout-inline-start {\n flex-direction: row;\n align-items: flex-start;\n gap: var(--spacing-sm, 8px);\n}\n\n.label-container.layout-inline-start .label-content {\n flex-shrink: 0;\n width: auto;\n}\n\n.label-container.layout-inline-start .label-text-group {\n display: flex;\n flex-direction: column;\n gap: 2px;\n}\n\n.label-container.layout-inline-start .label-wrapper {\n gap: var(--spacing-xxs, 4px);\n}\n\n.label-container.layout-inline-start .label-text {\n font-size: var(--text-md-size, 16px);\n color: var(--color-neutral-900, #101828);\n cursor: pointer;\n}\n\n.label-container.layout-inline-start .supporting-text {\n font-size: var(--text-sm-size, 14px);\n color: var(--color-neutral-500, #667085);\n}\n\n.label-container.layout-inline-space-between {\n flex-direction: row;\n align-items: flex-start;\n justify-content: space-between;\n gap: var(--spacing-sm, 8px);\n}\n\n.label-container.layout-inline-space-between .label-wrapper {\n flex-shrink: 0;\n}\n\n.label-container.layout-inline-space-between .label-content {\n flex-grow: 1;\n display: flex;\n justify-content: flex-end;\n}\n\n.label-wrapper {\n display: flex;\n align-items: center;\n gap: var(--spacing-xxs, 4px);\n}\n\n.label-text {\n font-family: inherit;\n font-weight: 500;\n font-size: var(--text-sm-size, 14px);\n line-height: 1.43;\n color: var(--color-neutral-700, #344054);\n margin: 0;\n cursor: default;\n}\n\n.label-text.disabled {\n color: var(--color-neutral-400, #98a2b3);\n}\n\n.asterisk {\n font-family: inherit;\n font-weight: 400;\n font-size: var(--text-sm-size, 14px);\n line-height: 1.43;\n color: var(--color-error-600, #dc2626);\n}\n\n.supporting-text {\n font-family: inherit;\n font-weight: 400;\n font-size: var(--text-sm-size, 14px);\n line-height: 1.43;\n color: var(--color-neutral-500, #667085);\n margin: 0;\n}\n\n.supporting-text.disabled {\n color: var(--color-neutral-400, #98a2b3);\n}\n\n.label-content {\n width: 100%;\n}\n\n.icon-with-tooltip {\n position: relative;\n display: flex;\n align-items: center;\n flex-shrink: 0;\n margin-left: auto;\n}\n\n.help-icon {\n font-size: var(--text-xl-size, 20px);\n color: var(--color-neutral-400, #98a2b3);\n cursor: pointer;\n user-select: none;\n transition: color 0.2s ease-in-out;\n}\n\n.help-icon:hover {\n color: var(--color-neutral-500, #667085);\n}\n\n.disabled .help-icon {\n color: var(--color-neutral-300, #d0d5dd);\n cursor: not-allowed;\n}\n","import { Component, Prop, h, Element, State, Event, EventEmitter } from '@stencil/core';\n\nexport type LabelLayout = 'block' | 'inline' | 'inline-start' | 'inline-space-between';\n\n@Component({\n tag: 'bh-label',\n styleUrl: 'bh-label.css',\n shadow: true,\n})\nexport class BhLabel {\n @Element() el!: HTMLElement;\n\n private tooltipTimerRef?: ReturnType<typeof setTimeout>;\n\n /**\n * The label text to display\n */\n @Prop() label: string = '';\n\n /**\n * Layout style for the label container\n * - block: Label above content (default for form fields)\n * - inline: Label next to content (label first)\n * - inline-start: Content next to label (content first, for checkboxes/radios)\n * - inline-space-between: Label and content on opposite ends\n */\n @Prop() layout: LabelLayout = 'block';\n\n /**\n * The id of the form element the label is bound to.\n * Use when the labeled element is not a child of this component.\n */\n @Prop() for: string = '';\n\n /**\n * Supporting text displayed below the label (second line)\n * for instructions or additional description\n */\n @Prop() supportingText: string = '';\n\n /**\n * Whether to show the required asterisk\n */\n @Prop() required: boolean = false;\n\n /**\n * Whether to show the help icon\n */\n @Prop() showHelpIcon: boolean = false;\n\n /**\n * Tooltip text for the help icon\n */\n @Prop() helpIconTooltip: string = 'Help';\n\n /**\n * Whether the label is disabled\n */\n @Prop() disabled: boolean = false;\n\n @State() showHelpTooltip: boolean = false;\n\n /**\n * Emitted when the help icon is clicked\n */\n @Event() bhHelpClick!: EventEmitter<void>;\n\n disconnectedCallback() {\n if (this.tooltipTimerRef) {\n clearTimeout(this.tooltipTimerRef);\n }\n }\n\n private handleHelpIconMouseEnter = () => {\n if (this.tooltipTimerRef) {\n clearTimeout(this.tooltipTimerRef);\n }\n this.tooltipTimerRef = setTimeout(() => {\n this.showHelpTooltip = true;\n }, 300);\n };\n\n private handleHelpIconMouseLeave = () => {\n if (this.tooltipTimerRef) {\n clearTimeout(this.tooltipTimerRef);\n this.tooltipTimerRef = undefined;\n }\n this.showHelpTooltip = false;\n };\n\n private handleHelpIconClick = () => {\n this.bhHelpClick.emit();\n };\n\n render() {\n const wrapperClasses = {\n 'label-container': true,\n [`layout-${this.layout}`]: true,\n 'disabled': this.disabled,\n };\n\n const labelClasses = {\n 'label-text': true,\n 'disabled': this.disabled,\n };\n\n const supportingClasses = {\n 'supporting-text': true,\n 'disabled': this.disabled,\n };\n\n const labelWrapper = (\n <div class=\"label-wrapper\">\n {this.label && (\n <label class={labelClasses} htmlFor={this.for || undefined}>\n {this.label}\n </label>\n )}\n {this.required && <span class=\"asterisk\">*</span>}\n {this.showHelpIcon && (\n <div class=\"icon-with-tooltip\">\n <span\n class=\"help-icon material-symbols-outlined\"\n onClick={this.handleHelpIconClick}\n onMouseEnter={this.handleHelpIconMouseEnter}\n onMouseLeave={this.handleHelpIconMouseLeave}\n >\n help\n </span>\n <bh-tooltip\n text={this.helpIconTooltip}\n position=\"top\"\n visible={this.showHelpTooltip}\n />\n </div>\n )}\n </div>\n );\n\n const supportingTextEl = this.supportingText && (\n <p class={supportingClasses}>{this.supportingText}</p>\n );\n\n const contentSlot = (\n <div class=\"label-content\">\n <slot></slot>\n </div>\n );\n\n // For inline-start layout, content comes first (used for checkbox/radio)\n if (this.layout === 'inline-start') {\n return (\n <div class={wrapperClasses}>\n {contentSlot}\n <div class=\"label-text-group\">\n {labelWrapper}\n {supportingTextEl}\n </div>\n </div>\n );\n }\n\n // Default layout: label wrapper first, then content\n return (\n <div class={wrapperClasses}>\n {labelWrapper}\n {supportingTextEl}\n {contentSlot}\n </div>\n );\n }\n}\n"],"version":3}
@@ -1 +0,0 @@
1
- {"file":"p-SkkbcLa0.js","mappings":";;AAAA,MAAM,uBAAuB,GAAG,2zPAA2zP;;MCiB90P,oBAAoB,iBAAAA,kBAAA,CAAA,MAAA,oBAAA,SAAAC,CAAA,CAAA;;;;;;;;;;;AAG/B;;AAEG;IACK,OAAO,GAAW,IAAI;AAE9B;;AAEG;IACK,OAAO,GAAW,IAAI;AAE9B;;AAEG;IACK,QAAQ,GAAY,KAAK;AAEjC;;AAEG;IACK,cAAc,GAAoB,EAAE;AAE5C;;AAEG;IACK,UAAU,GAAY,IAAI;AAElC;;AAEG;AACK,IAAA,aAAa;AAErB;;AAEG;AACK,IAAA,YAAY;AAEpB;;AAEG;IACK,MAAM,GAAW,OAAO;AAEhC;;AAEG;AACK,IAAA,KAAK;IAEJ,qBAAqB,GAAkB,IAAI;IAC3C,oBAAoB,GAAkB,IAAI;IAC1C,eAAe,GAAY,KAAK;AAEzC;;AAEG;AACM,IAAA,QAAQ;AAEjB;;AAEG;AACM,IAAA,iBAAiB;IAElB,MAAM,GAAG,CAAC,KAAK,EAAE,KAAK,EAAE,KAAK,EAAE,KAAK,EAAE,KAAK,EAAE,KAAK,EAAE,KAAK,EAAE,KAAK,EAAE,KAAK,EAAE,KAAK,EAAE,KAAK,EAAE,KAAK,CAAC;AAC7F,IAAA,WAAW,GAAG,IAAI,IAAI,EAAE;AACxB,IAAA,YAAY,GAAG,IAAI,CAAC,WAAW,CAAC,QAAQ,EAAE;AAC1C,IAAA,WAAW,GAAG,IAAI,CAAC,WAAW,CAAC,WAAW,EAAE;AAGpD,IAAA,iBAAiB,CAAC,QAA+B,EAAA;QAC/C,IAAI,QAAQ,EAAE;AACZ,YAAA,IAAI,CAAC,qBAAqB,GAAG,QAAQ,CAAC,KAAK;AAC3C,YAAA,IAAI,CAAC,oBAAoB,GAAG,QAAQ,CAAC,IAAI;;;AAK7C,IAAA,yBAAyB,CAAC,QAA4B,EAAA;AACpD,QAAA,IAAI,QAAQ,KAAK,SAAS,EAAE;AAC1B,YAAA,IAAI,CAAC,qBAAqB,GAAG,QAAQ;;;AAKzC,IAAA,wBAAwB,CAAC,QAA4B,EAAA;AACnD,QAAA,IAAI,QAAQ,KAAK,SAAS,EAAE;AAC1B,YAAA,IAAI,CAAC,oBAAoB,GAAG,QAAQ;;;IAIxC,iBAAiB,GAAA;;AAEf,QAAA,IAAI,IAAI,CAAC,KAAK,EAAE;YACd,IAAI,CAAC,qBAAqB,GAAG,IAAI,CAAC,KAAK,CAAC,KAAK;YAC7C,IAAI,CAAC,oBAAoB,GAAG,IAAI,CAAC,KAAK,CAAC,IAAI;;AACtC,aAAA,IAAI,IAAI,CAAC,aAAa,KAAK,SAAS,IAAI,IAAI,CAAC,YAAY,KAAK,SAAS,EAAE;YAC9E,IAAI,CAAC,qBAAqB,GAAG,IAAI,CAAC,aAAa,IAAI,IAAI,CAAC,YAAY;YACpE,IAAI,CAAC,oBAAoB,GAAG,IAAI,CAAC,YAAY,IAAI,IAAI,CAAC,WAAW;;aAC5D;;AAEL,YAAA,IAAI,IAAI,CAAC,WAAW,IAAI,IAAI,CAAC,OAAO,IAAI,IAAI,CAAC,WAAW,IAAI,IAAI,CAAC,OAAO,EAAE;AACxE,gBAAA,IAAI,CAAC,qBAAqB,GAAG,IAAI,CAAC,YAAY;AAC9C,gBAAA,IAAI,CAAC,oBAAoB,GAAG,IAAI,CAAC,WAAW;;iBACvC;AACL,gBAAA,IAAI,CAAC,qBAAqB,GAAG,IAAI,CAAC,YAAY;gBAC9C,IAAI,CAAC,oBAAoB,GAAG,IAAI,CAAC,WAAW,GAAG,IAAI,CAAC,OAAO,GAAG,IAAI,CAAC,OAAO,GAAG,IAAI,CAAC,OAAO;;;;IAK/F,gBAAgB,GAAA;AACd,QAAA,IAAI,IAAI,CAAC,UAAU,EAAE;YACnB,UAAU,CAAC,MAAM,IAAI,CAAC,oBAAoB,EAAE,EAAE,CAAC,CAAC;;;IAI5C,oBAAoB,GAAA;AAC1B,QAAA,IAAI,IAAI,CAAC,oBAAoB,KAAK,IAAI;YAAE;AAExC,QAAA,MAAM,SAAS,GAAG,IAAI,CAAC,EAAE,CAAC,UAAU,EAAE,aAAa,CAAC,uBAAuB,CAAgB;AAC3F,QAAA,MAAM,WAAW,GAAG,IAAI,CAAC,EAAE,CAAC,UAAU,EAAE,aAAa,CAAC,SAAS,IAAI,CAAC,oBAAoB,CAAA,CAAE,CAAgB;AAE1G,QAAA,IAAI,CAAC,SAAS,IAAI,CAAC,WAAW;YAAE;AAEhC,QAAA,MAAM,eAAe,GAAG,SAAS,CAAC,YAAY;AAC9C,QAAA,MAAM,cAAc,GAAG,WAAW,CAAC,SAAS;AAC5C,QAAA,MAAM,iBAAiB,GAAG,WAAW,CAAC,YAAY;QAElD,MAAM,WAAW,GAAG,IAAI,CAAC,oBAAoB,KAAK,IAAI,CAAC,OAAO;QAC9D,MAAM,UAAU,GAAG,IAAI,CAAC,oBAAoB,KAAK,IAAI,CAAC,OAAO;AAE7D,QAAA,IAAI,CAAC,WAAW,IAAI,CAAC,UAAU,EAAE;YAC/B,MAAM,YAAY,GAAG,EAAE;AACvB,YAAA,MAAM,SAAS,GAAG,cAAc,GAAG,eAAe,GAAG,CAAC,GAAG,iBAAiB,GAAG,CAAC,GAAG,YAAY;YAC7F,SAAS,CAAC,SAAS,GAAG,IAAI,CAAC,GAAG,CAAC,CAAC,EAAE,SAAS,CAAC;;aACvC,IAAI,WAAW,EAAE;AACtB,YAAA,SAAS,CAAC,SAAS,GAAG,CAAC;;aAClB;AACL,YAAA,SAAS,CAAC,SAAS,GAAG,SAAS,CAAC,YAAY;;;IAIxC,QAAQ,GAAA;AACd,QAAA,OAAO,KAAK,CAAC,IAAI,CAAC,EAAE,MAAM,EAAE,IAAI,CAAC,OAAO,GAAG,IAAI,CAAC,OAAO,GAAG,CAAC,EAAE,EAAE,CAAC,CAAC,EAAE,CAAC,KAAK,IAAI,CAAC,OAAO,GAAG,CAAC,CAAC;;IAGpF,cAAc,CAAC,UAAkB,EAAE,IAAY,EAAA;QACrD,OAAO,IAAI,CAAC,YAAY,KAAK,UAAU,IAAI,IAAI,CAAC,WAAW,KAAK,IAAI;;IAG9D,iBAAiB,CAAC,UAAkB,EAAE,IAAY,EAAA;AACxD,QAAA,IAAI,IAAI,GAAG,IAAI,CAAC,OAAO,IAAI,IAAI,GAAG,IAAI,CAAC,OAAO,EAAE;AAC9C,YAAA,OAAO,KAAK;;QAGd,OAAO,CAAC,IAAI,CAAC,cAAc,CAAC,IAAI,CAC9B,QAAQ,IAAI,QAAQ,CAAC,KAAK,KAAK,UAAU,IAAI,QAAQ,CAAC,IAAI,KAAK,IAAI,CACpE;;IAGK,WAAW,CAAC,UAAkB,EAAE,IAAY,EAAA;AAClD,QAAA,IAAI,IAAI,CAAC,QAAQ,IAAI,CAAC,IAAI,CAAC,iBAAiB,CAAC,UAAU,EAAE,IAAI,CAAC,EAAE;YAC9D;;AAGF,QAAA,IAAI,CAAC,qBAAqB,GAAG,UAAU;AACvC,QAAA,IAAI,CAAC,oBAAoB,GAAG,IAAI;QAEhC,MAAM,SAAS,GAAc,EAAE,KAAK,EAAE,UAAU,EAAE,IAAI,EAAE;AACxD,QAAA,IAAI,CAAC,QAAQ,CAAC,IAAI,CAAC,SAAS,CAAC;AAC7B,QAAA,IAAI,CAAC,iBAAiB,CAAC,IAAI,CAAC,SAAS,CAAC;;IAGhC,aAAa,GAAG,MAAK;AAC3B,QAAA,IAAI,CAAC,eAAe,GAAG,IAAI;AAC7B,KAAC;IAEO,eAAe,GAAG,MAAK;AAC7B,QAAA,IAAI,CAAC,eAAe,GAAG,KAAK;AAC9B,KAAC;IAEO,qBAAqB,CAAC,UAAkB,EAAE,IAAY,EAAA;AAC5D,QAAA,MAAM,OAAO,GAAG,CAAC,cAAc,CAAC;QAEhC,IAAI,CAAC,IAAI,CAAC,iBAAiB,CAAC,UAAU,EAAE,IAAI,CAAC,EAAE;AAC7C,YAAA,OAAO,CAAC,IAAI,CAAC,UAAU,CAAC;;AAE1B,QAAA,IAAI,IAAI,CAAC,qBAAqB,KAAK,UAAU,IAAI,IAAI,CAAC,oBAAoB,KAAK,IAAI,EAAE;AACnF,YAAA,OAAO,CAAC,IAAI,CAAC,UAAU,CAAC;;QAE1B,IAAI,IAAI,CAAC,cAAc,CAAC,UAAU,EAAE,IAAI,CAAC,EAAE;AACzC,YAAA,OAAO,CAAC,IAAI,CAAC,OAAO,CAAC;;AAGvB,QAAA,OAAO,OAAO,CAAC,IAAI,CAAC,GAAG,CAAC;;IAG1B,MAAM,GAAA;AACJ,QAAA,MAAM,KAAK,GAAG,IAAI,CAAC,QAAQ,EAAE;AAE7B,QAAA,QACE,EAAC,IAAI,EAAA,EAAA,GAAA,EAAA,0CAAA,EAAA,EACH,CAAA,CAAA,KAAA,EAAA,EAAA,GAAA,EAAA,0CAAA,EACE,KAAK,EAAE,CAA+C,4CAAA,EAAA,IAAI,CAAC,UAAU,GAAG,YAAY,GAAG,EAAE,CAAE,CAAA,EAC3F,KAAK,EAAE,EAAE,MAAM,EAAE,IAAI,CAAC,MAAM,EAAE,EAC9B,SAAS,EAAE,IAAI,CAAC,aAAa,EAC7B,WAAW,EAAE,IAAI,CAAC,eAAe,EAAA,EAEjC,CAAA,CAAA,KAAA,EAAA,EAAA,GAAA,EAAA,0CAAA,EAAK,KAAK,EAAC,UAAU,EAAA,EAClB,KAAK,CAAC,GAAG,CAAC,CAAC,IAAI,EAAE,SAAS,MACzB,CAAK,CAAA,KAAA,EAAA,EAAA,GAAG,EAAE,IAAI,EAAE,KAAK,EAAC,cAAc,EAAC,EAAE,EAAE,CAAQ,KAAA,EAAA,IAAI,CAAE,CAAA,EAAA,EACrD,CAAK,CAAA,KAAA,EAAA,EAAA,KAAK,EAAC,sBAAsB,EAAA,EAC/B,CAAA,CAAA,KAAA,EAAA,EAAK,KAAK,EAAC,YAAY,EAAA,EAAE,IAAI,CAAO,EAEpC,CAAK,CAAA,KAAA,EAAA,EAAA,KAAK,EAAC,YAAY,EAAA,EAErB,CAAA,CAAA,KAAA,EAAA,EAAK,KAAK,EAAC,WAAW,EACnB,EAAA,IAAI,CAAC,MAAM,CAAC,KAAK,CAAC,CAAC,EAAE,CAAC,CAAC,CAAC,GAAG,CAAC,CAAC,CAAC,EAAE,UAAU,MACzC,cACE,GAAG,EAAE,UAAU,EACf,KAAK,EAAE,IAAI,CAAC,qBAAqB,CAAC,UAAU,EAAE,IAAI,CAAC,EACnD,QAAQ,EAAE,CAAC,IAAI,CAAC,iBAAiB,CAAC,UAAU,EAAE,IAAI,CAAC,EACnD,OAAO,EAAE,MAAM,IAAI,CAAC,WAAW,CAAC,UAAU,EAAE,IAAI,CAAC,EAEhD,EAAA,IAAI,CAAC,MAAM,CAAC,UAAU,CAAC,CACjB,CACV,CAAC,CACE,EAGN,CAAK,CAAA,KAAA,EAAA,EAAA,KAAK,EAAC,WAAW,EAAA,EACnB,IAAI,CAAC,MAAM,CAAC,KAAK,CAAC,CAAC,EAAE,EAAE,CAAC,CAAC,GAAG,CAAC,CAAC,CAAC,EAAE,GAAG,KAAI;AACvC,YAAA,MAAM,UAAU,GAAG,GAAG,GAAG,CAAC;YAC1B,QACE,cACE,GAAG,EAAE,UAAU,EACf,KAAK,EAAE,IAAI,CAAC,qBAAqB,CAAC,UAAU,EAAE,IAAI,CAAC,EACnD,QAAQ,EAAE,CAAC,IAAI,CAAC,iBAAiB,CAAC,UAAU,EAAE,IAAI,CAAC,EACnD,OAAO,EAAE,MAAM,IAAI,CAAC,WAAW,CAAC,UAAU,EAAE,IAAI,CAAC,EAEhD,EAAA,IAAI,CAAC,MAAM,CAAC,UAAU,CAAC,CACjB;SAEZ,CAAC,CACE,CACF,CACF,EAGL,SAAS,GAAG,KAAK,CAAC,MAAM,GAAG,CAAC,KAC3B,CAAA,CAAA,KAAA,EAAA,EAAK,KAAK,EAAC,iBAAiB,EAAA,EAC1B,CAAK,CAAA,KAAA,EAAA,EAAA,KAAK,EAAC,mBAAmB,EAAA,EAC5B,CAAA,CAAA,KAAA,EAAA,EAAK,KAAK,EAAC,cAAc,EAAA,CAAO,CAC5B,CACF,CACP,CACG,CACP,CAAC,CACE,CACF,CACD;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;","names":["__stencil_proxyCustomElement","HTMLElement"],"sources":["src/components/bh-month-picker-content/bh-month-picker-content.css?tag=bh-month-picker-content&encapsulation=shadow","src/components/bh-month-picker-content/bh-month-picker-content.tsx"],"sourcesContent":["@import '../../global/global.css';\n\n:host {\n display: block;\n}\n\n/* Content area - can be scrollable or not based on parent needs */\n.month-picker-content {\n width: 100%;\n overflow-x: hidden;\n font-family: var(--font-inter);\n}\n\n/* Extend animation duration for smoother effect */\n.month-picker-content.animate-slide-up-enter {\n animation-duration: var(--animation-duration-slow, 0.3s);\n}\n\n.month-picker-content.scrollable {\n max-height: 340px;\n overflow-y: auto;\n overflow-y: overlay; /* Overlay scrollbar - doesn't take space from content */\n position: relative;\n}\n\n/* Custom scrollbar styling - hidden by default, visible on hover */\n.month-picker-content.scrollable::-webkit-scrollbar {\n width: var(--spacing-xs);\n}\n\n.month-picker-content.scrollable::-webkit-scrollbar-track {\n background: transparent;\n border-radius: var(--radius-xs);\n}\n\n.month-picker-content.scrollable::-webkit-scrollbar-thumb {\n background: transparent;\n border-radius: var(--radius-xs);\n transition: background 0.2s ease;\n}\n\n/* Show scrollbar on hover */\n.month-picker-content.scrollable:hover::-webkit-scrollbar-track {\n background: var(--color-neutral-50);\n}\n\n.month-picker-content.scrollable:hover::-webkit-scrollbar-thumb {\n background: var(--color-neutral-200);\n}\n\n.month-picker-content.scrollable:hover::-webkit-scrollbar-thumb:hover {\n background: var(--color-neutral-300);\n}\n\n/* Firefox scrollbar - hidden by default */\n.month-picker-content.scrollable {\n scrollbar-width: thin;\n scrollbar-color: transparent transparent;\n}\n\n/* Firefox - show scrollbar on hover */\n.month-picker-content.scrollable:hover {\n scrollbar-color: var(--color-neutral-200) transparent;\n}\n\n/* Calendar container */\n.calendar {\n display: flex;\n flex-direction: column;\n width: 100%;\n padding: var(--spacing-lg) 0 var(--spacing-lg) var(--spacing-lg);\n}\n\n/* Year Section - Contains year button + months row */\n.year-section {\n display: flex;\n flex-direction: column;\n width: 100%;\n}\n\n.year-month-container {\n display: flex;\n flex-direction: row;\n width: 100%;\n align-items: flex-start;\n}\n\n/* Year Label - positioned on left */\n.year-label {\n width: auto;\n height: auto;\n display: flex;\n align-items: flex-start;\n justify-content: flex-start;\n font-family: var(--font-inter);\n font-weight: var(--weight-bold);\n font-size: var(--text-sm-size);\n line-height: var(--text-md-line);\n color: var(--color-neutral-700);\n flex-shrink: 0;\n min-width: 50px;\n padding: var(--spacing-md) 0;\n}\n\n/* Months Grid - 2 rows of 6 months each */\n.months-row {\n display: flex;\n flex-direction: column;\n /* flex: 1;\n width: 100%; */\n}\n\n/* Month Button - 40x40px circular */\n.month-button {\n width: 40px;\n height: 40px;\n border-radius: var(--radius-full);\n border: 2px solid transparent;\n background: transparent;\n display: flex;\n align-items: center;\n justify-content: center;\n font-family: var(--font-inter);\n font-weight: var(--weight-medium);\n font-size: var(--text-sm-size);\n line-height: var(--leading-sm);\n color: var(--color-neutral-500);\n cursor: pointer;\n transition: all var(--animation-duration-fast, 0.1s) var(--animation-easing-ease, ease);\n flex-shrink: 0;\n text-align: center;\n overflow: hidden;\n}\n\n.month-row {\n display: flex;\n gap: var(--spacing-sm);\n justify-content: flex-start;\n}\n\n.month-button:hover:not(.inactive):not(.selected):not(:disabled):not(.today) {\n background: var(--color-neutral-50);\n color: var(--color-neutral-800);\n}\n\n/* Selected state - blue background */\n.month-button.selected {\n background: var(--color-brand-600);\n color: var(--color-white);\n font-weight: var(--weight-semibold);\n}\n\n/* Today's date state - blue border to match date picker */\n.month-button.today:not(.selected) {\n border-color: var(--color-brand-600);\n}\n\n.month-button.today:not(.selected):hover {\n background: var(--color-brand-100);\n color: var(--color-brand-600);\n}\n\n/* Inactive/disabled state */\n.month-button.inactive,\n.month-button:disabled {\n opacity: 0.4;\n cursor: not-allowed;\n color: var(--color-neutral-400);\n}\n\n.month-button:disabled:hover {\n background: transparent;\n}\n\n/* Section Divider - Between year sections */\n.section-divider {\n width: 100%;\n margin: var(--spacing-xl) 0;\n}\n\n.divider-container {\n width: 100%;\n display: flex;\n justify-content: center;\n}\n\n.divider-line {\n width: 100%;\n height: 1px;\n background: var(--color-neutral-200);\n}\n\n/* Focus states for accessibility - completely disable outline */\n.month-button:focus {\n outline: none;\n}\n\n/* Keyboard navigation state - will be added via JavaScript */\n.month-button.keyboard-focused {\n outline: var(--border-width-md, 2px) solid var(--color-brand-500);\n outline-offset: var(--spacing-xs);\n}\n","import { Component, Prop, State, Event, EventEmitter, Element, Watch, h, Host } from '@stencil/core';\n\nexport interface MonthYear {\n month: number; // 0-11 (January = 0, December = 11)\n year: number;\n}\n\nexport interface DisabledMonth {\n month: number;\n year: number;\n}\n\n@Component({\n tag: 'bh-month-picker-content',\n styleUrl: 'bh-month-picker-content.css',\n shadow: true,\n})\nexport class BhMonthPickerContent {\n @Element() el!: HTMLElement;\n\n /**\n * Minimum year in the picker\n */\n @Prop() minYear: number = 1998;\n\n /**\n * Maximum year in the picker\n */\n @Prop() maxYear: number = 2060;\n\n /**\n * Whether the picker is disabled\n */\n @Prop() disabled: boolean = false;\n\n /**\n * Array of disabled months\n */\n @Prop() disabledMonths: DisabledMonth[] = [];\n\n /**\n * Whether the content is scrollable\n */\n @Prop() scrollable: boolean = true;\n\n /**\n * Currently selected month (0-11)\n */\n @Prop() selectedMonth?: number;\n\n /**\n * Currently selected year\n */\n @Prop() selectedYear?: number;\n\n /**\n * Height of the content area\n */\n @Prop() height: string = '375px';\n\n /**\n * Value object with month and year\n */\n @Prop() value?: MonthYear;\n\n @State() internalSelectedMonth: number | null = null;\n @State() internalSelectedYear: number | null = null;\n @State() isUsingKeyboard: boolean = false;\n\n /**\n * Event emitted when a month is selected\n */\n @Event() bhChange!: EventEmitter<MonthYear>;\n\n /**\n * Event emitted when a month/year is selected\n */\n @Event() bhMonthYearSelect!: EventEmitter<MonthYear>;\n\n private months = ['Jan', 'Feb', 'Mar', 'Apr', 'May', 'Jun', 'Jul', 'Aug', 'Sep', 'Oct', 'Nov', 'Dec'];\n private currentDate = new Date();\n private currentMonth = this.currentDate.getMonth();\n private currentYear = this.currentDate.getFullYear();\n\n @Watch('value')\n handleValueChange(newValue: MonthYear | undefined) {\n if (newValue) {\n this.internalSelectedMonth = newValue.month;\n this.internalSelectedYear = newValue.year;\n }\n }\n\n @Watch('selectedMonth')\n handleSelectedMonthChange(newValue: number | undefined) {\n if (newValue !== undefined) {\n this.internalSelectedMonth = newValue;\n }\n }\n\n @Watch('selectedYear')\n handleSelectedYearChange(newValue: number | undefined) {\n if (newValue !== undefined) {\n this.internalSelectedYear = newValue;\n }\n }\n\n componentWillLoad() {\n // Initialize with props or current date\n if (this.value) {\n this.internalSelectedMonth = this.value.month;\n this.internalSelectedYear = this.value.year;\n } else if (this.selectedMonth !== undefined || this.selectedYear !== undefined) {\n this.internalSelectedMonth = this.selectedMonth ?? this.currentMonth;\n this.internalSelectedYear = this.selectedYear ?? this.currentYear;\n } else {\n // Initialize with current date if within range\n if (this.currentYear >= this.minYear && this.currentYear <= this.maxYear) {\n this.internalSelectedMonth = this.currentMonth;\n this.internalSelectedYear = this.currentYear;\n } else {\n this.internalSelectedMonth = this.currentMonth;\n this.internalSelectedYear = this.currentYear < this.minYear ? this.minYear : this.maxYear;\n }\n }\n }\n\n componentDidLoad() {\n if (this.scrollable) {\n setTimeout(() => this.scrollToSelectedYear(), 0);\n }\n }\n\n private scrollToSelectedYear() {\n if (this.internalSelectedYear === null) return;\n\n const container = this.el.shadowRoot?.querySelector('.month-picker-content') as HTMLElement;\n const yearElement = this.el.shadowRoot?.querySelector(`#year-${this.internalSelectedYear}`) as HTMLElement;\n\n if (!container || !yearElement) return;\n\n const containerHeight = container.clientHeight;\n const yearElementTop = yearElement.offsetTop;\n const yearElementHeight = yearElement.offsetHeight;\n\n const isFirstYear = this.internalSelectedYear === this.minYear;\n const isLastYear = this.internalSelectedYear === this.maxYear;\n\n if (!isFirstYear && !isLastYear) {\n const scrollOffset = 50;\n const scrollTop = yearElementTop - containerHeight / 2 + yearElementHeight / 2 + scrollOffset;\n container.scrollTop = Math.max(0, scrollTop);\n } else if (isFirstYear) {\n container.scrollTop = 0;\n } else {\n container.scrollTop = container.scrollHeight;\n }\n }\n\n private getYears(): number[] {\n return Array.from({ length: this.maxYear - this.minYear + 1 }, (_, i) => this.minYear + i);\n }\n\n private isCurrentMonth(monthIndex: number, year: number): boolean {\n return this.currentMonth === monthIndex && this.currentYear === year;\n }\n\n private isMonthSelectable(monthIndex: number, year: number): boolean {\n if (year < this.minYear || year > this.maxYear) {\n return false;\n }\n\n return !this.disabledMonths.some(\n disabled => disabled.month === monthIndex && disabled.year === year\n );\n }\n\n private selectMonth(monthIndex: number, year: number) {\n if (this.disabled || !this.isMonthSelectable(monthIndex, year)) {\n return;\n }\n\n this.internalSelectedMonth = monthIndex;\n this.internalSelectedYear = year;\n\n const selection: MonthYear = { month: monthIndex, year };\n this.bhChange.emit(selection);\n this.bhMonthYearSelect.emit(selection);\n }\n\n private handleKeyDown = () => {\n this.isUsingKeyboard = true;\n };\n\n private handleMouseDown = () => {\n this.isUsingKeyboard = false;\n };\n\n private getMonthButtonClasses(monthIndex: number, year: number): string {\n const classes = ['month-button'];\n\n if (!this.isMonthSelectable(monthIndex, year)) {\n classes.push('inactive');\n }\n if (this.internalSelectedMonth === monthIndex && this.internalSelectedYear === year) {\n classes.push('selected');\n }\n if (this.isCurrentMonth(monthIndex, year)) {\n classes.push('today');\n }\n\n return classes.join(' ');\n }\n\n render() {\n const years = this.getYears();\n\n return (\n <Host>\n <div\n class={`month-picker-content animate-slide-up-enter ${this.scrollable ? 'scrollable' : ''}`}\n style={{ height: this.height }}\n onKeyDown={this.handleKeyDown}\n onMouseDown={this.handleMouseDown}\n >\n <div class=\"calendar\">\n {years.map((year, yearIndex) => (\n <div key={year} class=\"year-section\" id={`year-${year}`}>\n <div class=\"year-month-container\">\n <div class=\"year-label\">{year}</div>\n\n <div class=\"months-row\">\n {/* First row: Jan-Jun */}\n <div class=\"month-row\">\n {this.months.slice(0, 6).map((_, monthIndex) => (\n <button\n key={monthIndex}\n class={this.getMonthButtonClasses(monthIndex, year)}\n disabled={!this.isMonthSelectable(monthIndex, year)}\n onClick={() => this.selectMonth(monthIndex, year)}\n >\n {this.months[monthIndex]}\n </button>\n ))}\n </div>\n\n {/* Second row: Jul-Dec */}\n <div class=\"month-row\">\n {this.months.slice(6, 12).map((_, idx) => {\n const monthIndex = idx + 6;\n return (\n <button\n key={monthIndex}\n class={this.getMonthButtonClasses(monthIndex, year)}\n disabled={!this.isMonthSelectable(monthIndex, year)}\n onClick={() => this.selectMonth(monthIndex, year)}\n >\n {this.months[monthIndex]}\n </button>\n );\n })}\n </div>\n </div>\n </div>\n\n {/* Section Divider (not for last year) */}\n {yearIndex < years.length - 1 && (\n <div class=\"section-divider\">\n <div class=\"divider-container\">\n <div class=\"divider-line\"></div>\n </div>\n </div>\n )}\n </div>\n ))}\n </div>\n </div>\n </Host>\n );\n }\n}\n"],"version":3}
@@ -1 +0,0 @@
1
- {"file":"p-dlKpBGSA.js","mappings":"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","names":["__stencil_proxyCustomElement","HTMLElement"],"sources":["src/components/bh-toggle/bh-toggle.css?tag=bh-toggle&encapsulation=shadow","src/components/bh-toggle/bh-toggle.tsx"],"sourcesContent":["/* ==========================================================================\n BH-TOGGLE COMPONENT STYLES - Material You Design\n ========================================================================== */\n\n:host {\n display: inline-block;\n}\n\n/* Toggle Wrapper */\n.toggle-wrapper {\n display: flex;\n align-items: center;\n gap: 0;\n}\n\n.toggle-with-text.toggle-size-sm {\n gap: var(--spacing-md);\n}\n\n.toggle-with-text.toggle-size-md {\n gap: var(--spacing-lg);\n}\n\n/* Toggle Switch Base */\n.toggle-switch {\n position: relative;\n display: inline-block;\n border-radius: var(--radius-full);\n cursor: pointer;\n transition: background-color 0.2s ease;\n outline: none;\n border: 1px solid transparent;\n background: transparent;\n overflow: visible;\n padding: 0;\n}\n\n.toggle-switch:focus {\n outline: none;\n}\n\n.toggle-switch.toggle-disabled {\n cursor: not-allowed;\n opacity: 0.38;\n}\n\n/* Toggle Switch Sizes */\n.toggle-switch.toggle-sm {\n width: 36px;\n height: 20px;\n}\n\n.toggle-switch.toggle-md {\n width: 40px;\n height: 24px;\n}\n\n/* Toggle Switch States - Unpressed (False) */\n.toggle-switch.toggle-unpressed {\n background-color: var(--color-neutral-300);\n border-color: transparent;\n}\n\n.toggle-switch.toggle-unpressed.toggle-hover {\n background-color: var(--color-neutral-400);\n border-color: transparent;\n}\n\n.toggle-switch.toggle-unpressed.toggle-focus {\n background-color: var(--color-neutral-200);\n border-color: transparent;\n}\n\n/* Focus ring for unpressed state */\n.toggle-switch.toggle-unpressed.toggle-focus .toggle-button::after {\n content: '';\n position: absolute;\n top: -6px;\n left: -6px;\n right: -6px;\n bottom: -6px;\n border-radius: var(--radius-full);\n background: var(--color-neutral-600);\n opacity: 0.12;\n pointer-events: none;\n}\n\n.toggle-switch.toggle-unpressed.toggle-disabled {\n background-color: var(--color-neutral-100);\n border-color: transparent;\n}\n\n/* Toggle Switch States - Pressed (True) */\n.toggle-switch.toggle-pressed {\n background-color: var(--color-brand-600);\n border-color: var(--color-brand-600);\n}\n\n.toggle-switch.toggle-pressed.toggle-hover {\n background-color: var(--color-brand-700);\n border-color: var(--color-brand-700);\n}\n\n.toggle-switch.toggle-pressed.toggle-focus {\n background-color: var(--color-brand-600);\n border-color: var(--color-brand-600);\n}\n\n/* Focus ring for pressed state */\n.toggle-switch.toggle-pressed.toggle-focus .toggle-button::after {\n content: '';\n position: absolute;\n top: -6px;\n left: -6px;\n right: -6px;\n bottom: -6px;\n border-radius: var(--radius-full);\n background: var(--color-brand-100);\n opacity: 0.24;\n pointer-events: none;\n}\n\n.toggle-switch.toggle-pressed.toggle-disabled {\n background-color: var(--color-neutral-200);\n border-color: var(--color-neutral-200);\n}\n\n.toggle-switch.toggle-pressed.toggle-disabled .toggle-button {\n background-color: var(--color-neutral-100);\n}\n\n/* Toggle Button (Handle) */\n.toggle-button {\n position: absolute;\n top: 50%;\n transform: translateY(-50%);\n border-radius: var(--radius-full);\n background-color: var(--color-neutral-600);\n transition: all 0.2s ease;\n}\n\n/* Toggle Button States - Unpressed */\n.toggle-switch.toggle-unpressed .toggle-button {\n background-color: var(--color-white);\n}\n\n.toggle-switch.toggle-sm.toggle-unpressed .toggle-button {\n width: 16px;\n height: 16px;\n left: 1px;\n}\n\n.toggle-switch.toggle-md.toggle-unpressed .toggle-button {\n width: 20px;\n height: 20px;\n left: 1px;\n}\n\n.toggle-switch.toggle-unpressed.toggle-hover .toggle-button {\n background-color: var(--color-white);\n box-shadow: var(--shadow-sm);\n}\n\n/* Toggle Button States - Pressed */\n.toggle-switch.toggle-pressed .toggle-button {\n background-color: var(--color-white);\n}\n\n.toggle-switch.toggle-sm.toggle-pressed .toggle-button {\n width: 16px;\n height: 16px;\n left: calc(100% - 17px);\n}\n\n.toggle-switch.toggle-md.toggle-pressed .toggle-button {\n width: 20px;\n height: 20px; \n left: calc(100% - 21px);\n}\n\n.toggle-switch.toggle-pressed.toggle-hover .toggle-button {\n background-color: var(--color-white);\n}\n\n/* Toggle Button Disabled State */\n.toggle-switch.toggle-disabled .toggle-button {\n background-color: var(--color-neutral-400);\n box-shadow: none;\n}\n\n.toggle-switch.toggle-sm.toggle-unpressed.toggle-disabled .toggle-button {\n width: 16px;\n height: 16px;\n left: 2px;\n background-color: var(--color-neutral-400);\n}\n\n.toggle-switch.toggle-md.toggle-unpressed.toggle-disabled .toggle-button {\n width: 16px;\n height: 16px;\n left: 4px;\n background-color: var(--color-neutral-400);\n}\n\n.toggle-switch.toggle-sm.toggle-pressed.toggle-disabled .toggle-button {\n width: 16px;\n height: 16px;\n left: calc(100% - 17px);\n background-color: var(--color-neutral-400);\n}\n\n.toggle-switch.toggle-md.toggle-pressed.toggle-disabled .toggle-button {\n width: 20px;\n height: 20px;\n left: calc(100% - 21px);\n background-color: var(--color-white);\n}\n\n/* Toggle Text Container */\n.toggle-text {\n display: flex;\n flex-direction: column;\n flex: 1;\n}\n\n/* Toggle Label */\n.toggle-label {\n color: var(--color-neutral-700);\n font-family: var(--font-inter);\n font-weight: var(--weight-medium);\n text-align: left;\n margin: 0;\n line-height: 1.5;\n}\n\n.toggle-label.toggle-label-sm {\n font-size: var(--text-sm-size);\n line-height: var(--text-sm-line);\n}\n\n.toggle-label.toggle-label-md {\n font-size: var(--text-md-size);\n line-height: var(--text-md-line);\n}\n\n/* Toggle Supporting Text */\n.toggle-supporting-text {\n color: var(--color-neutral-600);\n font-family: var(--font-inter);\n font-weight: var(--weight-regular);\n font-size: var(--text-sm-size);\n line-height: var(--text-sm-line);\n text-align: left;\n margin: 0;\n margin-top: var(--spacing-xxs);\n}\n\n/* ==========================================================================\n ACCESSIBILITY\n ========================================================================== */\n\n@media (prefers-reduced-motion: reduce) {\n .toggle-switch,\n .toggle-button {\n transition: none;\n }\n}\n\n@media (prefers-contrast: high) {\n .toggle-switch.toggle-unpressed {\n border: 2px solid currentColor;\n }\n\n .toggle-switch.toggle-pressed {\n border: 2px solid currentColor;\n }\n}\n\n.toggle-switch:focus-visible .toggle-button::after {\n content: '';\n position: absolute;\n top: -6px;\n left: -6px;\n right: -6px;\n bottom: -6px;\n border-radius: var(--radius-full);\n background: currentColor;\n opacity: 0.24;\n pointer-events: none;\n}\n","import { Component, Prop, State, Event, EventEmitter, h, AttachInternals } from '@stencil/core';\nimport { syncCheckableFormValue, validateRequired } from '../../utils/form';\n\nexport type ToggleSize = 'sm' | 'md';\n\n@Component({\n tag: 'bh-toggle',\n styleUrl: 'bh-toggle.css',\n shadow: true,\n formAssociated: true,\n})\nexport class BhToggle {\n @AttachInternals() internals!: ElementInternals;\n /**\n * The size of the toggle\n */\n @Prop() size: ToggleSize = 'md';\n\n /**\n * Whether to show the label and supporting text\n */\n @Prop() showText: boolean = false;\n\n /**\n * The label text\n */\n @Prop() label: string = '';\n\n /**\n * Supporting text below the label\n */\n @Prop() supportingText: string = '';\n\n /**\n * Whether the toggle is disabled\n */\n @Prop() disabled: boolean = false;\n\n /**\n * Whether the toggle is checked (controlled mode)\n */\n @Prop({ mutable: true }) checked: boolean = false;\n\n /**\n * Name attribute for form submission\n */\n @Prop() name: string = '';\n\n /**\n * Value when checked (default: 'on')\n */\n @Prop() value: string = 'on';\n\n /**\n * Whether the toggle is required\n */\n @Prop() required: boolean = false;\n\n /**\n * Default checked state for form reset\n */\n @Prop() defaultChecked: boolean = false;\n\n /**\n * Internal focus state\n */\n @State() isFocused: boolean = false;\n\n /**\n * Internal hover state\n */\n @State() isHovered: boolean = false;\n\n /**\n * Emitted when the toggle state changes\n */\n @Event() bhChange!: EventEmitter<boolean>;\n\n componentDidLoad() {\n syncCheckableFormValue(this.internals, this.name, this.checked, this.value);\n validateRequired(this.internals, this.required, this.checked);\n }\n\n formResetCallback() {\n this.checked = this.defaultChecked;\n syncCheckableFormValue(this.internals, this.name, this.checked, this.value);\n validateRequired(this.internals, this.required, this.checked);\n }\n\n private handleToggle = (): void => {\n if (this.disabled) return;\n\n this.checked = !this.checked;\n syncCheckableFormValue(this.internals, this.name, this.checked, this.value);\n validateRequired(this.internals, this.required, this.checked);\n this.bhChange.emit(this.checked);\n };\n\n private handleKeyDown = (event: KeyboardEvent): void => {\n if (event.key === ' ' || event.key === 'Enter') {\n event.preventDefault();\n this.handleToggle();\n }\n };\n\n private handleMouseEnter = (): void => {\n this.isHovered = true;\n };\n\n private handleMouseLeave = (): void => {\n this.isHovered = false;\n };\n\n private handleFocus = (): void => {\n this.isFocused = true;\n };\n\n private handleBlur = (): void => {\n this.isFocused = false;\n };\n\n render() {\n const wrapperClasses = {\n 'toggle-wrapper': true,\n 'toggle-with-text': this.showText,\n [`toggle-size-${this.size}`]: true,\n };\n\n const switchClasses = {\n 'toggle-switch': true,\n 'toggle-pressed': this.checked,\n 'toggle-unpressed': !this.checked,\n [`toggle-${this.size}`]: true,\n 'toggle-disabled': this.disabled,\n 'toggle-focus': this.isFocused && !this.disabled,\n 'toggle-hover': this.isHovered && !this.disabled,\n };\n\n const buttonClasses = {\n 'toggle-button': true,\n 'toggle-button-pressed': this.checked,\n 'toggle-button-unpressed': !this.checked,\n [`toggle-button-${this.size}`]: true,\n 'toggle-button-disabled': this.disabled,\n };\n\n const labelClasses = {\n 'toggle-label': true,\n [`toggle-label-${this.size}`]: true,\n };\n\n return (\n <div class={wrapperClasses} part=\"wrapper\">\n <div\n class={switchClasses}\n onClick={this.handleToggle}\n onKeyDown={this.handleKeyDown}\n onMouseEnter={this.handleMouseEnter}\n onMouseLeave={this.handleMouseLeave}\n onFocus={this.handleFocus}\n onBlur={this.handleBlur}\n tabIndex={this.disabled ? -1 : 0}\n role=\"switch\"\n aria-checked={this.checked ? 'true' : 'false'}\n aria-disabled={this.disabled ? 'true' : 'false'}\n aria-label={this.label || undefined}\n part=\"switch\"\n >\n <div class={buttonClasses} part=\"button\"></div>\n </div>\n\n {this.showText && (this.label || this.supportingText) && (\n <div class=\"toggle-text\">\n {this.label && (\n <span class={labelClasses}>{this.label}</span>\n )}\n {this.supportingText && (\n <div class=\"toggle-supporting-text\">{this.supportingText}</div>\n )}\n </div>\n )}\n </div>\n );\n }\n}\n"],"version":3}
@@ -1 +0,0 @@
1
- {"file":"p-kd43PSY6.js","mappings":";;;AAAA,MAAM,iBAAiB,GAAG,o1GAAo1G;;MCwBj2G,cAAc,iBAAAA,kBAAA,CAAA,MAAA,cAAA,SAAAC,CAAA,CAAA;;;;;;;;;AACzB;;AAEG;AACK,IAAA,MAAM;AAEd;;AAEG;IACK,SAAS,GAAgC,EAAE;AAEnD;;AAEG;IACK,OAAO,GAAY,IAAI;AAE/B;;AAEG;IACK,SAAS,GAAY,IAAI;AAEjC;;AAEG;IACK,UAAU,GAAY,KAAK;IAE1B,SAAS,GAAY,KAAK;IAC1B,YAAY,GAAY,IAAI;AAErC;;AAEG;AACM,IAAA,WAAW;AAEpB,IAAA,IAAY,YAAY,GAAA;QACtB,IAAI,CAAC,IAAI,CAAC,MAAM;AAAE,YAAA,OAAO,SAAS;AAClC,QAAA,IAAI,OAAO,IAAI,CAAC,MAAM,KAAK,QAAQ,EAAE;AACnC,YAAA,IAAI;gBACF,OAAO,IAAI,CAAC,KAAK,CAAC,IAAI,CAAC,MAAM,CAAC;;AAC9B,YAAA,MAAM;AACN,gBAAA,OAAO,SAAS;;;QAGpB,OAAO,IAAI,CAAC,MAAM;;AAGpB,IAAA,IAAY,eAAe,GAAA;AACzB,QAAA,IAAI,OAAO,IAAI,CAAC,SAAS,KAAK,QAAQ,EAAE;AACtC,YAAA,IAAI;gBACF,OAAO,IAAI,CAAC,KAAK,CAAC,IAAI,CAAC,SAAS,CAAC;;AACjC,YAAA,MAAM;AACN,gBAAA,OAAO,EAAE;;;AAGb,QAAA,OAAO,IAAI,CAAC,SAAS,IAAI,EAAE;;AAI7B,IAAA,YAAY,CAAC,QAAiB,EAAA;QAC5B,IAAI,QAAQ,EAAE;AACZ,YAAA,IAAI,CAAC,YAAY,GAAG,IAAI;AACxB,YAAA,IAAI,CAAC,SAAS,GAAG,KAAK;;aACjB;AACL,YAAA,IAAI,CAAC,SAAS,GAAG,IAAI;YACrB,UAAU,CAAC,MAAK;AACd,gBAAA,IAAI,CAAC,YAAY,GAAG,KAAK;AACzB,gBAAA,IAAI,CAAC,SAAS,GAAG,KAAK;aACvB,EAAE,GAAG,CAAC;;;IAIX,iBAAiB,GAAA;AACf,QAAA,IAAI,CAAC,YAAY,GAAG,IAAI,CAAC,OAAO;;AAG1B,IAAA,eAAe,CAAC,IAAsB,EAAA;QAC5C,IAAI,CAAC,IAAI,CAAC,QAAQ,IAAI,CAAC,IAAI,CAAC,OAAO,EAAE;AACnC,YAAA,IAAI,CAAC,WAAW,CAAC,IAAI,CAAC,IAAI,CAAC;;;AAIvB,IAAA,kBAAkB,CAAC,IAAsB,EAAA;QAC/C,OAAO;AACL,YAAA,eAAe,EAAE,IAAI;AACrB,YAAA,wBAAwB,EAAE,CAAC,CAAC,IAAI,CAAC,QAAQ;SAC1C;;IAGH,MAAM,GAAA;AACJ,QAAA,IAAI,CAAC,IAAI,CAAC,OAAO,EAAE;AACjB,YAAA,OAAO,IAAI;;AAGb,QAAA,MAAM,MAAM,GAAG,IAAI,CAAC,YAAY;AAChC,QAAA,MAAM,KAAK,GAAG,IAAI,CAAC,eAAe;AAElC,QAAA,MAAM,eAAe,GAAG;AACtB,YAAA,eAAe,EAAE,IAAI;YACrB,0BAA0B,EAAE,IAAI,CAAC,UAAU;AAC3C,YAAA,wBAAwB,EAAE,IAAI;AAC9B,YAAA,uBAAuB,EAAE,KAAK;SAC/B;AAED,QAAA,MAAM,aAAa,GAAG;AACpB,YAAA,iBAAiB,EAAE,IAAI;AACvB,YAAA,wBAAwB,EAAE,CAAC,CAAC,MAAM,EAAE,WAAW;SAChD;AAED,QAAA,QACE,CAAA,CAAA,KAAA,EAAA,EAAK,KAAK,EAAE,eAAe,EAAA,EAExB,MAAM,KACL,CAAK,CAAA,KAAA,EAAA,EAAA,KAAK,EAAE,aAAa,EAAA,EAEtB,MAAM,CAAC,WAAW,KACjB,CAAK,CAAA,KAAA,EAAA,EAAA,KAAK,EAAC,cAAc,EAAA,EACvB,CACE,CAAA,WAAA,EAAA,EAAA,IAAI,EAAC,IAAI,EACT,IAAI,EAAC,OAAO,EACZ,MAAM,EAAC,QAAQ,EACf,QAAQ,EAAE,MAAM,CAAC,SAAS,IAAI,EAAE,EAChC,GAAG,EAAE,MAAM,CAAC,IAAI,IAAI,QAAQ,EAC5B,CAAA,EACF,CAAK,CAAA,KAAA,EAAA,EAAA,KAAK,EAAC,aAAa,EAAA,EACtB,CAAA,CAAA,KAAA,EAAA,EAAK,KAAK,EAAC,aAAa,IAAE,MAAM,CAAC,IAAI,CAAO,EAC5C,CAAK,CAAA,KAAA,EAAA,EAAA,KAAK,EAAC,cAAc,EAAE,EAAA,MAAM,CAAC,KAAK,CAAO,CAC1C,CACF,CACP,EAEA,CAAC,MAAM,CAAC,WAAW,IAAI,MAAM,CAAC,KAAK,KAClC,CAAA,CAAA,KAAA,EAAA,EAAK,KAAK,EAAC,cAAc,IAAE,MAAM,CAAC,KAAK,CAAO,CAC/C,CACG,CACP,EAGD,CAAA,CAAA,KAAA,EAAA,EAAK,KAAK,EAAC,YAAY,IACpB,KAAK,CAAC,GAAG,CAAC,CAAC,IAAI,MACd,CAAA,CAAA,KAAA,EAAA,EAAK,GAAG,EAAE,IAAI,CAAC,EAAE,EAAA,EAEd,IAAI,CAAC,OAAO,IAAI,WAAK,KAAK,EAAC,cAAc,EAAG,CAAA,EAG5C,CAAC,IAAI,CAAC,OAAO,KACZ,WACE,KAAK,EAAE,IAAI,CAAC,kBAAkB,CAAC,IAAI,CAAC,EACpC,OAAO,EAAE,MAAM,IAAI,CAAC,eAAe,CAAC,IAAI,CAAC,EAAA,EAEzC,CAAK,CAAA,KAAA,EAAA,EAAA,KAAK,EAAC,cAAc,EAAA,EACvB,CAAK,CAAA,KAAA,EAAA,EAAA,KAAK,EAAC,WAAW,EAAA,EACnB,IAAI,CAAC,IAAI,IAAI,IAAI,CAAC,SAAS,KAC1B,CAAM,CAAA,MAAA,EAAA,EAAA,KAAK,EAAC,qCAAqC,EAAA,EAC9C,IAAI,CAAC,IAAI,CACL,CACR,EACD,CAAA,CAAA,MAAA,EAAA,EAAM,KAAK,EAAC,WAAW,EAAC,KAAK,EAAE,IAAI,CAAC,KAAK,EACtC,EAAA,IAAI,CAAC,KAAK,CACN,CACH,EACL,IAAI,CAAC,QAAQ,KACZ,YAAM,KAAK,EAAC,eAAe,EAAA,EAAE,IAAI,CAAC,QAAQ,CAAQ,CACnD,CACG,CACF,CACP,CACG,CACP,CAAC,CACE,CACF;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;","names":["__stencil_proxyCustomElement","HTMLElement"],"sources":["src/components/bh-dropdown-menu/bh-dropdown-menu.css?tag=bh-dropdown-menu&encapsulation=shadow","src/components/bh-dropdown-menu/bh-dropdown-menu.tsx"],"sourcesContent":["/* ==========================================================================\n BH-DROPDOWN-MENU COMPONENT STYLES\n ========================================================================== */\n\n:host {\n display: block;\n}\n\n/* Base dropdown menu styles */\n.dropdown-menu {\n width: 240px;\n background: var(--color-white);\n border-radius: var(--radius-md);\n box-shadow: 0px 32px 64px -12px rgba(64, 73, 104, 0.14),\n 0px 0px 1px 1px rgba(64, 73, 104, 0.1);\n overflow: hidden;\n flex-shrink: 0;\n position: relative;\n box-sizing: border-box;\n}\n\n/* Animation classes */\n.animate-dropdown-enter {\n animation: dropdownEnter 0.15s ease-out forwards;\n}\n\n.animate-dropdown-exit {\n animation: dropdownExit 0.15s ease-in forwards;\n}\n\n@keyframes dropdownEnter {\n from {\n opacity: 0;\n transform: translateY(-8px);\n }\n to {\n opacity: 1;\n transform: translateY(0);\n }\n}\n\n@keyframes dropdownExit {\n from {\n opacity: 1;\n transform: translateY(0);\n }\n to {\n opacity: 0;\n transform: translateY(-8px);\n }\n}\n\n/* ==========================================================================\n HEADER SECTION\n ========================================================================== */\n\n.dropdown-header {\n padding: var(--spacing-lg) var(--spacing-xl);\n border-bottom: 1px solid var(--color-neutral-200);\n}\n\n.dropdown-header-avatar {\n padding: var(--spacing-lg) var(--spacing-xl);\n}\n\n.avatar-group {\n display: flex;\n align-items: center;\n gap: var(--spacing-lg);\n width: 100%;\n}\n\n.avatar-text {\n display: flex;\n flex-direction: column;\n flex: 1;\n min-width: 0;\n}\n\n.avatar-name {\n font-family: var(--font-inter);\n font-weight: var(--weight-semibold);\n font-size: var(--text-sm-size);\n text-align: left;\n line-height: 1.43;\n color: var(--color-neutral-800);\n margin: 0;\n white-space: nowrap;\n overflow: hidden;\n text-overflow: ellipsis;\n}\n\n.avatar-email {\n font-family: var(--font-inter);\n font-weight: var(--weight-regular);\n font-size: var(--text-sm-size);\n line-height: 1.43;\n color: var(--color-neutral-600);\n margin: 0;\n white-space: nowrap;\n overflow: hidden;\n text-overflow: ellipsis;\n}\n\n.header-title {\n font-family: var(--font-inter);\n font-weight: var(--weight-semibold);\n font-size: var(--text-sm-size);\n line-height: 1.43;\n color: var(--color-neutral-800);\n margin: 0;\n}\n\n/* ==========================================================================\n MENU ITEMS SECTION\n ========================================================================== */\n\n.menu-items {\n padding: var(--spacing-xs) 0;\n}\n\n.dropdown-item {\n padding: var(--spacing-none) var(--spacing-sm);\n cursor: pointer;\n}\n\n.dropdown-item-disabled {\n opacity: 0.5;\n cursor: not-allowed;\n}\n\n.item-content {\n display: flex;\n align-items: center;\n gap: var(--spacing-lg);\n padding: var(--spacing-md) var(--spacing-md);\n border-radius: var(--radius-sm);\n transition: background-color 0.15s ease;\n}\n\n.dropdown-item:hover:not(.dropdown-item-disabled) .item-content {\n background: var(--color-neutral-100);\n}\n\n.item-main {\n display: flex;\n align-items: center;\n gap: var(--spacing-md);\n flex: 1;\n min-width: 0;\n}\n\n.item-icon {\n font-size: var(--icon-size-md, 20px);\n color: var(--color-neutral-600);\n flex-shrink: 0;\n display: flex;\n align-items: center;\n justify-content: center;\n}\n\n.item-text {\n font-family: var(--font-inter);\n font-weight: var(--weight-medium);\n font-size: var(--text-sm-size);\n line-height: var(--text-sm-line);\n color: var(--color-neutral-700);\n flex: 1;\n white-space: nowrap;\n overflow: hidden;\n text-overflow: ellipsis;\n min-width: 0;\n}\n\n.item-shortcut {\n font-family: var(--font-inter);\n font-weight: var(--weight-regular);\n font-size: var(--text-xs-size);\n line-height: 1.5;\n color: var(--color-neutral-500);\n flex-shrink: 0;\n}\n\n/* ==========================================================================\n DIVIDER\n ========================================================================== */\n\n.menu-divider {\n height: 1px;\n background: var(--color-neutral-200);\n margin: var(--spacing-xs) 0;\n}\n\n/* ==========================================================================\n SCROLLABLE VARIANT\n ========================================================================== */\n\n.dropdown-menu-scrollable .menu-items {\n max-height: 280px;\n overflow-y: auto;\n overflow-x: hidden;\n}\n\n/* Custom scrollbar styling */\n.dropdown-menu-scrollable .menu-items::-webkit-scrollbar {\n width: 6px;\n}\n\n.dropdown-menu-scrollable .menu-items::-webkit-scrollbar-track {\n background: var(--color-neutral-50);\n border-radius: var(--radius-xs);\n}\n\n.dropdown-menu-scrollable .menu-items::-webkit-scrollbar-thumb {\n background: var(--color-neutral-200);\n border-radius: var(--radius-xs);\n}\n\n.dropdown-menu-scrollable .menu-items::-webkit-scrollbar-thumb:hover {\n background: var(--color-neutral-300);\n}\n\n/* Firefox scrollbar */\n.dropdown-menu-scrollable .menu-items {\n scrollbar-width: thin;\n scrollbar-color: var(--color-neutral-200) var(--color-neutral-50);\n}\n","import { Component, Prop, State, Event, EventEmitter, Watch, h } from '@stencil/core';\n\nexport interface DropdownMenuItem {\n id: string;\n label?: string;\n icon?: string;\n shortcut?: string;\n disabled?: boolean;\n divider?: boolean;\n}\n\nexport interface DropdownMenuHeader {\n title?: string;\n avatarGroup?: boolean;\n avatarSrc?: string;\n name?: string;\n email?: string;\n}\n\n@Component({\n tag: 'bh-dropdown-menu',\n styleUrl: 'bh-dropdown-menu.css',\n shadow: true,\n})\nexport class BhDropdownMenu {\n /**\n * Header configuration (JSON string or object)\n */\n @Prop() header?: DropdownMenuHeader | string;\n\n /**\n * Menu items array (JSON string or array)\n */\n @Prop() menuItems: DropdownMenuItem[] | string = [];\n\n /**\n * Whether the menu is visible\n */\n @Prop() visible: boolean = true;\n\n /**\n * Whether to show icons in menu items\n */\n @Prop() showIcons: boolean = true;\n\n /**\n * Whether the menu should be scrollable\n */\n @Prop() scrollable: boolean = false;\n\n @State() isClosing: boolean = false;\n @State() shouldRender: boolean = true;\n\n /**\n * Event emitted when a menu item is clicked\n */\n @Event() bhItemClick!: EventEmitter<DropdownMenuItem>;\n\n private get parsedHeader(): DropdownMenuHeader | undefined {\n if (!this.header) return undefined;\n if (typeof this.header === 'string') {\n try {\n return JSON.parse(this.header);\n } catch {\n return undefined;\n }\n }\n return this.header;\n }\n\n private get parsedMenuItems(): DropdownMenuItem[] {\n if (typeof this.menuItems === 'string') {\n try {\n return JSON.parse(this.menuItems);\n } catch {\n return [];\n }\n }\n return this.menuItems || [];\n }\n\n @Watch('visible')\n watchVisible(newValue: boolean) {\n if (newValue) {\n this.shouldRender = true;\n this.isClosing = false;\n } else {\n this.isClosing = true;\n setTimeout(() => {\n this.shouldRender = false;\n this.isClosing = false;\n }, 150);\n }\n }\n\n componentWillLoad() {\n this.shouldRender = this.visible;\n }\n\n private handleItemClick(item: DropdownMenuItem) {\n if (!item.disabled && !item.divider) {\n this.bhItemClick.emit(item);\n }\n }\n\n private getMenuItemClasses(item: DropdownMenuItem) {\n return {\n 'dropdown-item': true,\n 'dropdown-item-disabled': !!item.disabled,\n };\n }\n\n render() {\n if (!this.visible) {\n return null;\n }\n\n const header = this.parsedHeader;\n const items = this.parsedMenuItems;\n\n const dropdownClasses = {\n 'dropdown-menu': true,\n 'dropdown-menu-scrollable': this.scrollable,\n 'animate-dropdown-enter': true,\n 'animate-dropdown-exit': false,\n };\n\n const headerClasses = {\n 'dropdown-header': true,\n 'dropdown-header-avatar': !!header?.avatarGroup,\n };\n\n return (\n <div class={dropdownClasses}>\n {/* Header Section */}\n {header && (\n <div class={headerClasses}>\n {/* Avatar Group Header */}\n {header.avatarGroup && (\n <div class=\"avatar-group\">\n <bh-avatar\n size=\"md\"\n type=\"image\"\n status=\"online\"\n imageSrc={header.avatarSrc || ''}\n alt={header.name || 'Avatar'}\n />\n <div class=\"avatar-text\">\n <div class=\"avatar-name\">{header.name}</div>\n <div class=\"avatar-email\">{header.email}</div>\n </div>\n </div>\n )}\n {/* Simple Text Header */}\n {!header.avatarGroup && header.title && (\n <div class=\"header-title\">{header.title}</div>\n )}\n </div>\n )}\n\n {/* Menu Items Section */}\n <div class=\"menu-items\">\n {items.map((item) => (\n <div key={item.id}>\n {/* Divider */}\n {item.divider && <div class=\"menu-divider\" />}\n\n {/* Menu Item */}\n {!item.divider && (\n <div\n class={this.getMenuItemClasses(item)}\n onClick={() => this.handleItemClick(item)}\n >\n <div class=\"item-content\">\n <div class=\"item-main\">\n {item.icon && this.showIcons && (\n <span class=\"material-symbols-outlined item-icon\">\n {item.icon}\n </span>\n )}\n <span class=\"item-text\" title={item.label}>\n {item.label}\n </span>\n </div>\n {item.shortcut && (\n <span class=\"item-shortcut\">{item.shortcut}</span>\n )}\n </div>\n </div>\n )}\n </div>\n ))}\n </div>\n </div>\n );\n }\n}\n"],"version":3}
@@ -1 +0,0 @@
1
- {"file":"p-uG5vRdFz.js","mappings":"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","names":["__stencil_proxyCustomElement","HTMLElement"],"sources":["src/components/bh-logo-box/bh-logo-box.css?tag=bh-logo-box&encapsulation=shadow","src/components/bh-logo-box/bh-logo-box.tsx"],"sourcesContent":[".logo-box {\n display: flex;\n flex-direction: column;\n align-items: center;\n justify-content: flex-start;\n position: relative;\n width: 40px;\n flex-shrink: 0;\n isolation: isolate;\n}\n\n.logo-active {\n background-color: var(--color-brand-600);\n box-sizing: border-box;\n display: flex;\n gap: var(--spacing-lg);\n align-items: center;\n justify-content: center;\n padding: var(--spacing-sm);\n position: relative;\n border-radius: var(--radius-md);\n flex-shrink: 0;\n width: 40px;\n height: 40px;\n z-index: 2;\n transition: background-color 0.3s ease;\n cursor: pointer;\n}\n\n/* Hover effect for logo-active */\n.logo-box:hover .logo-active,\n.logo-box.dropdown-open .logo-active {\n background-color: var(--color-brand-700);\n}\n\n.logo {\n overflow: hidden;\n position: relative;\n flex-shrink: 0;\n width: 32px;\n height: 32px;\n background-size: contain;\n background-repeat: no-repeat;\n background-position: center;\n transition: background-image 0.4s cubic-bezier(0.08, 0.52, 0.52, 1);\n}\n\n/* Logo variations - Background images must be configured by the consuming application */\n.logo-actabl {\n /* background-image should be set by consuming application */\n}\n\n.logo-al {\n /* background-image should be set by consuming application */\n}\n\n.logo-he {\n /* background-image should be set by consuming application */\n}\n\n.logo-ps {\n /* background-image should be set by consuming application */\n}\n\n.logo-tr {\n /* background-image should be set by consuming application */\n}\n\n.logo-more-products {\n position: absolute;\n background-color: var(--color-brand-200);\n right: 2px;\n bottom: -4px;\n border-radius: 5px;\n width: 36px;\n height: 35px;\n z-index: 1;\n transition: transform 0.3s ease;\n}\n\n/* Slide-up animation for logo-more-products */\n.logo-box:hover .logo-more-products,\n.logo-box.dropdown-open .logo-more-products {\n transform: translateY(-4px);\n}\n","import { Component, Prop, Event, EventEmitter, State, h, Host } from '@stencil/core';\nimport { BhProduct } from '../bh-product-switcher/bh-product-switcher';\n\nexport type LogoType = 'actabl' | 'al' | 'he' | 'ps' | 'tr';\n\n@Component({\n tag: 'bh-logo-box',\n styleUrl: 'bh-logo-box.css',\n shadow: true,\n})\nexport class BhLogoBox {\n /**\n * Type of logo to display\n */\n @Prop() logoType: LogoType = 'actabl';\n\n /**\n * Custom logo source URL. If provided, overrides the default logo path.\n */\n @Prop() logoSrc?: string;\n\n /**\n * Base path for asset URLs. Defaults to '/bellhop/assets'\n */\n @Prop() assetBasePath: string = '/bellhop/assets';\n\n /**\n * Array of products to display in the switcher\n */\n @Prop() products: BhProduct[] = [\n {\n id: 'alice',\n name: 'Alice',\n description: 'Housekeeping & Guest Services',\n logo: './assets/logos/AL.svg',\n },\n {\n id: 'hotel-effectiveness',\n name: 'Hotel Effectiveness',\n description: 'Labor planning',\n logo: './assets/logos/HE.svg',\n },\n {\n id: 'profit-sword',\n name: 'ProfitSword',\n description: 'B.I and Finance',\n logo: './assets/logos/PS.svg',\n },\n {\n id: 'transcendent',\n name: 'Transcendent',\n description: 'Asset Management & CapEx',\n logo: './assets/logos/TR.svg',\n },\n ];\n\n /**\n * Event emitted when a product is selected\n */\n @Event() bhProductSelect!: EventEmitter<BhProduct>;\n\n @State() isOpen: boolean = false;\n @State() anchorPosition = { top: 0, left: 0 };\n\n private logoActiveRef?: HTMLDivElement;\n\n private handleLogoClick = () => {\n if (this.logoActiveRef) {\n const rect = this.logoActiveRef.getBoundingClientRect();\n this.anchorPosition = {\n top: rect.bottom + 8,\n left: rect.left,\n };\n this.isOpen = !this.isOpen;\n }\n };\n\n private handleClose = () => {\n this.isOpen = false;\n };\n\n private handleProductSelect = (event: CustomEvent<BhProduct>) => {\n this.bhProductSelect.emit(event.detail);\n this.isOpen = false;\n };\n\n private getLogoSrc = () => {\n if (this.logoSrc) {\n return this.logoSrc;\n }\n\n const logoMap: Record<LogoType, string> = {\n actabl: 'actabl.svg',\n al: 'AL.svg',\n he: 'HE.svg',\n ps: 'PS.svg',\n tr: 'TR.svg',\n };\n\n const logoFile = logoMap[this.logoType] || 'actabl.svg';\n return `${this.assetBasePath}/logos/${logoFile}`;\n };\n\n render() {\n const logoBoxClasses = {\n 'logo-box': true,\n 'dropdown-open': this.isOpen,\n };\n\n const logoClasses = {\n 'logo': true,\n [`logo-${this.logoType}`]: true,\n };\n\n return (\n <Host>\n <div class={logoBoxClasses}>\n <div\n ref={(el) => (this.logoActiveRef = el)}\n class=\"logo-active\"\n onClick={this.handleLogoClick}\n >\n <img\n src={this.getLogoSrc()}\n alt={`${this.logoType} logo`}\n class={logoClasses}\n />\n </div>\n <div class=\"logo-more-products\"></div>\n </div>\n\n <bh-product-switcher\n isOpen={this.isOpen}\n anchorPosition={this.anchorPosition}\n products={this.products}\n onBhClose={this.handleClose}\n onBhProductSelect={this.handleProductSelect}\n ></bh-product-switcher>\n </Host>\n );\n }\n}\n"],"version":3}