@beeq/core 1.8.0-beta.4 → 1.8.0-beta.5

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 (355) 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/index.esm.js +12 -12
  4. package/dist/beeq/{p-7ea146b8.entry.js → p-01fe8efb.entry.js} +1 -3
  5. package/dist/beeq/{p-7ea146b8.entry.js.map → p-01fe8efb.entry.js.map} +1 -1
  6. package/dist/beeq/{p-d9bcaeed.entry.js → p-03373320.entry.js} +1 -3
  7. package/dist/beeq/{p-d9bcaeed.entry.js.map → p-03373320.entry.js.map} +1 -1
  8. package/dist/beeq/{p-e06c8398.entry.js → p-03c586df.entry.js} +19 -21
  9. package/dist/beeq/p-03c586df.entry.js.map +1 -0
  10. package/dist/beeq/{p-a94d15f9.entry.js → p-0a981080.entry.js} +1 -3
  11. package/dist/beeq/{p-a94d15f9.entry.js.map → p-0a981080.entry.js.map} +1 -1
  12. package/dist/beeq/{p-03e23dca.entry.js → p-0ce76c54.entry.js} +1 -3
  13. package/dist/beeq/{p-03e23dca.entry.js.map → p-0ce76c54.entry.js.map} +1 -1
  14. package/dist/beeq/{p-f5eb8fff.entry.js → p-2bb049ae.entry.js} +2 -4
  15. package/dist/beeq/{p-f5eb8fff.entry.js.map → p-2bb049ae.entry.js.map} +1 -1
  16. package/dist/beeq/{p-8b6fc3ef.entry.js → p-3043c826.entry.js} +5 -7
  17. package/dist/beeq/{p-8b6fc3ef.entry.js.map → p-3043c826.entry.js.map} +1 -1
  18. package/dist/beeq/{p-fe57aa48.entry.js → p-38e70f78.entry.js} +1 -3
  19. package/dist/beeq/{p-fe57aa48.entry.js.map → p-38e70f78.entry.js.map} +1 -1
  20. package/dist/beeq/{p-818cd6d7.entry.js → p-398bfb48.entry.js} +1 -3
  21. package/dist/beeq/{p-818cd6d7.entry.js.map → p-398bfb48.entry.js.map} +1 -1
  22. package/dist/beeq/{p-cdd5b425.entry.js → p-3f9a348a.entry.js} +2 -4
  23. package/dist/beeq/{p-cdd5b425.entry.js.map → p-3f9a348a.entry.js.map} +1 -1
  24. package/dist/beeq/{p-27974392.entry.js → p-41ac1d84.entry.js} +2 -4
  25. package/dist/beeq/{p-27974392.entry.js.map → p-41ac1d84.entry.js.map} +1 -1
  26. package/dist/beeq/{p-908c57e9.entry.js → p-4eabcd51.entry.js} +1 -3
  27. package/dist/beeq/{p-908c57e9.entry.js.map → p-4eabcd51.entry.js.map} +1 -1
  28. package/dist/beeq/{p-d2f682a9.entry.js → p-544deac1.entry.js} +3 -5
  29. package/dist/beeq/{p-d2f682a9.entry.js.map → p-544deac1.entry.js.map} +1 -1
  30. package/dist/beeq/{p-f5d59aba.entry.js → p-5ff6621d.entry.js} +2 -4
  31. package/dist/beeq/{p-f5d59aba.entry.js.map → p-5ff6621d.entry.js.map} +1 -1
  32. package/dist/beeq/{p-3e3fd7b5.entry.js → p-60cbc966.entry.js} +1 -3
  33. package/dist/beeq/{p-3e3fd7b5.entry.js.map → p-60cbc966.entry.js.map} +1 -1
  34. package/dist/beeq/{p-98de0101.entry.js → p-68ff188d.entry.js} +1 -3
  35. package/dist/beeq/{p-98de0101.entry.js.map → p-68ff188d.entry.js.map} +1 -1
  36. package/dist/beeq/{p-7aa47927.entry.js → p-69c766a3.entry.js} +9 -11
  37. package/dist/beeq/p-69c766a3.entry.js.map +1 -0
  38. package/dist/beeq/{p-89665044.entry.js → p-76486949.entry.js} +2 -4
  39. package/dist/beeq/{p-89665044.entry.js.map → p-76486949.entry.js.map} +1 -1
  40. package/dist/beeq/{p-0fce4de9.js → p-83d6d9ad.js} +2 -4
  41. package/dist/beeq/{p-0fce4de9.js.map → p-83d6d9ad.js.map} +1 -1
  42. package/dist/beeq/{p-03749fbf.entry.js → p-8b16f130.entry.js} +1 -3
  43. package/dist/beeq/{p-03749fbf.entry.js.map → p-8b16f130.entry.js.map} +1 -1
  44. package/dist/beeq/{p-b877d662.entry.js → p-8e1c6978.entry.js} +80 -49
  45. package/dist/beeq/p-8e1c6978.entry.js.map +1 -0
  46. package/dist/beeq/p-8f1c68c0.js +71 -0
  47. package/dist/beeq/p-8f1c68c0.js.map +1 -0
  48. package/dist/beeq/{p-5d51cadd.entry.js → p-9cab14ee.entry.js} +1 -3
  49. package/dist/beeq/{p-5d51cadd.entry.js.map → p-9cab14ee.entry.js.map} +1 -1
  50. package/dist/beeq/{p-7695fc8d.entry.js → p-a23b23c4.entry.js} +1 -3
  51. package/dist/beeq/{p-7695fc8d.entry.js.map → p-a23b23c4.entry.js.map} +1 -1
  52. package/dist/beeq/{p-2b2d8b0c.entry.js → p-a608a4fb.entry.js} +2 -4
  53. package/dist/beeq/{p-2b2d8b0c.entry.js.map → p-a608a4fb.entry.js.map} +1 -1
  54. package/dist/beeq/{p-bc60faa1.entry.js → p-aacaaa35.entry.js} +1 -3
  55. package/dist/beeq/{p-bc60faa1.entry.js.map → p-aacaaa35.entry.js.map} +1 -1
  56. package/dist/beeq/{p-d8f7bf11.entry.js → p-b2df1479.entry.js} +1 -3
  57. package/dist/beeq/{p-d8f7bf11.entry.js.map → p-b2df1479.entry.js.map} +1 -1
  58. package/dist/beeq/{p-5d8d6717.entry.js → p-b77b52f2.entry.js} +2 -4
  59. package/dist/beeq/{p-5d8d6717.entry.js.map → p-b77b52f2.entry.js.map} +1 -1
  60. package/dist/beeq/{p-5fcbf15f.entry.js → p-c83bc7fd.entry.js} +10 -11
  61. package/dist/beeq/p-c83bc7fd.entry.js.map +1 -0
  62. package/dist/beeq/{p-e6911710.entry.js → p-cb2b0014.entry.js} +1 -3
  63. package/dist/beeq/{p-e6911710.entry.js.map → p-cb2b0014.entry.js.map} +1 -1
  64. package/dist/beeq/{p-60ab652b.entry.js → p-cfb8829b.entry.js} +1 -3
  65. package/dist/beeq/{p-60ab652b.entry.js.map → p-cfb8829b.entry.js.map} +1 -1
  66. package/dist/beeq/{p-3ed73068.entry.js → p-d7067dae.entry.js} +1 -3
  67. package/dist/beeq/{p-3ed73068.entry.js.map → p-d7067dae.entry.js.map} +1 -1
  68. package/dist/beeq/{p-f69d2900.entry.js → p-d7dc7086.entry.js} +1 -3
  69. package/dist/beeq/{p-f69d2900.entry.js.map → p-d7dc7086.entry.js.map} +1 -1
  70. package/dist/beeq/{p-5a9a73a0.js → p-edfd9767.js} +2 -2
  71. package/dist/beeq/p-edfd9767.js.map +1 -0
  72. package/dist/beeq/{p-ac0d84a6.entry.js → p-f979d79a.entry.js} +1 -3
  73. package/dist/beeq/{p-ac0d84a6.entry.js.map → p-f979d79a.entry.js.map} +1 -1
  74. package/dist/beeq/{p-5a12011a.entry.js → p-faa3be41.entry.js} +1 -3
  75. package/dist/beeq/{p-5a12011a.entry.js.map → p-faa3be41.entry.js.map} +1 -1
  76. package/dist/beeq/{p-bb14b231.entry.js → p-fb20c6eb.entry.js} +2 -4
  77. package/dist/beeq/{p-bb14b231.entry.js.map → p-fb20c6eb.entry.js.map} +1 -1
  78. package/dist/beeq/{p-be746e37.entry.js → p-fe278ecc.entry.js} +2 -4
  79. package/dist/beeq/{p-be746e37.entry.js.map → p-fe278ecc.entry.js.map} +1 -1
  80. package/dist/cjs/assetsPath-8bd8d221.js +77 -0
  81. package/dist/cjs/assetsPath-8bd8d221.js.map +1 -0
  82. package/dist/cjs/beeq.cjs.js +1 -1
  83. package/dist/cjs/bq-accordion-group.cjs.entry.js +0 -1
  84. package/dist/cjs/bq-accordion-group.cjs.entry.js.map +1 -1
  85. package/dist/cjs/bq-accordion.cjs.entry.js +0 -1
  86. package/dist/cjs/bq-accordion.cjs.entry.js.map +1 -1
  87. package/dist/cjs/bq-alert.cjs.entry.js +0 -1
  88. package/dist/cjs/bq-alert.cjs.entry.js.map +1 -1
  89. package/dist/cjs/bq-avatar.cjs.entry.js +0 -1
  90. package/dist/cjs/bq-avatar.cjs.entry.js.map +1 -1
  91. package/dist/cjs/bq-badge.cjs.entry.js +1 -2
  92. package/dist/cjs/bq-badge.cjs.entry.js.map +1 -1
  93. package/dist/cjs/bq-breadcrumb-item.cjs.entry.js +1 -2
  94. package/dist/cjs/bq-breadcrumb-item.cjs.entry.js.map +1 -1
  95. package/dist/cjs/bq-breadcrumb.cjs.entry.js +0 -1
  96. package/dist/cjs/bq-breadcrumb.cjs.entry.js.map +1 -1
  97. package/dist/cjs/bq-button_2.cjs.entry.js +52 -21
  98. package/dist/cjs/bq-button_2.cjs.entry.js.map +1 -1
  99. package/dist/cjs/bq-card.cjs.entry.js +0 -1
  100. package/dist/cjs/bq-card.cjs.entry.js.map +1 -1
  101. package/dist/cjs/bq-checkbox.cjs.entry.js +0 -1
  102. package/dist/cjs/bq-checkbox.cjs.entry.js.map +1 -1
  103. package/dist/cjs/bq-date-picker.cjs.entry.js +1 -2
  104. package/dist/cjs/bq-date-picker.cjs.entry.js.map +1 -1
  105. package/dist/cjs/bq-dialog.cjs.entry.js +1 -2
  106. package/dist/cjs/bq-dialog.cjs.entry.js.map +1 -1
  107. package/dist/cjs/bq-divider.cjs.entry.js +1 -2
  108. package/dist/cjs/bq-divider.cjs.entry.js.map +1 -1
  109. package/dist/cjs/bq-drawer.cjs.entry.js +1 -2
  110. package/dist/cjs/bq-drawer.cjs.entry.js.map +1 -1
  111. package/dist/cjs/bq-empty-state.cjs.entry.js +0 -1
  112. package/dist/cjs/bq-empty-state.cjs.entry.js.map +1 -1
  113. package/dist/cjs/bq-input.cjs.entry.js +1 -2
  114. package/dist/cjs/bq-input.cjs.entry.js.map +1 -1
  115. package/dist/cjs/bq-notification.cjs.entry.js +4 -5
  116. package/dist/cjs/bq-notification.cjs.entry.js.map +1 -1
  117. package/dist/cjs/bq-option-list_2.cjs.entry.js +1 -2
  118. package/dist/cjs/bq-option-list_2.cjs.entry.js.map +1 -1
  119. package/dist/cjs/bq-option.cjs.entry.js +0 -1
  120. package/dist/cjs/bq-option.cjs.entry.js.map +1 -1
  121. package/dist/cjs/bq-page-title.cjs.entry.js +0 -1
  122. package/dist/cjs/bq-page-title.cjs.entry.js.map +1 -1
  123. package/dist/cjs/bq-progress.cjs.entry.js +0 -1
  124. package/dist/cjs/bq-progress.cjs.entry.js.map +1 -1
  125. package/dist/cjs/bq-radio-group.cjs.entry.js +0 -1
  126. package/dist/cjs/bq-radio-group.cjs.entry.js.map +1 -1
  127. package/dist/cjs/bq-select.cjs.entry.js +2 -3
  128. package/dist/cjs/bq-select.cjs.entry.js.map +1 -1
  129. package/dist/cjs/bq-side-menu-item.cjs.entry.js +0 -1
  130. package/dist/cjs/bq-side-menu-item.cjs.entry.js.map +1 -1
  131. package/dist/cjs/bq-side-menu.cjs.entry.js +4 -4
  132. package/dist/cjs/bq-side-menu.cjs.entry.js.map +1 -1
  133. package/dist/cjs/bq-slider.cjs.entry.js +0 -1
  134. package/dist/cjs/bq-slider.cjs.entry.js.map +1 -1
  135. package/dist/cjs/bq-spinner.cjs.entry.js +1 -2
  136. package/dist/cjs/bq-spinner.cjs.entry.js.map +1 -1
  137. package/dist/cjs/bq-status.cjs.entry.js +0 -1
  138. package/dist/cjs/bq-status.cjs.entry.js.map +1 -1
  139. package/dist/cjs/bq-step-item.cjs.entry.js +0 -1
  140. package/dist/cjs/bq-step-item.cjs.entry.js.map +1 -1
  141. package/dist/cjs/bq-steps.cjs.entry.js +0 -1
  142. package/dist/cjs/bq-steps.cjs.entry.js.map +1 -1
  143. package/dist/cjs/bq-switch.cjs.entry.js +0 -1
  144. package/dist/cjs/bq-switch.cjs.entry.js.map +1 -1
  145. package/dist/cjs/bq-tab-group.cjs.entry.js +0 -1
  146. package/dist/cjs/bq-tab-group.cjs.entry.js.map +1 -1
  147. package/dist/cjs/bq-tab.cjs.entry.js +0 -1
  148. package/dist/cjs/bq-tab.cjs.entry.js.map +1 -1
  149. package/dist/cjs/bq-textarea.cjs.entry.js +0 -1
  150. package/dist/cjs/bq-textarea.cjs.entry.js.map +1 -1
  151. package/dist/cjs/bq-toast.cjs.entry.js +3 -4
  152. package/dist/cjs/bq-toast.cjs.entry.js.map +1 -1
  153. package/dist/cjs/{cssVariables-a0e1e906.js → cssVariables-dd190bc2.js} +2 -2
  154. package/dist/cjs/cssVariables-dd190bc2.js.map +1 -0
  155. package/dist/cjs/index.cjs.js +3 -3
  156. package/dist/cjs/{isDefined-ee0026ed.js → isDefined-f3968296.js} +1 -2
  157. package/dist/cjs/isDefined-f3968296.js.map +1 -0
  158. package/dist/cjs/loader.cjs.js +1 -1
  159. package/dist/collection/components/button/bq-button.js +41 -16
  160. package/dist/collection/components/button/bq-button.js.map +1 -1
  161. package/dist/collection/components/dialog/scss/bq-dialog.css +1 -1
  162. package/dist/collection/components/drawer/scss/bq-drawer.css +1 -1
  163. package/dist/collection/components/icon/helper/request.js +2 -2
  164. package/dist/collection/components/icon/helper/request.js.map +1 -1
  165. package/dist/collection/components/notification/bq-notification.js +4 -4
  166. package/dist/collection/components/notification/bq-notification.js.map +1 -1
  167. package/dist/collection/components/select/scss/bq-select.css +1 -1
  168. package/dist/collection/components/side-menu/bq-side-menu.js +9 -3
  169. package/dist/collection/components/side-menu/bq-side-menu.js.map +1 -1
  170. package/dist/collection/components/toast/bq-toast.js +3 -3
  171. package/dist/collection/components/toast/bq-toast.js.map +1 -1
  172. package/dist/collection/shared/utils/assetsPath.js +47 -35
  173. package/dist/collection/shared/utils/assetsPath.js.map +1 -1
  174. package/dist/collection/shared/utils/cssVariables.js +1 -1
  175. package/dist/collection/shared/utils/cssVariables.js.map +1 -1
  176. package/dist/components/bq-accordion-group.js +0 -1
  177. package/dist/components/bq-accordion-group.js.map +1 -1
  178. package/dist/components/bq-accordion.js +0 -1
  179. package/dist/components/bq-accordion.js.map +1 -1
  180. package/dist/components/bq-alert.js +0 -1
  181. package/dist/components/bq-alert.js.map +1 -1
  182. package/dist/components/bq-avatar.js +0 -1
  183. package/dist/components/bq-avatar.js.map +1 -1
  184. package/dist/components/bq-badge2.js +0 -1
  185. package/dist/components/bq-badge2.js.map +1 -1
  186. package/dist/components/bq-breadcrumb-item.js +0 -1
  187. package/dist/components/bq-breadcrumb-item.js.map +1 -1
  188. package/dist/components/bq-breadcrumb.js +0 -1
  189. package/dist/components/bq-breadcrumb.js.map +1 -1
  190. package/dist/components/bq-button2.js +42 -18
  191. package/dist/components/bq-button2.js.map +1 -1
  192. package/dist/components/bq-card.js +0 -1
  193. package/dist/components/bq-card.js.map +1 -1
  194. package/dist/components/bq-checkbox.js +0 -1
  195. package/dist/components/bq-checkbox.js.map +1 -1
  196. package/dist/components/bq-date-picker.js +0 -1
  197. package/dist/components/bq-date-picker.js.map +1 -1
  198. package/dist/components/bq-dialog.js +1 -2
  199. package/dist/components/bq-dialog.js.map +1 -1
  200. package/dist/components/bq-divider2.js +0 -1
  201. package/dist/components/bq-divider2.js.map +1 -1
  202. package/dist/components/bq-drawer.js +1 -2
  203. package/dist/components/bq-drawer.js.map +1 -1
  204. package/dist/components/bq-empty-state.js +0 -1
  205. package/dist/components/bq-empty-state.js.map +1 -1
  206. package/dist/components/bq-icon2.js +70 -4
  207. package/dist/components/bq-icon2.js.map +1 -1
  208. package/dist/components/bq-input.js +0 -1
  209. package/dist/components/bq-input.js.map +1 -1
  210. package/dist/components/bq-notification.js +4 -5
  211. package/dist/components/bq-notification.js.map +1 -1
  212. package/dist/components/bq-option-list2.js +0 -1
  213. package/dist/components/bq-option-list2.js.map +1 -1
  214. package/dist/components/bq-option.js +0 -1
  215. package/dist/components/bq-option.js.map +1 -1
  216. package/dist/components/bq-page-title.js +0 -1
  217. package/dist/components/bq-page-title.js.map +1 -1
  218. package/dist/components/bq-progress.js +0 -1
  219. package/dist/components/bq-progress.js.map +1 -1
  220. package/dist/components/bq-radio-group.js +0 -1
  221. package/dist/components/bq-radio-group.js.map +1 -1
  222. package/dist/components/bq-select.js +1 -2
  223. package/dist/components/bq-select.js.map +1 -1
  224. package/dist/components/bq-side-menu-item.js +0 -1
  225. package/dist/components/bq-side-menu-item.js.map +1 -1
  226. package/dist/components/bq-side-menu.js +5 -4
  227. package/dist/components/bq-side-menu.js.map +1 -1
  228. package/dist/components/bq-slider.js +0 -1
  229. package/dist/components/bq-slider.js.map +1 -1
  230. package/dist/components/bq-spinner.js +0 -1
  231. package/dist/components/bq-spinner.js.map +1 -1
  232. package/dist/components/bq-status.js +0 -1
  233. package/dist/components/bq-status.js.map +1 -1
  234. package/dist/components/bq-step-item.js +0 -1
  235. package/dist/components/bq-step-item.js.map +1 -1
  236. package/dist/components/bq-steps.js +0 -1
  237. package/dist/components/bq-steps.js.map +1 -1
  238. package/dist/components/bq-switch.js +0 -1
  239. package/dist/components/bq-switch.js.map +1 -1
  240. package/dist/components/bq-tab-group.js +0 -1
  241. package/dist/components/bq-tab-group.js.map +1 -1
  242. package/dist/components/bq-tab.js +0 -1
  243. package/dist/components/bq-tab.js.map +1 -1
  244. package/dist/components/bq-tag2.js +0 -1
  245. package/dist/components/bq-tag2.js.map +1 -1
  246. package/dist/components/bq-textarea.js +0 -1
  247. package/dist/components/bq-textarea.js.map +1 -1
  248. package/dist/components/bq-toast.js +3 -4
  249. package/dist/components/bq-toast.js.map +1 -1
  250. package/dist/components/cssVariables.js +1 -1
  251. package/dist/components/cssVariables.js.map +1 -1
  252. package/dist/components/index.js +1 -1
  253. package/dist/components/isDefined.js +0 -1
  254. package/dist/components/isDefined.js.map +1 -1
  255. package/dist/esm/assetsPath-beeee241.js +74 -0
  256. package/dist/esm/assetsPath-beeee241.js.map +1 -0
  257. package/dist/esm/beeq.js +1 -1
  258. package/dist/esm/bq-accordion-group.entry.js +0 -1
  259. package/dist/esm/bq-accordion-group.entry.js.map +1 -1
  260. package/dist/esm/bq-accordion.entry.js +0 -1
  261. package/dist/esm/bq-accordion.entry.js.map +1 -1
  262. package/dist/esm/bq-alert.entry.js +0 -1
  263. package/dist/esm/bq-alert.entry.js.map +1 -1
  264. package/dist/esm/bq-avatar.entry.js +0 -1
  265. package/dist/esm/bq-avatar.entry.js.map +1 -1
  266. package/dist/esm/bq-badge.entry.js +1 -2
  267. package/dist/esm/bq-badge.entry.js.map +1 -1
  268. package/dist/esm/bq-breadcrumb-item.entry.js +1 -2
  269. package/dist/esm/bq-breadcrumb-item.entry.js.map +1 -1
  270. package/dist/esm/bq-breadcrumb.entry.js +0 -1
  271. package/dist/esm/bq-breadcrumb.entry.js.map +1 -1
  272. package/dist/esm/bq-button_2.entry.js +52 -21
  273. package/dist/esm/bq-button_2.entry.js.map +1 -1
  274. package/dist/esm/bq-card.entry.js +0 -1
  275. package/dist/esm/bq-card.entry.js.map +1 -1
  276. package/dist/esm/bq-checkbox.entry.js +0 -1
  277. package/dist/esm/bq-checkbox.entry.js.map +1 -1
  278. package/dist/esm/bq-date-picker.entry.js +1 -2
  279. package/dist/esm/bq-date-picker.entry.js.map +1 -1
  280. package/dist/esm/bq-dialog.entry.js +1 -2
  281. package/dist/esm/bq-dialog.entry.js.map +1 -1
  282. package/dist/esm/bq-divider.entry.js +1 -2
  283. package/dist/esm/bq-divider.entry.js.map +1 -1
  284. package/dist/esm/bq-drawer.entry.js +1 -2
  285. package/dist/esm/bq-drawer.entry.js.map +1 -1
  286. package/dist/esm/bq-empty-state.entry.js +0 -1
  287. package/dist/esm/bq-empty-state.entry.js.map +1 -1
  288. package/dist/esm/bq-input.entry.js +1 -2
  289. package/dist/esm/bq-input.entry.js.map +1 -1
  290. package/dist/esm/bq-notification.entry.js +4 -5
  291. package/dist/esm/bq-notification.entry.js.map +1 -1
  292. package/dist/esm/bq-option-list_2.entry.js +1 -2
  293. package/dist/esm/bq-option-list_2.entry.js.map +1 -1
  294. package/dist/esm/bq-option.entry.js +0 -1
  295. package/dist/esm/bq-option.entry.js.map +1 -1
  296. package/dist/esm/bq-page-title.entry.js +0 -1
  297. package/dist/esm/bq-page-title.entry.js.map +1 -1
  298. package/dist/esm/bq-progress.entry.js +0 -1
  299. package/dist/esm/bq-progress.entry.js.map +1 -1
  300. package/dist/esm/bq-radio-group.entry.js +0 -1
  301. package/dist/esm/bq-radio-group.entry.js.map +1 -1
  302. package/dist/esm/bq-select.entry.js +2 -3
  303. package/dist/esm/bq-select.entry.js.map +1 -1
  304. package/dist/esm/bq-side-menu-item.entry.js +0 -1
  305. package/dist/esm/bq-side-menu-item.entry.js.map +1 -1
  306. package/dist/esm/bq-side-menu.entry.js +4 -4
  307. package/dist/esm/bq-side-menu.entry.js.map +1 -1
  308. package/dist/esm/bq-slider.entry.js +0 -1
  309. package/dist/esm/bq-slider.entry.js.map +1 -1
  310. package/dist/esm/bq-spinner.entry.js +1 -2
  311. package/dist/esm/bq-spinner.entry.js.map +1 -1
  312. package/dist/esm/bq-status.entry.js +0 -1
  313. package/dist/esm/bq-status.entry.js.map +1 -1
  314. package/dist/esm/bq-step-item.entry.js +0 -1
  315. package/dist/esm/bq-step-item.entry.js.map +1 -1
  316. package/dist/esm/bq-steps.entry.js +0 -1
  317. package/dist/esm/bq-steps.entry.js.map +1 -1
  318. package/dist/esm/bq-switch.entry.js +0 -1
  319. package/dist/esm/bq-switch.entry.js.map +1 -1
  320. package/dist/esm/bq-tab-group.entry.js +0 -1
  321. package/dist/esm/bq-tab-group.entry.js.map +1 -1
  322. package/dist/esm/bq-tab.entry.js +0 -1
  323. package/dist/esm/bq-tab.entry.js.map +1 -1
  324. package/dist/esm/bq-textarea.entry.js +0 -1
  325. package/dist/esm/bq-textarea.entry.js.map +1 -1
  326. package/dist/esm/bq-toast.entry.js +3 -4
  327. package/dist/esm/bq-toast.entry.js.map +1 -1
  328. package/dist/esm/{cssVariables-23e3ca0d.js → cssVariables-000c23ad.js} +2 -2
  329. package/dist/esm/cssVariables-000c23ad.js.map +1 -0
  330. package/dist/esm/index.js +4 -4
  331. package/dist/esm/{isDefined-650befc3.js → isDefined-0cb07ee6.js} +1 -2
  332. package/dist/esm/isDefined-0cb07ee6.js.map +1 -0
  333. package/dist/esm/loader.js +1 -1
  334. package/dist/hydrate/index.js +113 -68
  335. package/dist/hydrate/index.mjs +113 -68
  336. package/dist/types/components/button/bq-button.d.ts +5 -0
  337. package/dist/types/shared/utils/assetsPath.d.ts +5 -9
  338. package/package.json +1 -1
  339. package/dist/beeq/p-5a9a73a0.js.map +0 -1
  340. package/dist/beeq/p-5fcbf15f.entry.js.map +0 -1
  341. package/dist/beeq/p-7aa47927.entry.js.map +0 -1
  342. package/dist/beeq/p-a84d4562.js +0 -64
  343. package/dist/beeq/p-a84d4562.js.map +0 -1
  344. package/dist/beeq/p-b877d662.entry.js.map +0 -1
  345. package/dist/beeq/p-e06c8398.entry.js.map +0 -1
  346. package/dist/cjs/assetsPath-6ac8935a.js +0 -65
  347. package/dist/cjs/assetsPath-6ac8935a.js.map +0 -1
  348. package/dist/cjs/cssVariables-a0e1e906.js.map +0 -1
  349. package/dist/cjs/isDefined-ee0026ed.js.map +0 -1
  350. package/dist/components/assetsPath.js +0 -62
  351. package/dist/components/assetsPath.js.map +0 -1
  352. package/dist/esm/assetsPath-e2f1ceb9.js +0 -62
  353. package/dist/esm/assetsPath-e2f1ceb9.js.map +0 -1
  354. package/dist/esm/cssVariables-23e3ca0d.js.map +0 -1
  355. package/dist/esm/isDefined-650befc3.js.map +0 -1
@@ -0,0 +1 @@
1
+ {"version":3,"names":["BUTTON_SIZE","BUTTON_TYPE","BUTTON_APPEARANCE","BUTTON_VARIANT","bqButtonCss","BqButtonStyle0","BqButton","prefixElem","suffixElem","internals","checkPropValues","validatePropValue","this","el","bqBlur","bqFocus","bqClick","componentWillLoad","handleBlur","emit","handleFocus","handleClick","ev","disabled","loading","preventEvent","bqClickEvent","defaultPrevented","handleFormAction","type","form","isNil","formAction","formActions","submit","submitAssociatedForm","reset","window","btn","document","createElement","hidden","append","click","remove","handleSlotChange","hasPrefix","hasSlotContent","hasSuffix","preventDefault","stopPropagation","render","isLink","isDefined","href","TagElem","style","border","h","Host","key","class","appearance","justifyContent","variant","size","block","download","undefined","part","rel","target","tabIndex","onBlur","onFocus","onClick","ref","spanElem","name","onSlotchange","role","title","requests","Map","fetchSvg","async","url","sanitize","fetch","has","get","response","ok","iconContent","set","svgContent","text","validateContent","error","console","getSvgContent","req","svgTag","iconCssClass","div","innerHTML","i","childNodes","length","nodeName","toLowerCase","removeChild","svgElm","firstElementChild","othersCssClasses","getAttribute","setAttribute","trim","removeAttribute","isValid","elm","nodeType","Node","ELEMENT_NODE","attribute","Array","from","attributes","value","isString","startsWith","childNode","children","bqIconCss","BqIconStyle0","BqIcon","handlePropsChange","loadIcon","handleWeightChange","includes","weight","warn","REGULAR","isWeightedIcon","weightSuffix","iconName","svgLoaded","connectedCallback","setupIconComponent","getIconSource","src","SVG_EXTENSION","iconFileName","getBasePath","then","_svgContent","styles","color","getColorCSSVariable","label"],"sources":["../../packages/beeq/src/components/button/bq-button.types.ts","../../packages/beeq/src/components/button/scss/bq-button.scss?tag=bq-button&encapsulation=shadow","../../packages/beeq/src/components/button/bq-button.tsx","../../packages/beeq/src/components/icon/helper/request.ts","../../packages/beeq/src/components/icon/scss/bq-icon.scss?tag=bq-icon&encapsulation=shadow","../../packages/beeq/src/components/icon/bq-icon.tsx"],"sourcesContent":["export const BUTTON_SIZE = ['small', 'medium', 'large'] as const;\nexport type TButtonSize = (typeof BUTTON_SIZE)[number];\n\nexport const BUTTON_TYPE = ['button', 'submit', 'reset'] as const;\nexport type TButtonType = (typeof BUTTON_TYPE)[number];\n\nexport const BUTTON_APPEARANCE = ['primary', 'secondary', 'link', 'text'] as const;\nexport type TButtonAppearance = (typeof BUTTON_APPEARANCE)[number];\n\nexport const BUTTON_VARIANT = ['standard', 'ghost', 'danger'] as const;\nexport type TButtonVariant = (typeof BUTTON_VARIANT)[number];\n\nexport const BUTTON_BORDER_RADIUS = ['none', 'xs2', 'xs', 's', 'm', 'l', 'full'] as const;\nexport type TButtonBorderRadius = (typeof BUTTON_BORDER_RADIUS)[number];\n","/* -------------------------------------------------------------------------- */\n/* Button styles */\n/* -------------------------------------------------------------------------- */\n\n@import './bq-button.variables';\n\n@layer components {\n // Common button base style\n .bq-button {\n @apply box-border flex cursor-[inherit] items-center justify-center font-medium leading-regular;\n @apply rounded-[--bq-button--border-radius] border-[length:--bq-button--border-width] border-[color:--bq-button--border-color];\n @apply transition-[background-color,border-color,color] duration-300 ease-in-out;\n // `DISABLED` state\n @apply disabled:cursor-not-allowed disabled:opacity-60;\n // `FOCUS` state\n @apply focus-visible:focus;\n }\n}\n\n:host {\n @apply relative inline-block cursor-pointer is-auto;\n}\n\n:host([block]),\n.block {\n @apply is-full;\n}\n\n/* -------------------------------------------------------------------------- */\n/* Appearance */\n/* -------------------------------------------------------------------------- */\n\n.bq-button--primary {\n @apply bg-ui-brand text-text-alt;\n // Primary `HOVER` state\n @apply hover:enabled:bg-hover-ui-brand;\n // Primary `ACTIVE` state\n @apply active:enabled:bg-active-ui-brand active:enabled:hover:bg-active-ui-brand;\n}\n\n.bq-button--primary.ghost {\n @apply border-m border-solid border-stroke-brand bg-transparent text-text-brand;\n // Primary `HOVER` state\n @apply hover:enabled:bg-hover-ui-primary;\n // Primary `ACTIVE` state\n @apply active:enabled:bg-active-ui-primary active:enabled:hover:bg-active-ui-primary;\n}\n\n.bq-button--primary.danger {\n @apply bg-ui-danger text-text-alt;\n // Primary `HOVER` state\n @apply hover:enabled:bg-hover-ui-danger;\n // Primary `ACTIVE` state\n @apply active:enabled:bg-active-ui-danger active:enabled:hover:bg-active-ui-danger;\n}\n\n.bq-button--secondary {\n @apply bg-ui-secondary text-text-primary;\n // Secondary `HOVER` state\n @apply hover:enabled:bg-hover-ui-secondary;\n // Secondary `ACTIVE` state\n @apply active:enabled:bg-active-ui-secondary active:enabled:hover:bg-active-ui-secondary;\n}\n\n.bq-button--secondary.ghost {\n @apply border-m border-solid border-stroke-tertiary bg-transparent text-text-primary;\n // Secondary `HOVER` state\n @apply hover:enabled:bg-hover-ui-secondary;\n // Secondary `ACTIVE` state\n @apply active:enabled:bg-active-ui-secondary active:enabled:hover:bg-active-ui-secondary;\n}\n\n.bq-button--link {\n @apply bg-transparent text-text-brand no-underline;\n // Primary `HOVER` state\n @apply [&:not(.disabled)]:hover:bg-hover-ui-primary;\n // Primary `ACTIVE` state\n @apply [&:not(.disabled)]:active:bg-active-ui-secondary [&:not(.disabled)]:active:hover:bg-active-ui-secondary;\n // HTML `<a>` elements does not have a `disabled` state so we need to handle it manually\n &.disabled {\n @apply cursor-not-allowed opacity-60;\n }\n}\n\n.bq-button--text {\n @apply bg-transparent text-text-primary;\n // Primary `HOVER` state\n @apply hover:enabled:bg-hover-ui-primary;\n // Primary `ACTIVE` state\n @apply active:enabled:bg-active-ui-secondary active:enabled:hover:bg-active-ui-secondary;\n}\n\n/* -------------------------------------------------------------------------- */\n/* Size */\n/* -------------------------------------------------------------------------- */\n\n.small {\n @apply text-[length:--bq-button--small-font-size] bs-[--bq-button--small-height] p-b-[--bq-button--small-paddingY] p-i-[--bq-button--small-paddingX];\n}\n\n.medium {\n @apply text-[length:--bq-button--medium-font-size] bs-[--bq-button--medium-height] p-b-[--bq-button--medium-paddingY] p-i-[--bq-button--medium-paddingX];\n}\n\n.large {\n @apply text-[length:--bq-button--large-font-size] bs-[--bq-button--large-height] p-b-[--bq-button--large-paddingY] p-i-[--bq-button--large-paddingX];\n}\n\n/* -------------------------------------------------------------------------- */\n/* Label */\n/* -------------------------------------------------------------------------- */\n\n.bq-button__label ::slotted(bq-icon) {\n @apply flex;\n}\n\n.content-left {\n @apply justify-start;\n}\n\n.content-right {\n @apply justify-end;\n}\n\n/* -------------------------------------------------------------------------- */\n/* Prefix and Suffix slots */\n/* -------------------------------------------------------------------------- */\n\n.bq-button__prefix,\n.bq-button__suffix {\n @apply pointer-events-none flex shrink-0 grow-0 basis-auto items-center;\n}\n\n.bq-button.has-prefix .bq-button__label {\n @apply ps-xs2;\n}\n\n.bq-button.has-suffix .bq-button__label {\n @apply pe-xs2;\n}\n\n/* -------------------------------------------------------------------------- */\n/* Loading */\n/* -------------------------------------------------------------------------- */\n\n.bq-button.loading {\n @apply relative cursor-wait;\n}\n\n.bq-button.loading .bq-button__prefix,\n.bq-button.loading .bq-button__label,\n.bq-button.loading .bq-button__suffix {\n @apply invisible;\n}\n\n/* -------------------------------------------------------------------------- */\n/* Spinner icon */\n/* -------------------------------------------------------------------------- */\n\n.bq-button__loader {\n @include animation-spin;\n @apply absolute;\n}\n","import { AttachInternals, Component, Element, Event, EventEmitter, h, Host, Prop, State, Watch } from '@stencil/core';\n\nimport {\n BUTTON_APPEARANCE,\n BUTTON_SIZE,\n BUTTON_TYPE,\n BUTTON_VARIANT,\n TButtonAppearance,\n TButtonBorderRadius,\n TButtonSize,\n TButtonType,\n TButtonVariant,\n} from './bq-button.types';\nimport { hasSlotContent, isDefined, isNil, validatePropValue } from '../../shared/utils';\n\n/**\n * Buttons are designed for users to take action on a page or a screen.\n *\n * @part button - The `<a>` or `<button>` HTML element used under the hood.\n * @part prefix - The `<span>` tag element that acts as prefix container.\n * @part label - The `<span>` tag element that renders the text of the button.\n * @part suffix - The `<span>` tag element that acts as suffix container.\n */\n@Component({\n tag: 'bq-button',\n styleUrl: './scss/bq-button.scss',\n formAssociated: true,\n shadow: {\n delegatesFocus: true,\n },\n})\nexport class BqButton {\n // Own Properties\n // ====================\n\n private prefixElem: HTMLElement;\n private suffixElem: HTMLElement;\n\n // Reference to host HTML element\n // ===================================\n\n @Element() el!: HTMLBqButtonElement;\n @AttachInternals() internals!: ElementInternals;\n\n // State() variables\n // Inlined decorator, alphabetical order\n // =======================================\n\n @State() private hasPrefix = false;\n @State() private hasSuffix = false;\n\n // Public Property API\n // ========================\n\n /** The appearance style to apply to the button */\n @Prop({ reflect: true }) appearance: TButtonAppearance = 'primary';\n\n /** If `true`, it will make the button fit to its parent width. */\n @Prop({ reflect: true }) block: boolean = false;\n\n /** The corner radius of the button */\n @Prop({ reflect: true }) border: TButtonBorderRadius = 'm';\n\n /** If true, the button will be disabled (no interaction allowed) */\n @Prop() disabled = false;\n\n /**\n * Tells the browser to treat the linked URL as a download. Only used when `href` is set.\n * Details: https://developer.mozilla.org/en-US/docs/Web/HTML/Element/a#attr-download\n */\n @Prop() download?: string;\n\n /** When set, the underlying button will be rendered as an `<a>` with this `href` instead of a `<button>` */\n @Prop({ reflect: true }) href: string;\n\n /** It determinate how the content should be aligned */\n @Prop({ reflect: true }) justifyContent: 'left' | 'center' | 'right' = 'center';\n\n /** If `true` it will display the button in a loading state */\n @Prop() loading = false;\n\n /** The size of the button */\n @Prop({ reflect: true }) size: TButtonSize = 'medium';\n\n /**\n * Where to display the linked URL, as the name for a browsing context (a `tab`, `window`, or `<iframe>`)\n * Details: https://developer.mozilla.org/en-US/docs/Web/HTML/Element/a#attr-target\n */\n @Prop({ reflect: true }) target: '_blank' | '_parent' | '_self' | '_top';\n\n /** The default behavior of the button */\n @Prop({ reflect: true }) type: TButtonType = 'button';\n\n /** The variant of button to apply on top of the appearance (applicable only to `appearance=\"primary\"`) */\n @Prop({ reflect: true }) variant: TButtonVariant = 'standard';\n\n // Prop lifecycle events\n // =======================\n\n @Watch('appearance')\n @Watch('type')\n @Watch('size')\n @Watch('variant')\n checkPropValues() {\n validatePropValue(BUTTON_APPEARANCE, 'primary', this.el, 'appearance');\n validatePropValue(BUTTON_TYPE, 'button', this.el, 'type');\n validatePropValue(BUTTON_SIZE, 'medium', this.el, 'size');\n validatePropValue(BUTTON_VARIANT, 'standard', this.el, 'variant');\n }\n\n // Events section\n // Requires JSDocs for public API documentation\n // ==============================================\n\n /** Handler to be called when the button loses focus */\n @Event() bqBlur: EventEmitter<HTMLBqButtonElement>;\n\n /** Handler to be called when the button is clicked */\n @Event() bqFocus: EventEmitter<HTMLBqButtonElement>;\n\n /** Handler to be called when button gets focus */\n @Event() bqClick: EventEmitter<HTMLBqButtonElement>;\n\n // Component lifecycle events\n // Ordered by their natural call order\n // =====================================\n\n componentWillLoad() {\n this.checkPropValues();\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 handleBlur = () => {\n this.bqBlur.emit(this.el);\n };\n\n private handleFocus = () => {\n this.bqFocus.emit(this.el);\n };\n\n private handleClick = (ev: Event) => {\n const { disabled, loading, bqClick, el } = this;\n\n if (disabled || loading) {\n this.preventEvent(ev);\n return;\n }\n\n const bqClickEvent = bqClick.emit(el);\n if (bqClickEvent.defaultPrevented) {\n this.preventEvent(ev);\n return;\n }\n\n this.handleFormAction();\n };\n\n private handleFormAction() {\n const {\n type,\n internals: { form },\n } = this;\n if (isNil(form)) return;\n\n const formAction = this.formActions(form)[type];\n if (isNil(formAction)) return;\n\n formAction();\n }\n\n private formActions = (form: HTMLFormElement) => ({\n submit: () => this.submitAssociatedForm(form),\n reset: () => form.reset(),\n });\n\n private submitAssociatedForm = (form: HTMLFormElement) => {\n if (typeof window === 'undefined' || isNil(form)) return;\n\n const btn = document.createElement('button');\n btn.type = this.type;\n btn.hidden = true;\n form.append(btn);\n\n btn.click();\n btn.remove();\n };\n\n private handleSlotChange = () => {\n this.hasPrefix = hasSlotContent(this.prefixElem, 'prefix');\n this.hasSuffix = hasSlotContent(this.suffixElem, 'suffix');\n };\n\n private preventEvent(ev: Event) {\n ev.preventDefault();\n ev.stopPropagation();\n }\n\n // render() function\n // Always the last one in the class.\n // ===================================\n\n render() {\n const isLink = isDefined(this.href);\n const TagElem = isLink ? 'a' : 'button';\n const style = {\n ...(this.border && { '--bq-button--border-radius': `var(--bq-radius--${this.border})` }),\n };\n\n return (\n <Host style={style}>\n <TagElem\n class={{\n 'bq-button': true,\n [`bq-button--${this.appearance}`]: true,\n [`content-${this.justifyContent}`]: true,\n [`${this.variant}`]: true,\n [`${this.size}`]: true,\n block: this.block,\n disabled: this.disabled,\n 'has-prefix': this.hasPrefix,\n 'has-suffix': this.hasSuffix,\n loading: this.loading,\n }}\n aria-disabled={this.disabled ? 'true' : 'false'}\n disabled={this.disabled}\n download={isLink ? this.download : undefined}\n href={isLink ? this.href : undefined}\n part=\"button\"\n rel={isLink && this.target ? 'noreferrer noopener' : undefined}\n target={isLink ? this.target : undefined}\n type={this.type}\n tabIndex={this.disabled ? -1 : 0}\n onBlur={this.handleBlur}\n onFocus={this.handleFocus}\n onClick={this.handleClick}\n >\n <span class=\"bq-button__prefix\" ref={(spanElem) => (this.prefixElem = spanElem)} part=\"prefix\">\n <slot name=\"prefix\" onSlotchange={this.handleSlotChange} />\n </span>\n <span class=\"bq-button__label\" part=\"label\">\n <slot />\n </span>\n <span class=\"bq-button__suffix\" ref={(spanElem) => (this.suffixElem = spanElem)} part=\"suffix\">\n <slot name=\"suffix\" onSlotchange={this.handleSlotChange} />\n </span>\n {this.loading && (\n <bq-icon\n class=\"bq-button__loader\"\n name=\"spinner-gap\"\n role=\"img\"\n title={`${this.appearance} button loader`}\n />\n )}\n </TagElem>\n </Host>\n );\n }\n}\n","/* -------------------------------------------------------------------------- */\n/* Icon request helper */\n/* -------------------------------------------------------------------------- */\n\nimport { isNil, isString } from '../../../shared/utils';\n\nconst requests = new Map<string, Promise<unknown>>();\n\nconst fetchSvg = async (url: string, sanitize: boolean): Promise<unknown> => {\n if (typeof fetch === 'undefined' || typeof window === 'undefined') return;\n\n if (requests.has(url)) return requests.get(url);\n\n try {\n const response = await fetch(url);\n\n if (!response.ok) {\n iconContent.set(url, '');\n return;\n }\n\n let svgContent = (await response.text()) || '';\n\n if (svgContent && sanitize !== false) svgContent = validateContent(svgContent);\n\n iconContent.set(url, svgContent);\n } catch (error) {\n console.error(`[BqIcon] Failed to fetch SVG from ${url}:`, error);\n iconContent.set(url, '');\n }\n};\n\nexport const iconContent = new Map<string, string>();\n\nexport const getSvgContent = async (url: string, sanitize: boolean) => {\n let req = requests.get(url);\n\n // NOTE: if the request does not exists we will cache it\n if (isNil(req)) {\n req = fetchSvg(url, sanitize);\n requests.set(url, req);\n }\n return req;\n};\n\nexport const validateContent = (svgContent: string): string => {\n if (typeof window === 'undefined') return '';\n\n const svgTag = 'svg';\n const iconCssClass = 'bq-icon__svg';\n const div = document.createElement('div');\n div.innerHTML = svgContent;\n\n for (let i = div.childNodes.length - 1; i >= 0; i--) {\n if (div.childNodes[i].nodeName.toLowerCase() !== svgTag) {\n div.removeChild(div.childNodes[i]);\n }\n }\n\n // must only have 1 root element\n const svgElm = div.firstElementChild;\n if (svgElm && svgElm.nodeName.toLowerCase() === svgTag) {\n // keep other CSS classes (if there's any) and add the `bq-icon__svg` CSS class\n const othersCssClasses = svgElm.getAttribute('class') || '';\n svgElm.setAttribute('class', `${othersCssClasses} ${iconCssClass}`.trim());\n // set the shadow DOM part for the SVG element\n svgElm.setAttribute('part', svgTag);\n\n // remove height and width attribute, if for some reason they are still present in the SVG tag\n svgElm.removeAttribute('height');\n svgElm.removeAttribute('width');\n\n // root element must be an svg\n // lets double check we've got valid elements\n // do not allow scripts\n if (isValid(svgElm as HTMLElement)) return div.innerHTML;\n }\n\n return '';\n};\n\nexport const isValid = (elm: HTMLElement): boolean => {\n if (elm.nodeType === Node.ELEMENT_NODE) {\n if (elm.nodeName.toLowerCase() === 'script') return false;\n\n for (const attribute of Array.from(elm.attributes)) {\n const value = attribute.value;\n if (isString(value) && value.toLowerCase().startsWith('on')) {\n return false;\n }\n }\n\n for (const childNode of Array.from(elm.children) as HTMLElement[]) {\n if (!isValid(childNode)) return false;\n }\n }\n return true;\n};\n","/* -------------------------------------------------------------------------- */\n/* Icon styles */\n/* -------------------------------------------------------------------------- */\n\n@import './bq-icon.variables';\n\n:host {\n @apply inline-block;\n}\n\n/**\n * This class is added on packages/beeq/src/components/icon/helper/request.ts\n * See lines 42 and 58 for details.\n */\n.bq-icon__svg {\n @apply scale-x-[--bq-icon--direction];\n}\n","import { Component, Event, EventEmitter, h, Host, Prop, State, Watch } from '@stencil/core';\n\nimport { TIconWeight } from './bq-icon.types';\nimport { getSvgContent, iconContent } from './helper/request';\nimport { getBasePath, getColorCSSVariable, isNil } from '../../shared/utils';\n\n/**\n * Icons are simplified images that graphically explain the meaning of an object on the screen.\n *\n * @part base - The component's internal wrapper that holds the icon SVG content.\n * @part svg - The `<svg>` tag element inside the component.\n */\n@Component({\n assetsDirs: ['svg'],\n tag: 'bq-icon',\n styleUrl: './scss/bq-icon.scss',\n shadow: true,\n})\nexport class BqIcon {\n // Own Properties\n // ====================\n\n // Reference to host HTML element\n // ===================================\n\n // State() variables\n // Inlined decorator, alphabetical order\n // =======================================\n\n @State() private _svgContent: string;\n\n // Public Property API\n // ========================\n\n /** Label for the icon, used for accessibility */\n @Prop({ reflect: true }) label?: string;\n\n /** Set the stroke color of the SVG. The value should be a valid value of the palette color */\n @Prop({ reflect: true }) color?: string;\n\n /** Icon name to load. Please check all available icons [here](https://phosphoricons.com/) */\n @Prop({ reflect: true }) name?: string;\n\n /** Set the size of the SVG */\n @Prop({ reflect: true }) size?: string | number = 24;\n\n /** Set the source of the SVG. If the source is set, the name property will be ignored */\n @Prop({ reflect: true }) src?: string;\n\n /** @deprecated It set the icon weight/style */\n @Prop({ reflect: true }) weight?: TIconWeight = undefined;\n\n // Prop lifecycle events\n // =======================\n\n @Watch('color')\n @Watch('name')\n @Watch('size')\n handlePropsChange() {\n this.loadIcon(this.name);\n }\n\n /**\n * !TO BE REMOVED: Delete this `@Watch()` once the deprecated `weight` property is removed\n * We need to maintain retro-compatibility until the next major release\n */\n @Watch('weight')\n handleWeightChange() {\n if (this.name.includes(this.weight)) return;\n\n console.warn(\n `❗️ [bq-icon]: the 'weight' property is deprecated, you should add the weight to the icon name.\\n\n For example, '<bq-icon name=\"bell-fill\"></bq-icon>' instead of '<bq-icon name=\"bell\" weight=\"fill\"></bq-icon>'`,\n );\n // Check if the icon is weighted. An icon is considered weighted if its weight is not 'regular' and ENV_SVG_PATH is not set.\n // Eg: if the weight is 'bold' and ENV_SVG_PATH is not set, isWeightedIcon will be true.\n const REGULAR = 'regular';\n const isWeightedIcon = !isNil(this.weight) && this.weight !== REGULAR;\n // If the icon is weighted, append the weight to the icon name. Otherwise, append nothing.\n // Eg: if isWeightedIcon is true and the weight is 'bold', weightSuffix will be '-bold'.\n const weightSuffix = isWeightedIcon ? `-${this.weight}` : '';\n // Construct the icon name by appending the weight suffix (if any) and the file extension.\n // Eg: if the name is 'my-icon' and weightSuffix is '-bold', iconName will be 'my-icon-bold.svg'.\n const iconName = `${this.name}${weightSuffix}`;\n this.loadIcon(iconName);\n }\n\n // Events section\n // Requires JSDocs for public API documentation\n // ==============================================\n\n /** Callback handler to be called when the SVG has loaded */\n @Event() svgLoaded: EventEmitter;\n\n // Component lifecycle events\n // Ordered by their natural call order\n // =====================================\n\n connectedCallback() {\n this.setupIconComponent();\n }\n\n componentWillLoad() {\n this.setupIconComponent();\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 setupIconComponent = () => {\n this.loadIcon(this.name);\n // !TO BE REMOVED: Delete this once the deprecated `weight` property is removed\n if (!isNil(this.weight)) this.handleWeightChange();\n };\n\n private getIconSource = (name: string) => {\n if (!this.name && !this.src) return;\n // Return the src if it is set\n if (this.src) return this.src;\n\n const SVG_EXTENSION = '.svg';\n const iconFileName = `${name}${SVG_EXTENSION}`;\n\n return getBasePath(iconFileName);\n };\n\n private loadIcon = (name: string) => {\n const url = this.getIconSource(name);\n getSvgContent(url, true).then(() => {\n this._svgContent = iconContent.get(url);\n this.svgLoaded.emit(this._svgContent);\n });\n };\n\n // render() function\n // Always the last one in the class.\n // ===================================\n\n render() {\n const styles = {\n ...(this.color && { '--bq-icon--color': getColorCSSVariable(this.color) }),\n ...(this.size && { '--bq-icon--size': `${this.size}px` }),\n };\n\n return (\n <Host style={styles}>\n <div\n aria-label={this.label ?? `${this.name} icon`}\n class=\"flex text-[color:--bq-icon--color] bs-[--bq-icon--size] is-[--bq-icon--size]\"\n innerHTML={this._svgContent}\n part=\"base\"\n role=\"img\"\n />\n </Host>\n );\n }\n}\n"],"mappings":"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","ignoreList":[]}
@@ -0,0 +1,71 @@
1
+ /*!
2
+ * Built by Endavans
3
+ * © https://beeq.design - Apache 2 License.
4
+ */
5
+ /**
6
+ * Inspired by Shoelace's `getBasePath` and `setBasePath` functions.
7
+ * https://github.com/shoelace-style/shoelace/blob/next/src/utilities/base-path.ts
8
+ */
9
+ let n;
10
+
11
+ const t = "data-beeq";
12
+
13
+ const e = "svg";
14
+
15
+ /**
16
+ * Sets the base path for the assets.
17
+ * @param {string} path - The base path to set.
18
+ */ const setBasePath = t => {
19
+ n = t;
20
+ };
21
+
22
+ /**
23
+ * Gets the base path for the assets.
24
+ * @param {string} subpath - An optional subpath to append to the base path.
25
+ * @returns {string} The base path of the assets.
26
+ */ const getBasePath = (s = "") => {
27
+ if (!n) {
28
+ const n = findConfigScript();
29
+ const s = n ? null : findFallbackScript();
30
+ const o = n || s;
31
+ if (o) {
32
+ const s = n ? o.getAttribute(t) : getScriptPath(o);
33
+ setBasePath(`${s}/${e}`);
34
+ } else {
35
+ // Fallback: use an environment variable (if set) or the default path
36
+ setBasePath(process.env.ASSETS_BASE_PATH || `./${e}`);
37
+ }
38
+ }
39
+ // Return the base path without a trailing slash. If one exists, append the subpath separated by a slash.
40
+ const o = s ? `/${s.replace(/^\//, "")}` : "";
41
+ return n.replace(/\/$/, "") + o;
42
+ };
43
+
44
+ /**
45
+ * Finds the configuration script element.
46
+ * @returns The configuration script element or null if not found.
47
+ */ const findConfigScript = () => {
48
+ if (typeof window === "undefined") return null;
49
+ return document.querySelector(`script[${t}]`);
50
+ };
51
+
52
+ /**
53
+ * Finds the fallback script element.
54
+ * @returns The fallback script element or null if not found.
55
+ */ const findFallbackScript = () => {
56
+ if (typeof window === "undefined") return null;
57
+ return document.querySelector(`script[src*="beeq"]`);
58
+ };
59
+
60
+ /**
61
+ * Gets the path of a script element.
62
+ * @param {HTMLScriptElement} script - The script element.
63
+ * @returns The path of the script element.
64
+ */ const getScriptPath = n => {
65
+ if (typeof window === "undefined") return "";
66
+ const t = n.getAttribute("src");
67
+ return t ? t.substring(0, t.lastIndexOf("/")) : "";
68
+ };
69
+
70
+ export { getBasePath as g, setBasePath as s };
71
+ //# sourceMappingURL=p-8f1c68c0.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"names":["basePath","DATA_BEEQ_ATTRIBUTE","DEFAULT_SVG_PATH","setBasePath","path","getBasePath","subpath","configScript","findConfigScript","fallbackScript","findFallbackScript","script","getAttribute","getScriptPath","process","env","ASSETS_BASE_PATH","formattedSubpath","replace","window","document","querySelector","src","substring","lastIndexOf"],"sources":["../../packages/beeq/src/shared/utils/assetsPath.ts"],"sourcesContent":["/**\n * Inspired by Shoelace's `getBasePath` and `setBasePath` functions.\n * https://github.com/shoelace-style/shoelace/blob/next/src/utilities/base-path.ts\n */\n\nlet basePath: string | undefined;\nconst DATA_BEEQ_ATTRIBUTE = 'data-beeq';\nconst DEFAULT_SVG_PATH = 'svg';\n\n/**\n * Sets the base path for the assets.\n * @param {string} path - The base path to set.\n */\nexport const setBasePath = (path: string): void => {\n basePath = path;\n};\n\n/**\n * Gets the base path for the assets.\n * @param {string} subpath - An optional subpath to append to the base path.\n * @returns {string} The base path of the assets.\n */\nexport const getBasePath = (subpath: string = ''): string => {\n if (!basePath) {\n const configScript = findConfigScript();\n const fallbackScript = configScript ? null : findFallbackScript();\n\n const script = configScript || fallbackScript;\n if (script) {\n const path = configScript ? script.getAttribute(DATA_BEEQ_ATTRIBUTE) : getScriptPath(script);\n setBasePath(`${path}/${DEFAULT_SVG_PATH}`);\n } else {\n // Fallback: use an environment variable (if set) or the default path\n setBasePath(process.env.ASSETS_BASE_PATH || `./${DEFAULT_SVG_PATH}`);\n }\n }\n\n // Return the base path without a trailing slash. If one exists, append the subpath separated by a slash.\n const formattedSubpath = subpath ? `/${subpath.replace(/^\\//, '')}` : '';\n return basePath.replace(/\\/$/, '') + formattedSubpath;\n};\n\n/**\n * Finds the configuration script element.\n * @returns The configuration script element or null if not found.\n */\nconst findConfigScript = (): HTMLScriptElement | null => {\n if (typeof window === 'undefined') return null;\n\n return document.querySelector(`script[${DATA_BEEQ_ATTRIBUTE}]`);\n};\n\n/**\n * Finds the fallback script element.\n * @returns The fallback script element or null if not found.\n */\nconst findFallbackScript = (): HTMLScriptElement | null => {\n if (typeof window === 'undefined') return null;\n\n return document.querySelector(`script[src*=\"beeq\"]`);\n};\n\n/**\n * Gets the path of a script element.\n * @param {HTMLScriptElement} script - The script element.\n * @returns The path of the script element.\n */\nconst getScriptPath = (script: HTMLScriptElement): string => {\n if (typeof window === 'undefined') return '';\n\n const src = script.getAttribute('src');\n return src ? src.substring(0, src.lastIndexOf('/')) : '';\n};\n"],"mappings":";;;;;;;;AAKA,IAAIA;;AACJ,MAAMC,IAAsB;;AAC5B,MAAMC,IAAmB;;;;;UAMZC,cAAeC;EAC1BJ,IAAWI;AAAI;;;;;;UAQJC,cAAc,CAACC,IAAkB;EAC5C,KAAKN,GAAU;IACb,MAAMO,IAAeC;IACrB,MAAMC,IAAiBF,IAAe,OAAOG;IAE7C,MAAMC,IAASJ,KAAgBE;IAC/B,IAAIE,GAAQ;MACV,MAAMP,IAAOG,IAAeI,EAAOC,aAAaX,KAAuBY,cAAcF;MACrFR,YAAY,GAAGC,KAAQF;WAClB;;MAELC,YAAYW,QAAQC,IAAIC,oBAAoB,KAAKd;;;;IAKrD,MAAMe,IAAmBX,IAAU,IAAIA,EAAQY,QAAQ,OAAO,QAAQ;EACtE,OAAOlB,EAASkB,QAAQ,OAAO,MAAMD;AAAgB;;;;;GAOvD,OAAMT,mBAAmB;EACvB,WAAWW,WAAW,aAAa,OAAO;EAE1C,OAAOC,SAASC,cAAc,UAAUpB;AAAuB;;;;;GAOjE,OAAMS,qBAAqB;EACzB,WAAWS,WAAW,aAAa,OAAO;EAE1C,OAAOC,SAASC,cAAc;AAAsB;;;;;;GAQtD,OAAMR,gBAAiBF;EACrB,WAAWQ,WAAW,aAAa,OAAO;EAE1C,MAAMG,IAAMX,EAAOC,aAAa;EAChC,OAAOU,IAAMA,EAAIC,UAAU,GAAGD,EAAIE,YAAY,QAAQ;AAAE","ignoreList":[]}
@@ -4,8 +4,6 @@
4
4
  */
5
5
  import { r as a, c as r, g as b, h as e, a as q } from "./p-01df4baa.js";
6
6
 
7
- import "./p-a84d4562.js";
8
-
9
7
  import { i as n } from "./p-57621be1.js";
10
8
 
11
9
  const t = '::backdrop,:root{--bq-blue-100:#e7f0fd;--bq-blue-200:#d0e2fb;--bq-blue-300:#a1c5f7;--bq-blue-400:#73a8f3;--bq-blue-500:#448bef;--bq-blue-600:#156eeb;--bq-blue-700:#1158bc;--bq-blue-800:#0d428d;--bq-blue-900:#082c5e;--bq-blue-1000:#04162f;--bq-corai-100:#fff2f2;--bq-corai-200:#ffe6e6;--bq-corai-300:#ffccce;--bq-corai-400:#ffb3b5;--bq-corai-500:#ff999d;--bq-corai-600:#ff8084;--bq-corai-700:#cc666a;--bq-corai-800:#994d4f;--bq-corai-900:#663335;--bq-corai-1000:#331a1a;--bq-cyan-100:#e8f7fb;--bq-cyan-200:#d2f0f8;--bq-cyan-300:#a5e1f1;--bq-cyan-400:#78d1e9;--bq-cyan-500:#4bc2e2;--bq-cyan-600:#1eb3db;--bq-cyan-700:#188faf;--bq-cyan-800:#126b83;--bq-cyan-900:#0c4858;--bq-cyan-1000:#06242c;--bq-gold-100:#fbf4ec;--bq-gold-200:#f7e9da;--bq-gold-300:#f0d3b6;--bq-gold-400:#e8bc91;--bq-gold-500:#e1a66d;--bq-gold-600:#d99048;--bq-gold-700:#ae733a;--bq-gold-800:#82562b;--bq-gold-900:#573a1d;--bq-gold-1000:#2b1d0e;--bq-green-100:#e8f8ef;--bq-green-200:#d2f1e0;--bq-green-300:#a5e3c1;--bq-green-400:#78d5a1;--bq-green-500:#4bc782;--bq-green-600:#1eb963;--bq-green-700:#18944f;--bq-green-800:#126f3b;--bq-green-900:#0c4a28;--bq-green-1000:#062514;--bq-grey-100:#f1f2f4;--bq-grey-200:#e7e8eb;--bq-grey-300:#caccd2;--bq-grey-400:#a6aab3;--bq-grey-50:#f6f6f8;--bq-grey-500:#898e99;--bq-grey-600:#646a77;--bq-grey-700:#3f4350;--bq-grey-800:#2a2c35;--bq-grey-900:#1c1d23;--bq-grey-950:#15161a;--bq-grey-1000:#0d0e11;--bq-indigo-100:#edecfc;--bq-indigo-200:#dcdafa;--bq-indigo-300:#b9b5f5;--bq-indigo-400:#9590ef;--bq-indigo-500:#726bea;--bq-indigo-600:#4f46e5;--bq-indigo-700:#3f38b7;--bq-indigo-800:#2f2a89;--bq-indigo-900:#201c5c;--bq-indigo-1000:#100e2e;--bq-iris-100:#e9f0ff;--bq-iris-200:#d6e0ff;--bq-iris-300:#b2c0fe;--bq-iris-400:#8691f8;--bq-iris-500:#6061ee;--bq-iris-600:#4f46e5;--bq-iris-700:#413abd;--bq-iris-800:#332e95;--bq-iris-900:#26216d;--bq-iris-1000:#181545;--bq-lime-100:#f5fae8;--bq-lime-200:#ecf6d2;--bq-lime-300:#d9eda5;--bq-lime-400:#c5e379;--bq-lime-500:#b2da4c;--bq-lime-600:#9fd11f;--bq-lime-700:#7fa719;--bq-lime-800:#5f7d13;--bq-lime-900:#40540c;--bq-lime-1000:#202a06;--bq-magenta-100:#fce7f4;--bq-magenta-200:#f9cfea;--bq-magenta-300:#f39fd6;--bq-magenta-400:#ee6fbf;--bq-magenta-500:#e83fab;--bq-magenta-600:#de1395;--bq-magenta-700:#b20f77;--bq-magenta-800:#850c59;--bq-magenta-900:#58083c;--bq-magenta-1000:#2c041e;--bq-neutral-white:#fbfbfc;--bq-neutral-black:#060708;--bq-orange-100:#fbf0e9;--bq-orange-200:#f8e1d4;--bq-orange-300:#f1c2a8;--bq-orange-400:#eaa47d;--bq-orange-500:#e38551;--bq-orange-600:#dc6726;--bq-orange-700:#b0521e;--bq-orange-800:#843e17;--bq-orange-900:#58290f;--bq-orange-1000:#2c1508;--bq-purple-100:#efebf8;--bq-purple-200:#e0d7f2;--bq-purple-300:#c1afe5;--bq-purple-400:#a388d8;--bq-purple-500:#8460cb;--bq-purple-600:#6538be;--bq-purple-700:#512d98;--bq-purple-800:#3d2272;--bq-purple-900:#28164c;--bq-purple-1000:#140b26;--bq-red-100:#fce7ea;--bq-red-200:#f9d1d5;--bq-red-300:#f3a2ac;--bq-red-400:#ed7482;--bq-red-500:#e74559;--bq-red-600:#e1172f;--bq-red-700:#b41226;--bq-red-800:#870e1c;--bq-red-900:#5a0913;--bq-red-1000:#2d0509;--bq-sky-100:#eff4fb;--bq-sky-200:#dfeaf8;--bq-sky-300:#bfd5f1;--bq-sky-400:#9ec1e9;--bq-sky-500:#7eace2;--bq-sky-600:#5e97db;--bq-sky-700:#4b79af;--bq-sky-800:#385b83;--bq-sky-900:#263c58;--bq-sky-1000:#131e2c;--bq-teal-100:#e5f7f5;--bq-teal-200:#ccf0eb;--bq-teal-300:#99e1d8;--bq-teal-400:#66d2c4;--bq-teal-500:#33c3b1;--bq-teal-600:#00b49d;--bq-teal-700:#00907e;--bq-teal-800:#006c5e;--bq-teal-900:#00483f;--bq-teal-1000:#00241f;--bq-volcano-100:#feede7;--bq-volcano-200:#fddbd1;--bq-volcano-300:#fbb8a3;--bq-volcano-400:#fa9474;--bq-volcano-500:#f87146;--bq-volcano-600:#f64d18;--bq-volcano-700:#c53e13;--bq-volcano-800:#942e0e;--bq-volcano-900:#621f0a;--bq-volcano-1000:#310f05;--bq-yellow-100:#fefbe7;--bq-yellow-200:#fcf6d0;--bq-yellow-300:#faeea0;--bq-yellow-400:#f7e571;--bq-yellow-500:#f5dd41;--bq-yellow-600:#f2d412;--bq-yellow-700:#c2aa0e;--bq-yellow-800:#917f0b;--bq-yellow-900:#615507;--bq-yellow-1000:#302a04;--bq-endava-grey-50:#f7f7f8;--bq-endava-grey-100:#e4e6e7;--bq-endava-grey-200:#b5babe;--bq-endava-grey-300:#949ca1;--bq-endava-grey-400:#737d84;--bq-endava-grey-500:#525f67;--bq-endava-grey-600:#30404b;--bq-endava-grey-700:#2b3942;--bq-endava-grey-800:#263139;--bq-endava-grey-900:#192b37;--bq-endava-grey-950:#151b1e;--bq-endava-grey-1000:#0f1316;--bq-endava-neutral-white:#fafbfb;--bq-endava-neutral-black:#060708;--bq-endava-orange-100:#fef3f1;--bq-endava-orange-200:#fbd6d1;--bq-endava-orange-300:#fab7af;--bq-endava-orange-400:#fa988b;--bq-endava-orange-500:#fc7866;--bq-endava-orange-600:#ff5640;--bq-endava-orange-700:#ce4a39;--bq-endava-orange-800:#a03d30;--bq-endava-orange-900:#722e25;--bq-endava-orange-1000:#471e19}*,:after,:before{box-sizing:border-box}*{font:inherit;margin:0}ol[role=list],ul[role=list]{list-style-type:none}html{font-size:var(--bq-font-size--m)}html:focus-within{scroll-behavior:smooth}body{-webkit-font-smoothing:antialiased;-moz-osx-font-smoothing:grayscale;background-color:var(--bq-background--primary);color:var(--bq-text--primary);font-family:var(--bq-font-family);line-height:var(--bq-font-line-height--regular);min-height:100vh;text-rendering:optimizeSpeed}a:not([class]){text-decoration-skip-ink:auto}canvas,img,picture,svg,video{display:block;max-width:100%}button,input,select,textarea{font:inherit}h1,h2,h3,h4,h5,h6,p{overflow-wrap:break-word}@media (prefers-reduced-motion:reduce){html:focus-within{scroll-behavior:auto}*,:after,:before{animation-duration:.01ms!important;animation-iteration-count:1!important;scroll-behavior:auto;transition-duration:.01ms!important}}:root{--bq-white:#fff;--bq-black:#060708;--bq-neutral-50:var(--bq-grey-50);--bq-neutral-100:var(--bq-grey-100);--bq-neutral-200:var(--bq-grey-200);--bq-neutral-300:var(--bq-grey-300);--bq-neutral-400:var(--bq-grey-400);--bq-neutral-500:var(--bq-grey-500);--bq-neutral-600:var(--bq-grey-600);--bq-neutral-700:var(--bq-grey-700);--bq-neutral-800:var(--bq-grey-800);--bq-neutral-900:var(--bq-grey-900);--bq-neutral-950:var(--bq-grey-950);--bq-neutral-1000:var(--bq-grey-1000);--bq-brand-light:var(--bq-iris-100);--bq-brand:var(--bq-iris-600);--bq-brand-dark:var(--bq-iris-1000);--bq-accent-light:var(--bq-purple-100);--bq-accent:var(--bq-purple-600);--bq-accent-dark:var(--bq-purple-1000);--bq-success-light:var(--bq-teal-100);--bq-success:var(--bq-teal-600);--bq-success-dark:var(--bq-teal-1000);--bq-danger-light:var(--bq-red-100);--bq-danger:var(--bq-red-600);--bq-danger-dark:var(--bq-red-1000);--bq-warning-light:var(--bq-gold-100);--bq-warning:var(--bq-gold-600);--bq-warning-dark:var(--bq-gold-1000);--bq-info-light:var(--bq-iris-100);--bq-info:var(--bq-iris-600);--bq-info-dark:var(--bq-iris-1000);--bq-focus:var(--bq-iris-600);--bq-data-01:var(--bq-brand);--bq-data-02:var(--bq-purple-600);--bq-data-03:var(--bq-magenta-600);--bq-data-04:var(--bq-cyan-600);--bq-data-05:var(--bq-teal-600);--bq-data-06:var(--bq-orange-600);--bq-data-07:var(--bq-yellow-600);--bq-data-08:var(--bq-red-600);--bq-data-09:var(--bq-blue-600);--bq-data-10:var(--bq-grey-600);--bq-data-11:var(--bq-black);--bq-data-12:var(--bq-white);--bq-radius--none:0;--bq-radius--xs2:0.125rem;--bq-radius--xs:0.25rem;--bq-radius--s:0.5rem;--bq-radius--m:0.75rem;--bq-radius--l:1.5rem;--bq-radius--full:9999px;--bq-box-shadow--xs:0 2px 0 rgba(0,0,0,.016);--bq-box-shadow--s:0 8px 24px rgba(0,0,0,.04);--bq-box-shadow--m:0 10px 48px -16px rgba(0,0,0,.12);--bq-box-shadow--l:0 20px 58px -16px rgba(0,0,0,.16);--bq-font-family:"Outfit",sans-serif;--bq-font-size--xs:0.75rem;--bq-font-size--s:0.875rem;--bq-font-size--m:1rem;--bq-font-size--l:1.125rem;--bq-font-size--xl:1.5rem;--bq-font-size--xxl:2rem;--bq-font-size--xxl2:2.5rem;--bq-font-size--xxl3:3rem;--bq-font-size--xxl4:3.5rem;--bq-font-size--xxl5:4rem;--bq-font-weight--thin:100;--bq-font-weight--light:300;--bq-font-weight--regular:400;--bq-font-weight--medium:500;--bq-font-weight--semibold:600;--bq-font-weight--bold:700;--bq-font-line-height--small:1.2;--bq-font-line-height--regular:1.5;--bq-font-line-height--large:1.5;--bq-spacing-xs3:0.125rem;--bq-spacing-xs2:0.25rem;--bq-spacing-xs:0.5rem;--bq-spacing-s:0.75rem;--bq-spacing-m:1rem;--bq-spacing-l:1.5rem;--bq-spacing-xl:2rem;--bq-spacing-xxl:2.5rem;--bq-spacing-xxl2:3.5rem;--bq-spacing-xxl3:4rem;--bq-spacing-xxl4:4.5rem;--bq-stroke-s:1px;--bq-stroke-m:2px;--bq-stroke-l:3px}.beeq.light,.light,:root,[bq-mode=light]{--bq-background--primary:var(--bq-white);--bq-background--secondary:var(--bq-neutral-100);--bq-background--tertiary:var(--bq-neutral-200);--bq-background--alt:var(--bq-neutral-300);--bq-background--inverse:var(--bq-neutral-900);--bq-background--brand:var(--bq-brand);--bq-background--overlay:var(--bq-neutral-900);--bq-icon--primary:var(--bq-neutral-800);--bq-icon--alt:var(--bq-white);--bq-icon--secondary:var(--bq-neutral-600);--bq-icon--inverse:var(--bq-neutral-50);--bq-icon--brand:var(--bq-brand);--bq-icon--info:var(--bq-brand);--bq-icon--success:var(--bq-success);--bq-icon--warning:var(--bq-warning);--bq-icon--danger:var(--bq-danger);--bq-stroke--primary:var(--bq-neutral-200);--bq-stroke--secondary:var(--bq-neutral-600);--bq-stroke--tertiary:var(--bq-neutral-900);--bq-stroke--inverse:var(--bq-white);--bq-stroke--brand:var(--bq-brand);--bq-stroke--alt:var(--bq-neutral-50);--bq-stroke--success:var(--bq-success);--bq-stroke--warning:var(--bq-warning);--bq-stroke--danger:var(--bq-danger);--bq-stroke--info:var(--bq-brand);--bq-text--primary:var(--bq-neutral-800);--bq-text--secondary:var(--bq-neutral-600);--bq-text--inverse:var(--bq-neutral-50);--bq-text--brand:var(--bq-brand);--bq-text--alt:var(--bq-white);--bq-text--info:var(--bq-brand);--bq-text--success:var(--bq-success);--bq-text--warning:var(--bq-warning);--bq-text--danger:var(--bq-danger);--bq-ui--primary:var(--bq-white);--bq-ui--secondary:var(--bq-neutral-200);--bq-ui--tertiary:var(--bq-neutral-500);--bq-ui--inverse:var(--bq-neutral-900);--bq-ui--brand:var(--bq-brand);--bq-ui--brand-alt:var(--bq-brand-light);--bq-ui--alt:var(--bq-neutral-50);--bq-ui--success:var(--bq-success);--bq-ui--success-alt:var(--bq-success-light);--bq-ui--warning:var(--bq-warning);--bq-ui--warning-alt:var(--bq-warning-light);--bq-ui--danger:var(--bq-danger);--bq-ui--danger-alt:var(--bq-danger-light);--bq-ui--info:var(--bq-brand);--bq-ui--info-alt:var(--bq-brand-light);--bq-hover:#bcbfc5;--bq-active:#444546}.beeq.dark,.dark,[bq-mode=dark]{--bq-background--primary:var(--bq-neutral-1000);--bq-background--secondary:var(--bq-neutral-950);--bq-background--tertiary:var(--bq-neutral-800);--bq-background--alt:var(--bq-neutral-700);--bq-background--inverse:var(--bq-neutral-600);--bq-background--brand:var(--bq-brand);--bq-background--overlay:var(--bq-neutral-900);--bq-icon--primary:var(--bq-neutral-100);--bq-icon--secondary:var(--bq-neutral-400);--bq-icon--inverse:var(--bq-neutral-800);--bq-icon--brand:var(--bq-brand);--bq-icon--alt:var(--bq-white);--bq-icon--info:var(--bq-brand);--bq-icon--success:var(--bq-success);--bq-icon--warning:var(--bq-warning);--bq-icon--danger:var(--bq-danger);--bq-stroke--primary:var(--bq-neutral-900);--bq-stroke--secondary:var(--bq-neutral-700);--bq-stroke--tertiary:var(--bq-neutral-400);--bq-stroke--inverse:var(--bq-neutral-950);--bq-stroke--brand:var(--bq-brand);--bq-stroke--alt:var(--bq-neutral-1000);--bq-stroke--success:var(--bq-success);--bq-stroke--warning:var(--bq-warning);--bq-stroke--danger:var(--bq-danger);--bq-stroke--info:var(--bq-brand);--bq-text--primary:var(--bq-neutral-100);--bq-text--secondary:var(--bq-neutral-400);--bq-text--inverse:var(--bq-neutral-800);--bq-text--brand:var(--bq-brand);--bq-text--alt:var(--bq-white);--bq-text--info:var(--bq-brand);--bq-text--success:var(--bq-success);--bq-text--warning:var(--bq-warning);--bq-text--danger:var(--bq-danger);--bq-ui--primary:var(--bq-neutral-900);--bq-ui--secondary:var(--bq-neutral-800);--bq-ui--tertiary:var(--bq-neutral-700);--bq-ui--inverse:var(--bq-neutral-100);--bq-ui--brand:var(--bq-brand);--bq-ui--brand-alt:var(--bq-brand-dark);--bq-ui--alt:var(--bq-neutral-950);--bq-ui--success:var(--bq-success);--bq-ui--success-alt:var(--bq-success-dark);--bq-ui--warning:var(--bq-warning);--bq-ui--warning-alt:var(--bq-warning-dark);--bq-ui--danger:var(--bq-danger);--bq-ui--danger-alt:var(--bq-danger-dark);--bq-ui--info:var(--bq-brand);--bq-ui--info-alt:var(--bq-brand-dark);--bq-hover:#444546;--bq-active:#1f2026}.endava,[bq-theme=endava]{--bq-font-family:"Poppins",sans-serif;--bq-white:#fafbfb;--bq-black:#030406;--bq-neutral-50:var(--bq-endava-grey-50);--bq-neutral-100:var(--bq-endava-grey-100);--bq-neutral-200:var(--bq-endava-grey-200);--bq-neutral-300:var(--bq-endava-grey-300);--bq-neutral-400:var(--bq-endava-grey-400);--bq-neutral-500:var(--bq-endava-grey-500);--bq-neutral-600:var(--bq-endava-grey-600);--bq-neutral-700:var(--bq-endava-grey-700);--bq-neutral-800:var(--bq-endava-grey-800);--bq-neutral-900:var(--bq-endava-grey-900);--bq-neutral-950:var(--bq-endava-grey-950);--bq-neutral-1000:var(--bq-endava-grey-1000);--bq-brand-light:var(--bq-endava-orange-100);--bq-brand:var(--bq-endava-orange-600);--bq-brand-dark:var(--bq-endava-orange-1000);--bq-accent-light:var(--bq-endava-orange-100);--bq-accent:var(--bq-endava-orange-600);--bq-accent-dark:var(--bq-endava-orange-1000);--bq-success-light:var(--bq-green-100);--bq-success:var(--bq-green-600);--bq-success-dark:var(--bq-green-1000);--bq-danger-light:var(--bq-corai-100);--bq-danger:var(--bq-corai-600);--bq-danger-dark:var(--bq-corai-1000);--bq-warning-light:var(--bq-yellow-100);--bq-warning:var(--bq-yellow-600);--bq-warning-dark:var(--bq-yellow-1000);--bq-info-light:var(--bq-blue-100);--bq-info:var(--bq-blue-600);--bq-info-dark:var(--bq-blue-1000);--bq-focus:var(--bq-endava-orange-600);--bq-data-01:var(--bq-brand);--bq-data-02:#af0cd8;--bq-data-03:#0ca8d8;--bq-data-04:var(--bq-teal-600);--bq-data-05:var(--bq-yellow-600);--bq-data-06:var(--bq-orange-600);--bq-data-07:var(--bq-blue-600);--bq-data-08:var(--bq-red-600);--bq-data-09:var(--bq-purple-600);--bq-data-10:#394b56;--bq-data-11:var(--bq-black);--bq-data-12:var(--bq-white)}.endava.light,[bq-theme=endava][bq-mode=light]{--bq-background--primary:var(--bq-white);--bq-background--secondary:var(--bq-neutral-100);--bq-background--tertiary:var(--bq-neutral-200);--bq-background--alt:var(--bq-neutral-300);--bq-background--inverse:var(--bq-neutral-900);--bq-background--brand:var(--bq-brand);--bq-background--overlay:var(--bq-neutral-900);--bq-icon--primary:var(--bq-neutral-800);--bq-icon--secondary:var(--bq-neutral-600);--bq-icon--inverse:var(--bq-neutral-50);--bq-icon--brand:var(--bq-brand);--bq-icon--alt:var(--bq-white);--bq-icon--info:var(--bq-info);--bq-icon--success:var(--bq-success);--bq-icon--warning:var(--bq-warning);--bq-icon--danger:var(--bq-danger);--bq-stroke--primary:var(--bq-neutral-200);--bq-stroke--secondary:var(--bq-neutral-600);--bq-stroke--tertiary:var(--bq-neutral-900);--bq-stroke--inverse:var(--bq-white);--bq-stroke--brand:var(--bq-brand);--bq-stroke--alt:var(--bq-neutral-50);--bq-stroke--brand-alt:var(--bq-brand-light);--bq-stroke--success:var(--bq-success);--bq-stroke--warning:var(--bq-warning);--bq-stroke--danger:var(--bq-danger);--bq-stroke--info:var(--bq-info);--bq-text--primary:var(--bq-neutral-800);--bq-text--secondary:var(--bq-neutral-600);--bq-text--inverse:var(--bq-neutral-50);--bq-text--brand:var(--bq-brand);--bq-text--alt:var(--bq-white);--bq-text--info:var(--bq-info);--bq-text--success:var(--bq-success);--bq-text--warning:var(--bq-warning);--bq-text--danger:var(--bq-danger);--bq-ui--primary:var(--bq-white);--bq-ui--secondary:var(--bq-neutral-200);--bq-ui--tertiary:var(--bq-neutral-500);--bq-ui--inverse:var(--bq-neutral-900);--bq-ui--alt:var(--bq-neutral-50);--bq-ui--brand-alt:var(--bq-brand-light);--bq-ui--brand:var(--bq-brand);--bq-ui--success:var(--bq-success);--bq-ui--success-alt:var(--bq-success-light);--bq-ui--warning:var(--bq-warning);--bq-ui--warning-alt:var(--bq-warning-light);--bq-ui--danger:var(--bq-danger);--bq-ui--danger-alt:var(--bq-danger-light);--bq-ui--info:var(--bq-info);--bq-ui--info-alt:var(--bq-info-light);--bq-hover:#444546;--bq-active:#1f2026}.endava.dark,[bq-theme=endava][bq-mode=dark]{--bq-background--primary:var(--bq-neutral-1000);--bq-background--secondary:var(--bq-neutral-900);--bq-background--tertiary:var(--bq-neutral-800);--bq-background--alt:var(--bq-neutral-700);--bq-background--inverse:var(--bq-neutral-600);--bq-background--brand:var(--bq-brand);--bq-background--overlay:var(--bq-neutral-900);--bq-icon--primary:var(--bq-neutral-100);--bq-icon--secondary:var(--bq-neutral-400);--bq-icon--inverse:var(--bq-neutral-800);--bq-icon--brand:var(--bq-brand);--bq-icon--alt:var(--bq-white);--bq-icon--info:var(--bq-info);--bq-icon--success:var(--bq-success);--bq-icon--warning:var(--bq-warning);--bq-icon--danger:var(--bq-danger);--bq-stroke--primary:var(--bq-neutral-900);--bq-stroke--secondary:var(--bq-neutral-700);--bq-stroke--tertiary:var(--bq-neutral-400);--bq-stroke--inverse:var(--bq-neutral-950);--bq-stroke--brand:var(--bq-brand);--bq-stroke--brand-alt:var(--bq-brand-dark);--bq-stroke--alt:var(--bq-neutral-1000);--bq-stroke--success:var(--bq-success);--bq-stroke--warning:var(--bq-warning);--bq-stroke--danger:var(--bq-danger);--bq-stroke--info:var(--bq-info);--bq-text--primary:var(--bq-neutral-100);--bq-text--secondary:var(--bq-neutral-400);--bq-text--inverse:var(--bq-neutral-800);--bq-text--brand:var(--bq-brand);--bq-text--alt:var(--bq-neutral-white);--bq-text--info:var(--bq-info);--bq-text--success:var(--bq-success);--bq-text--warning:var(--bq-warning);--bq-text--danger:var(--bq-danger);--bq-ui--primary:var(--bq-neutral-900);--bq-ui--secondary:var(--bq-neutral-800);--bq-ui--tertiary:var(--bq-neutral-700);--bq-ui--inverse:var(--bq-neutral-100);--bq-ui--brand:var(--bq-brand);--bq-ui--brand-alt:var(--bq-brand-dark);--bq-ui--alt:var(--bq-neutral-950);--bq-ui--success:var(--bq-success);--bq-ui--success-alt:var(--bq-success-dark);--bq-ui--warning:var(--bq-warning);--bq-ui--warning-alt:var(--bq-warning-dark);--bq-ui--danger:var(--bq-danger);--bq-ui--danger-alt:var(--bq-danger-dark);--bq-ui--info:var(--bq-info);--bq-ui--info-alt:var(--bq-info-dark);--bq-hover:#444546;--bq-active:#1f2026}.block{display:block}@-webkit-keyframes fade-in{0%{opacity:0}}@keyframes fade-in{0%{opacity:0}}@-webkit-keyframes slide-in{0%{-webkit-transform:translateY(10px);transform:translateY(10px)}}@keyframes slide-in{0%{-webkit-transform:translateY(10px);transform:translateY(10px)}}@-webkit-keyframes spin{0%{-webkit-transform:rotate(0deg);transform:rotate(0deg)}to{-webkit-transform:rotate(1turn);transform:rotate(1turn)}}@keyframes spin{0%{-webkit-transform:rotate(0deg);transform:rotate(0deg)}to{-webkit-transform:rotate(1turn);transform:rotate(1turn)}}:host{display:block}.static{position:static}.flex{display:flex}.hidden{display:none}.items-center{align-items:center}.justify-center{justify-content:center}.is-3{inline-size:.75rem}.focus{outline:var(--bq-ring-width,2px) solid var(--bq-ring-color-focus,var(--bq-focus));outline-offset:var(--bq-ring-offset-width,1px)}';
@@ -118,4 +116,4 @@ const o = class {
118
116
  o.style = i;
119
117
 
120
118
  export { o as bq_breadcrumb };
121
- //# sourceMappingURL=p-5d51cadd.entry.js.map
119
+ //# sourceMappingURL=p-9cab14ee.entry.js.map
@@ -1 +1 @@
1
- {"version":3,"names":["bqBreadcrumbCss","BqBreadcrumbStyle0","BqBreadcrumb","spanElem","bqBreadcrumbBlur","bqBreadcrumbFocus","bqBreadcrumbClick","onBlur","event","isHTMLElement","detail","this","emit","onFocus","onClick","setSeparator","breadcrumbItems","forEach","item","index","arr","isLastItem","length","append","getSeparatorElem","clone","separatorFromSlot","cloneNode","slot","Array","from","el","querySelectorAll","querySelector","assignedElements","flatten","render","h","Host","key","class","ariaLabel","part","onSlotchange","hidden","ref","element","name"],"sources":["../../packages/beeq/src/components/breadcrumb/scss/bq-breadcrumb.scss?tag=bq-breadcrumb&encapsulation=shadow","../../packages/beeq/src/components/breadcrumb/bq-breadcrumb.tsx"],"sourcesContent":["/* -------------------------------------------------------------------------- */\n/* Breadcrumb styles */\n/* -------------------------------------------------------------------------- */\n\n:host {\n @apply block;\n}\n","import { Component, Element, Event, EventEmitter, h, Host, Listen, Prop } from '@stencil/core';\n\nimport { isHTMLElement } from '../../shared/utils';\n\n/**\n * @part navigation - The `nav` tag that loads the breadcrumb items\n */\n@Component({\n tag: 'bq-breadcrumb',\n styleUrl: './scss/bq-breadcrumb.scss',\n shadow: true,\n})\nexport class BqBreadcrumb {\n // Own Properties\n // ====================\n\n private spanElem: HTMLElement;\n\n // Reference to host HTML element\n // ===================================\n\n @Element() el!: HTMLBqBreadcrumbElement;\n\n // State() variables\n // Inlined decorator, alphabetical order\n // =======================================\n\n // Public Property API\n // ========================\n\n /** The `aria-label` attribute to describe the type of navigation */\n @Prop({ reflect: true }) ariaLabel: string = 'Breadcrumbs';\n\n // Prop lifecycle events\n // =======================\n\n // Events section\n // Requires JSDocs for public API documentation\n // ==============================================\n\n /** Handler to be called when `bq-breadcrumb-item` item loses focus. */\n @Event() bqBreadcrumbBlur: EventEmitter<HTMLBqBreadcrumbItemElement>;\n\n /** Handler to be called when `bq-breadcrumb-item` item gets focus. */\n @Event() bqBreadcrumbFocus: EventEmitter<HTMLBqBreadcrumbItemElement>;\n\n /** Handler to be called when `bq-breadcrumb-item` is selected (on click/enter press). */\n @Event() bqBreadcrumbClick: EventEmitter<HTMLBqBreadcrumbItemElement>;\n\n // Component lifecycle events\n // Ordered by their natural call order\n // =====================================\n\n // Listeners\n // ==============\n\n @Listen('bqBlur', { passive: true })\n onBlur(event: CustomEvent<HTMLElement>) {\n if (isHTMLElement(event.detail, 'bq-breadcrumb-item')) this.bqBreadcrumbBlur.emit(event.detail);\n }\n\n @Listen('bqFocus', { passive: true })\n onFocus(event: CustomEvent<HTMLElement>) {\n if (isHTMLElement(event.detail, 'bq-breadcrumb-item')) this.bqBreadcrumbFocus.emit(event.detail);\n }\n\n @Listen('bqClick', { passive: true })\n onClick(event: CustomEvent<HTMLElement>) {\n if (isHTMLElement(event.detail, 'bq-breadcrumb-item')) this.bqBreadcrumbClick.emit(event.detail);\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 setSeparator = (): void => {\n this.breadcrumbItems.forEach((item, index, arr) => {\n item.isLastItem = index === arr.length - 1;\n if (!item.isLastItem) {\n item.append(this.getSeparatorElem());\n }\n });\n };\n\n /**\n * clone original element and add slot attr\n * @returns cloned separator element\n */\n private getSeparatorElem = (): HTMLElement => {\n const clone = this.separatorFromSlot.cloneNode(true) as HTMLElement;\n clone.slot = 'separator';\n\n return clone;\n };\n\n private get breadcrumbItems(): HTMLBqBreadcrumbItemElement[] {\n return Array.from(this.el.querySelectorAll('bq-breadcrumb-item'));\n }\n\n private get separatorFromSlot() {\n return this.spanElem\n .querySelector<HTMLSlotElement>('slot[name=\"separator\"]')\n .assignedElements({ flatten: true })[0] as HTMLElement;\n }\n\n // render() function\n // Always the last one in the class.\n // ===================================\n\n render() {\n return (\n <Host>\n <nav class=\"flex items-center\" aria-label={this.ariaLabel} part=\"navigation\">\n <slot onSlotchange={this.setSeparator}></slot>\n </nav>\n\n <span hidden aria-hidden=\"true\" ref={(element) => (this.spanElem = element)}>\n <slot name=\"separator\">\n <span class=\"flex items-center justify-center is-3\">/</span>\n </slot>\n </span>\n </Host>\n );\n }\n}\n"],"mappings":";;;;;;;;;;AAAA,MAAMA,IAAkB;;AACxB,MAAAC,IAAeD;;MCWFE,IAAY;;;;;;qBAmBsB;;;;EAfrCC;;;;;;;;;;EAyBCC;;EAGAC;;EAGAC;;;;;;EAUT,MAAAC,CAAOC;IACL,IAAIC,EAAcD,EAAME,QAAQ,uBAAuBC,KAAKP,iBAAiBQ,KAAKJ,EAAME;;EAI1F,OAAAG,CAAQL;IACN,IAAIC,EAAcD,EAAME,QAAQ,uBAAuBC,KAAKN,kBAAkBO,KAAKJ,EAAME;;EAI3F,OAAAI,CAAQN;IACN,IAAIC,EAAcD,EAAME,QAAQ,uBAAuBC,KAAKL,kBAAkBM,KAAKJ,EAAME;;;;;;;;;;;;EAenFK,aAAe;IACrBJ,KAAKK,gBAAgBC,SAAQ,CAACC,GAAMC,GAAOC;MACzCF,EAAKG,aAAaF,MAAUC,EAAIE,SAAS;MACzC,KAAKJ,EAAKG,YAAY;QACpBH,EAAKK,OAAOZ,KAAKa;;;AAEnB;;;;;EAOIA,iBAAmB;IACzB,MAAMC,IAAQd,KAAKe,kBAAkBC,UAAU;IAC/CF,EAAMG,OAAO;IAEb,OAAOH;AAAK;EAGd,mBAAYT;IACV,OAAOa,MAAMC,KAAKnB,KAAKoB,GAAGC,iBAAiB;;EAG7C,qBAAYN;IACV,OAAOf,KAAKR,SACT8B,cAA+B,0BAC/BC,iBAAiB;MAAEC,SAAS;OAAQ;;;;;EAOzC,MAAAC;IACE,OACEC,EAACC,GAAI;MAAAC,KAAA;OACHF,EAAA;MAAAE,KAAA;MAAKC,OAAM;MAAmB,cAAa7B,KAAK8B;MAAWC,MAAK;OAC9DL,EAAA;MAAAE,KAAA;MAAMI,cAAchC,KAAKI;SAG3BsB,EAAA;MAAAE,KAAA;MAAMK,QAAM;MAAA,eAAa;MAAOC,KAAMC,KAAanC,KAAKR,WAAW2C;OACjET,EAAA;MAAAE,KAAA;MAAMQ,MAAK;OACTV,EAAA;MAAAE,KAAA;MAAMC,OAAM;OAAuC","ignoreList":[]}
1
+ {"version":3,"names":["bqBreadcrumbCss","BqBreadcrumbStyle0","BqBreadcrumb","spanElem","bqBreadcrumbBlur","bqBreadcrumbFocus","bqBreadcrumbClick","onBlur","event","isHTMLElement","detail","this","emit","onFocus","onClick","setSeparator","breadcrumbItems","forEach","item","index","arr","isLastItem","length","append","getSeparatorElem","clone","separatorFromSlot","cloneNode","slot","Array","from","el","querySelectorAll","querySelector","assignedElements","flatten","render","h","Host","key","class","ariaLabel","part","onSlotchange","hidden","ref","element","name"],"sources":["../../packages/beeq/src/components/breadcrumb/scss/bq-breadcrumb.scss?tag=bq-breadcrumb&encapsulation=shadow","../../packages/beeq/src/components/breadcrumb/bq-breadcrumb.tsx"],"sourcesContent":["/* -------------------------------------------------------------------------- */\n/* Breadcrumb styles */\n/* -------------------------------------------------------------------------- */\n\n:host {\n @apply block;\n}\n","import { Component, Element, Event, EventEmitter, h, Host, Listen, Prop } from '@stencil/core';\n\nimport { isHTMLElement } from '../../shared/utils';\n\n/**\n * @part navigation - The `nav` tag that loads the breadcrumb items\n */\n@Component({\n tag: 'bq-breadcrumb',\n styleUrl: './scss/bq-breadcrumb.scss',\n shadow: true,\n})\nexport class BqBreadcrumb {\n // Own Properties\n // ====================\n\n private spanElem: HTMLElement;\n\n // Reference to host HTML element\n // ===================================\n\n @Element() el!: HTMLBqBreadcrumbElement;\n\n // State() variables\n // Inlined decorator, alphabetical order\n // =======================================\n\n // Public Property API\n // ========================\n\n /** The `aria-label` attribute to describe the type of navigation */\n @Prop({ reflect: true }) ariaLabel: string = 'Breadcrumbs';\n\n // Prop lifecycle events\n // =======================\n\n // Events section\n // Requires JSDocs for public API documentation\n // ==============================================\n\n /** Handler to be called when `bq-breadcrumb-item` item loses focus. */\n @Event() bqBreadcrumbBlur: EventEmitter<HTMLBqBreadcrumbItemElement>;\n\n /** Handler to be called when `bq-breadcrumb-item` item gets focus. */\n @Event() bqBreadcrumbFocus: EventEmitter<HTMLBqBreadcrumbItemElement>;\n\n /** Handler to be called when `bq-breadcrumb-item` is selected (on click/enter press). */\n @Event() bqBreadcrumbClick: EventEmitter<HTMLBqBreadcrumbItemElement>;\n\n // Component lifecycle events\n // Ordered by their natural call order\n // =====================================\n\n // Listeners\n // ==============\n\n @Listen('bqBlur', { passive: true })\n onBlur(event: CustomEvent<HTMLElement>) {\n if (isHTMLElement(event.detail, 'bq-breadcrumb-item')) this.bqBreadcrumbBlur.emit(event.detail);\n }\n\n @Listen('bqFocus', { passive: true })\n onFocus(event: CustomEvent<HTMLElement>) {\n if (isHTMLElement(event.detail, 'bq-breadcrumb-item')) this.bqBreadcrumbFocus.emit(event.detail);\n }\n\n @Listen('bqClick', { passive: true })\n onClick(event: CustomEvent<HTMLElement>) {\n if (isHTMLElement(event.detail, 'bq-breadcrumb-item')) this.bqBreadcrumbClick.emit(event.detail);\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 setSeparator = (): void => {\n this.breadcrumbItems.forEach((item, index, arr) => {\n item.isLastItem = index === arr.length - 1;\n if (!item.isLastItem) {\n item.append(this.getSeparatorElem());\n }\n });\n };\n\n /**\n * clone original element and add slot attr\n * @returns cloned separator element\n */\n private getSeparatorElem = (): HTMLElement => {\n const clone = this.separatorFromSlot.cloneNode(true) as HTMLElement;\n clone.slot = 'separator';\n\n return clone;\n };\n\n private get breadcrumbItems(): HTMLBqBreadcrumbItemElement[] {\n return Array.from(this.el.querySelectorAll('bq-breadcrumb-item'));\n }\n\n private get separatorFromSlot() {\n return this.spanElem\n .querySelector<HTMLSlotElement>('slot[name=\"separator\"]')\n .assignedElements({ flatten: true })[0] as HTMLElement;\n }\n\n // render() function\n // Always the last one in the class.\n // ===================================\n\n render() {\n return (\n <Host>\n <nav class=\"flex items-center\" aria-label={this.ariaLabel} part=\"navigation\">\n <slot onSlotchange={this.setSeparator}></slot>\n </nav>\n\n <span hidden aria-hidden=\"true\" ref={(element) => (this.spanElem = element)}>\n <slot name=\"separator\">\n <span class=\"flex items-center justify-center is-3\">/</span>\n </slot>\n </span>\n </Host>\n );\n }\n}\n"],"mappings":";;;;;;;;AAAA,MAAMA,IAAkB;;AACxB,MAAAC,IAAeD;;MCWFE,IAAY;;;;;;qBAmBsB;;;;EAfrCC;;;;;;;;;;EAyBCC;;EAGAC;;EAGAC;;;;;;EAUT,MAAAC,CAAOC;IACL,IAAIC,EAAcD,EAAME,QAAQ,uBAAuBC,KAAKP,iBAAiBQ,KAAKJ,EAAME;;EAI1F,OAAAG,CAAQL;IACN,IAAIC,EAAcD,EAAME,QAAQ,uBAAuBC,KAAKN,kBAAkBO,KAAKJ,EAAME;;EAI3F,OAAAI,CAAQN;IACN,IAAIC,EAAcD,EAAME,QAAQ,uBAAuBC,KAAKL,kBAAkBM,KAAKJ,EAAME;;;;;;;;;;;;EAenFK,aAAe;IACrBJ,KAAKK,gBAAgBC,SAAQ,CAACC,GAAMC,GAAOC;MACzCF,EAAKG,aAAaF,MAAUC,EAAIE,SAAS;MACzC,KAAKJ,EAAKG,YAAY;QACpBH,EAAKK,OAAOZ,KAAKa;;;AAEnB;;;;;EAOIA,iBAAmB;IACzB,MAAMC,IAAQd,KAAKe,kBAAkBC,UAAU;IAC/CF,EAAMG,OAAO;IAEb,OAAOH;AAAK;EAGd,mBAAYT;IACV,OAAOa,MAAMC,KAAKnB,KAAKoB,GAAGC,iBAAiB;;EAG7C,qBAAYN;IACV,OAAOf,KAAKR,SACT8B,cAA+B,0BAC/BC,iBAAiB;MAAEC,SAAS;OAAQ;;;;;EAOzC,MAAAC;IACE,OACEC,EAACC,GAAI;MAAAC,KAAA;OACHF,EAAA;MAAAE,KAAA;MAAKC,OAAM;MAAmB,cAAa7B,KAAK8B;MAAWC,MAAK;OAC9DL,EAAA;MAAAE,KAAA;MAAMI,cAAchC,KAAKI;SAG3BsB,EAAA;MAAAE,KAAA;MAAMK,QAAM;MAAA,eAAa;MAAOC,KAAMC,KAAanC,KAAKR,WAAW2C;OACjET,EAAA;MAAAE,KAAA;MAAMQ,MAAK;OACTV,EAAA;MAAAE,KAAA;MAAMC,OAAM;OAAuC","ignoreList":[]}
@@ -4,8 +4,6 @@
4
4
  */
5
5
  import { r as a, c as r, g as e, h as b, a as t } from "./p-01df4baa.js";
6
6
 
7
- import "./p-a84d4562.js";
8
-
9
7
  import { i as n } from "./p-99829fc7.js";
10
8
 
11
9
  import { a as i } from "./p-d7ce7165.js";
@@ -212,4 +210,4 @@ const s = class {
212
210
  s.style = o;
213
211
 
214
212
  export { s as bq_switch };
215
- //# sourceMappingURL=p-7695fc8d.entry.js.map
213
+ //# sourceMappingURL=p-a23b23c4.entry.js.map
@@ -1 +1 @@
1
- {"version":3,"names":["bqSwitchCss","BqSwitchStyle0","BqSwitch","labelElem","inputElem","prevCheckedValue","bqChange","bqFocus","bqBlur","componentWillLoad","this","checked","componentDidLoad","handleSlotChange","componentDidUpdate","emit","vClick","click","vFocus","focus","vBlur","blur","handleChange","setAttribute","handleOnFocus","el","handleOnBlur","slot","querySelector","isNil","hasLabel","getTextContent","recurse","length","render","hostStyle","justifyContent","labelCssClasses","backgroundOnHover","disabled","reverseOrder","h","Host","key","class","fullWidth","style","part","type","required","name","undefined","onBlur","onChange","onFocus","ref","input","role","value","innerLabel","color","title","span","onSlotchange"],"sources":["../../packages/beeq/src/components/switch/scss/bq-switch.scss?tag=bq-switch&encapsulation=shadow","../../packages/beeq/src/components/switch/bq-switch.tsx"],"sourcesContent":["/* -------------------------------------------------------------------------- */\n/* Switch styles */\n/* -------------------------------------------------------------------------- */\n\n@import './bq-switch.variables';\n\n:host {\n @apply inline-block;\n}\n\n:host(.full-width) {\n @apply is-full;\n}\n\n.bq-switch {\n @apply flex cursor-pointer select-none items-center rounded-s transition-colors duration-300 p-b-2 p-i-2;\n\n justify-content: var(--bq-switch--justify-content);\n\n // Display background on hover (if enabled)\n &.has-background:not(.is-disabled):hover {\n @apply bg-hover-ui-primary;\n }\n\n &.is-disabled {\n @apply cursor-not-allowed opacity-60;\n }\n}\n\n.bq-switch--input:not(:disabled):focus-visible {\n ~ .bq-switch--control {\n @apply focus;\n }\n}\n\n.bq-switch--control__dot {\n @apply absolute start-xs2 rounded-full bg-icon-inverse bs-[--bq-switch--dot-size] is-[--bq-switch--dot-size];\n @apply group-[&.is-checked]:start-[calc(100%_-_var(--bq-switch--dot-size)_-_var(--bq-spacing-xs2))] group-[&.is-checked]:bg-[--bq-icon--alt];\n @apply transition-all duration-300;\n}\n\n.bq-switch--control__icon {\n --bq-icon--size: var(--bq-switch--dot-size) !important;\n\n &::part(base) {\n @apply flex;\n }\n}\n","import { Component, Element, Event, EventEmitter, h, Host, Method, Prop, State } from '@stencil/core';\n\nimport { TSwitchInnerLabel, TSwitchJustifyContent } from './bq-switch.types';\nimport { getTextContent, isNil } from '../../shared/utils';\n\n/**\n * Toggle switches are digital on/off switches.\n * They should provide immediate results, giving users the freedom to control their preferences as needed.\n *\n * @part base - HTML `<label>` root container\n * @part control - HTML `<div>` element for the custom control\n * @part dot - HTML `<div>` element that acts as changing dot\n * @part icon-off - HTMLBqIcon `<pk-icon>` element used as the `OFF` mark inner label\n * @part icon-on - HTMLBqIcon `<pk-icon>` element used as the `ON` mark inner label\n * @part label - HTML `<span>` element that holds the label text\n */\n@Component({\n tag: 'bq-switch',\n styleUrl: './scss/bq-switch.scss',\n shadow: {\n delegatesFocus: true,\n },\n})\nexport class BqSwitch {\n // Own Properties\n // ====================\n\n private labelElem: HTMLSpanElement;\n private inputElem: HTMLInputElement;\n private prevCheckedValue: boolean;\n\n // Reference to host HTML element\n // ===================================\n\n @Element() el!: HTMLBqSwitchElement;\n\n // State() variables\n // Inlined decorator, alphabetical order\n // =======================================\n\n @State() hasLabel = false;\n\n // Public Property API\n // ========================\n\n /** If true, a background will be displayed on hover */\n @Prop({ reflect: true }) backgroundOnHover?: boolean = false;\n\n /** It indicates whether if the switch is `ON` by default (when the page loads) */\n @Prop({ reflect: true, mutable: true }) checked?: boolean = false;\n\n /** If true, the switch control will be disabled and no interaction will be allowed */\n @Prop({ reflect: true }) disabled?: boolean = false;\n\n /** If true, the component will take the full width space available on the parent container */\n @Prop({ reflect: true }) fullWidth?: boolean = false;\n\n /** It indicates how to to display the on/off marks inside the control, with icons or none (default) */\n @Prop({ reflect: true }) innerLabel?: TSwitchInnerLabel = 'default';\n\n /**\n * It defines how to distribute the space between and around the control and the label text\n * (https://developer.mozilla.org/en-US/docs/Web/CSS/justify-content)\n */\n @Prop({ reflect: true }) justifyContent?: TSwitchJustifyContent = 'start';\n\n /** Name of the form control. Submitted with the form as part of a name/value pair */\n @Prop({ reflect: true }) name!: string;\n\n /** If `true`, it will indicate that the user must switch `ON` the element before the owning form can be submitted */\n @Prop({ reflect: true }) required?: boolean = false;\n\n /** If true, the order of the control and the label text will be changed */\n @Prop({ reflect: true }) reverseOrder?: boolean = false;\n\n /** The input control's value, submitted as a name/value pair with form data. */\n @Prop({ reflect: true }) value?: string;\n\n // Prop lifecycle events\n // =======================\n\n // Events section\n // Requires JSDocs for public API documentation\n // ==============================================\n\n /** Handler to be called when the switch state changes */\n @Event() bqChange: EventEmitter<{ checked: boolean }>;\n\n /** Handler to be called when the switch gets focus */\n @Event() bqFocus: EventEmitter<HTMLBqSwitchElement>;\n\n /** Handler to be called when the switch loses focus */\n @Event() bqBlur: EventEmitter<HTMLBqSwitchElement>;\n\n // Component lifecycle events\n // Ordered by their natural call order\n // =====================================\n\n componentWillLoad() {\n this.prevCheckedValue = this.checked;\n }\n\n componentDidLoad() {\n this.handleSlotChange();\n }\n\n componentDidUpdate() {\n /**\n * We need to trigger the `bqChange` immediately after the first update happens\n * so the checked attribute get applied, otherwise, a delay will happen\n * between the event emits and when the checked attribute value gets reflected in the element host.\n */\n if (this.checked !== this.prevCheckedValue) {\n this.bqChange.emit({ checked: this.checked });\n this.prevCheckedValue = this.checked;\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 /**\n * Simulate a click event on the native `<input>` HTML element used under the hood.\n * Use this method instead of the global `element.click()`.\n */\n @Method()\n async vClick() {\n this.inputElem?.click();\n }\n\n /**\n * Sets focus on the native `<input>` HTML element used under the hood.\n * Use this method instead of the global `element.focus()`.\n */\n @Method()\n async vFocus() {\n this.inputElem?.focus();\n }\n\n /**\n * Remove focus from the native `<input>` HTML element used under the hood.\n * Use this method instead of the global `element.blur()`.\n */\n @Method()\n async vBlur() {\n this.inputElem?.blur();\n }\n\n // Local methods\n // Internal business logic.\n // These methods cannot be called from the host element.\n // =======================================================\n\n private handleChange = () => {\n this.checked = !this.checked;\n this.inputElem.setAttribute('checked', `${this.checked}`);\n };\n\n private handleOnFocus = () => {\n this.bqFocus.emit(this.el);\n };\n\n private handleOnBlur = () => {\n this.bqBlur.emit(this.el);\n };\n\n private handleSlotChange = () => {\n const slot = this.labelElem?.querySelector('slot') ?? null;\n if (isNil(slot)) return;\n\n this.hasLabel = !!getTextContent(slot, { recurse: true }).length;\n };\n\n // render() function\n // Always the last one in the class.\n // ===================================\n\n render() {\n const hostStyle = {\n ...(this.justifyContent && { '--bq-switch--justify-content': this.justifyContent }),\n };\n\n const labelCssClasses = {\n 'has-background': this.backgroundOnHover,\n 'is-checked': this.checked,\n 'is-disabled': this.disabled,\n 'flex-row-reverse': this.reverseOrder,\n };\n\n return (\n <Host class={{ 'full-width': this.fullWidth }} style={hostStyle}>\n <label class={{ 'bq-switch group': true, ...labelCssClasses }} part=\"base\">\n {/* Hidden native HTML input */}\n <input\n class=\"bq-switch--input peer sr-only peer-checked:invisible\"\n type=\"checkbox\"\n checked={this.checked}\n disabled={this.disabled}\n required={this.required}\n name={!isNil(this.name) ? this.name : undefined}\n aria-label={this.name}\n aria-checked={this.checked ? 'true' : 'false'}\n aria-disabled={this.disabled ? 'true' : 'false'}\n onBlur={this.handleOnBlur}\n onChange={this.handleChange}\n onFocus={this.handleOnFocus}\n ref={(input) => (this.inputElem = input)}\n role=\"switch\"\n value={this.value}\n />\n {/* Control */}\n <div\n class=\"bq-switch--control relative box-border flex justify-between rounded-full bg-ui-tertiary transition duration-300 bs-[--bq-switch--height] is-[--bq-switch--width] p-b-xs2 p-i-xs2 group-[&.is-checked]:bg-ui-brand\"\n part=\"control\"\n >\n {this.innerLabel === 'icon' && (\n <bq-icon\n class=\"bq-switch--control__icon on\"\n name=\"check\"\n color=\"icon--alt\"\n role=\"img\"\n title=\"On\"\n part=\"icon-on\"\n />\n )}\n {/* Dot */}\n <div class=\"bq-switch--control__dot\" part=\"dot\" />\n {this.innerLabel === 'icon' && (\n <bq-icon\n class=\"bq-switch--control__icon off\"\n name=\"x\"\n color=\"icon--inverse\"\n role=\"img\"\n title=\"Off\"\n part=\"icon-off\"\n />\n )}\n </div>\n {/* Label */}\n <span\n class={{\n 'bq-switch--label text-m font-medium leading-regular text-text-primary transition-colors duration-300':\n true,\n 'ms-s': this.hasLabel && !this.reverseOrder,\n 'me-s': this.hasLabel && this.reverseOrder,\n }}\n ref={(span) => (this.labelElem = span)}\n part=\"label\"\n >\n <slot onSlotchange={this.handleSlotChange} />\n </span>\n </label>\n </Host>\n );\n }\n}\n"],"mappings":";;;;;;;;;;;;AAAA,MAAMA,IAAc;;AACpB,MAAAC,IAAeD;;MCsBFE,IAAQ;;;;;;oBAiBC;6BAMmC;mBAGK;oBAGd;qBAGC;sBAGW;0BAMQ;;oBAMpB;wBAGI;;;;;EA9C1CC;EACAC;EACAC;;;;;;;;;;EAyDCC;;EAGAC;;EAGAC;;;;EAMT,iBAAAC;IACEC,KAAKL,mBAAmBK,KAAKC;;EAG/B,gBAAAC;IACEF,KAAKG;;EAGP,kBAAAC;;;;;;IAME,IAAIJ,KAAKC,YAAYD,KAAKL,kBAAkB;MAC1CK,KAAKJ,SAASS,KAAK;QAAEJ,SAASD,KAAKC;;MACnCD,KAAKL,mBAAmBK,KAAKC;;;;;;;;;;;;;;;EAmBjC,YAAMK;IACJN,KAAKN,WAAWa;;;;;SAQlB,YAAMC;IACJR,KAAKN,WAAWe;;;;;SAQlB,WAAMC;IACJV,KAAKN,WAAWiB;;;;;;EAQVC,aAAe;IACrBZ,KAAKC,WAAWD,KAAKC;IACrBD,KAAKN,UAAUmB,aAAa,WAAW,GAAGb,KAAKC;AAAU;EAGnDa,cAAgB;IACtBd,KAAKH,QAAQQ,KAAKL,KAAKe;AAAG;EAGpBC,aAAe;IACrBhB,KAAKF,OAAOO,KAAKL,KAAKe;AAAG;EAGnBZ,iBAAmB;IACzB,MAAMc,IAAOjB,KAAKP,WAAWyB,cAAc,WAAW;IACtD,IAAIC,EAAMF,IAAO;IAEjBjB,KAAKoB,aAAaC,EAAeJ,GAAM;MAAEK,SAAS;OAAQC;AAAM;;;;EAOlE,MAAAC;IACE,MAAMC,IAAY;SACZzB,KAAK0B,kBAAkB;QAAE,gCAAgC1B,KAAK0B;;;IAGpE,MAAMC,IAAkB;MACtB,kBAAkB3B,KAAK4B;MACvB,cAAc5B,KAAKC;MACnB,eAAeD,KAAK6B;MACpB,oBAAoB7B,KAAK8B;;IAG3B,OACEC,EAACC,GAAI;MAAAC,KAAA;MAACC,OAAO;QAAE,cAAclC,KAAKmC;;MAAaC,OAAOX;OACpDM,EAAA;MAAAE,KAAA;MAAOC,OAAO;QAAE,mBAAmB;WAASP;;MAAmBU,MAAK;OAElEN,EAAA;MAAAE,KAAA;MACEC,OAAM;MACNI,MAAK;MACLrC,SAASD,KAAKC;MACd4B,UAAU7B,KAAK6B;MACfU,UAAUvC,KAAKuC;MACfC,OAAOrB,EAAMnB,KAAKwC,QAAQxC,KAAKwC,OAAOC;MAAS,cACnCzC,KAAKwC;MAAI,gBACPxC,KAAKC,UAAU,SAAS;MAAO,iBAC9BD,KAAK6B,WAAW,SAAS;MACxCa,QAAQ1C,KAAKgB;MACb2B,UAAU3C,KAAKY;MACfgC,SAAS5C,KAAKc;MACd+B,KAAMC,KAAW9C,KAAKN,YAAYoD;MAClCC,MAAK;MACLC,OAAOhD,KAAKgD;QAGdjB,EAAA;MAAAE,KAAA;MACEC,OAAM;MACNG,MAAK;OAEJrC,KAAKiD,eAAe,UACnBlB,EAAA;MAAAE,KAAA;MACEC,OAAM;MACNM,MAAK;MACLU,OAAM;MACNH,MAAK;MACLI,OAAM;MACNd,MAAK;QAITN,EAAA;MAAAE,KAAA;MAAKC,OAAM;MAA0BG,MAAK;QACzCrC,KAAKiD,eAAe,UACnBlB,EAAA;MAAAE,KAAA;MACEC,OAAM;MACNM,MAAK;MACLU,OAAM;MACNH,MAAK;MACLI,OAAM;MACNd,MAAK;SAKXN,EAAA;MAAAE,KAAA;MACEC,OAAO;QACL,wGACE;QACF,QAAQlC,KAAKoB,aAAapB,KAAK8B;QAC/B,QAAQ9B,KAAKoB,YAAYpB,KAAK8B;;MAEhCe,KAAMO,KAAUpD,KAAKP,YAAY2D;MACjCf,MAAK;OAELN,EAAA;MAAAE,KAAA;MAAMoB,cAAcrD,KAAKG","ignoreList":[]}
1
+ {"version":3,"names":["bqSwitchCss","BqSwitchStyle0","BqSwitch","labelElem","inputElem","prevCheckedValue","bqChange","bqFocus","bqBlur","componentWillLoad","this","checked","componentDidLoad","handleSlotChange","componentDidUpdate","emit","vClick","click","vFocus","focus","vBlur","blur","handleChange","setAttribute","handleOnFocus","el","handleOnBlur","slot","querySelector","isNil","hasLabel","getTextContent","recurse","length","render","hostStyle","justifyContent","labelCssClasses","backgroundOnHover","disabled","reverseOrder","h","Host","key","class","fullWidth","style","part","type","required","name","undefined","onBlur","onChange","onFocus","ref","input","role","value","innerLabel","color","title","span","onSlotchange"],"sources":["../../packages/beeq/src/components/switch/scss/bq-switch.scss?tag=bq-switch&encapsulation=shadow","../../packages/beeq/src/components/switch/bq-switch.tsx"],"sourcesContent":["/* -------------------------------------------------------------------------- */\n/* Switch styles */\n/* -------------------------------------------------------------------------- */\n\n@import './bq-switch.variables';\n\n:host {\n @apply inline-block;\n}\n\n:host(.full-width) {\n @apply is-full;\n}\n\n.bq-switch {\n @apply flex cursor-pointer select-none items-center rounded-s transition-colors duration-300 p-b-2 p-i-2;\n\n justify-content: var(--bq-switch--justify-content);\n\n // Display background on hover (if enabled)\n &.has-background:not(.is-disabled):hover {\n @apply bg-hover-ui-primary;\n }\n\n &.is-disabled {\n @apply cursor-not-allowed opacity-60;\n }\n}\n\n.bq-switch--input:not(:disabled):focus-visible {\n ~ .bq-switch--control {\n @apply focus;\n }\n}\n\n.bq-switch--control__dot {\n @apply absolute start-xs2 rounded-full bg-icon-inverse bs-[--bq-switch--dot-size] is-[--bq-switch--dot-size];\n @apply group-[&.is-checked]:start-[calc(100%_-_var(--bq-switch--dot-size)_-_var(--bq-spacing-xs2))] group-[&.is-checked]:bg-[--bq-icon--alt];\n @apply transition-all duration-300;\n}\n\n.bq-switch--control__icon {\n --bq-icon--size: var(--bq-switch--dot-size) !important;\n\n &::part(base) {\n @apply flex;\n }\n}\n","import { Component, Element, Event, EventEmitter, h, Host, Method, Prop, State } from '@stencil/core';\n\nimport { TSwitchInnerLabel, TSwitchJustifyContent } from './bq-switch.types';\nimport { getTextContent, isNil } from '../../shared/utils';\n\n/**\n * Toggle switches are digital on/off switches.\n * They should provide immediate results, giving users the freedom to control their preferences as needed.\n *\n * @part base - HTML `<label>` root container\n * @part control - HTML `<div>` element for the custom control\n * @part dot - HTML `<div>` element that acts as changing dot\n * @part icon-off - HTMLBqIcon `<pk-icon>` element used as the `OFF` mark inner label\n * @part icon-on - HTMLBqIcon `<pk-icon>` element used as the `ON` mark inner label\n * @part label - HTML `<span>` element that holds the label text\n */\n@Component({\n tag: 'bq-switch',\n styleUrl: './scss/bq-switch.scss',\n shadow: {\n delegatesFocus: true,\n },\n})\nexport class BqSwitch {\n // Own Properties\n // ====================\n\n private labelElem: HTMLSpanElement;\n private inputElem: HTMLInputElement;\n private prevCheckedValue: boolean;\n\n // Reference to host HTML element\n // ===================================\n\n @Element() el!: HTMLBqSwitchElement;\n\n // State() variables\n // Inlined decorator, alphabetical order\n // =======================================\n\n @State() hasLabel = false;\n\n // Public Property API\n // ========================\n\n /** If true, a background will be displayed on hover */\n @Prop({ reflect: true }) backgroundOnHover?: boolean = false;\n\n /** It indicates whether if the switch is `ON` by default (when the page loads) */\n @Prop({ reflect: true, mutable: true }) checked?: boolean = false;\n\n /** If true, the switch control will be disabled and no interaction will be allowed */\n @Prop({ reflect: true }) disabled?: boolean = false;\n\n /** If true, the component will take the full width space available on the parent container */\n @Prop({ reflect: true }) fullWidth?: boolean = false;\n\n /** It indicates how to to display the on/off marks inside the control, with icons or none (default) */\n @Prop({ reflect: true }) innerLabel?: TSwitchInnerLabel = 'default';\n\n /**\n * It defines how to distribute the space between and around the control and the label text\n * (https://developer.mozilla.org/en-US/docs/Web/CSS/justify-content)\n */\n @Prop({ reflect: true }) justifyContent?: TSwitchJustifyContent = 'start';\n\n /** Name of the form control. Submitted with the form as part of a name/value pair */\n @Prop({ reflect: true }) name!: string;\n\n /** If `true`, it will indicate that the user must switch `ON` the element before the owning form can be submitted */\n @Prop({ reflect: true }) required?: boolean = false;\n\n /** If true, the order of the control and the label text will be changed */\n @Prop({ reflect: true }) reverseOrder?: boolean = false;\n\n /** The input control's value, submitted as a name/value pair with form data. */\n @Prop({ reflect: true }) value?: string;\n\n // Prop lifecycle events\n // =======================\n\n // Events section\n // Requires JSDocs for public API documentation\n // ==============================================\n\n /** Handler to be called when the switch state changes */\n @Event() bqChange: EventEmitter<{ checked: boolean }>;\n\n /** Handler to be called when the switch gets focus */\n @Event() bqFocus: EventEmitter<HTMLBqSwitchElement>;\n\n /** Handler to be called when the switch loses focus */\n @Event() bqBlur: EventEmitter<HTMLBqSwitchElement>;\n\n // Component lifecycle events\n // Ordered by their natural call order\n // =====================================\n\n componentWillLoad() {\n this.prevCheckedValue = this.checked;\n }\n\n componentDidLoad() {\n this.handleSlotChange();\n }\n\n componentDidUpdate() {\n /**\n * We need to trigger the `bqChange` immediately after the first update happens\n * so the checked attribute get applied, otherwise, a delay will happen\n * between the event emits and when the checked attribute value gets reflected in the element host.\n */\n if (this.checked !== this.prevCheckedValue) {\n this.bqChange.emit({ checked: this.checked });\n this.prevCheckedValue = this.checked;\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 /**\n * Simulate a click event on the native `<input>` HTML element used under the hood.\n * Use this method instead of the global `element.click()`.\n */\n @Method()\n async vClick() {\n this.inputElem?.click();\n }\n\n /**\n * Sets focus on the native `<input>` HTML element used under the hood.\n * Use this method instead of the global `element.focus()`.\n */\n @Method()\n async vFocus() {\n this.inputElem?.focus();\n }\n\n /**\n * Remove focus from the native `<input>` HTML element used under the hood.\n * Use this method instead of the global `element.blur()`.\n */\n @Method()\n async vBlur() {\n this.inputElem?.blur();\n }\n\n // Local methods\n // Internal business logic.\n // These methods cannot be called from the host element.\n // =======================================================\n\n private handleChange = () => {\n this.checked = !this.checked;\n this.inputElem.setAttribute('checked', `${this.checked}`);\n };\n\n private handleOnFocus = () => {\n this.bqFocus.emit(this.el);\n };\n\n private handleOnBlur = () => {\n this.bqBlur.emit(this.el);\n };\n\n private handleSlotChange = () => {\n const slot = this.labelElem?.querySelector('slot') ?? null;\n if (isNil(slot)) return;\n\n this.hasLabel = !!getTextContent(slot, { recurse: true }).length;\n };\n\n // render() function\n // Always the last one in the class.\n // ===================================\n\n render() {\n const hostStyle = {\n ...(this.justifyContent && { '--bq-switch--justify-content': this.justifyContent }),\n };\n\n const labelCssClasses = {\n 'has-background': this.backgroundOnHover,\n 'is-checked': this.checked,\n 'is-disabled': this.disabled,\n 'flex-row-reverse': this.reverseOrder,\n };\n\n return (\n <Host class={{ 'full-width': this.fullWidth }} style={hostStyle}>\n <label class={{ 'bq-switch group': true, ...labelCssClasses }} part=\"base\">\n {/* Hidden native HTML input */}\n <input\n class=\"bq-switch--input peer sr-only peer-checked:invisible\"\n type=\"checkbox\"\n checked={this.checked}\n disabled={this.disabled}\n required={this.required}\n name={!isNil(this.name) ? this.name : undefined}\n aria-label={this.name}\n aria-checked={this.checked ? 'true' : 'false'}\n aria-disabled={this.disabled ? 'true' : 'false'}\n onBlur={this.handleOnBlur}\n onChange={this.handleChange}\n onFocus={this.handleOnFocus}\n ref={(input) => (this.inputElem = input)}\n role=\"switch\"\n value={this.value}\n />\n {/* Control */}\n <div\n class=\"bq-switch--control relative box-border flex justify-between rounded-full bg-ui-tertiary transition duration-300 bs-[--bq-switch--height] is-[--bq-switch--width] p-b-xs2 p-i-xs2 group-[&.is-checked]:bg-ui-brand\"\n part=\"control\"\n >\n {this.innerLabel === 'icon' && (\n <bq-icon\n class=\"bq-switch--control__icon on\"\n name=\"check\"\n color=\"icon--alt\"\n role=\"img\"\n title=\"On\"\n part=\"icon-on\"\n />\n )}\n {/* Dot */}\n <div class=\"bq-switch--control__dot\" part=\"dot\" />\n {this.innerLabel === 'icon' && (\n <bq-icon\n class=\"bq-switch--control__icon off\"\n name=\"x\"\n color=\"icon--inverse\"\n role=\"img\"\n title=\"Off\"\n part=\"icon-off\"\n />\n )}\n </div>\n {/* Label */}\n <span\n class={{\n 'bq-switch--label text-m font-medium leading-regular text-text-primary transition-colors duration-300':\n true,\n 'ms-s': this.hasLabel && !this.reverseOrder,\n 'me-s': this.hasLabel && this.reverseOrder,\n }}\n ref={(span) => (this.labelElem = span)}\n part=\"label\"\n >\n <slot onSlotchange={this.handleSlotChange} />\n </span>\n </label>\n </Host>\n );\n }\n}\n"],"mappings":";;;;;;;;;;AAAA,MAAMA,IAAc;;AACpB,MAAAC,IAAeD;;MCsBFE,IAAQ;;;;;;oBAiBC;6BAMmC;mBAGK;oBAGd;qBAGC;sBAGW;0BAMQ;;oBAMpB;wBAGI;;;;;EA9C1CC;EACAC;EACAC;;;;;;;;;;EAyDCC;;EAGAC;;EAGAC;;;;EAMT,iBAAAC;IACEC,KAAKL,mBAAmBK,KAAKC;;EAG/B,gBAAAC;IACEF,KAAKG;;EAGP,kBAAAC;;;;;;IAME,IAAIJ,KAAKC,YAAYD,KAAKL,kBAAkB;MAC1CK,KAAKJ,SAASS,KAAK;QAAEJ,SAASD,KAAKC;;MACnCD,KAAKL,mBAAmBK,KAAKC;;;;;;;;;;;;;;;EAmBjC,YAAMK;IACJN,KAAKN,WAAWa;;;;;SAQlB,YAAMC;IACJR,KAAKN,WAAWe;;;;;SAQlB,WAAMC;IACJV,KAAKN,WAAWiB;;;;;;EAQVC,aAAe;IACrBZ,KAAKC,WAAWD,KAAKC;IACrBD,KAAKN,UAAUmB,aAAa,WAAW,GAAGb,KAAKC;AAAU;EAGnDa,cAAgB;IACtBd,KAAKH,QAAQQ,KAAKL,KAAKe;AAAG;EAGpBC,aAAe;IACrBhB,KAAKF,OAAOO,KAAKL,KAAKe;AAAG;EAGnBZ,iBAAmB;IACzB,MAAMc,IAAOjB,KAAKP,WAAWyB,cAAc,WAAW;IACtD,IAAIC,EAAMF,IAAO;IAEjBjB,KAAKoB,aAAaC,EAAeJ,GAAM;MAAEK,SAAS;OAAQC;AAAM;;;;EAOlE,MAAAC;IACE,MAAMC,IAAY;SACZzB,KAAK0B,kBAAkB;QAAE,gCAAgC1B,KAAK0B;;;IAGpE,MAAMC,IAAkB;MACtB,kBAAkB3B,KAAK4B;MACvB,cAAc5B,KAAKC;MACnB,eAAeD,KAAK6B;MACpB,oBAAoB7B,KAAK8B;;IAG3B,OACEC,EAACC,GAAI;MAAAC,KAAA;MAACC,OAAO;QAAE,cAAclC,KAAKmC;;MAAaC,OAAOX;OACpDM,EAAA;MAAAE,KAAA;MAAOC,OAAO;QAAE,mBAAmB;WAASP;;MAAmBU,MAAK;OAElEN,EAAA;MAAAE,KAAA;MACEC,OAAM;MACNI,MAAK;MACLrC,SAASD,KAAKC;MACd4B,UAAU7B,KAAK6B;MACfU,UAAUvC,KAAKuC;MACfC,OAAOrB,EAAMnB,KAAKwC,QAAQxC,KAAKwC,OAAOC;MAAS,cACnCzC,KAAKwC;MAAI,gBACPxC,KAAKC,UAAU,SAAS;MAAO,iBAC9BD,KAAK6B,WAAW,SAAS;MACxCa,QAAQ1C,KAAKgB;MACb2B,UAAU3C,KAAKY;MACfgC,SAAS5C,KAAKc;MACd+B,KAAMC,KAAW9C,KAAKN,YAAYoD;MAClCC,MAAK;MACLC,OAAOhD,KAAKgD;QAGdjB,EAAA;MAAAE,KAAA;MACEC,OAAM;MACNG,MAAK;OAEJrC,KAAKiD,eAAe,UACnBlB,EAAA;MAAAE,KAAA;MACEC,OAAM;MACNM,MAAK;MACLU,OAAM;MACNH,MAAK;MACLI,OAAM;MACNd,MAAK;QAITN,EAAA;MAAAE,KAAA;MAAKC,OAAM;MAA0BG,MAAK;QACzCrC,KAAKiD,eAAe,UACnBlB,EAAA;MAAAE,KAAA;MACEC,OAAM;MACNM,MAAK;MACLU,OAAM;MACNH,MAAK;MACLI,OAAM;MACNd,MAAK;SAKXN,EAAA;MAAAE,KAAA;MACEC,OAAO;QACL,wGACE;QACF,QAAQlC,KAAKoB,aAAapB,KAAK8B;QAC/B,QAAQ9B,KAAKoB,YAAYpB,KAAK8B;;MAEhCe,KAAMO,KAAUpD,KAAKP,YAAY2D;MACjCf,MAAK;OAELN,EAAA;MAAAE,KAAA;MAAMoB,cAAcrD,KAAKG","ignoreList":[]}
@@ -4,9 +4,7 @@
4
4
  */
5
5
  import { r, c as a, g as b, h as e } from "./p-01df4baa.js";
6
6
 
7
- import "./p-a84d4562.js";
8
-
9
- import { i as t } from "./p-0fce4de9.js";
7
+ import { i as t } from "./p-83d6d9ad.js";
10
8
 
11
9
  import "./p-ecd27cf2.js";
12
10
 
@@ -111,4 +109,4 @@ const i = class {
111
109
  i.style = q;
112
110
 
113
111
  export { i as bq_breadcrumb_item };
114
- //# sourceMappingURL=p-2b2d8b0c.entry.js.map
112
+ //# sourceMappingURL=p-a608a4fb.entry.js.map
@@ -1 +1 @@
1
- {"version":3,"names":["bqBreadcrumbItemCss","BqBreadcrumbItemStyle0","BqBreadcrumbItem","bqBlur","bqFocus","bqClick","onBlur","this","emit","el","onFocus","onClick","render","isLink","isDefined","href","TagElem","h","key","class","ariaLabel","part","undefined","rel","target","isLastItem","name"],"sources":["../../packages/beeq/src/components/breadcrumb-item/scss/bq-breadcrumb-item.scss?tag=bq-breadcrumb-item&encapsulation=shadow","../../packages/beeq/src/components/breadcrumb-item/bq-breadcrumb-item.tsx"],"sourcesContent":["/* -------------------------------------------------------------------------- */\n/* Breadcrumb item styles */\n/* -------------------------------------------------------------------------- */\n\n@import './bq-breadcrumb-item.variables';\n\n.breadcrumb-item {\n @apply border-[length:--bq-breadcrumb-item--border-width] border-[color:--bq-breadcrumb-item--border-color];\n @apply rounded-[--bq-breadcrumb-item--border-radius] bg-[--bq-breadcrumb-item--background] shadow-[shadow:--bq-breadcrumb-item--box-shadow];\n @apply pe-[--bq-breadcrumb-item--padding-end] ps-[--bq-breadcrumb-item--padding-start] p-b-[--bq-breadcrumb-item--paddingY];\n @apply text-[length:--bq-breadcrumb-item--text-size] font-regular leading-[--bq-breadcrumb-item--line-height] text-[color:--bq-breadcrumb-item--text-color];\n @apply focus-visible:focus hover:text-hover-text-brand active:outline-none;\n @apply transition-colors duration-300 ease-in-out;\n @apply cursor-pointer no-underline;\n\n border-style: var(--bq-avatar--border-style);\n}\n\n.breadcrumb-separator {\n @apply flex items-center text-[length:--bq-breadcrumb-item--text-size-separator];\n @apply pe-[--bq-breadcrumb-item--padding-end-separator] ps-[--bq-breadcrumb-item--padding-start-separator];\n}\n","import { Component, Element, Event, EventEmitter, h, Prop } from '@stencil/core';\n\nimport { isDefined } from '../../shared/utils';\n\n/**\n * @part base - The component wrapper container\n * @part base - The breadcrumb item wrapper (`button` or `a`)\n * @part content - The `span` tag that loads the content item\n * @part separator - The `span` tag that loads the separator\n */\n@Component({\n tag: 'bq-breadcrumb-item',\n styleUrl: './scss/bq-breadcrumb-item.scss',\n shadow: true,\n})\nexport class BqBreadcrumbItem {\n // Own Properties\n // ====================\n\n // Reference to host HTML element\n // ===================================\n\n @Element() el!: HTMLBqBreadcrumbItemElement;\n\n // State() variables\n // Inlined decorator, alphabetical order\n // =======================================\n\n // Public Property API\n // ========================\n\n /**\n * The aria-label that corresponds to the full title of the destination page.\n * This won't be shown in the page, but it will be used by screen readers and other assistive devices.\n */\n @Prop() ariaLabel: string;\n\n /** If true, the item is the last element inside breadcrumb */\n @Prop() isLastItem: boolean = false;\n\n /** If set, the breadcrumb item will be rendered as an `<a>` with this `href`, otherwise, a `<button>` will be rendered. */\n @Prop({ reflect: true }) href: string;\n\n /** Where to display the link in the browser context. Relevant only if `href` is set. */\n @Prop({ reflect: true }) target: '_blank' | '_parent' | '_self' | '_top';\n\n /** Where to display the link in the browser context. Relevant only if `href` is set. */\n @Prop({ reflect: true }) rel: string = 'noreferrer noopener';\n\n // Prop lifecycle events\n // =======================\n\n // Events section\n // Requires JSDocs for public API documentation\n // ==============================================\n\n /** Handler to be called when item loses focus */\n @Event() bqBlur: EventEmitter<HTMLBqBreadcrumbItemElement>;\n\n /** Handler to be called when item is focused */\n @Event() bqFocus: EventEmitter<HTMLBqBreadcrumbItemElement>;\n\n /** Handler to be called when item is clicked */\n @Event() bqClick: EventEmitter<HTMLBqBreadcrumbItemElement>;\n\n // Component lifecycle events\n // Ordered by their natural call order\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 onBlur = () => {\n this.bqBlur.emit(this.el);\n };\n\n private onFocus = () => {\n this.bqFocus.emit(this.el);\n };\n\n private onClick = () => {\n this.bqClick.emit(this.el);\n };\n\n // render() function\n // Always the last one in the class.\n // ===================================\n\n render() {\n const isLink = isDefined(this.href);\n const TagElem = isLink ? 'a' : 'button';\n\n return (\n <div class=\"flex items-center\" aria-label={this.ariaLabel} part=\"base\">\n <TagElem\n class=\"breadcrumb-item\"\n href={isLink ? this.href : undefined}\n rel={isLink && this.target ? 'noreferrer noopener' : undefined}\n target={isLink ? this.target : undefined}\n onBlur={this.onBlur}\n onFocus={this.onFocus}\n onClick={this.onClick}\n aria-current={isLink && this.isLastItem ? 'location' : undefined} // indicates the last link as the current page\n part=\"item\"\n >\n <span\n class={{\n 'flex items-center gap-xs2': true,\n 'text-text-brand': this.isLastItem,\n }}\n part=\"content\"\n >\n <slot></slot>\n </span>\n </TagElem>\n <span\n class={{\n 'breadcrumb-separator': true,\n }}\n part=\"separator\"\n >\n <slot name=\"separator\"></slot>\n </span>\n </div>\n );\n }\n}\n"],"mappings":";;;;;;;;;;;;AAAA,MAAMA,IAAsB;;AAC5B,MAAAC,IAAeD;;MCcFE,IAAgB;;;;;;;sBAuBG;;;eASS;;;;;;;;;;;EAU9BC;;EAGAC;;EAGAC;;;;;;;;;;;;;;;;EAqBDC,OAAS;IACfC,KAAKJ,OAAOK,KAAKD,KAAKE;AAAG;EAGnBC,QAAU;IAChBH,KAAKH,QAAQI,KAAKD,KAAKE;AAAG;EAGpBE,QAAU;IAChBJ,KAAKF,QAAQG,KAAKD,KAAKE;AAAG;;;;EAO5B,MAAAG;IACE,MAAMC,IAASC,EAAUP,KAAKQ;IAC9B,MAAMC,IAAUH,IAAS,MAAM;IAE/B,OACEI,EAAA;MAAAC,KAAA;MAAKC,OAAM;MAAmB,cAAaZ,KAAKa;MAAWC,MAAK;OAC9DJ,EAACD,GAAO;MAAAE,KAAA;MACNC,OAAM;MACNJ,MAAMF,IAASN,KAAKQ,OAAOO;MAC3BC,KAAKV,KAAUN,KAAKiB,SAAS,wBAAwBF;MACrDE,QAAQX,IAASN,KAAKiB,SAASF;MAC/BhB,QAAQC,KAAKD;MACbI,SAASH,KAAKG;MACdC,SAASJ,KAAKI;MAAO,gBACPE,KAAUN,KAAKkB,aAAa,aAAaH;MACvDD,MAAK;OAELJ,EAAA;MAAAC,KAAA;MACEC,OAAO;QACL,6BAA6B;QAC7B,mBAAmBZ,KAAKkB;;MAE1BJ,MAAK;OAELJ,EAAA;MAAAC,KAAA;UAGJD,EAAA;MAAAC,KAAA;MACEC,OAAO;QACL,wBAAwB;;MAE1BE,MAAK;OAELJ,EAAA;MAAAC,KAAA;MAAMQ,MAAK","ignoreList":[]}
1
+ {"version":3,"names":["bqBreadcrumbItemCss","BqBreadcrumbItemStyle0","BqBreadcrumbItem","bqBlur","bqFocus","bqClick","onBlur","this","emit","el","onFocus","onClick","render","isLink","isDefined","href","TagElem","h","key","class","ariaLabel","part","undefined","rel","target","isLastItem","name"],"sources":["../../packages/beeq/src/components/breadcrumb-item/scss/bq-breadcrumb-item.scss?tag=bq-breadcrumb-item&encapsulation=shadow","../../packages/beeq/src/components/breadcrumb-item/bq-breadcrumb-item.tsx"],"sourcesContent":["/* -------------------------------------------------------------------------- */\n/* Breadcrumb item styles */\n/* -------------------------------------------------------------------------- */\n\n@import './bq-breadcrumb-item.variables';\n\n.breadcrumb-item {\n @apply border-[length:--bq-breadcrumb-item--border-width] border-[color:--bq-breadcrumb-item--border-color];\n @apply rounded-[--bq-breadcrumb-item--border-radius] bg-[--bq-breadcrumb-item--background] shadow-[shadow:--bq-breadcrumb-item--box-shadow];\n @apply pe-[--bq-breadcrumb-item--padding-end] ps-[--bq-breadcrumb-item--padding-start] p-b-[--bq-breadcrumb-item--paddingY];\n @apply text-[length:--bq-breadcrumb-item--text-size] font-regular leading-[--bq-breadcrumb-item--line-height] text-[color:--bq-breadcrumb-item--text-color];\n @apply focus-visible:focus hover:text-hover-text-brand active:outline-none;\n @apply transition-colors duration-300 ease-in-out;\n @apply cursor-pointer no-underline;\n\n border-style: var(--bq-avatar--border-style);\n}\n\n.breadcrumb-separator {\n @apply flex items-center text-[length:--bq-breadcrumb-item--text-size-separator];\n @apply pe-[--bq-breadcrumb-item--padding-end-separator] ps-[--bq-breadcrumb-item--padding-start-separator];\n}\n","import { Component, Element, Event, EventEmitter, h, Prop } from '@stencil/core';\n\nimport { isDefined } from '../../shared/utils';\n\n/**\n * @part base - The component wrapper container\n * @part base - The breadcrumb item wrapper (`button` or `a`)\n * @part content - The `span` tag that loads the content item\n * @part separator - The `span` tag that loads the separator\n */\n@Component({\n tag: 'bq-breadcrumb-item',\n styleUrl: './scss/bq-breadcrumb-item.scss',\n shadow: true,\n})\nexport class BqBreadcrumbItem {\n // Own Properties\n // ====================\n\n // Reference to host HTML element\n // ===================================\n\n @Element() el!: HTMLBqBreadcrumbItemElement;\n\n // State() variables\n // Inlined decorator, alphabetical order\n // =======================================\n\n // Public Property API\n // ========================\n\n /**\n * The aria-label that corresponds to the full title of the destination page.\n * This won't be shown in the page, but it will be used by screen readers and other assistive devices.\n */\n @Prop() ariaLabel: string;\n\n /** If true, the item is the last element inside breadcrumb */\n @Prop() isLastItem: boolean = false;\n\n /** If set, the breadcrumb item will be rendered as an `<a>` with this `href`, otherwise, a `<button>` will be rendered. */\n @Prop({ reflect: true }) href: string;\n\n /** Where to display the link in the browser context. Relevant only if `href` is set. */\n @Prop({ reflect: true }) target: '_blank' | '_parent' | '_self' | '_top';\n\n /** Where to display the link in the browser context. Relevant only if `href` is set. */\n @Prop({ reflect: true }) rel: string = 'noreferrer noopener';\n\n // Prop lifecycle events\n // =======================\n\n // Events section\n // Requires JSDocs for public API documentation\n // ==============================================\n\n /** Handler to be called when item loses focus */\n @Event() bqBlur: EventEmitter<HTMLBqBreadcrumbItemElement>;\n\n /** Handler to be called when item is focused */\n @Event() bqFocus: EventEmitter<HTMLBqBreadcrumbItemElement>;\n\n /** Handler to be called when item is clicked */\n @Event() bqClick: EventEmitter<HTMLBqBreadcrumbItemElement>;\n\n // Component lifecycle events\n // Ordered by their natural call order\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 onBlur = () => {\n this.bqBlur.emit(this.el);\n };\n\n private onFocus = () => {\n this.bqFocus.emit(this.el);\n };\n\n private onClick = () => {\n this.bqClick.emit(this.el);\n };\n\n // render() function\n // Always the last one in the class.\n // ===================================\n\n render() {\n const isLink = isDefined(this.href);\n const TagElem = isLink ? 'a' : 'button';\n\n return (\n <div class=\"flex items-center\" aria-label={this.ariaLabel} part=\"base\">\n <TagElem\n class=\"breadcrumb-item\"\n href={isLink ? this.href : undefined}\n rel={isLink && this.target ? 'noreferrer noopener' : undefined}\n target={isLink ? this.target : undefined}\n onBlur={this.onBlur}\n onFocus={this.onFocus}\n onClick={this.onClick}\n aria-current={isLink && this.isLastItem ? 'location' : undefined} // indicates the last link as the current page\n part=\"item\"\n >\n <span\n class={{\n 'flex items-center gap-xs2': true,\n 'text-text-brand': this.isLastItem,\n }}\n part=\"content\"\n >\n <slot></slot>\n </span>\n </TagElem>\n <span\n class={{\n 'breadcrumb-separator': true,\n }}\n part=\"separator\"\n >\n <slot name=\"separator\"></slot>\n </span>\n </div>\n );\n }\n}\n"],"mappings":";;;;;;;;;;AAAA,MAAMA,IAAsB;;AAC5B,MAAAC,IAAeD;;MCcFE,IAAgB;;;;;;;sBAuBG;;;eASS;;;;;;;;;;;EAU9BC;;EAGAC;;EAGAC;;;;;;;;;;;;;;;;EAqBDC,OAAS;IACfC,KAAKJ,OAAOK,KAAKD,KAAKE;AAAG;EAGnBC,QAAU;IAChBH,KAAKH,QAAQI,KAAKD,KAAKE;AAAG;EAGpBE,QAAU;IAChBJ,KAAKF,QAAQG,KAAKD,KAAKE;AAAG;;;;EAO5B,MAAAG;IACE,MAAMC,IAASC,EAAUP,KAAKQ;IAC9B,MAAMC,IAAUH,IAAS,MAAM;IAE/B,OACEI,EAAA;MAAAC,KAAA;MAAKC,OAAM;MAAmB,cAAaZ,KAAKa;MAAWC,MAAK;OAC9DJ,EAACD,GAAO;MAAAE,KAAA;MACNC,OAAM;MACNJ,MAAMF,IAASN,KAAKQ,OAAOO;MAC3BC,KAAKV,KAAUN,KAAKiB,SAAS,wBAAwBF;MACrDE,QAAQX,IAASN,KAAKiB,SAASF;MAC/BhB,QAAQC,KAAKD;MACbI,SAASH,KAAKG;MACdC,SAASJ,KAAKI;MAAO,gBACPE,KAAUN,KAAKkB,aAAa,aAAaH;MACvDD,MAAK;OAELJ,EAAA;MAAAC,KAAA;MACEC,OAAO;QACL,6BAA6B;QAC7B,mBAAmBZ,KAAKkB;;MAE1BJ,MAAK;OAELJ,EAAA;MAAAC,KAAA;UAGJD,EAAA;MAAAC,KAAA;MACEC,OAAO;QACL,wBAAwB;;MAE1BE,MAAK;OAELJ,EAAA;MAAAC,KAAA;MAAMQ,MAAK","ignoreList":[]}
@@ -4,8 +4,6 @@
4
4
  */
5
5
  import { r as a, c as r, g as b, h as e } from "./p-01df4baa.js";
6
6
 
7
- import "./p-a84d4562.js";
8
-
9
7
  import { d as q } from "./p-1defeea3.js";
10
8
 
11
9
  import { i as n } from "./p-57621be1.js";
@@ -208,4 +206,4 @@ const l = class {
208
206
  l.style = s;
209
207
 
210
208
  export { l as bq_radio_group };
211
- //# sourceMappingURL=p-bc60faa1.entry.js.map
209
+ //# sourceMappingURL=p-aacaaa35.entry.js.map
@@ -1 +1 @@
1
- {"version":3,"names":["RADIO_GROUP_ORIENTATION","bqRadioGroupCss","BqRadioGroupStyle0","BqRadioGroup","focusedBqRadio","debouncedBqChange","handleGroupProperties","this","bqRadioElements","forEach","bqRadio","backgroundOnHover","disabled","name","checked","isNil","value","checkPropValues","validatePropValue","el","checkDebounceChange","debounceTime","Math","max","cancel","debounce","event","bqChange","emit","componentWillLoad","componentDidLoad","onMouseDown","isHTMLElement","target","contains","onBqClick","detail","bqRadioElement","checkRadioInput","onBqKeyDown","key","focusRadioInputSibbling","onBqFocus","stopPropagation","onBqBlur","Array","from","querySelectorAll","currentTarget","next","index","elements","getNextRadioElement","vFocus","forward","element","elementIndex","length","render","h","class","fieldset","role","part","orientation"],"sources":["../../packages/beeq/src/components/radio-group/bq-radio-group.types.ts","../../packages/beeq/src/components/radio-group/scss/bq-radio-group.scss?tag=bq-radio-group&encapsulation=shadow","../../packages/beeq/src/components/radio-group/bq-radio-group.tsx"],"sourcesContent":["export const RADIO_GROUP_ORIENTATION = ['horizontal', 'vertical'] as const;\nexport type TRadioGroupOrientation = (typeof RADIO_GROUP_ORIENTATION)[number];\n","/* -------------------------------------------------------------------------- */\n/* Radio group styles */\n/* -------------------------------------------------------------------------- */\n\n:host {\n @apply inline-block;\n}\n\n.bq-radio-group {\n @apply m-b-0 m-i-0;\n\n &:not(.has-fieldset) {\n @apply border-0 m-b-0 m-i-0 p-b-0 p-i-0;\n }\n\n &--horizontal {\n @apply flex;\n }\n\n &--vertical {\n @apply flex flex-col;\n }\n}\n","import { Component, Element, Event, EventEmitter, h, Listen, Prop, Watch } from '@stencil/core';\n\nimport { RADIO_GROUP_ORIENTATION, TRadioGroupOrientation } from './bq-radio-group.types';\nimport { debounce, isHTMLElement, isNil, TDebounce, validatePropValue } from '../../shared/utils';\n/**\n * @part base - The component's internal wrapper of the radio components.\n * @part label - The `<legend>` element that holds the text content.\n * @part group - The `<div>` element that holds the radio inputs.\n */\n@Component({\n tag: 'bq-radio-group',\n styleUrl: './scss/bq-radio-group.scss',\n shadow: true,\n})\nexport class BqRadioGroup {\n // Own Properties\n // ====================\n\n private focusedBqRadio: HTMLBqRadioElement | null = null;\n\n private debouncedBqChange: TDebounce<{ value: string; target: HTMLBqRadioElement }>;\n\n // Reference to host HTML element\n // ===================================\n\n @Element() el!: HTMLBqRadioGroupElement;\n\n // State() variables\n // Inlined decorator, alphabetical order\n // =======================================\n\n // Public Property API\n // ========================\n\n /** If true, all radio inputs in the group will display a background on hover */\n @Prop({ reflect: true }) backgroundOnHover? = false;\n\n /** Name of the HTML input form control. Submitted with the form as part of a name/value pair. */\n @Prop({ reflect: true }) name!: string;\n\n /** A string representing the value of the radio. */\n @Prop({ reflect: true, mutable: true }) value?: string;\n\n /** If true radio inputs are disabled */\n @Prop({ reflect: true }) disabled? = false;\n\n /** If true displays fieldset */\n @Prop({ reflect: true }) fieldset? = false;\n\n /** The display orientation of the radio inputs */\n @Prop({ reflect: true, mutable: true }) orientation: TRadioGroupOrientation = 'vertical';\n\n /** A number representing the delay time (in milliseconds) that `bqChange` event handler gets triggered once the value change */\n @Prop({ reflect: true, mutable: true }) debounceTime = 0;\n\n // Prop lifecycle events\n // =======================\n\n @Watch('backgroundOnHover')\n @Watch('disabled')\n @Watch('name')\n @Watch('value')\n handleGroupProperties() {\n if (!this.bqRadioElements) return;\n\n this.bqRadioElements.forEach((bqRadio) => {\n bqRadio.backgroundOnHover = this.backgroundOnHover;\n bqRadio.disabled = this.disabled;\n bqRadio.name = this.name;\n bqRadio.checked = !isNil(this.value) ? bqRadio.value === this.value : false;\n });\n }\n\n @Watch('orientation')\n checkPropValues() {\n validatePropValue(RADIO_GROUP_ORIENTATION, 'vertical', this.el, 'orientation');\n }\n\n @Watch('debounceTime')\n checkDebounceChange() {\n if (this.debounceTime < 0) {\n this.debounceTime = Math.max(0, this.debounceTime);\n }\n\n if (this.debouncedBqChange) {\n this.debouncedBqChange.cancel();\n }\n\n this.debouncedBqChange = debounce((event: Parameters<typeof this.debouncedBqChange>[0]) => {\n this.bqChange.emit(event);\n }, this.debounceTime);\n }\n\n // Events section\n // Requires JSDocs for public API documentation\n // ==============================================\n\n /** Handler to be called when the radio state changes */\n @Event() bqChange: EventEmitter<{ value: string; target: HTMLBqRadioElement }>;\n\n // Component lifecycle events\n // Ordered by their natural call order\n // =====================================\n\n componentWillLoad() {\n this.checkPropValues();\n this.checkDebounceChange();\n }\n\n componentDidLoad() {\n this.handleGroupProperties();\n }\n\n // Listeners\n // ==============\n\n @Listen('mousedown', { target: 'body', passive: true })\n onMouseDown(event: MouseEvent) {\n if (!isNil(this.focusedBqRadio) && isHTMLElement(event.target, 'bq-radio') && this.el.contains(event.target)) {\n this.focusedBqRadio = event.target;\n }\n }\n\n @Listen('bqClick')\n onBqClick(event: CustomEvent<HTMLBqRadioElement>) {\n if (isNil(this.focusedBqRadio)) {\n this.focusedBqRadio = event.detail;\n }\n\n if (event.detail.value === this.value) return;\n\n const target = event.detail;\n this.bqRadioElements.forEach((bqRadioElement) => (bqRadioElement.checked = bqRadioElement === target));\n this.checkRadioInput(event.detail);\n }\n\n @Listen('bqKeyDown')\n onBqKeyDown(event: CustomEvent<KeyboardEvent>) {\n const { target } = event;\n\n if (!isHTMLElement(target, 'bq-radio')) return;\n\n switch (event.detail.key) {\n case 'ArrowDown':\n case 'ArrowRight': {\n this.focusRadioInputSibbling(target, true);\n break;\n }\n\n case 'ArrowUp':\n case 'ArrowLeft': {\n this.focusRadioInputSibbling(target, false);\n break;\n }\n\n default:\n }\n }\n\n @Listen('bqFocus', { capture: true })\n onBqFocus(event: CustomEvent<HTMLBqRadioElement>) {\n if (event.detail !== this.focusedBqRadio) return;\n\n event.stopPropagation();\n }\n\n @Listen('bqBlur', { capture: true })\n onBqBlur(event: CustomEvent<HTMLBqRadioElement>) {\n if (!isNil(this.focusedBqRadio) && event.detail !== this.focusedBqRadio) {\n event.stopPropagation();\n } else {\n this.focusedBqRadio = null;\n }\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 get bqRadioElements(): HTMLBqRadioElement[] {\n return Array.from(this.el.querySelectorAll('bq-radio'));\n }\n\n private focusRadioInputSibbling(currentTarget: HTMLBqRadioElement, next: boolean): void {\n this.bqRadioElements.forEach((bqRadioElement, index, elements) => {\n if (bqRadioElement === currentTarget) {\n const target = this.getNextRadioElement(elements, index, next);\n\n currentTarget.checked = false;\n\n target.vFocus();\n this.checkRadioInput(target);\n }\n });\n }\n\n private getNextRadioElement(elements: HTMLBqRadioElement[], index: number, forward = true): HTMLBqRadioElement {\n let element = null;\n let elementIndex = index;\n\n do {\n elementIndex = (elements.length + (elementIndex + (forward ? 1 : -1))) % elements.length;\n element = elements[elementIndex];\n } while (element.disabled);\n\n return element;\n }\n\n private checkRadioInput(target: HTMLBqRadioElement): void {\n const { value } = target;\n target.checked = true;\n this.value = value;\n this.focusedBqRadio = target;\n this.debouncedBqChange({ value, target });\n }\n\n // render() function\n // Always the last one in the class.\n // ===================================\n\n render() {\n return (\n <fieldset class={{ 'bq-radio-group': true, 'has-fieldset': this.fieldset }} role=\"radiogroup\" part=\"base\">\n <legend part=\"label\">\n <slot name=\"label\" />\n </legend>\n <div class={`bq-radio-group--${this.orientation}`} part=\"group\">\n <slot />\n </div>\n </fieldset>\n );\n }\n}\n"],"mappings":"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","ignoreList":[]}
1
+ {"version":3,"names":["RADIO_GROUP_ORIENTATION","bqRadioGroupCss","BqRadioGroupStyle0","BqRadioGroup","focusedBqRadio","debouncedBqChange","handleGroupProperties","this","bqRadioElements","forEach","bqRadio","backgroundOnHover","disabled","name","checked","isNil","value","checkPropValues","validatePropValue","el","checkDebounceChange","debounceTime","Math","max","cancel","debounce","event","bqChange","emit","componentWillLoad","componentDidLoad","onMouseDown","isHTMLElement","target","contains","onBqClick","detail","bqRadioElement","checkRadioInput","onBqKeyDown","key","focusRadioInputSibbling","onBqFocus","stopPropagation","onBqBlur","Array","from","querySelectorAll","currentTarget","next","index","elements","getNextRadioElement","vFocus","forward","element","elementIndex","length","render","h","class","fieldset","role","part","orientation"],"sources":["../../packages/beeq/src/components/radio-group/bq-radio-group.types.ts","../../packages/beeq/src/components/radio-group/scss/bq-radio-group.scss?tag=bq-radio-group&encapsulation=shadow","../../packages/beeq/src/components/radio-group/bq-radio-group.tsx"],"sourcesContent":["export const RADIO_GROUP_ORIENTATION = ['horizontal', 'vertical'] as const;\nexport type TRadioGroupOrientation = (typeof RADIO_GROUP_ORIENTATION)[number];\n","/* -------------------------------------------------------------------------- */\n/* Radio group styles */\n/* -------------------------------------------------------------------------- */\n\n:host {\n @apply inline-block;\n}\n\n.bq-radio-group {\n @apply m-b-0 m-i-0;\n\n &:not(.has-fieldset) {\n @apply border-0 m-b-0 m-i-0 p-b-0 p-i-0;\n }\n\n &--horizontal {\n @apply flex;\n }\n\n &--vertical {\n @apply flex flex-col;\n }\n}\n","import { Component, Element, Event, EventEmitter, h, Listen, Prop, Watch } from '@stencil/core';\n\nimport { RADIO_GROUP_ORIENTATION, TRadioGroupOrientation } from './bq-radio-group.types';\nimport { debounce, isHTMLElement, isNil, TDebounce, validatePropValue } from '../../shared/utils';\n/**\n * @part base - The component's internal wrapper of the radio components.\n * @part label - The `<legend>` element that holds the text content.\n * @part group - The `<div>` element that holds the radio inputs.\n */\n@Component({\n tag: 'bq-radio-group',\n styleUrl: './scss/bq-radio-group.scss',\n shadow: true,\n})\nexport class BqRadioGroup {\n // Own Properties\n // ====================\n\n private focusedBqRadio: HTMLBqRadioElement | null = null;\n\n private debouncedBqChange: TDebounce<{ value: string; target: HTMLBqRadioElement }>;\n\n // Reference to host HTML element\n // ===================================\n\n @Element() el!: HTMLBqRadioGroupElement;\n\n // State() variables\n // Inlined decorator, alphabetical order\n // =======================================\n\n // Public Property API\n // ========================\n\n /** If true, all radio inputs in the group will display a background on hover */\n @Prop({ reflect: true }) backgroundOnHover? = false;\n\n /** Name of the HTML input form control. Submitted with the form as part of a name/value pair. */\n @Prop({ reflect: true }) name!: string;\n\n /** A string representing the value of the radio. */\n @Prop({ reflect: true, mutable: true }) value?: string;\n\n /** If true radio inputs are disabled */\n @Prop({ reflect: true }) disabled? = false;\n\n /** If true displays fieldset */\n @Prop({ reflect: true }) fieldset? = false;\n\n /** The display orientation of the radio inputs */\n @Prop({ reflect: true, mutable: true }) orientation: TRadioGroupOrientation = 'vertical';\n\n /** A number representing the delay time (in milliseconds) that `bqChange` event handler gets triggered once the value change */\n @Prop({ reflect: true, mutable: true }) debounceTime = 0;\n\n // Prop lifecycle events\n // =======================\n\n @Watch('backgroundOnHover')\n @Watch('disabled')\n @Watch('name')\n @Watch('value')\n handleGroupProperties() {\n if (!this.bqRadioElements) return;\n\n this.bqRadioElements.forEach((bqRadio) => {\n bqRadio.backgroundOnHover = this.backgroundOnHover;\n bqRadio.disabled = this.disabled;\n bqRadio.name = this.name;\n bqRadio.checked = !isNil(this.value) ? bqRadio.value === this.value : false;\n });\n }\n\n @Watch('orientation')\n checkPropValues() {\n validatePropValue(RADIO_GROUP_ORIENTATION, 'vertical', this.el, 'orientation');\n }\n\n @Watch('debounceTime')\n checkDebounceChange() {\n if (this.debounceTime < 0) {\n this.debounceTime = Math.max(0, this.debounceTime);\n }\n\n if (this.debouncedBqChange) {\n this.debouncedBqChange.cancel();\n }\n\n this.debouncedBqChange = debounce((event: Parameters<typeof this.debouncedBqChange>[0]) => {\n this.bqChange.emit(event);\n }, this.debounceTime);\n }\n\n // Events section\n // Requires JSDocs for public API documentation\n // ==============================================\n\n /** Handler to be called when the radio state changes */\n @Event() bqChange: EventEmitter<{ value: string; target: HTMLBqRadioElement }>;\n\n // Component lifecycle events\n // Ordered by their natural call order\n // =====================================\n\n componentWillLoad() {\n this.checkPropValues();\n this.checkDebounceChange();\n }\n\n componentDidLoad() {\n this.handleGroupProperties();\n }\n\n // Listeners\n // ==============\n\n @Listen('mousedown', { target: 'body', passive: true })\n onMouseDown(event: MouseEvent) {\n if (!isNil(this.focusedBqRadio) && isHTMLElement(event.target, 'bq-radio') && this.el.contains(event.target)) {\n this.focusedBqRadio = event.target;\n }\n }\n\n @Listen('bqClick')\n onBqClick(event: CustomEvent<HTMLBqRadioElement>) {\n if (isNil(this.focusedBqRadio)) {\n this.focusedBqRadio = event.detail;\n }\n\n if (event.detail.value === this.value) return;\n\n const target = event.detail;\n this.bqRadioElements.forEach((bqRadioElement) => (bqRadioElement.checked = bqRadioElement === target));\n this.checkRadioInput(event.detail);\n }\n\n @Listen('bqKeyDown')\n onBqKeyDown(event: CustomEvent<KeyboardEvent>) {\n const { target } = event;\n\n if (!isHTMLElement(target, 'bq-radio')) return;\n\n switch (event.detail.key) {\n case 'ArrowDown':\n case 'ArrowRight': {\n this.focusRadioInputSibbling(target, true);\n break;\n }\n\n case 'ArrowUp':\n case 'ArrowLeft': {\n this.focusRadioInputSibbling(target, false);\n break;\n }\n\n default:\n }\n }\n\n @Listen('bqFocus', { capture: true })\n onBqFocus(event: CustomEvent<HTMLBqRadioElement>) {\n if (event.detail !== this.focusedBqRadio) return;\n\n event.stopPropagation();\n }\n\n @Listen('bqBlur', { capture: true })\n onBqBlur(event: CustomEvent<HTMLBqRadioElement>) {\n if (!isNil(this.focusedBqRadio) && event.detail !== this.focusedBqRadio) {\n event.stopPropagation();\n } else {\n this.focusedBqRadio = null;\n }\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 get bqRadioElements(): HTMLBqRadioElement[] {\n return Array.from(this.el.querySelectorAll('bq-radio'));\n }\n\n private focusRadioInputSibbling(currentTarget: HTMLBqRadioElement, next: boolean): void {\n this.bqRadioElements.forEach((bqRadioElement, index, elements) => {\n if (bqRadioElement === currentTarget) {\n const target = this.getNextRadioElement(elements, index, next);\n\n currentTarget.checked = false;\n\n target.vFocus();\n this.checkRadioInput(target);\n }\n });\n }\n\n private getNextRadioElement(elements: HTMLBqRadioElement[], index: number, forward = true): HTMLBqRadioElement {\n let element = null;\n let elementIndex = index;\n\n do {\n elementIndex = (elements.length + (elementIndex + (forward ? 1 : -1))) % elements.length;\n element = elements[elementIndex];\n } while (element.disabled);\n\n return element;\n }\n\n private checkRadioInput(target: HTMLBqRadioElement): void {\n const { value } = target;\n target.checked = true;\n this.value = value;\n this.focusedBqRadio = target;\n this.debouncedBqChange({ value, target });\n }\n\n // render() function\n // Always the last one in the class.\n // ===================================\n\n render() {\n return (\n <fieldset class={{ 'bq-radio-group': true, 'has-fieldset': this.fieldset }} role=\"radiogroup\" part=\"base\">\n <legend part=\"label\">\n <slot name=\"label\" />\n </legend>\n <div class={`bq-radio-group--${this.orientation}`} part=\"group\">\n <slot />\n </div>\n </fieldset>\n );\n }\n}\n"],"mappings":";;;;;;;;;;;;;;AAAO,MAAMA,IAA0B,EAAC,cAAc;;ACAtD,MAAMC,IAAkB;;AACxB,MAAAC,IAAeD;;MCaFE,IAAY;;;;6BAqBuB;;;oBAST;oBAGA;uBAGyC;wBAGvB;;;;EAnC/CC,eAA4C;EAE5CC;;;;;;EA0CR,qBAAAC;IACE,KAAKC,KAAKC,iBAAiB;IAE3BD,KAAKC,gBAAgBC,SAASC;MAC5BA,EAAQC,oBAAoBJ,KAAKI;MACjCD,EAAQE,WAAWL,KAAKK;MACxBF,EAAQG,OAAON,KAAKM;MACpBH,EAAQI,WAAWC,EAAMR,KAAKS,SAASN,EAAQM,UAAUT,KAAKS,QAAQ;AAAK;;EAK/E,eAAAC;IACEC,EAAkBlB,GAAyB,YAAYO,KAAKY,IAAI;;EAIlE,mBAAAC;IACE,IAAIb,KAAKc,eAAe,GAAG;MACzBd,KAAKc,eAAeC,KAAKC,IAAI,GAAGhB,KAAKc;;IAGvC,IAAId,KAAKF,mBAAmB;MAC1BE,KAAKF,kBAAkBmB;;IAGzBjB,KAAKF,oBAAoBoB,GAAUC;MACjCnB,KAAKoB,SAASC,KAAKF;AAAM,QACxBnB,KAAKc;;;;;;EAQDM;;;;EAMT,iBAAAE;IACEtB,KAAKU;IACLV,KAAKa;;EAGP,gBAAAU;IACEvB,KAAKD;;;;EAOP,WAAAyB,CAAYL;IACV,KAAKX,EAAMR,KAAKH,mBAAmB4B,EAAcN,EAAMO,QAAQ,eAAe1B,KAAKY,GAAGe,SAASR,EAAMO,SAAS;MAC5G1B,KAAKH,iBAAiBsB,EAAMO;;;EAKhC,SAAAE,CAAUT;IACR,IAAIX,EAAMR,KAAKH,iBAAiB;MAC9BG,KAAKH,iBAAiBsB,EAAMU;;IAG9B,IAAIV,EAAMU,OAAOpB,UAAUT,KAAKS,OAAO;IAEvC,MAAMiB,IAASP,EAAMU;IACrB7B,KAAKC,gBAAgBC,SAAS4B,KAAoBA,EAAevB,UAAUuB,MAAmBJ;IAC9F1B,KAAK+B,gBAAgBZ,EAAMU;;EAI7B,WAAAG,CAAYb;IACV,OAAMO,QAAEA,KAAWP;IAEnB,KAAKM,EAAcC,GAAQ,aAAa;IAExC,QAAQP,EAAMU,OAAOI;KACnB,KAAK;KACL,KAAK;MAAc;QACjBjC,KAAKkC,wBAAwBR,GAAQ;QACrC;;;KAGF,KAAK;KACL,KAAK;MAAa;QAChB1B,KAAKkC,wBAAwBR,GAAQ;QACrC;;;;EAQN,SAAAS,CAAUhB;IACR,IAAIA,EAAMU,WAAW7B,KAAKH,gBAAgB;IAE1CsB,EAAMiB;;EAIR,QAAAC,CAASlB;IACP,KAAKX,EAAMR,KAAKH,mBAAmBsB,EAAMU,WAAW7B,KAAKH,gBAAgB;MACvEsB,EAAMiB;WACD;MACLpC,KAAKH,iBAAiB;;;;;;;;;;;;;EAgB1B,mBAAYI;IACV,OAAOqC,MAAMC,KAAKvC,KAAKY,GAAG4B,iBAAiB;;EAGrC,uBAAAN,CAAwBO,GAAmCC;IACjE1C,KAAKC,gBAAgBC,SAAQ,CAAC4B,GAAgBa,GAAOC;MACnD,IAAId,MAAmBW,GAAe;QACpC,MAAMf,IAAS1B,KAAK6C,oBAAoBD,GAAUD,GAAOD;QAEzDD,EAAclC,UAAU;QAExBmB,EAAOoB;QACP9C,KAAK+B,gBAAgBL;;;;EAKnB,mBAAAmB,CAAoBD,GAAgCD,GAAeI,IAAU;IACnF,IAAIC,IAAU;IACd,IAAIC,IAAeN;IAEnB,GAAG;MACDM,KAAgBL,EAASM,UAAUD,KAAgBF,IAAU,KAAK,OAAOH,EAASM;MAClFF,IAAUJ,EAASK;aACZD,EAAQ3C;IAEjB,OAAO2C;;EAGD,eAAAjB,CAAgBL;IACtB,OAAMjB,OAAEA,KAAUiB;IAClBA,EAAOnB,UAAU;IACjBP,KAAKS,QAAQA;IACbT,KAAKH,iBAAiB6B;IACtB1B,KAAKF,kBAAkB;MAAEW;MAAOiB;;;;;;EAOlC,MAAAyB;IACE,OACEC,EAAA;MAAAnB,KAAA;MAAUoB,OAAO;QAAE,kBAAkB;QAAM,gBAAgBrD,KAAKsD;;MAAYC,MAAK;MAAaC,MAAK;OACjGJ,EAAA;MAAAnB,KAAA;MAAQuB,MAAK;OACXJ,EAAA;MAAAnB,KAAA;MAAM3B,MAAK;SAEb8C,EAAA;MAAAnB,KAAA;MAAKoB,OAAO,mBAAmBrD,KAAKyD;MAAeD,MAAK;OACtDJ,EAAA;MAAAnB,KAAA","ignoreList":[]}
@@ -4,8 +4,6 @@
4
4
  */
5
5
  import { r, c as a, g as e, h as b, a as t } from "./p-01df4baa.js";
6
6
 
7
- import "./p-a84d4562.js";
8
-
9
7
  import { d as n } from "./p-1defeea3.js";
10
8
 
11
9
  import { v as i } from "./p-687da041.js";
@@ -269,4 +267,4 @@ const v = class {
269
267
  v.style = c;
270
268
 
271
269
  export { v as bq_alert };
272
- //# sourceMappingURL=p-d8f7bf11.entry.js.map
270
+ //# sourceMappingURL=p-b2df1479.entry.js.map
@@ -1 +1 @@
1
- {"version":3,"names":["ALERT_TYPE","bqAlertCss","BqAlertStyle0","BqAlert","autoDismissDebounce","bodyElem","footerElem","alertElement","handleTimeout","this","cancel","autoDismiss","debounce","hide","time","open","handleOpenChange","handleHide","handleShow","checkPropValues","validatePropValue","el","bqHide","bqShow","bqAfterShow","bqAfterHide","componentWillLoad","componentDidLoad","classList","add","show","async","ev","emit","defaultPrevented","leave","handleTransitionEnd","remove","enter","handleContentSlotChange","hasContent","hasSlotContent","handleFooterSlotChange","hasFooter","iconName","error","success","warning","type","render","style","border","h","Host","key","class","sticky","hidden","role","ref","div","part","disableClose","appearance","size","onClick","bind","name","hideIcon","exportparts","onSlotchange"],"sources":["../../packages/beeq/src/components/alert/bq-alert.types.ts","../../packages/beeq/src/components/alert/scss/bq-alert.scss?tag=bq-alert&encapsulation=shadow","../../packages/beeq/src/components/alert/bq-alert.tsx"],"sourcesContent":["export const ALERT_TYPE = ['info', 'success', 'warning', 'error', 'default'] as const;\nexport type TAlertType = (typeof ALERT_TYPE)[number];\n\nexport const ALERT_BORDER_RADIUS = ['none', 'xs2', 'xs', 's', 'm', 'l', 'full'] as const;\nexport type TAlertBorderRadius = (typeof ALERT_BORDER_RADIUS)[number];\n","/* -------------------------------------------------------------------------- */\n/* Alert styles */\n/* -------------------------------------------------------------------------- */\n\n@import './bq-alert.variables';\n\n:host {\n @apply block;\n}\n\n:host(.is-hidden) {\n @apply hidden;\n}\n\n:host(.is-sticky) {\n @apply fixed inset-0 z-[var(--bq-alert--z-index)] is-full inset-bs-0;\n\n .bq-alert {\n @apply items-center justify-center rounded-none;\n }\n}\n\n.bq-alert {\n @apply relative flex transition-all min-is-[--bq-alert--min-width] p-b-[--bq-alert--padding] p-i-[--bq-alert--padding];\n @apply rounded-[var(--bq-alert--border-radius)] border-[length:--bq-alert--border-width];\n\n border-style: var(--bq-alert--border-style);\n}\n\n/**\n * Set the alert background and border color based on the type value selected\n */\n\n.bq-alert__default {\n @apply border-[color:--bq-alert--border-default] bg-[color:--bq-alert--background-default];\n}\n\n.bq-alert__error {\n @apply border-[color:--bq-alert--border-error] bg-[color:--bq-alert--background-error];\n}\n\n.bq-alert__info {\n @apply border-[color:--bq-alert--border-info] bg-[color:--bq-alert--background-info];\n}\n\n.bq-alert__success {\n @apply border-[color:--bq-alert--border-success] bg-[color:--bq-alert--background-success];\n}\n\n.bq-alert__warning {\n @apply border-[color:--bq-alert--border-warning] bg-[color:--bq-alert--background-warning];\n}\n\n/**\n * Set the alert icon color based on the type value selected\n */\n.bq-alert__icon {\n &--default {\n @apply text-[color:--bq-alert--icon-color-default];\n }\n\n &--error {\n @apply text-[color:--bq-alert--icon-color-error];\n }\n\n &--info {\n @apply text-[color:--bq-alert--icon-color-info];\n }\n\n &--success {\n @apply text-[color:--bq-alert--icon-color-success];\n }\n\n &--warning {\n @apply text-[color:--bq-alert--icon-color-warning];\n }\n}\n\n/**\n * Tweak the close bq-button styles so it remain small without extra padding\n */\n.bq-alert__close::part(button) {\n @apply rounded-s border-0 bs-fit p-b-0 p-i-0;\n}\n","import { Component, Element, Event, EventEmitter, h, Host, Method, Prop, State, Watch } from '@stencil/core';\n\nimport { ALERT_TYPE, TAlertBorderRadius, TAlertType } from './bq-alert.types';\nimport { debounce, enter, hasSlotContent, leave, TDebounce, validatePropValue } from '../../shared/utils';\n\n/**\n * @part base - The `<div>` container of the predefined bq-icon component\n * @part body - The container `<div>` that wraps the alert description content\n * @part btn-close - The `bq-button` used to close the alert\n * @part content - The container `<div>` that wraps all the alert content (title, description, footer)\n * @part footer - The container `<div>` that wraps the alert footer content\n * @part icon - The `<bq-icon>` element used to render a predefined icon based on the alert type (info, success, warning, error, default)\n * @part icon-outline - The container `<div>` that wraps the icon element\n * @part main - The container `<div>` that wraps the alert main content (title, description)\n * @part svg - The `<svg>` element of the predefined bq-icon component\n * @part title - The container `<div>` that wraps the alert title content\n * @part wrapper - The wrapper container `<div>` of the element inside the shadow DOM\n *\n * @slot - The alert title content (no slot name required)\n * @slot body - The alert description content\n * @slot footer - The alert footer content\n * @slot icon - The predefined icon based on the alert type (info, success, warning, error, default)\n * @slot btn-close - The close button of the alert\n */\n\n@Component({\n tag: 'bq-alert',\n styleUrl: './scss/bq-alert.scss',\n shadow: true,\n})\nexport class BqAlert {\n // Own Properties\n // ====================\n\n private autoDismissDebounce: TDebounce<void>;\n private bodyElem: HTMLDivElement;\n private footerElem: HTMLDivElement;\n private alertElement: HTMLDivElement;\n\n // Reference to host HTML element\n // ===================================\n\n @Element() el!: HTMLBqAlertElement;\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 /** If true, the alert will automatically hide after the specified amount of time */\n @Prop({ reflect: true }) autoDismiss: boolean;\n\n /** The corner radius of the alert component */\n @Prop({ reflect: true }) border: TAlertBorderRadius = 's';\n\n /** If true, the close button at the top right of the alert won't be shown */\n @Prop({ reflect: true }) disableClose: boolean;\n\n /** If true, the alert icon won't be shown */\n @Prop({ reflect: true }) hideIcon: boolean;\n\n /** If true, the alert will be shown */\n @Prop({ reflect: true, mutable: true }) open: boolean;\n\n /** The length of time, in milliseconds, after which the alert will close itself. Only valid if `autoDismiss=\"true\"` */\n @Prop({ reflect: true }) time: number = 3000;\n\n /** Type of Alert */\n @Prop({ reflect: true }) type: TAlertType = 'default';\n\n /** If true, the alert component will remain fixed at the top of the page, occupying the full viewport */\n @Prop({ reflect: true }) sticky: boolean;\n\n // Prop lifecycle events\n // =======================\n @Watch('autoDismiss')\n @Watch('time')\n handleTimeout() {\n this.autoDismissDebounce?.cancel();\n if (!this.autoDismiss) return;\n\n this.autoDismissDebounce = debounce(() => {\n this.hide();\n }, this.time);\n // Make sure to autodismiss the notification if the `auto-dismiss` value changed while open\n if (this.open) this.autoDismissDebounce();\n }\n\n @Watch('open')\n handleOpenChange() {\n this.autoDismissDebounce?.cancel();\n\n if (!this.open) {\n this.handleHide();\n return;\n }\n\n this.handleShow();\n\n if (this.autoDismiss) {\n this.autoDismissDebounce();\n }\n }\n\n @Watch('type')\n checkPropValues() {\n validatePropValue(ALERT_TYPE, 'info', this.el, 'type');\n }\n\n // Events section\n // Requires JSDocs for public API documentation\n // ==============================================\n\n /** Callback handler to be called when the alert is hidden */\n @Event() bqHide!: EventEmitter;\n\n /** Callback handler to be called when the alert is shown */\n @Event() bqShow!: EventEmitter;\n\n /** Callback handler to be called after the alert has been shown */\n @Event() bqAfterShow!: EventEmitter;\n\n /** Callback handler to be called after the alert has been hidden */\n @Event() bqAfterHide!: EventEmitter;\n\n // Component lifecycle events\n // Ordered by their natural call order\n // =====================================\n\n componentWillLoad() {\n this.checkPropValues();\n this.handleTimeout();\n }\n\n componentDidLoad() {\n if (!this.open) {\n this.el.classList.add('is-hidden');\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 /** Method to be called to hide the alert component */\n @Method()\n async hide(): Promise<void> {\n this.open = false;\n }\n\n /** Method to be called to show the alert component */\n @Method()\n async show(): Promise<void> {\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 handleHide = async () => {\n const ev = this.bqHide.emit(this.el);\n if (!ev.defaultPrevented) {\n await leave(this.alertElement);\n this.el.classList.add('is-hidden');\n this.handleTransitionEnd();\n }\n };\n\n private handleShow = async () => {\n const ev = this.bqShow.emit(this.el);\n if (!ev.defaultPrevented) {\n this.el.classList.remove('is-hidden');\n await enter(this.alertElement);\n this.handleTransitionEnd();\n }\n };\n\n private handleTransitionEnd = () => {\n if (this.open) {\n this.bqAfterShow.emit();\n return;\n }\n\n this.bqAfterHide.emit();\n };\n\n private handleContentSlotChange = () => {\n this.hasContent = hasSlotContent(this.bodyElem, 'body');\n };\n\n private handleFooterSlotChange = () => {\n this.hasFooter = hasSlotContent(this.footerElem, 'footer');\n };\n\n private get iconName(): string {\n const iconName = {\n error: 'x-circle',\n success: 'check-circle',\n warning: 'warning-circle',\n };\n\n return iconName[this.type] || 'info';\n }\n\n // render() function\n // Always the last one in the class.\n // ===================================\n\n render() {\n const style = {\n ...(this.border && { '--bq-alert--border-radius': `var(--bq-radius--${this.border})` }),\n };\n\n return (\n <Host\n style={style}\n class={{ 'is-sticky': this.sticky }}\n aria-hidden={!this.open ? 'true' : 'false'}\n hidden={!this.open ? 'true' : 'false'}\n role=\"alert\"\n >\n <div\n class={{\n [`bq-alert bq-alert__${this.type}`]: true,\n 'is-sticky': this.sticky,\n }}\n data-transition-enter=\"transition ease-out duration-300\"\n data-transition-enter-start=\"opacity-0\"\n data-transition-enter-end=\"opacity-100\"\n data-transition-leave=\"transition ease-in duration-200\"\n data-transition-leave-start=\"opacity-100\"\n data-transition-leave-end=\"opacity-0\"\n ref={(div) => (this.alertElement = div)}\n part=\"wrapper\"\n >\n {/* CLOSE BUTTON */}\n {!this.disableClose && (\n <bq-button\n class=\"bq-alert__close absolute end-5 focus-visible:focus [&::part(label)]:inline-flex\"\n appearance=\"text\"\n size=\"small\"\n onClick={this.hide.bind(this)}\n part=\"btn-close\"\n >\n <slot name=\"btn-close\">\n <bq-icon name=\"x\" />\n </slot>\n </bq-button>\n )}\n {/* ICON */}\n <div\n class={{\n [`bq-alert__icon--${this.type} me-s flex text-left align-top`]: true,\n '!hidden': this.hideIcon,\n }}\n part=\"icon-outline\"\n >\n <slot name=\"icon\">\n {this.type !== 'default' && <bq-icon name={this.iconName} part=\"icon\" exportparts=\"base,svg\" />}\n </slot>\n </div>\n {/* MAIN */}\n <div class=\"flex flex-col items-start gap-[--bq-alert--content-footer-gap]\" part=\"main\">\n <div class=\"flex flex-col gap-[--bq-alert--title-body-gap]\" part=\"content\">\n {/* TITLE */}\n <div\n class={{\n 'title-font font-semibold leading-regular text-text-primary': true,\n 'flex items-center': this.sticky,\n }}\n part=\"title\"\n >\n <slot />\n </div>\n {/* BODY */}\n <div\n class={{ 'text-s leading-regular': true, '!hidden': !this.hasContent }}\n ref={(div) => (this.bodyElem = div)}\n part=\"body\"\n >\n <slot name=\"body\" onSlotchange={this.handleContentSlotChange} />\n </div>\n </div>\n {/* FOOTER */}\n <div\n class={{ 'flex items-start gap-xs': true, '!hidden': !this.hasFooter }}\n ref={(div) => (this.footerElem = div)}\n part=\"footer\"\n >\n <slot name=\"footer\" onSlotchange={this.handleFooterSlotChange} />\n </div>\n </div>\n </div>\n </Host>\n );\n }\n}\n"],"mappings":"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","ignoreList":[]}
1
+ {"version":3,"names":["ALERT_TYPE","bqAlertCss","BqAlertStyle0","BqAlert","autoDismissDebounce","bodyElem","footerElem","alertElement","handleTimeout","this","cancel","autoDismiss","debounce","hide","time","open","handleOpenChange","handleHide","handleShow","checkPropValues","validatePropValue","el","bqHide","bqShow","bqAfterShow","bqAfterHide","componentWillLoad","componentDidLoad","classList","add","show","async","ev","emit","defaultPrevented","leave","handleTransitionEnd","remove","enter","handleContentSlotChange","hasContent","hasSlotContent","handleFooterSlotChange","hasFooter","iconName","error","success","warning","type","render","style","border","h","Host","key","class","sticky","hidden","role","ref","div","part","disableClose","appearance","size","onClick","bind","name","hideIcon","exportparts","onSlotchange"],"sources":["../../packages/beeq/src/components/alert/bq-alert.types.ts","../../packages/beeq/src/components/alert/scss/bq-alert.scss?tag=bq-alert&encapsulation=shadow","../../packages/beeq/src/components/alert/bq-alert.tsx"],"sourcesContent":["export const ALERT_TYPE = ['info', 'success', 'warning', 'error', 'default'] as const;\nexport type TAlertType = (typeof ALERT_TYPE)[number];\n\nexport const ALERT_BORDER_RADIUS = ['none', 'xs2', 'xs', 's', 'm', 'l', 'full'] as const;\nexport type TAlertBorderRadius = (typeof ALERT_BORDER_RADIUS)[number];\n","/* -------------------------------------------------------------------------- */\n/* Alert styles */\n/* -------------------------------------------------------------------------- */\n\n@import './bq-alert.variables';\n\n:host {\n @apply block;\n}\n\n:host(.is-hidden) {\n @apply hidden;\n}\n\n:host(.is-sticky) {\n @apply fixed inset-0 z-[var(--bq-alert--z-index)] is-full inset-bs-0;\n\n .bq-alert {\n @apply items-center justify-center rounded-none;\n }\n}\n\n.bq-alert {\n @apply relative flex transition-all min-is-[--bq-alert--min-width] p-b-[--bq-alert--padding] p-i-[--bq-alert--padding];\n @apply rounded-[var(--bq-alert--border-radius)] border-[length:--bq-alert--border-width];\n\n border-style: var(--bq-alert--border-style);\n}\n\n/**\n * Set the alert background and border color based on the type value selected\n */\n\n.bq-alert__default {\n @apply border-[color:--bq-alert--border-default] bg-[color:--bq-alert--background-default];\n}\n\n.bq-alert__error {\n @apply border-[color:--bq-alert--border-error] bg-[color:--bq-alert--background-error];\n}\n\n.bq-alert__info {\n @apply border-[color:--bq-alert--border-info] bg-[color:--bq-alert--background-info];\n}\n\n.bq-alert__success {\n @apply border-[color:--bq-alert--border-success] bg-[color:--bq-alert--background-success];\n}\n\n.bq-alert__warning {\n @apply border-[color:--bq-alert--border-warning] bg-[color:--bq-alert--background-warning];\n}\n\n/**\n * Set the alert icon color based on the type value selected\n */\n.bq-alert__icon {\n &--default {\n @apply text-[color:--bq-alert--icon-color-default];\n }\n\n &--error {\n @apply text-[color:--bq-alert--icon-color-error];\n }\n\n &--info {\n @apply text-[color:--bq-alert--icon-color-info];\n }\n\n &--success {\n @apply text-[color:--bq-alert--icon-color-success];\n }\n\n &--warning {\n @apply text-[color:--bq-alert--icon-color-warning];\n }\n}\n\n/**\n * Tweak the close bq-button styles so it remain small without extra padding\n */\n.bq-alert__close::part(button) {\n @apply rounded-s border-0 bs-fit p-b-0 p-i-0;\n}\n","import { Component, Element, Event, EventEmitter, h, Host, Method, Prop, State, Watch } from '@stencil/core';\n\nimport { ALERT_TYPE, TAlertBorderRadius, TAlertType } from './bq-alert.types';\nimport { debounce, enter, hasSlotContent, leave, TDebounce, validatePropValue } from '../../shared/utils';\n\n/**\n * @part base - The `<div>` container of the predefined bq-icon component\n * @part body - The container `<div>` that wraps the alert description content\n * @part btn-close - The `bq-button` used to close the alert\n * @part content - The container `<div>` that wraps all the alert content (title, description, footer)\n * @part footer - The container `<div>` that wraps the alert footer content\n * @part icon - The `<bq-icon>` element used to render a predefined icon based on the alert type (info, success, warning, error, default)\n * @part icon-outline - The container `<div>` that wraps the icon element\n * @part main - The container `<div>` that wraps the alert main content (title, description)\n * @part svg - The `<svg>` element of the predefined bq-icon component\n * @part title - The container `<div>` that wraps the alert title content\n * @part wrapper - The wrapper container `<div>` of the element inside the shadow DOM\n *\n * @slot - The alert title content (no slot name required)\n * @slot body - The alert description content\n * @slot footer - The alert footer content\n * @slot icon - The predefined icon based on the alert type (info, success, warning, error, default)\n * @slot btn-close - The close button of the alert\n */\n\n@Component({\n tag: 'bq-alert',\n styleUrl: './scss/bq-alert.scss',\n shadow: true,\n})\nexport class BqAlert {\n // Own Properties\n // ====================\n\n private autoDismissDebounce: TDebounce<void>;\n private bodyElem: HTMLDivElement;\n private footerElem: HTMLDivElement;\n private alertElement: HTMLDivElement;\n\n // Reference to host HTML element\n // ===================================\n\n @Element() el!: HTMLBqAlertElement;\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 /** If true, the alert will automatically hide after the specified amount of time */\n @Prop({ reflect: true }) autoDismiss: boolean;\n\n /** The corner radius of the alert component */\n @Prop({ reflect: true }) border: TAlertBorderRadius = 's';\n\n /** If true, the close button at the top right of the alert won't be shown */\n @Prop({ reflect: true }) disableClose: boolean;\n\n /** If true, the alert icon won't be shown */\n @Prop({ reflect: true }) hideIcon: boolean;\n\n /** If true, the alert will be shown */\n @Prop({ reflect: true, mutable: true }) open: boolean;\n\n /** The length of time, in milliseconds, after which the alert will close itself. Only valid if `autoDismiss=\"true\"` */\n @Prop({ reflect: true }) time: number = 3000;\n\n /** Type of Alert */\n @Prop({ reflect: true }) type: TAlertType = 'default';\n\n /** If true, the alert component will remain fixed at the top of the page, occupying the full viewport */\n @Prop({ reflect: true }) sticky: boolean;\n\n // Prop lifecycle events\n // =======================\n @Watch('autoDismiss')\n @Watch('time')\n handleTimeout() {\n this.autoDismissDebounce?.cancel();\n if (!this.autoDismiss) return;\n\n this.autoDismissDebounce = debounce(() => {\n this.hide();\n }, this.time);\n // Make sure to autodismiss the notification if the `auto-dismiss` value changed while open\n if (this.open) this.autoDismissDebounce();\n }\n\n @Watch('open')\n handleOpenChange() {\n this.autoDismissDebounce?.cancel();\n\n if (!this.open) {\n this.handleHide();\n return;\n }\n\n this.handleShow();\n\n if (this.autoDismiss) {\n this.autoDismissDebounce();\n }\n }\n\n @Watch('type')\n checkPropValues() {\n validatePropValue(ALERT_TYPE, 'info', this.el, 'type');\n }\n\n // Events section\n // Requires JSDocs for public API documentation\n // ==============================================\n\n /** Callback handler to be called when the alert is hidden */\n @Event() bqHide!: EventEmitter;\n\n /** Callback handler to be called when the alert is shown */\n @Event() bqShow!: EventEmitter;\n\n /** Callback handler to be called after the alert has been shown */\n @Event() bqAfterShow!: EventEmitter;\n\n /** Callback handler to be called after the alert has been hidden */\n @Event() bqAfterHide!: EventEmitter;\n\n // Component lifecycle events\n // Ordered by their natural call order\n // =====================================\n\n componentWillLoad() {\n this.checkPropValues();\n this.handleTimeout();\n }\n\n componentDidLoad() {\n if (!this.open) {\n this.el.classList.add('is-hidden');\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 /** Method to be called to hide the alert component */\n @Method()\n async hide(): Promise<void> {\n this.open = false;\n }\n\n /** Method to be called to show the alert component */\n @Method()\n async show(): Promise<void> {\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 handleHide = async () => {\n const ev = this.bqHide.emit(this.el);\n if (!ev.defaultPrevented) {\n await leave(this.alertElement);\n this.el.classList.add('is-hidden');\n this.handleTransitionEnd();\n }\n };\n\n private handleShow = async () => {\n const ev = this.bqShow.emit(this.el);\n if (!ev.defaultPrevented) {\n this.el.classList.remove('is-hidden');\n await enter(this.alertElement);\n this.handleTransitionEnd();\n }\n };\n\n private handleTransitionEnd = () => {\n if (this.open) {\n this.bqAfterShow.emit();\n return;\n }\n\n this.bqAfterHide.emit();\n };\n\n private handleContentSlotChange = () => {\n this.hasContent = hasSlotContent(this.bodyElem, 'body');\n };\n\n private handleFooterSlotChange = () => {\n this.hasFooter = hasSlotContent(this.footerElem, 'footer');\n };\n\n private get iconName(): string {\n const iconName = {\n error: 'x-circle',\n success: 'check-circle',\n warning: 'warning-circle',\n };\n\n return iconName[this.type] || 'info';\n }\n\n // render() function\n // Always the last one in the class.\n // ===================================\n\n render() {\n const style = {\n ...(this.border && { '--bq-alert--border-radius': `var(--bq-radius--${this.border})` }),\n };\n\n return (\n <Host\n style={style}\n class={{ 'is-sticky': this.sticky }}\n aria-hidden={!this.open ? 'true' : 'false'}\n hidden={!this.open ? 'true' : 'false'}\n role=\"alert\"\n >\n <div\n class={{\n [`bq-alert bq-alert__${this.type}`]: true,\n 'is-sticky': this.sticky,\n }}\n data-transition-enter=\"transition ease-out duration-300\"\n data-transition-enter-start=\"opacity-0\"\n data-transition-enter-end=\"opacity-100\"\n data-transition-leave=\"transition ease-in duration-200\"\n data-transition-leave-start=\"opacity-100\"\n data-transition-leave-end=\"opacity-0\"\n ref={(div) => (this.alertElement = div)}\n part=\"wrapper\"\n >\n {/* CLOSE BUTTON */}\n {!this.disableClose && (\n <bq-button\n class=\"bq-alert__close absolute end-5 focus-visible:focus [&::part(label)]:inline-flex\"\n appearance=\"text\"\n size=\"small\"\n onClick={this.hide.bind(this)}\n part=\"btn-close\"\n >\n <slot name=\"btn-close\">\n <bq-icon name=\"x\" />\n </slot>\n </bq-button>\n )}\n {/* ICON */}\n <div\n class={{\n [`bq-alert__icon--${this.type} me-s flex text-left align-top`]: true,\n '!hidden': this.hideIcon,\n }}\n part=\"icon-outline\"\n >\n <slot name=\"icon\">\n {this.type !== 'default' && <bq-icon name={this.iconName} part=\"icon\" exportparts=\"base,svg\" />}\n </slot>\n </div>\n {/* MAIN */}\n <div class=\"flex flex-col items-start gap-[--bq-alert--content-footer-gap]\" part=\"main\">\n <div class=\"flex flex-col gap-[--bq-alert--title-body-gap]\" part=\"content\">\n {/* TITLE */}\n <div\n class={{\n 'title-font font-semibold leading-regular text-text-primary': true,\n 'flex items-center': this.sticky,\n }}\n part=\"title\"\n >\n <slot />\n </div>\n {/* BODY */}\n <div\n class={{ 'text-s leading-regular': true, '!hidden': !this.hasContent }}\n ref={(div) => (this.bodyElem = div)}\n part=\"body\"\n >\n <slot name=\"body\" onSlotchange={this.handleContentSlotChange} />\n </div>\n </div>\n {/* FOOTER */}\n <div\n class={{ 'flex items-start gap-xs': true, '!hidden': !this.hasFooter }}\n ref={(div) => (this.footerElem = div)}\n part=\"footer\"\n >\n <slot name=\"footer\" onSlotchange={this.handleFooterSlotChange} />\n </div>\n </div>\n </div>\n </Host>\n );\n }\n}\n"],"mappings":"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","ignoreList":[]}