@actabldesign/bellhop-core 0.0.8 → 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 (466) 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 +7 -7
  49. package/components/bh-skeleton-loader.js +1 -1
  50. package/components/bh-tab-item.js +2 -2
  51. package/components/bh-tabs.js +1 -1
  52. package/components/bh-tag.js +1 -1
  53. package/components/bh-textarea.js +3 -3
  54. package/components/bh-toggle.js +1 -1
  55. package/components/bh-tooltip.js +1 -1
  56. package/components/bh-trend-chart.js +2 -2
  57. package/components/index.d.ts +0 -4
  58. package/components/index.js +0 -2
  59. package/components/index.js.map +1 -1
  60. package/components/{p-8bOZFmdg.js → p--S10V0sf.js} +5 -5
  61. package/components/p--S10V0sf.js.map +1 -0
  62. package/components/{p-BLCjD0ux.js → p-7nrZFsG8.js} +3 -3
  63. package/components/{p-BLCjD0ux.js.map → p-7nrZFsG8.js.map} +1 -1
  64. package/components/{p-C_wf2KGn.js → p-B0ADeWoj.js} +3 -3
  65. package/components/{p-C_wf2KGn.js.map → p-B0ADeWoj.js.map} +1 -1
  66. package/components/{p-D9aamyuM.js → p-BEm39SYP.js} +4 -4
  67. package/components/{p-D9aamyuM.js.map → p-BEm39SYP.js.map} +1 -1
  68. package/components/{p-BkK6rWZn.js → p-BYRvQ4u7.js} +4 -4
  69. package/components/{p-BkK6rWZn.js.map → p-BYRvQ4u7.js.map} +1 -1
  70. package/components/{p-D0Ba0gOA.js → p-BqYBdZ7I.js} +4 -4
  71. package/components/{p-D0Ba0gOA.js.map → p-BqYBdZ7I.js.map} +1 -1
  72. package/components/{p-Df8KgHhe.js → p-BrIid8rr.js} +3 -3
  73. package/components/{p-Df8KgHhe.js.map → p-BrIid8rr.js.map} +1 -1
  74. package/components/p-BsHlTsAN.js.map +1 -1
  75. package/components/{p-Npcwl1Z8.js → p-CDmCw7LX.js} +4 -4
  76. package/components/p-CDmCw7LX.js.map +1 -0
  77. package/components/{p-BQKx1tGq.js → p-CHYn9whC.js} +6 -6
  78. package/components/p-CHYn9whC.js.map +1 -0
  79. package/components/{p-CdwyUif-.js → p-CNwZh1xz.js} +5 -5
  80. package/components/p-CNwZh1xz.js.map +1 -0
  81. package/components/{p-B02xFf1P.js → p-CiEBtN9j.js} +3 -3
  82. package/components/{p-B02xFf1P.js.map → p-CiEBtN9j.js.map} +1 -1
  83. package/components/{p-Cmo_S3fO.js → p-CiZSLZTA.js} +4 -4
  84. package/components/{p-Cmo_S3fO.js.map → p-CiZSLZTA.js.map} +1 -1
  85. package/components/{p-DYC2IZEs.js → p-CmEb-mj5.js} +6 -6
  86. package/components/{p-DYC2IZEs.js.map → p-CmEb-mj5.js.map} +1 -1
  87. package/components/{p-Do29ZTL9.js → p-CppjlSaO.js} +3 -3
  88. package/components/{p-Do29ZTL9.js.map → p-CppjlSaO.js.map} +1 -1
  89. package/components/{p-D3FuyNC4.js → p-CyFUHAY1.js} +7 -7
  90. package/components/{p-D3FuyNC4.js.map → p-CyFUHAY1.js.map} +1 -1
  91. package/components/{p-B0vRPcr5.js → p-D8L5XpBP.js} +3 -3
  92. package/components/{p-B0vRPcr5.js.map → p-D8L5XpBP.js.map} +1 -1
  93. package/components/p-DH86TJ99.js +232 -0
  94. package/components/p-DH86TJ99.js.map +1 -0
  95. package/components/{p-BJLHKnwL.js → p-DVBd-54W.js} +5 -5
  96. package/components/{p-BJLHKnwL.js.map → p-DVBd-54W.js.map} +1 -1
  97. package/components/{p-CMoGgYqw.js → p-DmELCHDa.js} +3 -3
  98. package/components/p-DmELCHDa.js.map +1 -0
  99. package/components/{p-Bu0BcHwL.js → p-Du_cCBR7.js} +6 -6
  100. package/components/{p-Bu0BcHwL.js.map → p-Du_cCBR7.js.map} +1 -1
  101. package/components/{p-h6juyPoa.js → p-JJSN-gZI.js} +3 -3
  102. package/components/{p-h6juyPoa.js.map → p-JJSN-gZI.js.map} +1 -1
  103. package/components/{p-wPu4WTba.js → p-dsE158cF.js} +3 -3
  104. package/components/{p-wPu4WTba.js.map → p-dsE158cF.js.map} +1 -1
  105. package/components/{p-C0fcjlnS.js → p-eYcfeTFU.js} +3 -3
  106. package/components/{p-C0fcjlnS.js.map → p-eYcfeTFU.js.map} +1 -1
  107. package/components/{p-BSok41i-.js → p-oyeucMe6.js} +3 -3
  108. package/components/{p-BSok41i-.js.map → p-oyeucMe6.js.map} +1 -1
  109. package/dist/bellhop-core/bellhop-core.esm.js +1 -1
  110. package/dist/bellhop-core/bellhop-core.esm.js.map +1 -1
  111. package/dist/bellhop-core/bh-avatar.entry.esm.js.map +1 -1
  112. package/dist/bellhop-core/bh-button.bh-loader-spinner.entry.esm.js.map +1 -1
  113. package/dist/bellhop-core/bh-data-grid.entry.esm.js.map +1 -1
  114. package/dist/bellhop-core/bh-date-picker-content.entry.esm.js.map +1 -1
  115. package/dist/bellhop-core/bh-date-picker.entry.esm.js.map +1 -1
  116. package/dist/bellhop-core/bh-empty-state.bh-pagination.bh-skeleton-loader.entry.esm.js.map +1 -1
  117. package/dist/bellhop-core/bh-input-text.bh-picker-menu.entry.esm.js.map +1 -1
  118. package/dist/bellhop-core/bh-label.bh-tooltip.entry.esm.js.map +1 -1
  119. package/dist/bellhop-core/bh-month-picker-content.entry.esm.js.map +1 -1
  120. package/dist/bellhop-core/bh-month-picker.entry.esm.js.map +1 -1
  121. package/dist/bellhop-core/bh-popover.entry.esm.js.map +1 -1
  122. package/dist/bellhop-core/index.esm.js +1 -1
  123. package/dist/bellhop-core/index.esm.js.map +1 -1
  124. package/dist/bellhop-core/{p-Ck1gRAmI.js → p-04a00da6.entry.js} +2 -2
  125. package/dist/bellhop-core/p-04a00da6.entry.js.map +1 -0
  126. package/dist/bellhop-core/{p-bd00d5ad.entry.js → p-06b0ba5f.entry.js} +2 -2
  127. package/dist/bellhop-core/{p-4a8844ff.entry.js → p-0a232a85.entry.js} +2 -2
  128. package/dist/bellhop-core/p-0d5ce369.entry.js +13 -0
  129. package/dist/bellhop-core/p-0d5ce369.entry.js.map +1 -0
  130. package/dist/bellhop-core/{p-67956598.entry.js → p-0e773f4b.entry.js} +2 -2
  131. package/dist/bellhop-core/{p-df4498cd.entry.js → p-11e84742.entry.js} +2 -2
  132. package/dist/bellhop-core/{p-a41b3673.entry.js → p-20e65b2b.entry.js} +2 -2
  133. package/dist/bellhop-core/{p-a30e22f7.entry.js → p-2349cd39.entry.js} +2 -2
  134. package/dist/bellhop-core/{p-3a1c52a9.entry.js → p-2cc352e8.entry.js} +2 -2
  135. package/dist/bellhop-core/{p-defe9916.entry.js → p-31f60dac.entry.js} +2 -2
  136. package/dist/bellhop-core/{p-defe9916.entry.js.map → p-31f60dac.entry.js.map} +1 -1
  137. package/dist/bellhop-core/{p-f85a9eaa.entry.js → p-439f8477.entry.js} +2 -2
  138. package/dist/bellhop-core/{p-a42e8ddb.entry.js → p-4bc0e720.entry.js} +2 -2
  139. package/dist/bellhop-core/{p-a42e8ddb.entry.js.map → p-4bc0e720.entry.js.map} +1 -1
  140. package/dist/bellhop-core/{p-21bc4f77.entry.js → p-4cf74f24.entry.js} +2 -2
  141. package/dist/bellhop-core/p-53dbd8bd.entry.js +2 -0
  142. package/dist/bellhop-core/p-53dbd8bd.entry.js.map +1 -0
  143. package/dist/bellhop-core/p-59e4c008.entry.js +2 -0
  144. package/dist/bellhop-core/p-59e4c008.entry.js.map +1 -0
  145. package/dist/bellhop-core/{p-62235d6e.entry.js → p-5a0b2d81.entry.js} +2 -2
  146. package/dist/bellhop-core/{p-07c9b7fa.entry.js → p-6626f089.entry.js} +2 -2
  147. package/dist/bellhop-core/{p-36166900.entry.js → p-6b428841.entry.js} +2 -2
  148. package/dist/bellhop-core/{p-6bc81ebb.entry.js → p-6d4c6b6f.entry.js} +2 -2
  149. package/dist/bellhop-core/{p-c0e36166.entry.js → p-6dad737e.entry.js} +2 -2
  150. package/dist/bellhop-core/{p-5c4f74b8.entry.js → p-738f24c8.entry.js} +2 -2
  151. package/dist/bellhop-core/{p-49edd1bb.entry.js → p-7534a8d4.entry.js} +2 -2
  152. package/dist/bellhop-core/p-7b0a4c99.entry.js +2 -0
  153. package/dist/bellhop-core/{p-7a85db89.entry.js.map → p-7b0a4c99.entry.js.map} +1 -1
  154. package/dist/bellhop-core/{p-7b0cba50.entry.js → p-84ecaf3b.entry.js} +2 -2
  155. package/dist/bellhop-core/{p-DY76Ee-p.js → p-940af1e0.entry.js} +2 -2
  156. package/dist/bellhop-core/p-940af1e0.entry.js.map +1 -0
  157. package/dist/bellhop-core/p-c0dfca99.entry.js +2 -0
  158. package/dist/bellhop-core/{p-4e483d25.entry.js.map → p-c0dfca99.entry.js.map} +1 -1
  159. package/dist/bellhop-core/{p-d5bf49ab.entry.js → p-cad28e7e.entry.js} +2 -2
  160. package/dist/bellhop-core/{p-1540001e.entry.js → p-cb0e4e35.entry.js} +2 -2
  161. package/dist/bellhop-core/{p-091171da.entry.js → p-ce2aaf37.entry.js} +2 -2
  162. package/dist/bellhop-core/p-d64525f4.entry.js +2 -0
  163. package/dist/bellhop-core/p-d64525f4.entry.js.map +1 -0
  164. package/dist/bellhop-core/{p-a9c914ee.entry.js → p-e0f7b6d1.entry.js} +2 -2
  165. package/dist/bellhop-core/{p-b0dda4df.entry.js → p-e83a86d6.entry.js} +2 -2
  166. package/dist/bellhop-core/{p-2db7990e.entry.js → p-e96e5aa3.entry.js} +2 -2
  167. package/dist/bellhop-core/{p-c70d11a2.entry.js → p-ed780663.entry.js} +2 -2
  168. package/dist/bellhop-core/p-f30af956.entry.js +2 -0
  169. package/dist/bellhop-core/{p-ffb29d95.entry.js.map → p-f30af956.entry.js.map} +1 -1
  170. package/dist/bellhop-core/{p-0e34250c.entry.js → p-f4dd33af.entry.js} +2 -2
  171. package/dist/bellhop-core/{p-1be3e908.entry.js → p-fe7d5dcb.entry.js} +2 -2
  172. package/dist/bellhop-core/p-nAAobRRQ.js.map +1 -1
  173. package/dist/cjs/bellhop-core.cjs.js +1 -1
  174. package/dist/cjs/bellhop-core.cjs.js.map +1 -1
  175. package/dist/cjs/bh-accordion-item.cjs.entry.js +1 -1
  176. package/dist/cjs/bh-autocomplete-menu_2.cjs.entry.js +1 -1
  177. package/dist/cjs/bh-avatar.cjs.entry.js +1 -1
  178. package/dist/cjs/bh-avatar.entry.cjs.js.map +1 -1
  179. package/dist/cjs/bh-button.bh-loader-spinner.entry.cjs.js.map +1 -1
  180. package/dist/cjs/bh-button_2.cjs.entry.js +110 -2
  181. package/dist/cjs/bh-card.cjs.entry.js +1 -1
  182. package/dist/cjs/bh-data-grid.cjs.entry.js +132 -59
  183. package/dist/cjs/bh-data-grid.entry.cjs.js.map +1 -1
  184. package/dist/cjs/bh-date-picker-content.cjs.entry.js +2 -2
  185. package/dist/cjs/bh-date-picker-content.entry.cjs.js.map +1 -1
  186. package/dist/cjs/bh-date-picker.cjs.entry.js +15 -12
  187. package/dist/cjs/bh-date-picker.entry.cjs.js.map +1 -1
  188. package/dist/cjs/bh-date-range-picker-content.cjs.entry.js +1 -1
  189. package/dist/cjs/bh-date-range-picker.cjs.entry.js +1 -1
  190. package/dist/cjs/bh-dropdown_3.cjs.entry.js +4 -4
  191. package/dist/cjs/bh-empty-state.bh-pagination.bh-skeleton-loader.entry.cjs.js.map +1 -1
  192. package/dist/cjs/bh-empty-state_3.cjs.entry.js +199 -6
  193. package/dist/cjs/bh-featured-icon.cjs.entry.js +1 -1
  194. package/dist/cjs/bh-illustrations.cjs.entry.js +3 -3
  195. package/dist/cjs/bh-input-autocomplete.cjs.entry.js +2 -2
  196. package/dist/cjs/bh-input-number.cjs.entry.js +1 -1
  197. package/dist/cjs/bh-input-password.cjs.entry.js +1 -1
  198. package/dist/cjs/bh-input-text.bh-picker-menu.entry.cjs.js.map +1 -1
  199. package/dist/cjs/bh-input-text_2.cjs.entry.js +2 -2
  200. package/dist/cjs/bh-input-verification.cjs.entry.js +1 -1
  201. package/dist/cjs/bh-label.bh-tooltip.entry.cjs.js.map +1 -1
  202. package/dist/cjs/bh-label_2.cjs.entry.js +104 -3
  203. package/dist/cjs/bh-modal-actions.cjs.entry.js +1 -1
  204. package/dist/cjs/bh-modal-header.cjs.entry.js +4 -4
  205. package/dist/cjs/bh-month-picker-content.cjs.entry.js +2 -2
  206. package/dist/cjs/bh-month-picker-content.entry.cjs.js.map +1 -1
  207. package/dist/cjs/bh-month-picker.cjs.entry.js +2 -2
  208. package/dist/cjs/bh-month-picker.entry.cjs.js.map +1 -1
  209. package/dist/cjs/bh-notification.cjs.entry.js +1 -1
  210. package/dist/cjs/bh-page-navigation-child.cjs.entry.js +1 -1
  211. package/dist/cjs/bh-page-navigation-multi-level_2.cjs.entry.js +3 -3
  212. package/dist/cjs/bh-page-navigation.cjs.entry.js +1 -1
  213. package/dist/cjs/bh-pie-chart.cjs.entry.js +1 -1
  214. package/dist/cjs/bh-popover.cjs.entry.js +14 -76
  215. package/dist/cjs/bh-popover.entry.cjs.js.map +1 -1
  216. package/dist/cjs/bh-property-switcher.cjs.entry.js +1 -1
  217. package/dist/cjs/bh-sidebar.cjs.entry.js +1 -1
  218. package/dist/cjs/bh-tab-item.cjs.entry.js +2 -2
  219. package/dist/cjs/bh-tabs.cjs.entry.js +1 -1
  220. package/dist/cjs/bh-textarea.cjs.entry.js +1 -1
  221. package/dist/cjs/bh-toggle.cjs.entry.js +1 -1
  222. package/dist/cjs/bh-trend-chart.cjs.entry.js +2 -2
  223. package/dist/cjs/index-DQwSUT6k.js +42 -50
  224. package/dist/cjs/index-DQwSUT6k.js.map +1 -1
  225. package/dist/cjs/index.cjs.js +0 -31
  226. package/dist/cjs/index.cjs.js.map +1 -1
  227. package/dist/cjs/loader.cjs.js +1 -1
  228. package/dist/collection/collection-manifest.json +1 -3
  229. package/dist/collection/components/bh-accordion/bh-accordion.js +1 -1
  230. package/dist/collection/components/bh-accordion-item/bh-accordion-item.js +1 -1
  231. package/dist/collection/components/bh-appbar/bh-appbar.js +2 -2
  232. package/dist/collection/components/bh-autocomplete-menu/bh-autocomplete-menu.js +2 -2
  233. package/dist/collection/components/bh-avatar/bh-avatar.css +0 -1
  234. package/dist/collection/components/bh-avatar/bh-avatar.js +3 -3
  235. package/dist/collection/components/bh-avatar-add/bh-avatar-add.js +1 -1
  236. package/dist/collection/components/bh-avatar-stacked/bh-avatar-stacked.js +1 -1
  237. package/dist/collection/components/bh-badge/bh-badge.js +3 -3
  238. package/dist/collection/components/bh-badge-dot/bh-badge-dot.js +2 -2
  239. package/dist/collection/components/bh-bar-chart/bh-bar-chart.js +3 -3
  240. package/dist/collection/components/bh-breadcrumbs/bh-breadcrumbs.js +2 -2
  241. package/dist/collection/components/bh-button/bh-button.js +7 -7
  242. package/dist/collection/components/bh-button/bh-button.js.map +1 -1
  243. package/dist/collection/components/bh-button-icon/bh-button-icon.js +3 -3
  244. package/dist/collection/components/bh-card/bh-card.js +1 -1
  245. package/dist/collection/components/bh-card-footer/bh-card-footer.js +1 -1
  246. package/dist/collection/components/bh-card-header/bh-card-header.js +2 -2
  247. package/dist/collection/components/bh-chart-tooltip/bh-chart-tooltip.js +1 -1
  248. package/dist/collection/components/bh-checkbox/bh-checkbox.js +1 -1
  249. package/dist/collection/components/bh-checkbox-group/bh-checkbox-group.js +1 -1
  250. package/dist/collection/components/bh-checkbox-group-item/bh-checkbox-group-item.js +2 -2
  251. package/dist/collection/components/bh-data-grid/bh-data-grid.css +86 -68
  252. package/dist/collection/components/bh-data-grid/bh-data-grid.js +132 -59
  253. package/dist/collection/components/bh-data-grid/bh-data-grid.js.map +1 -1
  254. package/dist/collection/components/bh-date-picker/bh-date-picker.css +24 -214
  255. package/dist/collection/components/bh-date-picker/bh-date-picker.js +22 -12
  256. package/dist/collection/components/bh-date-picker/bh-date-picker.js.map +1 -1
  257. package/dist/collection/components/bh-date-picker-content/bh-date-picker-content.css +0 -206
  258. package/dist/collection/components/bh-date-picker-content/bh-date-picker-content.js +7 -7
  259. package/dist/collection/components/bh-date-range-picker/bh-date-range-picker.js +2 -2
  260. package/dist/collection/components/bh-date-range-picker-content/bh-date-range-picker-content.js +4 -4
  261. package/dist/collection/components/bh-dropdown/bh-dropdown.js +5 -5
  262. package/dist/collection/components/bh-dropdown-menu/bh-dropdown-menu.js +3 -3
  263. package/dist/collection/components/bh-empty-state/bh-empty-state.js +2 -2
  264. package/dist/collection/components/bh-featured-icon/bh-featured-icon.js +4 -4
  265. package/dist/collection/components/bh-illustrations/bh-illustrations.js +4 -4
  266. package/dist/collection/components/bh-input-autocomplete/bh-input-autocomplete.js +3 -3
  267. package/dist/collection/components/bh-input-number/bh-input-number.js +1 -1
  268. package/dist/collection/components/bh-input-password/bh-input-password.js +1 -1
  269. package/dist/collection/components/bh-input-text/bh-input-text.js +1 -1
  270. package/dist/collection/components/bh-input-verification/bh-input-verification.js +3 -3
  271. package/dist/collection/components/bh-label/bh-label.js +1 -1
  272. package/dist/collection/components/bh-loader-spinner/bh-loader-spinner.js +2 -2
  273. package/dist/collection/components/bh-logo-box/bh-logo-box.js +2 -2
  274. package/dist/collection/components/bh-modal/bh-modal.js +1 -1
  275. package/dist/collection/components/bh-modal-actions/bh-modal-actions.js +2 -2
  276. package/dist/collection/components/bh-modal-header/bh-modal-header.js +4 -4
  277. package/dist/collection/components/bh-month-picker/bh-month-picker.css +0 -206
  278. package/dist/collection/components/bh-month-picker/bh-month-picker.js +2 -2
  279. package/dist/collection/components/bh-month-picker-content/bh-month-picker-content.css +0 -206
  280. package/dist/collection/components/bh-month-picker-content/bh-month-picker-content.js +5 -5
  281. package/dist/collection/components/bh-notification/bh-notification.js +2 -2
  282. package/dist/collection/components/bh-page-navigation/bh-page-navigation.js +2 -2
  283. package/dist/collection/components/bh-page-navigation-child/bh-page-navigation-child.js +1 -1
  284. package/dist/collection/components/bh-page-navigation-multi-level/bh-page-navigation-multi-level.js +3 -3
  285. package/dist/collection/components/bh-page-navigation-single-level/bh-page-navigation-single-level.js +1 -1
  286. package/dist/collection/components/bh-pagination/bh-pagination.css +122 -58
  287. package/dist/collection/components/bh-pagination/bh-pagination.js +74 -30
  288. package/dist/collection/components/bh-pagination/bh-pagination.js.map +1 -1
  289. package/dist/collection/components/bh-picker-menu/bh-picker-menu.css +1 -3
  290. package/dist/collection/components/bh-pie-chart/bh-pie-chart.js +3 -3
  291. package/dist/collection/components/bh-popover/bh-popover.css +77 -260
  292. package/dist/collection/components/bh-popover/bh-popover.js +33 -238
  293. package/dist/collection/components/bh-popover/bh-popover.js.map +1 -1
  294. package/dist/collection/components/bh-product-switcher/bh-product-switcher.js +3 -3
  295. package/dist/collection/components/bh-property-switcher/bh-property-switcher.js +3 -3
  296. package/dist/collection/components/bh-radio-button/bh-radio-button.js +1 -1
  297. package/dist/collection/components/bh-sidebar/bh-nav-item.js +1 -1
  298. package/dist/collection/components/bh-sidebar/bh-sidebar.js +4 -4
  299. package/dist/collection/components/bh-skeleton-loader/bh-skeleton-loader.css +9 -22
  300. package/dist/collection/components/bh-skeleton-loader/bh-skeleton-loader.js +2 -2
  301. package/dist/collection/components/bh-skeleton-loader/bh-skeleton-loader.js.map +1 -1
  302. package/dist/collection/components/bh-tab-item/bh-tab-item.js +2 -2
  303. package/dist/collection/components/bh-tabs/bh-tabs.js +3 -3
  304. package/dist/collection/components/bh-tag/bh-tag.js +3 -3
  305. package/dist/collection/components/bh-textarea/bh-textarea.js +2 -2
  306. package/dist/collection/components/bh-toggle/bh-toggle.js +2 -2
  307. package/dist/collection/components/bh-tooltip/bh-tooltip.js +3 -3
  308. package/dist/collection/components/bh-trend-chart/bh-trend-chart.js +4 -4
  309. package/dist/collection/index.js +1 -23
  310. package/dist/collection/index.js.map +1 -1
  311. package/dist/esm/bellhop-core.js +1 -1
  312. package/dist/esm/bellhop-core.js.map +1 -1
  313. package/dist/esm/bh-accordion-item.entry.js +1 -1
  314. package/dist/esm/bh-autocomplete-menu_2.entry.js +1 -1
  315. package/dist/esm/bh-avatar.entry.js +1 -1
  316. package/dist/esm/bh-avatar.entry.js.map +1 -1
  317. package/dist/esm/bh-button.bh-loader-spinner.entry.js.map +1 -1
  318. package/dist/esm/bh-button_2.entry.js +111 -3
  319. package/dist/esm/bh-card.entry.js +1 -1
  320. package/dist/esm/bh-data-grid.entry.js +132 -59
  321. package/dist/esm/bh-data-grid.entry.js.map +1 -1
  322. package/dist/esm/bh-date-picker-content.entry.js +2 -2
  323. package/dist/esm/bh-date-picker-content.entry.js.map +1 -1
  324. package/dist/esm/bh-date-picker.entry.js +16 -13
  325. package/dist/esm/bh-date-picker.entry.js.map +1 -1
  326. package/dist/esm/bh-date-range-picker-content.entry.js +1 -1
  327. package/dist/esm/bh-date-range-picker.entry.js +1 -1
  328. package/dist/esm/bh-dropdown_3.entry.js +4 -4
  329. package/dist/esm/bh-empty-state.bh-pagination.bh-skeleton-loader.entry.js.map +1 -1
  330. package/dist/esm/bh-empty-state_3.entry.js +199 -6
  331. package/dist/esm/bh-featured-icon.entry.js +1 -1
  332. package/dist/esm/bh-illustrations.entry.js +3 -3
  333. package/dist/esm/bh-input-autocomplete.entry.js +2 -2
  334. package/dist/esm/bh-input-number.entry.js +1 -1
  335. package/dist/esm/bh-input-password.entry.js +1 -1
  336. package/dist/esm/bh-input-text.bh-picker-menu.entry.js.map +1 -1
  337. package/dist/esm/bh-input-text_2.entry.js +2 -2
  338. package/dist/esm/bh-input-verification.entry.js +1 -1
  339. package/dist/esm/bh-label.bh-tooltip.entry.js.map +1 -1
  340. package/dist/esm/bh-label_2.entry.js +105 -4
  341. package/dist/esm/bh-modal-actions.entry.js +1 -1
  342. package/dist/esm/bh-modal-header.entry.js +4 -4
  343. package/dist/esm/bh-month-picker-content.entry.js +2 -2
  344. package/dist/esm/bh-month-picker-content.entry.js.map +1 -1
  345. package/dist/esm/bh-month-picker.entry.js +2 -2
  346. package/dist/esm/bh-month-picker.entry.js.map +1 -1
  347. package/dist/esm/bh-notification.entry.js +1 -1
  348. package/dist/esm/bh-page-navigation-child.entry.js +1 -1
  349. package/dist/esm/bh-page-navigation-multi-level_2.entry.js +3 -3
  350. package/dist/esm/bh-page-navigation.entry.js +1 -1
  351. package/dist/esm/bh-pie-chart.entry.js +1 -1
  352. package/dist/esm/bh-popover.entry.js +15 -77
  353. package/dist/esm/bh-popover.entry.js.map +1 -1
  354. package/dist/esm/bh-property-switcher.entry.js +1 -1
  355. package/dist/esm/bh-sidebar.entry.js +1 -1
  356. package/dist/esm/bh-tab-item.entry.js +2 -2
  357. package/dist/esm/bh-tabs.entry.js +1 -1
  358. package/dist/esm/bh-textarea.entry.js +1 -1
  359. package/dist/esm/bh-toggle.entry.js +1 -1
  360. package/dist/esm/bh-trend-chart.entry.js +2 -2
  361. package/dist/esm/index-nAAobRRQ.js +42 -50
  362. package/dist/esm/index-nAAobRRQ.js.map +1 -1
  363. package/dist/esm/index.js +1 -15
  364. package/dist/esm/index.js.map +1 -1
  365. package/dist/esm/loader.js +1 -1
  366. package/dist/types/components/bh-date-picker/bh-date-picker.d.ts +11 -1
  367. package/dist/types/components/bh-pagination/bh-pagination.d.ts +7 -7
  368. package/dist/types/components/bh-popover/bh-popover.d.ts +9 -49
  369. package/dist/types/components.d.ts +43 -193
  370. package/dist/types/index.d.ts +13 -13
  371. package/hydrate/index.js +283 -297
  372. package/hydrate/index.mjs +283 -297
  373. package/llms.txt +22000 -1428
  374. package/package.json +1 -1
  375. package/components/bh-container-footer.d.ts +0 -11
  376. package/components/bh-container-footer.js +0 -73
  377. package/components/bh-container-footer.js.map +0 -1
  378. package/components/bh-container.d.ts +0 -11
  379. package/components/bh-container.js +0 -48
  380. package/components/bh-container.js.map +0 -1
  381. package/components/p-8bOZFmdg.js.map +0 -1
  382. package/components/p-BQKx1tGq.js.map +0 -1
  383. package/components/p-CMoGgYqw.js.map +0 -1
  384. package/components/p-CdwyUif-.js.map +0 -1
  385. package/components/p-Npcwl1Z8.js.map +0 -1
  386. package/components/p-WibqGBGu.js +0 -182
  387. package/components/p-WibqGBGu.js.map +0 -1
  388. package/dist/bellhop-core/bh-container-footer.entry.esm.js.map +0 -1
  389. package/dist/bellhop-core/bh-container.entry.esm.js.map +0 -1
  390. package/dist/bellhop-core/p-233540f9.entry.js +0 -13
  391. package/dist/bellhop-core/p-233540f9.entry.js.map +0 -1
  392. package/dist/bellhop-core/p-3194a87d.entry.js +0 -2
  393. package/dist/bellhop-core/p-3194a87d.entry.js.map +0 -1
  394. package/dist/bellhop-core/p-43c41dfb.entry.js +0 -2
  395. package/dist/bellhop-core/p-43c41dfb.entry.js.map +0 -1
  396. package/dist/bellhop-core/p-4e483d25.entry.js +0 -2
  397. package/dist/bellhop-core/p-5514d7fb.entry.js +0 -2
  398. package/dist/bellhop-core/p-5514d7fb.entry.js.map +0 -1
  399. package/dist/bellhop-core/p-7a85db89.entry.js +0 -2
  400. package/dist/bellhop-core/p-80e07b3d.entry.js +0 -2
  401. package/dist/bellhop-core/p-80e07b3d.entry.js.map +0 -1
  402. package/dist/bellhop-core/p-8962e1a6.entry.js +0 -2
  403. package/dist/bellhop-core/p-8962e1a6.entry.js.map +0 -1
  404. package/dist/bellhop-core/p-CSYwm_Ke.js +0 -2
  405. package/dist/bellhop-core/p-CSYwm_Ke.js.map +0 -1
  406. package/dist/bellhop-core/p-Ck1gRAmI.js.map +0 -1
  407. package/dist/bellhop-core/p-DY76Ee-p.js.map +0 -1
  408. package/dist/bellhop-core/p-b878539a.entry.js +0 -2
  409. package/dist/bellhop-core/p-b878539a.entry.js.map +0 -1
  410. package/dist/bellhop-core/p-c33f6e73.entry.js +0 -2
  411. package/dist/bellhop-core/p-c33f6e73.entry.js.map +0 -1
  412. package/dist/bellhop-core/p-ffb29d95.entry.js +0 -2
  413. package/dist/cjs/bh-button-DD0c0ODJ.js +0 -117
  414. package/dist/cjs/bh-button-DD0c0ODJ.js.map +0 -1
  415. package/dist/cjs/bh-container-footer.cjs.entry.js +0 -38
  416. package/dist/cjs/bh-container-footer.entry.cjs.js.map +0 -1
  417. package/dist/cjs/bh-container.cjs.entry.js +0 -26
  418. package/dist/cjs/bh-container.entry.cjs.js.map +0 -1
  419. package/dist/cjs/bh-label-MpXjm9k0.js +0 -110
  420. package/dist/cjs/bh-label-MpXjm9k0.js.map +0 -1
  421. package/dist/cjs/bh-pagination-CgER63yz.js +0 -152
  422. package/dist/cjs/bh-pagination-CgER63yz.js.map +0 -1
  423. package/dist/collection/components/bh-container/bh-container.css +0 -21
  424. package/dist/collection/components/bh-container/bh-container.js +0 -51
  425. package/dist/collection/components/bh-container/bh-container.js.map +0 -1
  426. package/dist/collection/components/bh-container-footer/bh-container-footer.css +0 -22
  427. package/dist/collection/components/bh-container-footer/bh-container-footer.js +0 -106
  428. package/dist/collection/components/bh-container-footer/bh-container-footer.js.map +0 -1
  429. package/dist/esm/bh-button-ImGVvXaj.js +0 -115
  430. package/dist/esm/bh-button-ImGVvXaj.js.map +0 -1
  431. package/dist/esm/bh-container-footer.entry.js +0 -36
  432. package/dist/esm/bh-container-footer.entry.js.map +0 -1
  433. package/dist/esm/bh-container.entry.js +0 -24
  434. package/dist/esm/bh-container.entry.js.map +0 -1
  435. package/dist/esm/bh-label-PLT7t4We.js +0 -108
  436. package/dist/esm/bh-label-PLT7t4We.js.map +0 -1
  437. package/dist/esm/bh-pagination-CUeRSYsV.js +0 -150
  438. package/dist/esm/bh-pagination-CUeRSYsV.js.map +0 -1
  439. package/dist/types/components/bh-container/bh-container.d.ts +0 -7
  440. package/dist/types/components/bh-container-footer/bh-container-footer.d.ts +0 -18
  441. /package/dist/bellhop-core/{p-bd00d5ad.entry.js.map → p-06b0ba5f.entry.js.map} +0 -0
  442. /package/dist/bellhop-core/{p-4a8844ff.entry.js.map → p-0a232a85.entry.js.map} +0 -0
  443. /package/dist/bellhop-core/{p-67956598.entry.js.map → p-0e773f4b.entry.js.map} +0 -0
  444. /package/dist/bellhop-core/{p-df4498cd.entry.js.map → p-11e84742.entry.js.map} +0 -0
  445. /package/dist/bellhop-core/{p-a41b3673.entry.js.map → p-20e65b2b.entry.js.map} +0 -0
  446. /package/dist/bellhop-core/{p-a30e22f7.entry.js.map → p-2349cd39.entry.js.map} +0 -0
  447. /package/dist/bellhop-core/{p-3a1c52a9.entry.js.map → p-2cc352e8.entry.js.map} +0 -0
  448. /package/dist/bellhop-core/{p-f85a9eaa.entry.js.map → p-439f8477.entry.js.map} +0 -0
  449. /package/dist/bellhop-core/{p-21bc4f77.entry.js.map → p-4cf74f24.entry.js.map} +0 -0
  450. /package/dist/bellhop-core/{p-62235d6e.entry.js.map → p-5a0b2d81.entry.js.map} +0 -0
  451. /package/dist/bellhop-core/{p-07c9b7fa.entry.js.map → p-6626f089.entry.js.map} +0 -0
  452. /package/dist/bellhop-core/{p-36166900.entry.js.map → p-6b428841.entry.js.map} +0 -0
  453. /package/dist/bellhop-core/{p-6bc81ebb.entry.js.map → p-6d4c6b6f.entry.js.map} +0 -0
  454. /package/dist/bellhop-core/{p-c0e36166.entry.js.map → p-6dad737e.entry.js.map} +0 -0
  455. /package/dist/bellhop-core/{p-5c4f74b8.entry.js.map → p-738f24c8.entry.js.map} +0 -0
  456. /package/dist/bellhop-core/{p-49edd1bb.entry.js.map → p-7534a8d4.entry.js.map} +0 -0
  457. /package/dist/bellhop-core/{p-7b0cba50.entry.js.map → p-84ecaf3b.entry.js.map} +0 -0
  458. /package/dist/bellhop-core/{p-d5bf49ab.entry.js.map → p-cad28e7e.entry.js.map} +0 -0
  459. /package/dist/bellhop-core/{p-1540001e.entry.js.map → p-cb0e4e35.entry.js.map} +0 -0
  460. /package/dist/bellhop-core/{p-091171da.entry.js.map → p-ce2aaf37.entry.js.map} +0 -0
  461. /package/dist/bellhop-core/{p-a9c914ee.entry.js.map → p-e0f7b6d1.entry.js.map} +0 -0
  462. /package/dist/bellhop-core/{p-b0dda4df.entry.js.map → p-e83a86d6.entry.js.map} +0 -0
  463. /package/dist/bellhop-core/{p-2db7990e.entry.js.map → p-e96e5aa3.entry.js.map} +0 -0
  464. /package/dist/bellhop-core/{p-c70d11a2.entry.js.map → p-ed780663.entry.js.map} +0 -0
  465. /package/dist/bellhop-core/{p-0e34250c.entry.js.map → p-f4dd33af.entry.js.map} +0 -0
  466. /package/dist/bellhop-core/{p-1be3e908.entry.js.map → p-fe7d5dcb.entry.js.map} +0 -0
package/package.json CHANGED
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "name": "@actabldesign/bellhop-core",
3
- "version": "0.0.8",
3
+ "version": "0.0.12",
4
4
  "description": "Bellhop Web Components Library built with StencilJS",
5
5
  "type": "module",
6
6
  "main": "dist/index.cjs.js",
@@ -1,11 +0,0 @@
1
- import type { Components, JSX } from "../dist/types/components";
2
-
3
- interface BhContainerFooter extends Components.BhContainerFooter, HTMLElement {}
4
- export const BhContainerFooter: {
5
- prototype: BhContainerFooter;
6
- new (): BhContainerFooter;
7
- };
8
- /**
9
- * Used to define this component and all nested components recursively.
10
- */
11
- export const defineCustomElement: () => void;
@@ -1,73 +0,0 @@
1
- import { p as proxyCustomElement, H, c as createEvent, h } from './p-BsHlTsAN.js';
2
- import { d as defineCustomElement$3 } from './p-B02xFf1P.js';
3
- import { d as defineCustomElement$2 } from './p-S3PEg8gv.js';
4
-
5
- const bhContainerFooterCss = ".container-footer{background:var(--color-white);border:1px solid var(--color-neutral-200);border-top:1px solid var(--color-neutral-200);border-radius:var(--radius-none) var(--radius-none) var(--radius-xl)\n var(--radius-xl);box-sizing:border-box;width:100%}.container-footer-content{display:flex;justify-content:flex-end;align-items:center;padding:var(--spacing-md) var(--spacing-2xl)}.container-footer-minimal .container-footer-content{padding:var(--spacing-sm) var(--spacing-2xl)}";
6
-
7
- const BhContainerFooter$1 = /*@__PURE__*/ proxyCustomElement(class BhContainerFooter extends H {
8
- constructor(registerHost) {
9
- super();
10
- if (registerHost !== false) {
11
- this.__registerHost();
12
- }
13
- this.__attachShadow();
14
- this.bhButtonClick = createEvent(this, "bhButtonClick");
15
- }
16
- /**
17
- * Size variant of the footer
18
- */
19
- size = 'standard';
20
- /**
21
- * Label for the footer button
22
- */
23
- buttonLabel = 'View report';
24
- /**
25
- * Event emitted when the button is clicked
26
- */
27
- bhButtonClick;
28
- handleButtonClick = () => {
29
- this.bhButtonClick.emit();
30
- };
31
- render() {
32
- const footerClasses = {
33
- 'container-footer': true,
34
- [`container-footer-${this.size}`]: true,
35
- };
36
- return (h("div", { key: '88f782bfc7a086e8facafa3450e19eb0b354e842', class: footerClasses }, h("div", { key: '02e63532e246742d155a5f74b4e8f777482711ca', class: "container-footer-content" }, h("bh-button", { key: '83aa00d05a1c0fa98fedca50724ce1fb3d293f8a', hierarchy: "quaternary", size: "sm", label: this.buttonLabel, onClick: this.handleButtonClick }))));
37
- }
38
- static get style() { return bhContainerFooterCss; }
39
- }, [769, "bh-container-footer", {
40
- "size": [1],
41
- "buttonLabel": [1, "button-label"]
42
- }]);
43
- function defineCustomElement$1() {
44
- if (typeof customElements === "undefined") {
45
- return;
46
- }
47
- const components = ["bh-container-footer", "bh-button", "bh-loader-spinner"];
48
- components.forEach(tagName => { switch (tagName) {
49
- case "bh-container-footer":
50
- if (!customElements.get(tagName)) {
51
- customElements.define(tagName, BhContainerFooter$1);
52
- }
53
- break;
54
- case "bh-button":
55
- if (!customElements.get(tagName)) {
56
- defineCustomElement$3();
57
- }
58
- break;
59
- case "bh-loader-spinner":
60
- if (!customElements.get(tagName)) {
61
- defineCustomElement$2();
62
- }
63
- break;
64
- } });
65
- }
66
-
67
- const BhContainerFooter = BhContainerFooter$1;
68
- const defineCustomElement = defineCustomElement$1;
69
-
70
- export { BhContainerFooter, defineCustomElement };
71
- //# sourceMappingURL=bh-container-footer.js.map
72
-
73
- //# sourceMappingURL=bh-container-footer.js.map
@@ -1 +0,0 @@
1
- {"file":"bh-container-footer.js","mappings":";;;;AAAA,MAAM,oBAAoB,GAAG,ueAAue;;MCSvfA,mBAAiB,iBAAAC,kBAAA,CAAA,MAAA,iBAAA,SAAAC,CAAA,CAAA;;;;;;;;;AAC5B;;AAEG;IACK,IAAI,GAAwB,UAAU;AAE9C;;AAEG;IACK,WAAW,GAAW,aAAa;AAE3C;;AAEG;AACM,IAAA,aAAa;IAEd,iBAAiB,GAAG,MAAK;AAC/B,QAAA,IAAI,CAAC,aAAa,CAAC,IAAI,EAAE;AAC3B,KAAC;IAED,MAAM,GAAA;AACJ,QAAA,MAAM,aAAa,GAAG;AACpB,YAAA,kBAAkB,EAAE,IAAI;AACxB,YAAA,CAAC,oBAAoB,IAAI,CAAC,IAAI,CAAE,CAAA,GAAG,IAAI;SACxC;AAED,QAAA,QACE,CAAA,CAAA,KAAA,EAAA,EAAA,GAAA,EAAA,0CAAA,EAAK,KAAK,EAAE,aAAa,EAAA,EACvB,CAAK,CAAA,KAAA,EAAA,EAAA,GAAA,EAAA,0CAAA,EAAA,KAAK,EAAC,0BAA0B,EAAA,EACnC,CACE,CAAA,WAAA,EAAA,EAAA,GAAA,EAAA,0CAAA,EAAA,SAAS,EAAC,YAAY,EAEtB,IAAI,EAAC,IAAI,EACT,KAAK,EAAE,IAAI,CAAC,WAAW,EACvB,OAAO,EAAE,IAAI,CAAC,iBAAiB,EAC/B,CAAA,CACE,CACF;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;","names":["BhContainerFooter","__stencil_proxyCustomElement","HTMLElement"],"sources":["src/components/bh-container-footer/bh-container-footer.css?tag=bh-container-footer&encapsulation=shadow","src/components/bh-container-footer/bh-container-footer.tsx"],"sourcesContent":["/* Base Container Footer Styles */\n.container-footer {\n background: var(--color-white);\n border: 1px solid var(--color-neutral-200);\n border-top: 1px solid var(--color-neutral-200);\n border-radius: var(--radius-none) var(--radius-none) var(--radius-xl)\n var(--radius-xl);\n box-sizing: border-box;\n width: 100%;\n}\n\n.container-footer-content {\n display: flex;\n justify-content: flex-end;\n align-items: center;\n padding: var(--spacing-md) var(--spacing-2xl);\n}\n\n/* Minimal size - smaller top/bottom padding */\n.container-footer-minimal .container-footer-content {\n padding: var(--spacing-sm) var(--spacing-2xl);\n}\n","import { Component, Prop, Event, EventEmitter, h } from '@stencil/core';\n\nexport type ContainerFooterSize = 'minimal' | 'standard';\n\n@Component({\n tag: 'bh-container-footer',\n styleUrl: 'bh-container-footer.css',\n shadow: true,\n})\nexport class BhContainerFooter {\n /**\n * Size variant of the footer\n */\n @Prop() size: ContainerFooterSize = 'standard';\n\n /**\n * Label for the footer button\n */\n @Prop() buttonLabel: string = 'View report';\n\n /**\n * Event emitted when the button is clicked\n */\n @Event() bhButtonClick!: EventEmitter<void>;\n\n private handleButtonClick = () => {\n this.bhButtonClick.emit();\n };\n\n render() {\n const footerClasses = {\n 'container-footer': true,\n [`container-footer-${this.size}`]: true,\n };\n\n return (\n <div class={footerClasses}>\n <div class=\"container-footer-content\">\n <bh-button\n hierarchy=\"quaternary\"\n \n size=\"sm\"\n label={this.buttonLabel}\n onClick={this.handleButtonClick}\n />\n </div>\n </div>\n );\n }\n}\n"],"version":3}
@@ -1,11 +0,0 @@
1
- import type { Components, JSX } from "../dist/types/components";
2
-
3
- interface BhContainer extends Components.BhContainer, HTMLElement {}
4
- export const BhContainer: {
5
- prototype: BhContainer;
6
- new (): BhContainer;
7
- };
8
- /**
9
- * Used to define this component and all nested components recursively.
10
- */
11
- export const defineCustomElement: () => void;
@@ -1,48 +0,0 @@
1
- import { p as proxyCustomElement, H, h } from './p-BsHlTsAN.js';
2
-
3
- const bhContainerCss = ":host{display:block}.container{display:flex;flex-direction:column;gap:var(--spacing-2xl);padding:var(--spacing-2xl);background:var(--color-white);border:1px solid var(--color-neutral-200);border-radius:var(--radius-xl);width:fit-content;font-family:var(--font-inter)}.container-with-footer{border-bottom:none;border-radius:var(--radius-xl) var(--radius-xl) var(--radius-none) var(--radius-none)}";
4
-
5
- const BhContainer$1 = /*@__PURE__*/ proxyCustomElement(class BhContainer extends H {
6
- constructor(registerHost) {
7
- super();
8
- if (registerHost !== false) {
9
- this.__registerHost();
10
- }
11
- this.__attachShadow();
12
- }
13
- /**
14
- * Whether the container has a footer attached (removes bottom border radius and border)
15
- */
16
- withFooter = false;
17
- render() {
18
- const containerClasses = {
19
- 'container': true,
20
- 'container-with-footer': this.withFooter,
21
- };
22
- return (h("div", { key: '096e9dd4d72f0cf782ce816dc340f78778e2b635', class: containerClasses }, h("slot", { key: '436351398c2377581596f9956df6b7681d9c8aac' })));
23
- }
24
- static get style() { return bhContainerCss; }
25
- }, [769, "bh-container", {
26
- "withFooter": [4, "with-footer"]
27
- }]);
28
- function defineCustomElement$1() {
29
- if (typeof customElements === "undefined") {
30
- return;
31
- }
32
- const components = ["bh-container"];
33
- components.forEach(tagName => { switch (tagName) {
34
- case "bh-container":
35
- if (!customElements.get(tagName)) {
36
- customElements.define(tagName, BhContainer$1);
37
- }
38
- break;
39
- } });
40
- }
41
-
42
- const BhContainer = BhContainer$1;
43
- const defineCustomElement = defineCustomElement$1;
44
-
45
- export { BhContainer, defineCustomElement };
46
- //# sourceMappingURL=bh-container.js.map
47
-
48
- //# sourceMappingURL=bh-container.js.map
@@ -1 +0,0 @@
1
- {"file":"bh-container.js","mappings":";;AAAA,MAAM,cAAc,GAAG,6YAA6Y;;MCOvZA,aAAW,iBAAAC,kBAAA,CAAA,MAAA,WAAA,SAAAC,CAAA,CAAA;;;;;;;;AACtB;;AAEG;IACK,UAAU,GAAY,KAAK;IAEnC,MAAM,GAAA;AACJ,QAAA,MAAM,gBAAgB,GAAG;AACvB,YAAA,WAAW,EAAE,IAAI;YACjB,uBAAuB,EAAE,IAAI,CAAC,UAAU;SACzC;QAED,QACE,CAAA,CAAA,KAAA,EAAA,EAAA,GAAA,EAAA,0CAAA,EAAK,KAAK,EAAE,gBAAgB,EAAA,EAC1B,CAAa,CAAA,MAAA,EAAA,EAAA,GAAA,EAAA,0CAAA,EAAA,CAAA,CACT;;;;;;;;;;;;;;;;;;;;;;;;;","names":["BhContainer","__stencil_proxyCustomElement","HTMLElement"],"sources":["src/components/bh-container/bh-container.css?tag=bh-container&encapsulation=shadow","src/components/bh-container/bh-container.tsx"],"sourcesContent":[":host {\n display: block;\n}\n\n.container {\n display: flex;\n flex-direction: column;\n gap: var(--spacing-2xl);\n padding: var(--spacing-2xl);\n background: var(--color-white);\n border: 1px solid var(--color-neutral-200);\n border-radius: var(--radius-xl);\n width: fit-content;\n font-family: var(--font-inter);\n}\n\n/* Container with footer - removes bottom border radius and border */\n.container-with-footer {\n border-bottom: none;\n border-radius: var(--radius-xl) var(--radius-xl) var(--radius-none) var(--radius-none);\n}\n","import { Component, Prop, h } from '@stencil/core';\n\n@Component({\n tag: 'bh-container',\n styleUrl: 'bh-container.css',\n shadow: true,\n})\nexport class BhContainer {\n /**\n * Whether the container has a footer attached (removes bottom border radius and border)\n */\n @Prop() withFooter: boolean = false;\n\n render() {\n const containerClasses = {\n 'container': true,\n 'container-with-footer': this.withFooter,\n };\n\n return (\n <div class={containerClasses}>\n <slot></slot>\n </div>\n );\n }\n}\n"],"version":3}
@@ -1 +0,0 @@
1
- {"file":"p-8bOZFmdg.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-BQKx1tGq.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-CMoGgYqw.js","mappings":"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","names":["__stencil_proxyCustomElement","HTMLElement"],"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"],"version":3}
@@ -1 +0,0 @@
1
- {"file":"p-CdwyUif-.js","mappings":";;AAAA,MAAM,mBAAmB,GAAG,8lBAA8lB;;MCO7mB,gBAAgB,iBAAAA,kBAAA,CAAA,MAAA,gBAAA,SAAAC,CAAA,CAAA;;;;;;;;AAC3B;;AAEG;IACK,KAAK,GAAW,MAAM;AAE9B;;AAEG;IACK,MAAM,GAAW,KAAK;AAE9B;;AAEG;IACK,MAAM,GAAY,KAAK;IAE/B,MAAM,GAAA;AACJ,QAAA,MAAM,eAAe,GAAG;AACtB,YAAA,UAAU,EAAE,IAAI;YAChB,iBAAiB,EAAE,IAAI,CAAC,MAAM;SAC/B;AAED,QAAA,QACE,CAAA,CAAA,MAAA,EAAA,EAAA,GAAA,EAAA,0CAAA,EACE,KAAK,EAAE,eAAe,EACtB,KAAK,EAAE,EAAE,KAAK,EAAE,IAAI,CAAC,KAAK,EAAE,MAAM,EAAE,IAAI,CAAC,MAAM,EAAE,EACjD,IAAI,EAAC,QAAQ,EACH,WAAA,EAAA,QAAQ,EACR,WAAA,EAAA,MAAM,EAChB,IAAI,EAAC,UAAU,EAAA,EAEf,CAAA,CAAA,MAAA,EAAA,EAAA,GAAA,EAAA,0CAAA,EAAM,KAAK,EAAC,iBAAiB,EAAkB,EAAA,YAAA,CAAA,CAC1C;;;;;;;;;;;;;;;;;;;;;;;;","names":["__stencil_proxyCustomElement","HTMLElement"],"sources":["src/components/bh-skeleton-loader/bh-skeleton-loader.css?tag=bh-skeleton-loader&encapsulation=shadow","src/components/bh-skeleton-loader/bh-skeleton-loader.tsx"],"sourcesContent":["/* ==========================================================================\n BH-SKELETON-LOADER COMPONENT STYLES\n ========================================================================== */\n\n:host {\n display: inline-block;\n}\n\n.skeleton {\n display: inline-block;\n background: linear-gradient(\n 90deg,\n rgba(0, 0, 0, 0.06) 25%,\n rgba(0, 0, 0, 0.03) 50%,\n rgba(0, 0, 0, 0.06) 75%\n );\n background-size: 400% 100%;\n animation: shimmer 1.5s ease-in-out infinite;\n border-radius: var(--radius-sm);\n line-height: 1;\n}\n\n.skeleton-circle {\n border-radius: 50%;\n}\n\n.skeleton::before {\n content: '\\00a0';\n}\n\n@keyframes shimmer {\n 0% {\n background-position: 100% 50%;\n }\n 100% {\n background-position: 0 50%;\n }\n}\n\n.visually-hidden {\n position: absolute;\n width: 1px;\n height: 1px;\n padding: 0;\n margin: -1px;\n overflow: hidden;\n clip: rect(0, 0, 0, 0);\n white-space: nowrap;\n border: 0;\n}\n","import { Component, Prop, h } from '@stencil/core';\n\n@Component({\n tag: 'bh-skeleton-loader',\n styleUrl: 'bh-skeleton-loader.css',\n shadow: true,\n})\nexport class BhSkeletonLoader {\n /**\n * Width of the skeleton (CSS value)\n */\n @Prop() width: string = '100%';\n\n /**\n * Height of the skeleton (CSS value)\n */\n @Prop() height: string = '1em';\n\n /**\n * Whether the skeleton should be circular\n */\n @Prop() circle: boolean = false;\n\n render() {\n const skeletonClasses = {\n 'skeleton': true,\n 'skeleton-circle': this.circle,\n };\n\n return (\n <span\n class={skeletonClasses}\n style={{ width: this.width, height: this.height }}\n role=\"status\"\n aria-live=\"polite\"\n aria-busy=\"true\"\n part=\"skeleton\"\n >\n <span class=\"visually-hidden\">Loading...</span>\n </span>\n );\n }\n}\n"],"version":3}
@@ -1 +0,0 @@
1
- {"file":"p-Npcwl1Z8.js","mappings":"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","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,182 +0,0 @@
1
- import { p as proxyCustomElement, H, c as createEvent, h } from './p-BsHlTsAN.js';
2
-
3
- const bhPaginationCss = ":host{display:block;font-family:var(--font-family-body, 'Inter', sans-serif)}.pagination{display:flex;align-items:center;justify-content:space-between;gap:var(--sp-4, 1rem);padding:var(--sp-3, 0.75rem) var(--sp-4, 1rem);background-color:var(--color-white, #fff);border-top:1px solid var(--color-neutral-200, #e2e4eb)}.pagination-sm{padding:var(--sp-2, 0.5rem) var(--sp-3, 0.75rem);gap:var(--sp-3, 0.75rem)}.pagination-sm .pagination-info-text,.pagination-sm .pagination-page-size-label{font-size:0.75rem}.pagination-sm .pagination-btn{width:28px;height:28px}.pagination-sm .pagination-btn .material-symbols-outlined{font-size:18px}.pagination-sm .pagination-select{height:28px;font-size:0.75rem;padding:0 var(--sp-5, 1.25rem) 0 var(--sp-2, 0.5rem)}.pagination-md{}.pagination-lg{padding:var(--sp-4, 1rem) var(--sp-5, 1.25rem);gap:var(--sp-5, 1.25rem)}.pagination-lg .pagination-info-text,.pagination-lg .pagination-page-size-label{font-size:0.9375rem}.pagination-lg .pagination-btn{width:40px;height:40px}.pagination-lg .pagination-btn .material-symbols-outlined{font-size:24px}.pagination-lg .pagination-select{height:40px;font-size:0.9375rem}.pagination-disabled{opacity:0.5;pointer-events:none}.pagination-info{display:flex;align-items:center}.pagination-info-text{font-size:0.875rem;color:var(--color-neutral-600, #5c627a);white-space:nowrap}.pagination-controls{display:flex;align-items:center;gap:var(--sp-4, 1rem)}.pagination-page-size{display:flex;align-items:center;gap:var(--sp-2, 0.5rem)}.pagination-page-size-label{font-size:0.875rem;color:var(--color-neutral-600, #5c627a);white-space:nowrap}.pagination-select{appearance:none;-webkit-appearance:none;-moz-appearance:none;background-color:var(--color-white, #fff);border:1px solid var(--color-neutral-300, #c0c4d4);border-radius:var(--radius-md, 6px);padding:0 var(--sp-6, 1.5rem) 0 var(--sp-3, 0.75rem);height:32px;font-size:0.875rem;color:var(--color-neutral-900, #141624);cursor:pointer;transition:border-color 0.15s ease, box-shadow 0.15s ease;background-image:url(\"data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' width='16' height='16' viewBox='0 0 24 24' fill='%235c627a'%3E%3Cpath d='M7 10l5 5 5-5z'/%3E%3C/svg%3E\");background-repeat:no-repeat;background-position:right 4px center;background-size:16px}.pagination-select:hover:not(:disabled){border-color:var(--color-neutral-400, #939ab4)}.pagination-select:focus{outline:none;border-color:var(--color-brand-500, #6366f1);box-shadow:0 0 0 3px var(--color-brand-100, #e0e1fc)}.pagination-select:disabled{background-color:var(--color-neutral-100, #f0f1f5);cursor:not-allowed}.pagination-nav{display:flex;align-items:center;gap:var(--sp-1, 0.25rem)}.pagination-btn{display:inline-flex;align-items:center;justify-content:center;width:32px;height:32px;padding:0;border:none;border-radius:var(--radius-md, 6px);background-color:transparent;color:var(--color-neutral-600, #5c627a);cursor:pointer;transition:background-color 0.15s ease, color 0.15s ease}.pagination-btn .material-symbols-outlined{font-size:20px;font-variation-settings:'FILL' 0, 'wght' 400, 'GRAD' 0, 'opsz' 20}.pagination-btn:hover:not(:disabled){background-color:var(--color-neutral-100, #f0f1f5);color:var(--color-neutral-900, #141624)}.pagination-btn:focus{outline:none;box-shadow:0 0 0 2px var(--color-brand-100, #e0e1fc)}.pagination-btn:active:not(:disabled){background-color:var(--color-neutral-200, #e2e4eb)}.pagination-btn:disabled{opacity:0.4;cursor:not-allowed}@media (max-width: 640px){.pagination{flex-direction:column;align-items:stretch;gap:var(--sp-3, 0.75rem)}.pagination-info{justify-content:center}.pagination-controls{justify-content:center;flex-wrap:wrap}.pagination-page-size{width:100%;justify-content:center}.pagination-nav{justify-content:center}}";
4
-
5
- const BhPagination = /*@__PURE__*/ proxyCustomElement(class BhPagination extends H {
6
- constructor(registerHost) {
7
- super();
8
- if (registerHost !== false) {
9
- this.__registerHost();
10
- }
11
- this.__attachShadow();
12
- this.bhPageChange = createEvent(this, "bhPageChange");
13
- this.bhPageSizeChange = createEvent(this, "bhPageSizeChange");
14
- }
15
- /**
16
- * Current page (1-indexed)
17
- */
18
- page = 1;
19
- /**
20
- * Total number of items
21
- */
22
- totalItems = 0;
23
- /**
24
- * Number of items per page
25
- */
26
- pageSize = 10;
27
- /**
28
- * Available page size options
29
- */
30
- pageSizeOptions = [10, 25, 50, 100];
31
- /**
32
- * Show page size selector
33
- */
34
- showPageSizeSelector = true;
35
- /**
36
- * Show item count info (e.g., "Showing 1 to 10 of 100 results")
37
- */
38
- showItemCount = true;
39
- /**
40
- * Show first/last page buttons
41
- */
42
- showFirstLastButtons = true;
43
- /**
44
- * Size variant of the pagination
45
- */
46
- size = 'md';
47
- /**
48
- * Whether the pagination is disabled
49
- */
50
- disabled = false;
51
- /**
52
- * Label for "Rows per page" text (for i18n)
53
- */
54
- rowsPerPageLabel = 'Rows per page:';
55
- /**
56
- * Label template for showing results (use {start}, {end}, {total} placeholders)
57
- */
58
- showingResultsLabel = 'Showing {start} to {end} of {total} results';
59
- /**
60
- * Label template for page info when total items unknown (use {page}, {totalPages} placeholders)
61
- */
62
- pageInfoLabel = 'Page {page} of {totalPages}';
63
- internalPage = 1;
64
- internalPageSize = 10;
65
- /**
66
- * Emitted when the page changes
67
- */
68
- bhPageChange;
69
- /**
70
- * Emitted when page size changes
71
- */
72
- bhPageSizeChange;
73
- componentWillLoad() {
74
- this.internalPage = this.page;
75
- this.internalPageSize = this.pageSize;
76
- }
77
- get totalPages() {
78
- return Math.max(1, Math.ceil(this.totalItems / this.internalPageSize));
79
- }
80
- get startItem() {
81
- if (this.totalItems === 0)
82
- return 0;
83
- return (this.internalPage - 1) * this.internalPageSize + 1;
84
- }
85
- get endItem() {
86
- return Math.min(this.internalPage * this.internalPageSize, this.totalItems);
87
- }
88
- get canGoPrevious() {
89
- return this.internalPage > 1 && !this.disabled;
90
- }
91
- get canGoNext() {
92
- return this.internalPage < this.totalPages && !this.disabled;
93
- }
94
- goToPage(newPage) {
95
- if (this.disabled)
96
- return;
97
- const page = Math.max(1, Math.min(newPage, this.totalPages));
98
- if (page !== this.internalPage) {
99
- this.internalPage = page;
100
- this.page = page;
101
- this.bhPageChange.emit({ page, pageSize: this.internalPageSize });
102
- }
103
- }
104
- handlePageSizeChange(event) {
105
- if (this.disabled)
106
- return;
107
- const select = event.target;
108
- const newPageSize = parseInt(select.value, 10);
109
- if (newPageSize !== this.internalPageSize) {
110
- this.internalPageSize = newPageSize;
111
- this.pageSize = newPageSize;
112
- // Reset to page 1 when page size changes, or adjust if current page is now out of bounds
113
- const newTotalPages = Math.max(1, Math.ceil(this.totalItems / newPageSize));
114
- const newPage = Math.min(this.internalPage, newTotalPages);
115
- if (newPage !== this.internalPage) {
116
- this.internalPage = newPage;
117
- this.page = newPage;
118
- }
119
- this.bhPageSizeChange.emit({ page: this.internalPage, pageSize: newPageSize });
120
- }
121
- }
122
- goToFirst = () => this.goToPage(1);
123
- goToPrevious = () => this.goToPage(this.internalPage - 1);
124
- goToNext = () => this.goToPage(this.internalPage + 1);
125
- goToLast = () => this.goToPage(this.totalPages);
126
- getInfoText() {
127
- if (this.totalItems === 0) {
128
- return 'No results';
129
- }
130
- if (this.showItemCount && this.totalItems > 0) {
131
- return this.showingResultsLabel
132
- .replace('{start}', String(this.startItem))
133
- .replace('{end}', String(this.endItem))
134
- .replace('{total}', String(this.totalItems));
135
- }
136
- return this.pageInfoLabel
137
- .replace('{page}', String(this.internalPage))
138
- .replace('{totalPages}', String(this.totalPages));
139
- }
140
- render() {
141
- const paginationClasses = {
142
- 'pagination': true,
143
- [`pagination-${this.size}`]: true,
144
- 'pagination-disabled': this.disabled,
145
- };
146
- return (h("div", { key: '9e9cbcde6a010fdbbbd809a3f576b40fe7f905cc', class: paginationClasses, role: "navigation", "aria-label": "Pagination" }, h("div", { key: '212d0b1627b0897ceecd0298e8928a4ec11441d7', class: "pagination-info" }, h("span", { key: 'ab37b52387fd66f583b67fd96ce396b6649d31d0', class: "pagination-info-text" }, this.getInfoText())), h("div", { key: '46793889c3efa38e28171759ea3fb2b22ddcb03c', class: "pagination-controls" }, this.showPageSizeSelector && (h("div", { key: '87eccc7848ef35ad61605d2b9539cf40add8a79c', class: "pagination-page-size" }, h("span", { key: 'b3ff61dceff7cc57240c724150fee5b199a17ed8', class: "pagination-page-size-label" }, this.rowsPerPageLabel), h("select", { key: 'ab2ddd0f5f2b3501ff06d5717f2ed543a3446651', class: "pagination-select", onChange: (e) => this.handlePageSizeChange(e), disabled: this.disabled, "aria-label": "Select page size" }, this.pageSizeOptions.map((size) => (h("option", { key: size, value: String(size), selected: size === this.internalPageSize }, size)))))), h("div", { key: 'fddb9153daa2703afbd384f972332040c76efa25', class: "pagination-nav" }, this.showFirstLastButtons && (h("button", { key: '5637468db69936eb008bf96d8e77ca8c860fa9e2', type: "button", class: "pagination-btn", onClick: this.goToFirst, disabled: !this.canGoPrevious, "aria-label": "Go to first page" }, h("span", { key: '37699a8026bdecf7858d3c5a0aa313f99acd6d28', class: "material-symbols-outlined" }, "first_page"))), h("button", { key: '590190edfc67218a19f647eb562b233d598cbbea', type: "button", class: "pagination-btn", onClick: this.goToPrevious, disabled: !this.canGoPrevious, "aria-label": "Go to previous page" }, h("span", { key: '45881aefbbc5e51adaa451ba3454a73a684613cb', class: "material-symbols-outlined" }, "chevron_left")), h("button", { key: '5d0592a32bba88bbe60f41318d3cd1d03a103f5d', type: "button", class: "pagination-btn", onClick: this.goToNext, disabled: !this.canGoNext, "aria-label": "Go to next page" }, h("span", { key: 'ae875c91c0d56757df0a78dcd645958e08e3ebde', class: "material-symbols-outlined" }, "chevron_right")), this.showFirstLastButtons && (h("button", { key: 'd97749c9c057100f145546b8a163681eb29b7358', type: "button", class: "pagination-btn", onClick: this.goToLast, disabled: !this.canGoNext, "aria-label": "Go to last page" }, h("span", { key: '58adc8bcac84c4af6bc67650e2fef83dfbeaa1e7', class: "material-symbols-outlined" }, "last_page")))))));
147
- }
148
- static get style() { return bhPaginationCss; }
149
- }, [769, "bh-pagination", {
150
- "page": [1026],
151
- "totalItems": [2, "total-items"],
152
- "pageSize": [1026, "page-size"],
153
- "pageSizeOptions": [16],
154
- "showPageSizeSelector": [4, "show-page-size-selector"],
155
- "showItemCount": [4, "show-item-count"],
156
- "showFirstLastButtons": [4, "show-first-last-buttons"],
157
- "size": [1],
158
- "disabled": [4],
159
- "rowsPerPageLabel": [1, "rows-per-page-label"],
160
- "showingResultsLabel": [1, "showing-results-label"],
161
- "pageInfoLabel": [1, "page-info-label"],
162
- "internalPage": [32],
163
- "internalPageSize": [32]
164
- }]);
165
- function defineCustomElement() {
166
- if (typeof customElements === "undefined") {
167
- return;
168
- }
169
- const components = ["bh-pagination"];
170
- components.forEach(tagName => { switch (tagName) {
171
- case "bh-pagination":
172
- if (!customElements.get(tagName)) {
173
- customElements.define(tagName, BhPagination);
174
- }
175
- break;
176
- } });
177
- }
178
-
179
- export { BhPagination as B, defineCustomElement as d };
180
- //# sourceMappingURL=p-WibqGBGu.js.map
181
-
182
- //# sourceMappingURL=p-WibqGBGu.js.map
@@ -1 +0,0 @@
1
- {"file":"p-WibqGBGu.js","mappings":"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","names":["__stencil_proxyCustomElement","HTMLElement"],"sources":["src/components/bh-pagination/bh-pagination.css?tag=bh-pagination&encapsulation=shadow","src/components/bh-pagination/bh-pagination.tsx"],"sourcesContent":["/* =============================================================================\n bh-pagination Component Styles\n ============================================================================= */\n\n:host {\n display: block;\n font-family: var(--font-family-body, 'Inter', sans-serif);\n}\n\n/* -----------------------------------------------------------------------------\n Base Pagination Container\n ----------------------------------------------------------------------------- */\n\n.pagination {\n display: flex;\n align-items: center;\n justify-content: space-between;\n gap: var(--sp-4, 1rem);\n padding: var(--sp-3, 0.75rem) var(--sp-4, 1rem);\n background-color: var(--color-white, #fff);\n border-top: 1px solid var(--color-neutral-200, #e2e4eb);\n}\n\n/* -----------------------------------------------------------------------------\n Size Variants\n ----------------------------------------------------------------------------- */\n\n.pagination-sm {\n padding: var(--sp-2, 0.5rem) var(--sp-3, 0.75rem);\n gap: var(--sp-3, 0.75rem);\n}\n\n.pagination-sm .pagination-info-text,\n.pagination-sm .pagination-page-size-label {\n font-size: 0.75rem;\n}\n\n.pagination-sm .pagination-btn {\n width: 28px;\n height: 28px;\n}\n\n.pagination-sm .pagination-btn .material-symbols-outlined {\n font-size: 18px;\n}\n\n.pagination-sm .pagination-select {\n height: 28px;\n font-size: 0.75rem;\n padding: 0 var(--sp-5, 1.25rem) 0 var(--sp-2, 0.5rem);\n}\n\n.pagination-md {\n /* Default - no changes needed */\n}\n\n.pagination-lg {\n padding: var(--sp-4, 1rem) var(--sp-5, 1.25rem);\n gap: var(--sp-5, 1.25rem);\n}\n\n.pagination-lg .pagination-info-text,\n.pagination-lg .pagination-page-size-label {\n font-size: 0.9375rem;\n}\n\n.pagination-lg .pagination-btn {\n width: 40px;\n height: 40px;\n}\n\n.pagination-lg .pagination-btn .material-symbols-outlined {\n font-size: 24px;\n}\n\n.pagination-lg .pagination-select {\n height: 40px;\n font-size: 0.9375rem;\n}\n\n/* -----------------------------------------------------------------------------\n Disabled State\n ----------------------------------------------------------------------------- */\n\n.pagination-disabled {\n opacity: 0.5;\n pointer-events: none;\n}\n\n/* -----------------------------------------------------------------------------\n Info Section\n ----------------------------------------------------------------------------- */\n\n.pagination-info {\n display: flex;\n align-items: center;\n}\n\n.pagination-info-text {\n font-size: 0.875rem;\n color: var(--color-neutral-600, #5c627a);\n white-space: nowrap;\n}\n\n/* -----------------------------------------------------------------------------\n Controls Section\n ----------------------------------------------------------------------------- */\n\n.pagination-controls {\n display: flex;\n align-items: center;\n gap: var(--sp-4, 1rem);\n}\n\n/* -----------------------------------------------------------------------------\n Page Size Selector\n ----------------------------------------------------------------------------- */\n\n.pagination-page-size {\n display: flex;\n align-items: center;\n gap: var(--sp-2, 0.5rem);\n}\n\n.pagination-page-size-label {\n font-size: 0.875rem;\n color: var(--color-neutral-600, #5c627a);\n white-space: nowrap;\n}\n\n.pagination-select {\n appearance: none;\n -webkit-appearance: none;\n -moz-appearance: none;\n background-color: var(--color-white, #fff);\n border: 1px solid var(--color-neutral-300, #c0c4d4);\n border-radius: var(--radius-md, 6px);\n padding: 0 var(--sp-6, 1.5rem) 0 var(--sp-3, 0.75rem);\n height: 32px;\n font-size: 0.875rem;\n color: var(--color-neutral-900, #141624);\n cursor: pointer;\n transition: border-color 0.15s ease, box-shadow 0.15s ease;\n\n /* Custom dropdown arrow */\n background-image: url(\"data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' width='16' height='16' viewBox='0 0 24 24' fill='%235c627a'%3E%3Cpath d='M7 10l5 5 5-5z'/%3E%3C/svg%3E\");\n background-repeat: no-repeat;\n background-position: right 4px center;\n background-size: 16px;\n}\n\n.pagination-select:hover:not(:disabled) {\n border-color: var(--color-neutral-400, #939ab4);\n}\n\n.pagination-select:focus {\n outline: none;\n border-color: var(--color-brand-500, #6366f1);\n box-shadow: 0 0 0 3px var(--color-brand-100, #e0e1fc);\n}\n\n.pagination-select:disabled {\n background-color: var(--color-neutral-100, #f0f1f5);\n cursor: not-allowed;\n}\n\n/* -----------------------------------------------------------------------------\n Navigation Buttons\n ----------------------------------------------------------------------------- */\n\n.pagination-nav {\n display: flex;\n align-items: center;\n gap: var(--sp-1, 0.25rem);\n}\n\n.pagination-btn {\n display: inline-flex;\n align-items: center;\n justify-content: center;\n width: 32px;\n height: 32px;\n padding: 0;\n border: none;\n border-radius: var(--radius-md, 6px);\n background-color: transparent;\n color: var(--color-neutral-600, #5c627a);\n cursor: pointer;\n transition: background-color 0.15s ease, color 0.15s ease;\n}\n\n.pagination-btn .material-symbols-outlined {\n font-size: 20px;\n font-variation-settings: 'FILL' 0, 'wght' 400, 'GRAD' 0, 'opsz' 20;\n}\n\n.pagination-btn:hover:not(:disabled) {\n background-color: var(--color-neutral-100, #f0f1f5);\n color: var(--color-neutral-900, #141624);\n}\n\n.pagination-btn:focus {\n outline: none;\n box-shadow: 0 0 0 2px var(--color-brand-100, #e0e1fc);\n}\n\n.pagination-btn:active:not(:disabled) {\n background-color: var(--color-neutral-200, #e2e4eb);\n}\n\n.pagination-btn:disabled {\n opacity: 0.4;\n cursor: not-allowed;\n}\n\n/* -----------------------------------------------------------------------------\n Responsive Adjustments\n ----------------------------------------------------------------------------- */\n\n@media (max-width: 640px) {\n .pagination {\n flex-direction: column;\n align-items: stretch;\n gap: var(--sp-3, 0.75rem);\n }\n\n .pagination-info {\n justify-content: center;\n }\n\n .pagination-controls {\n justify-content: center;\n flex-wrap: wrap;\n }\n\n .pagination-page-size {\n width: 100%;\n justify-content: center;\n }\n\n .pagination-nav {\n justify-content: center;\n }\n}\n","import { Component, Prop, Event, EventEmitter, h, State } from '@stencil/core';\n\nexport type PaginationSize = 'sm' | 'md' | 'lg';\n\nexport interface PaginationChangeEvent {\n page: number;\n pageSize: number;\n}\n\n@Component({\n tag: 'bh-pagination',\n styleUrl: 'bh-pagination.css',\n shadow: true,\n})\nexport class BhPagination {\n /**\n * Current page (1-indexed)\n */\n @Prop({ mutable: true }) page: number = 1;\n\n /**\n * Total number of items\n */\n @Prop() totalItems: number = 0;\n\n /**\n * Number of items per page\n */\n @Prop({ mutable: true }) pageSize: number = 10;\n\n /**\n * Available page size options\n */\n @Prop() pageSizeOptions: number[] = [10, 25, 50, 100];\n\n /**\n * Show page size selector\n */\n @Prop() showPageSizeSelector: boolean = true;\n\n /**\n * Show item count info (e.g., \"Showing 1 to 10 of 100 results\")\n */\n @Prop() showItemCount: boolean = true;\n\n /**\n * Show first/last page buttons\n */\n @Prop() showFirstLastButtons: boolean = true;\n\n /**\n * Size variant of the pagination\n */\n @Prop() size: PaginationSize = 'md';\n\n /**\n * Whether the pagination is disabled\n */\n @Prop() disabled: boolean = false;\n\n /**\n * Label for \"Rows per page\" text (for i18n)\n */\n @Prop() rowsPerPageLabel: string = 'Rows per page:';\n\n /**\n * Label template for showing results (use {start}, {end}, {total} placeholders)\n */\n @Prop() showingResultsLabel: string = 'Showing {start} to {end} of {total} results';\n\n /**\n * Label template for page info when total items unknown (use {page}, {totalPages} placeholders)\n */\n @Prop() pageInfoLabel: string = 'Page {page} of {totalPages}';\n\n @State() internalPage: number = 1;\n @State() internalPageSize: number = 10;\n\n /**\n * Emitted when the page changes\n */\n @Event() bhPageChange!: EventEmitter<PaginationChangeEvent>;\n\n /**\n * Emitted when page size changes\n */\n @Event() bhPageSizeChange!: EventEmitter<PaginationChangeEvent>;\n\n componentWillLoad() {\n this.internalPage = this.page;\n this.internalPageSize = this.pageSize;\n }\n\n private get totalPages(): number {\n return Math.max(1, Math.ceil(this.totalItems / this.internalPageSize));\n }\n\n private get startItem(): number {\n if (this.totalItems === 0) return 0;\n return (this.internalPage - 1) * this.internalPageSize + 1;\n }\n\n private get endItem(): number {\n return Math.min(this.internalPage * this.internalPageSize, this.totalItems);\n }\n\n private get canGoPrevious(): boolean {\n return this.internalPage > 1 && !this.disabled;\n }\n\n private get canGoNext(): boolean {\n return this.internalPage < this.totalPages && !this.disabled;\n }\n\n private goToPage(newPage: number) {\n if (this.disabled) return;\n\n const page = Math.max(1, Math.min(newPage, this.totalPages));\n if (page !== this.internalPage) {\n this.internalPage = page;\n this.page = page;\n this.bhPageChange.emit({ page, pageSize: this.internalPageSize });\n }\n }\n\n private handlePageSizeChange(event: Event) {\n if (this.disabled) return;\n\n const select = event.target as HTMLSelectElement;\n const newPageSize = parseInt(select.value, 10);\n\n if (newPageSize !== this.internalPageSize) {\n this.internalPageSize = newPageSize;\n this.pageSize = newPageSize;\n\n // Reset to page 1 when page size changes, or adjust if current page is now out of bounds\n const newTotalPages = Math.max(1, Math.ceil(this.totalItems / newPageSize));\n const newPage = Math.min(this.internalPage, newTotalPages);\n\n if (newPage !== this.internalPage) {\n this.internalPage = newPage;\n this.page = newPage;\n }\n\n this.bhPageSizeChange.emit({ page: this.internalPage, pageSize: newPageSize });\n }\n }\n\n private goToFirst = () => this.goToPage(1);\n private goToPrevious = () => this.goToPage(this.internalPage - 1);\n private goToNext = () => this.goToPage(this.internalPage + 1);\n private goToLast = () => this.goToPage(this.totalPages);\n\n private getInfoText(): string {\n if (this.totalItems === 0) {\n return 'No results';\n }\n\n if (this.showItemCount && this.totalItems > 0) {\n return this.showingResultsLabel\n .replace('{start}', String(this.startItem))\n .replace('{end}', String(this.endItem))\n .replace('{total}', String(this.totalItems));\n }\n\n return this.pageInfoLabel\n .replace('{page}', String(this.internalPage))\n .replace('{totalPages}', String(this.totalPages));\n }\n\n render() {\n const paginationClasses = {\n 'pagination': true,\n [`pagination-${this.size}`]: true,\n 'pagination-disabled': this.disabled,\n };\n\n return (\n <div class={paginationClasses} role=\"navigation\" aria-label=\"Pagination\">\n {/* Info section */}\n <div class=\"pagination-info\">\n <span class=\"pagination-info-text\">{this.getInfoText()}</span>\n </div>\n\n {/* Controls section */}\n <div class=\"pagination-controls\">\n {/* Page size selector */}\n {this.showPageSizeSelector && (\n <div class=\"pagination-page-size\">\n <span class=\"pagination-page-size-label\">{this.rowsPerPageLabel}</span>\n <select\n class=\"pagination-select\"\n onChange={(e) => this.handlePageSizeChange(e)}\n disabled={this.disabled}\n aria-label=\"Select page size\"\n >\n {this.pageSizeOptions.map((size) => (\n <option key={size} value={String(size)} selected={size === this.internalPageSize}>\n {size}\n </option>\n ))}\n </select>\n </div>\n )}\n\n {/* Navigation buttons */}\n <div class=\"pagination-nav\">\n {this.showFirstLastButtons && (\n <button\n type=\"button\"\n class=\"pagination-btn\"\n onClick={this.goToFirst}\n disabled={!this.canGoPrevious}\n aria-label=\"Go to first page\"\n >\n <span class=\"material-symbols-outlined\">first_page</span>\n </button>\n )}\n\n <button\n type=\"button\"\n class=\"pagination-btn\"\n onClick={this.goToPrevious}\n disabled={!this.canGoPrevious}\n aria-label=\"Go to previous page\"\n >\n <span class=\"material-symbols-outlined\">chevron_left</span>\n </button>\n\n <button\n type=\"button\"\n class=\"pagination-btn\"\n onClick={this.goToNext}\n disabled={!this.canGoNext}\n aria-label=\"Go to next page\"\n >\n <span class=\"material-symbols-outlined\">chevron_right</span>\n </button>\n\n {this.showFirstLastButtons && (\n <button\n type=\"button\"\n class=\"pagination-btn\"\n onClick={this.goToLast}\n disabled={!this.canGoNext}\n aria-label=\"Go to last page\"\n >\n <span class=\"material-symbols-outlined\">last_page</span>\n </button>\n )}\n </div>\n </div>\n </div>\n );\n }\n}\n"],"version":3}