@beeq/core 1.11.0 → 1.11.1

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 (690) hide show
  1. package/dist/beeq/beeq.esm.js +1 -1
  2. package/dist/beeq/beeq.esm.js.map +1 -1
  3. package/dist/beeq/bq-accordion.entry.esm.js.map +1 -1
  4. package/dist/beeq/bq-alert.entry.esm.js.map +1 -1
  5. package/dist/beeq/bq-avatar.entry.esm.js.map +1 -1
  6. package/dist/beeq/bq-badge.entry.esm.js.map +1 -1
  7. package/dist/beeq/bq-breadcrumb-item.entry.esm.js.map +1 -1
  8. package/dist/beeq/bq-breadcrumb.entry.esm.js.map +1 -1
  9. package/dist/beeq/bq-button.bq-icon.entry.esm.js.map +1 -1
  10. package/dist/beeq/bq-card.entry.esm.js.map +1 -1
  11. package/dist/beeq/bq-checkbox.entry.esm.js.map +1 -1
  12. package/dist/beeq/bq-date-picker.entry.esm.js.map +1 -1
  13. package/dist/beeq/bq-dialog.entry.esm.js.map +1 -1
  14. package/dist/beeq/bq-divider.entry.esm.js.map +1 -1
  15. package/dist/beeq/bq-drawer.entry.esm.js.map +1 -1
  16. package/dist/beeq/bq-dropdown.bq-panel.entry.esm.js.map +1 -1
  17. package/dist/beeq/bq-empty-state.entry.esm.js.map +1 -1
  18. package/dist/beeq/bq-input.entry.esm.js.map +1 -1
  19. package/dist/beeq/bq-notification.entry.esm.js.map +1 -1
  20. package/dist/beeq/bq-option-group.entry.esm.js.map +1 -1
  21. package/dist/beeq/bq-option-list.bq-tag.entry.esm.js.map +1 -1
  22. package/dist/beeq/bq-option.entry.esm.js.map +1 -1
  23. package/dist/beeq/bq-page-title.entry.esm.js.map +1 -1
  24. package/dist/beeq/bq-progress.entry.esm.js.map +1 -1
  25. package/dist/beeq/bq-radio-group.entry.esm.js.map +1 -1
  26. package/dist/beeq/bq-radio.entry.esm.js.map +1 -1
  27. package/dist/beeq/bq-select.entry.esm.js.map +1 -1
  28. package/dist/beeq/bq-side-menu-item.entry.esm.js.map +1 -1
  29. package/dist/beeq/bq-side-menu.entry.esm.js.map +1 -1
  30. package/dist/beeq/bq-slider.entry.esm.js.map +1 -1
  31. package/dist/beeq/bq-spinner.entry.esm.js.map +1 -1
  32. package/dist/beeq/bq-status.entry.esm.js.map +1 -1
  33. package/dist/beeq/bq-step-item.entry.esm.js.map +1 -1
  34. package/dist/beeq/bq-steps.entry.esm.js.map +1 -1
  35. package/dist/beeq/bq-switch.entry.esm.js.map +1 -1
  36. package/dist/beeq/bq-tab-group.entry.esm.js.map +1 -1
  37. package/dist/beeq/bq-tab.entry.esm.js.map +1 -1
  38. package/dist/beeq/bq-textarea.entry.esm.js.map +1 -1
  39. package/dist/beeq/bq-toast.entry.esm.js.map +1 -1
  40. package/dist/beeq/bq-tooltip.entry.esm.js.map +1 -1
  41. package/dist/beeq/index.esm.js +1 -1
  42. package/dist/beeq/index.esm.js.map +1 -1
  43. package/dist/beeq/{p-a9643899.entry.js → p-0bf5e367.entry.js} +2 -2
  44. package/dist/beeq/p-0bf5e367.entry.js.map +1 -0
  45. package/dist/beeq/{p-dd896cd8.entry.js → p-16defa87.entry.js} +2 -2
  46. package/dist/beeq/p-16defa87.entry.js.map +1 -0
  47. package/dist/beeq/{p-5ce77af6.entry.js → p-17de1ba4.entry.js} +2 -2
  48. package/dist/beeq/p-17de1ba4.entry.js.map +1 -0
  49. package/dist/beeq/p-1df8fe61.entry.js +6 -0
  50. package/dist/beeq/p-1df8fe61.entry.js.map +1 -0
  51. package/dist/beeq/{p-b520bdb8.entry.js → p-24749f67.entry.js} +2 -2
  52. package/dist/beeq/p-24749f67.entry.js.map +1 -0
  53. package/dist/beeq/{p-8eb8612b.entry.js → p-38add122.entry.js} +2 -2
  54. package/dist/beeq/p-38add122.entry.js.map +1 -0
  55. package/dist/beeq/{p-d1dd36ca.entry.js → p-454fa535.entry.js} +2 -2
  56. package/dist/beeq/p-454fa535.entry.js.map +1 -0
  57. package/dist/beeq/{p-ba12d135.entry.js → p-4647a0fb.entry.js} +2 -2
  58. package/dist/beeq/p-4647a0fb.entry.js.map +1 -0
  59. package/dist/beeq/{p-87430ad8.entry.js → p-4725a142.entry.js} +2 -2
  60. package/dist/beeq/p-4725a142.entry.js.map +1 -0
  61. package/dist/beeq/{p-6852a0b0.entry.js → p-51351eed.entry.js} +2 -2
  62. package/dist/beeq/p-51351eed.entry.js.map +1 -0
  63. package/dist/beeq/{p-96f6c9ae.entry.js → p-5b0a56e7.entry.js} +2 -2
  64. package/dist/beeq/p-5b0a56e7.entry.js.map +1 -0
  65. package/dist/beeq/{p-3dca7a14.entry.js → p-5c23324d.entry.js} +2 -2
  66. package/dist/beeq/p-5c23324d.entry.js.map +1 -0
  67. package/dist/beeq/{p-60db3689.entry.js → p-5dd30c4c.entry.js} +2 -2
  68. package/dist/beeq/p-5dd30c4c.entry.js.map +1 -0
  69. package/dist/beeq/{p-eb2cfa90.entry.js → p-5df7df5d.entry.js} +2 -2
  70. package/dist/beeq/p-5df7df5d.entry.js.map +1 -0
  71. package/dist/beeq/{p-c023718e.entry.js → p-5e8c8e90.entry.js} +2 -2
  72. package/dist/beeq/p-5e8c8e90.entry.js.map +1 -0
  73. package/dist/beeq/{p-1c6ef374.entry.js → p-662578a2.entry.js} +2 -2
  74. package/dist/beeq/p-662578a2.entry.js.map +1 -0
  75. package/dist/beeq/{p-3c7397cf.entry.js → p-6ae2ca4b.entry.js} +2 -2
  76. package/dist/beeq/p-6ae2ca4b.entry.js.map +1 -0
  77. package/dist/beeq/{p-0deed5d1.entry.js → p-7ca73c06.entry.js} +2 -2
  78. package/dist/beeq/p-7ca73c06.entry.js.map +1 -0
  79. package/dist/beeq/{p-7063e5c2.entry.js → p-84e62655.entry.js} +2 -2
  80. package/dist/beeq/p-84e62655.entry.js.map +1 -0
  81. package/dist/beeq/{p-dc4d2d77.entry.js → p-93d6f4f0.entry.js} +2 -2
  82. package/dist/beeq/p-93d6f4f0.entry.js.map +1 -0
  83. package/dist/beeq/{p-2f008ed1.entry.js → p-9585221e.entry.js} +2 -2
  84. package/dist/beeq/p-9585221e.entry.js.map +1 -0
  85. package/dist/beeq/{p-477f032f.entry.js → p-9e9baa82.entry.js} +2 -2
  86. package/dist/beeq/p-9e9baa82.entry.js.map +1 -0
  87. package/dist/beeq/{p-DMf9D39m.js → p-BNvWMggA.js} +2 -2
  88. package/dist/beeq/{p-DMf9D39m.js.map → p-BNvWMggA.js.map} +1 -1
  89. package/dist/beeq/p-BOf9EC3C.js +7 -0
  90. package/dist/beeq/p-BOf9EC3C.js.map +1 -0
  91. package/dist/beeq/{p-Ci39rxuU.js → p-BRbYDZoo.js} +2 -2
  92. package/dist/beeq/{p-Ci39rxuU.js.map → p-BRbYDZoo.js.map} +1 -1
  93. package/dist/beeq/{p-D9ofIraD.js → p-CVw85-WU.js} +1 -1
  94. package/dist/beeq/p-CVw85-WU.js.map +1 -0
  95. package/dist/beeq/p-CgIw4Syg.js +6 -0
  96. package/dist/beeq/{p-y49NXy_H.js.map → p-CgIw4Syg.js.map} +1 -1
  97. package/dist/beeq/p-DdvbF5yL.js.map +1 -1
  98. package/dist/beeq/{p-48811a09.entry.js → p-b1d2e472.entry.js} +2 -2
  99. package/dist/beeq/p-b1d2e472.entry.js.map +1 -0
  100. package/dist/beeq/p-b7efb629.entry.js +6 -0
  101. package/dist/beeq/p-b7efb629.entry.js.map +1 -0
  102. package/dist/beeq/{p-9305e1a2.entry.js → p-b88b2573.entry.js} +2 -2
  103. package/dist/beeq/p-b88b2573.entry.js.map +1 -0
  104. package/dist/beeq/p-bfca08f5.entry.js +6 -0
  105. package/dist/beeq/p-bfca08f5.entry.js.map +1 -0
  106. package/dist/beeq/{p-6a10175b.entry.js → p-c63b89d2.entry.js} +2 -2
  107. package/dist/beeq/p-c63b89d2.entry.js.map +1 -0
  108. package/dist/beeq/{p-3e8980ff.entry.js → p-ca93325b.entry.js} +2 -2
  109. package/dist/beeq/p-ca93325b.entry.js.map +1 -0
  110. package/dist/beeq/{p-04745600.entry.js → p-cb0639d5.entry.js} +2 -2
  111. package/dist/beeq/p-cb0639d5.entry.js.map +1 -0
  112. package/dist/beeq/{p-78be94d2.entry.js → p-cd53041f.entry.js} +2 -2
  113. package/dist/beeq/p-cd53041f.entry.js.map +1 -0
  114. package/dist/beeq/{p-f12a127c.entry.js → p-d8118f0b.entry.js} +2 -2
  115. package/dist/beeq/p-d8118f0b.entry.js.map +1 -0
  116. package/dist/beeq/p-d9c5ab1d.entry.js +6 -0
  117. package/dist/beeq/p-d9c5ab1d.entry.js.map +1 -0
  118. package/dist/beeq/{p-1421f4a3.entry.js → p-dc5aa386.entry.js} +2 -2
  119. package/dist/beeq/p-dc5aa386.entry.js.map +1 -0
  120. package/dist/beeq/{p-fbc38c77.entry.js → p-dcda1181.entry.js} +2 -2
  121. package/dist/beeq/p-dcda1181.entry.js.map +1 -0
  122. package/dist/beeq/{p-6d429afd.entry.js → p-e5c12fd7.entry.js} +2 -2
  123. package/dist/beeq/p-e5c12fd7.entry.js.map +1 -0
  124. package/dist/beeq/p-eaa8c123.entry.js +6 -0
  125. package/dist/beeq/p-eaa8c123.entry.js.map +1 -0
  126. package/dist/beeq/{p-8280145e.entry.js → p-eb47c1ae.entry.js} +2 -2
  127. package/dist/beeq/p-eb47c1ae.entry.js.map +1 -0
  128. package/dist/beeq/{p-f8d5c1ab.entry.js → p-eb6eac82.entry.js} +2 -2
  129. package/dist/beeq/p-eb6eac82.entry.js.map +1 -0
  130. package/dist/beeq/{p-37a2fb82.entry.js → p-f691f00c.entry.js} +2 -2
  131. package/dist/beeq/p-f691f00c.entry.js.map +1 -0
  132. package/dist/beeq/p-igOoibr-.js +6 -0
  133. package/dist/beeq/p-igOoibr-.js.map +1 -0
  134. package/dist/beeq/{p-CVMdKx0v.js → p-lysmVw2n.js} +2 -2
  135. package/dist/beeq/{p-CVMdKx0v.js.map → p-lysmVw2n.js.map} +1 -1
  136. package/dist/beeq.html-custom-data.json +2 -11
  137. package/dist/cjs/beeq.cjs.js +3 -5
  138. package/dist/cjs/beeq.cjs.js.map +1 -1
  139. package/dist/cjs/bq-accordion-group.cjs.entry.js +1 -3
  140. package/dist/cjs/bq-accordion.cjs.entry.js +18 -10
  141. package/dist/cjs/bq-accordion.entry.cjs.js.map +1 -1
  142. package/dist/cjs/bq-alert.cjs.entry.js +12 -11
  143. package/dist/cjs/bq-alert.entry.cjs.js.map +1 -1
  144. package/dist/cjs/bq-avatar.cjs.entry.js +5 -7
  145. package/dist/cjs/bq-avatar.entry.cjs.js.map +1 -1
  146. package/dist/cjs/bq-badge.cjs.entry.js +4 -4
  147. package/dist/cjs/bq-badge.entry.cjs.js.map +1 -1
  148. package/dist/cjs/bq-breadcrumb-item.cjs.entry.js +4 -6
  149. package/dist/cjs/bq-breadcrumb-item.entry.cjs.js.map +1 -1
  150. package/dist/cjs/bq-breadcrumb.cjs.entry.js +6 -4
  151. package/dist/cjs/bq-breadcrumb.entry.cjs.js.map +1 -1
  152. package/dist/cjs/bq-button.bq-icon.entry.cjs.js.map +1 -1
  153. package/dist/cjs/bq-button_2.cjs.entry.js +14 -12
  154. package/dist/cjs/bq-card.cjs.entry.js +2 -4
  155. package/dist/cjs/bq-card.entry.cjs.js.map +1 -1
  156. package/dist/cjs/bq-checkbox.cjs.entry.js +5 -5
  157. package/dist/cjs/bq-checkbox.entry.cjs.js.map +1 -1
  158. package/dist/cjs/bq-date-picker.cjs.entry.js +69 -26
  159. package/dist/cjs/bq-date-picker.entry.cjs.js.map +1 -1
  160. package/dist/cjs/bq-dialog.cjs.entry.js +12 -8
  161. package/dist/cjs/bq-dialog.entry.cjs.js.map +1 -1
  162. package/dist/cjs/bq-divider.cjs.entry.js +7 -7
  163. package/dist/cjs/bq-divider.entry.cjs.js.map +1 -1
  164. package/dist/cjs/bq-drawer.cjs.entry.js +8 -6
  165. package/dist/cjs/bq-drawer.entry.cjs.js.map +1 -1
  166. package/dist/cjs/bq-dropdown.bq-panel.entry.cjs.js.map +1 -1
  167. package/dist/cjs/bq-dropdown_2.cjs.entry.js +12 -8
  168. package/dist/cjs/bq-empty-state.cjs.entry.js +9 -7
  169. package/dist/cjs/bq-empty-state.entry.cjs.js.map +1 -1
  170. package/dist/cjs/bq-input.cjs.entry.js +29 -23
  171. package/dist/cjs/bq-input.entry.cjs.js.map +1 -1
  172. package/dist/cjs/bq-notification.cjs.entry.js +10 -6
  173. package/dist/cjs/bq-notification.entry.cjs.js.map +1 -1
  174. package/dist/cjs/bq-option-group.cjs.entry.js +2 -4
  175. package/dist/cjs/bq-option-group.entry.cjs.js.map +1 -1
  176. package/dist/cjs/bq-option-list.bq-tag.entry.cjs.js.map +1 -1
  177. package/dist/cjs/bq-option-list_2.cjs.entry.js +6 -6
  178. package/dist/cjs/bq-option.cjs.entry.js +17 -12
  179. package/dist/cjs/bq-option.entry.cjs.js.map +1 -1
  180. package/dist/cjs/bq-page-title.cjs.entry.js +10 -6
  181. package/dist/cjs/bq-page-title.entry.cjs.js.map +1 -1
  182. package/dist/cjs/bq-progress.cjs.entry.js +6 -8
  183. package/dist/cjs/bq-progress.entry.cjs.js.map +1 -1
  184. package/dist/cjs/bq-radio-group.cjs.entry.js +15 -11
  185. package/dist/cjs/bq-radio-group.entry.cjs.js.map +1 -1
  186. package/dist/cjs/bq-radio.cjs.entry.js +4 -4
  187. package/dist/cjs/bq-radio.entry.cjs.js.map +1 -1
  188. package/dist/cjs/bq-select.cjs.entry.js +76 -31
  189. package/dist/cjs/bq-select.entry.cjs.js.map +1 -1
  190. package/dist/cjs/bq-side-menu-item.cjs.entry.js +6 -6
  191. package/dist/cjs/bq-side-menu-item.entry.cjs.js.map +1 -1
  192. package/dist/cjs/bq-side-menu.cjs.entry.js +11 -9
  193. package/dist/cjs/bq-side-menu.entry.cjs.js.map +1 -1
  194. package/dist/cjs/bq-slider.cjs.entry.js +25 -14
  195. package/dist/cjs/bq-slider.entry.cjs.js.map +1 -1
  196. package/dist/cjs/bq-spinner.cjs.entry.js +12 -14
  197. package/dist/cjs/bq-spinner.entry.cjs.js.map +1 -1
  198. package/dist/cjs/bq-status.cjs.entry.js +2 -4
  199. package/dist/cjs/bq-status.entry.cjs.js.map +1 -1
  200. package/dist/cjs/bq-step-item.cjs.entry.js +7 -9
  201. package/dist/cjs/bq-step-item.entry.cjs.js.map +1 -1
  202. package/dist/cjs/bq-steps.cjs.entry.js +5 -5
  203. package/dist/cjs/bq-steps.entry.cjs.js.map +1 -1
  204. package/dist/cjs/bq-switch.cjs.entry.js +8 -6
  205. package/dist/cjs/bq-switch.entry.cjs.js.map +1 -1
  206. package/dist/cjs/bq-tab-group.cjs.entry.js +9 -9
  207. package/dist/cjs/bq-tab-group.entry.cjs.js.map +1 -1
  208. package/dist/cjs/bq-tab.cjs.entry.js +8 -6
  209. package/dist/cjs/bq-tab.entry.cjs.js.map +1 -1
  210. package/dist/cjs/bq-textarea.cjs.entry.js +16 -15
  211. package/dist/cjs/bq-textarea.entry.cjs.js.map +1 -1
  212. package/dist/cjs/bq-toast.cjs.entry.js +4 -7
  213. package/dist/cjs/bq-toast.entry.cjs.js.map +1 -1
  214. package/dist/cjs/bq-tooltip.cjs.entry.js +9 -5
  215. package/dist/cjs/bq-tooltip.entry.cjs.js.map +1 -1
  216. package/dist/cjs/date-C-h2CBps.js +170 -0
  217. package/dist/cjs/date-C-h2CBps.js.map +1 -0
  218. package/dist/cjs/{debounce-DFaAa1Cu.js → debounce-D0tIpUuS.js} +4 -4
  219. package/dist/cjs/debounce-D0tIpUuS.js.map +1 -0
  220. package/dist/cjs/{index-tFN0ax76.js → index-D7RDSS0K.js} +73 -47
  221. package/dist/cjs/{index-tFN0ax76.js.map → index-D7RDSS0K.js.map} +1 -1
  222. package/dist/cjs/{index-CLoLF-_B.js → index-g8MkV15i.js} +78 -65
  223. package/dist/cjs/index-g8MkV15i.js.map +1 -0
  224. package/dist/cjs/index.cjs.js +7 -6
  225. package/dist/cjs/index.cjs.js.map +1 -1
  226. package/dist/cjs/{isDefined-K4EcmGLZ.js → isDefined-D24L82z9.js} +3 -3
  227. package/dist/cjs/{isDefined-K4EcmGLZ.js.map → isDefined-D24L82z9.js.map} +1 -1
  228. package/dist/cjs/{isString-CHgmxASW.js → isString-CA9m1aBg.js} +3 -3
  229. package/dist/cjs/{isString-CHgmxASW.js.map → isString-CA9m1aBg.js.map} +1 -1
  230. package/dist/cjs/loader.cjs.js +2 -4
  231. package/dist/cjs/{stringToArray-DTx7uqZ4.js → stringToArray-B747BpEA.js} +4 -4
  232. package/dist/cjs/{stringToArray-DTx7uqZ4.js.map → stringToArray-B747BpEA.js.map} +1 -1
  233. package/dist/cjs/transition-C0S-pYqN.js.map +1 -1
  234. package/dist/collection/collection-manifest.json +2 -2
  235. package/dist/collection/components/accordion/bq-accordion.js +17 -11
  236. package/dist/collection/components/accordion/bq-accordion.js.map +1 -1
  237. package/dist/collection/components/accordion/helper/index.js +6 -2
  238. package/dist/collection/components/accordion/helper/index.js.map +1 -1
  239. package/dist/collection/components/accordion/scss/bq-accordion.css +1 -1
  240. package/dist/collection/components/accordion-group/bq-accordion-group.js +6 -6
  241. package/dist/collection/components/alert/bq-alert.js +25 -22
  242. package/dist/collection/components/alert/bq-alert.js.map +1 -1
  243. package/dist/collection/components/avatar/bq-avatar.js +16 -16
  244. package/dist/collection/components/avatar/bq-avatar.js.map +1 -1
  245. package/dist/collection/components/badge/bq-badge.js +10 -8
  246. package/dist/collection/components/badge/bq-badge.js.map +1 -1
  247. package/dist/collection/components/breadcrumb/bq-breadcrumb.js +7 -3
  248. package/dist/collection/components/breadcrumb/bq-breadcrumb.js.map +1 -1
  249. package/dist/collection/components/breadcrumb-item/bq-breadcrumb-item.js +6 -6
  250. package/dist/collection/components/breadcrumb-item/bq-breadcrumb-item.js.map +1 -1
  251. package/dist/collection/components/button/bq-button.js +23 -19
  252. package/dist/collection/components/button/bq-button.js.map +1 -1
  253. package/dist/collection/components/button/scss/bq-button.css +1 -1
  254. package/dist/collection/components/card/bq-card.js +5 -5
  255. package/dist/collection/components/card/bq-card.js.map +1 -1
  256. package/dist/collection/components/checkbox/bq-checkbox.js +19 -17
  257. package/dist/collection/components/checkbox/bq-checkbox.js.map +1 -1
  258. package/dist/collection/components/date-picker/bq-date-picker.js +103 -61
  259. package/dist/collection/components/date-picker/bq-date-picker.js.map +1 -1
  260. package/dist/collection/components/dialog/bq-dialog.js +20 -14
  261. package/dist/collection/components/dialog/bq-dialog.js.map +1 -1
  262. package/dist/collection/components/divider/bq-divider.js +17 -15
  263. package/dist/collection/components/divider/bq-divider.js.map +1 -1
  264. package/dist/collection/components/drawer/bq-drawer.js +16 -12
  265. package/dist/collection/components/drawer/bq-drawer.js.map +1 -1
  266. package/dist/collection/components/dropdown/bq-dropdown.js +18 -14
  267. package/dist/collection/components/dropdown/bq-dropdown.js.map +1 -1
  268. package/dist/collection/components/empty-state/bq-empty-state.js +10 -6
  269. package/dist/collection/components/empty-state/bq-empty-state.js.map +1 -1
  270. package/dist/collection/components/icon/bq-icon.js +17 -17
  271. package/dist/collection/components/icon/bq-icon.js.map +1 -1
  272. package/dist/collection/components/input/bq-input.js +89 -86
  273. package/dist/collection/components/input/bq-input.js.map +1 -1
  274. package/dist/collection/components/notification/bq-notification.js +21 -15
  275. package/dist/collection/components/notification/bq-notification.js.map +1 -1
  276. package/dist/collection/components/option/bq-option.js +42 -16
  277. package/dist/collection/components/option/bq-option.js.map +1 -1
  278. package/dist/collection/components/option/scss/bq-option.css +1 -1
  279. package/dist/collection/components/option-group/bq-option-group.js +1 -1
  280. package/dist/collection/components/option-group/bq-option-group.js.map +1 -1
  281. package/dist/collection/components/option-list/bq-option-list.js +1 -1
  282. package/dist/collection/components/option-list/bq-option-list.js.map +1 -1
  283. package/dist/collection/components/page-title/bq-page-title.js +9 -3
  284. package/dist/collection/components/page-title/bq-page-title.js.map +1 -1
  285. package/dist/collection/components/panel/bq-panel.js +10 -8
  286. package/dist/collection/components/panel/bq-panel.js.map +1 -1
  287. package/dist/collection/components/progress/bq-progress.js +14 -14
  288. package/dist/collection/components/progress/bq-progress.js.map +1 -1
  289. package/dist/collection/components/radio/bq-radio.js +16 -14
  290. package/dist/collection/components/radio/bq-radio.js.map +1 -1
  291. package/dist/collection/components/radio-group/bq-radio-group.js +25 -19
  292. package/dist/collection/components/radio-group/bq-radio-group.js.map +1 -1
  293. package/dist/collection/components/select/bq-select.js +101 -54
  294. package/dist/collection/components/select/bq-select.js.map +1 -1
  295. package/dist/collection/components/select/scss/bq-select.css +1 -1
  296. package/dist/collection/components/side-menu/bq-side-menu.js +12 -8
  297. package/dist/collection/components/side-menu/bq-side-menu.js.map +1 -1
  298. package/dist/collection/components/side-menu/scss/bq-side-menu.css +1 -1
  299. package/dist/collection/components/side-menu-item/bq-side-menu-item.js +8 -6
  300. package/dist/collection/components/side-menu-item/bq-side-menu-item.js.map +1 -1
  301. package/dist/collection/components/slider/bq-slider.js +36 -23
  302. package/dist/collection/components/slider/bq-slider.js.map +1 -1
  303. package/dist/collection/components/spinner/bq-spinner.js +14 -14
  304. package/dist/collection/components/spinner/bq-spinner.js.map +1 -1
  305. package/dist/collection/components/spinner/bq-spinner.types.js +1 -1
  306. package/dist/collection/components/spinner/bq-spinner.types.js.map +1 -1
  307. package/dist/collection/components/spinner/scss/bq-spinner.css +1 -1
  308. package/dist/collection/components/status/bq-status.js +3 -3
  309. package/dist/collection/components/status/bq-status.js.map +1 -1
  310. package/dist/collection/components/step-item/bq-step-item.js +11 -11
  311. package/dist/collection/components/step-item/bq-step-item.js.map +1 -1
  312. package/dist/collection/components/steps/bq-steps.js +8 -6
  313. package/dist/collection/components/steps/bq-steps.js.map +1 -1
  314. package/dist/collection/components/switch/bq-switch.js +22 -18
  315. package/dist/collection/components/switch/bq-switch.js.map +1 -1
  316. package/dist/collection/components/tab/bq-tab.js +17 -13
  317. package/dist/collection/components/tab/bq-tab.js.map +1 -1
  318. package/dist/collection/components/tab-group/bq-tab-group.js +15 -13
  319. package/dist/collection/components/tab-group/bq-tab-group.js.map +1 -1
  320. package/dist/collection/components/tag/bq-tag.js +19 -17
  321. package/dist/collection/components/tag/bq-tag.js.map +1 -1
  322. package/dist/collection/components/tag/helper/index.js.map +1 -1
  323. package/dist/collection/components/textarea/bq-textarea.js +51 -62
  324. package/dist/collection/components/textarea/bq-textarea.js.map +1 -1
  325. package/dist/collection/components/toast/bq-toast.js +11 -12
  326. package/dist/collection/components/toast/bq-toast.js.map +1 -1
  327. package/dist/collection/components/tooltip/bq-tooltip.js +14 -8
  328. package/dist/collection/components/tooltip/bq-tooltip.js.map +1 -1
  329. package/dist/collection/services/interfaces/floating-ui.js.map +1 -1
  330. package/dist/collection/services/libraries/floating-ui/index.js +34 -25
  331. package/dist/collection/services/libraries/floating-ui/index.js.map +1 -1
  332. package/dist/collection/shared/test-utils/sleep.js +1 -1
  333. package/dist/collection/shared/test-utils/sleep.js.map +1 -1
  334. package/dist/collection/shared/utils/date.js +163 -0
  335. package/dist/collection/shared/utils/date.js.map +1 -0
  336. package/dist/collection/shared/utils/debounce.js +2 -1
  337. package/dist/collection/shared/utils/debounce.js.map +1 -1
  338. package/dist/collection/shared/utils/index.js +1 -0
  339. package/dist/collection/shared/utils/index.js.map +1 -1
  340. package/dist/collection/shared/utils/isString.js +1 -1
  341. package/dist/collection/shared/utils/isString.js.map +1 -1
  342. package/dist/collection/shared/utils/setRafTimeout.js +0 -1
  343. package/dist/collection/shared/utils/setRafTimeout.js.map +1 -1
  344. package/dist/collection/tools/angular-value-accessor-config.js.map +1 -1
  345. package/dist/collection/tools/generate-custom-elements-json.js +2 -2
  346. package/dist/collection/tools/generate-custom-elements-json.js.map +1 -1
  347. package/dist/collection/tools/vue-model-config.js.map +1 -1
  348. package/dist/components/bq-accordion-group.js +1 -1
  349. package/dist/components/bq-accordion-group.js.map +1 -1
  350. package/dist/components/bq-accordion.js +1 -1
  351. package/dist/components/bq-accordion.js.map +1 -1
  352. package/dist/components/bq-alert.js +1 -1
  353. package/dist/components/bq-alert.js.map +1 -1
  354. package/dist/components/bq-avatar.js +1 -1
  355. package/dist/components/bq-avatar.js.map +1 -1
  356. package/dist/components/bq-badge.js +1 -1
  357. package/dist/components/bq-breadcrumb-item.js +1 -1
  358. package/dist/components/bq-breadcrumb-item.js.map +1 -1
  359. package/dist/components/bq-breadcrumb.js +1 -1
  360. package/dist/components/bq-breadcrumb.js.map +1 -1
  361. package/dist/components/bq-button.js +1 -1
  362. package/dist/components/bq-card.js +1 -1
  363. package/dist/components/bq-card.js.map +1 -1
  364. package/dist/components/bq-checkbox.js +1 -1
  365. package/dist/components/bq-checkbox.js.map +1 -1
  366. package/dist/components/bq-date-picker.js +1 -1
  367. package/dist/components/bq-date-picker.js.map +1 -1
  368. package/dist/components/bq-dialog.js +1 -1
  369. package/dist/components/bq-dialog.js.map +1 -1
  370. package/dist/components/bq-divider.js +1 -1
  371. package/dist/components/bq-drawer.js +1 -1
  372. package/dist/components/bq-drawer.js.map +1 -1
  373. package/dist/components/bq-dropdown.js +1 -1
  374. package/dist/components/bq-empty-state.js +1 -1
  375. package/dist/components/bq-empty-state.js.map +1 -1
  376. package/dist/components/bq-icon.js +1 -1
  377. package/dist/components/bq-input.js +1 -1
  378. package/dist/components/bq-input.js.map +1 -1
  379. package/dist/components/bq-notification.js +1 -1
  380. package/dist/components/bq-notification.js.map +1 -1
  381. package/dist/components/bq-option-group.js +1 -1
  382. package/dist/components/bq-option-group.js.map +1 -1
  383. package/dist/components/bq-option-list.js +1 -1
  384. package/dist/components/bq-option.js +1 -1
  385. package/dist/components/bq-option.js.map +1 -1
  386. package/dist/components/bq-page-title.js +1 -1
  387. package/dist/components/bq-page-title.js.map +1 -1
  388. package/dist/components/bq-panel.js +1 -1
  389. package/dist/components/bq-progress.js +1 -1
  390. package/dist/components/bq-progress.js.map +1 -1
  391. package/dist/components/bq-radio-group.js +1 -1
  392. package/dist/components/bq-radio-group.js.map +1 -1
  393. package/dist/components/bq-radio.js +1 -1
  394. package/dist/components/bq-radio.js.map +1 -1
  395. package/dist/components/bq-select.js +1 -1
  396. package/dist/components/bq-select.js.map +1 -1
  397. package/dist/components/bq-side-menu-item.js +1 -1
  398. package/dist/components/bq-side-menu-item.js.map +1 -1
  399. package/dist/components/bq-side-menu.js +1 -1
  400. package/dist/components/bq-side-menu.js.map +1 -1
  401. package/dist/components/bq-slider.js +1 -1
  402. package/dist/components/bq-slider.js.map +1 -1
  403. package/dist/components/bq-spinner.js +1 -1
  404. package/dist/components/bq-spinner.js.map +1 -1
  405. package/dist/components/bq-status.js +1 -1
  406. package/dist/components/bq-status.js.map +1 -1
  407. package/dist/components/bq-step-item.js +1 -1
  408. package/dist/components/bq-step-item.js.map +1 -1
  409. package/dist/components/bq-steps.js +1 -1
  410. package/dist/components/bq-steps.js.map +1 -1
  411. package/dist/components/bq-switch.js +1 -1
  412. package/dist/components/bq-switch.js.map +1 -1
  413. package/dist/components/bq-tab-group.js +1 -1
  414. package/dist/components/bq-tab-group.js.map +1 -1
  415. package/dist/components/bq-tab.js +1 -1
  416. package/dist/components/bq-tab.js.map +1 -1
  417. package/dist/components/bq-tag.js +1 -1
  418. package/dist/components/bq-textarea.js +1 -1
  419. package/dist/components/bq-textarea.js.map +1 -1
  420. package/dist/components/bq-toast.js +1 -1
  421. package/dist/components/bq-toast.js.map +1 -1
  422. package/dist/components/bq-tooltip.js +1 -1
  423. package/dist/components/index.js +1 -1
  424. package/dist/components/index.js.map +1 -1
  425. package/dist/components/{p-C4Jb3i-D.js → p-16lKXCDk.js} +2 -2
  426. package/dist/components/p-16lKXCDk.js.map +1 -0
  427. package/dist/components/{p-CjS2vgik.js → p-A6e1tN-B.js} +2 -2
  428. package/dist/components/p-A6e1tN-B.js.map +1 -0
  429. package/dist/components/{p-5er2o4Mn.js → p-B5XEhmuc.js} +2 -2
  430. package/dist/components/{p-5er2o4Mn.js.map → p-B5XEhmuc.js.map} +1 -1
  431. package/dist/components/{p-Bs3hKCXS.js → p-BBhidARY.js} +2 -2
  432. package/dist/components/p-BBhidARY.js.map +1 -0
  433. package/dist/components/{p-Ci39rxuU.js → p-BRbYDZoo.js} +2 -2
  434. package/dist/components/{p-D9ofIraD.js → p-CVw85-WU.js} +1 -1
  435. package/dist/components/p-CVw85-WU.js.map +1 -0
  436. package/dist/components/p-CXUO6Zub.js +6 -0
  437. package/dist/components/p-CXUO6Zub.js.map +1 -0
  438. package/dist/components/p-CgIw4Syg.js +6 -0
  439. package/dist/components/p-CgIw4Syg.js.map +1 -0
  440. package/dist/components/{p-k2047NJf.js → p-D14_9VoZ.js} +2 -2
  441. package/dist/components/{p-k2047NJf.js.map → p-D14_9VoZ.js.map} +1 -1
  442. package/dist/components/{p-fQPjV9jm.js → p-DGysEMss.js} +2 -2
  443. package/dist/components/p-DGysEMss.js.map +1 -0
  444. package/dist/components/p-DHdYy1q5.js +6 -0
  445. package/dist/components/p-DHdYy1q5.js.map +1 -0
  446. package/dist/components/p-DdvbF5yL.js.map +1 -1
  447. package/dist/components/{p-BIl7Vq5P.js → p-DokL_HVP.js} +2 -2
  448. package/dist/components/p-DokL_HVP.js.map +1 -0
  449. package/dist/components/{p-BPVTwD6U.js → p-eRUe5rRq.js} +2 -2
  450. package/dist/components/p-eRUe5rRq.js.map +1 -0
  451. package/dist/components/{p-CVMdKx0v.js → p-lysmVw2n.js} +2 -2
  452. package/dist/components/{p-CVMdKx0v.js.map → p-lysmVw2n.js.map} +1 -1
  453. package/dist/custom-elements.json +57 -61
  454. package/dist/esm/beeq.js +4 -6
  455. package/dist/esm/beeq.js.map +1 -1
  456. package/dist/esm/bq-accordion-group.entry.js +1 -3
  457. package/dist/esm/bq-accordion.entry.js +18 -10
  458. package/dist/esm/bq-accordion.entry.js.map +1 -1
  459. package/dist/esm/bq-alert.entry.js +12 -11
  460. package/dist/esm/bq-alert.entry.js.map +1 -1
  461. package/dist/esm/bq-avatar.entry.js +5 -7
  462. package/dist/esm/bq-avatar.entry.js.map +1 -1
  463. package/dist/esm/bq-badge.entry.js +4 -4
  464. package/dist/esm/bq-badge.entry.js.map +1 -1
  465. package/dist/esm/bq-breadcrumb-item.entry.js +4 -6
  466. package/dist/esm/bq-breadcrumb-item.entry.js.map +1 -1
  467. package/dist/esm/bq-breadcrumb.entry.js +6 -4
  468. package/dist/esm/bq-breadcrumb.entry.js.map +1 -1
  469. package/dist/esm/bq-button.bq-icon.entry.js.map +1 -1
  470. package/dist/esm/bq-button_2.entry.js +14 -12
  471. package/dist/esm/bq-card.entry.js +2 -4
  472. package/dist/esm/bq-card.entry.js.map +1 -1
  473. package/dist/esm/bq-checkbox.entry.js +5 -5
  474. package/dist/esm/bq-checkbox.entry.js.map +1 -1
  475. package/dist/esm/bq-date-picker.entry.js +69 -26
  476. package/dist/esm/bq-date-picker.entry.js.map +1 -1
  477. package/dist/esm/bq-dialog.entry.js +12 -8
  478. package/dist/esm/bq-dialog.entry.js.map +1 -1
  479. package/dist/esm/bq-divider.entry.js +7 -7
  480. package/dist/esm/bq-divider.entry.js.map +1 -1
  481. package/dist/esm/bq-drawer.entry.js +8 -6
  482. package/dist/esm/bq-drawer.entry.js.map +1 -1
  483. package/dist/esm/bq-dropdown.bq-panel.entry.js.map +1 -1
  484. package/dist/esm/bq-dropdown_2.entry.js +12 -8
  485. package/dist/esm/bq-empty-state.entry.js +9 -7
  486. package/dist/esm/bq-empty-state.entry.js.map +1 -1
  487. package/dist/esm/bq-input.entry.js +29 -23
  488. package/dist/esm/bq-input.entry.js.map +1 -1
  489. package/dist/esm/bq-notification.entry.js +10 -6
  490. package/dist/esm/bq-notification.entry.js.map +1 -1
  491. package/dist/esm/bq-option-group.entry.js +2 -4
  492. package/dist/esm/bq-option-group.entry.js.map +1 -1
  493. package/dist/esm/bq-option-list.bq-tag.entry.js.map +1 -1
  494. package/dist/esm/bq-option-list_2.entry.js +6 -6
  495. package/dist/esm/bq-option.entry.js +17 -12
  496. package/dist/esm/bq-option.entry.js.map +1 -1
  497. package/dist/esm/bq-page-title.entry.js +10 -6
  498. package/dist/esm/bq-page-title.entry.js.map +1 -1
  499. package/dist/esm/bq-progress.entry.js +6 -8
  500. package/dist/esm/bq-progress.entry.js.map +1 -1
  501. package/dist/esm/bq-radio-group.entry.js +15 -11
  502. package/dist/esm/bq-radio-group.entry.js.map +1 -1
  503. package/dist/esm/bq-radio.entry.js +4 -4
  504. package/dist/esm/bq-radio.entry.js.map +1 -1
  505. package/dist/esm/bq-select.entry.js +76 -31
  506. package/dist/esm/bq-select.entry.js.map +1 -1
  507. package/dist/esm/bq-side-menu-item.entry.js +6 -6
  508. package/dist/esm/bq-side-menu-item.entry.js.map +1 -1
  509. package/dist/esm/bq-side-menu.entry.js +11 -9
  510. package/dist/esm/bq-side-menu.entry.js.map +1 -1
  511. package/dist/esm/bq-slider.entry.js +25 -14
  512. package/dist/esm/bq-slider.entry.js.map +1 -1
  513. package/dist/esm/bq-spinner.entry.js +12 -14
  514. package/dist/esm/bq-spinner.entry.js.map +1 -1
  515. package/dist/esm/bq-status.entry.js +2 -4
  516. package/dist/esm/bq-status.entry.js.map +1 -1
  517. package/dist/esm/bq-step-item.entry.js +7 -9
  518. package/dist/esm/bq-step-item.entry.js.map +1 -1
  519. package/dist/esm/bq-steps.entry.js +5 -5
  520. package/dist/esm/bq-steps.entry.js.map +1 -1
  521. package/dist/esm/bq-switch.entry.js +8 -6
  522. package/dist/esm/bq-switch.entry.js.map +1 -1
  523. package/dist/esm/bq-tab-group.entry.js +9 -9
  524. package/dist/esm/bq-tab-group.entry.js.map +1 -1
  525. package/dist/esm/bq-tab.entry.js +8 -6
  526. package/dist/esm/bq-tab.entry.js.map +1 -1
  527. package/dist/esm/bq-textarea.entry.js +16 -15
  528. package/dist/esm/bq-textarea.entry.js.map +1 -1
  529. package/dist/esm/bq-toast.entry.js +4 -7
  530. package/dist/esm/bq-toast.entry.js.map +1 -1
  531. package/dist/esm/bq-tooltip.entry.js +9 -5
  532. package/dist/esm/bq-tooltip.entry.js.map +1 -1
  533. package/dist/esm/date-igOoibr-.js +167 -0
  534. package/dist/esm/date-igOoibr-.js.map +1 -0
  535. package/dist/esm/{debounce-cjfQylgg.js → debounce-gVeuteEJ.js} +4 -4
  536. package/dist/esm/debounce-gVeuteEJ.js.map +1 -0
  537. package/dist/esm/{index-DDw-pDpy.js → index-BOf9EC3C.js} +78 -65
  538. package/dist/esm/index-BOf9EC3C.js.map +1 -0
  539. package/dist/esm/{index-y49NXy_H.js → index-CgIw4Syg.js} +73 -47
  540. package/dist/esm/{index-y49NXy_H.js.map → index-CgIw4Syg.js.map} +1 -1
  541. package/dist/esm/index.js +5 -6
  542. package/dist/esm/index.js.map +1 -1
  543. package/dist/esm/{isDefined-DjmcVyb_.js → isDefined-DvmFa_bD.js} +3 -3
  544. package/dist/esm/{isDefined-DjmcVyb_.js.map → isDefined-DvmFa_bD.js.map} +1 -1
  545. package/dist/esm/{isString-CVMdKx0v.js → isString-lysmVw2n.js} +3 -3
  546. package/dist/esm/{isString-CVMdKx0v.js.map → isString-lysmVw2n.js.map} +1 -1
  547. package/dist/esm/loader.js +3 -5
  548. package/dist/esm/{stringToArray-DD7NecAG.js → stringToArray-CIJArUww.js} +4 -4
  549. package/dist/esm/{stringToArray-DD7NecAG.js.map → stringToArray-CIJArUww.js.map} +1 -1
  550. package/dist/esm/transition-DdvbF5yL.js.map +1 -1
  551. package/dist/hydrate/index.d.ts +2 -0
  552. package/dist/hydrate/index.js +955 -544
  553. package/dist/hydrate/index.mjs +955 -544
  554. package/dist/jest.config.js +3 -0
  555. package/dist/jest.config.js.map +1 -1
  556. package/dist/stencil.config.js +3 -2
  557. package/dist/stencil.config.js.map +1 -1
  558. package/dist/types/components/date-picker/bq-date-picker.d.ts +5 -2
  559. package/dist/types/components/dropdown/bq-dropdown.d.ts +1 -0
  560. package/dist/types/components/icon/bq-icon.d.ts +1 -1
  561. package/dist/types/components/input/bq-input.d.ts +10 -11
  562. package/dist/types/components/option/bq-option.d.ts +4 -2
  563. package/dist/types/components/select/bq-select.d.ts +1 -0
  564. package/dist/types/components/spinner/bq-spinner.types.d.ts +1 -1
  565. package/dist/types/components/step-item/bq-step-item.d.ts +1 -1
  566. package/dist/types/components/tag/helper/index.d.ts +1 -1
  567. package/dist/types/components/textarea/bq-textarea.d.ts +5 -9
  568. package/dist/types/components.d.ts +40 -42
  569. package/dist/types/global.d.ts +1 -4
  570. package/dist/types/home/runner/work/BEEQ/BEEQ/.stencil/packages/beeq/jest.config.d.ts +3 -0
  571. package/dist/types/services/interfaces/floating-ui.d.ts +1 -1
  572. package/dist/types/services/libraries/floating-ui/index.d.ts +5 -2
  573. package/dist/types/shared/test-utils/setProperties.d.ts +1 -1
  574. package/dist/types/shared/test-utils/sleep.d.ts +1 -1
  575. package/dist/types/shared/utils/date.d.ts +18 -0
  576. package/dist/types/shared/utils/debounce.d.ts +1 -1
  577. package/dist/types/shared/utils/index.d.ts +1 -0
  578. package/dist/types/shared/utils/setRafTimeout.d.ts +1 -1
  579. package/dist/types/stencil-public-runtime.d.ts +49 -2
  580. package/dist/types/tools/angular-value-accessor-config.d.ts +1 -1
  581. package/dist/types/tools/vue-model-config.d.ts +1 -1
  582. package/package.json +1 -1
  583. package/dist/beeq/p-04745600.entry.js.map +0 -1
  584. package/dist/beeq/p-0deed5d1.entry.js.map +0 -1
  585. package/dist/beeq/p-1421f4a3.entry.js.map +0 -1
  586. package/dist/beeq/p-1c6ef374.entry.js.map +0 -1
  587. package/dist/beeq/p-1cd1ae48.entry.js +0 -6
  588. package/dist/beeq/p-1cd1ae48.entry.js.map +0 -1
  589. package/dist/beeq/p-2f008ed1.entry.js.map +0 -1
  590. package/dist/beeq/p-37a2fb82.entry.js.map +0 -1
  591. package/dist/beeq/p-3c7397cf.entry.js.map +0 -1
  592. package/dist/beeq/p-3dca7a14.entry.js.map +0 -1
  593. package/dist/beeq/p-3e8980ff.entry.js.map +0 -1
  594. package/dist/beeq/p-477f032f.entry.js.map +0 -1
  595. package/dist/beeq/p-48811a09.entry.js.map +0 -1
  596. package/dist/beeq/p-540d625a.entry.js +0 -6
  597. package/dist/beeq/p-540d625a.entry.js.map +0 -1
  598. package/dist/beeq/p-5ce77af6.entry.js.map +0 -1
  599. package/dist/beeq/p-60db3689.entry.js.map +0 -1
  600. package/dist/beeq/p-6852a0b0.entry.js.map +0 -1
  601. package/dist/beeq/p-6a10175b.entry.js.map +0 -1
  602. package/dist/beeq/p-6d429afd.entry.js.map +0 -1
  603. package/dist/beeq/p-7063e5c2.entry.js.map +0 -1
  604. package/dist/beeq/p-78be94d2.entry.js.map +0 -1
  605. package/dist/beeq/p-8280145e.entry.js.map +0 -1
  606. package/dist/beeq/p-87430ad8.entry.js.map +0 -1
  607. package/dist/beeq/p-8eb8612b.entry.js.map +0 -1
  608. package/dist/beeq/p-9305e1a2.entry.js.map +0 -1
  609. package/dist/beeq/p-96f6c9ae.entry.js.map +0 -1
  610. package/dist/beeq/p-D9ofIraD.js.map +0 -1
  611. package/dist/beeq/p-DDw-pDpy.js +0 -7
  612. package/dist/beeq/p-DDw-pDpy.js.map +0 -1
  613. package/dist/beeq/p-a9643899.entry.js.map +0 -1
  614. package/dist/beeq/p-b268b017.entry.js +0 -6
  615. package/dist/beeq/p-b268b017.entry.js.map +0 -1
  616. package/dist/beeq/p-b520bdb8.entry.js.map +0 -1
  617. package/dist/beeq/p-ba12d135.entry.js.map +0 -1
  618. package/dist/beeq/p-c023718e.entry.js.map +0 -1
  619. package/dist/beeq/p-d1dd36ca.entry.js.map +0 -1
  620. package/dist/beeq/p-dc4d2d77.entry.js.map +0 -1
  621. package/dist/beeq/p-dd896cd8.entry.js.map +0 -1
  622. package/dist/beeq/p-e7bd48a0.entry.js +0 -6
  623. package/dist/beeq/p-e7bd48a0.entry.js.map +0 -1
  624. package/dist/beeq/p-eb2cfa90.entry.js.map +0 -1
  625. package/dist/beeq/p-f12a127c.entry.js.map +0 -1
  626. package/dist/beeq/p-f189b65d.entry.js +0 -6
  627. package/dist/beeq/p-f189b65d.entry.js.map +0 -1
  628. package/dist/beeq/p-f8d5c1ab.entry.js.map +0 -1
  629. package/dist/beeq/p-fbc38c77.entry.js.map +0 -1
  630. package/dist/beeq/p-y49NXy_H.js +0 -6
  631. package/dist/cjs/bq-accordion-group.cjs.entry.js.map +0 -1
  632. package/dist/cjs/bq-accordion.cjs.entry.js.map +0 -1
  633. package/dist/cjs/bq-alert.cjs.entry.js.map +0 -1
  634. package/dist/cjs/bq-avatar.cjs.entry.js.map +0 -1
  635. package/dist/cjs/bq-badge.cjs.entry.js.map +0 -1
  636. package/dist/cjs/bq-breadcrumb-item.cjs.entry.js.map +0 -1
  637. package/dist/cjs/bq-breadcrumb.cjs.entry.js.map +0 -1
  638. package/dist/cjs/bq-button_2.cjs.entry.js.map +0 -1
  639. package/dist/cjs/bq-card.cjs.entry.js.map +0 -1
  640. package/dist/cjs/bq-checkbox.cjs.entry.js.map +0 -1
  641. package/dist/cjs/bq-date-picker.cjs.entry.js.map +0 -1
  642. package/dist/cjs/bq-dialog.cjs.entry.js.map +0 -1
  643. package/dist/cjs/bq-divider.cjs.entry.js.map +0 -1
  644. package/dist/cjs/bq-drawer.cjs.entry.js.map +0 -1
  645. package/dist/cjs/bq-dropdown_2.cjs.entry.js.map +0 -1
  646. package/dist/cjs/bq-empty-state.cjs.entry.js.map +0 -1
  647. package/dist/cjs/bq-input.cjs.entry.js.map +0 -1
  648. package/dist/cjs/bq-notification.cjs.entry.js.map +0 -1
  649. package/dist/cjs/bq-option-group.cjs.entry.js.map +0 -1
  650. package/dist/cjs/bq-option-list_2.cjs.entry.js.map +0 -1
  651. package/dist/cjs/bq-option.cjs.entry.js.map +0 -1
  652. package/dist/cjs/bq-page-title.cjs.entry.js.map +0 -1
  653. package/dist/cjs/bq-progress.cjs.entry.js.map +0 -1
  654. package/dist/cjs/bq-radio-group.cjs.entry.js.map +0 -1
  655. package/dist/cjs/bq-radio.cjs.entry.js.map +0 -1
  656. package/dist/cjs/bq-select.cjs.entry.js.map +0 -1
  657. package/dist/cjs/bq-side-menu-item.cjs.entry.js.map +0 -1
  658. package/dist/cjs/bq-side-menu.cjs.entry.js.map +0 -1
  659. package/dist/cjs/bq-slider.cjs.entry.js.map +0 -1
  660. package/dist/cjs/bq-spinner.cjs.entry.js.map +0 -1
  661. package/dist/cjs/bq-status.cjs.entry.js.map +0 -1
  662. package/dist/cjs/bq-step-item.cjs.entry.js.map +0 -1
  663. package/dist/cjs/bq-steps.cjs.entry.js.map +0 -1
  664. package/dist/cjs/bq-switch.cjs.entry.js.map +0 -1
  665. package/dist/cjs/bq-tab-group.cjs.entry.js.map +0 -1
  666. package/dist/cjs/bq-tab.cjs.entry.js.map +0 -1
  667. package/dist/cjs/bq-textarea.cjs.entry.js.map +0 -1
  668. package/dist/cjs/bq-toast.cjs.entry.js.map +0 -1
  669. package/dist/cjs/bq-tooltip.cjs.entry.js.map +0 -1
  670. package/dist/cjs/debounce-DFaAa1Cu.js.map +0 -1
  671. package/dist/cjs/index-CLoLF-_B.js.map +0 -1
  672. package/dist/components/p-BIl7Vq5P.js.map +0 -1
  673. package/dist/components/p-BPVTwD6U.js.map +0 -1
  674. package/dist/components/p-Bkf_oCvP.js +0 -6
  675. package/dist/components/p-Bkf_oCvP.js.map +0 -1
  676. package/dist/components/p-Bs3hKCXS.js.map +0 -1
  677. package/dist/components/p-C4Jb3i-D.js.map +0 -1
  678. package/dist/components/p-CjS2vgik.js.map +0 -1
  679. package/dist/components/p-D9ofIraD.js.map +0 -1
  680. package/dist/components/p-DE7kLeHf.js +0 -6
  681. package/dist/components/p-DE7kLeHf.js.map +0 -1
  682. package/dist/components/p-fQPjV9jm.js.map +0 -1
  683. package/dist/components/p-y49NXy_H.js +0 -6
  684. package/dist/components/p-y49NXy_H.js.map +0 -1
  685. package/dist/esm/bq-button_2.entry.js.map +0 -1
  686. package/dist/esm/bq-dropdown_2.entry.js.map +0 -1
  687. package/dist/esm/bq-option-list_2.entry.js.map +0 -1
  688. package/dist/esm/debounce-cjfQylgg.js.map +0 -1
  689. package/dist/esm/index-DDw-pDpy.js.map +0 -1
  690. /package/dist/components/{p-Ci39rxuU.js.map → p-BRbYDZoo.js.map} +0 -0
@@ -1 +1 @@
1
- {"version":3,"file":"bq-dialog.entry.cjs.js","sources":["../../packages/beeq/src/components/dialog/bq-dialog.types.ts","../../packages/beeq/src/components/dialog/scss/bq-dialog.scss?tag=bq-dialog&encapsulation=shadow","../../packages/beeq/src/components/dialog/bq-dialog.tsx"],"sourcesContent":["export const DIALOG_SIZE = ['small', 'medium', 'large'] as const;\nexport type TDialogSize = (typeof DIALOG_SIZE)[number];\n\nexport const DIALOG_FOOTER_APPEARANCE = ['standard', 'highlight'] as const;\nexport type TDialogFooterAppearance = (typeof DIALOG_FOOTER_APPEARANCE)[number];\n\nexport const DIALOG_BORDER_RADIUS = ['none', 'xs2', 'xs', 's', 'm', 'l', 'full'] as const;\nexport type TDialogBorderRadius = (typeof DIALOG_BORDER_RADIUS)[number];\n","/* -------------------------------------------------------------------------- */\n/* Dialog styles */\n/* -------------------------------------------------------------------------- */\n\n@import './bq-dialog.variables';\n\n:host {\n @apply invisible #{!important};\n}\n\n:host(.bq-dialog--open) {\n @apply visible #{!important};\n}\n\n/* --------------------------------- Dialog --------------------------------- */\n\n.bq-dialog {\n @apply fixed flex flex-col gap-[--bq-dialog--content-footer-gap] p-b-0 p-i-0;\n @apply bg-[--bq-dialog--background] text-[--bq-dialog--text-color] shadow-[shadow:--bq-dialog--box-shadow];\n @apply rounded-[--bq-dialog--border-radius] border-[length:--bq-dialog--border-width] border-[color:--bq-dialog--border-color];\n // If mobile resolution, dialog will be full width\n @apply is-[90vw];\n\n border-style: var(--bq-dialog--border-style);\n\n &.small {\n @apply sm:is-[--bq-dialog--width-small];\n }\n\n &.medium {\n @apply sm:is-[--bq-dialog--width-medium];\n }\n\n &.large {\n @apply sm:is-[--bq-dialog--width-large];\n }\n}\n\n/* ----------------------------- Dialog backdrop ---------------------------- */\n\n.bq-dialog::backdrop {\n @apply bg-[--bq-dialog--background-backdrop] opacity-0 transition-[opacity] duration-300 ease-in-out;\n}\n\n.bq-dialog[open]::backdrop {\n @apply opacity-60;\n}\n\n/* ------------------------------ Dialog header ----------------------------- */\n\n.bq-dialog--header {\n @apply sticky flex items-center gap-m p-b-[--bq-dialog--padding] p-be-0 p-i-[--bq-dialog--padding] inset-bs-0;\n}\n\n/* ------------------------------ Dialog footer ----------------------------- */\n\n.bq-dialog--footer {\n @apply sticky flex items-center justify-end gap-xs is-full p-b-[--bq-dialog--padding] p-bs-0 p-i-[--bq-dialog--padding] inset-bs-[100%];\n}\n\n/* --------------------------- Dialog close button -------------------------- */\n\n.bq-dialog--close {\n --bq-radius--m: theme(borderRadius.s);\n --bq-button--small-paddingX: theme(spacing.xs2);\n --bq-button--small-paddingY: theme(spacing.xs2);\n\n &::part(button) {\n @apply border-none;\n }\n}\n","import { Component, Element, Event, h, Listen, Method, Prop, State, Watch } from '@stencil/core';\nimport type { EventEmitter } from '@stencil/core';\n\nimport { DIALOG_FOOTER_APPEARANCE, DIALOG_SIZE } from './bq-dialog.types';\nimport type { TDialogBorderRadius, TDialogFooterAppearance, TDialogSize } from './bq-dialog.types';\nimport { enter, hasSlotContent, leave, validatePropValue } from '../../shared/utils';\n\n/**\n * The Dialog component is used to display additional content or prompt a user for action.\n * It provides a way to display additional information, options, or controls in a separate, non-obstructive interface element.\n *\n * @example How to use it\n * ```html\n * <bq-dialog footer-appearance=\"standard\" border=\"m\" size=\"medium\">\n * <h5 class=\"bold flex items-center gap-s\" slot=\"title\">\n * <bq-icon name=\"info\" size=\"30\" color=\"text--accent\" role=\"img\" title=\"Info\"></bq-icon>\n * Title\n * </h5>\n * <p>\n * Lorem Ipsum is simply dummy text of the printing and typesetting industry. Lorem Ipsum has been the industry's\n * standard dummy text ever since the 1500s, when an unknown printer took a galley of type and scrambled it to make a\n * type specimen book.\n * </p>\n * <div class=\"flex gap-xs\" slot=\"footer\">\n * <bq-button appearance=\"link\">Button</bq-button>\n * <bq-button variant=\"ghost\">Button</bq-button>\n * <bq-button variant=\"standard\" slot=\"footer\">Button</bq-button>\n * </div>\n * </bq-dialog>\n * ```\n *\n * @documentation https://www.beeq.design/3d466e231/p/15b6fc-dialog\n * @status stable\n *\n * @dependency bq-button\n * @dependency bq-icon\n *\n * @attr {\"none\" | \"xs2\" | \"xs\" | \"s\" | \"m\" | \"l\" | \"full\"} border - Border radius of the dialog component.\n * @attr {boolean} disable-backdrop - If true, the backdrop overlay won't be shown when the dialog opens.\n * @attr {boolean} disable-close-esc-keydown - If true, the dialog will not close when the [Esc] key is pressed.\n * @attr {boolean} disable-close-click-outside - If true, the dialog will not close when clicking on the backdrop overlay.\n * @attr {\"standard\" | \"highlight\"} footer-appearance - The appearance of the footer.\n * @attr {boolean} hide-close-button - If true, it hides the close button.\n * @attr {boolean} open - If true, the dialog will be shown as open.\n * @attr {\"small\" | \"medium\" | \"large\"} size - The size of the dialog.\n *\n * @method show - Open the dialog.\n * @method hide - Closes the dialog.\n * @method cancel - Dismiss or cancel the dialog.\n *\n * @event bqCancel - Callback handler emitted when the dialog has been canceled or dismissed.\n * @event bqClose - Callback handler emitted when the dialog will close.\n * @event bqOpen - Callback handler emitted when the dialog will open.\n * @event bqAfterOpen - Callback handler emitted when the dialog finish opening.\n * @event bqAfterClose - Callback handler emitted when the dialog finish closing.\n *\n * @slot title - The title content of the dialog.\n * @slot - The body content of the dialog.\n * @slot footer - The footer content of the dialog.\n * @slot button-close - The close button content of the dialog.\n *\n * @part body - The `<main>` that holds the dialog body content.\n * @part button-close - The button that closes the dialog on click.\n * @part content - The `<div>` container that holds the dialog title and body content.\n * @part dialog - The `<dialog>` wrapper container inside the shadow DOM.\n * @part footer - The `<footer>` that holds footer content.\n * @part header - The `<header>` that holds the icon, title, description and close button.\n * @part title - The `<div>` that holds the title content.\n *\n * @cssprop --bq-dialog--background - Dialog background color\n * @cssprop --bq-dialog--background-backdrop - Dialog backdrop background color\n * @cssprop --bq-dialog--box-shadow - Dialog box shadow\n * @cssprop --bq-dialog--border-color - Dialog border color\n * @cssprop --bq-dialog--border-style - Dialog border style\n * @cssprop --bq-dialog--border-width - Dialog border width\n * @cssprop --bq-dialog--border-radius - Dialog border radius\n * @cssprop --bq-dialog--padding - Dialog padding\n * @cssprop --bq-dialog--content-footer-gap - Dialog gap distance between content and footer elements\n * @cssprop --bq-dialog--title-body-gap - Dialog gap distance between title and body elements\n * @cssprop --bq-dialog--width-small - Dialog small width\n * @cssprop --bq-dialog--width-medium - Dialog medium width\n * @cssprop --bq-dialog--width-large - Dialog large width\n * @cssprop --bq-dialog-z-index - Dialog z-index applied when opened\n */\n@Component({\n tag: 'bq-dialog',\n styleUrl: './scss/bq-dialog.scss',\n shadow: true,\n})\nexport class BqDialog {\n // Own Properties\n // ====================\n\n private dialogElem: HTMLDialogElement;\n private contentElem: HTMLElement;\n private footerElem: HTMLElement;\n private closeSlotElem: HTMLElement;\n private OPEN_CSS_CLASS = 'bq-dialog--open';\n\n // Reference to host HTML element\n // ===================================\n @Element() el!: HTMLBqDialogElement;\n\n // State() variables\n // Inlined decorator, alphabetical order\n // =======================================\n\n @State() private hasContent = false;\n @State() private hasFooter = false;\n\n // Public Property API\n // ========================\n\n /** Border radius of the dialog component */\n @Prop({ reflect: true }) border: TDialogBorderRadius = 'm';\n\n /** If true, the backdrop overlay won't be shown when the dialog opens */\n @Prop({ reflect: true }) disableBackdrop = false;\n\n /** If true, the dialog will not close when the [Esc] key is press */\n @Prop({ reflect: true }) disableCloseEscKeydown = false;\n\n /** If true, the dialog will not close when clicking on the backdrop overlay */\n @Prop({ reflect: true }) disableCloseClickOutside = false;\n\n /** The appearance of footer */\n @Prop({ reflect: true }) footerAppearance: TDialogFooterAppearance = 'standard';\n\n /** If true, it hides the close button */\n @Prop({ reflect: true }) hideCloseButton = false;\n\n /** If true, the dialog will be shown as open */\n @Prop({ reflect: true, mutable: true }) open: boolean = false;\n\n /** The size of the dialog */\n @Prop({ reflect: true, mutable: true }) size: TDialogSize = 'medium';\n\n // Prop lifecycle events\n // =======================\n @Watch('footerAppearance')\n @Watch('size')\n checkPropValues() {\n validatePropValue(DIALOG_SIZE, 'large', this.el, 'size');\n validatePropValue(DIALOG_FOOTER_APPEARANCE, 'standard', this.el, 'footerAppearance');\n }\n\n @Watch('open')\n async handleOpenChange() {\n if (this.open) {\n await this.handleOpen();\n return;\n }\n\n await this.handleClose();\n }\n\n // Events section\n // Requires JSDocs for public API documentation\n // ==============================================\n\n /** Callback handler emitted when the dialog has been canceled or dismissed */\n @Event() bqCancel!: EventEmitter<void>;\n\n /** Callback handler emitted when the dialog will close */\n @Event() bqClose!: EventEmitter<void>;\n\n /** Callback handler emitted when the dialog will open */\n @Event() bqOpen!: EventEmitter<void>;\n\n /** Callback handler emitted when the dialog finish opening */\n @Event() bqAfterOpen!: EventEmitter<void>;\n\n /** Callback handler emitted when the dialog finish closing */\n @Event() bqAfterClose!: EventEmitter<void>;\n\n // Component lifecycle events\n // Ordered by their natural call order\n // =====================================\n\n componentWillLoad() {\n this.checkPropValues();\n }\n\n componentDidLoad() {\n this.handleSlotChange();\n this.handleOpenChange();\n\n this.closeSlotElem = this.el.shadowRoot.querySelector('slot[name=\"button-close\"]');\n this.closeSlotElem?.addEventListener('click', () => this.hide());\n }\n\n disconnectedCallback() {\n this.closeSlotElem?.removeEventListener('click', () => this.hide());\n }\n\n // Listeners\n // ==============\n\n @Listen('mousedown', { target: 'window', capture: true })\n async handleMouseClick(event: MouseEvent) {\n if (!this.open) return;\n if (!this.dialogElem || this.disableCloseClickOutside) return;\n // Skip if the mouse button is not the main button\n if (event.button !== 0) return;\n\n const rect = this.dialogElem.getBoundingClientRect();\n if (\n event.clientY < rect.top ||\n event.clientY > rect.bottom ||\n event.clientX < rect.left ||\n event.clientX > rect.right\n ) {\n await this.cancel();\n }\n }\n\n @Listen('keydown', { target: 'window', capture: true })\n async handleKeyDown(ev: KeyboardEvent) {\n const isEscapeKey = ev.key === 'Escape' || ev.key === 'Esc';\n if (!this.open || !this.dialogElem || !isEscapeKey) return;\n\n if (this.disableCloseEscKeydown) {\n ev.preventDefault();\n return;\n }\n\n await this.cancel();\n }\n\n // Public methods API\n // These methods are exposed on the host element.\n // Always use two lines.\n // Public Methods must be async.\n // Requires JSDocs for public API documentation.\n // ===============================================\n\n /** Open the dialog */\n @Method()\n async show() {\n const ev = this.bqOpen.emit();\n if (ev.defaultPrevented) return;\n\n this.open = true;\n }\n\n /** Closes the dialog */\n @Method()\n async hide() {\n const ev = this.bqClose.emit();\n if (ev.defaultPrevented) return;\n\n this.open = false;\n }\n\n /** Dismiss or cancel the dialog */\n @Method()\n async cancel() {\n const ev = this.bqCancel.emit();\n if (ev.defaultPrevented) return;\n\n this.open = false;\n }\n\n // Local methods\n // Internal business logic.\n // These methods cannot be called from the host element.\n // =======================================================\n\n private handleClose = async () => {\n if (!this.dialogElem) return;\n\n await leave(this.dialogElem);\n this.dialogElem.close();\n // Emit bqAfterClose event after the dialog is closed\n this.handleTransitionEnd();\n };\n\n private handleOpen = async () => {\n if (!this.dialogElem) return;\n\n this.el.classList.add(this.OPEN_CSS_CLASS);\n // Show the dialog\n if (this.disableBackdrop) {\n this.dialogElem.show();\n } else {\n this.dialogElem.showModal();\n }\n await enter(this.dialogElem);\n // Emit bqAfterOpen event after the dialog is opened\n this.handleTransitionEnd();\n };\n\n private handleTransitionEnd = () => {\n if (this.open) {\n this.bqAfterOpen.emit();\n return;\n }\n\n this.bqAfterClose.emit();\n this.el.classList.remove(this.OPEN_CSS_CLASS);\n };\n\n private handleSlotChange = () => {\n this.hasContent = hasSlotContent(this.contentElem);\n this.hasFooter = hasSlotContent(this.footerElem, 'footer');\n };\n\n // render() function\n // Always the last one in the class.\n // ===================================\n\n render() {\n const style = {\n ...(this.border && { '--bq-dialog--border-radius': `var(--bq-radius--${this.border})` }),\n };\n\n return (\n <dialog\n style={style}\n class={{\n [`bq-dialog hidden ${this.size} m-auto focus-visible:outline-none`]: true,\n 'inset-be-[50%] inset-bs-[50%]': this.disableBackdrop,\n }}\n data-transition-enter=\"transition ease-in duration-300\"\n data-transition-enter-start=\"opacity-0 scale-90\"\n data-transition-enter-end=\"opacity-100 scale-100\"\n data-transition-leave=\"transition ease-out duration-300\"\n data-transition-leave-start=\"opacity-100 scale-100\"\n data-transition-leave-end=\"opacity-0 scale-90\"\n inert={this.open ? undefined : true}\n ref={(dialogElem) => (this.dialogElem = dialogElem)}\n aria-modal=\"true\"\n aria-labelledby=\"bq-dialog--title\"\n part=\"dialog\"\n >\n <main class=\"flex flex-col gap-[--bq-dialog--title-body-gap] overflow-hidden\" part=\"content\">\n <header class=\"bq-dialog--header\" part=\"header\">\n <div id=\"bq-dialog--title\" class=\"bq-dialog--title flex flex-1 items-center justify-between\" part=\"title\">\n <slot name=\"title\" />\n </div>\n <slot name=\"button-close\">\n {!this.hideCloseButton && (\n <bq-button class=\"bq-dialog--close\" appearance=\"text\" size=\"small\">\n <bq-icon class=\"cursor-pointer\" name=\"x\" role=\"img\" title=\"Close\" />\n </bq-button>\n )}\n </slot>\n </header>\n <div\n class={{\n '!hidden': !this.hasContent,\n 'overflow-y-auto p-i-[--bq-dialog--padding]': this.hasContent,\n '!p-be-[--bq-dialog--padding]': !this.hasFooter,\n }}\n ref={(mainElem) => (this.contentElem = mainElem)}\n part=\"body\"\n >\n <slot onSlotchange={this.handleSlotChange} />\n </div>\n </main>\n <footer\n class={{\n '!hidden': !this.hasFooter,\n 'bq-dialog--footer': this.hasFooter,\n 'bg-ui-alt !p-b-s': this.footerAppearance === 'highlight',\n }}\n ref={(footerElem) => (this.footerElem = footerElem)}\n part=\"footer\"\n >\n <slot name=\"footer\" onSlotchange={this.handleSlotChange} />\n </footer>\n </dialog>\n );\n }\n}\n"],"names":["validatePropValue","leave","enter","hasSlotContent","h"],"mappings":"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"}
1
+ {"version":3,"file":"bq-dialog.entry.cjs.js","sources":["../../packages/beeq/src/components/dialog/bq-dialog.types.ts","../../packages/beeq/src/components/dialog/scss/bq-dialog.scss?tag=bq-dialog&encapsulation=shadow","../../packages/beeq/src/components/dialog/bq-dialog.tsx"],"sourcesContent":["export const DIALOG_SIZE = ['small', 'medium', 'large'] as const;\nexport type TDialogSize = (typeof DIALOG_SIZE)[number];\n\nexport const DIALOG_FOOTER_APPEARANCE = ['standard', 'highlight'] as const;\nexport type TDialogFooterAppearance = (typeof DIALOG_FOOTER_APPEARANCE)[number];\n\nexport const DIALOG_BORDER_RADIUS = ['none', 'xs2', 'xs', 's', 'm', 'l', 'full'] as const;\nexport type TDialogBorderRadius = (typeof DIALOG_BORDER_RADIUS)[number];\n","/* -------------------------------------------------------------------------- */\n/* Dialog styles */\n/* -------------------------------------------------------------------------- */\n\n@import './bq-dialog.variables';\n\n:host {\n @apply invisible #{!important};\n}\n\n:host(.bq-dialog--open) {\n @apply visible #{!important};\n}\n\n/* --------------------------------- Dialog --------------------------------- */\n\n.bq-dialog {\n @apply fixed flex flex-col gap-[--bq-dialog--content-footer-gap] p-b-0 p-i-0;\n @apply bg-[--bq-dialog--background] text-[--bq-dialog--text-color] shadow-[shadow:--bq-dialog--box-shadow];\n @apply rounded-[--bq-dialog--border-radius] border-[length:--bq-dialog--border-width] border-[color:--bq-dialog--border-color];\n // If mobile resolution, dialog will be full width\n @apply is-[90vw];\n\n border-style: var(--bq-dialog--border-style);\n\n &.small {\n @apply sm:is-[--bq-dialog--width-small];\n }\n\n &.medium {\n @apply sm:is-[--bq-dialog--width-medium];\n }\n\n &.large {\n @apply sm:is-[--bq-dialog--width-large];\n }\n}\n\n/* ----------------------------- Dialog backdrop ---------------------------- */\n\n.bq-dialog::backdrop {\n @apply bg-[--bq-dialog--background-backdrop] opacity-0 transition-[opacity] duration-300 ease-in-out;\n}\n\n.bq-dialog[open]::backdrop {\n @apply opacity-60;\n}\n\n/* ------------------------------ Dialog header ----------------------------- */\n\n.bq-dialog--header {\n @apply sticky flex items-center gap-m p-b-[--bq-dialog--padding] p-be-0 p-i-[--bq-dialog--padding] inset-bs-0;\n}\n\n/* ------------------------------ Dialog footer ----------------------------- */\n\n.bq-dialog--footer {\n @apply sticky flex items-center justify-end gap-xs is-full p-b-[--bq-dialog--padding] p-bs-0 p-i-[--bq-dialog--padding] inset-bs-[100%];\n}\n\n/* --------------------------- Dialog close button -------------------------- */\n\n.bq-dialog--close {\n --bq-radius--m: theme(borderRadius.s);\n --bq-button--small-paddingX: theme(spacing.xs2);\n --bq-button--small-paddingY: theme(spacing.xs2);\n\n &::part(button) {\n @apply border-none;\n }\n}\n","import type { EventEmitter } from '@stencil/core';\nimport { Component, Element, Event, h, Listen, Method, Prop, State, Watch } from '@stencil/core';\n\nimport { enter, hasSlotContent, leave, validatePropValue } from '../../shared/utils';\nimport type { TDialogBorderRadius, TDialogFooterAppearance, TDialogSize } from './bq-dialog.types';\nimport { DIALOG_FOOTER_APPEARANCE, DIALOG_SIZE } from './bq-dialog.types';\n\n/**\n * The Dialog component is used to display additional content or prompt a user for action.\n * It provides a way to display additional information, options, or controls in a separate, non-obstructive interface element.\n *\n * @example How to use it\n * ```html\n * <bq-dialog footer-appearance=\"standard\" border=\"m\" size=\"medium\">\n * <h5 class=\"bold flex items-center gap-s\" slot=\"title\">\n * <bq-icon name=\"info\" size=\"30\" color=\"text--accent\" role=\"img\" title=\"Info\"></bq-icon>\n * Title\n * </h5>\n * <p>\n * Lorem Ipsum is simply dummy text of the printing and typesetting industry. Lorem Ipsum has been the industry's\n * standard dummy text ever since the 1500s, when an unknown printer took a galley of type and scrambled it to make a\n * type specimen book.\n * </p>\n * <div class=\"flex gap-xs\" slot=\"footer\">\n * <bq-button appearance=\"link\">Button</bq-button>\n * <bq-button variant=\"ghost\">Button</bq-button>\n * <bq-button variant=\"standard\" slot=\"footer\">Button</bq-button>\n * </div>\n * </bq-dialog>\n * ```\n *\n * @documentation https://www.beeq.design/3d466e231/p/15b6fc-dialog\n * @status stable\n *\n * @dependency bq-button\n * @dependency bq-icon\n *\n * @attr {\"none\" | \"xs2\" | \"xs\" | \"s\" | \"m\" | \"l\" | \"full\"} border - Border radius of the dialog component.\n * @attr {boolean} disable-backdrop - If true, the backdrop overlay won't be shown when the dialog opens.\n * @attr {boolean} disable-close-esc-keydown - If true, the dialog will not close when the [Esc] key is pressed.\n * @attr {boolean} disable-close-click-outside - If true, the dialog will not close when clicking on the backdrop overlay.\n * @attr {\"standard\" | \"highlight\"} footer-appearance - The appearance of the footer.\n * @attr {boolean} hide-close-button - If true, it hides the close button.\n * @attr {boolean} open - If true, the dialog will be shown as open.\n * @attr {\"small\" | \"medium\" | \"large\"} size - The size of the dialog.\n *\n * @method show - Open the dialog.\n * @method hide - Closes the dialog.\n * @method cancel - Dismiss or cancel the dialog.\n *\n * @event bqCancel - Callback handler emitted when the dialog has been canceled or dismissed.\n * @event bqClose - Callback handler emitted when the dialog will close.\n * @event bqOpen - Callback handler emitted when the dialog will open.\n * @event bqAfterOpen - Callback handler emitted when the dialog finish opening.\n * @event bqAfterClose - Callback handler emitted when the dialog finish closing.\n *\n * @slot title - The title content of the dialog.\n * @slot - The body content of the dialog.\n * @slot footer - The footer content of the dialog.\n * @slot button-close - The close button content of the dialog.\n *\n * @part body - The `<main>` that holds the dialog body content.\n * @part button-close - The button that closes the dialog on click.\n * @part content - The `<div>` container that holds the dialog title and body content.\n * @part dialog - The `<dialog>` wrapper container inside the shadow DOM.\n * @part footer - The `<footer>` that holds footer content.\n * @part header - The `<header>` that holds the icon, title, description and close button.\n * @part title - The `<div>` that holds the title content.\n *\n * @cssprop --bq-dialog--background - Dialog background color\n * @cssprop --bq-dialog--background-backdrop - Dialog backdrop background color\n * @cssprop --bq-dialog--box-shadow - Dialog box shadow\n * @cssprop --bq-dialog--border-color - Dialog border color\n * @cssprop --bq-dialog--border-style - Dialog border style\n * @cssprop --bq-dialog--border-width - Dialog border width\n * @cssprop --bq-dialog--border-radius - Dialog border radius\n * @cssprop --bq-dialog--padding - Dialog padding\n * @cssprop --bq-dialog--content-footer-gap - Dialog gap distance between content and footer elements\n * @cssprop --bq-dialog--title-body-gap - Dialog gap distance between title and body elements\n * @cssprop --bq-dialog--width-small - Dialog small width\n * @cssprop --bq-dialog--width-medium - Dialog medium width\n * @cssprop --bq-dialog--width-large - Dialog large width\n * @cssprop --bq-dialog-z-index - Dialog z-index applied when opened\n */\n@Component({\n tag: 'bq-dialog',\n styleUrl: './scss/bq-dialog.scss',\n shadow: true,\n})\nexport class BqDialog {\n // Own Properties\n // ====================\n\n private dialogElem: HTMLDialogElement;\n private contentElem: HTMLElement;\n private footerElem: HTMLElement;\n private closeSlotElem: HTMLElement;\n private OPEN_CSS_CLASS = 'bq-dialog--open';\n\n // Reference to host HTML element\n // ===================================\n @Element() el!: HTMLBqDialogElement;\n\n // State() variables\n // Inlined decorator, alphabetical order\n // =======================================\n\n @State() private hasContent = false;\n @State() private hasFooter = false;\n\n // Public Property API\n // ========================\n\n /** Border radius of the dialog component */\n @Prop({ reflect: true }) border: TDialogBorderRadius = 'm';\n\n /** If true, the backdrop overlay won't be shown when the dialog opens */\n @Prop({ reflect: true }) disableBackdrop = false;\n\n /** If true, the dialog will not close when the [Esc] key is press */\n @Prop({ reflect: true }) disableCloseEscKeydown = false;\n\n /** If true, the dialog will not close when clicking on the backdrop overlay */\n @Prop({ reflect: true }) disableCloseClickOutside = false;\n\n /** The appearance of footer */\n @Prop({ reflect: true }) footerAppearance: TDialogFooterAppearance = 'standard';\n\n /** If true, it hides the close button */\n @Prop({ reflect: true }) hideCloseButton = false;\n\n /** If true, the dialog will be shown as open */\n @Prop({ reflect: true, mutable: true }) open: boolean = false;\n\n /** The size of the dialog */\n @Prop({ reflect: true, mutable: true }) size: TDialogSize = 'medium';\n\n // Prop lifecycle events\n // =======================\n @Watch('footerAppearance')\n @Watch('size')\n checkPropValues() {\n validatePropValue(DIALOG_SIZE, 'large', this.el, 'size');\n validatePropValue(DIALOG_FOOTER_APPEARANCE, 'standard', this.el, 'footerAppearance');\n }\n\n @Watch('open')\n async handleOpenChange() {\n if (this.open) {\n await this.handleOpen();\n return;\n }\n\n await this.handleClose();\n }\n\n // Events section\n // Requires JSDocs for public API documentation\n // ==============================================\n\n /** Callback handler emitted when the dialog has been canceled or dismissed */\n @Event() bqCancel!: EventEmitter<void>;\n\n /** Callback handler emitted when the dialog will close */\n @Event() bqClose!: EventEmitter<void>;\n\n /** Callback handler emitted when the dialog will open */\n @Event() bqOpen!: EventEmitter<void>;\n\n /** Callback handler emitted when the dialog finish opening */\n @Event() bqAfterOpen!: EventEmitter<void>;\n\n /** Callback handler emitted when the dialog finish closing */\n @Event() bqAfterClose!: EventEmitter<void>;\n\n // Component lifecycle events\n // Ordered by their natural call order\n // =====================================\n\n componentWillLoad() {\n this.checkPropValues();\n }\n\n componentDidLoad() {\n this.handleSlotChange();\n this.handleOpenChange();\n\n this.closeSlotElem = this.el.shadowRoot.querySelector('slot[name=\"button-close\"]');\n this.closeSlotElem?.addEventListener('click', () => this.hide());\n }\n\n disconnectedCallback() {\n this.closeSlotElem?.removeEventListener('click', () => this.hide());\n }\n\n // Listeners\n // ==============\n\n @Listen('mousedown', { target: 'window', capture: true })\n async handleMouseClick(event: MouseEvent) {\n if (!this.open) return;\n if (!this.dialogElem || this.disableCloseClickOutside) return;\n // Skip if the mouse button is not the main button\n if (event.button !== 0) return;\n\n const rect = this.dialogElem.getBoundingClientRect();\n if (\n event.clientY < rect.top ||\n event.clientY > rect.bottom ||\n event.clientX < rect.left ||\n event.clientX > rect.right\n ) {\n await this.cancel();\n }\n }\n\n @Listen('keydown', { target: 'window', capture: true })\n async handleKeyDown(ev: KeyboardEvent) {\n const isEscapeKey = ev.key === 'Escape' || ev.key === 'Esc';\n if (!this.open || !this.dialogElem || !isEscapeKey) return;\n\n if (this.disableCloseEscKeydown) {\n ev.preventDefault();\n return;\n }\n\n await this.cancel();\n }\n\n // Public methods API\n // These methods are exposed on the host element.\n // Always use two lines.\n // Public Methods must be async.\n // Requires JSDocs for public API documentation.\n // ===============================================\n\n /** Open the dialog */\n @Method()\n async show() {\n const ev = this.bqOpen.emit();\n if (ev.defaultPrevented) return;\n\n this.open = true;\n }\n\n /** Closes the dialog */\n @Method()\n async hide() {\n const ev = this.bqClose.emit();\n if (ev.defaultPrevented) return;\n\n this.open = false;\n }\n\n /** Dismiss or cancel the dialog */\n @Method()\n async cancel() {\n const ev = this.bqCancel.emit();\n if (ev.defaultPrevented) return;\n\n this.open = false;\n }\n\n // Local methods\n // Internal business logic.\n // These methods cannot be called from the host element.\n // =======================================================\n\n private handleClose = async () => {\n if (!this.dialogElem) return;\n\n await leave(this.dialogElem);\n this.dialogElem.close();\n // Emit bqAfterClose event after the dialog is closed\n this.handleTransitionEnd();\n };\n\n private handleOpen = async () => {\n if (!this.dialogElem) return;\n\n this.el.classList.add(this.OPEN_CSS_CLASS);\n // Show the dialog\n if (this.disableBackdrop) {\n this.dialogElem.show();\n } else {\n this.dialogElem.showModal();\n }\n await enter(this.dialogElem);\n // Emit bqAfterOpen event after the dialog is opened\n this.handleTransitionEnd();\n };\n\n private handleTransitionEnd = () => {\n if (this.open) {\n this.bqAfterOpen.emit();\n return;\n }\n\n this.bqAfterClose.emit();\n this.el.classList.remove(this.OPEN_CSS_CLASS);\n };\n\n private handleSlotChange = () => {\n this.hasContent = hasSlotContent(this.contentElem);\n this.hasFooter = hasSlotContent(this.footerElem, 'footer');\n };\n\n // render() function\n // Always the last one in the class.\n // ===================================\n\n render() {\n const style = {\n ...(this.border && { '--bq-dialog--border-radius': `var(--bq-radius--${this.border})` }),\n };\n\n return (\n <dialog\n aria-labelledby=\"bq-dialog--title\"\n aria-modal=\"true\"\n class={{\n [`bq-dialog hidden ${this.size} m-auto focus-visible:outline-none`]: true,\n 'inset-be-[50%] inset-bs-[50%]': this.disableBackdrop,\n }}\n data-transition-enter=\"transition ease-in duration-300\"\n data-transition-enter-end=\"opacity-100 scale-100\"\n data-transition-enter-start=\"opacity-0 scale-90\"\n data-transition-leave=\"transition ease-out duration-300\"\n data-transition-leave-end=\"opacity-0 scale-90\"\n data-transition-leave-start=\"opacity-100 scale-100\"\n inert={this.open ? undefined : true}\n part=\"dialog\"\n ref={(dialogElem) => {\n this.dialogElem = dialogElem;\n }}\n style={style}\n >\n <main class=\"flex flex-col gap-[--bq-dialog--title-body-gap] overflow-hidden\" part=\"content\">\n <header class=\"bq-dialog--header\" part=\"header\">\n <div class=\"bq-dialog--title flex flex-1 items-center justify-between\" id=\"bq-dialog--title\" part=\"title\">\n <slot name=\"title\" />\n </div>\n <slot name=\"button-close\">\n {!this.hideCloseButton && (\n <bq-button appearance=\"text\" class=\"bq-dialog--close\" size=\"small\">\n <bq-icon class=\"cursor-pointer\" name=\"x\" title=\"Close\" />\n </bq-button>\n )}\n </slot>\n </header>\n <div\n class={{\n '!hidden': !this.hasContent,\n 'overflow-y-auto p-i-[--bq-dialog--padding]': this.hasContent,\n '!p-be-[--bq-dialog--padding]': !this.hasFooter,\n }}\n part=\"body\"\n ref={(mainElem) => {\n this.contentElem = mainElem;\n }}\n >\n <slot onSlotchange={this.handleSlotChange} />\n </div>\n </main>\n <footer\n class={{\n '!hidden': !this.hasFooter,\n 'bq-dialog--footer': this.hasFooter,\n '!p-b-s bg-ui-alt': this.footerAppearance === 'highlight',\n }}\n part=\"footer\"\n ref={(footerElem) => {\n this.footerElem = footerElem;\n }}\n >\n <slot name=\"footer\" onSlotchange={this.handleSlotChange} />\n </footer>\n </dialog>\n );\n }\n}\n"],"names":["validatePropValue","leave","enter","hasSlotContent","h"],"mappings":";;;;;;;;;;;AAAO,MAAM,WAAW,GAAG,CAAC,OAAO,EAAE,QAAQ,EAAE,OAAO,CAAU;AAGzD,MAAM,wBAAwB,GAAG,CAAC,UAAU,EAAE,WAAW,CAAU;;ACH1E,MAAM,WAAW,GAAG,kz0BAAkz0B;;MCyFzz0B,QAAQ,GAAA,MAAA;;;;;;;;;;;AAIX,IAAA,UAAU;AACV,IAAA,WAAW;AACX,IAAA,UAAU;AACV,IAAA,aAAa;IACb,cAAc,GAAG,iBAAiB;;;;;IAUzB,UAAU,GAAG,KAAK;IAClB,SAAS,GAAG,KAAK;;;;IAMT,MAAM,GAAwB,GAAG;;IAGjC,eAAe,GAAG,KAAK;;IAGvB,sBAAsB,GAAG,KAAK;;IAG9B,wBAAwB,GAAG,KAAK;;IAGhC,gBAAgB,GAA4B,UAAU;;IAGtD,eAAe,GAAG,KAAK;;IAGR,IAAI,GAAY,KAAK;;IAGrB,IAAI,GAAgB,QAAQ;;;IAMpE,eAAe,GAAA;QACbA,uBAAiB,CAAC,WAAW,EAAE,OAAO,EAAE,IAAI,CAAC,EAAE,EAAE,MAAM,CAAC;QACxDA,uBAAiB,CAAC,wBAAwB,EAAE,UAAU,EAAE,IAAI,CAAC,EAAE,EAAE,kBAAkB,CAAC;;AAItF,IAAA,MAAM,gBAAgB,GAAA;AACpB,QAAA,IAAI,IAAI,CAAC,IAAI,EAAE;AACb,YAAA,MAAM,IAAI,CAAC,UAAU,EAAE;YACvB;;AAGF,QAAA,MAAM,IAAI,CAAC,WAAW,EAAE;;;;;;AAQjB,IAAA,QAAQ;;AAGR,IAAA,OAAO;;AAGP,IAAA,MAAM;;AAGN,IAAA,WAAW;;AAGX,IAAA,YAAY;;;;IAMrB,iBAAiB,GAAA;QACf,IAAI,CAAC,eAAe,EAAE;;IAGxB,gBAAgB,GAAA;QACd,IAAI,CAAC,gBAAgB,EAAE;QACvB,IAAI,CAAC,gBAAgB,EAAE;AAEvB,QAAA,IAAI,CAAC,aAAa,GAAG,IAAI,CAAC,EAAE,CAAC,UAAU,CAAC,aAAa,CAAC,2BAA2B,CAAC;AAClF,QAAA,IAAI,CAAC,aAAa,EAAE,gBAAgB,CAAC,OAAO,EAAE,MAAM,IAAI,CAAC,IAAI,EAAE,CAAC;;IAGlE,oBAAoB,GAAA;AAClB,QAAA,IAAI,CAAC,aAAa,EAAE,mBAAmB,CAAC,OAAO,EAAE,MAAM,IAAI,CAAC,IAAI,EAAE,CAAC;;;;IAOrE,MAAM,gBAAgB,CAAC,KAAiB,EAAA;QACtC,IAAI,CAAC,IAAI,CAAC,IAAI;YAAE;AAChB,QAAA,IAAI,CAAC,IAAI,CAAC,UAAU,IAAI,IAAI,CAAC,wBAAwB;YAAE;;AAEvD,QAAA,IAAI,KAAK,CAAC,MAAM,KAAK,CAAC;YAAE;QAExB,MAAM,IAAI,GAAG,IAAI,CAAC,UAAU,CAAC,qBAAqB,EAAE;AACpD,QAAA,IACE,KAAK,CAAC,OAAO,GAAG,IAAI,CAAC,GAAG;AACxB,YAAA,KAAK,CAAC,OAAO,GAAG,IAAI,CAAC,MAAM;AAC3B,YAAA,KAAK,CAAC,OAAO,GAAG,IAAI,CAAC,IAAI;AACzB,YAAA,KAAK,CAAC,OAAO,GAAG,IAAI,CAAC,KAAK,EAC1B;AACA,YAAA,MAAM,IAAI,CAAC,MAAM,EAAE;;;IAKvB,MAAM,aAAa,CAAC,EAAiB,EAAA;AACnC,QAAA,MAAM,WAAW,GAAG,EAAE,CAAC,GAAG,KAAK,QAAQ,IAAI,EAAE,CAAC,GAAG,KAAK,KAAK;QAC3D,IAAI,CAAC,IAAI,CAAC,IAAI,IAAI,CAAC,IAAI,CAAC,UAAU,IAAI,CAAC,WAAW;YAAE;AAEpD,QAAA,IAAI,IAAI,CAAC,sBAAsB,EAAE;YAC/B,EAAE,CAAC,cAAc,EAAE;YACnB;;AAGF,QAAA,MAAM,IAAI,CAAC,MAAM,EAAE;;;;;;;;;AAYrB,IAAA,MAAM,IAAI,GAAA;QACR,MAAM,EAAE,GAAG,IAAI,CAAC,MAAM,CAAC,IAAI,EAAE;QAC7B,IAAI,EAAE,CAAC,gBAAgB;YAAE;AAEzB,QAAA,IAAI,CAAC,IAAI,GAAG,IAAI;;;AAKlB,IAAA,MAAM,IAAI,GAAA;QACR,MAAM,EAAE,GAAG,IAAI,CAAC,OAAO,CAAC,IAAI,EAAE;QAC9B,IAAI,EAAE,CAAC,gBAAgB;YAAE;AAEzB,QAAA,IAAI,CAAC,IAAI,GAAG,KAAK;;;AAKnB,IAAA,MAAM,MAAM,GAAA;QACV,MAAM,EAAE,GAAG,IAAI,CAAC,QAAQ,CAAC,IAAI,EAAE;QAC/B,IAAI,EAAE,CAAC,gBAAgB;YAAE;AAEzB,QAAA,IAAI,CAAC,IAAI,GAAG,KAAK;;;;;;IAQX,WAAW,GAAG,YAAW;QAC/B,IAAI,CAAC,IAAI,CAAC,UAAU;YAAE;AAEtB,QAAA,MAAMC,gBAAK,CAAC,IAAI,CAAC,UAAU,CAAC;AAC5B,QAAA,IAAI,CAAC,UAAU,CAAC,KAAK,EAAE;;QAEvB,IAAI,CAAC,mBAAmB,EAAE;AAC5B,KAAC;IAEO,UAAU,GAAG,YAAW;QAC9B,IAAI,CAAC,IAAI,CAAC,UAAU;YAAE;QAEtB,IAAI,CAAC,EAAE,CAAC,SAAS,CAAC,GAAG,CAAC,IAAI,CAAC,cAAc,CAAC;;AAE1C,QAAA,IAAI,IAAI,CAAC,eAAe,EAAE;AACxB,YAAA,IAAI,CAAC,UAAU,CAAC,IAAI,EAAE;;aACjB;AACL,YAAA,IAAI,CAAC,UAAU,CAAC,SAAS,EAAE;;AAE7B,QAAA,MAAMC,gBAAK,CAAC,IAAI,CAAC,UAAU,CAAC;;QAE5B,IAAI,CAAC,mBAAmB,EAAE;AAC5B,KAAC;IAEO,mBAAmB,GAAG,MAAK;AACjC,QAAA,IAAI,IAAI,CAAC,IAAI,EAAE;AACb,YAAA,IAAI,CAAC,WAAW,CAAC,IAAI,EAAE;YACvB;;AAGF,QAAA,IAAI,CAAC,YAAY,CAAC,IAAI,EAAE;QACxB,IAAI,CAAC,EAAE,CAAC,SAAS,CAAC,MAAM,CAAC,IAAI,CAAC,cAAc,CAAC;AAC/C,KAAC;IAEO,gBAAgB,GAAG,MAAK;QAC9B,IAAI,CAAC,UAAU,GAAGC,mBAAc,CAAC,IAAI,CAAC,WAAW,CAAC;QAClD,IAAI,CAAC,SAAS,GAAGA,mBAAc,CAAC,IAAI,CAAC,UAAU,EAAE,QAAQ,CAAC;AAC5D,KAAC;;;;IAMD,MAAM,GAAA;AACJ,QAAA,MAAM,KAAK,GAAG;AACZ,YAAA,IAAI,IAAI,CAAC,MAAM,IAAI,EAAE,4BAA4B,EAAE,CAAA,iBAAA,EAAoB,IAAI,CAAC,MAAM,CAAA,CAAA,CAAG,EAAE,CAAC;SACzF;AAED,QAAA,QACEC,OACkB,CAAA,QAAA,EAAA,EAAA,GAAA,EAAA,0CAAA,EAAA,iBAAA,EAAA,kBAAkB,gBACvB,MAAM,EACjB,KAAK,EAAE;AACL,gBAAA,CAAC,oBAAoB,IAAI,CAAC,IAAI,CAAoC,kCAAA,CAAA,GAAG,IAAI;gBACzE,+BAA+B,EAAE,IAAI,CAAC,eAAe;aACtD,EAAA,uBAAA,EACqB,iCAAiC,EAAA,2BAAA,EAC7B,uBAAuB,EAAA,6BAAA,EACrB,oBAAoB,EAC1B,uBAAA,EAAA,kCAAkC,EAC9B,2BAAA,EAAA,oBAAoB,iCAClB,uBAAuB,EACnD,KAAK,EAAE,IAAI,CAAC,IAAI,GAAG,SAAS,GAAG,IAAI,EACnC,IAAI,EAAC,QAAQ,EACb,GAAG,EAAE,CAAC,UAAU,KAAI;AAClB,gBAAA,IAAI,CAAC,UAAU,GAAG,UAAU;AAC9B,aAAC,EACD,KAAK,EAAE,KAAK,EAAA,EAEZA,OAAA,CAAA,MAAA,EAAA,EAAA,GAAA,EAAA,0CAAA,EAAM,KAAK,EAAC,iEAAiE,EAAC,IAAI,EAAC,SAAS,EAAA,EAC1FA,OAAA,CAAA,QAAA,EAAA,EAAA,GAAA,EAAA,0CAAA,EAAQ,KAAK,EAAC,mBAAmB,EAAC,IAAI,EAAC,QAAQ,EAAA,EAC7CA,OAAK,CAAA,KAAA,EAAA,EAAA,GAAA,EAAA,0CAAA,EAAA,KAAK,EAAC,2DAA2D,EAAC,EAAE,EAAC,kBAAkB,EAAC,IAAI,EAAC,OAAO,EAAA,EACvGA,OAAA,CAAA,MAAA,EAAA,EAAA,GAAA,EAAA,0CAAA,EAAM,IAAI,EAAC,OAAO,EAAA,CAAG,CACjB,EACNA,OAAM,CAAA,MAAA,EAAA,EAAA,GAAA,EAAA,0CAAA,EAAA,IAAI,EAAC,cAAc,EAAA,EACtB,CAAC,IAAI,CAAC,eAAe,KACpBA,wEAAW,UAAU,EAAC,MAAM,EAAC,KAAK,EAAC,kBAAkB,EAAC,IAAI,EAAC,OAAO,EAAA,EAChEA,OAAA,CAAA,SAAA,EAAA,EAAA,GAAA,EAAA,0CAAA,EAAS,KAAK,EAAC,gBAAgB,EAAC,IAAI,EAAC,GAAG,EAAC,KAAK,EAAC,OAAO,EAAA,CAAG,CAC/C,CACb,CACI,CACA,EACTA,OAAA,CAAA,KAAA,EAAA,EAAA,GAAA,EAAA,0CAAA,EACE,KAAK,EAAE;AACL,gBAAA,SAAS,EAAE,CAAC,IAAI,CAAC,UAAU;gBAC3B,4CAA4C,EAAE,IAAI,CAAC,UAAU;AAC7D,gBAAA,8BAA8B,EAAE,CAAC,IAAI,CAAC,SAAS;aAChD,EACD,IAAI,EAAC,MAAM,EACX,GAAG,EAAE,CAAC,QAAQ,KAAI;AAChB,gBAAA,IAAI,CAAC,WAAW,GAAG,QAAQ;AAC7B,aAAC,EAAA,EAEDA,OAAA,CAAA,MAAA,EAAA,EAAA,GAAA,EAAA,0CAAA,EAAM,YAAY,EAAE,IAAI,CAAC,gBAAgB,EAAA,CAAI,CACzC,CACD,EACPA,OAAA,CAAA,QAAA,EAAA,EAAA,GAAA,EAAA,0CAAA,EACE,KAAK,EAAE;AACL,gBAAA,SAAS,EAAE,CAAC,IAAI,CAAC,SAAS;gBAC1B,mBAAmB,EAAE,IAAI,CAAC,SAAS;AACnC,gBAAA,kBAAkB,EAAE,IAAI,CAAC,gBAAgB,KAAK,WAAW;aAC1D,EACD,IAAI,EAAC,QAAQ,EACb,GAAG,EAAE,CAAC,UAAU,KAAI;AAClB,gBAAA,IAAI,CAAC,UAAU,GAAG,UAAU;aAC7B,EAAA,EAEDA,OAAA,CAAA,MAAA,EAAA,EAAA,GAAA,EAAA,0CAAA,EAAM,IAAI,EAAC,QAAQ,EAAC,YAAY,EAAE,IAAI,CAAC,gBAAgB,EAAA,CAAI,CACpD,CACF;;;;;;;;;;;;"}
@@ -4,7 +4,7 @@
4
4
  */
5
5
  'use strict';
6
6
 
7
- var index = require('./index-CLoLF-_B.js');
7
+ var index = require('./index-g8MkV15i.js');
8
8
  var cssVariables = require('./cssVariables-exM7Oz37.js');
9
9
  var isNil = require('./isNil-CFhdj92S.js');
10
10
  var props = require('./props-DzFXZXSF.js');
@@ -119,18 +119,20 @@ const BqDivider = class {
119
119
  ...(this.strokeThickness && { '--bq-divider--stroke-thickness': `${this.strokeThickness}px` }),
120
120
  ...(!isNil.isNil(this.strokeBasis) && { '--bq-divider--stroke-basis': `${this.strokeBasis}px` }),
121
121
  };
122
- return (index.h(index.Host, { key: '4103d484b5ccb459e9c6cbbb2bdfa2e2f6b4828c', style: styles }, index.h("div", { key: 'e6a16846974474593ef290f77ad624d2ee88baa5', class: {
122
+ return (index.h(index.Host, { key: '4103d484b5ccb459e9c6cbbb2bdfa2e2f6b4828c', style: styles }, index.h("div", { key: '873d97ed59ed11212daf79e8fdadbf90efd1db58', class: {
123
123
  'bq-divider': true,
124
124
  [`bq-divider--${this.orientation}`]: true,
125
125
  [`bq-divider--title__${this.titleAlignment}`]: true,
126
126
  'gap-0': !this.hasTitle,
127
- }, part: "base", ref: (div) => (this.titleElem = div), role: "separator", "aria-orientation": this.orientation }, index.h("svg", { key: '3a992a344d4c4d55f3b4d3a3af808b6e670803fe', class: {
127
+ }, part: "base", ref: (div) => {
128
+ this.titleElem = div;
129
+ } }, index.h("svg", { key: '993928654e09cef10c7c1e1ebb5c0cb8da67bc95', "aria-hidden": "true", class: {
128
130
  'bq-divider--stroke start': true,
129
131
  '!hidden': this.strokeBasis === 0 && this.titleAlignment === 'start',
130
- }, part: "dash-start" }, index.h("line", { key: 'c9e9aa87681fdc83f85a56f6a7b9a34386edc0b8', ...this.strokeAttributes, part: "dash-start-line" })), index.h("slot", { key: '62a6a210165fdc3354f15a7e6acc7c8914b7258a', onSlotchange: this.handleSlotChange }), index.h("svg", { key: 'c9e2a0f3b0b4421f19dc124036297f549e3a9623', class: {
132
+ }, part: "dash-start" }, index.h("line", { key: '36ad986e0b9328e1fb903e7b844783c10a29d464', ...this.strokeAttributes, part: "dash-start-line" })), index.h("slot", { key: 'e1cc1c809970e7694895a6d85338b43e697fd658', onSlotchange: this.handleSlotChange }), index.h("svg", { key: '1cb61ca3051f40b19dc3003c3d24b882416961df', "aria-hidden": "true", class: {
131
133
  'bq-divider--stroke end': true,
132
134
  '!hidden': !this.hasTitle || (this.strokeBasis === 0 && this.titleAlignment === 'end'),
133
- }, part: "dash-end" }, index.h("line", { key: 'af46637eda909675b0363d37f699bbfd78ef3e1c', ...this.strokeAttributes, part: "dash-end-line" })))));
135
+ }, part: "dash-end" }, index.h("line", { key: '063e4c1eb33d0e7c55fa78cb2521ac89353bc050', ...this.strokeAttributes, part: "dash-end-line" })))));
134
136
  }
135
137
  static get watchers() { return {
136
138
  "orientation": ["checkPropValues"],
@@ -142,5 +144,3 @@ BqDivider.style = bqDividerCss;
142
144
 
143
145
  exports.bq_divider = BqDivider;
144
146
  //# sourceMappingURL=bq-divider.entry.cjs.js.map
145
-
146
- //# sourceMappingURL=bq-divider.cjs.entry.js.map
@@ -1 +1 @@
1
- {"version":3,"file":"bq-divider.entry.cjs.js","sources":["../../packages/beeq/src/components/divider/bq-divider.types.ts","../../packages/beeq/src/components/divider/scss/bq-divider.scss?tag=bq-divider&encapsulation=shadow","../../packages/beeq/src/components/divider/bq-divider.tsx"],"sourcesContent":["export const DIVIDER_ORIENTATION = ['horizontal', 'vertical'] as const;\nexport type TDividerOrientation = (typeof DIVIDER_ORIENTATION)[number];\n\nexport const DIVIDER_ORIENTATION_ENUM = {\n HORIZONTAL: 'horizontal',\n VERTICAL: 'vertical',\n} as const;\n\nexport const DIVIDER_TITLE_ALIGNMENT = ['start', 'middle', 'end'] as const;\nexport type TDividerTitleAlignment = (typeof DIVIDER_TITLE_ALIGNMENT)[number];\n\nexport const DIVIDER_STROKE_LINECAP = ['square', 'round', 'butt'] as const;\nexport type TDividerStrokeLinecap = (typeof DIVIDER_STROKE_LINECAP)[number];\n","/* -------------------------------------------------------------------------- */\n/* Button styles */\n/* -------------------------------------------------------------------------- */\n\n@import './bq-divider.variables';\n\n:host {\n @apply block is-full;\n}\n\n:host([orientation='vertical']) {\n @apply flex bs-full;\n}\n\n.bq-divider {\n @apply flex items-center gap-[--bq-divider--title-marginX];\n}\n\n.bq-divider--stroke {\n @apply flex-grow stroke-[color:--bq-divider--stroke-color] bs-[--bq-divider--stroke-thickness] is-full;\n\n &.end {\n @apply rotate-180;\n }\n}\n\n.bq-divider--title__start .bq-divider--stroke.start,\n.bq-divider--title__end .bq-divider--stroke.end {\n @apply flex-grow-0 basis-[--bq-divider--stroke-basis];\n}\n\n.bq-divider--vertical {\n @apply flex-col items-center gap-[--bq-divider--title-marginX] is-full;\n\n .bq-divider--stroke {\n @apply bs-full is-[--bq-divider--stroke-thickness];\n }\n}\n","import { Component, Element, h, Host, Prop, State, Watch } from '@stencil/core';\n\nimport {\n DIVIDER_ORIENTATION,\n DIVIDER_ORIENTATION_ENUM,\n DIVIDER_STROKE_LINECAP,\n DIVIDER_TITLE_ALIGNMENT,\n} from './bq-divider.types';\nimport type { TDividerOrientation, TDividerStrokeLinecap, TDividerTitleAlignment } from './bq-divider.types';\nimport { getColorCSSVariable, getTextContent, hasSlotContent, isNil, validatePropValue } from '../../shared/utils';\n\n/**\n * The Divider component is used to visually separate content in a layout.\n *\n * @example How to use it\n * ```html\n * <bq-divider orientation=\"horizontal\" stroke-color=\"stroke--primary\" title-alignment=\"middle\">\n * <span slot=\"title\">Divider Title</span>\n * </bq-divider>\n * ```\n *\n * @documentation https://www.beeq.design/3d466e231/p/53dfe6-divider\n * @status stable\n *\n * @attr {boolean} dashed - If true, the divider has a dashed pattern.\n * @attr {\"horizontal\" | \"vertical\"} orientation - The default orientation of the divider.\n * @attr {string} stroke-color - Set the stroke color of the divider. The value should be a valid value of the palette color.\n * @attr {\"start\" | \"middle\" | \"end\"} title-alignment - Set the alignment of the title on the main axis of the divider (horizontal / vertical).\n * @attr {number} stroke-dash-width - Set the width of each dash of the divider's stroke. This is applicable when the stroke is dashed.\n * @attr {number} stroke-dash-gap - Set the gap of the divider's stroke. This is applicable when the stroke is dashed.\n * @attr {number} stroke-thickness - Set the thickness of the divider's stroke. Value expressed in px.\n * @attr {number} stroke-basis - Set the min width of the divider's stroke when text is not centered. Value expressed in px.\n * @attr {\"square\" | \"round\" | \"butt\"} stroke-linecap - Set the line of the divider's stroke. This is applicable when the stroke is dashed.\n *\n * @slot - The title content of the divider.\n *\n * @part base - The component's internal wrapper.\n * @part dash-start - The component's internal svg wrapper for the start line of the divider's stroke.\n * @part dash-end - The component's internal svg wrapper for the end line of the divider's stroke.\n * @part dash-start-line - The component's internal line component of the divider's stroke.\n * @part dash-end-line - The component's internal line component of the divider's stroke.\n *\n * @cssprop --bq-divider--color - Divider color\n * @cssprop --bq-divider--title-marginX - Divider space between title and delimiters\n */\n@Component({\n tag: 'bq-divider',\n styleUrl: './scss/bq-divider.scss',\n shadow: true,\n})\nexport class BqDivider {\n // Own Properties\n // ====================\n\n private titleElem: HTMLDivElement;\n\n // Reference to host HTML element\n // ===================================\n\n @Element() el!: HTMLBqDividerElement;\n\n // State() variables\n // Inlined decorator, alphabetical order\n // =======================================\n\n @State() private hasTitle: boolean;\n\n // Public Property API\n // ========================\n\n /** If true, the divider has a dashed pattern */\n @Prop() dashed = false;\n\n /** The default orientation of the divider */\n @Prop({ reflect: true }) orientation: TDividerOrientation = 'horizontal';\n\n /** Set the stroke color of the divider. The value should be a valid value of the palette color */\n @Prop({ reflect: true }) strokeColor?: string = 'stroke--primary';\n\n /** Set the alignment of the title on the main axis of the divider (horizontal / vertical) */\n @Prop({ reflect: true }) titleAlignment?: TDividerTitleAlignment = 'middle';\n\n /** Set the width of each dash of the divider's stroke. This is applicable when the stroke is dashed */\n @Prop({ reflect: true }) strokeDashWidth?: number = 12;\n\n /** Set the gap of the divider's stroke. This is applicable when the stroke is dashed */\n @Prop({ reflect: true }) strokeDashGap?: number = 7;\n\n /** Set the thickness of the divider's stroke. Value expressed in px*/\n @Prop({ reflect: true }) strokeThickness?: number = 1;\n\n /** Set the min width of the divider's stroke when text is not centered. Value expressed in px */\n @Prop({ reflect: true }) strokeBasis?: number = 0;\n\n /** Set the line of the divider's stroke. This is applicable when the stroke is dashed */\n @Prop({ reflect: true }) strokeLinecap?: TDividerStrokeLinecap = 'butt';\n\n // Prop lifecycle events\n // =======================\n\n @Watch('orientation')\n @Watch('titleAlignment')\n @Watch('strokeLinecap')\n checkPropValues() {\n validatePropValue(DIVIDER_ORIENTATION, 'horizontal', this.el, 'orientation');\n validatePropValue(DIVIDER_TITLE_ALIGNMENT, 'middle', this.el, 'titleAlignment');\n validatePropValue(DIVIDER_STROKE_LINECAP, 'butt', this.el, 'strokeLinecap');\n }\n\n // Events section\n // Requires JSDocs for public API documentation\n // ==============================================\n\n // Component lifecycle events\n // Ordered by their natural call order\n // =====================================\n\n connectedCallback() {\n this.checkPropValues();\n }\n\n componentWillLoad() {\n this.checkPropValues();\n }\n\n componentDidLoad() {\n this.handleSlotChange();\n }\n\n // Listeners\n // ==============\n\n // Public methods API\n // These methods are exposed on the host element.\n // Always use two lines.\n // Public Methods must be async.\n // Requires JSDocs for public API documentation.\n // ===============================================\n\n // Local methods\n // Internal business logic.\n // These methods cannot be called from the host element.\n // =======================================================\n\n private handleSlotChange = () => {\n this.hasTitle = hasSlotContent(this.titleElem) || !!getTextContent(this.titleElem.querySelector('slot'));\n };\n\n private get strokeAttributes() {\n return {\n ...this.strokeDrawPositions,\n ...(this.dashed && { 'stroke-dasharray': this.strokeDasharray }),\n 'stroke-linecap': this.strokeLinecap,\n 'stroke-width': this.strokeThickness,\n };\n }\n\n private get strokeDrawPositions() {\n const drawOffset = this.strokeThickness / 2;\n const strokeDrawPositions = {\n [DIVIDER_ORIENTATION_ENUM.HORIZONTAL]: { x1: drawOffset, x2: '100%', y1: drawOffset, y2: drawOffset },\n [DIVIDER_ORIENTATION_ENUM.VERTICAL]: { x1: drawOffset, x2: drawOffset, y1: drawOffset, y2: '100%' },\n };\n const orientationMap = new Map(Object.entries(strokeDrawPositions));\n\n return orientationMap.get(this.orientation);\n }\n\n private get strokeDasharray() {\n return `${this.strokeDashWidth}, ${this.strokeDashGap}`;\n }\n\n // render() function\n // Always the last one in the class.\n // ===================================\n\n render() {\n const styles = {\n ...(this.strokeColor && { '--bq-divider--stroke-color': getColorCSSVariable(this.strokeColor) }),\n ...(this.strokeThickness && { '--bq-divider--stroke-thickness': `${this.strokeThickness}px` }),\n ...(!isNil(this.strokeBasis) && { '--bq-divider--stroke-basis': `${this.strokeBasis}px` }),\n };\n\n return (\n <Host style={styles}>\n <div\n class={{\n 'bq-divider': true,\n [`bq-divider--${this.orientation}`]: true,\n [`bq-divider--title__${this.titleAlignment}`]: true,\n 'gap-0': !this.hasTitle,\n }}\n part=\"base\"\n ref={(div) => (this.titleElem = div)}\n role=\"separator\"\n aria-orientation={this.orientation}\n >\n <svg\n class={{\n 'bq-divider--stroke start': true,\n '!hidden': this.strokeBasis === 0 && this.titleAlignment === 'start',\n }}\n part=\"dash-start\"\n >\n <line {...this.strokeAttributes} part=\"dash-start-line\" />\n </svg>\n <slot onSlotchange={this.handleSlotChange} />\n <svg\n class={{\n 'bq-divider--stroke end': true,\n '!hidden': !this.hasTitle || (this.strokeBasis === 0 && this.titleAlignment === 'end'),\n }}\n part=\"dash-end\"\n >\n <line {...this.strokeAttributes} part=\"dash-end-line\" />\n </svg>\n </div>\n </Host>\n );\n }\n}\n"],"names":["validatePropValue","hasSlotContent","getTextContent","getColorCSSVariable","isNil","h","Host"],"mappings":"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"}
1
+ {"version":3,"file":"bq-divider.entry.cjs.js","sources":["../../packages/beeq/src/components/divider/bq-divider.types.ts","../../packages/beeq/src/components/divider/scss/bq-divider.scss?tag=bq-divider&encapsulation=shadow","../../packages/beeq/src/components/divider/bq-divider.tsx"],"sourcesContent":["export const DIVIDER_ORIENTATION = ['horizontal', 'vertical'] as const;\nexport type TDividerOrientation = (typeof DIVIDER_ORIENTATION)[number];\n\nexport const DIVIDER_ORIENTATION_ENUM = {\n HORIZONTAL: 'horizontal',\n VERTICAL: 'vertical',\n} as const;\n\nexport const DIVIDER_TITLE_ALIGNMENT = ['start', 'middle', 'end'] as const;\nexport type TDividerTitleAlignment = (typeof DIVIDER_TITLE_ALIGNMENT)[number];\n\nexport const DIVIDER_STROKE_LINECAP = ['square', 'round', 'butt'] as const;\nexport type TDividerStrokeLinecap = (typeof DIVIDER_STROKE_LINECAP)[number];\n","/* -------------------------------------------------------------------------- */\n/* Button styles */\n/* -------------------------------------------------------------------------- */\n\n@import './bq-divider.variables';\n\n:host {\n @apply block is-full;\n}\n\n:host([orientation='vertical']) {\n @apply flex bs-full;\n}\n\n.bq-divider {\n @apply flex items-center gap-[--bq-divider--title-marginX];\n}\n\n.bq-divider--stroke {\n @apply flex-grow stroke-[color:--bq-divider--stroke-color] bs-[--bq-divider--stroke-thickness] is-full;\n\n &.end {\n @apply rotate-180;\n }\n}\n\n.bq-divider--title__start .bq-divider--stroke.start,\n.bq-divider--title__end .bq-divider--stroke.end {\n @apply flex-grow-0 basis-[--bq-divider--stroke-basis];\n}\n\n.bq-divider--vertical {\n @apply flex-col items-center gap-[--bq-divider--title-marginX] is-full;\n\n .bq-divider--stroke {\n @apply bs-full is-[--bq-divider--stroke-thickness];\n }\n}\n","import { Component, Element, Host, h, Prop, State, Watch } from '@stencil/core';\n\nimport { getColorCSSVariable, getTextContent, hasSlotContent, isNil, validatePropValue } from '../../shared/utils';\nimport type { TDividerOrientation, TDividerStrokeLinecap, TDividerTitleAlignment } from './bq-divider.types';\nimport {\n DIVIDER_ORIENTATION,\n DIVIDER_ORIENTATION_ENUM,\n DIVIDER_STROKE_LINECAP,\n DIVIDER_TITLE_ALIGNMENT,\n} from './bq-divider.types';\n\n/**\n * The Divider component is used to visually separate content in a layout.\n *\n * @example How to use it\n * ```html\n * <bq-divider orientation=\"horizontal\" stroke-color=\"stroke--primary\" title-alignment=\"middle\">\n * <span slot=\"title\">Divider Title</span>\n * </bq-divider>\n * ```\n *\n * @documentation https://www.beeq.design/3d466e231/p/53dfe6-divider\n * @status stable\n *\n * @attr {boolean} dashed - If true, the divider has a dashed pattern.\n * @attr {\"horizontal\" | \"vertical\"} orientation - The default orientation of the divider.\n * @attr {string} stroke-color - Set the stroke color of the divider. The value should be a valid value of the palette color.\n * @attr {\"start\" | \"middle\" | \"end\"} title-alignment - Set the alignment of the title on the main axis of the divider (horizontal / vertical).\n * @attr {number} stroke-dash-width - Set the width of each dash of the divider's stroke. This is applicable when the stroke is dashed.\n * @attr {number} stroke-dash-gap - Set the gap of the divider's stroke. This is applicable when the stroke is dashed.\n * @attr {number} stroke-thickness - Set the thickness of the divider's stroke. Value expressed in px.\n * @attr {number} stroke-basis - Set the min width of the divider's stroke when text is not centered. Value expressed in px.\n * @attr {\"square\" | \"round\" | \"butt\"} stroke-linecap - Set the line of the divider's stroke. This is applicable when the stroke is dashed.\n *\n * @slot - The title content of the divider.\n *\n * @part base - The component's internal wrapper.\n * @part dash-start - The component's internal svg wrapper for the start line of the divider's stroke.\n * @part dash-end - The component's internal svg wrapper for the end line of the divider's stroke.\n * @part dash-start-line - The component's internal line component of the divider's stroke.\n * @part dash-end-line - The component's internal line component of the divider's stroke.\n *\n * @cssprop --bq-divider--color - Divider color\n * @cssprop --bq-divider--title-marginX - Divider space between title and delimiters\n */\n@Component({\n tag: 'bq-divider',\n styleUrl: './scss/bq-divider.scss',\n shadow: true,\n})\nexport class BqDivider {\n // Own Properties\n // ====================\n\n private titleElem: HTMLDivElement;\n\n // Reference to host HTML element\n // ===================================\n\n @Element() el!: HTMLBqDividerElement;\n\n // State() variables\n // Inlined decorator, alphabetical order\n // =======================================\n\n @State() private hasTitle: boolean;\n\n // Public Property API\n // ========================\n\n /** If true, the divider has a dashed pattern */\n @Prop() dashed = false;\n\n /** The default orientation of the divider */\n @Prop({ reflect: true }) orientation: TDividerOrientation = 'horizontal';\n\n /** Set the stroke color of the divider. The value should be a valid value of the palette color */\n @Prop({ reflect: true }) strokeColor?: string = 'stroke--primary';\n\n /** Set the alignment of the title on the main axis of the divider (horizontal / vertical) */\n @Prop({ reflect: true }) titleAlignment?: TDividerTitleAlignment = 'middle';\n\n /** Set the width of each dash of the divider's stroke. This is applicable when the stroke is dashed */\n @Prop({ reflect: true }) strokeDashWidth?: number = 12;\n\n /** Set the gap of the divider's stroke. This is applicable when the stroke is dashed */\n @Prop({ reflect: true }) strokeDashGap?: number = 7;\n\n /** Set the thickness of the divider's stroke. Value expressed in px*/\n @Prop({ reflect: true }) strokeThickness?: number = 1;\n\n /** Set the min width of the divider's stroke when text is not centered. Value expressed in px */\n @Prop({ reflect: true }) strokeBasis?: number = 0;\n\n /** Set the line of the divider's stroke. This is applicable when the stroke is dashed */\n @Prop({ reflect: true }) strokeLinecap?: TDividerStrokeLinecap = 'butt';\n\n // Prop lifecycle events\n // =======================\n\n @Watch('orientation')\n @Watch('titleAlignment')\n @Watch('strokeLinecap')\n checkPropValues() {\n validatePropValue(DIVIDER_ORIENTATION, 'horizontal', this.el, 'orientation');\n validatePropValue(DIVIDER_TITLE_ALIGNMENT, 'middle', this.el, 'titleAlignment');\n validatePropValue(DIVIDER_STROKE_LINECAP, 'butt', this.el, 'strokeLinecap');\n }\n\n // Events section\n // Requires JSDocs for public API documentation\n // ==============================================\n\n // Component lifecycle events\n // Ordered by their natural call order\n // =====================================\n\n connectedCallback() {\n this.checkPropValues();\n }\n\n componentWillLoad() {\n this.checkPropValues();\n }\n\n componentDidLoad() {\n this.handleSlotChange();\n }\n\n // Listeners\n // ==============\n\n // Public methods API\n // These methods are exposed on the host element.\n // Always use two lines.\n // Public Methods must be async.\n // Requires JSDocs for public API documentation.\n // ===============================================\n\n // Local methods\n // Internal business logic.\n // These methods cannot be called from the host element.\n // =======================================================\n\n private handleSlotChange = () => {\n this.hasTitle = hasSlotContent(this.titleElem) || !!getTextContent(this.titleElem.querySelector('slot'));\n };\n\n private get strokeAttributes() {\n return {\n ...this.strokeDrawPositions,\n ...(this.dashed && { 'stroke-dasharray': this.strokeDasharray }),\n 'stroke-linecap': this.strokeLinecap,\n 'stroke-width': this.strokeThickness,\n };\n }\n\n private get strokeDrawPositions() {\n const drawOffset = this.strokeThickness / 2;\n const strokeDrawPositions = {\n [DIVIDER_ORIENTATION_ENUM.HORIZONTAL]: { x1: drawOffset, x2: '100%', y1: drawOffset, y2: drawOffset },\n [DIVIDER_ORIENTATION_ENUM.VERTICAL]: { x1: drawOffset, x2: drawOffset, y1: drawOffset, y2: '100%' },\n };\n const orientationMap = new Map(Object.entries(strokeDrawPositions));\n\n return orientationMap.get(this.orientation);\n }\n\n private get strokeDasharray() {\n return `${this.strokeDashWidth}, ${this.strokeDashGap}`;\n }\n\n // render() function\n // Always the last one in the class.\n // ===================================\n\n render() {\n const styles = {\n ...(this.strokeColor && { '--bq-divider--stroke-color': getColorCSSVariable(this.strokeColor) }),\n ...(this.strokeThickness && { '--bq-divider--stroke-thickness': `${this.strokeThickness}px` }),\n ...(!isNil(this.strokeBasis) && { '--bq-divider--stroke-basis': `${this.strokeBasis}px` }),\n };\n\n return (\n <Host style={styles}>\n <div\n class={{\n 'bq-divider': true,\n [`bq-divider--${this.orientation}`]: true,\n [`bq-divider--title__${this.titleAlignment}`]: true,\n 'gap-0': !this.hasTitle,\n }}\n part=\"base\"\n ref={(div) => {\n this.titleElem = div;\n }}\n >\n <svg\n aria-hidden=\"true\"\n class={{\n 'bq-divider--stroke start': true,\n '!hidden': this.strokeBasis === 0 && this.titleAlignment === 'start',\n }}\n part=\"dash-start\"\n >\n <line {...this.strokeAttributes} part=\"dash-start-line\" />\n </svg>\n <slot onSlotchange={this.handleSlotChange} />\n <svg\n aria-hidden=\"true\"\n class={{\n 'bq-divider--stroke end': true,\n '!hidden': !this.hasTitle || (this.strokeBasis === 0 && this.titleAlignment === 'end'),\n }}\n part=\"dash-end\"\n >\n <line {...this.strokeAttributes} part=\"dash-end-line\" />\n </svg>\n </div>\n </Host>\n );\n }\n}\n"],"names":["validatePropValue","hasSlotContent","getTextContent","getColorCSSVariable","isNil","h","Host"],"mappings":"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"}
@@ -4,7 +4,7 @@
4
4
  */
5
5
  'use strict';
6
6
 
7
- var index = require('./index-CLoLF-_B.js');
7
+ var index = require('./index-g8MkV15i.js');
8
8
  var isNil = require('./isNil-CFhdj92S.js');
9
9
  var props = require('./props-DzFXZXSF.js');
10
10
  var slot = require('./slot-DKWrtk4b.js');
@@ -194,16 +194,20 @@ const BqDrawer = class {
194
194
  'fixed inset-0 block bg-[--bq-drawer--backgroundBackdrop] opacity-0 transition-opacity duration-300': true,
195
195
  'pointer-events-none': !this.open,
196
196
  'opacity-60': this.open,
197
- }, tabIndex: -1, part: "backdrop" })), index.h("div", { key: '204c2fca8240c6848316a74e480081a5d28b0e4a', class: {
197
+ }, part: "backdrop", tabIndex: -1 })), index.h("div", { key: 'c86c49c074fd1e7d59de8d8df33fe43504fcb169', "aria-hidden": !this.open ? 'true' : 'false', "aria-labelledby": "bq-drawer__title", "aria-modal": "true", class: {
198
198
  [`bq-drawer transition-all duration-300 ease-in-out ${this.position || this.placement}`]: true,
199
199
  '-start-[--bq-drawer--width]': this.isPositionStart,
200
200
  '-end-[--bq-drawer--width]': this.isPositionEnd,
201
201
  'start-0': this.open && this.isPositionStart,
202
202
  'end-0': this.open && this.isPositionEnd,
203
- }, ref: (div) => (this.drawerElem = div), "aria-hidden": !this.open ? 'true' : 'false', "aria-labelledby": "bq-drawer__title", "aria-modal": "true", hidden: !this.open, part: "panel", role: "dialog" }, index.h("header", { key: 'a59c6f950bfdae3bf0da80d51f49c93fb774b3c6', class: "flex items-center", part: "header" }, index.h("h2", { key: '07f3aca6df1e484ef1e0047073ce1c434f05d844', class: "flex-1 items-center justify-between text-xl font-bold leading-regular text-primary", id: "bq-drawer__title", part: "title" }, index.h("slot", { key: '93de20cd61525bf7194835e0413caa2185ed1b33', name: "title" })), index.h("div", { key: '7d9b574274bce2a20ce820b2d0850c7c3f8a492c', class: "flex", part: "button-close" }, index.h("bq-button", { key: '6fbce660e16967c75381222af1f471f7001d30ea', class: "[&::part(button)]:rounded-s [&::part(button)]:border-0 [&::part(button)]:bs-fit [&::part(button)]:p-b-0 [&::part(button)]:p-i-0 [&::part(label)]:inline-flex", appearance: "text", size: "small", slot: "button-close", exportparts: "button:button-close__btn,label:button-close__label", onClick: this.hide.bind(this) }, index.h("slot", { key: 'b6ff8569dd3ba1f01e3066228afa9c471f7cb998', name: "button-close" }, index.h("bq-icon", { key: 'd9077480e3c8f6410a8e9b945bdec4fdf6baf8e3', name: "x-bold", role: "img", title: "Close" }))))), index.h("main", { key: '01c3edefe9e342fa02696082cad2f2ad687fdedb', class: "block flex-auto overflow-auto", part: "body" }, index.h("slot", { key: 'b8b7ae730e44c3cb7fe6d8ead86e21e77f70e961' })), index.h("footer", { key: '8c44431db4c4d5790a61d2b0b617c9a3c58fc982', class: {
203
+ }, hidden: !this.open, part: "panel", ref: (div) => {
204
+ this.drawerElem = div;
205
+ }, role: "dialog" }, index.h("header", { key: '6cd1d9ce70d4cb30d6524af6dd366e989e676c62', class: "flex items-center", part: "header" }, index.h("h2", { key: '3212557ad0649414eb332e187acd52c96efbd835', class: "flex-1 items-center justify-between font-bold text-primary text-xl leading-regular", id: "bq-drawer__title", part: "title" }, index.h("slot", { key: '6aebb931e8cea3ede8dde98c66ebf9a275d1cb66', name: "title" })), index.h("div", { key: 'd68cac1a5bc9d7e7d4b4c885003630baae96c46e', class: "flex", part: "button-close" }, index.h("bq-button", { key: 'aba8327b549f2a2995af57205b0eb426d360762e', appearance: "text", class: "[&::part(button)]:bs-fit [&::part(button)]:rounded-s [&::part(button)]:border-0 [&::part(button)]:p-b-0 [&::part(button)]:p-i-0 [&::part(label)]:inline-flex", exportparts: "button:button-close__btn,label:button-close__label", onBqClick: () => this.hide(), size: "small", slot: "button-close" }, index.h("slot", { key: 'c2ecda8e35926aa1e30eb264825a3e8295068503', name: "button-close" }, index.h("bq-icon", { key: 'a91f4115f6c682d1c7b671fe7246fb62a01acac9', name: "x-bold", title: "Close" }))))), index.h("main", { key: '57722f33633d8008b2ce5d1af1de66e0cc8349a5', class: "block flex-auto overflow-auto", part: "body" }, index.h("slot", { key: 'e40bad5748d468e8f9f93047b2a7b9f069554052' })), index.h("footer", { key: 'c86396212d78e35a1c6a5a4fea804f355bc8ee1a', class: {
204
206
  block: true,
205
207
  '!hidden': !this.hasFooter,
206
- }, ref: (footerElem) => (this.footerElem = footerElem), part: "footer" }, index.h("slot", { key: '64e241cb7e0665e9615ef791c6b24f7f22cb095a', name: "footer-divider" }, index.h("bq-divider", { key: '0fde4e73d472af52ab17346d3722ab53d074e65d', class: "mb-m block", dashed: true })), index.h("slot", { key: 'c0d4af5d801bfe83afbbe54c37e5c61363123184', name: "footer", onSlotchange: this.handleFooterSlotChange })))));
208
+ }, part: "footer", ref: (footerElem) => {
209
+ this.footerElem = footerElem;
210
+ } }, index.h("slot", { key: '19693333c7592b48539d0196c329070f5763d2a1', name: "footer-divider" }, index.h("bq-divider", { key: '14243b9978ecfec0a3077f3ecd9931aa5313676e', class: "mb-m block", dashed: true })), index.h("slot", { key: '5ffaff2ce64aa8c4424aaccf4fd4f568f62501a3', name: "footer", onSlotchange: this.handleFooterSlotChange })))));
207
211
  }
208
212
  static get watchers() { return {
209
213
  "open": ["handleOpenChange"],
@@ -215,5 +219,3 @@ BqDrawer.style = bqDrawerCss;
215
219
 
216
220
  exports.bq_drawer = BqDrawer;
217
221
  //# sourceMappingURL=bq-drawer.entry.cjs.js.map
218
-
219
- //# sourceMappingURL=bq-drawer.cjs.entry.js.map
@@ -1 +1 @@
1
- {"version":3,"file":"bq-drawer.entry.cjs.js","sources":["../../packages/beeq/src/components/drawer/bq-drawer.types.ts","../../packages/beeq/src/components/drawer/scss/bq-drawer.scss?tag=bq-drawer&encapsulation=shadow","../../packages/beeq/src/components/drawer/bq-drawer.tsx"],"sourcesContent":["export const DRAWER_POSITIONS = ['start', 'end'] as const;\nexport type TDrawerPosition = (typeof DRAWER_POSITIONS)[number];\n// !TO BE REMOVED: `placement` is deprecated and it will be removed in the future\nexport const DRAWER_PLACEMENT = ['left', 'right'] as const;\nexport type TDrawerPlacement = (typeof DRAWER_PLACEMENT)[number];\n","/* -------------------------------------------------------------------------- */\n/* Drawer styles */\n/* -------------------------------------------------------------------------- */\n\n@import './bq-drawer.variables';\n\n:host {\n @apply invisible #{!important};\n}\n\n:host(.bq-drawer--open) {\n @apply visible #{!important};\n}\n\n.bq-drawer {\n @apply fixed z-[--bq-drawer--zIndex] flex flex-col gap-[--bq-drawer--gap] bg-ui-primary shadow-m is-[--bq-drawer--width] max-is-full p-b-[--bq-drawer--paddingY] p-i-[--bq-drawer--paddingX] inset-b-0;\n}\n","import { Component, Element, Event, h, Host, Listen, Method, Prop, State, Watch } from '@stencil/core';\nimport type { EventEmitter } from '@stencil/core';\n\nimport { DRAWER_PLACEMENT, DRAWER_POSITIONS } from './bq-drawer.types';\nimport type { TDrawerPlacement, TDrawerPosition } from './bq-drawer.types';\nimport { enter, hasSlotContent, isNil, leave, validatePropValue } from '../../shared/utils';\n\n/**\n * The Drawer component provides a sliding panel interface commonly used for navigation or presenting additional content without taking up significant screen space.\n *\n * @example How to use it\n * ```html\n * <bq-drawer position=\"end\">\n * <div class=\"flex gap-xs\" slot=\"title\">Title</div>\n * <div class=\"...\">\n * Content\n * </div>\n * <div class=\"flex flex-1 justify-center gap-xs\" slot=\"footer\">\n * <bq-button appearance=\"primary\" block=\"\" size=\"small\">Button</bq-button>\n * <bq-button appearance=\"link\" block=\"\" size=\"small\">Button</bq-button>\n * </div>\n * </bq-drawer>\n * ```\n *\n * @documentation https://www.beeq.design/3d466e231/p/871139-drawer\n * @status stable\n *\n * @dependency bq-button\n * @dependency bq-icon\n * @dependency bq-divider\n *\n * @attr {boolean} enable-backdrop - If true, the backdrop overlay will be shown when the drawer opens.\n * @attr {boolean} close-on-click-outside - If true, the drawer will not close when clicking outside the panel.\n * @attr {boolean} close-on-esc - If true, the drawer will not close when the [Esc] key is pressed.\n * @attr {boolean} open - If true, the drawer component will be shown.\n * @attr {\"start\" | \"end\"} position - Defines the position of the drawer.\n *\n * @method show - Method to be called to show the drawer component.\n * @method hide - Method to be called to hide the drawer component.\n *\n * @event bqClose - Callback handler to be called when the drawer is closed.\n * @event bqOpen - Callback handler to be called when the drawer is opened.\n * @event bqAfterOpen - Callback handler to be called after the drawer has been opened.\n * @event bqAfterClose - Callback handler to be called after the drawer has been closed.\n *\n * @slot title - The title content of the drawer.\n * @slot - The body content of the drawer.\n * @slot footer - The footer content of the drawer.\n * @slot button-close - The close button content of the drawer.\n * @slot footer-divider - The footer divider content of the drawer.\n *\n * @part backdrop - The `<div>` that holds the backdrop overlay.\n * @part button-close - The BqButton that closes the drawer.\n * @part button-close__btn - The native button used under the hood that closes the drawer.\n * @part button-close__label - The text inside the native button that closes the drawer.\n * @part panel - The `<div>` that holds the drawer entire content.\n * @part header - The `<header>` that holds the icon, title, and close button.\n * @part title - The `<div>` that holds the title content.\n * @part body - The `<main>` that holds the drawer body content.\n * @part footer - The `<footer>` that holds footer content.\n *\n * @cssprop --bq-drawer--backgroundBackdrop - Background color of the backdrop\n * @cssprop --bq-drawer--gap - Gap between the drawer and the viewport\n * @cssprop --bq-drawer--width - Width of the drawer\n * @cssprop --bq-drawer--paddingX - Padding left and right of the drawer\n * @cssprop --bq-drawer--paddingY - Padding top and bottom of the drawer\n * @cssprop --bq-drawer--zIndex - Z-index of the drawer component\n */\n@Component({\n tag: 'bq-drawer',\n styleUrl: './scss/bq-drawer.scss',\n shadow: true,\n})\nexport class BqDrawer {\n // Own Properties\n // ====================\n\n private footerElem: HTMLElement;\n private drawerElem: HTMLDivElement;\n private OPEN_CSS_CLASS = 'bq-drawer--open';\n\n // Reference to host HTML element\n // ===================================\n\n @Element() el!: HTMLBqDrawerElement;\n\n // State() variables\n // Inlined decorator, alphabetical order\n // =======================================\n\n @State() private hasFooter = false;\n @State() hasIcon: boolean = false;\n\n // Public Property API\n // ========================\n\n /** If true, the backdrop overlay will be shown when the drawer opens */\n @Prop({ reflect: true }) enableBackdrop = false;\n\n /** If true, the drawer will not close when clicking outside the panel */\n @Prop({ reflect: true }) closeOnClickOutside = false;\n\n /** If true, the dialog will not close when the [Esc] key is pressed */\n @Prop({ reflect: true }) closeOnEsc = false;\n\n /** If true, the drawer component will be shown */\n @Prop({ reflect: true, mutable: true }) open: boolean;\n\n /** @deprecated Defines the position of the drawer */\n @Prop({ reflect: true, mutable: true }) placement: TDrawerPlacement = 'right';\n\n /** Defines the position of the drawer */\n @Prop({ reflect: true, mutable: true }) position: TDrawerPosition = 'end';\n\n // Prop lifecycle events\n // =======================\n\n @Watch('open')\n async handleOpenChange() {\n if (!this.open) {\n await this.handleAfterHide();\n return;\n }\n\n await this.handleAfterShow();\n }\n\n /**\n * !TO BE REMOVED: Delete this `@Watch()` once the deprecated `placement` property is removed\n * We need to maintain retro-compatibility with the deprecated `placement` property\n */\n @Watch('placement')\n handlePlacementChange() {\n if (!isNil(this.placement)) {\n console.warn(\n `❗️ [bq-drawer]: the 'placement' prop is deprecated and it will be removed in the future. Please use 'position' instead.`,\n );\n }\n validatePropValue(DRAWER_PLACEMENT, 'right', this.el, 'placement');\n // Sync 'position' property\n const synPositionMap = {\n right: 'end',\n left: 'start',\n };\n this.position = (synPositionMap[this.placement] as TDrawerPosition) || this.position;\n }\n\n @Watch('position')\n handlePositionChange() {\n validatePropValue(DRAWER_POSITIONS, 'start', this.el, 'position');\n /**\n * Sync 'placement' property\n * !TO BE REMOVED: Delete the code below once the deprecated `placement` property is removed\n */\n const syncPlacementMap = {\n end: 'right',\n start: 'left',\n };\n this.placement = (syncPlacementMap[this.position] as TDrawerPlacement) || this.placement;\n }\n\n // Events section\n // Requires JSDocs for public API documentation\n // ==============================================\n\n /** Callback handler to be called when the drawer is closed */\n @Event() bqClose!: EventEmitter;\n\n /** Callback handler to be called when the drawer is opened */\n @Event() bqOpen!: EventEmitter;\n\n /** Callback handler to be called after the drawer has been opened */\n @Event() bqAfterOpen!: EventEmitter;\n\n /** Callback handler to be called after the drawer has been closed */\n @Event() bqAfterClose!: EventEmitter;\n\n // Component lifecycle events\n // Ordered by their natural call order\n // =====================================\n\n componentWillLoad() {\n this.handlePositionChange();\n // !TO BE REMOVED: Delete this once the deprecated `placement` property is removed\n this.handlePlacementChange();\n }\n\n componentDidLoad() {\n this.handleFooterSlotChange();\n }\n\n // Listeners\n // ==============\n\n @Listen('mousedown', { target: 'window', capture: true })\n async handleMouseClick(event: MouseEvent) {\n if (!this.open) return;\n if (!this.drawerElem || this.closeOnClickOutside) return;\n // Skip if the mouse button is not the main button\n if (event.button !== 0) return;\n\n const rect = this.drawerElem.getBoundingClientRect();\n if (event.clientX < rect.left || event.clientX > rect.right) {\n await this.hide();\n }\n }\n\n @Listen('keydown', { target: 'window', capture: true })\n async handleKeyDown(event: KeyboardEvent) {\n if (!this.open) return;\n if (!this.drawerElem || this.closeOnEsc || !(event.key === 'Escape' || event.key === 'Esc')) return;\n\n await this.hide();\n }\n\n // Public methods API\n // These methods are exposed on the host element.\n // Always use two lines.\n // Public Methods must be async.\n // Requires JSDocs for public API documentation.\n // ===============================================\n\n /** Method to be called to hide the drawer component */\n @Method()\n async hide(): Promise<void> {\n const ev = this.bqClose.emit();\n if (ev.defaultPrevented) return;\n\n this.open = false;\n }\n\n /** Method to be called to show the drawer component */\n @Method()\n async show(): Promise<void> {\n const ev = this.bqOpen.emit();\n if (ev.defaultPrevented) return;\n\n this.open = true;\n }\n\n // Local methods\n // Internal business logic.\n // These methods cannot be called from the host element.\n // =======================================================\n\n private handleFooterSlotChange = () => {\n this.hasFooter = hasSlotContent(this.footerElem, 'footer');\n };\n\n private handleAfterHide = async () => {\n if (!this.drawerElem) return;\n\n await leave(this.drawerElem);\n this.handleTransitionEnd();\n };\n\n private handleAfterShow = async () => {\n if (!this.drawerElem) return;\n\n this.el.classList.add(this.OPEN_CSS_CLASS);\n await enter(this.drawerElem);\n this.handleTransitionEnd();\n };\n\n private handleTransitionEnd = () => {\n if (this.open) {\n this.bqAfterOpen.emit();\n return;\n }\n\n this.bqAfterClose.emit();\n this.el.classList.remove(this.OPEN_CSS_CLASS);\n };\n\n private get isPositionStart() {\n // !TO BE REMOVED: `placement` is deprecated and will be removed in the future\n return this.position === 'start' || this.placement === 'left';\n }\n\n private get isPositionEnd() {\n // !TO BE REMOVED: `placement` is deprecated and will be removed in the future\n return this.position === 'end' || this.placement === 'right';\n }\n\n // render() function\n // Always the last one in the class.\n // ===================================\n\n render() {\n return (\n <Host>\n {/* BACKDROP */}\n {this.enableBackdrop && (\n <div\n class={{\n 'fixed inset-0 block bg-[--bq-drawer--backgroundBackdrop] opacity-0 transition-opacity duration-300': true,\n 'pointer-events-none': !this.open,\n 'opacity-60': this.open,\n }}\n tabIndex={-1}\n part=\"backdrop\"\n />\n )}\n {/* DRAWER PANEL */}\n <div\n class={{\n [`bq-drawer transition-all duration-300 ease-in-out ${this.position || this.placement}`]: true,\n '-start-[--bq-drawer--width]': this.isPositionStart,\n '-end-[--bq-drawer--width]': this.isPositionEnd,\n 'start-0': this.open && this.isPositionStart,\n 'end-0': this.open && this.isPositionEnd,\n }}\n ref={(div) => (this.drawerElem = div)}\n aria-hidden={!this.open ? 'true' : 'false'}\n aria-labelledby=\"bq-drawer__title\"\n aria-modal=\"true\"\n hidden={!this.open}\n part=\"panel\"\n role=\"dialog\"\n >\n <header class=\"flex items-center\" part=\"header\">\n <h2\n class=\"flex-1 items-center justify-between text-xl font-bold leading-regular text-primary\"\n id=\"bq-drawer__title\"\n part=\"title\"\n >\n <slot name=\"title\" />\n </h2>\n <div class=\"flex\" part=\"button-close\">\n <bq-button\n class=\"[&::part(button)]:rounded-s [&::part(button)]:border-0 [&::part(button)]:bs-fit [&::part(button)]:p-b-0 [&::part(button)]:p-i-0 [&::part(label)]:inline-flex\"\n appearance=\"text\"\n size=\"small\"\n slot=\"button-close\"\n exportparts=\"button:button-close__btn,label:button-close__label\"\n onClick={this.hide.bind(this)}\n >\n <slot name=\"button-close\">\n <bq-icon name=\"x-bold\" role=\"img\" title=\"Close\" />\n </slot>\n </bq-button>\n </div>\n </header>\n <main class=\"block flex-auto overflow-auto\" part=\"body\">\n <slot />\n </main>\n <footer\n class={{\n block: true,\n '!hidden': !this.hasFooter,\n }}\n ref={(footerElem) => (this.footerElem = footerElem)}\n part=\"footer\"\n >\n <slot name=\"footer-divider\">\n <bq-divider class=\"mb-m block\" dashed />\n </slot>\n <slot name=\"footer\" onSlotchange={this.handleFooterSlotChange} />\n </footer>\n </div>\n </Host>\n );\n }\n}\n"],"names":["isNil","validatePropValue","hasSlotContent","leave","enter","h","Host"],"mappings":"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"}
1
+ {"version":3,"file":"bq-drawer.entry.cjs.js","sources":["../../packages/beeq/src/components/drawer/bq-drawer.types.ts","../../packages/beeq/src/components/drawer/scss/bq-drawer.scss?tag=bq-drawer&encapsulation=shadow","../../packages/beeq/src/components/drawer/bq-drawer.tsx"],"sourcesContent":["export const DRAWER_POSITIONS = ['start', 'end'] as const;\nexport type TDrawerPosition = (typeof DRAWER_POSITIONS)[number];\n// !TO BE REMOVED: `placement` is deprecated and it will be removed in the future\nexport const DRAWER_PLACEMENT = ['left', 'right'] as const;\nexport type TDrawerPlacement = (typeof DRAWER_PLACEMENT)[number];\n","/* -------------------------------------------------------------------------- */\n/* Drawer styles */\n/* -------------------------------------------------------------------------- */\n\n@import './bq-drawer.variables';\n\n:host {\n @apply invisible #{!important};\n}\n\n:host(.bq-drawer--open) {\n @apply visible #{!important};\n}\n\n.bq-drawer {\n @apply fixed z-[--bq-drawer--zIndex] flex flex-col gap-[--bq-drawer--gap] bg-ui-primary shadow-m is-[--bq-drawer--width] max-is-full p-b-[--bq-drawer--paddingY] p-i-[--bq-drawer--paddingX] inset-b-0;\n}\n","import type { EventEmitter } from '@stencil/core';\nimport { Component, Element, Event, Host, h, Listen, Method, Prop, State, Watch } from '@stencil/core';\n\nimport { enter, hasSlotContent, isNil, leave, validatePropValue } from '../../shared/utils';\nimport type { TDrawerPlacement, TDrawerPosition } from './bq-drawer.types';\nimport { DRAWER_PLACEMENT, DRAWER_POSITIONS } from './bq-drawer.types';\n\n/**\n * The Drawer component provides a sliding panel interface commonly used for navigation or presenting additional content without taking up significant screen space.\n *\n * @example How to use it\n * ```html\n * <bq-drawer position=\"end\">\n * <div class=\"flex gap-xs\" slot=\"title\">Title</div>\n * <div class=\"...\">\n * Content\n * </div>\n * <div class=\"flex flex-1 justify-center gap-xs\" slot=\"footer\">\n * <bq-button appearance=\"primary\" block=\"\" size=\"small\">Button</bq-button>\n * <bq-button appearance=\"link\" block=\"\" size=\"small\">Button</bq-button>\n * </div>\n * </bq-drawer>\n * ```\n *\n * @documentation https://www.beeq.design/3d466e231/p/871139-drawer\n * @status stable\n *\n * @dependency bq-button\n * @dependency bq-icon\n * @dependency bq-divider\n *\n * @attr {boolean} enable-backdrop - If true, the backdrop overlay will be shown when the drawer opens.\n * @attr {boolean} close-on-click-outside - If true, the drawer will not close when clicking outside the panel.\n * @attr {boolean} close-on-esc - If true, the drawer will not close when the [Esc] key is pressed.\n * @attr {boolean} open - If true, the drawer component will be shown.\n * @attr {\"start\" | \"end\"} position - Defines the position of the drawer.\n *\n * @method show - Method to be called to show the drawer component.\n * @method hide - Method to be called to hide the drawer component.\n *\n * @event bqClose - Callback handler to be called when the drawer is closed.\n * @event bqOpen - Callback handler to be called when the drawer is opened.\n * @event bqAfterOpen - Callback handler to be called after the drawer has been opened.\n * @event bqAfterClose - Callback handler to be called after the drawer has been closed.\n *\n * @slot title - The title content of the drawer.\n * @slot - The body content of the drawer.\n * @slot footer - The footer content of the drawer.\n * @slot button-close - The close button content of the drawer.\n * @slot footer-divider - The footer divider content of the drawer.\n *\n * @part backdrop - The `<div>` that holds the backdrop overlay.\n * @part button-close - The BqButton that closes the drawer.\n * @part button-close__btn - The native button used under the hood that closes the drawer.\n * @part button-close__label - The text inside the native button that closes the drawer.\n * @part panel - The `<div>` that holds the drawer entire content.\n * @part header - The `<header>` that holds the icon, title, and close button.\n * @part title - The `<div>` that holds the title content.\n * @part body - The `<main>` that holds the drawer body content.\n * @part footer - The `<footer>` that holds footer content.\n *\n * @cssprop --bq-drawer--backgroundBackdrop - Background color of the backdrop\n * @cssprop --bq-drawer--gap - Gap between the drawer and the viewport\n * @cssprop --bq-drawer--width - Width of the drawer\n * @cssprop --bq-drawer--paddingX - Padding left and right of the drawer\n * @cssprop --bq-drawer--paddingY - Padding top and bottom of the drawer\n * @cssprop --bq-drawer--zIndex - Z-index of the drawer component\n */\n@Component({\n tag: 'bq-drawer',\n styleUrl: './scss/bq-drawer.scss',\n shadow: true,\n})\nexport class BqDrawer {\n // Own Properties\n // ====================\n\n private footerElem: HTMLElement;\n private drawerElem: HTMLDivElement;\n private OPEN_CSS_CLASS = 'bq-drawer--open';\n\n // Reference to host HTML element\n // ===================================\n\n @Element() el!: HTMLBqDrawerElement;\n\n // State() variables\n // Inlined decorator, alphabetical order\n // =======================================\n\n @State() private hasFooter = false;\n @State() hasIcon: boolean = false;\n\n // Public Property API\n // ========================\n\n /** If true, the backdrop overlay will be shown when the drawer opens */\n @Prop({ reflect: true }) enableBackdrop = false;\n\n /** If true, the drawer will not close when clicking outside the panel */\n @Prop({ reflect: true }) closeOnClickOutside = false;\n\n /** If true, the dialog will not close when the [Esc] key is pressed */\n @Prop({ reflect: true }) closeOnEsc = false;\n\n /** If true, the drawer component will be shown */\n @Prop({ reflect: true, mutable: true }) open: boolean;\n\n /** @deprecated Defines the position of the drawer */\n @Prop({ reflect: true, mutable: true }) placement: TDrawerPlacement = 'right';\n\n /** Defines the position of the drawer */\n @Prop({ reflect: true, mutable: true }) position: TDrawerPosition = 'end';\n\n // Prop lifecycle events\n // =======================\n\n @Watch('open')\n async handleOpenChange() {\n if (!this.open) {\n await this.handleAfterHide();\n return;\n }\n\n await this.handleAfterShow();\n }\n\n /**\n * !TO BE REMOVED: Delete this `@Watch()` once the deprecated `placement` property is removed\n * We need to maintain retro-compatibility with the deprecated `placement` property\n */\n @Watch('placement')\n handlePlacementChange() {\n if (!isNil(this.placement)) {\n console.warn(\n `❗️ [bq-drawer]: the 'placement' prop is deprecated and it will be removed in the future. Please use 'position' instead.`,\n );\n }\n validatePropValue(DRAWER_PLACEMENT, 'right', this.el, 'placement');\n // Sync 'position' property\n const synPositionMap = {\n right: 'end',\n left: 'start',\n };\n this.position = (synPositionMap[this.placement] as TDrawerPosition) || this.position;\n }\n\n @Watch('position')\n handlePositionChange() {\n validatePropValue(DRAWER_POSITIONS, 'start', this.el, 'position');\n /**\n * Sync 'placement' property\n * !TO BE REMOVED: Delete the code below once the deprecated `placement` property is removed\n */\n const syncPlacementMap = {\n end: 'right',\n start: 'left',\n };\n this.placement = (syncPlacementMap[this.position] as TDrawerPlacement) || this.placement;\n }\n\n // Events section\n // Requires JSDocs for public API documentation\n // ==============================================\n\n /** Callback handler to be called when the drawer is closed */\n @Event() bqClose!: EventEmitter;\n\n /** Callback handler to be called when the drawer is opened */\n @Event() bqOpen!: EventEmitter;\n\n /** Callback handler to be called after the drawer has been opened */\n @Event() bqAfterOpen!: EventEmitter;\n\n /** Callback handler to be called after the drawer has been closed */\n @Event() bqAfterClose!: EventEmitter;\n\n // Component lifecycle events\n // Ordered by their natural call order\n // =====================================\n\n componentWillLoad() {\n this.handlePositionChange();\n // !TO BE REMOVED: Delete this once the deprecated `placement` property is removed\n this.handlePlacementChange();\n }\n\n componentDidLoad() {\n this.handleFooterSlotChange();\n }\n\n // Listeners\n // ==============\n\n @Listen('mousedown', { target: 'window', capture: true })\n async handleMouseClick(event: MouseEvent) {\n if (!this.open) return;\n if (!this.drawerElem || this.closeOnClickOutside) return;\n // Skip if the mouse button is not the main button\n if (event.button !== 0) return;\n\n const rect = this.drawerElem.getBoundingClientRect();\n if (event.clientX < rect.left || event.clientX > rect.right) {\n await this.hide();\n }\n }\n\n @Listen('keydown', { target: 'window', capture: true })\n async handleKeyDown(event: KeyboardEvent) {\n if (!this.open) return;\n if (!this.drawerElem || this.closeOnEsc || !(event.key === 'Escape' || event.key === 'Esc')) return;\n\n await this.hide();\n }\n\n // Public methods API\n // These methods are exposed on the host element.\n // Always use two lines.\n // Public Methods must be async.\n // Requires JSDocs for public API documentation.\n // ===============================================\n\n /** Method to be called to hide the drawer component */\n @Method()\n async hide(): Promise<void> {\n const ev = this.bqClose.emit();\n if (ev.defaultPrevented) return;\n\n this.open = false;\n }\n\n /** Method to be called to show the drawer component */\n @Method()\n async show(): Promise<void> {\n const ev = this.bqOpen.emit();\n if (ev.defaultPrevented) return;\n\n this.open = true;\n }\n\n // Local methods\n // Internal business logic.\n // These methods cannot be called from the host element.\n // =======================================================\n\n private handleFooterSlotChange = () => {\n this.hasFooter = hasSlotContent(this.footerElem, 'footer');\n };\n\n private handleAfterHide = async () => {\n if (!this.drawerElem) return;\n\n await leave(this.drawerElem);\n this.handleTransitionEnd();\n };\n\n private handleAfterShow = async () => {\n if (!this.drawerElem) return;\n\n this.el.classList.add(this.OPEN_CSS_CLASS);\n await enter(this.drawerElem);\n this.handleTransitionEnd();\n };\n\n private handleTransitionEnd = () => {\n if (this.open) {\n this.bqAfterOpen.emit();\n return;\n }\n\n this.bqAfterClose.emit();\n this.el.classList.remove(this.OPEN_CSS_CLASS);\n };\n\n private get isPositionStart() {\n // !TO BE REMOVED: `placement` is deprecated and will be removed in the future\n return this.position === 'start' || this.placement === 'left';\n }\n\n private get isPositionEnd() {\n // !TO BE REMOVED: `placement` is deprecated and will be removed in the future\n return this.position === 'end' || this.placement === 'right';\n }\n\n // render() function\n // Always the last one in the class.\n // ===================================\n\n render() {\n return (\n <Host>\n {/* BACKDROP */}\n {this.enableBackdrop && (\n <div\n class={{\n 'fixed inset-0 block bg-[--bq-drawer--backgroundBackdrop] opacity-0 transition-opacity duration-300': true,\n 'pointer-events-none': !this.open,\n 'opacity-60': this.open,\n }}\n part=\"backdrop\"\n tabIndex={-1}\n />\n )}\n {/* DRAWER PANEL */}\n <div\n aria-hidden={!this.open ? 'true' : 'false'}\n aria-labelledby=\"bq-drawer__title\"\n aria-modal=\"true\"\n class={{\n [`bq-drawer transition-all duration-300 ease-in-out ${this.position || this.placement}`]: true,\n '-start-[--bq-drawer--width]': this.isPositionStart,\n '-end-[--bq-drawer--width]': this.isPositionEnd,\n 'start-0': this.open && this.isPositionStart,\n 'end-0': this.open && this.isPositionEnd,\n }}\n hidden={!this.open}\n part=\"panel\"\n ref={(div) => {\n this.drawerElem = div;\n }}\n role=\"dialog\"\n >\n <header class=\"flex items-center\" part=\"header\">\n <h2\n class=\"flex-1 items-center justify-between font-bold text-primary text-xl leading-regular\"\n id=\"bq-drawer__title\"\n part=\"title\"\n >\n <slot name=\"title\" />\n </h2>\n <div class=\"flex\" part=\"button-close\">\n <bq-button\n appearance=\"text\"\n class=\"[&::part(button)]:bs-fit [&::part(button)]:rounded-s [&::part(button)]:border-0 [&::part(button)]:p-b-0 [&::part(button)]:p-i-0 [&::part(label)]:inline-flex\"\n exportparts=\"button:button-close__btn,label:button-close__label\"\n onBqClick={() => this.hide()}\n size=\"small\"\n slot=\"button-close\"\n >\n <slot name=\"button-close\">\n <bq-icon name=\"x-bold\" title=\"Close\" />\n </slot>\n </bq-button>\n </div>\n </header>\n <main class=\"block flex-auto overflow-auto\" part=\"body\">\n <slot />\n </main>\n <footer\n class={{\n block: true,\n '!hidden': !this.hasFooter,\n }}\n part=\"footer\"\n ref={(footerElem) => {\n this.footerElem = footerElem;\n }}\n >\n <slot name=\"footer-divider\">\n <bq-divider class=\"mb-m block\" dashed />\n </slot>\n <slot name=\"footer\" onSlotchange={this.handleFooterSlotChange} />\n </footer>\n </div>\n </Host>\n );\n }\n}\n"],"names":["isNil","validatePropValue","hasSlotContent","leave","enter","h","Host"],"mappings":"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"}
@@ -1 +1 @@
1
- {"version":3,"file":"bq-dropdown.bq-panel.entry.cjs.js","sources":["../../packages/beeq/src/components/dropdown/scss/bq-dropdown.scss?tag=bq-dropdown&encapsulation=shadow","../../packages/beeq/src/components/dropdown/bq-dropdown.tsx","../../packages/beeq/src/components/panel/scss/bq-panel.scss?tag=bq-panel&encapsulation=shadow","../../packages/beeq/src/components/panel/bq-panel.tsx"],"sourcesContent":["/* -------------------------------------------------------------------------- */\n/* Dropdown styles */\n/* -------------------------------------------------------------------------- */\n\n:host {\n @apply relative inline-block;\n}\n","import { Component, Element, Event, h, Listen, Prop, Watch } from '@stencil/core';\nimport type { EventEmitter } from '@stencil/core';\n\nimport type { Placement } from '../../services/interfaces';\nimport { isEventTargetChildOfElement } from '../../shared/utils';\n\nlet id = 0;\n\n/**\n * The Dropdown Component is commonly used when presenting a list of selectable options that are too numerous to fit comfortably on the screen.\n * They provide an efficient way to save space and present a long list of options in a compact and organized manner.\n *\n * @example How to use it\n * ```html\n * <bq-dropdown placement=\"bottom-start\">\n * <bq-button slot=\"trigger\">Dropdown</bq-button>\n * <bq-option-list>\n * <bq-option value=\"users\">...</bq-option>\n * <bq-option value=\"user\">...</bq-option>\n * <bq-option value=\"dashboard\">...</bq-option>\n * <bq-option value=\"settings\">...</bq-option>\n * <bq-option value=\"logout\">...</bq-option>\n * </bq-option-list>\n * </bq-dropdown>\n * ```\n *\n * @documentation https://www.beeq.design/3d466e231/p/47ff4b-dropdown\n * @status stable\n *\n * @dependency bq-panel\n *\n * @attr {boolean} disabled - If true, the dropdown panel will be visible and won't be shown.\n * @attr {number} distance - Represents the distance (gutter or margin) between the panel and the trigger element.\n * @attr {boolean} keep-open-on-select - If true, the panel will remain open after a selection is made.\n * @attr {\"top\" | \"bottom\" | \"left\" | \"right\" | \"top-start\" | \"top-end\" | \"bottom-start\" | \"bottom-end\" | \"left-start\" | \"left-end\" | \"right-start\" | \"right-end\"} placement - Position of the panel.\n * @attr {boolean} open - If true, the panel will be visible.\n * @attr {string} panel-height - When set, it will override the height of the dropdown panel.\n * @attr {boolean} same-width - Whether the panel should have the same width as the trigger element.\n * @attr {number} skidding - Represents the skidding between the panel and the trigger element.\n * @attr {\"fixed\" | \"absolute\"} strategy - Defines the strategy to position the panel.\n *\n * @event bqOpen - Callback handler to be called when the dropdown panel is opened or closed.\n *\n * @slot trigger - The trigger element that opens the dropdown panel.\n * @slot - The content of the dropdown panel.\n *\n * @part base - The component's internal wrapper.\n * @part dropdown - The `<bq-panel>` element used under the hood to display the dropdown panel.\n * @part panel - The `<div>` element used to display and style the panel inside the `<bq-panel>` element.\n * @part trigger - The `<div>` element that hosts the trigger element.\n *\n * @cssprop --bq-panel--background - Panel background color\n * @cssprop --bq-panel--border-color - Panel border color\n * @cssprop --bq-panel--border-radius - Panel border radius\n * @cssprop --bq-panel--border-style - Panel border style\n * @cssprop --bq-panel--border-width - Panel border width\n * @cssprop --bq-panel--box-shadow - Panel box shadow\n * @cssprop --bq-panel--padding - Panel padding\n * @cssprop --bq-panel--height - Panel height\n * @cssprop --bq-panel--width - Panel width\n * @cssprop --bq-panel-z-index - Panel z-index applied when opened\n */\n@Component({\n tag: 'bq-dropdown',\n styleUrl: './scss/bq-dropdown.scss',\n shadow: true,\n})\nexport class BqDropdown {\n // Own Properties\n // ====================\n\n private dropdownPanelId = `bq-dropdown-panel-${++id}`;\n private triggerElem: HTMLElement;\n\n // Reference to host HTML element\n // ===================================\n\n @Element() el!: HTMLBqDropdownElement;\n\n // State() variables\n // Inlined decorator, alphabetical order\n // =======================================\n\n // Public Property API\n // ========================\n\n /** If true, the dropdown panel will not lock the page body scroll when open. */\n @Prop({ reflect: true }) disableScrollLock?: boolean = false;\n\n /** If true, the dropdown panel will be visible and won't be shown. */\n @Prop({ reflect: true }) disabled?: boolean = false;\n\n /** Represents the distance (gutter or margin) between the panel and the trigger element. */\n @Prop({ reflect: true }) distance?: number = 4;\n\n /** If true, the panel will remain open after a selection is made. */\n @Prop({ reflect: true }) keepOpenOnSelect?: boolean = false;\n\n /** Position of the panel */\n @Prop({ reflect: true }) placement?: Placement = 'bottom-start';\n\n /** If true, the panel will be visible. */\n @Prop({ reflect: true, mutable: true }) open?: boolean = false;\n\n /** When set, it will override the height of the dropdown panel */\n @Prop({ reflect: true }) panelHeight?: string;\n\n /** Whether the panel should have the same width as the trigger element */\n @Prop({ reflect: true }) sameWidth?: boolean = false;\n\n /** Represents the skidding between the panel and the trigger element. */\n @Prop({ reflect: true }) skidding?: number = 0;\n\n /** Defines the strategy to position the panel */\n @Prop({ reflect: true }) strategy?: 'fixed' | 'absolute' = 'fixed';\n\n // Prop lifecycle events\n // =======================\n\n @Watch('open')\n onOpenChange() {\n this.bqOpen.emit({ open: this.open });\n }\n\n @Watch('disabled')\n handleDisabledChange() {\n if (!this.triggerElem) return;\n\n // set 'disabled' attribute based on 'this.disabled' value, ensuring consistent state handling\n if (!this.disabled) {\n this.triggerElem?.removeAttribute('disabled');\n return;\n }\n this.triggerElem?.setAttribute('disabled', 'true');\n }\n\n // Events section\n // Requires JSDocs for public API documentation\n // ==============================================\n\n /** Callback handler to be called when the dropdown panel is opened or closed. */\n @Event() bqOpen: EventEmitter<{ open: boolean }>;\n\n // Component lifecycle events\n // Ordered by their natural call order\n // =====================================\n\n componentDidLoad() {\n this.triggerElem = this.el.querySelector('[slot=\"trigger\"]');\n this.handleDisabledChange();\n }\n\n // Listeners\n // ==============\n\n @Listen('bqSelect', { passive: true })\n onItemSelect() {\n if (this.keepOpenOnSelect) return;\n\n this.open = false;\n }\n\n /** Listens for the 'click' event on the document object\n * and closes the dropdown panel if the click is outside the component.\n */\n @Listen('click', { target: 'document', passive: true })\n onClickOutside(event: MouseEvent) {\n if (!this.open || isEventTargetChildOfElement(event, this.el)) return;\n\n // Close when clicking outside of the close element\n this.open = false;\n }\n\n @Listen('keyup', { target: 'window', passive: true })\n onEscape(event: KeyboardEvent) {\n if (!this.open) return;\n // Close the panel when pressing Escape or when pressing Tab and the component loses focus.\n if (event.key === 'Escape' || (event.key === 'Tab' && !isEventTargetChildOfElement(event, this.el))) {\n this.open = false;\n }\n }\n\n @Listen('scroll', { target: 'window', passive: true, capture: true })\n handleScrollEvent() {\n if (!this.open || this.disableScrollLock) return;\n\n // Close the panel when the scroll event is triggered.\n // This is useful for those cases where the floating panel is inside a scrollable container.\n // For example, a select inside a dialog, drawer, etc.\n // ⚠️ Notice that document body scroll lock is handled via the `scrollLock` utility.\n this.open = false;\n }\n\n // Public methods API\n // These methods are exposed on the host element.\n // Always use two lines.\n // Public Methods must be async.\n // Requires JSDocs for public API documentation.\n // ===============================================\n\n // Local methods\n // Internal business logic.\n // These methods cannot be called from the host element.\n // =======================================================\n\n private togglePanel = (): void => {\n // Don't toggle the panel if the component is disabled or the trigger element is disabled\n if (this.disabled || this.triggerElem?.hasAttribute('disabled')) return;\n\n this.open = !this.open;\n };\n\n // render() function\n // Always the last one in the class.\n // ===================================\n\n render() {\n const style = {\n ...(this.panelHeight && { '--bq-panel--height': this.panelHeight }),\n };\n\n return (\n <div class=\"bq-dropdown\" part=\"base\">\n {/* TRIGGER CONTAINER */}\n <div\n class=\"bq-dropdown__trigger block\"\n aria-controls={this.dropdownPanelId}\n aria-haspopup=\"true\"\n onClick={this.togglePanel}\n part=\"trigger\"\n >\n <slot name=\"trigger\" />\n </div>\n {/* PANEL */}\n <bq-panel\n style={style}\n id={this.dropdownPanelId}\n class=\"bq-dropdown__panel\"\n disableScrollLock={this.disableScrollLock}\n distance={this.distance}\n placement={this.placement}\n open={this.open}\n sameWidth={this.sameWidth}\n skidding={this.skidding}\n strategy={this.strategy}\n role=\"group\"\n part=\"dropdown\"\n exportparts=\"panel\"\n >\n <slot />\n </bq-panel>\n </div>\n );\n }\n}\n","/* -------------------------------------------------------------------------- */\n/* Panel styles */\n/* -------------------------------------------------------------------------- */\n\n@import './bq-panel.variables';\n\n:host {\n @apply block;\n}\n\n.bq-panel {\n @include animation-fade-in;\n @apply fixed z-[--bq-panel-z-index] overflow-y-auto overflow-x-hidden is-[--bq-panel--width] max-bs-[--bq-panel--height];\n @apply rounded-[--bq-panel--border-radius] bg-[--bq-panel--background] shadow-[shadow:--bq-panel--box-shadow];\n @apply pe-[--bq-panel--padding-end] ps-[--bq-panel--padding-start] p-b-[--bq-panel--paddingY];\n @apply border-[length:--bq-panel--border-width] border-[color:--bq-panel--border-color];\n\n border-style: var(--bq-panel--border-style);\n}\n","import { ReferenceElement } from '@floating-ui/dom';\nimport { Component, Element, h, Prop, Watch } from '@stencil/core';\n\nimport type { Placement } from '../../services/interfaces';\nimport { FloatingUI } from '../../services/libraries';\nimport { isClient, lockBodyScroll, unlockBodyScroll } from '../../shared/utils';\n\n/**\n * The Panel component is a versatile and essential element used to wrap and display content in a floating panel.\n *\n * @example How to use it\n * ```html\n * <bq-panel open>\n * <div>Panel content</div>\n * </bq-panel>\n * ```\n *\n * @status stable\n *\n * @attr {number} distance - Represents the distance (gutter or margin) between the panel and the trigger element.\n * @attr {\"top\" | \"bottom\" | \"left\" | \"right\" | \"top-start\" | \"top-end\" | \"bottom-start\" | \"bottom-end\" | \"left-start\" | \"left-end\" | \"right-start\" | \"right-end\"} placement - Position of the panel.\n * @attr {boolean} open - If true, the panel will be visible.\n * @attr {boolean} same-width - Whether the panel should have the same width as the trigger element.\n * @attr {number} skidding - Represents the skidding between the panel and the trigger element.\n * @attr {\"fixed\" | \"absolute\"} strategy - Defines the strategy to position the panel.\n *\n * @slot - The content of the panel.\n *\n * @part panel - The `<div>` element used to display and style the panel\n *\n * @prop --bq-panel--background - Panel background color\n * @prop --bq-panel--border-color - Panel border color\n * @prop --bq-panel--border-radius - Panel border radius\n * @prop --bq-panel--border-style - Panel border style\n * @prop --bq-panel--border-width - Panel border width\n * @prop --bq-panel--box-shadow - Panel box shadow\n * @prop --bq-panel--padding - Panel padding\n * @prop --bq-panel--height - Panel height\n * @prop --bq-panel--width - Panel width\n * @prop --bq-panel-z-index - Panel z-index applied when opened\n */\n@Component({\n tag: 'bq-panel',\n styleUrl: './scss/bq-panel.scss',\n shadow: true,\n})\nexport class BqPanel {\n // Own Properties\n // ====================\n\n private panel: HTMLElement;\n private floatingUI: FloatingUI;\n private trigger: ReferenceElement;\n\n // Reference to host HTML element\n // ===================================\n\n @Element() el!: HTMLBqPanelElement;\n\n // State() variables\n // Inlined decorator, alphabetical order\n // =======================================\n\n // Public Property API\n // ========================\n\n /** If true, the panel will not lock the page body scroll when open. */\n @Prop({ reflect: true }) disableScrollLock?: boolean = false;\n\n /** Represents the distance (gutter or margin) between the panel and the trigger element. */\n @Prop({ reflect: true }) distance?: number = 4;\n\n /** Position of the panel */\n @Prop({ reflect: true }) placement?: Placement = 'bottom-start';\n\n /** If true, the panel will be visible. */\n @Prop({ reflect: true, mutable: true }) open?: boolean = false;\n\n /** Whether the panel should have the same width as the trigger element */\n @Prop({ reflect: true }) sameWidth?: boolean = false;\n\n /** Represents the skidding between the panel and the trigger element. */\n @Prop({ reflect: true }) skidding?: number = 0;\n\n /** Defines the strategy to position the panel */\n @Prop({ reflect: true }) strategy?: 'fixed' | 'absolute' = 'fixed';\n\n // Prop lifecycle events\n // =======================\n\n @Watch('open')\n handleOpenChange() {\n if (!this.open) {\n this.hidePanel();\n return;\n }\n\n this.showPanel();\n }\n\n @Watch('distance')\n @Watch('placement')\n @Watch('sameWidth')\n @Watch('skidding')\n @Watch('strategy')\n onPropChange() {\n if (!isClient()) return;\n\n this.floatingUI?.init({ ...this.options });\n }\n\n // Events section\n // Requires JSDocs for public API documentation\n // ==============================================\n\n // Component lifecycle events\n // Ordered by their natural call order\n // =====================================\n\n componentDidLoad() {\n if (!isClient()) return;\n\n // We need to find the trigger element from the parent to position the panel relative to it.\n const parentTrigger = this.el.parentElement.querySelector('div[part=\"trigger\"]');\n\n if (!parentTrigger) return;\n\n this.trigger = {\n getBoundingClientRect: () => parentTrigger.getBoundingClientRect(),\n contextElement: parentTrigger,\n };\n\n this.floatingUI = new FloatingUI(this.trigger, this.panel, { ...this.options });\n this.handleOpenChange();\n }\n\n disconnectedCallback() {\n if (!isClient()) return;\n\n this.floatingUI?.destroy();\n\n // Ensure scroll lock is removed if the component is disconnected while the panel is open.\n if (this.open && !this.disableScrollLock) {\n unlockBodyScroll();\n }\n }\n\n // Listeners\n // ==============\n\n // Public methods API\n // These methods are exposed on the host element.\n // Always use two lines.\n // Public Methods must be async.\n // Requires JSDocs for public API documentation.\n // ===============================================\n\n // Local methods\n // Internal business logic.\n // These methods cannot be called from the host element.\n // =======================================================\n\n private showPanel() {\n if (!isClient()) return;\n\n this.floatingUI?.update();\n\n // Lock the body scroll if the disableScrollLock prop is not true.\n if (!this.disableScrollLock) {\n lockBodyScroll();\n }\n }\n\n private async hidePanel() {\n this.open = false;\n\n // Unlock the body scroll if the disableScrollLock prop is not true.\n if (isClient() && !this.disableScrollLock) {\n unlockBodyScroll();\n }\n }\n\n private get options() {\n return {\n distance: this.distance,\n placement: this.placement,\n sameWidth: this.sameWidth,\n skidding: this.skidding,\n strategy: this.strategy,\n };\n }\n\n // render() function\n // Always the last one in the class.\n // ===================================\n\n render() {\n return (\n <div\n class=\"bq-panel\"\n ref={(el) => (this.panel = el)}\n aria-hidden={!this.open ? 'true' : 'false'}\n hidden={!this.open}\n part=\"panel\"\n >\n <slot />\n </div>\n );\n }\n}\n"],"names":["event","isEventTargetChildOfElement","h","isClient","FloatingUI","unlockBodyScroll","lockBodyScroll"],"mappings":"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"}
1
+ {"version":3,"file":"bq-dropdown.bq-panel.entry.cjs.js","sources":["../../packages/beeq/src/components/dropdown/scss/bq-dropdown.scss?tag=bq-dropdown&encapsulation=shadow","../../packages/beeq/src/components/dropdown/bq-dropdown.tsx","../../packages/beeq/src/components/panel/scss/bq-panel.scss?tag=bq-panel&encapsulation=shadow","../../packages/beeq/src/components/panel/bq-panel.tsx"],"sourcesContent":["/* -------------------------------------------------------------------------- */\n/* Dropdown styles */\n/* -------------------------------------------------------------------------- */\n\n:host {\n @apply relative inline-block;\n}\n","import type { EventEmitter } from '@stencil/core';\nimport { Component, Element, Event, h, Listen, Prop, Watch } from '@stencil/core';\n\nimport type { Placement } from '../../services/interfaces';\nimport { isEventTargetChildOfElement } from '../../shared/utils';\n\nlet id = 0;\n\n/**\n * The Dropdown Component is commonly used when presenting a list of selectable options that are too numerous to fit comfortably on the screen.\n * They provide an efficient way to save space and present a long list of options in a compact and organized manner.\n *\n * @example How to use it\n * ```html\n * <bq-dropdown placement=\"bottom-start\">\n * <bq-button slot=\"trigger\">Dropdown</bq-button>\n * <bq-option-list>\n * <bq-option value=\"users\">...</bq-option>\n * <bq-option value=\"user\">...</bq-option>\n * <bq-option value=\"dashboard\">...</bq-option>\n * <bq-option value=\"settings\">...</bq-option>\n * <bq-option value=\"logout\">...</bq-option>\n * </bq-option-list>\n * </bq-dropdown>\n * ```\n *\n * @documentation https://www.beeq.design/3d466e231/p/47ff4b-dropdown\n * @status stable\n *\n * @dependency bq-panel\n *\n * @attr {boolean} disabled - If true, the dropdown panel will be visible and won't be shown.\n * @attr {number} distance - Represents the distance (gutter or margin) between the panel and the trigger element.\n * @attr {boolean} keep-open-on-select - If true, the panel will remain open after a selection is made.\n * @attr {\"top\" | \"bottom\" | \"left\" | \"right\" | \"top-start\" | \"top-end\" | \"bottom-start\" | \"bottom-end\" | \"left-start\" | \"left-end\" | \"right-start\" | \"right-end\"} placement - Position of the panel.\n * @attr {boolean} open - If true, the panel will be visible.\n * @attr {string} panel-height - When set, it will override the height of the dropdown panel.\n * @attr {boolean} same-width - Whether the panel should have the same width as the trigger element.\n * @attr {number} skidding - Represents the skidding between the panel and the trigger element.\n * @attr {\"fixed\" | \"absolute\"} strategy - Defines the strategy to position the panel.\n *\n * @event bqOpen - Callback handler to be called when the dropdown panel is opened or closed.\n *\n * @slot trigger - The trigger element that opens the dropdown panel.\n * @slot - The content of the dropdown panel.\n *\n * @part base - The component's internal wrapper.\n * @part dropdown - The `<bq-panel>` element used under the hood to display the dropdown panel.\n * @part panel - The `<div>` element used to display and style the panel inside the `<bq-panel>` element.\n * @part trigger - The `<div>` element that hosts the trigger element.\n *\n * @cssprop --bq-panel--background - Panel background color\n * @cssprop --bq-panel--border-color - Panel border color\n * @cssprop --bq-panel--border-radius - Panel border radius\n * @cssprop --bq-panel--border-style - Panel border style\n * @cssprop --bq-panel--border-width - Panel border width\n * @cssprop --bq-panel--box-shadow - Panel box shadow\n * @cssprop --bq-panel--padding - Panel padding\n * @cssprop --bq-panel--height - Panel height\n * @cssprop --bq-panel--width - Panel width\n * @cssprop --bq-panel-z-index - Panel z-index applied when opened\n */\n@Component({\n tag: 'bq-dropdown',\n styleUrl: './scss/bq-dropdown.scss',\n shadow: true,\n})\nexport class BqDropdown {\n // Own Properties\n // ====================\n\n private dropdownPanelId = `bq-dropdown-panel-${++id}`;\n private triggerElem: HTMLElement;\n\n // Reference to host HTML element\n // ===================================\n\n @Element() el!: HTMLBqDropdownElement;\n\n // State() variables\n // Inlined decorator, alphabetical order\n // =======================================\n\n // Public Property API\n // ========================\n\n /** If true, the dropdown panel will not lock the page body scroll when open. */\n @Prop({ reflect: true }) disableScrollLock?: boolean = false;\n\n /** If true, the dropdown panel will be visible and won't be shown. */\n @Prop({ reflect: true }) disabled?: boolean = false;\n\n /** Represents the distance (gutter or margin) between the panel and the trigger element. */\n @Prop({ reflect: true }) distance?: number = 4;\n\n /** If true, the panel will remain open after a selection is made. */\n @Prop({ reflect: true }) keepOpenOnSelect?: boolean = false;\n\n /** Position of the panel */\n @Prop({ reflect: true }) placement?: Placement = 'bottom-start';\n\n /** If true, the panel will be visible. */\n @Prop({ reflect: true, mutable: true }) open?: boolean = false;\n\n /** When set, it will override the height of the dropdown panel */\n @Prop({ reflect: true }) panelHeight?: string;\n\n /** Whether the panel should have the same width as the trigger element */\n @Prop({ reflect: true }) sameWidth?: boolean = false;\n\n /** Represents the skidding between the panel and the trigger element. */\n @Prop({ reflect: true }) skidding?: number = 0;\n\n /** Defines the strategy to position the panel */\n @Prop({ reflect: true }) strategy?: 'fixed' | 'absolute' = 'fixed';\n\n // Prop lifecycle events\n // =======================\n\n @Watch('open')\n onOpenChange() {\n this.bqOpen.emit({ open: this.open });\n }\n\n @Watch('disabled')\n handleDisabledChange() {\n if (!this.triggerElem) return;\n\n // set 'disabled' attribute based on 'this.disabled' value, ensuring consistent state handling\n if (!this.disabled) {\n this.triggerElem?.removeAttribute('disabled');\n return;\n }\n this.triggerElem?.setAttribute('disabled', 'true');\n }\n\n // Events section\n // Requires JSDocs for public API documentation\n // ==============================================\n\n /** Callback handler to be called when the dropdown panel is opened or closed. */\n @Event() bqOpen: EventEmitter<{ open: boolean }>;\n\n // Component lifecycle events\n // Ordered by their natural call order\n // =====================================\n\n componentDidLoad() {\n this.triggerElem = this.el.querySelector('[slot=\"trigger\"]');\n this.triggerElem?.addEventListener('click', this.togglePanel);\n\n this.handleDisabledChange();\n }\n\n disconnectedCallback() {\n this.triggerElem?.removeEventListener('click', this.togglePanel);\n }\n\n // Listeners\n // ==============\n\n @Listen('bqSelect', { passive: true })\n onItemSelect() {\n if (this.keepOpenOnSelect) return;\n\n this.open = false;\n }\n\n /** Listens for the 'click' event on the document object\n * and closes the dropdown panel if the click is outside the component.\n */\n @Listen('click', { target: 'document', passive: true })\n onClickOutside(event: MouseEvent) {\n if (!this.open || isEventTargetChildOfElement(event, this.el)) return;\n\n // Close when clicking outside of the close element\n this.open = false;\n }\n\n @Listen('keyup', { target: 'window', passive: true })\n onEscape(event: KeyboardEvent) {\n if (!this.open) return;\n // Close the panel when pressing Escape or when pressing Tab and the component loses focus.\n if (event.key === 'Escape' || (event.key === 'Tab' && !isEventTargetChildOfElement(event, this.el))) {\n this.open = false;\n }\n }\n\n @Listen('scroll', { target: 'window', passive: true, capture: true })\n handleScrollEvent() {\n if (!this.open || this.disableScrollLock) return;\n\n // Close the panel when the scroll event is triggered.\n // This is useful for those cases where the floating panel is inside a scrollable container.\n // For example, a select inside a dialog, drawer, etc.\n // ⚠️ Notice that document body scroll lock is handled via the `scrollLock` utility.\n this.open = false;\n }\n\n // Public methods API\n // These methods are exposed on the host element.\n // Always use two lines.\n // Public Methods must be async.\n // Requires JSDocs for public API documentation.\n // ===============================================\n\n // Local methods\n // Internal business logic.\n // These methods cannot be called from the host element.\n // =======================================================\n\n private togglePanel = (): void => {\n const isDisabled = this.disabled || this.triggerElem?.hasAttribute('disabled');\n if (isDisabled) return;\n\n this.open = !this.open;\n };\n\n // render() function\n // Always the last one in the class.\n // ===================================\n\n render() {\n const style = {\n ...(this.panelHeight && { '--bq-panel--height': this.panelHeight }),\n };\n\n return (\n <div class=\"bq-dropdown\" part=\"base\">\n {/* TRIGGER CONTAINER */}\n <div\n aria-controls={this.dropdownPanelId}\n aria-haspopup=\"true\"\n class=\"bq-dropdown__trigger block\"\n part=\"trigger\"\n >\n <slot name=\"trigger\" />\n </div>\n {/* PANEL */}\n <bq-panel\n class=\"bq-dropdown__panel\"\n disableScrollLock={this.disableScrollLock}\n distance={this.distance}\n exportparts=\"panel\"\n id={this.dropdownPanelId}\n open={this.open}\n part=\"dropdown\"\n placement={this.placement}\n sameWidth={this.sameWidth}\n skidding={this.skidding}\n strategy={this.strategy}\n style={style}\n >\n <slot />\n </bq-panel>\n </div>\n );\n }\n}\n","/* -------------------------------------------------------------------------- */\n/* Panel styles */\n/* -------------------------------------------------------------------------- */\n\n@import './bq-panel.variables';\n\n:host {\n @apply block;\n}\n\n.bq-panel {\n @include animation-fade-in;\n @apply fixed z-[--bq-panel-z-index] overflow-y-auto overflow-x-hidden is-[--bq-panel--width] max-bs-[--bq-panel--height];\n @apply rounded-[--bq-panel--border-radius] bg-[--bq-panel--background] shadow-[shadow:--bq-panel--box-shadow];\n @apply pe-[--bq-panel--padding-end] ps-[--bq-panel--padding-start] p-b-[--bq-panel--paddingY];\n @apply border-[length:--bq-panel--border-width] border-[color:--bq-panel--border-color];\n\n border-style: var(--bq-panel--border-style);\n}\n","import type { ReferenceElement } from '@floating-ui/dom';\nimport { Component, Element, h, Prop, Watch } from '@stencil/core';\n\nimport type { Placement } from '../../services/interfaces';\nimport { FloatingUI } from '../../services/libraries';\nimport { isClient, lockBodyScroll, unlockBodyScroll } from '../../shared/utils';\n\n/**\n * The Panel component is a versatile and essential element used to wrap and display content in a floating panel.\n *\n * @example How to use it\n * ```html\n * <bq-panel open>\n * <div>Panel content</div>\n * </bq-panel>\n * ```\n *\n * @status stable\n *\n * @attr {number} distance - Represents the distance (gutter or margin) between the panel and the trigger element.\n * @attr {\"top\" | \"bottom\" | \"left\" | \"right\" | \"top-start\" | \"top-end\" | \"bottom-start\" | \"bottom-end\" | \"left-start\" | \"left-end\" | \"right-start\" | \"right-end\"} placement - Position of the panel.\n * @attr {boolean} open - If true, the panel will be visible.\n * @attr {boolean} same-width - Whether the panel should have the same width as the trigger element.\n * @attr {number} skidding - Represents the skidding between the panel and the trigger element.\n * @attr {\"fixed\" | \"absolute\"} strategy - Defines the strategy to position the panel.\n *\n * @slot - The content of the panel.\n *\n * @part panel - The `<div>` element used to display and style the panel\n *\n * @prop --bq-panel--background - Panel background color\n * @prop --bq-panel--border-color - Panel border color\n * @prop --bq-panel--border-radius - Panel border radius\n * @prop --bq-panel--border-style - Panel border style\n * @prop --bq-panel--border-width - Panel border width\n * @prop --bq-panel--box-shadow - Panel box shadow\n * @prop --bq-panel--padding - Panel padding\n * @prop --bq-panel--height - Panel height\n * @prop --bq-panel--width - Panel width\n * @prop --bq-panel-z-index - Panel z-index applied when opened\n */\n@Component({\n tag: 'bq-panel',\n styleUrl: './scss/bq-panel.scss',\n shadow: true,\n})\nexport class BqPanel {\n // Own Properties\n // ====================\n\n private panel: HTMLElement;\n private floatingUI: FloatingUI;\n private trigger: ReferenceElement;\n\n // Reference to host HTML element\n // ===================================\n\n @Element() el!: HTMLBqPanelElement;\n\n // State() variables\n // Inlined decorator, alphabetical order\n // =======================================\n\n // Public Property API\n // ========================\n\n /** If true, the panel will not lock the page body scroll when open. */\n @Prop({ reflect: true }) disableScrollLock?: boolean = false;\n\n /** Represents the distance (gutter or margin) between the panel and the trigger element. */\n @Prop({ reflect: true }) distance?: number = 4;\n\n /** Position of the panel */\n @Prop({ reflect: true }) placement?: Placement = 'bottom-start';\n\n /** If true, the panel will be visible. */\n @Prop({ reflect: true, mutable: true }) open?: boolean = false;\n\n /** Whether the panel should have the same width as the trigger element */\n @Prop({ reflect: true }) sameWidth?: boolean = false;\n\n /** Represents the skidding between the panel and the trigger element. */\n @Prop({ reflect: true }) skidding?: number = 0;\n\n /** Defines the strategy to position the panel */\n @Prop({ reflect: true }) strategy?: 'fixed' | 'absolute' = 'fixed';\n\n // Prop lifecycle events\n // =======================\n\n @Watch('open')\n handleOpenChange() {\n if (!this.open) {\n this.hidePanel();\n return;\n }\n\n this.showPanel();\n }\n\n @Watch('distance')\n @Watch('placement')\n @Watch('sameWidth')\n @Watch('skidding')\n @Watch('strategy')\n onPropChange() {\n if (!isClient()) return;\n\n this.floatingUI?.init({ ...this.options });\n }\n\n // Events section\n // Requires JSDocs for public API documentation\n // ==============================================\n\n // Component lifecycle events\n // Ordered by their natural call order\n // =====================================\n\n componentDidLoad() {\n if (!isClient()) return;\n\n // We need to find the trigger element from the parent to position the panel relative to it.\n const parentTrigger = this.el.parentElement.querySelector('div[part=\"trigger\"]');\n\n if (!parentTrigger) return;\n\n this.trigger = {\n getBoundingClientRect: () => parentTrigger.getBoundingClientRect(),\n contextElement: parentTrigger,\n };\n\n this.floatingUI = new FloatingUI(this.trigger, this.panel, { ...this.options });\n this.handleOpenChange();\n }\n\n disconnectedCallback() {\n if (!isClient()) return;\n\n this.floatingUI?.destroy();\n\n // Ensure scroll lock is removed if the component is disconnected while the panel is open.\n if (this.open && !this.disableScrollLock) {\n unlockBodyScroll();\n }\n }\n\n // Listeners\n // ==============\n\n // Public methods API\n // These methods are exposed on the host element.\n // Always use two lines.\n // Public Methods must be async.\n // Requires JSDocs for public API documentation.\n // ===============================================\n\n // Local methods\n // Internal business logic.\n // These methods cannot be called from the host element.\n // =======================================================\n\n private showPanel() {\n if (!isClient()) return;\n\n this.floatingUI?.update();\n\n // Lock the body scroll if the disableScrollLock prop is not true.\n if (!this.disableScrollLock) {\n lockBodyScroll();\n }\n }\n\n private async hidePanel() {\n this.open = false;\n\n // Unlock the body scroll if the disableScrollLock prop is not true.\n if (isClient() && !this.disableScrollLock) {\n unlockBodyScroll();\n }\n }\n\n private get options() {\n return {\n distance: this.distance,\n placement: this.placement,\n sameWidth: this.sameWidth,\n skidding: this.skidding,\n strategy: this.strategy,\n };\n }\n\n // render() function\n // Always the last one in the class.\n // ===================================\n\n render() {\n return (\n <div\n aria-hidden={!this.open ? 'true' : 'false'}\n class=\"bq-panel\"\n hidden={!this.open}\n part=\"panel\"\n ref={(el) => {\n this.panel = el;\n }}\n >\n <slot />\n </div>\n );\n }\n}\n"],"names":["event","isEventTargetChildOfElement","h","isClient","FloatingUI","unlockBodyScroll","lockBodyScroll"],"mappings":"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"}
@@ -4,9 +4,9 @@
4
4
  */
5
5
  'use strict';
6
6
 
7
- var index = require('./index-CLoLF-_B.js');
7
+ var index = require('./index-g8MkV15i.js');
8
8
  var event = require('./event-BhuEFC-I.js');
9
- var index$1 = require('./index-tFN0ax76.js');
9
+ var index$1 = require('./index-D7RDSS0K.js');
10
10
  var isClient = require('./isClient-CrXhXxbA.js');
11
11
  var scrollLock = require('./scrollLock-OTzU3x3y.js');
12
12
 
@@ -73,8 +73,12 @@ const BqDropdown = class {
73
73
  // =====================================
74
74
  componentDidLoad() {
75
75
  this.triggerElem = this.el.querySelector('[slot="trigger"]');
76
+ this.triggerElem?.addEventListener('click', this.togglePanel);
76
77
  this.handleDisabledChange();
77
78
  }
79
+ disconnectedCallback() {
80
+ this.triggerElem?.removeEventListener('click', this.togglePanel);
81
+ }
78
82
  // Listeners
79
83
  // ==============
80
84
  onItemSelect() {
@@ -119,8 +123,8 @@ const BqDropdown = class {
119
123
  // These methods cannot be called from the host element.
120
124
  // =======================================================
121
125
  togglePanel = () => {
122
- // Don't toggle the panel if the component is disabled or the trigger element is disabled
123
- if (this.disabled || this.triggerElem?.hasAttribute('disabled'))
126
+ const isDisabled = this.disabled || this.triggerElem?.hasAttribute('disabled');
127
+ if (isDisabled)
124
128
  return;
125
129
  this.open = !this.open;
126
130
  };
@@ -131,7 +135,7 @@ const BqDropdown = class {
131
135
  const style = {
132
136
  ...(this.panelHeight && { '--bq-panel--height': this.panelHeight }),
133
137
  };
134
- return (index.h("div", { key: '41c44113b7496cdcfec26e5bcdb1d89a56ca37eb', class: "bq-dropdown", part: "base" }, index.h("div", { key: '4dd4bde1af1c60b1b25961fbe206f02ef275ce0c', class: "bq-dropdown__trigger block", "aria-controls": this.dropdownPanelId, "aria-haspopup": "true", onClick: this.togglePanel, part: "trigger" }, index.h("slot", { key: '6cdebf21d0b79076a47ee69847ed8b44257c23ae', name: "trigger" })), index.h("bq-panel", { key: '1b1ce13ffef3b27ba390aac6262839a56723674a', style: style, id: this.dropdownPanelId, class: "bq-dropdown__panel", disableScrollLock: this.disableScrollLock, distance: this.distance, placement: this.placement, open: this.open, sameWidth: this.sameWidth, skidding: this.skidding, strategy: this.strategy, role: "group", part: "dropdown", exportparts: "panel" }, index.h("slot", { key: '8c09398a557856632a5b8ff55fda03fc8a731394' }))));
138
+ return (index.h("div", { key: 'ae583f26db0f5dd9ed8a9b1bad4700fa1f43d64d', class: "bq-dropdown", part: "base" }, index.h("div", { key: '5ed63cafc2149a554cf19f448b84f74b7e90ad4e', "aria-controls": this.dropdownPanelId, "aria-haspopup": "true", class: "bq-dropdown__trigger block", part: "trigger" }, index.h("slot", { key: '4a0c6d8df5b8ea1be06db2b95f30603348b6d86a', name: "trigger" })), index.h("bq-panel", { key: '863be4b92b73f3769edcabee007c622270074cb1', class: "bq-dropdown__panel", disableScrollLock: this.disableScrollLock, distance: this.distance, exportparts: "panel", id: this.dropdownPanelId, open: this.open, part: "dropdown", placement: this.placement, sameWidth: this.sameWidth, skidding: this.skidding, strategy: this.strategy, style: style }, index.h("slot", { key: '94c1d32fbb1f0e19bce48851443e52c5471a09ed' }))));
135
139
  }
136
140
  static get watchers() { return {
137
141
  "open": ["onOpenChange"],
@@ -255,7 +259,9 @@ const BqPanel = class {
255
259
  // Always the last one in the class.
256
260
  // ===================================
257
261
  render() {
258
- return (index.h("div", { key: '23544597590fa3902b7601c8f47d012f2bf7b75d', class: "bq-panel", ref: (el) => (this.panel = el), "aria-hidden": !this.open ? 'true' : 'false', hidden: !this.open, part: "panel" }, index.h("slot", { key: '6bdf3a5bd8307b1a2c9ead52a23de47abf8ce28d' })));
262
+ return (index.h("div", { key: '7682fbe1b1f2532ab3e067719c1f13de4963d929', "aria-hidden": !this.open ? 'true' : 'false', class: "bq-panel", hidden: !this.open, part: "panel", ref: (el) => {
263
+ this.panel = el;
264
+ } }, index.h("slot", { key: '052cc8005930e58afa9d4c8e83e550a20cdc4f1b' })));
259
265
  }
260
266
  static get watchers() { return {
261
267
  "open": ["handleOpenChange"],
@@ -271,5 +277,3 @@ BqPanel.style = bqPanelCss;
271
277
  exports.bq_dropdown = BqDropdown;
272
278
  exports.bq_panel = BqPanel;
273
279
  //# sourceMappingURL=bq-dropdown.bq-panel.entry.cjs.js.map
274
-
275
- //# sourceMappingURL=bq-dropdown_2.cjs.entry.js.map