@actabldesign/bellhop-core 0.0.7 → 0.0.12

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 (474) hide show
  1. package/README.md +132 -33
  2. package/components/bh-accordion-item.js +1 -1
  3. package/components/bh-avatar-add.js +1 -1
  4. package/components/bh-avatar-stacked.js +3 -3
  5. package/components/bh-avatar.js +1 -1
  6. package/components/bh-button.js +1 -1
  7. package/components/bh-card-header.js +1 -1
  8. package/components/bh-card.js +1 -1
  9. package/components/bh-checkbox-group-item.js +5 -5
  10. package/components/bh-checkbox.js +1 -1
  11. package/components/bh-data-grid.js +140 -67
  12. package/components/bh-data-grid.js.map +1 -1
  13. package/components/bh-date-picker-content.js +1 -1
  14. package/components/bh-date-picker.js +24 -19
  15. package/components/bh-date-picker.js.map +1 -1
  16. package/components/bh-date-range-picker-content.js +1 -1
  17. package/components/bh-date-range-picker.js +9 -9
  18. package/components/bh-dropdown-menu.js +1 -1
  19. package/components/bh-dropdown.js +1 -1
  20. package/components/bh-empty-state.js +1 -1
  21. package/components/bh-featured-icon.js +1 -1
  22. package/components/bh-illustrations.js +3 -3
  23. package/components/bh-input-autocomplete.js +7 -7
  24. package/components/bh-input-number.js +3 -3
  25. package/components/bh-input-password.js +3 -3
  26. package/components/bh-input-text.js +1 -1
  27. package/components/bh-input-verification.js +3 -3
  28. package/components/bh-label.js +1 -1
  29. package/components/bh-logo-box.js +1 -1
  30. package/components/bh-modal-actions.js +2 -2
  31. package/components/bh-modal-header.js +5 -5
  32. package/components/bh-month-picker-content.js +1 -1
  33. package/components/bh-month-picker.js +8 -8
  34. package/components/bh-month-picker.js.map +1 -1
  35. package/components/bh-nav-item.js +1 -1
  36. package/components/bh-notification.js +3 -3
  37. package/components/bh-page-navigation-child.js +1 -1
  38. package/components/bh-page-navigation-multi-level.js +1 -1
  39. package/components/bh-page-navigation-single-level.js +1 -1
  40. package/components/bh-page-navigation.js +5 -5
  41. package/components/bh-pagination.js +1 -1
  42. package/components/bh-picker-menu.js +1 -1
  43. package/components/bh-pie-chart.js +1 -1
  44. package/components/bh-popover.js +18 -85
  45. package/components/bh-popover.js.map +1 -1
  46. package/components/bh-property-switcher.js +1 -1
  47. package/components/bh-radio-button.js +1 -1
  48. package/components/bh-sidebar.js +18 -7
  49. package/components/bh-sidebar.js.map +1 -1
  50. package/components/bh-skeleton-loader.js +1 -1
  51. package/components/bh-tab-item.js +2 -2
  52. package/components/bh-tabs.js +1 -1
  53. package/components/bh-tag.js +1 -1
  54. package/components/bh-textarea.js +3 -3
  55. package/components/bh-toggle.js +1 -1
  56. package/components/bh-tooltip.js +1 -1
  57. package/components/bh-trend-chart.js +2 -2
  58. package/components/index.d.ts +0 -4
  59. package/components/index.js +0 -2
  60. package/components/index.js.map +1 -1
  61. package/components/{p-8bOZFmdg.js → p--S10V0sf.js} +5 -5
  62. package/components/p--S10V0sf.js.map +1 -0
  63. package/components/{p-BLCjD0ux.js → p-7nrZFsG8.js} +3 -3
  64. package/components/{p-BLCjD0ux.js.map → p-7nrZFsG8.js.map} +1 -1
  65. package/components/{p-C_wf2KGn.js → p-B0ADeWoj.js} +3 -3
  66. package/components/{p-C_wf2KGn.js.map → p-B0ADeWoj.js.map} +1 -1
  67. package/components/{p-D9aamyuM.js → p-BEm39SYP.js} +4 -4
  68. package/components/{p-D9aamyuM.js.map → p-BEm39SYP.js.map} +1 -1
  69. package/components/{p-BkK6rWZn.js → p-BYRvQ4u7.js} +4 -4
  70. package/components/{p-BkK6rWZn.js.map → p-BYRvQ4u7.js.map} +1 -1
  71. package/components/{p-D0Ba0gOA.js → p-BqYBdZ7I.js} +4 -4
  72. package/components/{p-D0Ba0gOA.js.map → p-BqYBdZ7I.js.map} +1 -1
  73. package/components/{p-Df8KgHhe.js → p-BrIid8rr.js} +3 -3
  74. package/components/{p-Df8KgHhe.js.map → p-BrIid8rr.js.map} +1 -1
  75. package/components/p-BsHlTsAN.js.map +1 -1
  76. package/components/{p-Npcwl1Z8.js → p-CDmCw7LX.js} +4 -4
  77. package/components/p-CDmCw7LX.js.map +1 -0
  78. package/components/{p-BQKx1tGq.js → p-CHYn9whC.js} +6 -6
  79. package/components/p-CHYn9whC.js.map +1 -0
  80. package/components/{p-CdwyUif-.js → p-CNwZh1xz.js} +5 -5
  81. package/components/p-CNwZh1xz.js.map +1 -0
  82. package/components/{p-B02xFf1P.js → p-CiEBtN9j.js} +3 -3
  83. package/components/{p-B02xFf1P.js.map → p-CiEBtN9j.js.map} +1 -1
  84. package/components/{p-Cmo_S3fO.js → p-CiZSLZTA.js} +4 -4
  85. package/components/{p-Cmo_S3fO.js.map → p-CiZSLZTA.js.map} +1 -1
  86. package/components/{p-DYC2IZEs.js → p-CmEb-mj5.js} +6 -6
  87. package/components/{p-DYC2IZEs.js.map → p-CmEb-mj5.js.map} +1 -1
  88. package/components/{p-Do29ZTL9.js → p-CppjlSaO.js} +3 -3
  89. package/components/{p-Do29ZTL9.js.map → p-CppjlSaO.js.map} +1 -1
  90. package/components/{p-D3FuyNC4.js → p-CyFUHAY1.js} +7 -7
  91. package/components/{p-D3FuyNC4.js.map → p-CyFUHAY1.js.map} +1 -1
  92. package/components/{p-B0vRPcr5.js → p-D8L5XpBP.js} +3 -3
  93. package/components/{p-B0vRPcr5.js.map → p-D8L5XpBP.js.map} +1 -1
  94. package/components/p-DH86TJ99.js +232 -0
  95. package/components/p-DH86TJ99.js.map +1 -0
  96. package/components/{p-BJLHKnwL.js → p-DVBd-54W.js} +5 -5
  97. package/components/{p-BJLHKnwL.js.map → p-DVBd-54W.js.map} +1 -1
  98. package/components/{p-CMoGgYqw.js → p-DmELCHDa.js} +3 -3
  99. package/components/p-DmELCHDa.js.map +1 -0
  100. package/components/{p-Bu0BcHwL.js → p-Du_cCBR7.js} +6 -6
  101. package/components/{p-Bu0BcHwL.js.map → p-Du_cCBR7.js.map} +1 -1
  102. package/components/{p-h6juyPoa.js → p-JJSN-gZI.js} +3 -3
  103. package/components/{p-h6juyPoa.js.map → p-JJSN-gZI.js.map} +1 -1
  104. package/components/{p-wPu4WTba.js → p-dsE158cF.js} +3 -3
  105. package/components/{p-wPu4WTba.js.map → p-dsE158cF.js.map} +1 -1
  106. package/components/{p-C0fcjlnS.js → p-eYcfeTFU.js} +3 -3
  107. package/components/{p-C0fcjlnS.js.map → p-eYcfeTFU.js.map} +1 -1
  108. package/components/{p-BSok41i-.js → p-oyeucMe6.js} +3 -3
  109. package/components/{p-BSok41i-.js.map → p-oyeucMe6.js.map} +1 -1
  110. package/dist/bellhop-core/bellhop-core.esm.js +1 -1
  111. package/dist/bellhop-core/bellhop-core.esm.js.map +1 -1
  112. package/dist/bellhop-core/bh-avatar.entry.esm.js.map +1 -1
  113. package/dist/bellhop-core/bh-button.bh-loader-spinner.entry.esm.js.map +1 -1
  114. package/dist/bellhop-core/bh-data-grid.entry.esm.js.map +1 -1
  115. package/dist/bellhop-core/bh-date-picker-content.entry.esm.js.map +1 -1
  116. package/dist/bellhop-core/bh-date-picker.entry.esm.js.map +1 -1
  117. package/dist/bellhop-core/bh-empty-state.bh-pagination.bh-skeleton-loader.entry.esm.js.map +1 -1
  118. package/dist/bellhop-core/bh-input-text.bh-picker-menu.entry.esm.js.map +1 -1
  119. package/dist/bellhop-core/bh-label.bh-tooltip.entry.esm.js.map +1 -1
  120. package/dist/bellhop-core/bh-month-picker-content.entry.esm.js.map +1 -1
  121. package/dist/bellhop-core/bh-month-picker.entry.esm.js.map +1 -1
  122. package/dist/bellhop-core/bh-popover.entry.esm.js.map +1 -1
  123. package/dist/bellhop-core/bh-sidebar.entry.esm.js.map +1 -1
  124. package/dist/bellhop-core/index.esm.js +1 -1
  125. package/dist/bellhop-core/index.esm.js.map +1 -1
  126. package/dist/bellhop-core/{p-Ck1gRAmI.js → p-04a00da6.entry.js} +2 -2
  127. package/dist/bellhop-core/p-04a00da6.entry.js.map +1 -0
  128. package/dist/bellhop-core/{p-bd00d5ad.entry.js → p-06b0ba5f.entry.js} +2 -2
  129. package/dist/bellhop-core/{p-4a8844ff.entry.js → p-0a232a85.entry.js} +2 -2
  130. package/dist/bellhop-core/p-0d5ce369.entry.js +13 -0
  131. package/dist/bellhop-core/p-0d5ce369.entry.js.map +1 -0
  132. package/dist/bellhop-core/{p-67956598.entry.js → p-0e773f4b.entry.js} +2 -2
  133. package/dist/bellhop-core/{p-df4498cd.entry.js → p-11e84742.entry.js} +2 -2
  134. package/dist/bellhop-core/{p-a41b3673.entry.js → p-20e65b2b.entry.js} +2 -2
  135. package/dist/bellhop-core/{p-a30e22f7.entry.js → p-2349cd39.entry.js} +2 -2
  136. package/dist/bellhop-core/{p-3a1c52a9.entry.js → p-2cc352e8.entry.js} +2 -2
  137. package/dist/bellhop-core/{p-defe9916.entry.js → p-31f60dac.entry.js} +2 -2
  138. package/dist/bellhop-core/{p-defe9916.entry.js.map → p-31f60dac.entry.js.map} +1 -1
  139. package/dist/bellhop-core/{p-f85a9eaa.entry.js → p-439f8477.entry.js} +2 -2
  140. package/dist/bellhop-core/{p-a42e8ddb.entry.js → p-4bc0e720.entry.js} +2 -2
  141. package/dist/bellhop-core/{p-a42e8ddb.entry.js.map → p-4bc0e720.entry.js.map} +1 -1
  142. package/dist/bellhop-core/{p-21bc4f77.entry.js → p-4cf74f24.entry.js} +2 -2
  143. package/dist/bellhop-core/p-53dbd8bd.entry.js +2 -0
  144. package/dist/bellhop-core/p-53dbd8bd.entry.js.map +1 -0
  145. package/dist/bellhop-core/p-59e4c008.entry.js +2 -0
  146. package/dist/bellhop-core/p-59e4c008.entry.js.map +1 -0
  147. package/dist/bellhop-core/{p-62235d6e.entry.js → p-5a0b2d81.entry.js} +2 -2
  148. package/dist/bellhop-core/{p-07c9b7fa.entry.js → p-6626f089.entry.js} +2 -2
  149. package/dist/bellhop-core/{p-36166900.entry.js → p-6b428841.entry.js} +2 -2
  150. package/dist/bellhop-core/{p-6bc81ebb.entry.js → p-6d4c6b6f.entry.js} +2 -2
  151. package/dist/bellhop-core/{p-c0e36166.entry.js → p-6dad737e.entry.js} +2 -2
  152. package/dist/bellhop-core/{p-5c4f74b8.entry.js → p-738f24c8.entry.js} +2 -2
  153. package/dist/bellhop-core/{p-49edd1bb.entry.js → p-7534a8d4.entry.js} +2 -2
  154. package/dist/bellhop-core/p-7b0a4c99.entry.js +2 -0
  155. package/dist/bellhop-core/{p-7a85db89.entry.js.map → p-7b0a4c99.entry.js.map} +1 -1
  156. package/dist/bellhop-core/{p-7b0cba50.entry.js → p-84ecaf3b.entry.js} +2 -2
  157. package/dist/bellhop-core/{p-DY76Ee-p.js → p-940af1e0.entry.js} +2 -2
  158. package/dist/bellhop-core/p-940af1e0.entry.js.map +1 -0
  159. package/dist/bellhop-core/p-c0dfca99.entry.js +2 -0
  160. package/dist/bellhop-core/{p-4e483d25.entry.js.map → p-c0dfca99.entry.js.map} +1 -1
  161. package/dist/bellhop-core/{p-d5bf49ab.entry.js → p-cad28e7e.entry.js} +2 -2
  162. package/dist/bellhop-core/{p-1540001e.entry.js → p-cb0e4e35.entry.js} +2 -2
  163. package/dist/bellhop-core/{p-091171da.entry.js → p-ce2aaf37.entry.js} +2 -2
  164. package/dist/bellhop-core/p-d64525f4.entry.js +2 -0
  165. package/dist/bellhop-core/p-d64525f4.entry.js.map +1 -0
  166. package/dist/bellhop-core/p-e0f7b6d1.entry.js +2 -0
  167. package/dist/bellhop-core/p-e0f7b6d1.entry.js.map +1 -0
  168. package/dist/bellhop-core/{p-b0dda4df.entry.js → p-e83a86d6.entry.js} +2 -2
  169. package/dist/bellhop-core/{p-2db7990e.entry.js → p-e96e5aa3.entry.js} +2 -2
  170. package/dist/bellhop-core/{p-c70d11a2.entry.js → p-ed780663.entry.js} +2 -2
  171. package/dist/bellhop-core/p-f30af956.entry.js +2 -0
  172. package/dist/bellhop-core/{p-ffb29d95.entry.js.map → p-f30af956.entry.js.map} +1 -1
  173. package/dist/bellhop-core/{p-0e34250c.entry.js → p-f4dd33af.entry.js} +2 -2
  174. package/dist/bellhop-core/{p-1be3e908.entry.js → p-fe7d5dcb.entry.js} +2 -2
  175. package/dist/bellhop-core/p-nAAobRRQ.js.map +1 -1
  176. package/dist/cjs/bellhop-core.cjs.js +1 -1
  177. package/dist/cjs/bellhop-core.cjs.js.map +1 -1
  178. package/dist/cjs/bh-accordion-item.cjs.entry.js +1 -1
  179. package/dist/cjs/bh-autocomplete-menu_2.cjs.entry.js +1 -1
  180. package/dist/cjs/bh-avatar.cjs.entry.js +1 -1
  181. package/dist/cjs/bh-avatar.entry.cjs.js.map +1 -1
  182. package/dist/cjs/bh-button.bh-loader-spinner.entry.cjs.js.map +1 -1
  183. package/dist/cjs/bh-button_2.cjs.entry.js +110 -2
  184. package/dist/cjs/bh-card.cjs.entry.js +1 -1
  185. package/dist/cjs/bh-data-grid.cjs.entry.js +132 -59
  186. package/dist/cjs/bh-data-grid.entry.cjs.js.map +1 -1
  187. package/dist/cjs/bh-date-picker-content.cjs.entry.js +2 -2
  188. package/dist/cjs/bh-date-picker-content.entry.cjs.js.map +1 -1
  189. package/dist/cjs/bh-date-picker.cjs.entry.js +15 -12
  190. package/dist/cjs/bh-date-picker.entry.cjs.js.map +1 -1
  191. package/dist/cjs/bh-date-range-picker-content.cjs.entry.js +1 -1
  192. package/dist/cjs/bh-date-range-picker.cjs.entry.js +1 -1
  193. package/dist/cjs/bh-dropdown_3.cjs.entry.js +4 -4
  194. package/dist/cjs/bh-empty-state.bh-pagination.bh-skeleton-loader.entry.cjs.js.map +1 -1
  195. package/dist/cjs/bh-empty-state_3.cjs.entry.js +199 -6
  196. package/dist/cjs/bh-featured-icon.cjs.entry.js +1 -1
  197. package/dist/cjs/bh-illustrations.cjs.entry.js +3 -3
  198. package/dist/cjs/bh-input-autocomplete.cjs.entry.js +2 -2
  199. package/dist/cjs/bh-input-number.cjs.entry.js +1 -1
  200. package/dist/cjs/bh-input-password.cjs.entry.js +1 -1
  201. package/dist/cjs/bh-input-text.bh-picker-menu.entry.cjs.js.map +1 -1
  202. package/dist/cjs/bh-input-text_2.cjs.entry.js +2 -2
  203. package/dist/cjs/bh-input-verification.cjs.entry.js +1 -1
  204. package/dist/cjs/bh-label.bh-tooltip.entry.cjs.js.map +1 -1
  205. package/dist/cjs/bh-label_2.cjs.entry.js +104 -3
  206. package/dist/cjs/bh-modal-actions.cjs.entry.js +1 -1
  207. package/dist/cjs/bh-modal-header.cjs.entry.js +4 -4
  208. package/dist/cjs/bh-month-picker-content.cjs.entry.js +2 -2
  209. package/dist/cjs/bh-month-picker-content.entry.cjs.js.map +1 -1
  210. package/dist/cjs/bh-month-picker.cjs.entry.js +2 -2
  211. package/dist/cjs/bh-month-picker.entry.cjs.js.map +1 -1
  212. package/dist/cjs/bh-notification.cjs.entry.js +1 -1
  213. package/dist/cjs/bh-page-navigation-child.cjs.entry.js +1 -1
  214. package/dist/cjs/bh-page-navigation-multi-level_2.cjs.entry.js +3 -3
  215. package/dist/cjs/bh-page-navigation.cjs.entry.js +1 -1
  216. package/dist/cjs/bh-pie-chart.cjs.entry.js +1 -1
  217. package/dist/cjs/bh-popover.cjs.entry.js +14 -76
  218. package/dist/cjs/bh-popover.entry.cjs.js.map +1 -1
  219. package/dist/cjs/bh-property-switcher.cjs.entry.js +1 -1
  220. package/dist/cjs/bh-sidebar.cjs.entry.js +10 -1
  221. package/dist/cjs/bh-sidebar.entry.cjs.js.map +1 -1
  222. package/dist/cjs/bh-tab-item.cjs.entry.js +2 -2
  223. package/dist/cjs/bh-tabs.cjs.entry.js +1 -1
  224. package/dist/cjs/bh-textarea.cjs.entry.js +1 -1
  225. package/dist/cjs/bh-toggle.cjs.entry.js +1 -1
  226. package/dist/cjs/bh-trend-chart.cjs.entry.js +2 -2
  227. package/dist/cjs/index-DQwSUT6k.js +42 -50
  228. package/dist/cjs/index-DQwSUT6k.js.map +1 -1
  229. package/dist/cjs/index.cjs.js +0 -31
  230. package/dist/cjs/index.cjs.js.map +1 -1
  231. package/dist/cjs/loader.cjs.js +1 -1
  232. package/dist/collection/collection-manifest.json +1 -3
  233. package/dist/collection/components/bh-accordion/bh-accordion.js +1 -1
  234. package/dist/collection/components/bh-accordion-item/bh-accordion-item.js +1 -1
  235. package/dist/collection/components/bh-appbar/bh-appbar.js +2 -2
  236. package/dist/collection/components/bh-autocomplete-menu/bh-autocomplete-menu.js +2 -2
  237. package/dist/collection/components/bh-avatar/bh-avatar.css +0 -1
  238. package/dist/collection/components/bh-avatar/bh-avatar.js +3 -3
  239. package/dist/collection/components/bh-avatar-add/bh-avatar-add.js +1 -1
  240. package/dist/collection/components/bh-avatar-stacked/bh-avatar-stacked.js +1 -1
  241. package/dist/collection/components/bh-badge/bh-badge.js +3 -3
  242. package/dist/collection/components/bh-badge-dot/bh-badge-dot.js +2 -2
  243. package/dist/collection/components/bh-bar-chart/bh-bar-chart.js +3 -3
  244. package/dist/collection/components/bh-breadcrumbs/bh-breadcrumbs.js +2 -2
  245. package/dist/collection/components/bh-button/bh-button.js +7 -7
  246. package/dist/collection/components/bh-button/bh-button.js.map +1 -1
  247. package/dist/collection/components/bh-button-icon/bh-button-icon.js +3 -3
  248. package/dist/collection/components/bh-card/bh-card.js +1 -1
  249. package/dist/collection/components/bh-card-footer/bh-card-footer.js +1 -1
  250. package/dist/collection/components/bh-card-header/bh-card-header.js +2 -2
  251. package/dist/collection/components/bh-chart-tooltip/bh-chart-tooltip.js +1 -1
  252. package/dist/collection/components/bh-checkbox/bh-checkbox.js +1 -1
  253. package/dist/collection/components/bh-checkbox-group/bh-checkbox-group.js +1 -1
  254. package/dist/collection/components/bh-checkbox-group-item/bh-checkbox-group-item.js +2 -2
  255. package/dist/collection/components/bh-data-grid/bh-data-grid.css +86 -68
  256. package/dist/collection/components/bh-data-grid/bh-data-grid.js +132 -59
  257. package/dist/collection/components/bh-data-grid/bh-data-grid.js.map +1 -1
  258. package/dist/collection/components/bh-date-picker/bh-date-picker.css +24 -214
  259. package/dist/collection/components/bh-date-picker/bh-date-picker.js +22 -12
  260. package/dist/collection/components/bh-date-picker/bh-date-picker.js.map +1 -1
  261. package/dist/collection/components/bh-date-picker-content/bh-date-picker-content.css +0 -206
  262. package/dist/collection/components/bh-date-picker-content/bh-date-picker-content.js +7 -7
  263. package/dist/collection/components/bh-date-range-picker/bh-date-range-picker.js +2 -2
  264. package/dist/collection/components/bh-date-range-picker-content/bh-date-range-picker-content.js +4 -4
  265. package/dist/collection/components/bh-dropdown/bh-dropdown.js +5 -5
  266. package/dist/collection/components/bh-dropdown-menu/bh-dropdown-menu.js +3 -3
  267. package/dist/collection/components/bh-empty-state/bh-empty-state.js +2 -2
  268. package/dist/collection/components/bh-featured-icon/bh-featured-icon.js +4 -4
  269. package/dist/collection/components/bh-illustrations/bh-illustrations.js +4 -4
  270. package/dist/collection/components/bh-input-autocomplete/bh-input-autocomplete.js +3 -3
  271. package/dist/collection/components/bh-input-number/bh-input-number.js +1 -1
  272. package/dist/collection/components/bh-input-password/bh-input-password.js +1 -1
  273. package/dist/collection/components/bh-input-text/bh-input-text.js +1 -1
  274. package/dist/collection/components/bh-input-verification/bh-input-verification.js +3 -3
  275. package/dist/collection/components/bh-label/bh-label.js +1 -1
  276. package/dist/collection/components/bh-loader-spinner/bh-loader-spinner.js +2 -2
  277. package/dist/collection/components/bh-logo-box/bh-logo-box.js +2 -2
  278. package/dist/collection/components/bh-modal/bh-modal.js +1 -1
  279. package/dist/collection/components/bh-modal-actions/bh-modal-actions.js +2 -2
  280. package/dist/collection/components/bh-modal-header/bh-modal-header.js +4 -4
  281. package/dist/collection/components/bh-month-picker/bh-month-picker.css +0 -206
  282. package/dist/collection/components/bh-month-picker/bh-month-picker.js +2 -2
  283. package/dist/collection/components/bh-month-picker-content/bh-month-picker-content.css +0 -206
  284. package/dist/collection/components/bh-month-picker-content/bh-month-picker-content.js +5 -5
  285. package/dist/collection/components/bh-notification/bh-notification.js +2 -2
  286. package/dist/collection/components/bh-page-navigation/bh-page-navigation.js +2 -2
  287. package/dist/collection/components/bh-page-navigation-child/bh-page-navigation-child.js +1 -1
  288. package/dist/collection/components/bh-page-navigation-multi-level/bh-page-navigation-multi-level.js +3 -3
  289. package/dist/collection/components/bh-page-navigation-single-level/bh-page-navigation-single-level.js +1 -1
  290. package/dist/collection/components/bh-pagination/bh-pagination.css +122 -58
  291. package/dist/collection/components/bh-pagination/bh-pagination.js +74 -30
  292. package/dist/collection/components/bh-pagination/bh-pagination.js.map +1 -1
  293. package/dist/collection/components/bh-picker-menu/bh-picker-menu.css +1 -3
  294. package/dist/collection/components/bh-pie-chart/bh-pie-chart.js +3 -3
  295. package/dist/collection/components/bh-popover/bh-popover.css +77 -260
  296. package/dist/collection/components/bh-popover/bh-popover.js +33 -238
  297. package/dist/collection/components/bh-popover/bh-popover.js.map +1 -1
  298. package/dist/collection/components/bh-product-switcher/bh-product-switcher.js +3 -3
  299. package/dist/collection/components/bh-property-switcher/bh-property-switcher.js +3 -3
  300. package/dist/collection/components/bh-radio-button/bh-radio-button.js +1 -1
  301. package/dist/collection/components/bh-sidebar/bh-nav-item.js +1 -1
  302. package/dist/collection/components/bh-sidebar/bh-sidebar.js +54 -4
  303. package/dist/collection/components/bh-sidebar/bh-sidebar.js.map +1 -1
  304. package/dist/collection/components/bh-skeleton-loader/bh-skeleton-loader.css +9 -22
  305. package/dist/collection/components/bh-skeleton-loader/bh-skeleton-loader.js +2 -2
  306. package/dist/collection/components/bh-skeleton-loader/bh-skeleton-loader.js.map +1 -1
  307. package/dist/collection/components/bh-tab-item/bh-tab-item.js +2 -2
  308. package/dist/collection/components/bh-tabs/bh-tabs.js +3 -3
  309. package/dist/collection/components/bh-tag/bh-tag.js +3 -3
  310. package/dist/collection/components/bh-textarea/bh-textarea.js +2 -2
  311. package/dist/collection/components/bh-toggle/bh-toggle.js +2 -2
  312. package/dist/collection/components/bh-tooltip/bh-tooltip.js +3 -3
  313. package/dist/collection/components/bh-trend-chart/bh-trend-chart.js +4 -4
  314. package/dist/collection/index.js +1 -23
  315. package/dist/collection/index.js.map +1 -1
  316. package/dist/esm/bellhop-core.js +1 -1
  317. package/dist/esm/bellhop-core.js.map +1 -1
  318. package/dist/esm/bh-accordion-item.entry.js +1 -1
  319. package/dist/esm/bh-autocomplete-menu_2.entry.js +1 -1
  320. package/dist/esm/bh-avatar.entry.js +1 -1
  321. package/dist/esm/bh-avatar.entry.js.map +1 -1
  322. package/dist/esm/bh-button.bh-loader-spinner.entry.js.map +1 -1
  323. package/dist/esm/bh-button_2.entry.js +111 -3
  324. package/dist/esm/bh-card.entry.js +1 -1
  325. package/dist/esm/bh-data-grid.entry.js +132 -59
  326. package/dist/esm/bh-data-grid.entry.js.map +1 -1
  327. package/dist/esm/bh-date-picker-content.entry.js +2 -2
  328. package/dist/esm/bh-date-picker-content.entry.js.map +1 -1
  329. package/dist/esm/bh-date-picker.entry.js +16 -13
  330. package/dist/esm/bh-date-picker.entry.js.map +1 -1
  331. package/dist/esm/bh-date-range-picker-content.entry.js +1 -1
  332. package/dist/esm/bh-date-range-picker.entry.js +1 -1
  333. package/dist/esm/bh-dropdown_3.entry.js +4 -4
  334. package/dist/esm/bh-empty-state.bh-pagination.bh-skeleton-loader.entry.js.map +1 -1
  335. package/dist/esm/bh-empty-state_3.entry.js +199 -6
  336. package/dist/esm/bh-featured-icon.entry.js +1 -1
  337. package/dist/esm/bh-illustrations.entry.js +3 -3
  338. package/dist/esm/bh-input-autocomplete.entry.js +2 -2
  339. package/dist/esm/bh-input-number.entry.js +1 -1
  340. package/dist/esm/bh-input-password.entry.js +1 -1
  341. package/dist/esm/bh-input-text.bh-picker-menu.entry.js.map +1 -1
  342. package/dist/esm/bh-input-text_2.entry.js +2 -2
  343. package/dist/esm/bh-input-verification.entry.js +1 -1
  344. package/dist/esm/bh-label.bh-tooltip.entry.js.map +1 -1
  345. package/dist/esm/bh-label_2.entry.js +105 -4
  346. package/dist/esm/bh-modal-actions.entry.js +1 -1
  347. package/dist/esm/bh-modal-header.entry.js +4 -4
  348. package/dist/esm/bh-month-picker-content.entry.js +2 -2
  349. package/dist/esm/bh-month-picker-content.entry.js.map +1 -1
  350. package/dist/esm/bh-month-picker.entry.js +2 -2
  351. package/dist/esm/bh-month-picker.entry.js.map +1 -1
  352. package/dist/esm/bh-notification.entry.js +1 -1
  353. package/dist/esm/bh-page-navigation-child.entry.js +1 -1
  354. package/dist/esm/bh-page-navigation-multi-level_2.entry.js +3 -3
  355. package/dist/esm/bh-page-navigation.entry.js +1 -1
  356. package/dist/esm/bh-pie-chart.entry.js +1 -1
  357. package/dist/esm/bh-popover.entry.js +15 -77
  358. package/dist/esm/bh-popover.entry.js.map +1 -1
  359. package/dist/esm/bh-property-switcher.entry.js +1 -1
  360. package/dist/esm/bh-sidebar.entry.js +10 -1
  361. package/dist/esm/bh-sidebar.entry.js.map +1 -1
  362. package/dist/esm/bh-tab-item.entry.js +2 -2
  363. package/dist/esm/bh-tabs.entry.js +1 -1
  364. package/dist/esm/bh-textarea.entry.js +1 -1
  365. package/dist/esm/bh-toggle.entry.js +1 -1
  366. package/dist/esm/bh-trend-chart.entry.js +2 -2
  367. package/dist/esm/index-nAAobRRQ.js +42 -50
  368. package/dist/esm/index-nAAobRRQ.js.map +1 -1
  369. package/dist/esm/index.js +1 -15
  370. package/dist/esm/index.js.map +1 -1
  371. package/dist/esm/loader.js +1 -1
  372. package/dist/types/components/bh-date-picker/bh-date-picker.d.ts +11 -1
  373. package/dist/types/components/bh-pagination/bh-pagination.d.ts +7 -7
  374. package/dist/types/components/bh-popover/bh-popover.d.ts +9 -49
  375. package/dist/types/components/bh-sidebar/bh-sidebar.d.ts +9 -0
  376. package/dist/types/components.d.ts +61 -193
  377. package/dist/types/index.d.ts +13 -13
  378. package/hydrate/index.js +294 -297
  379. package/hydrate/index.mjs +294 -297
  380. package/llms.txt +22000 -1428
  381. package/package.json +1 -1
  382. package/components/bh-container-footer.d.ts +0 -11
  383. package/components/bh-container-footer.js +0 -73
  384. package/components/bh-container-footer.js.map +0 -1
  385. package/components/bh-container.d.ts +0 -11
  386. package/components/bh-container.js +0 -48
  387. package/components/bh-container.js.map +0 -1
  388. package/components/p-8bOZFmdg.js.map +0 -1
  389. package/components/p-BQKx1tGq.js.map +0 -1
  390. package/components/p-CMoGgYqw.js.map +0 -1
  391. package/components/p-CdwyUif-.js.map +0 -1
  392. package/components/p-Npcwl1Z8.js.map +0 -1
  393. package/components/p-WibqGBGu.js +0 -182
  394. package/components/p-WibqGBGu.js.map +0 -1
  395. package/dist/bellhop-core/bh-container-footer.entry.esm.js.map +0 -1
  396. package/dist/bellhop-core/bh-container.entry.esm.js.map +0 -1
  397. package/dist/bellhop-core/p-233540f9.entry.js +0 -13
  398. package/dist/bellhop-core/p-233540f9.entry.js.map +0 -1
  399. package/dist/bellhop-core/p-3194a87d.entry.js +0 -2
  400. package/dist/bellhop-core/p-3194a87d.entry.js.map +0 -1
  401. package/dist/bellhop-core/p-43c41dfb.entry.js +0 -2
  402. package/dist/bellhop-core/p-43c41dfb.entry.js.map +0 -1
  403. package/dist/bellhop-core/p-4e483d25.entry.js +0 -2
  404. package/dist/bellhop-core/p-5514d7fb.entry.js +0 -2
  405. package/dist/bellhop-core/p-5514d7fb.entry.js.map +0 -1
  406. package/dist/bellhop-core/p-7a85db89.entry.js +0 -2
  407. package/dist/bellhop-core/p-80e07b3d.entry.js +0 -2
  408. package/dist/bellhop-core/p-80e07b3d.entry.js.map +0 -1
  409. package/dist/bellhop-core/p-8962e1a6.entry.js +0 -2
  410. package/dist/bellhop-core/p-8962e1a6.entry.js.map +0 -1
  411. package/dist/bellhop-core/p-9a19cbf7.entry.js +0 -2
  412. package/dist/bellhop-core/p-9a19cbf7.entry.js.map +0 -1
  413. package/dist/bellhop-core/p-CSYwm_Ke.js +0 -2
  414. package/dist/bellhop-core/p-CSYwm_Ke.js.map +0 -1
  415. package/dist/bellhop-core/p-Ck1gRAmI.js.map +0 -1
  416. package/dist/bellhop-core/p-DY76Ee-p.js.map +0 -1
  417. package/dist/bellhop-core/p-b878539a.entry.js +0 -2
  418. package/dist/bellhop-core/p-b878539a.entry.js.map +0 -1
  419. package/dist/bellhop-core/p-c33f6e73.entry.js +0 -2
  420. package/dist/bellhop-core/p-c33f6e73.entry.js.map +0 -1
  421. package/dist/bellhop-core/p-ffb29d95.entry.js +0 -2
  422. package/dist/cjs/bh-button-DD0c0ODJ.js +0 -117
  423. package/dist/cjs/bh-button-DD0c0ODJ.js.map +0 -1
  424. package/dist/cjs/bh-container-footer.cjs.entry.js +0 -38
  425. package/dist/cjs/bh-container-footer.entry.cjs.js.map +0 -1
  426. package/dist/cjs/bh-container.cjs.entry.js +0 -26
  427. package/dist/cjs/bh-container.entry.cjs.js.map +0 -1
  428. package/dist/cjs/bh-label-MpXjm9k0.js +0 -110
  429. package/dist/cjs/bh-label-MpXjm9k0.js.map +0 -1
  430. package/dist/cjs/bh-pagination-CgER63yz.js +0 -152
  431. package/dist/cjs/bh-pagination-CgER63yz.js.map +0 -1
  432. package/dist/collection/components/bh-container/bh-container.css +0 -21
  433. package/dist/collection/components/bh-container/bh-container.js +0 -51
  434. package/dist/collection/components/bh-container/bh-container.js.map +0 -1
  435. package/dist/collection/components/bh-container-footer/bh-container-footer.css +0 -22
  436. package/dist/collection/components/bh-container-footer/bh-container-footer.js +0 -106
  437. package/dist/collection/components/bh-container-footer/bh-container-footer.js.map +0 -1
  438. package/dist/esm/bh-button-ImGVvXaj.js +0 -115
  439. package/dist/esm/bh-button-ImGVvXaj.js.map +0 -1
  440. package/dist/esm/bh-container-footer.entry.js +0 -36
  441. package/dist/esm/bh-container-footer.entry.js.map +0 -1
  442. package/dist/esm/bh-container.entry.js +0 -24
  443. package/dist/esm/bh-container.entry.js.map +0 -1
  444. package/dist/esm/bh-label-PLT7t4We.js +0 -108
  445. package/dist/esm/bh-label-PLT7t4We.js.map +0 -1
  446. package/dist/esm/bh-pagination-CUeRSYsV.js +0 -150
  447. package/dist/esm/bh-pagination-CUeRSYsV.js.map +0 -1
  448. package/dist/types/components/bh-container/bh-container.d.ts +0 -7
  449. package/dist/types/components/bh-container-footer/bh-container-footer.d.ts +0 -18
  450. /package/dist/bellhop-core/{p-bd00d5ad.entry.js.map → p-06b0ba5f.entry.js.map} +0 -0
  451. /package/dist/bellhop-core/{p-4a8844ff.entry.js.map → p-0a232a85.entry.js.map} +0 -0
  452. /package/dist/bellhop-core/{p-67956598.entry.js.map → p-0e773f4b.entry.js.map} +0 -0
  453. /package/dist/bellhop-core/{p-df4498cd.entry.js.map → p-11e84742.entry.js.map} +0 -0
  454. /package/dist/bellhop-core/{p-a41b3673.entry.js.map → p-20e65b2b.entry.js.map} +0 -0
  455. /package/dist/bellhop-core/{p-a30e22f7.entry.js.map → p-2349cd39.entry.js.map} +0 -0
  456. /package/dist/bellhop-core/{p-3a1c52a9.entry.js.map → p-2cc352e8.entry.js.map} +0 -0
  457. /package/dist/bellhop-core/{p-f85a9eaa.entry.js.map → p-439f8477.entry.js.map} +0 -0
  458. /package/dist/bellhop-core/{p-21bc4f77.entry.js.map → p-4cf74f24.entry.js.map} +0 -0
  459. /package/dist/bellhop-core/{p-62235d6e.entry.js.map → p-5a0b2d81.entry.js.map} +0 -0
  460. /package/dist/bellhop-core/{p-07c9b7fa.entry.js.map → p-6626f089.entry.js.map} +0 -0
  461. /package/dist/bellhop-core/{p-36166900.entry.js.map → p-6b428841.entry.js.map} +0 -0
  462. /package/dist/bellhop-core/{p-6bc81ebb.entry.js.map → p-6d4c6b6f.entry.js.map} +0 -0
  463. /package/dist/bellhop-core/{p-c0e36166.entry.js.map → p-6dad737e.entry.js.map} +0 -0
  464. /package/dist/bellhop-core/{p-5c4f74b8.entry.js.map → p-738f24c8.entry.js.map} +0 -0
  465. /package/dist/bellhop-core/{p-49edd1bb.entry.js.map → p-7534a8d4.entry.js.map} +0 -0
  466. /package/dist/bellhop-core/{p-7b0cba50.entry.js.map → p-84ecaf3b.entry.js.map} +0 -0
  467. /package/dist/bellhop-core/{p-d5bf49ab.entry.js.map → p-cad28e7e.entry.js.map} +0 -0
  468. /package/dist/bellhop-core/{p-1540001e.entry.js.map → p-cb0e4e35.entry.js.map} +0 -0
  469. /package/dist/bellhop-core/{p-091171da.entry.js.map → p-ce2aaf37.entry.js.map} +0 -0
  470. /package/dist/bellhop-core/{p-b0dda4df.entry.js.map → p-e83a86d6.entry.js.map} +0 -0
  471. /package/dist/bellhop-core/{p-2db7990e.entry.js.map → p-e96e5aa3.entry.js.map} +0 -0
  472. /package/dist/bellhop-core/{p-c70d11a2.entry.js.map → p-ed780663.entry.js.map} +0 -0
  473. /package/dist/bellhop-core/{p-0e34250c.entry.js.map → p-f4dd33af.entry.js.map} +0 -0
  474. /package/dist/bellhop-core/{p-1be3e908.entry.js.map → p-fe7d5dcb.entry.js.map} +0 -0
@@ -1 +1 @@
1
- {"version":3,"file":"bh-avatar.entry.js","sources":["src/components/bh-avatar/bh-avatar.css?tag=bh-avatar&encapsulation=shadow","src/components/bh-avatar/bh-avatar.tsx"],"sourcesContent":["/* ==========================================================================\n BH-AVATAR COMPONENT STYLES\n ========================================================================== */\n\n:host {\n display: inline-block;\n}\n\n/* Base Avatar */\n.avatar {\n position: relative;\n display: inline-flex;\n align-items: center;\n justify-content: center;\n border-radius: 50%;\n background-color: var(--color-neutral-100);\n flex-shrink: 0;\n}\n\n/* Avatar Sizes */\n.avatar-xxs {\n width: 16px;\n height: 16px;\n}\n\n.avatar-xs {\n width: 24px;\n height: 24px;\n}\n\n.avatar-sm {\n width: 32px;\n height: 32px;\n}\n\n.avatar-md {\n width: 40px;\n height: 40px;\n}\n\n.avatar-lg {\n width: 48px;\n height: 48px;\n}\n\n.avatar-xl {\n width: 56px;\n height: 56px;\n}\n\n.avatar-2xl {\n width: 64px;\n height: 64px;\n}\n\n/* ==========================================================================\n AVATAR CONTENT ELEMENTS\n ========================================================================== */\n\n/* Avatar Border */\n.avatar-border {\n position: absolute;\n top: 0;\n left: 0;\n right: 0;\n bottom: 0;\n border-radius: 50%;\n pointer-events: none;\n z-index: 1;\n}\n\n.avatar-xs .avatar-border,\n.avatar-sm .avatar-border {\n border: 0.5px solid var(--color-neutral-400);\n}\n\n.avatar-md .avatar-border,\n.avatar-lg .avatar-border,\n.avatar-xl .avatar-border,\n.avatar-2xl .avatar-border {\n border: 0.75px solid var(--color-neutral-400);\n}\n\n/* Avatar Content Container */\n.avatar-content {\n position: relative;\n width: 100%;\n height: 100%;\n display: flex;\n align-items: center;\n justify-content: center;\n border-radius: 50%;\n overflow: hidden;\n z-index: 0;\n}\n\n/* Avatar Image */\n.avatar-image {\n width: 100%;\n height: 100%;\n object-fit: cover;\n border-radius: 50%;\n aspect-ratio: 1 / 1;\n}\n\n/* Avatar Placeholder Icon */\n.avatar-placeholder-icon {\n color: var(--color-neutral-500);\n line-height: 1;\n display: flex;\n align-items: center;\n justify-content: center;\n}\n\n/* Avatar Text (for text-type avatars) */\n.avatar-text {\n color: var(--color-neutral-500);\n font-family: var(--font-inter);\n font-weight: var(--weight-semibold);\n text-align: center;\n line-height: 1;\n}\n\n/* Text Size Classes */\n.text-xxs {\n font-size: 10px;\n line-height: 1.6em;\n}\n\n.text-xs {\n font-size: 12px;\n line-height: 1.5em;\n}\n\n.text-sm {\n font-size: var(--text-sm-size);\n line-height: var(--text-sm-line);\n}\n\n.text-md {\n font-size: var(--text-md-size);\n line-height: var(--text-md-line);\n}\n\n.text-lg {\n font-size: 18px;\n line-height: 1.56em;\n}\n\n.text-xl {\n font-size: 20px;\n line-height: 1.5em;\n}\n\n.text-2xl {\n font-size: 24px;\n line-height: 1.33em;\n}\n\n/* Icon Size Classes */\n.icon-sm {\n font-size: 16px;\n}\n\n.icon-md {\n font-size: 20px;\n}\n\n.icon-lg {\n font-size: 24px;\n}\n\n.icon-xl {\n font-size: 28px;\n}\n\n.icon-2xl {\n font-size: 32px;\n}\n\n.icon-3xl {\n font-size: 36px;\n}\n\n.icon-4xl {\n font-size: 40px;\n}\n\n/* ==========================================================================\n STATUS INDICATOR\n ========================================================================== */\n\n.avatar-status {\n position: absolute;\n border-radius: 50%;\n background-color: var(--color-success-500);\n border: 1.5px solid var(--color-white);\n z-index: 2;\n}\n\n.avatar-status-online {\n background-color: var(--color-success-500);\n}\n\n.avatar-status-offline {\n background-color: var(--color-neutral-400);\n}\n\n/* Status Indicator Sizes */\n.avatar-status-xxs {\n width: 4px;\n height: 4px;\n bottom: 0;\n right: 0;\n}\n\n.avatar-status-xs {\n width: 6px;\n height: 6px;\n bottom: 0;\n right: 0;\n}\n\n.avatar-status-sm {\n width: 8px;\n height: 8px;\n bottom: 0;\n right: 0;\n}\n\n.avatar-status-md {\n width: 10px;\n height: 10px;\n bottom: 0;\n right: 0;\n}\n\n.avatar-status-lg {\n width: 12px;\n height: 12px;\n bottom: 0;\n right: 0;\n}\n\n.avatar-status-xl {\n width: 14px;\n height: 14px;\n bottom: 0;\n right: 0;\n}\n\n.avatar-status-2xl {\n width: 16px;\n height: 16px;\n bottom: 0;\n right: 0;\n}\n","import { Component, Prop, Event, EventEmitter, h } from '@stencil/core';\n\nexport type AvatarSize = 'xxs' | 'xs' | 'sm' | 'md' | 'lg' | 'xl' | '2xl';\nexport type AvatarType = 'image' | 'placeholder' | 'text';\nexport type AvatarStatus = 'online' | 'offline' | 'none';\n\n@Component({\n tag: 'bh-avatar',\n styleUrl: 'bh-avatar.css',\n shadow: true,\n})\nexport class BhAvatar {\n /**\n * The size of the avatar\n */\n @Prop() size: AvatarSize = 'md';\n\n /**\n * The type of avatar content\n */\n @Prop() type: AvatarType = 'image';\n\n /**\n * The status indicator (online, offline, or none)\n */\n @Prop() status: AvatarStatus = 'none';\n\n /**\n * Text to display for text-type avatars (initials)\n */\n @Prop() text: string = 'RD';\n\n /**\n * Image source URL for image-type avatars\n */\n @Prop() imageSrc?: string;\n\n /**\n * Alt text for the avatar image\n */\n @Prop() alt: string = 'Avatar';\n\n /**\n * Emitted when the avatar is hovered\n */\n @Event() bhMouseEnter!: EventEmitter<void>;\n\n /**\n * Emitted when the mouse leaves the avatar\n */\n @Event() bhMouseLeave!: EventEmitter<void>;\n\n private handleMouseEnter = (): void => {\n this.bhMouseEnter.emit();\n };\n\n private handleMouseLeave = (): void => {\n this.bhMouseLeave.emit();\n };\n\n private getTextSizeClass(): string {\n const sizeMap: Record<AvatarSize, string> = {\n 'xxs': 'text-xxs',\n 'xs': 'text-xs',\n 'sm': 'text-sm',\n 'md': 'text-md',\n 'lg': 'text-lg',\n 'xl': 'text-xl',\n '2xl': 'text-2xl',\n };\n return sizeMap[this.size] || 'text-md';\n }\n\n private getIconSizeClass(): string {\n const sizeMap: Record<AvatarSize, string> = {\n 'xxs': 'icon-sm',\n 'xs': 'icon-md',\n 'sm': 'icon-lg',\n 'md': 'icon-xl',\n 'lg': 'icon-2xl',\n 'xl': 'icon-3xl',\n '2xl': 'icon-4xl',\n };\n return sizeMap[this.size] || 'icon-xl';\n }\n\n render() {\n const avatarClasses = {\n 'avatar': true,\n [`avatar-${this.size}`]: true,\n 'avatar-with-status': this.status !== 'none',\n };\n\n const statusClasses = {\n 'avatar-status': true,\n [`avatar-status-${this.size}`]: true,\n 'avatar-status-online': this.status === 'online',\n 'avatar-status-offline': this.status === 'offline',\n };\n\n return (\n <div\n class={avatarClasses}\n onMouseEnter={this.handleMouseEnter}\n onMouseLeave={this.handleMouseLeave}\n part=\"avatar\"\n >\n <div class=\"avatar-border\"></div>\n\n <div class=\"avatar-content\">\n {this.type === 'image' && (\n <img\n src={this.imageSrc}\n alt={this.alt}\n class=\"avatar-image\"\n />\n )}\n\n {this.type === 'placeholder' && (\n <span class={`material-symbols-outlined avatar-placeholder-icon ${this.getIconSizeClass()}`}>\n person\n </span>\n )}\n\n {this.type === 'text' && (\n <span class={`avatar-text ${this.getTextSizeClass()}`}>\n {this.text}\n </span>\n )}\n </div>\n\n {this.status !== 'none' && (\n <div class={statusClasses}></div>\n )}\n </div>\n );\n }\n}\n"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"bh-avatar.entry.js","sources":["src/components/bh-avatar/bh-avatar.css?tag=bh-avatar&encapsulation=shadow","src/components/bh-avatar/bh-avatar.tsx"],"sourcesContent":["/* ==========================================================================\n BH-AVATAR COMPONENT STYLES\n ========================================================================== */\n\n:host {\n display: inline-block;\n}\n\n/* Base Avatar */\n.avatar {\n position: relative;\n display: inline-flex;\n align-items: center;\n justify-content: center;\n border-radius: 50%;\n background-color: var(--color-neutral-100);\n flex-shrink: 0;\n}\n\n/* Avatar Sizes */\n.avatar-xxs {\n width: 16px;\n height: 16px;\n}\n\n.avatar-xs {\n width: 24px;\n height: 24px;\n}\n\n.avatar-sm {\n width: 32px;\n height: 32px;\n}\n\n.avatar-md {\n width: 40px;\n height: 40px;\n}\n\n.avatar-lg {\n width: 48px;\n height: 48px;\n}\n\n.avatar-xl {\n width: 56px;\n height: 56px;\n}\n\n.avatar-2xl {\n width: 64px;\n height: 64px;\n}\n\n/* ==========================================================================\n AVATAR CONTENT ELEMENTS\n ========================================================================== */\n\n/* Avatar Border */\n.avatar-border {\n position: absolute;\n top: 0;\n left: 0;\n right: 0;\n bottom: 0;\n border-radius: 50%;\n pointer-events: none;\n}\n\n.avatar-xs .avatar-border,\n.avatar-sm .avatar-border {\n border: 0.5px solid var(--color-neutral-400);\n}\n\n.avatar-md .avatar-border,\n.avatar-lg .avatar-border,\n.avatar-xl .avatar-border,\n.avatar-2xl .avatar-border {\n border: 0.75px solid var(--color-neutral-400);\n}\n\n/* Avatar Content Container */\n.avatar-content {\n position: relative;\n width: 100%;\n height: 100%;\n display: flex;\n align-items: center;\n justify-content: center;\n border-radius: 50%;\n overflow: hidden;\n z-index: 0;\n}\n\n/* Avatar Image */\n.avatar-image {\n width: 100%;\n height: 100%;\n object-fit: cover;\n border-radius: 50%;\n aspect-ratio: 1 / 1;\n}\n\n/* Avatar Placeholder Icon */\n.avatar-placeholder-icon {\n color: var(--color-neutral-500);\n line-height: 1;\n display: flex;\n align-items: center;\n justify-content: center;\n}\n\n/* Avatar Text (for text-type avatars) */\n.avatar-text {\n color: var(--color-neutral-500);\n font-family: var(--font-inter);\n font-weight: var(--weight-semibold);\n text-align: center;\n line-height: 1;\n}\n\n/* Text Size Classes */\n.text-xxs {\n font-size: 10px;\n line-height: 1.6em;\n}\n\n.text-xs {\n font-size: 12px;\n line-height: 1.5em;\n}\n\n.text-sm {\n font-size: var(--text-sm-size);\n line-height: var(--text-sm-line);\n}\n\n.text-md {\n font-size: var(--text-md-size);\n line-height: var(--text-md-line);\n}\n\n.text-lg {\n font-size: 18px;\n line-height: 1.56em;\n}\n\n.text-xl {\n font-size: 20px;\n line-height: 1.5em;\n}\n\n.text-2xl {\n font-size: 24px;\n line-height: 1.33em;\n}\n\n/* Icon Size Classes */\n.icon-sm {\n font-size: 16px;\n}\n\n.icon-md {\n font-size: 20px;\n}\n\n.icon-lg {\n font-size: 24px;\n}\n\n.icon-xl {\n font-size: 28px;\n}\n\n.icon-2xl {\n font-size: 32px;\n}\n\n.icon-3xl {\n font-size: 36px;\n}\n\n.icon-4xl {\n font-size: 40px;\n}\n\n/* ==========================================================================\n STATUS INDICATOR\n ========================================================================== */\n\n.avatar-status {\n position: absolute;\n border-radius: 50%;\n background-color: var(--color-success-500);\n border: 1.5px solid var(--color-white);\n z-index: 2;\n}\n\n.avatar-status-online {\n background-color: var(--color-success-500);\n}\n\n.avatar-status-offline {\n background-color: var(--color-neutral-400);\n}\n\n/* Status Indicator Sizes */\n.avatar-status-xxs {\n width: 4px;\n height: 4px;\n bottom: 0;\n right: 0;\n}\n\n.avatar-status-xs {\n width: 6px;\n height: 6px;\n bottom: 0;\n right: 0;\n}\n\n.avatar-status-sm {\n width: 8px;\n height: 8px;\n bottom: 0;\n right: 0;\n}\n\n.avatar-status-md {\n width: 10px;\n height: 10px;\n bottom: 0;\n right: 0;\n}\n\n.avatar-status-lg {\n width: 12px;\n height: 12px;\n bottom: 0;\n right: 0;\n}\n\n.avatar-status-xl {\n width: 14px;\n height: 14px;\n bottom: 0;\n right: 0;\n}\n\n.avatar-status-2xl {\n width: 16px;\n height: 16px;\n bottom: 0;\n right: 0;\n}\n","import { Component, Prop, Event, EventEmitter, h } from '@stencil/core';\n\nexport type AvatarSize = 'xxs' | 'xs' | 'sm' | 'md' | 'lg' | 'xl' | '2xl';\nexport type AvatarType = 'image' | 'placeholder' | 'text';\nexport type AvatarStatus = 'online' | 'offline' | 'none';\n\n@Component({\n tag: 'bh-avatar',\n styleUrl: 'bh-avatar.css',\n shadow: true,\n})\nexport class BhAvatar {\n /**\n * The size of the avatar\n */\n @Prop() size: AvatarSize = 'md';\n\n /**\n * The type of avatar content\n */\n @Prop() type: AvatarType = 'image';\n\n /**\n * The status indicator (online, offline, or none)\n */\n @Prop() status: AvatarStatus = 'none';\n\n /**\n * Text to display for text-type avatars (initials)\n */\n @Prop() text: string = 'RD';\n\n /**\n * Image source URL for image-type avatars\n */\n @Prop() imageSrc?: string;\n\n /**\n * Alt text for the avatar image\n */\n @Prop() alt: string = 'Avatar';\n\n /**\n * Emitted when the avatar is hovered\n */\n @Event() bhMouseEnter!: EventEmitter<void>;\n\n /**\n * Emitted when the mouse leaves the avatar\n */\n @Event() bhMouseLeave!: EventEmitter<void>;\n\n private handleMouseEnter = (): void => {\n this.bhMouseEnter.emit();\n };\n\n private handleMouseLeave = (): void => {\n this.bhMouseLeave.emit();\n };\n\n private getTextSizeClass(): string {\n const sizeMap: Record<AvatarSize, string> = {\n 'xxs': 'text-xxs',\n 'xs': 'text-xs',\n 'sm': 'text-sm',\n 'md': 'text-md',\n 'lg': 'text-lg',\n 'xl': 'text-xl',\n '2xl': 'text-2xl',\n };\n return sizeMap[this.size] || 'text-md';\n }\n\n private getIconSizeClass(): string {\n const sizeMap: Record<AvatarSize, string> = {\n 'xxs': 'icon-sm',\n 'xs': 'icon-md',\n 'sm': 'icon-lg',\n 'md': 'icon-xl',\n 'lg': 'icon-2xl',\n 'xl': 'icon-3xl',\n '2xl': 'icon-4xl',\n };\n return sizeMap[this.size] || 'icon-xl';\n }\n\n render() {\n const avatarClasses = {\n 'avatar': true,\n [`avatar-${this.size}`]: true,\n 'avatar-with-status': this.status !== 'none',\n };\n\n const statusClasses = {\n 'avatar-status': true,\n [`avatar-status-${this.size}`]: true,\n 'avatar-status-online': this.status === 'online',\n 'avatar-status-offline': this.status === 'offline',\n };\n\n return (\n <div\n class={avatarClasses}\n onMouseEnter={this.handleMouseEnter}\n onMouseLeave={this.handleMouseLeave}\n part=\"avatar\"\n >\n <div class=\"avatar-border\"></div>\n\n <div class=\"avatar-content\">\n {this.type === 'image' && (\n <img\n src={this.imageSrc}\n alt={this.alt}\n class=\"avatar-image\"\n />\n )}\n\n {this.type === 'placeholder' && (\n <span class={`material-symbols-outlined avatar-placeholder-icon ${this.getIconSizeClass()}`}>\n person\n </span>\n )}\n\n {this.type === 'text' && (\n <span class={`avatar-text ${this.getTextSizeClass()}`}>\n {this.text}\n </span>\n )}\n </div>\n\n {this.status !== 'none' && (\n <div class={statusClasses}></div>\n )}\n </div>\n );\n }\n}\n"],"names":[],"mappings":"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"}
@@ -1 +1 @@
1
- {"version":3,"file":"bh-button.bh-loader-spinner.entry.js","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"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"bh-button.bh-loader-spinner.entry.js","sources":["src/components/bh-button/bh-button.css?tag=bh-button&encapsulation=shadow","src/components/bh-button/bh-button.tsx","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 BH-BUTTON COMPONENT STYLES\n ========================================================================== */\n\n:host {\n display: inline-block;\n}\n\n/* Base Button */\n.btn {\n display: inline-flex;\n align-items: center;\n justify-content: center;\n gap: var(--spacing-xs);\n font-family: var(--font-inter);\n font-weight: var(--weight-medium);\n border: 1px solid transparent;\n cursor: pointer;\n text-align: center;\n white-space: nowrap;\n transition: all 0.2s ease-in-out;\n text-decoration: none;\n outline: none;\n}\n\n/* Button Sizes */\n.btn-xs {\n padding: 0 var(--spacing-lg);\n height: 24px;\n border-radius: var(--radius-md);\n font-size: var(--text-sm-size);\n}\n\n.btn-sm {\n padding: 0 var(--spacing-xl);\n height: 32px;\n border-radius: var(--radius-md);\n font-size: var(--text-sm-size);\n}\n\n.btn-md {\n padding: 0 var(--spacing-xl);\n height: 40px;\n border-radius: var(--radius-md);\n font-size: var(--text-sm-size);\n}\n\n.btn-lg {\n padding: 0 var(--spacing-xl);\n height: 48px;\n border-radius: var(--radius-md);\n gap: var(--spacing-sm);\n font-size: var(--text-md-size);\n}\n\n/* Icon Padding Compensation */\n.btn-xs.btn-icon-leading {\n padding-left: var(\n --icon-compensation-xs-btn,\n calc(var(--spacing-lg) - var(--spacing-xs))\n );\n}\n\n.btn-sm.btn-icon-leading {\n padding-left: var(\n --icon-compensation-sm-btn,\n calc(var(--spacing-xl) - var(--spacing-xs))\n );\n}\n\n.btn-md.btn-icon-leading {\n padding-left: var(\n --icon-compensation-md-btn,\n calc(var(--spacing-xl) - var(--spacing-xs))\n );\n}\n\n.btn-lg.btn-icon-leading {\n padding-left: var(\n --icon-compensation-lg-btn,\n calc(var(--spacing-xl) - var(--spacing-xs))\n );\n}\n\n.btn-xs.btn-icon-trailing {\n padding-right: var(\n --icon-compensation-xs-btn,\n calc(var(--spacing-lg) - var(--spacing-xs))\n );\n}\n\n.btn-sm.btn-icon-trailing {\n padding-right: var(\n --icon-compensation-sm-btn,\n calc(var(--spacing-xl) - var(--spacing-xs))\n );\n}\n\n.btn-md.btn-icon-trailing {\n padding-right: var(\n --icon-compensation-md-btn,\n calc(var(--spacing-xl) - var(--spacing-xs))\n );\n}\n\n.btn-lg.btn-icon-trailing {\n padding-right: var(\n --icon-compensation-lg-btn,\n calc(var(--spacing-xl) - var(--spacing-xs))\n );\n}\n\n/* Button Hierarchies - Default Kind */\n.btn-primary.btn-default {\n background-color: var(--color-brand-600);\n color: var(--color-white);\n border-color: var(--color-brand-600);\n}\n\n.btn-secondary.btn-default {\n background-color: var(--color-white);\n color: var(--color-neutral-600);\n border-color: var(--color-neutral-300);\n}\n\n.btn-tertiary.btn-default {\n background-color: transparent;\n color: var(--color-neutral-600);\n border-color: transparent;\n}\n\n.btn-quaternary.btn-default {\n background-color: transparent;\n color: var(--color-brand-600);\n border-color: transparent;\n}\n\n/* Button Hierarchies - Destructive Kind */\n.btn-primary.btn-destructive {\n background-color: var(--color-error-600);\n color: var(--color-white);\n border-color: var(--color-error-600);\n}\n\n.btn-secondary.btn-destructive {\n background-color: var(--color-white);\n color: var(--color-error-600);\n border-color: var(--color-error-300);\n}\n\n.btn-tertiary.btn-destructive {\n background-color: transparent;\n color: var(--color-error-600);\n border-color: transparent;\n}\n\n.btn-quaternary.btn-destructive {\n background-color: transparent;\n color: var(--color-error-600);\n border-color: transparent;\n}\n\n/* Button Hierarchies - Success Kind */\n.btn-primary.btn-success {\n background-color: var(--color-success-600);\n color: var(--color-white);\n border-color: var(--color-success-600);\n}\n\n.btn-secondary.btn-success {\n background-color: var(--color-white);\n color: var(--color-success-600);\n border-color: var(--color-success-300);\n}\n\n.btn-tertiary.btn-success {\n background-color: transparent;\n color: var(--color-success-600);\n border-color: transparent;\n}\n\n.btn-quaternary.btn-success {\n background-color: transparent;\n color: var(--color-success-600);\n border-color: transparent;\n}\n\n/* Hover States - Default Kind */\n.btn-primary.btn-default:hover:not(:disabled):not(.btn-disabled) {\n background-color: var(--color-brand-700);\n border-color: var(--color-brand-700);\n}\n\n.btn-secondary.btn-default:hover:not(:disabled):not(.btn-disabled) {\n background-color: var(--color-neutral-50);\n color: var(--color-neutral-700);\n border-color: var(--color-neutral-400);\n}\n\n.btn-tertiary.btn-default:hover:not(:disabled):not(.btn-disabled) {\n background-color: var(--color-neutral-100);\n color: var(--color-neutral-700);\n}\n\n.btn-quaternary.btn-default:hover:not(:disabled):not(.btn-disabled) {\n color: var(--color-brand-700);\n}\n\n/* Hover States - Destructive Kind */\n.btn-primary.btn-destructive:hover:not(:disabled):not(.btn-disabled) {\n background-color: var(--color-error-700);\n border-color: var(--color-error-700);\n}\n\n.btn-secondary.btn-destructive:hover:not(:disabled):not(.btn-disabled) {\n background-color: var(--color-error-50);\n border-color: var(--color-error-300);\n}\n\n.btn-tertiary.btn-destructive:hover:not(:disabled):not(.btn-disabled) {\n background-color: var(--color-error-50);\n}\n\n.btn-quaternary.btn-destructive:hover:not(:disabled):not(.btn-disabled) {\n color: var(--color-error-700);\n}\n\n/* Hover States - Success Kind */\n.btn-primary.btn-success:hover:not(:disabled):not(.btn-disabled) {\n background-color: var(--color-success-700);\n border-color: var(--color-success-700);\n}\n\n.btn-secondary.btn-success:hover:not(:disabled):not(.btn-disabled) {\n background-color: var(--color-success-50);\n border-color: var(--color-success-300);\n}\n\n.btn-tertiary.btn-success:hover:not(:disabled):not(.btn-disabled) {\n background-color: var(--color-success-50);\n}\n\n.btn-quaternary.btn-success:hover:not(:disabled):not(.btn-disabled) {\n color: var(--color-success-700);\n}\n\n/* Active States - Default Kind */\n.btn-primary.btn-default:active:not(:disabled):not(.btn-disabled) {\n background-color: var(--color-brand-800);\n border-color: var(--color-brand-800);\n}\n\n.btn-secondary.btn-default:active:not(:disabled):not(.btn-disabled) {\n background-color: var(--color-neutral-100);\n border-color: var(--color-neutral-500);\n}\n\n.btn-tertiary.btn-default:active:not(:disabled):not(.btn-disabled) {\n background-color: var(--color-neutral-100);\n}\n\n.btn-quaternary.btn-default:active:not(:disabled):not(.btn-disabled) {\n color: var(--color-brand-800);\n}\n\n/* Active States - Destructive Kind */\n.btn-primary.btn-destructive:active:not(:disabled):not(.btn-disabled) {\n background-color: var(--color-error-800);\n border-color: var(--color-error-800);\n}\n\n.btn-secondary.btn-destructive:active:not(:disabled):not(.btn-disabled) {\n background-color: var(--color-error-100);\n border-color: var(--color-error-400);\n}\n\n.btn-tertiary.btn-destructive:active:not(:disabled):not(.btn-disabled) {\n background-color: var(--color-error-100);\n}\n\n.btn-quaternary.btn-destructive:active:not(:disabled):not(.btn-disabled) {\n color: var(--color-error-800);\n}\n\n/* Active States - Success Kind */\n.btn-primary.btn-success:active:not(:disabled):not(.btn-disabled) {\n background-color: var(--color-success-800);\n border-color: var(--color-success-800);\n}\n\n.btn-secondary.btn-success:active:not(:disabled):not(.btn-disabled) {\n background-color: var(--color-success-100);\n border-color: var(--color-success-400);\n}\n\n.btn-tertiary.btn-success:active:not(:disabled):not(.btn-disabled) {\n background-color: var(--color-success-100);\n}\n\n.btn-quaternary.btn-success:active:not(:disabled):not(.btn-disabled) {\n color: var(--color-success-800);\n}\n\n/* Focus State - Default Kind */\n.btn.btn-default:focus,\n.btn.btn-default:focus-visible {\n outline: 2px solid var(--color-brand-500);\n outline-offset: 2px;\n}\n\n/* Focus State - Destructive Kind */\n.btn.btn-destructive:focus,\n.btn.btn-destructive:focus-visible {\n outline: 2px solid var(--color-error-500);\n outline-offset: 2px;\n}\n\n/* Focus State - Success Kind */\n.btn.btn-success:focus,\n.btn.btn-success:focus-visible {\n outline: 2px solid var(--color-success-500);\n outline-offset: 2px;\n}\n\n/* Disabled States */\n.btn:disabled,\n.btn-disabled {\n cursor: not-allowed;\n pointer-events: none;\n}\n\n.btn-primary:disabled,\n.btn-primary.btn-disabled {\n background-color: var(--color-neutral-200);\n color: var(--color-neutral-400);\n border-color: var(--color-neutral-200);\n}\n\n.btn-secondary:disabled,\n.btn-secondary.btn-disabled,\n.btn-tertiary:disabled,\n.btn-tertiary.btn-disabled,\n.btn-quaternary:disabled,\n.btn-quaternary.btn-disabled {\n opacity: 0.5;\n}\n\n/* Loading State */\n.btn-loading {\n cursor: wait;\n pointer-events: none;\n}\n\n.btn-loading .btn-label {\n opacity: 0.7;\n}\n\n/* ==========================================================================\n BUTTON CONTENT ELEMENTS\n ========================================================================== */\n\n.btn-label {\n display: inline-block;\n line-height: inherit;\n}\n\n.btn-quaternary .btn-label {\n text-decoration: underline;\n}\n\n/* Icons */\n.btn-icon {\n display: flex;\n align-items: center;\n justify-content: center;\n flex-shrink: 0;\n}\n\n.btn-icon-material {\n line-height: 1;\n vertical-align: middle;\n color: inherit !important;\n}\n\n.btn-xs .btn-icon-material {\n font-size: var(--text-sm-size);\n}\n\n.btn-sm .btn-icon-material {\n font-size: var(--text-md-size);\n}\n\n.btn-md .btn-icon-material {\n font-size: var(--text-lg-size);\n}\n\n.btn-lg .btn-icon-material {\n font-size: var(--text-lg-size);\n}\n\n/* Icon-Only Buttons */\n.btn-icon-only {\n padding: 0;\n}\n\n.btn-icon-only.btn-xs {\n width: 24px;\n height: 24px;\n}\n\n.btn-icon-only.btn-sm {\n width: 32px;\n height: 32px;\n}\n\n.btn-icon-only.btn-md {\n width: 40px;\n height: 40px;\n}\n\n.btn-icon-only.btn-lg {\n width: 48px;\n height: 48px;\n}\n\n.btn-icon-only .btn-icon-material {\n margin: 0;\n}\n\n/* Loading Spinner */\n.btn-loading-icon {\n line-height: 1;\n vertical-align: middle;\n color: inherit;\n animation: spin 1s linear infinite;\n}\n\n@keyframes spin {\n from {\n transform: rotate(0deg);\n }\n to {\n transform: rotate(360deg);\n }\n}\n\n/* Text size utilities */\n.text-sm {\n font-size: var(--text-sm-size);\n line-height: var(--text-sm-line);\n}\n\n.text-md {\n font-size: var(--text-md-size);\n line-height: var(--text-md-line);\n}\n\n/* Icon size utilities */\n.icon-md {\n width: 20px;\n height: 20px;\n}\n\n.icon-lg {\n width: 24px;\n height: 24px;\n}\n","import { Component, Prop, Event, EventEmitter, h } from '@stencil/core';\n\nexport type ButtonHierarchy =\n | 'primary'\n | 'secondary'\n | 'tertiary'\n | 'quaternary';\nexport type ButtonIconPosition = 'none' | 'leading' | 'trailing' | 'only';\nexport type ButtonSize = 'xs' | 'sm' | 'md' | 'lg';\nexport type ButtonKind = 'default' | 'destructive' | 'success';\nexport type ButtonType = 'button' | 'submit' | 'reset';\n\n@Component({\n tag: 'bh-button',\n styleUrl: 'bh-button.css',\n shadow: true,\n})\nexport class BhButton {\n /**\n * The visual hierarchy of the button\n */\n @Prop() hierarchy: ButtonHierarchy = 'primary';\n\n /**\n * The kind/semantic meaning of the button\n */\n @Prop() kind: ButtonKind = 'default';\n\n /**\n * Icon position relative to the label\n */\n @Prop() icon: ButtonIconPosition = 'none';\n\n /**\n * The size of the button\n */\n @Prop() size: ButtonSize = 'sm';\n\n /**\n * Fallback text label (used only if no slot content is provided)\n */\n @Prop() label?: string;\n\n /**\n * Material Symbols icon name (e.g., 'add', 'edit', 'delete')\n */\n @Prop() iconName?: string;\n\n /**\n * Whether the button is disabled\n */\n @Prop() disabled: boolean = false;\n\n /**\n * Whether the button is in a loading state\n */\n @Prop() loading: boolean = false;\n\n /**\n * The type of button for form submission\n * - 'button': No form submission (default)\n * - 'submit': Submits the form\n * - 'reset': Resets the form\n */\n @Prop() type: ButtonType = 'button';\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 && !this.loading) {\n this.bhClick.emit(event);\n }\n };\n\n private getIconSizeClass(): string {\n switch (this.size) {\n case 'sm':\n case 'md':\n return 'icon-md';\n case 'lg':\n return 'icon-lg';\n default:\n return 'icon-md';\n }\n }\n\n private getTextSizeClass(): string {\n switch (this.size) {\n case 'sm':\n case 'md':\n return 'text-sm';\n case 'lg':\n return 'text-md';\n default:\n return 'text-sm';\n }\n }\n\n private getLoaderSize(): 'sm' | 'md' {\n switch (this.size) {\n case 'xs':\n case 'sm':\n return 'sm';\n default:\n return 'sm';\n }\n }\n\n private getLoaderVariant(): 'default' | 'white' {\n // Primary buttons (all kinds) have dark background, so use white spinner\n return this.hierarchy === 'primary' ? 'white' : 'default';\n }\n\n render() {\n const showLabel = this.icon !== 'only';\n const showLeadingIcon =\n this.icon === 'leading' && (this.iconName || this.loading);\n const showTrailingIcon =\n this.icon === 'trailing' && this.iconName && !this.loading;\n const showOnlyIcon =\n this.icon === 'only' && (this.iconName || this.loading);\n\n const buttonClasses = {\n btn: true,\n [`btn-${this.hierarchy}`]: true,\n [`btn-${this.kind}`]: true,\n [`btn-${this.size}`]: true,\n [`btn-icon-${this.icon}`]: true,\n 'btn-disabled': this.disabled,\n 'btn-loading': this.loading,\n };\n\n return (\n <button\n type={this.type}\n class={buttonClasses}\n disabled={this.disabled}\n onClick={this.handleClick}\n part=\"button\"\n >\n {showLeadingIcon && (\n <span class={`btn-icon ${this.getIconSizeClass()}`}>\n {this.loading ? (\n <bh-loader-spinner\n size={this.getLoaderSize()}\n variant={this.getLoaderVariant()}\n ></bh-loader-spinner>\n ) : (\n <span class=\"btn-icon-material material-symbols-outlined\">\n {this.iconName}\n </span>\n )}\n </span>\n )}\n\n {showOnlyIcon && (\n <span class={`btn-icon ${this.getIconSizeClass()}`}>\n {this.loading ? (\n <bh-loader-spinner\n size={this.getLoaderSize()}\n variant={this.getLoaderVariant()}\n ></bh-loader-spinner>\n ) : (\n <span class=\"btn-icon-material material-symbols-outlined\">\n {this.iconName}\n </span>\n )}\n </span>\n )}\n\n {showLabel && (\n <span class={`btn-label ${this.getTextSizeClass()}`}>\n <slot>{this.label}</slot>\n </span>\n )}\n\n {showTrailingIcon && (\n <span class={`btn-icon ${this.getIconSizeClass()}`}>\n <span class=\"btn-icon-material material-symbols-outlined\">\n {this.iconName}\n </span>\n </span>\n )}\n </button>\n );\n }\n}\n","/* ==========================================================================\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"],"names":[],"mappings":"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"}
@@ -1,5 +1,113 @@
1
- export { B as bh_button } from './bh-button-ImGVvXaj.js';
2
- import { r as registerInstance, h } from './index-nAAobRRQ.js';
1
+ import { r as registerInstance, c as createEvent, h } from './index-nAAobRRQ.js';
2
+
3
+ const bhButtonCss = ":host{display:inline-block}.btn{display:inline-flex;align-items:center;justify-content:center;gap:var(--spacing-xs);font-family:var(--font-inter);font-weight:var(--weight-medium);border:1px solid transparent;cursor:pointer;text-align:center;white-space:nowrap;transition:all 0.2s ease-in-out;text-decoration:none;outline:none}.btn-xs{padding:0 var(--spacing-lg);height:24px;border-radius:var(--radius-md);font-size:var(--text-sm-size)}.btn-sm{padding:0 var(--spacing-xl);height:32px;border-radius:var(--radius-md);font-size:var(--text-sm-size)}.btn-md{padding:0 var(--spacing-xl);height:40px;border-radius:var(--radius-md);font-size:var(--text-sm-size)}.btn-lg{padding:0 var(--spacing-xl);height:48px;border-radius:var(--radius-md);gap:var(--spacing-sm);font-size:var(--text-md-size)}.btn-xs.btn-icon-leading{padding-left:var(\n --icon-compensation-xs-btn,\n calc(var(--spacing-lg) - var(--spacing-xs))\n )}.btn-sm.btn-icon-leading{padding-left:var(\n --icon-compensation-sm-btn,\n calc(var(--spacing-xl) - var(--spacing-xs))\n )}.btn-md.btn-icon-leading{padding-left:var(\n --icon-compensation-md-btn,\n calc(var(--spacing-xl) - var(--spacing-xs))\n )}.btn-lg.btn-icon-leading{padding-left:var(\n --icon-compensation-lg-btn,\n calc(var(--spacing-xl) - var(--spacing-xs))\n )}.btn-xs.btn-icon-trailing{padding-right:var(\n --icon-compensation-xs-btn,\n calc(var(--spacing-lg) - var(--spacing-xs))\n )}.btn-sm.btn-icon-trailing{padding-right:var(\n --icon-compensation-sm-btn,\n calc(var(--spacing-xl) - var(--spacing-xs))\n )}.btn-md.btn-icon-trailing{padding-right:var(\n --icon-compensation-md-btn,\n calc(var(--spacing-xl) - var(--spacing-xs))\n )}.btn-lg.btn-icon-trailing{padding-right:var(\n --icon-compensation-lg-btn,\n calc(var(--spacing-xl) - var(--spacing-xs))\n )}.btn-primary.btn-default{background-color:var(--color-brand-600);color:var(--color-white);border-color:var(--color-brand-600)}.btn-secondary.btn-default{background-color:var(--color-white);color:var(--color-neutral-600);border-color:var(--color-neutral-300)}.btn-tertiary.btn-default{background-color:transparent;color:var(--color-neutral-600);border-color:transparent}.btn-quaternary.btn-default{background-color:transparent;color:var(--color-brand-600);border-color:transparent}.btn-primary.btn-destructive{background-color:var(--color-error-600);color:var(--color-white);border-color:var(--color-error-600)}.btn-secondary.btn-destructive{background-color:var(--color-white);color:var(--color-error-600);border-color:var(--color-error-300)}.btn-tertiary.btn-destructive{background-color:transparent;color:var(--color-error-600);border-color:transparent}.btn-quaternary.btn-destructive{background-color:transparent;color:var(--color-error-600);border-color:transparent}.btn-primary.btn-success{background-color:var(--color-success-600);color:var(--color-white);border-color:var(--color-success-600)}.btn-secondary.btn-success{background-color:var(--color-white);color:var(--color-success-600);border-color:var(--color-success-300)}.btn-tertiary.btn-success{background-color:transparent;color:var(--color-success-600);border-color:transparent}.btn-quaternary.btn-success{background-color:transparent;color:var(--color-success-600);border-color:transparent}.btn-primary.btn-default:hover:not(:disabled):not(.btn-disabled){background-color:var(--color-brand-700);border-color:var(--color-brand-700)}.btn-secondary.btn-default:hover:not(:disabled):not(.btn-disabled){background-color:var(--color-neutral-50);color:var(--color-neutral-700);border-color:var(--color-neutral-400)}.btn-tertiary.btn-default:hover:not(:disabled):not(.btn-disabled){background-color:var(--color-neutral-100);color:var(--color-neutral-700)}.btn-quaternary.btn-default:hover:not(:disabled):not(.btn-disabled){color:var(--color-brand-700)}.btn-primary.btn-destructive:hover:not(:disabled):not(.btn-disabled){background-color:var(--color-error-700);border-color:var(--color-error-700)}.btn-secondary.btn-destructive:hover:not(:disabled):not(.btn-disabled){background-color:var(--color-error-50);border-color:var(--color-error-300)}.btn-tertiary.btn-destructive:hover:not(:disabled):not(.btn-disabled){background-color:var(--color-error-50)}.btn-quaternary.btn-destructive:hover:not(:disabled):not(.btn-disabled){color:var(--color-error-700)}.btn-primary.btn-success:hover:not(:disabled):not(.btn-disabled){background-color:var(--color-success-700);border-color:var(--color-success-700)}.btn-secondary.btn-success:hover:not(:disabled):not(.btn-disabled){background-color:var(--color-success-50);border-color:var(--color-success-300)}.btn-tertiary.btn-success:hover:not(:disabled):not(.btn-disabled){background-color:var(--color-success-50)}.btn-quaternary.btn-success:hover:not(:disabled):not(.btn-disabled){color:var(--color-success-700)}.btn-primary.btn-default:active:not(:disabled):not(.btn-disabled){background-color:var(--color-brand-800);border-color:var(--color-brand-800)}.btn-secondary.btn-default:active:not(:disabled):not(.btn-disabled){background-color:var(--color-neutral-100);border-color:var(--color-neutral-500)}.btn-tertiary.btn-default:active:not(:disabled):not(.btn-disabled){background-color:var(--color-neutral-100)}.btn-quaternary.btn-default:active:not(:disabled):not(.btn-disabled){color:var(--color-brand-800)}.btn-primary.btn-destructive:active:not(:disabled):not(.btn-disabled){background-color:var(--color-error-800);border-color:var(--color-error-800)}.btn-secondary.btn-destructive:active:not(:disabled):not(.btn-disabled){background-color:var(--color-error-100);border-color:var(--color-error-400)}.btn-tertiary.btn-destructive:active:not(:disabled):not(.btn-disabled){background-color:var(--color-error-100)}.btn-quaternary.btn-destructive:active:not(:disabled):not(.btn-disabled){color:var(--color-error-800)}.btn-primary.btn-success:active:not(:disabled):not(.btn-disabled){background-color:var(--color-success-800);border-color:var(--color-success-800)}.btn-secondary.btn-success:active:not(:disabled):not(.btn-disabled){background-color:var(--color-success-100);border-color:var(--color-success-400)}.btn-tertiary.btn-success:active:not(:disabled):not(.btn-disabled){background-color:var(--color-success-100)}.btn-quaternary.btn-success:active:not(:disabled):not(.btn-disabled){color:var(--color-success-800)}.btn.btn-default:focus,.btn.btn-default:focus-visible{outline:2px solid var(--color-brand-500);outline-offset:2px}.btn.btn-destructive:focus,.btn.btn-destructive:focus-visible{outline:2px solid var(--color-error-500);outline-offset:2px}.btn.btn-success:focus,.btn.btn-success:focus-visible{outline:2px solid var(--color-success-500);outline-offset:2px}.btn:disabled,.btn-disabled{cursor:not-allowed;pointer-events:none}.btn-primary:disabled,.btn-primary.btn-disabled{background-color:var(--color-neutral-200);color:var(--color-neutral-400);border-color:var(--color-neutral-200)}.btn-secondary:disabled,.btn-secondary.btn-disabled,.btn-tertiary:disabled,.btn-tertiary.btn-disabled,.btn-quaternary:disabled,.btn-quaternary.btn-disabled{opacity:0.5}.btn-loading{cursor:wait;pointer-events:none}.btn-loading .btn-label{opacity:0.7}.btn-label{display:inline-block;line-height:inherit}.btn-quaternary .btn-label{text-decoration:underline}.btn-icon{display:flex;align-items:center;justify-content:center;flex-shrink:0}.btn-icon-material{line-height:1;vertical-align:middle;color:inherit !important}.btn-xs .btn-icon-material{font-size:var(--text-sm-size)}.btn-sm .btn-icon-material{font-size:var(--text-md-size)}.btn-md .btn-icon-material{font-size:var(--text-lg-size)}.btn-lg .btn-icon-material{font-size:var(--text-lg-size)}.btn-icon-only{padding:0}.btn-icon-only.btn-xs{width:24px;height:24px}.btn-icon-only.btn-sm{width:32px;height:32px}.btn-icon-only.btn-md{width:40px;height:40px}.btn-icon-only.btn-lg{width:48px;height:48px}.btn-icon-only .btn-icon-material{margin:0}.btn-loading-icon{line-height:1;vertical-align:middle;color:inherit;animation:spin 1s linear infinite}@keyframes spin{from{transform:rotate(0deg)}to{transform:rotate(360deg)}}.text-sm{font-size:var(--text-sm-size);line-height:var(--text-sm-line)}.text-md{font-size:var(--text-md-size);line-height:var(--text-md-line)}.icon-md{width:20px;height:20px}.icon-lg{width:24px;height:24px}";
4
+
5
+ const BhButton = class {
6
+ constructor(hostRef) {
7
+ registerInstance(this, hostRef);
8
+ this.bhClick = createEvent(this, "bhClick");
9
+ }
10
+ /**
11
+ * The visual hierarchy of the button
12
+ */
13
+ hierarchy = 'primary';
14
+ /**
15
+ * The kind/semantic meaning of the button
16
+ */
17
+ kind = 'default';
18
+ /**
19
+ * Icon position relative to the label
20
+ */
21
+ icon = 'none';
22
+ /**
23
+ * The size of the button
24
+ */
25
+ size = 'sm';
26
+ /**
27
+ * Fallback text label (used only if no slot content is provided)
28
+ */
29
+ label;
30
+ /**
31
+ * Material Symbols icon name (e.g., 'add', 'edit', 'delete')
32
+ */
33
+ iconName;
34
+ /**
35
+ * Whether the button is disabled
36
+ */
37
+ disabled = false;
38
+ /**
39
+ * Whether the button is in a loading state
40
+ */
41
+ loading = false;
42
+ /**
43
+ * The type of button for form submission
44
+ * - 'button': No form submission (default)
45
+ * - 'submit': Submits the form
46
+ * - 'reset': Resets the form
47
+ */
48
+ type = 'button';
49
+ /**
50
+ * Emitted when the button is clicked
51
+ */
52
+ bhClick;
53
+ handleClick = (event) => {
54
+ if (!this.disabled && !this.loading) {
55
+ this.bhClick.emit(event);
56
+ }
57
+ };
58
+ getIconSizeClass() {
59
+ switch (this.size) {
60
+ case 'sm':
61
+ case 'md':
62
+ return 'icon-md';
63
+ case 'lg':
64
+ return 'icon-lg';
65
+ default:
66
+ return 'icon-md';
67
+ }
68
+ }
69
+ getTextSizeClass() {
70
+ switch (this.size) {
71
+ case 'sm':
72
+ case 'md':
73
+ return 'text-sm';
74
+ case 'lg':
75
+ return 'text-md';
76
+ default:
77
+ return 'text-sm';
78
+ }
79
+ }
80
+ getLoaderSize() {
81
+ switch (this.size) {
82
+ case 'xs':
83
+ case 'sm':
84
+ return 'sm';
85
+ default:
86
+ return 'sm';
87
+ }
88
+ }
89
+ getLoaderVariant() {
90
+ // Primary buttons (all kinds) have dark background, so use white spinner
91
+ return this.hierarchy === 'primary' ? 'white' : 'default';
92
+ }
93
+ render() {
94
+ const showLabel = this.icon !== 'only';
95
+ const showLeadingIcon = this.icon === 'leading' && (this.iconName || this.loading);
96
+ const showTrailingIcon = this.icon === 'trailing' && this.iconName && !this.loading;
97
+ const showOnlyIcon = this.icon === 'only' && (this.iconName || this.loading);
98
+ const buttonClasses = {
99
+ btn: true,
100
+ [`btn-${this.hierarchy}`]: true,
101
+ [`btn-${this.kind}`]: true,
102
+ [`btn-${this.size}`]: true,
103
+ [`btn-icon-${this.icon}`]: true,
104
+ 'btn-disabled': this.disabled,
105
+ 'btn-loading': this.loading,
106
+ };
107
+ return (h("button", { key: 'f2f54633cb42a7fea15c38aa8bc24be085320dc9', type: this.type, class: buttonClasses, disabled: this.disabled, onClick: this.handleClick, part: "button" }, showLeadingIcon && (h("span", { key: '682a4704e4f874b4f3d051aab4738829cbd47778', class: `btn-icon ${this.getIconSizeClass()}` }, this.loading ? (h("bh-loader-spinner", { size: this.getLoaderSize(), variant: this.getLoaderVariant() })) : (h("span", { class: "btn-icon-material material-symbols-outlined" }, this.iconName)))), showOnlyIcon && (h("span", { key: '767e0ee41843e2ef8b3a45ec82f15602848ad751', class: `btn-icon ${this.getIconSizeClass()}` }, this.loading ? (h("bh-loader-spinner", { size: this.getLoaderSize(), variant: this.getLoaderVariant() })) : (h("span", { class: "btn-icon-material material-symbols-outlined" }, this.iconName)))), showLabel && (h("span", { key: 'bb2ddbcf7eb35dd5af688a6fc6d61d07f67d90ba', class: `btn-label ${this.getTextSizeClass()}` }, h("slot", { key: '010690eeab4cea1205d2ebca5cc2e1bfc95048c7' }, this.label))), showTrailingIcon && (h("span", { key: '9de8df1ab10e9035affbd766fea95896762e2bca', class: `btn-icon ${this.getIconSizeClass()}` }, h("span", { key: 'b50370274c0513a7885eae4bf40235c3e7e245aa', class: "btn-icon-material material-symbols-outlined" }, this.iconName)))));
108
+ }
109
+ };
110
+ BhButton.style = bhButtonCss;
3
111
 
4
112
  const bhLoaderSpinnerCss = ":host{display:inline-block}.loader-overlay{position:fixed;top:0;left:0;width:100%;height:100%;background-color:rgba(0, 0, 0, 0.3);backdrop-filter:blur(4px);display:flex;align-items:center;justify-content:center;z-index:9999}.loader-overlay-content{display:flex;flex-direction:column;align-items:center;gap:var(--spacing-md)}.loader-container{display:flex;flex-direction:column;align-items:center;gap:var(--spacing-sm)}.loader-spinner{position:relative;display:inline-block}.loader-message{color:var(--color-neutral-700);font-size:var(--text-sm-size);line-height:var(--text-sm-line);font-weight:var(--weight-medium);text-align:center;margin-top:var(--spacing-xs)}.loader-overlay .loader-message{color:var(--color-white)}.spinner-gradient{animation:gradient-rotate 2s linear infinite;will-change:transform}.gradient-svg{display:block;transform-origin:50% 50%}.gradient-path{stroke-dasharray:90, 150;stroke-dashoffset:0;animation:gradient-dash 1.5s ease-in-out infinite;transform-origin:50% 50%}.size-sm .gradient-svg{width:20px;height:20px}.size-sm .gradient-path{stroke-width:5}.size-md .gradient-svg{width:30px;height:30px}.size-md .gradient-path{stroke-width:5}.size-lg .gradient-svg{width:40px;height:40px}.size-lg .gradient-path{stroke-width:5}.size-xl .gradient-svg{width:60px;height:60px}.size-xl .gradient-path{stroke-width:6}@keyframes gradient-rotate{100%{transform:rotate(360deg)}}@keyframes gradient-dash{0%{stroke-dasharray:1, 150;stroke-dashoffset:0}50%{stroke-dasharray:90, 150;stroke-dashoffset:-35}100%{stroke-dasharray:90, 150;stroke-dashoffset:-124}}.loader-container:hover .spinner-gradient{animation-duration:1s}.loader-container:hover .gradient-path{animation-duration:0.6s}.spinner-gradient{backface-visibility:hidden;perspective:1000px}.gradient-svg{transform:translateZ(0)}";
5
113
 
@@ -40,5 +148,5 @@ const BhLoaderSpinner = class {
40
148
  };
41
149
  BhLoaderSpinner.style = bhLoaderSpinnerCss;
42
150
 
43
- export { BhLoaderSpinner as bh_loader_spinner };
151
+ export { BhButton as bh_button, BhLoaderSpinner as bh_loader_spinner };
44
152
  //# sourceMappingURL=bh-button.bh-loader-spinner.entry.js.map
@@ -37,7 +37,7 @@ const BhCard = class {
37
37
  const contentStyle = {
38
38
  minHeight: `${this.contentMinHeight}px`,
39
39
  };
40
- return (h(Host, { key: '2f01aa3ee4b9cdeb1d5f0f16a961af880e11d0fb' }, h("div", { key: '4f4542a1f24dc9db216fef1e361efff54cb5f538', class: "card" }, this.showHeader && (h("div", { key: 'c290615fb8b36c965ac6a032963f2b4e78c22a29', class: "card-header-slot" }, h("slot", { key: '35d78f934a0a8486a62ff17897537cc0afd355a7', name: "header" }))), h("div", { key: 'bfd8a8827ea13baad0862ed5d962853ceed4be4e', class: "card-content", style: contentStyle }, h("slot", { key: 'b43aad6dfb675e4fd32f9614ba83f67aac264aa0' }), !this.hasContent && (h("div", { key: 'a9cf30bb2b1a9a0ab4baf6fa9d8514181f1e79c5', class: "card-content-placeholder" }, h("span", { key: '7d46bf5c2246cd8d9bd2d73695d9b55a1ba6112c', class: "card-placeholder-text" }, this.placeholderText)))), this.showFooter && (h("div", { key: '5588ba1dcc017c899909917f31961414dc4ffd9e', class: "card-footer-slot" }, h("slot", { key: 'ff28528d0090a67061fc7cd63f7df68662d908a8', name: "footer" }))))));
40
+ return (h(Host, { key: '31c722ab510a95909c875f389116ff547f3fb119' }, h("div", { key: 'b5390ca668bd29974154f7b0b831a4ce98b45394', class: "card" }, this.showHeader && (h("div", { key: 'df7f16b333cb5b8f651175c6c8299b35b90e16f2', class: "card-header-slot" }, h("slot", { key: '978b518b1ae6087bcb96846aa5c802524748bd14', name: "header" }))), h("div", { key: '7a1b7437e801d9b547d7bcd45639baf0774c34d7', class: "card-content", style: contentStyle }, h("slot", { key: '6c22feff58b21f0aec25c6f547d1443bf1f88f9d' }), !this.hasContent && (h("div", { key: '4b42011a00526f859a967a07fefd028cf9903f41', class: "card-content-placeholder" }, h("span", { key: '25fc157be159aae504164dd4dcb0faa9df632756', class: "card-placeholder-text" }, this.placeholderText)))), this.showFooter && (h("div", { key: '115e111772a1446b874e6f02f025fde54becd0a3', class: "card-footer-slot" }, h("slot", { key: '2cd029465310d2db438a684a3f6009e234b14c1b', name: "footer" }))))));
41
41
  }
42
42
  };
43
43
  BhCard.style = bhCardCss;