@beeq/core 1.8.1 → 1.8.3-beta.0

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 (510) 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 +1 -1
  4. package/dist/beeq/{p-00702295.entry.js → p-0f9ecc0c.entry.js} +2 -2
  5. package/dist/beeq/p-0f9ecc0c.entry.js.map +1 -0
  6. package/dist/beeq/{p-0cab9a82.entry.js → p-1499deaf.entry.js} +2 -2
  7. package/dist/beeq/p-1499deaf.entry.js.map +1 -0
  8. package/dist/beeq/{p-b83f174c.entry.js → p-15bf8ffd.entry.js} +2 -2
  9. package/dist/beeq/{p-b83f174c.entry.js.map → p-15bf8ffd.entry.js.map} +1 -1
  10. package/dist/beeq/{p-2eab5223.entry.js → p-19f5a833.entry.js} +2 -2
  11. package/dist/beeq/{p-2eab5223.entry.js.map → p-19f5a833.entry.js.map} +1 -1
  12. package/dist/beeq/{p-cb3b24e6.entry.js → p-2c4cdf27.entry.js} +2 -2
  13. package/dist/beeq/p-2c4cdf27.entry.js.map +1 -0
  14. package/dist/{components/p-55b0aea8.js → beeq/p-34611c2f.js} +2 -2
  15. package/dist/beeq/p-34611c2f.js.map +1 -0
  16. package/dist/beeq/{p-20d91acf.entry.js → p-3806d9e3.entry.js} +2 -2
  17. package/dist/beeq/{p-20d91acf.entry.js.map → p-3806d9e3.entry.js.map} +1 -1
  18. package/dist/beeq/{p-c78ae3c2.js → p-397bc507.js} +2 -2
  19. package/dist/beeq/p-397bc507.js.map +1 -0
  20. package/dist/beeq/{p-4d6a9646.entry.js → p-39a80765.entry.js} +2 -2
  21. package/dist/beeq/{p-4d6a9646.entry.js.map → p-39a80765.entry.js.map} +1 -1
  22. package/dist/beeq/{p-f84ae6a1.entry.js → p-3d9ed4fa.entry.js} +2 -2
  23. package/dist/beeq/{p-f84ae6a1.entry.js.map → p-3d9ed4fa.entry.js.map} +1 -1
  24. package/dist/beeq/{p-5c7a719c.entry.js → p-3f654a12.entry.js} +2 -2
  25. package/dist/beeq/{p-5c7a719c.entry.js.map → p-3f654a12.entry.js.map} +1 -1
  26. package/dist/beeq/{p-7f124d61.entry.js → p-3fe626f1.entry.js} +2 -2
  27. package/dist/beeq/{p-7f124d61.entry.js.map → p-3fe626f1.entry.js.map} +1 -1
  28. package/dist/beeq/{p-0c12aa01.entry.js → p-4500ffe5.entry.js} +2 -2
  29. package/dist/beeq/{p-0c12aa01.entry.js.map → p-4500ffe5.entry.js.map} +1 -1
  30. package/dist/beeq/p-4a3784e1.js +7 -0
  31. package/dist/beeq/p-4a3784e1.js.map +1 -0
  32. package/dist/beeq/{p-0f72dbb6.entry.js → p-4d21a49d.entry.js} +2 -2
  33. package/dist/beeq/{p-0f72dbb6.entry.js.map → p-4d21a49d.entry.js.map} +1 -1
  34. package/dist/beeq/{p-36b653f6.entry.js → p-5546f242.entry.js} +2 -2
  35. package/dist/beeq/p-5546f242.entry.js.map +1 -0
  36. package/dist/beeq/{p-1cdea079.entry.js → p-65d67b85.entry.js} +2 -2
  37. package/dist/beeq/p-65d67b85.entry.js.map +1 -0
  38. package/dist/beeq/{p-43dc9906.entry.js → p-66b6d69a.entry.js} +2 -2
  39. package/dist/beeq/{p-43dc9906.entry.js.map → p-66b6d69a.entry.js.map} +1 -1
  40. package/dist/beeq/{p-dc544089.entry.js → p-70310ac8.entry.js} +2 -2
  41. package/dist/beeq/{p-dc544089.entry.js.map → p-70310ac8.entry.js.map} +1 -1
  42. package/dist/beeq/{p-a7fb6ffd.entry.js → p-7585f825.entry.js} +2 -2
  43. package/dist/beeq/{p-a7fb6ffd.entry.js.map → p-7585f825.entry.js.map} +1 -1
  44. package/dist/beeq/{p-75cc6789.entry.js → p-7efff703.entry.js} +2 -2
  45. package/dist/beeq/{p-75cc6789.entry.js.map → p-7efff703.entry.js.map} +1 -1
  46. package/dist/beeq/{p-19b7bbe0.entry.js → p-803269b3.entry.js} +2 -2
  47. package/dist/beeq/{p-19b7bbe0.entry.js.map → p-803269b3.entry.js.map} +1 -1
  48. package/dist/beeq/{p-1b0cfcd6.entry.js → p-8ed41b69.entry.js} +2 -2
  49. package/dist/beeq/{p-1b0cfcd6.entry.js.map → p-8ed41b69.entry.js.map} +1 -1
  50. package/dist/beeq/{p-7636aff3.entry.js → p-90165aef.entry.js} +2 -2
  51. package/dist/beeq/{p-7636aff3.entry.js.map → p-90165aef.entry.js.map} +1 -1
  52. package/dist/beeq/{p-921fa1ea.entry.js → p-9a7af424.entry.js} +2 -2
  53. package/dist/beeq/{p-921fa1ea.entry.js.map → p-9a7af424.entry.js.map} +1 -1
  54. package/dist/beeq/{p-d8a257b7.entry.js → p-a4e11bbc.entry.js} +2 -2
  55. package/dist/beeq/{p-d8a257b7.entry.js.map → p-a4e11bbc.entry.js.map} +1 -1
  56. package/dist/beeq/{p-4c1f6afc.entry.js → p-a56ea1e0.entry.js} +2 -2
  57. package/dist/beeq/{p-4c1f6afc.entry.js.map → p-a56ea1e0.entry.js.map} +1 -1
  58. package/dist/beeq/{p-c70c6b00.entry.js → p-a8075be3.entry.js} +2 -2
  59. package/dist/beeq/{p-c70c6b00.entry.js.map → p-a8075be3.entry.js.map} +1 -1
  60. package/dist/beeq/{p-026fad0d.entry.js → p-a8d64d1b.entry.js} +2 -2
  61. package/dist/beeq/{p-026fad0d.entry.js.map → p-a8d64d1b.entry.js.map} +1 -1
  62. package/dist/beeq/p-b129db1a.entry.js +6 -0
  63. package/dist/beeq/{p-2c566eb0.entry.js.map → p-b129db1a.entry.js.map} +1 -1
  64. package/dist/beeq/p-b69f347d.entry.js +6 -0
  65. package/dist/beeq/p-b69f347d.entry.js.map +1 -0
  66. package/dist/beeq/{p-c09dac58.entry.js → p-b7b3f7c6.entry.js} +2 -2
  67. package/dist/beeq/{p-29d9487c.entry.js → p-bbaad491.entry.js} +2 -2
  68. package/dist/beeq/{p-29d9487c.entry.js.map → p-bbaad491.entry.js.map} +1 -1
  69. package/dist/beeq/p-c42f9ac5.entry.js +6 -0
  70. package/dist/beeq/{p-6079f9b2.entry.js.map → p-c42f9ac5.entry.js.map} +1 -1
  71. package/dist/beeq/{p-cf523684.entry.js → p-cb9fa154.entry.js} +2 -2
  72. package/dist/beeq/{p-cf523684.entry.js.map → p-cb9fa154.entry.js.map} +1 -1
  73. package/dist/beeq/p-cf923c68.js +6 -0
  74. package/dist/beeq/p-dafa4162.entry.js +6 -0
  75. package/dist/beeq/p-dafa4162.entry.js.map +1 -0
  76. package/dist/beeq/{p-3c472097.js → p-e4dd6ff4.js} +2 -2
  77. package/dist/beeq/{p-e056c02a.entry.js → p-e655938a.entry.js} +2 -2
  78. package/dist/beeq/{p-e056c02a.entry.js.map → p-e655938a.entry.js.map} +1 -1
  79. package/dist/beeq/{p-0c0bd129.entry.js → p-e8f147c2.entry.js} +2 -2
  80. package/dist/beeq/{p-0c0bd129.entry.js.map → p-e8f147c2.entry.js.map} +1 -1
  81. package/dist/beeq/{p-2ef4ed54.entry.js → p-ed569a61.entry.js} +2 -2
  82. package/dist/beeq/{p-2ef4ed54.entry.js.map → p-ed569a61.entry.js.map} +1 -1
  83. package/dist/beeq/{p-4c66663c.entry.js → p-ee1ecb6e.entry.js} +2 -2
  84. package/dist/beeq/{p-4c66663c.entry.js.map → p-ee1ecb6e.entry.js.map} +1 -1
  85. package/dist/beeq/{p-d8221b88.entry.js → p-f4e8ebd3.entry.js} +2 -2
  86. package/dist/beeq/{p-d8221b88.entry.js.map → p-f4e8ebd3.entry.js.map} +1 -1
  87. package/dist/beeq/{p-2e0e325b.entry.js → p-f83857ac.entry.js} +2 -2
  88. package/dist/beeq/p-f83857ac.entry.js.map +1 -0
  89. package/dist/beeq.html-custom-data.json +208 -208
  90. package/dist/cjs/{assetsPath-5e03c40e.js → assetsPath-32c4030b.js} +2 -2
  91. package/dist/cjs/{assetsPath-5e03c40e.js.map → assetsPath-32c4030b.js.map} +1 -1
  92. package/dist/cjs/beeq.cjs.js +2 -2
  93. package/dist/cjs/beeq.cjs.js.map +1 -1
  94. package/dist/cjs/bq-accordion-group.cjs.entry.js +19 -6
  95. package/dist/cjs/bq-accordion-group.cjs.entry.js.map +1 -1
  96. package/dist/cjs/bq-accordion.cjs.entry.js +32 -18
  97. package/dist/cjs/bq-accordion.cjs.entry.js.map +1 -1
  98. package/dist/cjs/bq-alert.cjs.entry.js +24 -11
  99. package/dist/cjs/bq-alert.cjs.entry.js.map +1 -1
  100. package/dist/cjs/bq-avatar.cjs.entry.js +19 -8
  101. package/dist/cjs/bq-avatar.cjs.entry.js.map +1 -1
  102. package/dist/cjs/bq-badge.cjs.entry.js +13 -5
  103. package/dist/cjs/bq-badge.cjs.entry.js.map +1 -1
  104. package/dist/cjs/bq-breadcrumb-item.cjs.entry.js +13 -5
  105. package/dist/cjs/bq-breadcrumb-item.cjs.entry.js.map +1 -1
  106. package/dist/cjs/bq-breadcrumb.cjs.entry.js +8 -2
  107. package/dist/cjs/bq-breadcrumb.cjs.entry.js.map +1 -1
  108. package/dist/cjs/bq-button_2.cjs.entry.js +62 -24
  109. package/dist/cjs/bq-button_2.cjs.entry.js.map +1 -1
  110. package/dist/cjs/bq-card.cjs.entry.js +10 -3
  111. package/dist/cjs/bq-card.cjs.entry.js.map +1 -1
  112. package/dist/cjs/bq-checkbox.cjs.entry.js +24 -10
  113. package/dist/cjs/bq-checkbox.cjs.entry.js.map +1 -1
  114. package/dist/cjs/bq-date-picker.cjs.entry.js +102 -48
  115. package/dist/cjs/bq-date-picker.cjs.entry.js.map +1 -1
  116. package/dist/cjs/bq-dialog.cjs.entry.js +24 -11
  117. package/dist/cjs/bq-dialog.cjs.entry.js.map +1 -1
  118. package/dist/cjs/bq-divider.cjs.entry.js +25 -11
  119. package/dist/cjs/bq-divider.cjs.entry.js.map +1 -1
  120. package/dist/cjs/bq-drawer.cjs.entry.js +21 -10
  121. package/dist/cjs/bq-drawer.cjs.entry.js.map +1 -1
  122. package/dist/cjs/bq-dropdown_2.cjs.entry.js +42 -17
  123. package/dist/cjs/bq-dropdown_2.cjs.entry.js.map +1 -1
  124. package/dist/cjs/bq-empty-state.cjs.entry.js +10 -4
  125. package/dist/cjs/bq-empty-state.cjs.entry.js.map +1 -1
  126. package/dist/cjs/bq-input.cjs.entry.js +106 -31
  127. package/dist/cjs/bq-input.cjs.entry.js.map +1 -1
  128. package/dist/cjs/bq-notification.cjs.entry.js +23 -11
  129. package/dist/cjs/bq-notification.cjs.entry.js.map +1 -1
  130. package/dist/cjs/bq-option-group.cjs.entry.js +1 -1
  131. package/dist/cjs/bq-option-list_2.cjs.entry.js +34 -12
  132. package/dist/cjs/bq-option-list_2.cjs.entry.js.map +1 -1
  133. package/dist/cjs/bq-option.cjs.entry.js +16 -7
  134. package/dist/cjs/bq-option.cjs.entry.js.map +1 -1
  135. package/dist/cjs/bq-page-title.cjs.entry.js +7 -4
  136. package/dist/cjs/bq-page-title.cjs.entry.js.map +1 -1
  137. package/dist/cjs/bq-progress.cjs.entry.js +20 -8
  138. package/dist/cjs/bq-progress.cjs.entry.js.map +1 -1
  139. package/dist/cjs/bq-radio-group.cjs.entry.js +24 -10
  140. package/dist/cjs/bq-radio-group.cjs.entry.js.map +1 -1
  141. package/dist/cjs/bq-radio.cjs.entry.js +20 -8
  142. package/dist/cjs/bq-radio.cjs.entry.js.map +1 -1
  143. package/dist/cjs/bq-select.cjs.entry.js +74 -32
  144. package/dist/cjs/bq-select.cjs.entry.js.map +1 -1
  145. package/dist/cjs/bq-side-menu-item.cjs.entry.js +13 -5
  146. package/dist/cjs/bq-side-menu-item.cjs.entry.js.map +1 -1
  147. package/dist/cjs/bq-side-menu.cjs.entry.js +15 -5
  148. package/dist/cjs/bq-side-menu.cjs.entry.js.map +1 -1
  149. package/dist/cjs/bq-slider.cjs.entry.js +51 -17
  150. package/dist/cjs/bq-slider.cjs.entry.js.map +1 -1
  151. package/dist/cjs/bq-spinner.cjs.entry.js +15 -7
  152. package/dist/cjs/bq-spinner.cjs.entry.js.map +1 -1
  153. package/dist/cjs/bq-status.cjs.entry.js +8 -2
  154. package/dist/cjs/bq-status.cjs.entry.js.map +1 -1
  155. package/dist/cjs/bq-step-item.cjs.entry.js +12 -4
  156. package/dist/cjs/bq-step-item.cjs.entry.js.map +1 -1
  157. package/dist/cjs/bq-steps.cjs.entry.js +12 -4
  158. package/dist/cjs/bq-steps.cjs.entry.js.map +1 -1
  159. package/dist/cjs/bq-switch.cjs.entry.js +32 -13
  160. package/dist/cjs/bq-switch.cjs.entry.js.map +1 -1
  161. package/dist/cjs/bq-tab-group.cjs.entry.js +18 -7
  162. package/dist/cjs/bq-tab-group.cjs.entry.js.map +1 -1
  163. package/dist/cjs/bq-tab.cjs.entry.js +22 -10
  164. package/dist/cjs/bq-tab.cjs.entry.js.map +1 -1
  165. package/dist/cjs/bq-textarea.cjs.entry.js +77 -24
  166. package/dist/cjs/bq-textarea.cjs.entry.js.map +1 -1
  167. package/dist/cjs/bq-toast.cjs.entry.js +19 -8
  168. package/dist/cjs/bq-toast.cjs.entry.js.map +1 -1
  169. package/dist/cjs/bq-tooltip.cjs.entry.js +25 -9
  170. package/dist/cjs/bq-tooltip.cjs.entry.js.map +1 -1
  171. package/dist/cjs/{cally-9297cdd8.js → cally-1bde2e82.js} +3 -2
  172. package/dist/cjs/cally-1bde2e82.js.map +1 -0
  173. package/dist/cjs/{index-c4edfa07.js → index-0c8d249a.js} +1128 -920
  174. package/dist/cjs/index-0c8d249a.js.map +1 -0
  175. package/dist/cjs/{index-fc7876d6.js → index-30fbd193.js} +54 -29
  176. package/dist/cjs/index-30fbd193.js.map +1 -0
  177. package/dist/cjs/index.cjs.js +3 -3
  178. package/dist/cjs/{isDefined-e538d669.js → isDefined-5e8aae9d.js} +2 -2
  179. package/dist/cjs/{isDefined-e538d669.js.map → isDefined-5e8aae9d.js.map} +1 -1
  180. package/dist/cjs/loader.cjs.js +1 -1
  181. package/dist/collection/collection-manifest.json +1 -1
  182. package/dist/collection/components/accordion/bq-accordion.js +30 -18
  183. package/dist/collection/components/accordion/bq-accordion.js.map +1 -1
  184. package/dist/collection/components/accordion/scss/bq-accordion.css +1 -1
  185. package/dist/collection/components/accordion-group/bq-accordion-group.js +18 -7
  186. package/dist/collection/components/accordion-group/bq-accordion-group.js.map +1 -1
  187. package/dist/collection/components/alert/bq-alert.js +23 -12
  188. package/dist/collection/components/alert/bq-alert.js.map +1 -1
  189. package/dist/collection/components/avatar/bq-avatar.js +18 -9
  190. package/dist/collection/components/avatar/bq-avatar.js.map +1 -1
  191. package/dist/collection/components/badge/bq-badge.js +12 -6
  192. package/dist/collection/components/badge/bq-badge.js.map +1 -1
  193. package/dist/collection/components/breadcrumb/bq-breadcrumb.js +7 -3
  194. package/dist/collection/components/breadcrumb/bq-breadcrumb.js.map +1 -1
  195. package/dist/collection/components/breadcrumb-item/bq-breadcrumb-item.js +11 -5
  196. package/dist/collection/components/breadcrumb-item/bq-breadcrumb-item.js.map +1 -1
  197. package/dist/collection/components/button/bq-button.js +37 -16
  198. package/dist/collection/components/button/bq-button.js.map +1 -1
  199. package/dist/collection/components/card/bq-card.js +9 -4
  200. package/dist/collection/components/card/bq-card.js.map +1 -1
  201. package/dist/collection/components/checkbox/bq-checkbox.js +23 -11
  202. package/dist/collection/components/checkbox/bq-checkbox.js.map +1 -1
  203. package/dist/collection/components/date-picker/bq-date-picker.js +98 -46
  204. package/dist/collection/components/date-picker/bq-date-picker.js.map +1 -1
  205. package/dist/collection/components/date-picker/scss/bq-date-picker.css +1 -1
  206. package/dist/collection/components/dialog/bq-dialog.js +23 -12
  207. package/dist/collection/components/dialog/bq-dialog.js.map +1 -1
  208. package/dist/collection/components/divider/bq-divider.js +24 -12
  209. package/dist/collection/components/divider/bq-divider.js.map +1 -1
  210. package/dist/collection/components/drawer/bq-drawer.js +19 -10
  211. package/dist/collection/components/drawer/bq-drawer.js.map +1 -1
  212. package/dist/collection/components/drawer/scss/bq-drawer.css +1 -1
  213. package/dist/collection/components/dropdown/bq-dropdown.js +23 -11
  214. package/dist/collection/components/dropdown/bq-dropdown.js.map +1 -1
  215. package/dist/collection/components/empty-state/bq-empty-state.js +9 -5
  216. package/dist/collection/components/empty-state/bq-empty-state.js.map +1 -1
  217. package/dist/collection/components/icon/bq-icon.js +22 -9
  218. package/dist/collection/components/icon/bq-icon.js.map +1 -1
  219. package/dist/collection/components/input/bq-input.js +104 -31
  220. package/dist/collection/components/input/bq-input.js.map +1 -1
  221. package/dist/collection/components/notification/bq-notification.js +22 -12
  222. package/dist/collection/components/notification/bq-notification.js.map +1 -1
  223. package/dist/collection/components/option/bq-option.js +15 -8
  224. package/dist/collection/components/option/bq-option.js.map +1 -1
  225. package/dist/collection/components/option-list/bq-option-list.js +9 -3
  226. package/dist/collection/components/option-list/bq-option-list.js.map +1 -1
  227. package/dist/collection/components/page-title/bq-page-title.js +6 -5
  228. package/dist/collection/components/page-title/bq-page-title.js.map +1 -1
  229. package/dist/collection/components/panel/bq-panel.js +17 -8
  230. package/dist/collection/components/panel/bq-panel.js.map +1 -1
  231. package/dist/collection/components/progress/bq-progress.js +19 -9
  232. package/dist/collection/components/progress/bq-progress.js.map +1 -1
  233. package/dist/collection/components/radio/bq-radio.js +19 -9
  234. package/dist/collection/components/radio/bq-radio.js.map +1 -1
  235. package/dist/collection/components/radio-group/bq-radio-group.js +23 -11
  236. package/dist/collection/components/radio-group/bq-radio-group.js.map +1 -1
  237. package/dist/collection/components/select/bq-select.js +72 -32
  238. package/dist/collection/components/select/bq-select.js.map +1 -1
  239. package/dist/collection/components/select/scss/bq-select.css +1 -1
  240. package/dist/collection/components/side-menu/bq-side-menu.js +14 -6
  241. package/dist/collection/components/side-menu/bq-side-menu.js.map +1 -1
  242. package/dist/collection/components/side-menu-item/bq-side-menu-item.js +12 -6
  243. package/dist/collection/components/side-menu-item/bq-side-menu-item.js.map +1 -1
  244. package/dist/collection/components/slider/bq-slider.js +50 -18
  245. package/dist/collection/components/slider/bq-slider.js.map +1 -1
  246. package/dist/collection/components/spinner/bq-spinner.js +14 -8
  247. package/dist/collection/components/spinner/bq-spinner.js.map +1 -1
  248. package/dist/collection/components/status/bq-status.js +7 -3
  249. package/dist/collection/components/status/bq-status.js.map +1 -1
  250. package/dist/collection/components/step-item/bq-step-item.js +11 -5
  251. package/dist/collection/components/step-item/bq-step-item.js.map +1 -1
  252. package/dist/collection/components/steps/bq-steps.js +11 -5
  253. package/dist/collection/components/steps/bq-steps.js.map +1 -1
  254. package/dist/collection/components/switch/bq-switch.js +31 -14
  255. package/dist/collection/components/switch/bq-switch.js.map +1 -1
  256. package/dist/collection/components/tab/bq-tab.js +21 -11
  257. package/dist/collection/components/tab/bq-tab.js.map +1 -1
  258. package/dist/collection/components/tab-group/bq-tab-group.js +17 -8
  259. package/dist/collection/components/tab-group/bq-tab-group.js.map +1 -1
  260. package/dist/collection/components/tag/bq-tag.js +24 -12
  261. package/dist/collection/components/tag/bq-tag.js.map +1 -1
  262. package/dist/collection/components/textarea/bq-textarea.js +75 -24
  263. package/dist/collection/components/textarea/bq-textarea.js.map +1 -1
  264. package/dist/collection/components/textarea/scss/bq-textarea.css +1 -1
  265. package/dist/collection/components/toast/bq-toast.js +18 -9
  266. package/dist/collection/components/toast/bq-toast.js.map +1 -1
  267. package/dist/collection/components/tooltip/bq-tooltip.js +23 -9
  268. package/dist/collection/components/tooltip/bq-tooltip.js.map +1 -1
  269. package/dist/collection/global/scripts/zeroheight-svg-loader.js +6 -5
  270. package/dist/components/bq-accordion-group.js +1 -1
  271. package/dist/components/bq-accordion-group.js.map +1 -1
  272. package/dist/components/bq-accordion.js +1 -1
  273. package/dist/components/bq-accordion.js.map +1 -1
  274. package/dist/components/bq-alert.js +1 -1
  275. package/dist/components/bq-alert.js.map +1 -1
  276. package/dist/components/bq-avatar.js +1 -1
  277. package/dist/components/bq-avatar.js.map +1 -1
  278. package/dist/components/bq-badge.js +1 -1
  279. package/dist/components/bq-breadcrumb-item.js +1 -1
  280. package/dist/components/bq-breadcrumb-item.js.map +1 -1
  281. package/dist/components/bq-breadcrumb.js +1 -1
  282. package/dist/components/bq-breadcrumb.js.map +1 -1
  283. package/dist/components/bq-button.js +1 -1
  284. package/dist/components/bq-card.js +1 -1
  285. package/dist/components/bq-card.js.map +1 -1
  286. package/dist/components/bq-checkbox.js +1 -1
  287. package/dist/components/bq-checkbox.js.map +1 -1
  288. package/dist/components/bq-date-picker.js +1 -1
  289. package/dist/components/bq-date-picker.js.map +1 -1
  290. package/dist/components/bq-dialog.js +1 -1
  291. package/dist/components/bq-dialog.js.map +1 -1
  292. package/dist/components/bq-divider.js +1 -1
  293. package/dist/components/bq-drawer.js +1 -1
  294. package/dist/components/bq-drawer.js.map +1 -1
  295. package/dist/components/bq-dropdown.js +1 -1
  296. package/dist/components/bq-empty-state.js +1 -1
  297. package/dist/components/bq-empty-state.js.map +1 -1
  298. package/dist/components/bq-icon.js +1 -1
  299. package/dist/components/bq-input.js +1 -1
  300. package/dist/components/bq-input.js.map +1 -1
  301. package/dist/components/bq-notification.js +1 -1
  302. package/dist/components/bq-notification.js.map +1 -1
  303. package/dist/components/bq-option-group.js +1 -1
  304. package/dist/components/bq-option-list.js +1 -1
  305. package/dist/components/bq-option.js +1 -1
  306. package/dist/components/bq-option.js.map +1 -1
  307. package/dist/components/bq-page-title.js +1 -1
  308. package/dist/components/bq-page-title.js.map +1 -1
  309. package/dist/components/bq-panel.js +1 -1
  310. package/dist/components/bq-progress.js +1 -1
  311. package/dist/components/bq-progress.js.map +1 -1
  312. package/dist/components/bq-radio-group.js +1 -1
  313. package/dist/components/bq-radio-group.js.map +1 -1
  314. package/dist/components/bq-radio.js +1 -1
  315. package/dist/components/bq-radio.js.map +1 -1
  316. package/dist/components/bq-select.js +1 -1
  317. package/dist/components/bq-select.js.map +1 -1
  318. package/dist/components/bq-side-menu-item.js +1 -1
  319. package/dist/components/bq-side-menu-item.js.map +1 -1
  320. package/dist/components/bq-side-menu.js +1 -1
  321. package/dist/components/bq-side-menu.js.map +1 -1
  322. package/dist/components/bq-slider.js +1 -1
  323. package/dist/components/bq-slider.js.map +1 -1
  324. package/dist/components/bq-spinner.js +1 -1
  325. package/dist/components/bq-spinner.js.map +1 -1
  326. package/dist/components/bq-status.js +1 -1
  327. package/dist/components/bq-status.js.map +1 -1
  328. package/dist/components/bq-step-item.js +1 -1
  329. package/dist/components/bq-step-item.js.map +1 -1
  330. package/dist/components/bq-steps.js +1 -1
  331. package/dist/components/bq-steps.js.map +1 -1
  332. package/dist/components/bq-switch.js +1 -1
  333. package/dist/components/bq-switch.js.map +1 -1
  334. package/dist/components/bq-tab-group.js +1 -1
  335. package/dist/components/bq-tab-group.js.map +1 -1
  336. package/dist/components/bq-tab.js +1 -1
  337. package/dist/components/bq-tab.js.map +1 -1
  338. package/dist/components/bq-tag.js +1 -1
  339. package/dist/components/bq-textarea.js +1 -1
  340. package/dist/components/bq-textarea.js.map +1 -1
  341. package/dist/components/bq-toast.js +1 -1
  342. package/dist/components/bq-toast.js.map +1 -1
  343. package/dist/components/bq-tooltip.js +1 -1
  344. package/dist/components/index.js +1 -1
  345. package/dist/components/index.js.map +1 -1
  346. package/dist/{beeq/p-55b0aea8.js → components/p-34611c2f.js} +2 -2
  347. package/dist/components/p-34611c2f.js.map +1 -0
  348. package/dist/components/p-37483f1c.js +6 -0
  349. package/dist/components/{p-d62fdbae.js.map → p-37483f1c.js.map} +1 -1
  350. package/dist/components/{p-c78ae3c2.js → p-397bc507.js} +2 -2
  351. package/dist/components/p-397bc507.js.map +1 -0
  352. package/dist/components/{p-c2d43340.js → p-5b34bd04.js} +2 -2
  353. package/dist/components/{p-c2d43340.js.map → p-5b34bd04.js.map} +1 -1
  354. package/dist/components/{p-78d23ddc.js → p-6e0c7ab4.js} +2 -2
  355. package/dist/components/{p-33371480.js → p-8d8eeb62.js} +2 -2
  356. package/dist/components/{p-33371480.js.map → p-8d8eeb62.js.map} +1 -1
  357. package/dist/components/{p-27c1b08e.js → p-9a115ee5.js} +2 -2
  358. package/dist/components/{p-27c1b08e.js.map → p-9a115ee5.js.map} +1 -1
  359. package/dist/components/p-a02c6b73.js +6 -0
  360. package/dist/components/{p-1566efe3.js.map → p-a02c6b73.js.map} +1 -1
  361. package/dist/components/p-ac26ffcd.js +6 -0
  362. package/dist/components/{p-603c898d.js.map → p-ac26ffcd.js.map} +1 -1
  363. package/dist/components/{p-d62fdbae.js → p-b50adb19.js} +2 -2
  364. package/dist/components/p-b50adb19.js.map +1 -0
  365. package/dist/components/p-c58e0d87.js +6 -0
  366. package/dist/components/{p-28da2321.js.map → p-c58e0d87.js.map} +1 -1
  367. package/dist/components/p-d16482dc.js +6 -0
  368. package/dist/components/p-d16482dc.js.map +1 -0
  369. package/dist/components/p-f5588ccd.js +6 -0
  370. package/dist/components/{p-7d7f1f7e.js.map → p-f5588ccd.js.map} +1 -1
  371. package/dist/custom-elements.json +3113 -3113
  372. package/dist/esm/{assetsPath-eed21007.js → assetsPath-57848212.js} +2 -2
  373. package/dist/esm/{assetsPath-eed21007.js.map → assetsPath-57848212.js.map} +1 -1
  374. package/dist/esm/beeq.js +3 -3
  375. package/dist/esm/beeq.js.map +1 -1
  376. package/dist/esm/bq-accordion-group.entry.js +19 -6
  377. package/dist/esm/bq-accordion-group.entry.js.map +1 -1
  378. package/dist/esm/bq-accordion.entry.js +32 -18
  379. package/dist/esm/bq-accordion.entry.js.map +1 -1
  380. package/dist/esm/bq-alert.entry.js +24 -11
  381. package/dist/esm/bq-alert.entry.js.map +1 -1
  382. package/dist/esm/bq-avatar.entry.js +19 -8
  383. package/dist/esm/bq-avatar.entry.js.map +1 -1
  384. package/dist/esm/bq-badge.entry.js +13 -5
  385. package/dist/esm/bq-badge.entry.js.map +1 -1
  386. package/dist/esm/bq-breadcrumb-item.entry.js +13 -5
  387. package/dist/esm/bq-breadcrumb-item.entry.js.map +1 -1
  388. package/dist/esm/bq-breadcrumb.entry.js +8 -2
  389. package/dist/esm/bq-breadcrumb.entry.js.map +1 -1
  390. package/dist/esm/bq-button_2.entry.js +62 -24
  391. package/dist/esm/bq-button_2.entry.js.map +1 -1
  392. package/dist/esm/bq-card.entry.js +10 -3
  393. package/dist/esm/bq-card.entry.js.map +1 -1
  394. package/dist/esm/bq-checkbox.entry.js +24 -10
  395. package/dist/esm/bq-checkbox.entry.js.map +1 -1
  396. package/dist/esm/bq-date-picker.entry.js +102 -48
  397. package/dist/esm/bq-date-picker.entry.js.map +1 -1
  398. package/dist/esm/bq-dialog.entry.js +24 -11
  399. package/dist/esm/bq-dialog.entry.js.map +1 -1
  400. package/dist/esm/bq-divider.entry.js +25 -11
  401. package/dist/esm/bq-divider.entry.js.map +1 -1
  402. package/dist/esm/bq-drawer.entry.js +21 -10
  403. package/dist/esm/bq-drawer.entry.js.map +1 -1
  404. package/dist/esm/bq-dropdown_2.entry.js +42 -17
  405. package/dist/esm/bq-dropdown_2.entry.js.map +1 -1
  406. package/dist/esm/bq-empty-state.entry.js +10 -4
  407. package/dist/esm/bq-empty-state.entry.js.map +1 -1
  408. package/dist/esm/bq-input.entry.js +106 -31
  409. package/dist/esm/bq-input.entry.js.map +1 -1
  410. package/dist/esm/bq-notification.entry.js +23 -11
  411. package/dist/esm/bq-notification.entry.js.map +1 -1
  412. package/dist/esm/bq-option-group.entry.js +1 -1
  413. package/dist/esm/bq-option-list_2.entry.js +34 -12
  414. package/dist/esm/bq-option-list_2.entry.js.map +1 -1
  415. package/dist/esm/bq-option.entry.js +16 -7
  416. package/dist/esm/bq-option.entry.js.map +1 -1
  417. package/dist/esm/bq-page-title.entry.js +7 -4
  418. package/dist/esm/bq-page-title.entry.js.map +1 -1
  419. package/dist/esm/bq-progress.entry.js +20 -8
  420. package/dist/esm/bq-progress.entry.js.map +1 -1
  421. package/dist/esm/bq-radio-group.entry.js +24 -10
  422. package/dist/esm/bq-radio-group.entry.js.map +1 -1
  423. package/dist/esm/bq-radio.entry.js +20 -8
  424. package/dist/esm/bq-radio.entry.js.map +1 -1
  425. package/dist/esm/bq-select.entry.js +74 -32
  426. package/dist/esm/bq-select.entry.js.map +1 -1
  427. package/dist/esm/bq-side-menu-item.entry.js +13 -5
  428. package/dist/esm/bq-side-menu-item.entry.js.map +1 -1
  429. package/dist/esm/bq-side-menu.entry.js +15 -5
  430. package/dist/esm/bq-side-menu.entry.js.map +1 -1
  431. package/dist/esm/bq-slider.entry.js +51 -17
  432. package/dist/esm/bq-slider.entry.js.map +1 -1
  433. package/dist/esm/bq-spinner.entry.js +15 -7
  434. package/dist/esm/bq-spinner.entry.js.map +1 -1
  435. package/dist/esm/bq-status.entry.js +8 -2
  436. package/dist/esm/bq-status.entry.js.map +1 -1
  437. package/dist/esm/bq-step-item.entry.js +12 -4
  438. package/dist/esm/bq-step-item.entry.js.map +1 -1
  439. package/dist/esm/bq-steps.entry.js +12 -4
  440. package/dist/esm/bq-steps.entry.js.map +1 -1
  441. package/dist/esm/bq-switch.entry.js +32 -13
  442. package/dist/esm/bq-switch.entry.js.map +1 -1
  443. package/dist/esm/bq-tab-group.entry.js +18 -7
  444. package/dist/esm/bq-tab-group.entry.js.map +1 -1
  445. package/dist/esm/bq-tab.entry.js +22 -10
  446. package/dist/esm/bq-tab.entry.js.map +1 -1
  447. package/dist/esm/bq-textarea.entry.js +77 -24
  448. package/dist/esm/bq-textarea.entry.js.map +1 -1
  449. package/dist/esm/bq-toast.entry.js +19 -8
  450. package/dist/esm/bq-toast.entry.js.map +1 -1
  451. package/dist/esm/bq-tooltip.entry.js +25 -9
  452. package/dist/esm/bq-tooltip.entry.js.map +1 -1
  453. package/dist/esm/{cally-1a3258d6.js → cally-49a83be1.js} +3 -2
  454. package/dist/esm/cally-49a83be1.js.map +1 -0
  455. package/dist/esm/{index-c7d02072.js → index-59610291.js} +1128 -920
  456. package/dist/esm/index-59610291.js.map +1 -0
  457. package/dist/esm/{index-1618c78b.js → index-d4eea621.js} +54 -29
  458. package/dist/esm/index-d4eea621.js.map +1 -0
  459. package/dist/esm/index.js +4 -4
  460. package/dist/esm/{isDefined-48de6db5.js → isDefined-30b8b652.js} +2 -2
  461. package/dist/esm/{isDefined-48de6db5.js.map → isDefined-30b8b652.js.map} +1 -1
  462. package/dist/esm/loader.js +2 -2
  463. package/dist/hydrate/index.js +2358 -1518
  464. package/dist/hydrate/index.mjs +2358 -1518
  465. package/dist/stencil.config.js +3 -0
  466. package/dist/stencil.config.js.map +1 -1
  467. package/dist/types/components/accordion/bq-accordion.d.ts +1 -1
  468. package/dist/types/components/date-picker/bq-date-picker.d.ts +2 -2
  469. package/package.json +5 -5
  470. package/dist/beeq/p-00702295.entry.js.map +0 -1
  471. package/dist/beeq/p-01de6133.js +0 -6
  472. package/dist/beeq/p-0cab9a82.entry.js.map +0 -1
  473. package/dist/beeq/p-19c94c6d.entry.js +0 -6
  474. package/dist/beeq/p-19c94c6d.entry.js.map +0 -1
  475. package/dist/beeq/p-1cdea079.entry.js.map +0 -1
  476. package/dist/beeq/p-2c566eb0.entry.js +0 -6
  477. package/dist/beeq/p-2e0e325b.entry.js.map +0 -1
  478. package/dist/beeq/p-36b653f6.entry.js.map +0 -1
  479. package/dist/beeq/p-55b0aea8.js.map +0 -1
  480. package/dist/beeq/p-60094726.js +0 -7
  481. package/dist/beeq/p-60094726.js.map +0 -1
  482. package/dist/beeq/p-6079f9b2.entry.js +0 -6
  483. package/dist/beeq/p-c78ae3c2.js.map +0 -1
  484. package/dist/beeq/p-cb3b24e6.entry.js.map +0 -1
  485. package/dist/beeq/p-eb662058.entry.js +0 -6
  486. package/dist/beeq/p-eb662058.entry.js.map +0 -1
  487. package/dist/cjs/cally-9297cdd8.js.map +0 -1
  488. package/dist/cjs/index-c4edfa07.js.map +0 -1
  489. package/dist/cjs/index-fc7876d6.js.map +0 -1
  490. package/dist/components/p-1566efe3.js +0 -6
  491. package/dist/components/p-28da2321.js +0 -6
  492. package/dist/components/p-55b0aea8.js.map +0 -1
  493. package/dist/components/p-5940b410.js +0 -7
  494. package/dist/components/p-5940b410.js.map +0 -1
  495. package/dist/components/p-603c898d.js +0 -6
  496. package/dist/components/p-7d7f1f7e.js +0 -6
  497. package/dist/components/p-93c16753.js +0 -6
  498. package/dist/components/p-93c16753.js.map +0 -1
  499. package/dist/components/p-c78ae3c2.js.map +0 -1
  500. package/dist/components/p-cf496927.js +0 -6
  501. package/dist/components/p-cf496927.js.map +0 -1
  502. package/dist/esm/cally-1a3258d6.js.map +0 -1
  503. package/dist/esm/index-1618c78b.js.map +0 -1
  504. package/dist/esm/index-c7d02072.js.map +0 -1
  505. /package/dist/beeq/{p-c09dac58.entry.js.map → p-b7b3f7c6.entry.js.map} +0 -0
  506. /package/dist/beeq/{p-01de6133.js.map → p-cf923c68.js.map} +0 -0
  507. /package/dist/beeq/{p-3c472097.js.map → p-e4dd6ff4.js.map} +0 -0
  508. /package/dist/components/{p-78d23ddc.js.map → p-6e0c7ab4.js.map} +0 -0
  509. /package/dist/types/{home/runner/work/BEEQ/BEEQ → Users/dramos/PROJECTs/ENDAVA/BEEQ-Design-System}/packages/beeq/.stencil/packages/beeq/stencil.config.d.ts +0 -0
  510. /package/dist/types/{home/runner/work/BEEQ/BEEQ → Users/dramos/PROJECTs/ENDAVA/BEEQ-Design-System}/packages/beeq/.stencil/tailwind.config.d.ts +0 -0
@@ -1 +1 @@
1
- {"version":3,"file":"bq-input.js","sourceRoot":"","sources":["../../../../../../src/components/input/bq-input.tsx"],"names":[],"mappings":"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","sourcesContent":["import { AttachInternals, Component, Element, Event, EventEmitter, h, Prop, State, Watch } from '@stencil/core';\n\nimport { TInputType, TInputValidation, TInputValue } from './bq-input.types';\nimport { debounce, hasSlotContent, isDefined, isHTMLElement, isNil, TDebounce } from '../../shared/utils';\n\n/**\n * The Input component is a fundamental user interface element that allows users to input data by typing it into a text field.\n * It is commonly used in web and mobile applications for various purposes, such as collecting user information, search inputs, and login forms.\n *\n * @example How to use it\n * ```html\n * <bq-input name=\"username\" label=\"Username\" placeholder=\"Enter your username\"></bq-input>\n * ```\n *\n * @documentation https://www.beeq.design/3d466e231/p/980362-input\n * @status stable\n *\n * @dependency bq-button\n * @dependency bq-icon\n *\n * @attr {string} autocapitalize - Controls whether or not the input field should be capitalized and how.\n * @attr {string} autocomplete - Specifies whether or not the input field should have autocomplete enabled.\n * @attr {string} autocorrect - Controls whether or not the input field should have autocorrect enabled.\n * @attr {boolean} autofocus - If true, the input will be focused on component render.\n * @attr {string} clear-button-label - The clear button aria label.\n * @attr {number} debounce-time - The amount of time, in milliseconds, to wait before emitting the `bqInput` event after the input value changes.\n * @attr {boolean} disabled - Indicates whether the input is disabled or not.\n * @attr {boolean} disable-clear - If true, the clear button won't be displayed.\n * @attr {string} form - The ID of the form that the input field belongs to.\n * @attr {string} form-validation-message - The native form validation message (mandatory if `required` is set).\n * @attr {string} inputmode - The inputmode attribute specifies what kind of input mechanism would be most helpful for users entering content into the input field.\n * @attr {number | string} max - The maximum value that the input field can accept.\n * @attr {number} maxlength - The maximum number of characters that the input field can accept.\n * @attr {number | string} min - The minimum value that the input field can accept.\n * @attr {number} minlength - The minimum number of characters that the input field can accept.\n * @attr {string} name - The input field name.\n * @attr {string} pattern - Specifies a regular expression the form control's value should match.\n * @attr {string} placeholder - The input placeholder text value.\n * @attr {boolean} readonly - If true, the input field cannot be modified.\n * @attr {boolean} required - Indicates whether or not the input field is required to be filled out before submitting the form.\n * @attr {number | 'any'} step - A number that specifies the granularity that the value must adhere to.\n * @attr {string} type - The type attribute specifies the type of input field to display.\n * @attr {'none' | 'error' | 'warning' | 'success'} validation-status - The validation status of the input.\n * @attr {string | number | string[]} value - The input value, it can be used to reset the input to a previous value.\n *\n * @event bqBlur - Callback handler emitted when the input loses focus.\n * @event bqChange - Callback handler emitted when the input value has changed and the input loses focus.\n * @event bqClear - Callback handler emitted when the input value has been cleared.\n * @event bqFocus - Callback handler emitted when the input has received focus.\n * @event bqInput - Callback handler emitted when the input value changes.\n *\n * @slot label - The label slot container.\n * @slot prefix - The prefix slot container.\n * @slot suffix - The suffix slot container.\n * @slot helper-text - The helper text slot container.\n * @slot clear-icon - The clear icon slot container.\n *\n * @part base - The component's base wrapper.\n * @part button - The native HTML button used under the hood in the clear button.\n * @part clear-btn - The clear button.\n * @part control - The input control wrapper.\n * @part helper-text - The helper text slot container.\n * @part label - The label slot container.\n * @part input - The native HTML input element used under the hood.\n * @part prefix - The prefix slot container.\n * @part suffix - The suffix slot container.\n *\n * @cssprop --bq-input--background-color - Input background color\n * @cssprop --bq-input--border-color - Input border color\n * @cssprop --bq-input--border-color-focus - Input border color on focus\n * @cssprop --bq-input--border-radius - Input border radius\n * @cssprop --bq-input--border-width - Input border width\n * @cssprop --bq-input--border-style - Input border style\n * @cssprop --bq-input--gap - Gap between input content and prefix/suffix\n * @cssprop --bq-input--helper-margin-top - Helper text margin top\n * @cssprop --bq-input--helper-text-color - Helper text color\n * @cssprop --bq-input--helper-text-size - Helper text size\n * @cssprop --bq-input--icon-size - Icon size to use in prefix/suffix and clear button\n * @cssprop --bq-input--label-margin-bottom - Input label margin bottom\n * @cssprop --bq-input--label-text-color - Input label text color\n * @cssprop --bq-input--label-text-size - Input label text size\n * @cssprop --bq-input--padding-start - Input padding start\n * @cssprop --bq-input--padding-end - Input padding end\n * @cssprop --bq-input--paddingY - Input padding top and bottom\n * @cssprop --bq-input--text-color - Input text color\n * @cssprop --bq-input--text-size - Input text size\n * @cssprop --bq-input--text-placeholder-color - Input placeholder text color\n */\n@Component({\n tag: 'bq-input',\n styleUrl: './scss/bq-input.scss',\n formAssociated: true,\n shadow: {\n delegatesFocus: true,\n },\n})\nexport class BqInput {\n // Own Properties\n // ====================\n\n private helperTextElem?: HTMLElement;\n private inputElem?: HTMLInputElement;\n private labelElem?: HTMLElement;\n private prefixElem?: HTMLElement;\n private suffixElem?: HTMLElement;\n\n private debounceBqInput: TDebounce<void>;\n private fallbackInputId = 'input';\n\n // Reference to host HTML element\n // ===================================\n\n @Element() el!: HTMLBqInputElement;\n @AttachInternals() internals!: ElementInternals;\n\n // State() variables\n // Inlined decorator, alphabetical order\n // =======================================\n\n @State() hasHelperText = false;\n @State() hasLabel = false;\n @State() hasPrefix = false;\n @State() hasSuffix = false;\n @State() hasValue = false;\n\n // Public Property API\n // ========================\n\n /**\n * Controls whether or not the input field should be capitalized and how.\n * Possible values are 'off', 'none', 'on', 'sentences', 'words', and 'characters'.\n * See: https://developer.mozilla.org/en-US/docs/Web/HTML/Global_attributes/autocapitalize\n */\n @Prop({ reflect: true }) autocapitalize: string = 'off';\n\n /**\n * Specifies whether or not the input field should have autocomplete enabled.\n * See: https://developer.mozilla.org/en-US/docs/Web/HTML/Attributes/autocomplete#values\n */\n @Prop({ reflect: true }) autocomplete: string = 'off';\n\n /**\n * Controls whether or not the input field should have autocorrect enabled.\n * Possible values are 'on' and 'off'.\n */\n @Prop({ reflect: true }) autocorrect: 'on' | 'off' = 'off';\n\n /** If true, the input will be focused on component render */\n @Prop({ reflect: true }) autofocus: boolean;\n\n /** The clear button aria label */\n @Prop({ reflect: true }) clearButtonLabel? = 'Clear value';\n\n /**\n * The amount of time, in milliseconds, to wait before emitting the `bqInput` event after the input value changes.\n * A value of 0 means no debouncing will occur.\n */\n @Prop({ reflect: true, mutable: true }) debounceTime? = 0;\n\n /**\n * Indicates whether the input is disabled or not.\n * If `true`, the input is disabled and cannot be interacted with.\n */\n @Prop({ mutable: true }) disabled?: boolean = false;\n\n /** If true, the clear button won't be displayed */\n @Prop({ reflect: true }) disableClear? = false;\n\n /** The ID of the form that the input field belongs to. */\n @Prop({ reflect: true }) form?: string;\n\n /** The native form validation message (mandatory if `required` is set) */\n @Prop({ mutable: true }) formValidationMessage?: string;\n\n /**\n * The inputmode attribute specifies what kind of input mechanism would be most helpful for users entering content into the input field.\n * This allows a browser to display an appropriate virtual keyboard while editing.\n * Possible values are 'none', 'text', 'decimal', 'numeric', 'tel', 'search', 'email', 'url', and 'date'.\n */\n @Prop() inputmode?: string;\n\n /**\n * The maximum value that the input field can accept.\n * Only applies to date and number input types.\n */\n @Prop({ reflect: true }) max?: number | string;\n\n /** The maximum number of characters that the input field can accept. */\n @Prop({ reflect: true }) maxlength: number;\n\n /**\n * The minimum value that the input field can accept.\n * Only applies to date and number input types.\n */\n @Prop({ reflect: true }) min?: number | string;\n\n /** The minimum number of characters that the input field can accept. */\n @Prop({ reflect: true }) minlength: number;\n\n /** The input field name. */\n @Prop({ reflect: true }) name!: string;\n\n /**\n * Specifies a regular expression the form control's value should match.\n * See: https://developer.mozilla.org/en-US/docs/Web/HTML/Attributes/pattern\n */\n @Prop({ reflect: true }) pattern?: string;\n\n /** The input placeholder text value */\n @Prop({ reflect: true }) placeholder?: string;\n\n /** If true, the input field cannot be modified. */\n @Prop({ reflect: true }) readonly?: boolean;\n\n /** Indicates whether or not the input field is required to be filled out before submitting the form. */\n @Prop({ reflect: true }) required?: boolean;\n\n /**\n * A number that specifies the granularity that the value must adhere to.\n * Valid for date, month, week, time, datetime-local, number, and range.\n * See: https://developer.mozilla.org/en-US/docs/Web/HTML/Element/input#step\n */\n @Prop({ reflect: true }) step: number | 'any';\n\n /**\n * The type attribute specifies the type of input field to display.\n * Possible values are 'text', 'password', 'email', 'number', 'tel', 'search', 'url', and more.\n * See: https://developer.mozilla.org/en-US/docs/Web/HTML/Element/input#input_types\n */\n @Prop({ reflect: true }) type: TInputType = 'text';\n\n /**\n * The validation status of the input.\n *\n * @remarks\n * This property is used to indicate the validation status of the input. It can be set to one of the following values:\n * - `'none'`: No validation status is set.\n * - `'error'`: The input has a validation error.\n * - `'warning'`: The input has a validation warning.\n * - `'success'`: The input has passed validation.\n */\n @Prop({ reflect: true }) validationStatus: TInputValidation = 'none';\n\n /** The input value, it can be used to reset the input to a previous value */\n @Prop({ reflect: true, mutable: true }) value: TInputValue;\n\n // Prop lifecycle events\n // =======================\n\n @Watch('value')\n handleValueChange() {\n const { internals, value } = this;\n if (Array.isArray(value)) {\n this.hasValue = value.some((val) => val.length > 0);\n this.internals.setFormValue(value.join(','));\n return;\n }\n\n this.hasValue = isDefined(value);\n internals.setFormValue(!isNil(value) ? `${value}` : undefined);\n }\n\n // Events section\n // Requires JSDocs for public API documentation\n // ==============================================\n\n /** Callback handler emitted when the input loses focus */\n @Event() bqBlur!: EventEmitter<HTMLBqInputElement>;\n\n /**\n * Callback handler emitted when the input value has changed and the input loses focus.\n * This handler is called whenever the user finishes typing or pasting text into the input field and then clicks outside of the input field.\n */\n @Event() bqChange!: EventEmitter<{ value: string | number | string[]; el: HTMLBqInputElement }>;\n\n /** Callback handler emitted when the input value has been cleared */\n @Event() bqClear!: EventEmitter<HTMLBqInputElement>;\n\n /** Callback handler emitted when the input has received focus */\n @Event() bqFocus!: EventEmitter<HTMLBqInputElement>;\n\n /**\n * Callback handler emitted when the input value changes.\n * This handler is called whenever the user types or pastes text into the input field.\n */\n @Event() bqInput!: EventEmitter<{ value: string | number | string[]; el: HTMLBqInputElement }>;\n\n // Component lifecycle events\n // Ordered by their natural call order\n // =====================================\n\n componentWillLoad() {\n this.handleValueChange();\n }\n\n formAssociatedCallback() {\n this.setFormValue(this.value?.toString());\n this.updateFormValidity();\n }\n\n formResetCallback() {\n if (isNil(this.value)) return;\n\n this.handleClear();\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 if (this.disabled) return;\n\n this.bqBlur.emit(this.el);\n };\n\n private handleFocus = () => {\n if (this.disabled) return;\n\n this.bqFocus.emit(this.el);\n };\n\n private handleInput = (ev: Event) => {\n if (this.disabled) return;\n\n this.debounceBqInput?.cancel();\n\n if (!isHTMLElement(ev.target, 'input')) return;\n this.value = this.type === 'number' ? Number(ev.target.value) : ev.target.value;\n\n this.debounceBqInput = debounce(() => {\n this.bqInput.emit({ value: this.value, el: this.el });\n }, this.debounceTime);\n this.debounceBqInput();\n };\n\n private handleChange = (ev: Event) => {\n if (this.disabled) return;\n\n if (!isHTMLElement(ev.target, 'input')) return;\n this.value = this.type === 'number' ? Number(ev.target.value) : ev.target.value;\n // Update form value and validity\n this.setFormValue(`${this.value}`);\n this.updateFormValidity();\n\n this.bqChange.emit({ value: this.value, el: this.el });\n };\n\n private handleClear = () => {\n if (this.disabled) return;\n\n const { inputElem, setFormValue, updateFormValidity } = this;\n // Clear input element value\n inputElem.value = '';\n this.value = inputElem.value;\n // Set form value to empty string abd update validity\n setFormValue(this.value);\n updateFormValidity();\n };\n\n private handleClearClick = (ev: CustomEvent) => {\n ev.stopPropagation();\n this.handleClear();\n\n const { bqClear, bqChange, bqInput, el, inputElem } = this;\n // Emit events\n bqClear.emit(el);\n bqInput.emit({ value: this.value, el });\n bqChange.emit({ value: this.value, el });\n // Refocus input element\n inputElem.focus();\n };\n\n private setFormValue = (value?: string) => {\n this.internals.setFormValue(!isNil(value) ? `${value}` : undefined);\n };\n\n private updateFormValidity = () => {\n const { formValidationMessage, internals, required, value, inputElem } = this;\n\n // Clear the validity state\n internals?.states.clear();\n\n if (required && (!value || value.toString().trim() === '')) {\n // Set validity state to invalid\n internals?.states.add('invalid');\n internals?.setValidity({ valueMissing: true }, formValidationMessage, inputElem);\n return;\n }\n\n // Set validity state to valid if textarea has value or is not required\n internals?.states.add('valid');\n internals?.setValidity({});\n };\n\n private handleLabelSlotChange = () => {\n this.hasLabel = hasSlotContent(this.labelElem);\n };\n\n private handlePrefixSlotChange = () => {\n this.hasPrefix = hasSlotContent(this.prefixElem);\n };\n\n private handleSuffixSlotChange = () => {\n this.hasSuffix = hasSlotContent(this.suffixElem);\n };\n\n private handleHelperTextSlotChange = () => {\n this.hasHelperText = hasSlotContent(this.helperTextElem);\n };\n\n // render() function\n // Always the last one in the class.\n // ===================================\n\n render() {\n return (\n <div class=\"bq-input\" part=\"base\">\n {/* Label */}\n <label\n class={{ 'bq-input--label': true, '!hidden': !this.hasLabel }}\n aria-label={this.name || this.fallbackInputId}\n htmlFor={this.name || this.fallbackInputId}\n ref={(labelElem) => (this.labelElem = labelElem)}\n part=\"label\"\n >\n <slot name=\"label\" onSlotchange={this.handleLabelSlotChange} />\n </label>\n {/* Input control group */}\n <div\n class={{\n 'bq-input--control': true,\n [`validation-${this.validationStatus}`]: true,\n disabled: this.disabled,\n }}\n part=\"control\"\n >\n {/* Prefix */}\n <span\n class={{ 'bq-input--control__prefix': true, '!hidden': !this.hasPrefix }}\n ref={(spanElem) => (this.prefixElem = spanElem)}\n part=\"prefix\"\n >\n <slot name=\"prefix\" onSlotchange={this.handlePrefixSlotChange} />\n </span>\n {/* HTML Input */}\n <input\n id={this.name || this.fallbackInputId}\n class=\"bq-input--control__input\"\n aria-disabled={this.disabled ? 'true' : 'false'}\n autoCapitalize={this.autocapitalize}\n autoComplete={this.autocomplete}\n autoCorrect={this.autocorrect}\n disabled={this.disabled}\n form={this.form}\n inputMode={this.inputmode}\n max={this.max}\n maxLength={this.maxlength}\n min={this.min}\n minLength={this.minlength}\n name={this.name}\n pattern={this.pattern}\n placeholder={this.placeholder}\n ref={(inputElem) => (this.inputElem = inputElem)}\n readOnly={this.readonly}\n required={this.required}\n step={this.step}\n type={this.type}\n value={this.value}\n part=\"input\"\n // Events\n onBlur={this.handleBlur}\n onChange={this.handleChange}\n onFocus={this.handleFocus}\n onInput={this.handleInput}\n />\n {/* Clear Button */}\n {this.hasValue && !this.disabled && !this.disableClear && (\n // The clear button will be visible as long as the input has a value\n // and the parent group is hovered or has focus-within\n <bq-button\n class=\"bq-input--control__clear ms-[--bq-input--gap] hidden\"\n appearance=\"text\"\n aria-label={this.clearButtonLabel}\n size=\"small\"\n onBqClick={this.handleClearClick}\n part=\"clear-btn\"\n exportparts=\"button\"\n >\n <slot name=\"clear-icon\">\n <bq-icon name=\"x-circle\" class=\"flex\" />\n </slot>\n </bq-button>\n )}\n {/* Suffix */}\n <span\n class={{ 'bq-input--control__suffix': true, '!hidden': !this.hasSuffix }}\n ref={(spanElem) => (this.suffixElem = spanElem)}\n part=\"suffix\"\n >\n <slot name=\"suffix\" onSlotchange={this.handleSuffixSlotChange} />\n </span>\n </div>\n {/* Helper text */}\n <div\n class={{\n [`bq-input--helper-text validation-${this.validationStatus}`]: true,\n '!hidden': !this.hasHelperText,\n }}\n ref={(divElem) => (this.helperTextElem = divElem)}\n part=\"helper-text\"\n >\n <slot name=\"helper-text\" onSlotchange={this.handleHelperTextSlotChange} />\n </div>\n </div>\n );\n }\n}\n"]}
1
+ {"version":3,"file":"bq-input.js","sourceRoot":"","sources":["../../../../../../src/components/input/bq-input.tsx"],"names":[],"mappings":"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","sourcesContent":["import { AttachInternals, Component, Element, Event, EventEmitter, h, Prop, State, Watch } from '@stencil/core';\n\nimport { TInputType, TInputValidation, TInputValue } from './bq-input.types';\nimport { debounce, hasSlotContent, isDefined, isHTMLElement, isNil, TDebounce } from '../../shared/utils';\n\n/**\n * The Input component is a fundamental user interface element that allows users to input data by typing it into a text field.\n * It is commonly used in web and mobile applications for various purposes, such as collecting user information, search inputs, and login forms.\n *\n * @example How to use it\n * ```html\n * <bq-input name=\"username\" label=\"Username\" placeholder=\"Enter your username\"></bq-input>\n * ```\n *\n * @documentation https://www.beeq.design/3d466e231/p/980362-input\n * @status stable\n *\n * @dependency bq-button\n * @dependency bq-icon\n *\n * @attr {string} autocapitalize - Controls whether or not the input field should be capitalized and how.\n * @attr {string} autocomplete - Specifies whether or not the input field should have autocomplete enabled.\n * @attr {string} autocorrect - Controls whether or not the input field should have autocorrect enabled.\n * @attr {boolean} autofocus - If true, the input will be focused on component render.\n * @attr {string} clear-button-label - The clear button aria label.\n * @attr {number} debounce-time - The amount of time, in milliseconds, to wait before emitting the `bqInput` event after the input value changes.\n * @attr {boolean} disabled - Indicates whether the input is disabled or not.\n * @attr {boolean} disable-clear - If true, the clear button won't be displayed.\n * @attr {string} form - The ID of the form that the input field belongs to.\n * @attr {string} form-validation-message - The native form validation message (mandatory if `required` is set).\n * @attr {string} inputmode - The inputmode attribute specifies what kind of input mechanism would be most helpful for users entering content into the input field.\n * @attr {number | string} max - The maximum value that the input field can accept.\n * @attr {number} maxlength - The maximum number of characters that the input field can accept.\n * @attr {number | string} min - The minimum value that the input field can accept.\n * @attr {number} minlength - The minimum number of characters that the input field can accept.\n * @attr {string} name - The input field name.\n * @attr {string} pattern - Specifies a regular expression the form control's value should match.\n * @attr {string} placeholder - The input placeholder text value.\n * @attr {boolean} readonly - If true, the input field cannot be modified.\n * @attr {boolean} required - Indicates whether or not the input field is required to be filled out before submitting the form.\n * @attr {number | 'any'} step - A number that specifies the granularity that the value must adhere to.\n * @attr {string} type - The type attribute specifies the type of input field to display.\n * @attr {'none' | 'error' | 'warning' | 'success'} validation-status - The validation status of the input.\n * @attr {string | number | string[]} value - The input value, it can be used to reset the input to a previous value.\n *\n * @event bqBlur - Callback handler emitted when the input loses focus.\n * @event bqChange - Callback handler emitted when the input value has changed and the input loses focus.\n * @event bqClear - Callback handler emitted when the input value has been cleared.\n * @event bqFocus - Callback handler emitted when the input has received focus.\n * @event bqInput - Callback handler emitted when the input value changes.\n *\n * @slot label - The label slot container.\n * @slot prefix - The prefix slot container.\n * @slot suffix - The suffix slot container.\n * @slot helper-text - The helper text slot container.\n * @slot clear-icon - The clear icon slot container.\n *\n * @part base - The component's base wrapper.\n * @part button - The native HTML button used under the hood in the clear button.\n * @part clear-btn - The clear button.\n * @part control - The input control wrapper.\n * @part helper-text - The helper text slot container.\n * @part label - The label slot container.\n * @part input - The native HTML input element used under the hood.\n * @part prefix - The prefix slot container.\n * @part suffix - The suffix slot container.\n *\n * @cssprop --bq-input--background-color - Input background color\n * @cssprop --bq-input--border-color - Input border color\n * @cssprop --bq-input--border-color-focus - Input border color on focus\n * @cssprop --bq-input--border-radius - Input border radius\n * @cssprop --bq-input--border-width - Input border width\n * @cssprop --bq-input--border-style - Input border style\n * @cssprop --bq-input--gap - Gap between input content and prefix/suffix\n * @cssprop --bq-input--helper-margin-top - Helper text margin top\n * @cssprop --bq-input--helper-text-color - Helper text color\n * @cssprop --bq-input--helper-text-size - Helper text size\n * @cssprop --bq-input--icon-size - Icon size to use in prefix/suffix and clear button\n * @cssprop --bq-input--label-margin-bottom - Input label margin bottom\n * @cssprop --bq-input--label-text-color - Input label text color\n * @cssprop --bq-input--label-text-size - Input label text size\n * @cssprop --bq-input--padding-start - Input padding start\n * @cssprop --bq-input--padding-end - Input padding end\n * @cssprop --bq-input--paddingY - Input padding top and bottom\n * @cssprop --bq-input--text-color - Input text color\n * @cssprop --bq-input--text-size - Input text size\n * @cssprop --bq-input--text-placeholder-color - Input placeholder text color\n */\n@Component({\n tag: 'bq-input',\n styleUrl: './scss/bq-input.scss',\n formAssociated: true,\n shadow: {\n delegatesFocus: true,\n },\n})\nexport class BqInput {\n // Own Properties\n // ====================\n\n private helperTextElem?: HTMLElement;\n private inputElem?: HTMLInputElement;\n private labelElem?: HTMLElement;\n private prefixElem?: HTMLElement;\n private suffixElem?: HTMLElement;\n\n private debounceBqInput: TDebounce<void>;\n private fallbackInputId = 'input';\n\n // Reference to host HTML element\n // ===================================\n\n @Element() el!: HTMLBqInputElement;\n @AttachInternals() internals!: ElementInternals;\n\n // State() variables\n // Inlined decorator, alphabetical order\n // =======================================\n\n @State() hasHelperText = false;\n @State() hasLabel = false;\n @State() hasPrefix = false;\n @State() hasSuffix = false;\n @State() hasValue = false;\n\n // Public Property API\n // ========================\n\n /**\n * Controls whether or not the input field should be capitalized and how.\n * Possible values are 'off', 'none', 'on', 'sentences', 'words', and 'characters'.\n * See: https://developer.mozilla.org/en-US/docs/Web/HTML/Global_attributes/autocapitalize\n */\n @Prop({ reflect: true }) autocapitalize: string = 'off';\n\n /**\n * Specifies whether or not the input field should have autocomplete enabled.\n * See: https://developer.mozilla.org/en-US/docs/Web/HTML/Attributes/autocomplete#values\n */\n @Prop({ reflect: true }) autocomplete: string = 'off';\n\n /**\n * Controls whether or not the input field should have autocorrect enabled.\n * Possible values are 'on' and 'off'.\n */\n @Prop({ reflect: true }) autocorrect: 'on' | 'off' = 'off';\n\n /** If true, the input will be focused on component render */\n @Prop({ reflect: true }) autofocus: boolean;\n\n /** The clear button aria label */\n @Prop({ reflect: true }) clearButtonLabel? = 'Clear value';\n\n /**\n * The amount of time, in milliseconds, to wait before emitting the `bqInput` event after the input value changes.\n * A value of 0 means no debouncing will occur.\n */\n @Prop({ reflect: true, mutable: true }) debounceTime? = 0;\n\n /**\n * Indicates whether the input is disabled or not.\n * If `true`, the input is disabled and cannot be interacted with.\n */\n @Prop({ mutable: true }) disabled?: boolean = false;\n\n /** If true, the clear button won't be displayed */\n @Prop({ reflect: true }) disableClear? = false;\n\n /** The ID of the form that the input field belongs to. */\n @Prop({ reflect: true }) form?: string;\n\n /** The native form validation message (mandatory if `required` is set) */\n @Prop({ mutable: true }) formValidationMessage?: string;\n\n /**\n * The inputmode attribute specifies what kind of input mechanism would be most helpful for users entering content into the input field.\n * This allows a browser to display an appropriate virtual keyboard while editing.\n * Possible values are 'none', 'text', 'decimal', 'numeric', 'tel', 'search', 'email', 'url', and 'date'.\n */\n @Prop() inputmode?: string;\n\n /**\n * The maximum value that the input field can accept.\n * Only applies to date and number input types.\n */\n @Prop({ reflect: true }) max?: number | string;\n\n /** The maximum number of characters that the input field can accept. */\n @Prop({ reflect: true }) maxlength: number;\n\n /**\n * The minimum value that the input field can accept.\n * Only applies to date and number input types.\n */\n @Prop({ reflect: true }) min?: number | string;\n\n /** The minimum number of characters that the input field can accept. */\n @Prop({ reflect: true }) minlength: number;\n\n /** The input field name. */\n @Prop({ reflect: true }) name!: string;\n\n /**\n * Specifies a regular expression the form control's value should match.\n * See: https://developer.mozilla.org/en-US/docs/Web/HTML/Attributes/pattern\n */\n @Prop({ reflect: true }) pattern?: string;\n\n /** The input placeholder text value */\n @Prop({ reflect: true }) placeholder?: string;\n\n /** If true, the input field cannot be modified. */\n @Prop({ reflect: true }) readonly?: boolean;\n\n /** Indicates whether or not the input field is required to be filled out before submitting the form. */\n @Prop({ reflect: true }) required?: boolean;\n\n /**\n * A number that specifies the granularity that the value must adhere to.\n * Valid for date, month, week, time, datetime-local, number, and range.\n * See: https://developer.mozilla.org/en-US/docs/Web/HTML/Element/input#step\n */\n @Prop({ reflect: true }) step: number | 'any';\n\n /**\n * The type attribute specifies the type of input field to display.\n * Possible values are 'text', 'password', 'email', 'number', 'tel', 'search', 'url', and more.\n * See: https://developer.mozilla.org/en-US/docs/Web/HTML/Element/input#input_types\n */\n @Prop({ reflect: true }) type: TInputType = 'text';\n\n /**\n * The validation status of the input.\n *\n * @remarks\n * This property is used to indicate the validation status of the input. It can be set to one of the following values:\n * - `'none'`: No validation status is set.\n * - `'error'`: The input has a validation error.\n * - `'warning'`: The input has a validation warning.\n * - `'success'`: The input has passed validation.\n */\n @Prop({ reflect: true }) validationStatus: TInputValidation = 'none';\n\n /** The input value, it can be used to reset the input to a previous value */\n @Prop({ reflect: true, mutable: true }) value: TInputValue;\n\n // Prop lifecycle events\n // =======================\n\n @Watch('value')\n handleValueChange() {\n const { internals, value } = this;\n if (Array.isArray(value)) {\n this.hasValue = value.some((val) => val.length > 0);\n this.internals.setFormValue(value.join(','));\n return;\n }\n\n this.hasValue = isDefined(value);\n internals.setFormValue(!isNil(value) ? `${value}` : undefined);\n }\n\n // Events section\n // Requires JSDocs for public API documentation\n // ==============================================\n\n /** Callback handler emitted when the input loses focus */\n @Event() bqBlur!: EventEmitter<HTMLBqInputElement>;\n\n /**\n * Callback handler emitted when the input value has changed and the input loses focus.\n * This handler is called whenever the user finishes typing or pasting text into the input field and then clicks outside of the input field.\n */\n @Event() bqChange!: EventEmitter<{ value: string | number | string[]; el: HTMLBqInputElement }>;\n\n /** Callback handler emitted when the input value has been cleared */\n @Event() bqClear!: EventEmitter<HTMLBqInputElement>;\n\n /** Callback handler emitted when the input has received focus */\n @Event() bqFocus!: EventEmitter<HTMLBqInputElement>;\n\n /**\n * Callback handler emitted when the input value changes.\n * This handler is called whenever the user types or pastes text into the input field.\n */\n @Event() bqInput!: EventEmitter<{ value: string | number | string[]; el: HTMLBqInputElement }>;\n\n // Component lifecycle events\n // Ordered by their natural call order\n // =====================================\n\n componentWillLoad() {\n this.handleValueChange();\n }\n\n formAssociatedCallback() {\n this.setFormValue(this.value?.toString());\n this.updateFormValidity();\n }\n\n formResetCallback() {\n if (isNil(this.value)) return;\n\n this.handleClear();\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 if (this.disabled) return;\n\n this.bqBlur.emit(this.el);\n };\n\n private handleFocus = () => {\n if (this.disabled) return;\n\n this.bqFocus.emit(this.el);\n };\n\n private handleInput = (ev: Event) => {\n if (this.disabled) return;\n\n this.debounceBqInput?.cancel();\n\n if (!isHTMLElement(ev.target, 'input')) return;\n this.value = this.type === 'number' ? Number(ev.target.value) : ev.target.value;\n\n this.debounceBqInput = debounce(() => {\n this.bqInput.emit({ value: this.value, el: this.el });\n }, this.debounceTime);\n this.debounceBqInput();\n };\n\n private handleChange = (ev: Event) => {\n if (this.disabled) return;\n\n if (!isHTMLElement(ev.target, 'input')) return;\n this.value = this.type === 'number' ? Number(ev.target.value) : ev.target.value;\n // Update form value and validity\n this.setFormValue(`${this.value}`);\n this.updateFormValidity();\n\n this.bqChange.emit({ value: this.value, el: this.el });\n };\n\n private handleClear = () => {\n if (this.disabled) return;\n\n const { inputElem, setFormValue, updateFormValidity } = this;\n // Clear input element value\n inputElem.value = '';\n this.value = inputElem.value;\n // Set form value to empty string abd update validity\n setFormValue(this.value);\n updateFormValidity();\n };\n\n private handleClearClick = (ev: CustomEvent) => {\n ev.stopPropagation();\n this.handleClear();\n\n const { bqClear, bqChange, bqInput, el, inputElem } = this;\n // Emit events\n bqClear.emit(el);\n bqInput.emit({ value: this.value, el });\n bqChange.emit({ value: this.value, el });\n // Refocus input element\n inputElem.focus();\n };\n\n private setFormValue = (value?: string) => {\n this.internals.setFormValue(!isNil(value) ? `${value}` : undefined);\n };\n\n private updateFormValidity = () => {\n const { formValidationMessage, internals, required, value, inputElem } = this;\n\n // Clear the validity state\n internals?.states.clear();\n\n if (required && (!value || value.toString().trim() === '')) {\n // Set validity state to invalid\n internals?.states.add('invalid');\n internals?.setValidity({ valueMissing: true }, formValidationMessage, inputElem);\n return;\n }\n\n // Set validity state to valid if textarea has value or is not required\n internals?.states.add('valid');\n internals?.setValidity({});\n };\n\n private handleLabelSlotChange = () => {\n this.hasLabel = hasSlotContent(this.labelElem);\n };\n\n private handlePrefixSlotChange = () => {\n this.hasPrefix = hasSlotContent(this.prefixElem);\n };\n\n private handleSuffixSlotChange = () => {\n this.hasSuffix = hasSlotContent(this.suffixElem);\n };\n\n private handleHelperTextSlotChange = () => {\n this.hasHelperText = hasSlotContent(this.helperTextElem);\n };\n\n // render() function\n // Always the last one in the class.\n // ===================================\n\n render() {\n return (\n <div class=\"bq-input\" part=\"base\">\n {/* Label */}\n <label\n class={{ 'bq-input--label': true, '!hidden': !this.hasLabel }}\n aria-label={this.name || this.fallbackInputId}\n htmlFor={this.name || this.fallbackInputId}\n ref={(labelElem) => (this.labelElem = labelElem)}\n part=\"label\"\n >\n <slot name=\"label\" onSlotchange={this.handleLabelSlotChange} />\n </label>\n {/* Input control group */}\n <div\n class={{\n 'bq-input--control': true,\n [`validation-${this.validationStatus}`]: true,\n disabled: this.disabled,\n }}\n part=\"control\"\n >\n {/* Prefix */}\n <span\n class={{ 'bq-input--control__prefix': true, '!hidden': !this.hasPrefix }}\n ref={(spanElem) => (this.prefixElem = spanElem)}\n part=\"prefix\"\n >\n <slot name=\"prefix\" onSlotchange={this.handlePrefixSlotChange} />\n </span>\n {/* HTML Input */}\n <input\n id={this.name || this.fallbackInputId}\n class=\"bq-input--control__input\"\n aria-disabled={this.disabled ? 'true' : 'false'}\n autoCapitalize={this.autocapitalize}\n autoComplete={this.autocomplete}\n autoCorrect={this.autocorrect}\n disabled={this.disabled}\n form={this.form}\n inputMode={this.inputmode}\n max={this.max}\n maxLength={this.maxlength}\n min={this.min}\n minLength={this.minlength}\n name={this.name}\n pattern={this.pattern}\n placeholder={this.placeholder}\n ref={(inputElem) => (this.inputElem = inputElem)}\n readOnly={this.readonly}\n required={this.required}\n step={this.step}\n type={this.type}\n value={this.value}\n part=\"input\"\n // Events\n onBlur={this.handleBlur}\n onChange={this.handleChange}\n onFocus={this.handleFocus}\n onInput={this.handleInput}\n />\n {/* Clear Button */}\n {this.hasValue && !this.disabled && !this.disableClear && (\n // The clear button will be visible as long as the input has a value\n // and the parent group is hovered or has focus-within\n <bq-button\n class=\"bq-input--control__clear ms-[--bq-input--gap] hidden\"\n appearance=\"text\"\n aria-label={this.clearButtonLabel}\n size=\"small\"\n onBqClick={this.handleClearClick}\n part=\"clear-btn\"\n exportparts=\"button\"\n >\n <slot name=\"clear-icon\">\n <bq-icon name=\"x-circle\" class=\"flex\" />\n </slot>\n </bq-button>\n )}\n {/* Suffix */}\n <span\n class={{ 'bq-input--control__suffix': true, '!hidden': !this.hasSuffix }}\n ref={(spanElem) => (this.suffixElem = spanElem)}\n part=\"suffix\"\n >\n <slot name=\"suffix\" onSlotchange={this.handleSuffixSlotChange} />\n </span>\n </div>\n {/* Helper text */}\n <div\n class={{\n [`bq-input--helper-text validation-${this.validationStatus}`]: true,\n '!hidden': !this.hasHelperText,\n }}\n ref={(divElem) => (this.helperTextElem = divElem)}\n part=\"helper-text\"\n >\n <slot name=\"helper-text\" onSlotchange={this.handleHelperTextSlotChange} />\n </div>\n </div>\n );\n }\n}\n"]}
@@ -78,18 +78,6 @@ const NOTIFICATION_PORTAL_SELECTOR = 'bq-notification-portal';
78
78
  * @cssprop --bq-notification--min-width - The notification min width
79
79
  */
80
80
  export class BqNotification {
81
- constructor() {
82
- this.hasContent = false;
83
- this.hasFooter = false;
84
- this.notificationPortal = isClient() ? document.querySelector(`.${NOTIFICATION_PORTAL_SELECTOR}`) : null;
85
- this.autoDismiss = undefined;
86
- this.border = 's';
87
- this.disableClose = undefined;
88
- this.hideIcon = undefined;
89
- this.open = undefined;
90
- this.time = 3000;
91
- this.type = 'info';
92
- }
93
81
  // Own Properties
94
82
  // ====================
95
83
  autoDismissDebounce;
@@ -99,6 +87,28 @@ export class BqNotification {
99
87
  // Reference to host HTML element
100
88
  // ===================================
101
89
  el;
90
+ // State() variables
91
+ // Inlined decorator, alphabetical order
92
+ // =======================================
93
+ hasContent = false;
94
+ hasFooter = false;
95
+ notificationPortal = isClient() ? document.querySelector(`.${NOTIFICATION_PORTAL_SELECTOR}`) : null;
96
+ // Public Property API
97
+ // ========================
98
+ /** If true, the notification will automatically hide after the specified amount of time */
99
+ autoDismiss;
100
+ /** The corder radius of the notification component */
101
+ border = 's';
102
+ /** If true, the close button at the top right of the notification won't be shown */
103
+ disableClose;
104
+ /** If true, the notification icon won't be shown */
105
+ hideIcon;
106
+ /** If true, the notification will be shown */
107
+ open;
108
+ /** The length of time, in milliseconds, after which the notification will close itself. Only valid if `autoDismiss="true"` */
109
+ time = 3000;
110
+ /** Type of Notification */
111
+ type = 'info';
102
112
  // Prop lifecycle events
103
113
  // =======================
104
114
  handleTimeout() {
@@ -1 +1 @@
1
- {"version":3,"file":"bq-notification.js","sourceRoot":"","sources":["../../../../../../src/components/notification/bq-notification.tsx"],"names":[],"mappings":"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","sourcesContent":["import { Component, Element, Event, EventEmitter, h, Host, Listen, Method, Prop, State, Watch } from '@stencil/core';\n\nimport { NOTIFICATION_TYPE, TNotificationBorderRadius, TNotificationType } from './bq-notification.types';\nimport { debounce, enter, hasSlotContent, isClient, leave, TDebounce, validatePropValue } from '../../shared/utils';\n\nconst NOTIFICATION_PORTAL_SELECTOR = 'bq-notification-portal';\n\n/**\n * The Notification component is a user interface element used to provide information or alerts to users in a non-intrusive manner.\n *\n * @example How to use it\n * ```html\n * <bq-notification border=\"s\" time=\"3000\" type=\"info\">\n * Title\n * <span slot=\"body\">\n * This is some description text text\n * <a class=\"bq-link\" href=\"https://example.com\">Link</a>\n * </span>\n * <div class=\"flex gap-xs\" slot=\"footer\">\n * <bq-button appearance=\"primary\" size=\"small\">Button</bq-button>\n * <bq-button appearance=\"link\" size=\"small\">Button</bq-button>\n * </div>\n * </bq-notification>\n * ```\n *\n * @documentation https://www.beeq.design/3d466e231/p/945cb6-notification\n * @status stable\n *\n * @dependency bq-button\n * @dependency bq-icon\n *\n * @attr {boolean} auto-dismiss - If true, the notification will automatically hide after the specified amount of time\n * @attr {string} border - The corder radius of the notification component\n * @attr {boolean} disable-close - If true, the close button at the top right of the notification won't be shown\n * @attr {boolean} hide-icon - If true, the notification icon won't be shown\n * @attr {boolean} open - If true, the notification will be shown\n * @attr {number} time - The length of time, in milliseconds, after which the notification will close itself. Only valid if `auto-dismiss=\"true\"`\n * @attr {string} type - Type of Notification\n *\n * @event bqAfterClose - Callback handler to be called after the notification has been closed\n * @event bqAfterOpen - Callback handler to be called after the notification has been opened\n * @event bqHide - Callback handler to be called when the notification is hidden\n * @event bqShow - Callback handler to be called when the notification is shown\n *\n * @slot - The notification title content\n * @slot body - The notification description content\n * @slot footer - The notification footer content\n * @slot icon - The icon to be displayed in the notification\n * @slot btn-close - The close button of the notification\n *\n * @part base - The `<div>` container of the predefined bq-icon component.\n * @part body - The container `<div>` that wraps the notification description content\n * @part btn-close - The `bq-button` used to close the notification\n * @part content - The container `<div>` that wraps all the notification content (title, description, footer)\n * @part footer - The container `<div>` that wraps the notification footer content\n * @part icon - The `<bq-icon>` element used to render a predefined icon based on the notification type\n * @part icon-outline - The container `<div>` that wraps the icon element\n * @part main - The container `<div>` that wraps the notification 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 notification title content\n * @part wrapper - The wrapper container `<div>` of the element inside the shadow DOM\n *\n * @cssprop --bq-notification--background - The notification background color\n * @cssprop --bq-notification--box-shadow - The notification box shadow\n * @cssprop --bq-notification--border-color - The notification border color\n * @cssprop --bq-notification--border-radius - The notification border radius\n * @cssprop --bq-notification--border-style - The notification border style\n * @cssprop --bq-notification--border-width - The notification border width\n * @cssprop --bq-notification--content-footer-gap - The notification content and footer gap\n * @cssprop --bq-notification--title-body-gap - The notification title and body gap\n * @cssprop --bq-notification--icon-color-error - The notification icon color for error type\n * @cssprop --bq-notification--icon-color-info - The notification icon color for info type\n * @cssprop --bq-notification--icon-color-neutral - The notification icon color for neutral type\n * @cssprop --bq-notification--icon-color-success - The notification icon color for success type\n * @cssprop --bq-notification--icon-color-warning - The notification icon color for warning type\n * @cssprop --bq-notification--padding - The notification padding\n * @cssprop --bq-notification--min-width - The notification min width\n */\n@Component({\n tag: 'bq-notification',\n styleUrl: './scss/bq-notification.scss',\n shadow: true,\n})\nexport class BqNotification {\n // Own Properties\n // ====================\n\n private autoDismissDebounce: TDebounce<void>;\n private bodyElem: HTMLDivElement;\n private footerElem: HTMLDivElement;\n private notificationElem: HTMLDivElement;\n\n // Reference to host HTML element\n // ===================================\n\n @Element() el!: HTMLBqNotificationElement;\n\n // State() variables\n // Inlined decorator, alphabetical order\n // =======================================\n\n @State() private hasContent = false;\n @State() private hasFooter = false;\n @State() private notificationPortal = isClient() ? document.querySelector(`.${NOTIFICATION_PORTAL_SELECTOR}`) : null;\n\n // Public Property API\n // ========================\n\n /** If true, the notification will automatically hide after the specified amount of time */\n @Prop({ reflect: true }) autoDismiss: boolean;\n\n /** The corder radius of the notification component */\n @Prop({ reflect: true }) border: TNotificationBorderRadius = 's';\n\n /** If true, the close button at the top right of the notification won't be shown */\n @Prop({ reflect: true }) disableClose: boolean;\n\n /** If true, the notification icon won't be shown */\n @Prop({ reflect: true }) hideIcon: boolean;\n\n /** If true, the notification will be shown */\n @Prop({ reflect: true, mutable: true }) open: boolean;\n\n /** The length of time, in milliseconds, after which the notification will close itself. Only valid if `autoDismiss=\"true\"` */\n @Prop({ reflect: true }) time: number = 3000;\n\n /** Type of Notification */\n @Prop({ reflect: true }) type: TNotificationType = 'info';\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.autoDismiss && this.open)) return;\n this.autoDismissDebounce();\n }\n\n @Watch('type')\n checkPropValues() {\n validatePropValue(NOTIFICATION_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 notification is hidden */\n @Event() bqHide!: EventEmitter;\n\n /** Callback handler to be called when the notification is shown */\n @Event() bqShow!: EventEmitter;\n\n /** Callback handler to be called after the notification has been opened */\n @Event() bqAfterOpen!: EventEmitter;\n\n /** Callback handler to be called after the notification has been closed */\n @Event() bqAfterClose!: EventEmitter;\n\n // Component lifecycle events\n // Ordered by their natural call order\n // =====================================\n\n connectedCallback() {\n if (!isClient()) return;\n\n const { notificationPortal } = this;\n if (!notificationPortal) {\n this.notificationPortal = Object.assign(document.createElement('div'), {\n className: NOTIFICATION_PORTAL_SELECTOR,\n });\n }\n }\n\n componentWillLoad() {\n this.checkPropValues();\n this.handleTimeout();\n }\n\n // Listeners\n // ==============\n\n @Listen('bqAfterClose')\n afterNotificationClose() {\n try {\n const { notificationPortal } = this;\n notificationPortal.removeChild(this.el);\n // Remove the notification portal from the DOM when there are no more notifications\n if (notificationPortal.querySelector(this.el.tagName.toLowerCase()) === null) {\n notificationPortal.remove();\n }\n } catch (error) {\n /**\n * Skip DOMException error since it could be possible that\n * in some situations the notification portal is missing\n */\n if (error instanceof DOMException) return;\n throw error;\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 /** Method to be called to hide the notification component */\n @Method()\n async hide(): Promise<void> {\n await this.handleHide();\n }\n\n /** Method to be called to show the notification component */\n @Method()\n async show(): Promise<void> {\n await this.handleShow();\n }\n\n /** This method can be used to display notifications in a fixed-position element that allows for stacking multiple notifications vertically */\n @Method()\n async toast() {\n if (!isClient()) return;\n\n const { notificationPortal } = this;\n if (notificationPortal?.parentElement === null) {\n document.body.append(notificationPortal);\n }\n\n notificationPortal?.appendChild(this.el);\n requestAnimationFrame(() => {\n this.show();\n });\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.notificationElem);\n this.open = false;\n this.handleTransitionEnd();\n }\n };\n\n private handleShow = async () => {\n const ev = this.bqShow.emit(this.el);\n if (!ev.defaultPrevented) {\n this.open = true;\n await enter(this.notificationElem);\n this.handleTransitionEnd();\n }\n };\n\n private handleTransitionEnd = () => {\n if (this.open) {\n this.bqAfterOpen.emit();\n return;\n }\n\n this.bqAfterClose.emit();\n };\n\n private handleContentSlotChange = () => {\n this.hasContent = hasSlotContent(this.bodyElem);\n };\n\n private handleFooterSlotChange = () => {\n this.hasFooter = hasSlotContent(this.footerElem, 'footer');\n };\n\n private get iconName(): string {\n const typeMap = {\n error: 'x-circle',\n success: 'check-circle',\n warning: 'warning-circle',\n };\n\n return typeMap[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-notification--border-radius': `var(--bq-radius--${this.border})` }),\n };\n\n return (\n <Host\n style={style}\n class={{ 'is-hidden': !this.open }}\n aria-hidden={!this.open ? 'true' : 'false'}\n hidden={!this.open ? 'true' : 'false'}\n role=\"alert\"\n >\n <div\n class=\"bq-notification\"\n data-transition-enter=\"transform transition ease-out duration-300\"\n data-transition-enter-start=\"translate-y-xs opacity-0 sm:translate-y-0 sm:translate-x-s\"\n data-transition-enter-end=\"translate-y-0 opacity-100 sm:translate-x-0\"\n data-transition-leave=\"transform transition ease-in duration-100\"\n data-transition-leave-start=\"translate-y-0 opacity-100 sm:translate-x-0\"\n data-transition-leave-end=\"-translate-y-xs opacity-0 sm:translate-y-0 sm:translate-x-s\"\n ref={(div) => (this.notificationElem = div)}\n part=\"wrapper\"\n >\n {/* CLOSE BUTTON */}\n {!this.disableClose && (\n <bq-button\n class=\"notification--close absolute inset-ie-5 [&::part(label)]:inline-flex\"\n appearance=\"text\"\n size=\"small\"\n onClick={() => this.hide()}\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 '!hidden': this.hideIcon,\n [`color-${this.type}`]: true, // The icon color will be based on the type (info, success, warning, error)\n 'notification--icon me-xs flex text-left align-top': true,\n }}\n part=\"icon-outline\"\n >\n <slot name=\"icon\">\n <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-notification--content-footer-gap]\" part=\"main\">\n <div class=\"flex flex-col gap-[--bq-notification--title-body-gap]\" part=\"content\">\n {/* TITLE */}\n <div class=\"title-font font-semibold leading-regular\" part=\"title\">\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"]}
1
+ {"version":3,"file":"bq-notification.js","sourceRoot":"","sources":["../../../../../../src/components/notification/bq-notification.tsx"],"names":[],"mappings":"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","sourcesContent":["import { Component, Element, Event, EventEmitter, h, Host, Listen, Method, Prop, State, Watch } from '@stencil/core';\n\nimport { NOTIFICATION_TYPE, TNotificationBorderRadius, TNotificationType } from './bq-notification.types';\nimport { debounce, enter, hasSlotContent, isClient, leave, TDebounce, validatePropValue } from '../../shared/utils';\n\nconst NOTIFICATION_PORTAL_SELECTOR = 'bq-notification-portal';\n\n/**\n * The Notification component is a user interface element used to provide information or alerts to users in a non-intrusive manner.\n *\n * @example How to use it\n * ```html\n * <bq-notification border=\"s\" time=\"3000\" type=\"info\">\n * Title\n * <span slot=\"body\">\n * This is some description text text\n * <a class=\"bq-link\" href=\"https://example.com\">Link</a>\n * </span>\n * <div class=\"flex gap-xs\" slot=\"footer\">\n * <bq-button appearance=\"primary\" size=\"small\">Button</bq-button>\n * <bq-button appearance=\"link\" size=\"small\">Button</bq-button>\n * </div>\n * </bq-notification>\n * ```\n *\n * @documentation https://www.beeq.design/3d466e231/p/945cb6-notification\n * @status stable\n *\n * @dependency bq-button\n * @dependency bq-icon\n *\n * @attr {boolean} auto-dismiss - If true, the notification will automatically hide after the specified amount of time\n * @attr {string} border - The corder radius of the notification component\n * @attr {boolean} disable-close - If true, the close button at the top right of the notification won't be shown\n * @attr {boolean} hide-icon - If true, the notification icon won't be shown\n * @attr {boolean} open - If true, the notification will be shown\n * @attr {number} time - The length of time, in milliseconds, after which the notification will close itself. Only valid if `auto-dismiss=\"true\"`\n * @attr {string} type - Type of Notification\n *\n * @event bqAfterClose - Callback handler to be called after the notification has been closed\n * @event bqAfterOpen - Callback handler to be called after the notification has been opened\n * @event bqHide - Callback handler to be called when the notification is hidden\n * @event bqShow - Callback handler to be called when the notification is shown\n *\n * @slot - The notification title content\n * @slot body - The notification description content\n * @slot footer - The notification footer content\n * @slot icon - The icon to be displayed in the notification\n * @slot btn-close - The close button of the notification\n *\n * @part base - The `<div>` container of the predefined bq-icon component.\n * @part body - The container `<div>` that wraps the notification description content\n * @part btn-close - The `bq-button` used to close the notification\n * @part content - The container `<div>` that wraps all the notification content (title, description, footer)\n * @part footer - The container `<div>` that wraps the notification footer content\n * @part icon - The `<bq-icon>` element used to render a predefined icon based on the notification type\n * @part icon-outline - The container `<div>` that wraps the icon element\n * @part main - The container `<div>` that wraps the notification 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 notification title content\n * @part wrapper - The wrapper container `<div>` of the element inside the shadow DOM\n *\n * @cssprop --bq-notification--background - The notification background color\n * @cssprop --bq-notification--box-shadow - The notification box shadow\n * @cssprop --bq-notification--border-color - The notification border color\n * @cssprop --bq-notification--border-radius - The notification border radius\n * @cssprop --bq-notification--border-style - The notification border style\n * @cssprop --bq-notification--border-width - The notification border width\n * @cssprop --bq-notification--content-footer-gap - The notification content and footer gap\n * @cssprop --bq-notification--title-body-gap - The notification title and body gap\n * @cssprop --bq-notification--icon-color-error - The notification icon color for error type\n * @cssprop --bq-notification--icon-color-info - The notification icon color for info type\n * @cssprop --bq-notification--icon-color-neutral - The notification icon color for neutral type\n * @cssprop --bq-notification--icon-color-success - The notification icon color for success type\n * @cssprop --bq-notification--icon-color-warning - The notification icon color for warning type\n * @cssprop --bq-notification--padding - The notification padding\n * @cssprop --bq-notification--min-width - The notification min width\n */\n@Component({\n tag: 'bq-notification',\n styleUrl: './scss/bq-notification.scss',\n shadow: true,\n})\nexport class BqNotification {\n // Own Properties\n // ====================\n\n private autoDismissDebounce: TDebounce<void>;\n private bodyElem: HTMLDivElement;\n private footerElem: HTMLDivElement;\n private notificationElem: HTMLDivElement;\n\n // Reference to host HTML element\n // ===================================\n\n @Element() el!: HTMLBqNotificationElement;\n\n // State() variables\n // Inlined decorator, alphabetical order\n // =======================================\n\n @State() private hasContent = false;\n @State() private hasFooter = false;\n @State() private notificationPortal = isClient() ? document.querySelector(`.${NOTIFICATION_PORTAL_SELECTOR}`) : null;\n\n // Public Property API\n // ========================\n\n /** If true, the notification will automatically hide after the specified amount of time */\n @Prop({ reflect: true }) autoDismiss: boolean;\n\n /** The corder radius of the notification component */\n @Prop({ reflect: true }) border: TNotificationBorderRadius = 's';\n\n /** If true, the close button at the top right of the notification won't be shown */\n @Prop({ reflect: true }) disableClose: boolean;\n\n /** If true, the notification icon won't be shown */\n @Prop({ reflect: true }) hideIcon: boolean;\n\n /** If true, the notification will be shown */\n @Prop({ reflect: true, mutable: true }) open: boolean;\n\n /** The length of time, in milliseconds, after which the notification will close itself. Only valid if `autoDismiss=\"true\"` */\n @Prop({ reflect: true }) time: number = 3000;\n\n /** Type of Notification */\n @Prop({ reflect: true }) type: TNotificationType = 'info';\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.autoDismiss && this.open)) return;\n this.autoDismissDebounce();\n }\n\n @Watch('type')\n checkPropValues() {\n validatePropValue(NOTIFICATION_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 notification is hidden */\n @Event() bqHide!: EventEmitter;\n\n /** Callback handler to be called when the notification is shown */\n @Event() bqShow!: EventEmitter;\n\n /** Callback handler to be called after the notification has been opened */\n @Event() bqAfterOpen!: EventEmitter;\n\n /** Callback handler to be called after the notification has been closed */\n @Event() bqAfterClose!: EventEmitter;\n\n // Component lifecycle events\n // Ordered by their natural call order\n // =====================================\n\n connectedCallback() {\n if (!isClient()) return;\n\n const { notificationPortal } = this;\n if (!notificationPortal) {\n this.notificationPortal = Object.assign(document.createElement('div'), {\n className: NOTIFICATION_PORTAL_SELECTOR,\n });\n }\n }\n\n componentWillLoad() {\n this.checkPropValues();\n this.handleTimeout();\n }\n\n // Listeners\n // ==============\n\n @Listen('bqAfterClose')\n afterNotificationClose() {\n try {\n const { notificationPortal } = this;\n notificationPortal.removeChild(this.el);\n // Remove the notification portal from the DOM when there are no more notifications\n if (notificationPortal.querySelector(this.el.tagName.toLowerCase()) === null) {\n notificationPortal.remove();\n }\n } catch (error) {\n /**\n * Skip DOMException error since it could be possible that\n * in some situations the notification portal is missing\n */\n if (error instanceof DOMException) return;\n throw error;\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 /** Method to be called to hide the notification component */\n @Method()\n async hide(): Promise<void> {\n await this.handleHide();\n }\n\n /** Method to be called to show the notification component */\n @Method()\n async show(): Promise<void> {\n await this.handleShow();\n }\n\n /** This method can be used to display notifications in a fixed-position element that allows for stacking multiple notifications vertically */\n @Method()\n async toast() {\n if (!isClient()) return;\n\n const { notificationPortal } = this;\n if (notificationPortal?.parentElement === null) {\n document.body.append(notificationPortal);\n }\n\n notificationPortal?.appendChild(this.el);\n requestAnimationFrame(() => {\n this.show();\n });\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.notificationElem);\n this.open = false;\n this.handleTransitionEnd();\n }\n };\n\n private handleShow = async () => {\n const ev = this.bqShow.emit(this.el);\n if (!ev.defaultPrevented) {\n this.open = true;\n await enter(this.notificationElem);\n this.handleTransitionEnd();\n }\n };\n\n private handleTransitionEnd = () => {\n if (this.open) {\n this.bqAfterOpen.emit();\n return;\n }\n\n this.bqAfterClose.emit();\n };\n\n private handleContentSlotChange = () => {\n this.hasContent = hasSlotContent(this.bodyElem);\n };\n\n private handleFooterSlotChange = () => {\n this.hasFooter = hasSlotContent(this.footerElem, 'footer');\n };\n\n private get iconName(): string {\n const typeMap = {\n error: 'x-circle',\n success: 'check-circle',\n warning: 'warning-circle',\n };\n\n return typeMap[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-notification--border-radius': `var(--bq-radius--${this.border})` }),\n };\n\n return (\n <Host\n style={style}\n class={{ 'is-hidden': !this.open }}\n aria-hidden={!this.open ? 'true' : 'false'}\n hidden={!this.open ? 'true' : 'false'}\n role=\"alert\"\n >\n <div\n class=\"bq-notification\"\n data-transition-enter=\"transform transition ease-out duration-300\"\n data-transition-enter-start=\"translate-y-xs opacity-0 sm:translate-y-0 sm:translate-x-s\"\n data-transition-enter-end=\"translate-y-0 opacity-100 sm:translate-x-0\"\n data-transition-leave=\"transform transition ease-in duration-100\"\n data-transition-leave-start=\"translate-y-0 opacity-100 sm:translate-x-0\"\n data-transition-leave-end=\"-translate-y-xs opacity-0 sm:translate-y-0 sm:translate-x-s\"\n ref={(div) => (this.notificationElem = div)}\n part=\"wrapper\"\n >\n {/* CLOSE BUTTON */}\n {!this.disableClose && (\n <bq-button\n class=\"notification--close absolute inset-ie-5 [&::part(label)]:inline-flex\"\n appearance=\"text\"\n size=\"small\"\n onClick={() => this.hide()}\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 '!hidden': this.hideIcon,\n [`color-${this.type}`]: true, // The icon color will be based on the type (info, success, warning, error)\n 'notification--icon me-xs flex text-left align-top': true,\n }}\n part=\"icon-outline\"\n >\n <slot name=\"icon\">\n <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-notification--content-footer-gap]\" part=\"main\">\n <div class=\"flex flex-col gap-[--bq-notification--title-body-gap]\" part=\"content\">\n {/* TITLE */}\n <div class=\"title-font font-semibold leading-regular\" part=\"title\">\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"]}
@@ -51,14 +51,6 @@ import { hasSlotContent } from "../../shared/utils";
51
51
  * @cssprop --bq-option--padding-end - option label padding end
52
52
  */
53
53
  export class BqOption {
54
- constructor() {
55
- this.hasPrefix = false;
56
- this.hasSuffix = false;
57
- this.hidden = false;
58
- this.disabled = false;
59
- this.value = undefined;
60
- this.selected = false;
61
- }
62
54
  // Own Properties
63
55
  // ====================
64
56
  prefixElem;
@@ -66,6 +58,21 @@ export class BqOption {
66
58
  // Reference to host HTML element
67
59
  // ===================================
68
60
  el;
61
+ // State() variables
62
+ // Inlined decorator, alphabetical order
63
+ // =======================================
64
+ hasPrefix = false;
65
+ hasSuffix = false;
66
+ // Public Property API
67
+ // ========================
68
+ /** If true, the option is hidden. */
69
+ hidden = false;
70
+ /** If true, the option is disabled. */
71
+ disabled = false;
72
+ /** A string representing the value of the option. Can be used to identify the item */
73
+ value;
74
+ /** If true, the option is selected and active. */
75
+ selected = false;
69
76
  // Prop lifecycle events
70
77
  // =======================
71
78
  // Events section
@@ -1 +1 @@
1
- {"version":3,"file":"bq-option.js","sourceRoot":"","sources":["../../../../../../src/components/option/bq-option.tsx"],"names":[],"mappings":"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","sourcesContent":["import { Component, Element, Event, EventEmitter, h, Host, Listen, Prop, State } from '@stencil/core';\n\nimport { hasSlotContent } from '../../shared/utils';\n\n/**\n * An option refers to a specific choice that appears in a list of selectable items that can be opened or closed by the user.\n * It can be an element of the navigation system that allows users to select different sections or pages within an application or it can be used within a dropdown list.\n *\n * @example How to use it\n * ```html\n * <bq-option value=\"user\">\n * <span>User profile</span>\n * <bq-icon slot=\"suffix\" name=\"user\"></bq-icon>\n * </bq-option>\n * ```\n *\n * @documentation https://storybook.beeq.design/?path=/story/components-option--with-option-group\n * @status stable\n *\n * @attr {boolean} disabled - If true, the option is disabled.\n * @attr {boolean} hidden - If true, the option is hidden.\n * @attr {string} value - A string representing the value of the option. Can be used to identify the item.\n * @attr {boolean} selected - If true, the option is selected and active.\n *\n * @event bqBlur - Handler to be called when item loses focus.\n * @event bqFocus - Handler to be called when item is focused.\n * @event bqClick - Handler to be called when item is clicked.\n * @event bqEnter - Handler to be called on enter key press.\n *\n * @slot prefix - The prefix content to be displayed before the label.\n * @slot - The label content to be displayed.\n *\n * @part base - The component's internal wrapper.\n * @part label - The `span` element in which the label text is displayed.\n * @part prefix - The `span` element in which the prefix is displayed (generally `bq-icon`).\n * @part suffix - The `span` element in which the suffix is displayed (generally `bq-icon`).\n *\n * @cssprop --bq-option--background - background color\n * @cssprop --bq-option--font-size - font size\n * @cssprop --bq-option--border-color - border color\n * @cssprop --bq-option--border-style - border style\n * @cssprop --bq-option--border-width - border width\n * @cssprop --bq-option--border-radius - border radius\n * @cssprop --bq-option--box-shadow - box shadow\n * @cssprop --bq-option--gap-start - gap space between prefix and label\n * @cssprop --bq-option--gap-end - gap space between label and suffix\n * @cssprop --bq-option--paddingY - padding Y axis\n * @cssprop --bq-option--padding-start - option label padding start\n * @cssprop --bq-option--padding-end - option label padding end\n */\n@Component({\n tag: 'bq-option',\n styleUrl: './scss/bq-option.scss',\n shadow: true,\n})\nexport class BqOption {\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!: HTMLBqOptionElement;\n\n // State() variables\n // Inlined decorator, alphabetical order\n // =======================================\n\n @State() hasPrefix: boolean = false;\n @State() hasSuffix: boolean = false;\n\n // Public Property API\n // ========================\n\n /** If true, the option is hidden. */\n @Prop({ reflect: true }) hidden: boolean = false;\n\n /** If true, the option is disabled. */\n @Prop({ reflect: true }) disabled?: boolean = false;\n\n /** A string representing the value of the option. Can be used to identify the item */\n @Prop({ reflect: true }) value?: string;\n\n /** If true, the option is selected and active. */\n @Prop({ reflect: true }) selected: boolean = false;\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<HTMLBqOptionElement>;\n\n /** Handler to be called when item is focused */\n @Event() bqFocus: EventEmitter<HTMLBqOptionElement>;\n\n /** Handler to be called when item is clicked */\n @Event() bqClick: EventEmitter<HTMLBqOptionElement>;\n\n /** Handler to be called on enter key press */\n @Event() bqEnter: EventEmitter<HTMLBqOptionElement>;\n\n // Component lifecycle events\n // Ordered by their natural call order\n // =====================================\n\n // Listeners\n // ==============\n\n @Listen('keydown')\n onKeyDown(event: KeyboardEvent) {\n if (event.key !== 'Enter') return;\n this.bqEnter.emit(this.el);\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 = (event: Event) => {\n if (this.isDisabledOrHidden) {\n event.preventDefault();\n event.stopPropagation();\n return;\n }\n\n this.bqBlur.emit(this.el);\n };\n\n private onFocus = (event: Event) => {\n if (this.isDisabledOrHidden) {\n event.preventDefault();\n event.stopPropagation();\n return;\n }\n\n this.bqFocus.emit(this.el);\n };\n\n private onClick = (event: Event) => {\n if (this.isDisabledOrHidden) {\n event.preventDefault();\n event.stopPropagation();\n return;\n }\n\n this.bqClick.emit(this.el);\n };\n\n private onSlotChange = () => {\n this.hasPrefix = hasSlotContent(this.prefixElem, 'prefix');\n };\n\n private handleSuffixSlotChange = () => {\n this.hasSuffix = hasSlotContent(this.suffixElem, 'suffix');\n };\n\n private get isDisabledOrHidden() {\n return this.disabled || this.hidden;\n }\n\n // render() function\n // Always the last one in the class.\n // ===================================\n\n render() {\n return (\n <Host\n aria-disabled={this.isDisabledOrHidden ? 'true' : 'false'}\n aria-hidden={this.hidden ? 'true' : 'false'}\n aria-selected={this.selected ? 'true' : 'false'}\n role=\"option\"\n >\n <div\n class={{\n 'bq-option': true,\n disabled: this.disabled,\n active: !this.disabled && this.selected,\n }}\n onBlur={this.onBlur}\n onFocus={this.onFocus}\n onClick={this.onClick}\n tabindex={this.isDisabledOrHidden ? '-1' : '0'}\n role=\"button\"\n part=\"base\"\n >\n <span\n class={{\n 'bq-option__prefix me-[--bq-option--gap-start] flex items-center': true,\n '!hidden': !this.hasPrefix,\n }}\n ref={(elem) => (this.prefixElem = elem)}\n part=\"prefix\"\n >\n <slot name=\"prefix\" onSlotchange={this.onSlotChange} />\n </span>\n <span class=\"bq-option__label\" part=\"label\">\n <slot />\n </span>\n <span\n class={{\n 'bq-option__suffix ml-auto ms-[--bq-option--gap-end] flex items-center': true,\n '!hidden': !this.hasSuffix,\n }}\n ref={(elem) => (this.suffixElem = elem)}\n part=\"suffix\"\n >\n <slot name=\"suffix\" onSlotchange={this.handleSuffixSlotChange} />\n </span>\n </div>\n </Host>\n );\n }\n}\n"]}
1
+ {"version":3,"file":"bq-option.js","sourceRoot":"","sources":["../../../../../../src/components/option/bq-option.tsx"],"names":[],"mappings":"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","sourcesContent":["import { Component, Element, Event, EventEmitter, h, Host, Listen, Prop, State } from '@stencil/core';\n\nimport { hasSlotContent } from '../../shared/utils';\n\n/**\n * An option refers to a specific choice that appears in a list of selectable items that can be opened or closed by the user.\n * It can be an element of the navigation system that allows users to select different sections or pages within an application or it can be used within a dropdown list.\n *\n * @example How to use it\n * ```html\n * <bq-option value=\"user\">\n * <span>User profile</span>\n * <bq-icon slot=\"suffix\" name=\"user\"></bq-icon>\n * </bq-option>\n * ```\n *\n * @documentation https://storybook.beeq.design/?path=/story/components-option--with-option-group\n * @status stable\n *\n * @attr {boolean} disabled - If true, the option is disabled.\n * @attr {boolean} hidden - If true, the option is hidden.\n * @attr {string} value - A string representing the value of the option. Can be used to identify the item.\n * @attr {boolean} selected - If true, the option is selected and active.\n *\n * @event bqBlur - Handler to be called when item loses focus.\n * @event bqFocus - Handler to be called when item is focused.\n * @event bqClick - Handler to be called when item is clicked.\n * @event bqEnter - Handler to be called on enter key press.\n *\n * @slot prefix - The prefix content to be displayed before the label.\n * @slot - The label content to be displayed.\n *\n * @part base - The component's internal wrapper.\n * @part label - The `span` element in which the label text is displayed.\n * @part prefix - The `span` element in which the prefix is displayed (generally `bq-icon`).\n * @part suffix - The `span` element in which the suffix is displayed (generally `bq-icon`).\n *\n * @cssprop --bq-option--background - background color\n * @cssprop --bq-option--font-size - font size\n * @cssprop --bq-option--border-color - border color\n * @cssprop --bq-option--border-style - border style\n * @cssprop --bq-option--border-width - border width\n * @cssprop --bq-option--border-radius - border radius\n * @cssprop --bq-option--box-shadow - box shadow\n * @cssprop --bq-option--gap-start - gap space between prefix and label\n * @cssprop --bq-option--gap-end - gap space between label and suffix\n * @cssprop --bq-option--paddingY - padding Y axis\n * @cssprop --bq-option--padding-start - option label padding start\n * @cssprop --bq-option--padding-end - option label padding end\n */\n@Component({\n tag: 'bq-option',\n styleUrl: './scss/bq-option.scss',\n shadow: true,\n})\nexport class BqOption {\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!: HTMLBqOptionElement;\n\n // State() variables\n // Inlined decorator, alphabetical order\n // =======================================\n\n @State() hasPrefix: boolean = false;\n @State() hasSuffix: boolean = false;\n\n // Public Property API\n // ========================\n\n /** If true, the option is hidden. */\n @Prop({ reflect: true }) hidden: boolean = false;\n\n /** If true, the option is disabled. */\n @Prop({ reflect: true }) disabled?: boolean = false;\n\n /** A string representing the value of the option. Can be used to identify the item */\n @Prop({ reflect: true }) value?: string;\n\n /** If true, the option is selected and active. */\n @Prop({ reflect: true }) selected: boolean = false;\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<HTMLBqOptionElement>;\n\n /** Handler to be called when item is focused */\n @Event() bqFocus: EventEmitter<HTMLBqOptionElement>;\n\n /** Handler to be called when item is clicked */\n @Event() bqClick: EventEmitter<HTMLBqOptionElement>;\n\n /** Handler to be called on enter key press */\n @Event() bqEnter: EventEmitter<HTMLBqOptionElement>;\n\n // Component lifecycle events\n // Ordered by their natural call order\n // =====================================\n\n // Listeners\n // ==============\n\n @Listen('keydown')\n onKeyDown(event: KeyboardEvent) {\n if (event.key !== 'Enter') return;\n this.bqEnter.emit(this.el);\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 = (event: Event) => {\n if (this.isDisabledOrHidden) {\n event.preventDefault();\n event.stopPropagation();\n return;\n }\n\n this.bqBlur.emit(this.el);\n };\n\n private onFocus = (event: Event) => {\n if (this.isDisabledOrHidden) {\n event.preventDefault();\n event.stopPropagation();\n return;\n }\n\n this.bqFocus.emit(this.el);\n };\n\n private onClick = (event: Event) => {\n if (this.isDisabledOrHidden) {\n event.preventDefault();\n event.stopPropagation();\n return;\n }\n\n this.bqClick.emit(this.el);\n };\n\n private onSlotChange = () => {\n this.hasPrefix = hasSlotContent(this.prefixElem, 'prefix');\n };\n\n private handleSuffixSlotChange = () => {\n this.hasSuffix = hasSlotContent(this.suffixElem, 'suffix');\n };\n\n private get isDisabledOrHidden() {\n return this.disabled || this.hidden;\n }\n\n // render() function\n // Always the last one in the class.\n // ===================================\n\n render() {\n return (\n <Host\n aria-disabled={this.isDisabledOrHidden ? 'true' : 'false'}\n aria-hidden={this.hidden ? 'true' : 'false'}\n aria-selected={this.selected ? 'true' : 'false'}\n role=\"option\"\n >\n <div\n class={{\n 'bq-option': true,\n disabled: this.disabled,\n active: !this.disabled && this.selected,\n }}\n onBlur={this.onBlur}\n onFocus={this.onFocus}\n onClick={this.onClick}\n tabindex={this.isDisabledOrHidden ? '-1' : '0'}\n role=\"button\"\n part=\"base\"\n >\n <span\n class={{\n 'bq-option__prefix me-[--bq-option--gap-start] flex items-center': true,\n '!hidden': !this.hasPrefix,\n }}\n ref={(elem) => (this.prefixElem = elem)}\n part=\"prefix\"\n >\n <slot name=\"prefix\" onSlotchange={this.onSlotChange} />\n </span>\n <span class=\"bq-option__label\" part=\"label\">\n <slot />\n </span>\n <span\n class={{\n 'bq-option__suffix ml-auto ms-[--bq-option--gap-end] flex items-center': true,\n '!hidden': !this.hasSuffix,\n }}\n ref={(elem) => (this.suffixElem = elem)}\n part=\"suffix\"\n >\n <slot name=\"suffix\" onSlotchange={this.handleSuffixSlotChange} />\n </span>\n </div>\n </Host>\n );\n }\n}\n"]}
@@ -29,14 +29,20 @@ import { isEventTargetChildOfElement, isHTMLElement } from "../../shared/utils";
29
29
  * @cssprop --bq-option-group--gapY-list - Option group gap between items Y axis
30
30
  */
31
31
  export class BqOptionList {
32
- constructor() {
33
- this.ariaLabel = 'Options';
34
- }
35
32
  // Own Properties
36
33
  // ====================
37
34
  // Reference to host HTML element
38
35
  // ===================================
39
36
  el;
37
+ // State() variables
38
+ // Inlined decorator, alphabetical order
39
+ // =======================================
40
+ // Public Property API
41
+ // ========================
42
+ // Prop lifecycle events
43
+ // =======================
44
+ /** Aria label for the list. */
45
+ ariaLabel = 'Options';
40
46
  // Events section
41
47
  // Requires JSDocs for public API documentation
42
48
  // ==============================================
@@ -1 +1 @@
1
- {"version":3,"file":"bq-option-list.js","sourceRoot":"","sources":["../../../../../../src/components/option-list/bq-option-list.tsx"],"names":[],"mappings":"AAAA,OAAO,EAAE,SAAS,EAAE,OAAO,EAAE,KAAK,EAAgB,CAAC,EAAE,MAAM,EAAE,IAAI,EAAE,MAAM,eAAe,CAAC;AAEzF,OAAO,EAAE,2BAA2B,EAAE,aAAa,EAAE,MAAM,oBAAoB,CAAC;AAEhF;;;;;;;;;;;;;;;;;;;;;;;GAuBG;AAMH,MAAM,OAAO,YAAY;;yBAoBsB,SAAS;;IAnBtD,iBAAiB;IACjB,uBAAuB;IAEvB,iCAAiC;IACjC,sCAAsC;IAE3B,EAAE,CAA2B;IAexC,iBAAiB;IACjB,+CAA+C;IAC/C,iDAAiD;IAEjD,gFAAgF;IACvE,QAAQ,CAA6D;IAE9E,6BAA6B;IAC7B,sCAAsC;IACtC,wCAAwC;IAExC,gBAAgB;QACd,IAAI,CAAC,EAAE,CAAC,YAAY,CAAC,MAAM,EAAE,SAAS,CAAC,CAAC;IAC1C,CAAC;IAED,YAAY;IACZ,iBAAiB;IAIjB,UAAU,CAAC,KAA+B;QACxC,MAAM,EAAE,MAAM,EAAE,IAAI,EAAE,GAAG,KAAK,CAAC;QAC/B,IAAI,CAAC,aAAa,CAAC,IAAI,EAAE,WAAW,CAAC,IAAI,CAAC,2BAA2B,CAAC,KAAK,EAAE,IAAI,CAAC,EAAE,CAAC;YAAE,OAAO;QAE9F,IAAI,CAAC,QAAQ,CAAC,IAAI,CAAC,EAAE,IAAI,EAAE,KAAK,EAAE,IAAI,CAAC,KAAK,EAAE,CAAC,CAAC;IAClD,CAAC;IAED,qBAAqB;IACrB,iDAAiD;IACjD,wBAAwB;IACxB,gCAAgC;IAChC,gDAAgD;IAChD,kDAAkD;IAElD,gBAAgB;IAChB,2BAA2B;IAC3B,wDAAwD;IACxD,0DAA0D;IAE1D,oBAAoB;IACpB,oCAAoC;IACpC,sCAAsC;IAEtC,MAAM;QACJ,OAAO,CACL,4DAAK,KAAK,EAAC,oEAAoE,EAAC,IAAI,EAAC,MAAM;YACzF,8DAAQ,CACJ,CACP,CAAC;IACJ,CAAC;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;CACF","sourcesContent":["import { Component, Element, Event, EventEmitter, h, Listen, Prop } from '@stencil/core';\n\nimport { isEventTargetChildOfElement, isHTMLElement } from '../../shared/utils';\n\n/**\n * The option list component is a container for multiple option elements.\n * It allows to manage the appearance and size of all options at once.\n *\n * @example How to use it\n * ```html\n * <bq-option-list>\n * <bq-option value=\"football\">Football</bq-option>\n * <bq-option value=\"basketball\">Basketball</bq-option>\n * <bq-option value=\"tennis\">Tennis</bq-option>\n * </bq-option-list>\n * ```\n *\n * @documentation https://storybook.beeq.design/?path=/story/components-option--default\n * @status stable\n *\n * @attr {string} aria-label - Aria label for the list.\n *\n * @slot - The option items\n *\n * @part base - The component's internal wrapper.\n *\n * @cssprop --bq-option-group--gapY-list - Option group gap between items Y axis\n */\n@Component({\n tag: 'bq-option-list',\n styleUrl: './scss/bq-option-list.scss',\n shadow: true,\n})\nexport class BqOptionList {\n // Own Properties\n // ====================\n\n // Reference to host HTML element\n // ===================================\n\n @Element() el!: HTMLBqOptionListElement;\n\n // State() variables\n // Inlined decorator, alphabetical order\n // =======================================\n\n // Public Property API\n // ========================\n\n // Prop lifecycle events\n // =======================\n\n /** Aria label for the list. */\n @Prop({ reflect: true }) ariaLabel: string = 'Options';\n\n // Events section\n // Requires JSDocs for public API documentation\n // ==============================================\n\n /** Handler to be called when `bq-option` is selected (on click/enter press). */\n @Event() bqSelect: EventEmitter<{ value: string; item: HTMLBqOptionElement }>;\n\n // Component lifecycle events\n // Ordered by their natural call order\n // =====================================\n\n componentDidLoad() {\n this.el.setAttribute('role', 'listbox');\n }\n\n // Listeners\n // ==============\n\n @Listen('bqClick', { passive: true })\n @Listen('bqEnter', { passive: true })\n onBqSelect(event: CustomEvent<HTMLElement>) {\n const { target: item } = event;\n if (!isHTMLElement(item, 'bq-option') || !isEventTargetChildOfElement(event, this.el)) return;\n\n this.bqSelect.emit({ item, value: item.value });\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 // render() function\n // Always the last one in the class.\n // ===================================\n\n render() {\n return (\n <div class=\"bq-option__list flex flex-col gap-y-[--bq-option-group--gapY-list]\" part=\"base\">\n <slot />\n </div>\n );\n }\n}\n"]}
1
+ {"version":3,"file":"bq-option-list.js","sourceRoot":"","sources":["../../../../../../src/components/option-list/bq-option-list.tsx"],"names":[],"mappings":"AAAA,OAAO,EAAE,SAAS,EAAE,OAAO,EAAE,KAAK,EAAgB,CAAC,EAAE,MAAM,EAAE,IAAI,EAAE,MAAM,eAAe,CAAC;AAEzF,OAAO,EAAE,2BAA2B,EAAE,aAAa,EAAE,MAAM,oBAAoB,CAAC;AAEhF;;;;;;;;;;;;;;;;;;;;;;;GAuBG;AAMH,MAAM,OAAO,YAAY;IACvB,iBAAiB;IACjB,uBAAuB;IAEvB,iCAAiC;IACjC,sCAAsC;IAE3B,EAAE,CAA2B;IAExC,oBAAoB;IACpB,wCAAwC;IACxC,0CAA0C;IAE1C,sBAAsB;IACtB,2BAA2B;IAE3B,wBAAwB;IACxB,0BAA0B;IAE1B,+BAA+B;IACN,SAAS,GAAW,SAAS,CAAC;IAEvD,iBAAiB;IACjB,+CAA+C;IAC/C,iDAAiD;IAEjD,gFAAgF;IACvE,QAAQ,CAA6D;IAE9E,6BAA6B;IAC7B,sCAAsC;IACtC,wCAAwC;IAExC,gBAAgB;QACd,IAAI,CAAC,EAAE,CAAC,YAAY,CAAC,MAAM,EAAE,SAAS,CAAC,CAAC;IAC1C,CAAC;IAED,YAAY;IACZ,iBAAiB;IAIjB,UAAU,CAAC,KAA+B;QACxC,MAAM,EAAE,MAAM,EAAE,IAAI,EAAE,GAAG,KAAK,CAAC;QAC/B,IAAI,CAAC,aAAa,CAAC,IAAI,EAAE,WAAW,CAAC,IAAI,CAAC,2BAA2B,CAAC,KAAK,EAAE,IAAI,CAAC,EAAE,CAAC;YAAE,OAAO;QAE9F,IAAI,CAAC,QAAQ,CAAC,IAAI,CAAC,EAAE,IAAI,EAAE,KAAK,EAAE,IAAI,CAAC,KAAK,EAAE,CAAC,CAAC;IAClD,CAAC;IAED,qBAAqB;IACrB,iDAAiD;IACjD,wBAAwB;IACxB,gCAAgC;IAChC,gDAAgD;IAChD,kDAAkD;IAElD,gBAAgB;IAChB,2BAA2B;IAC3B,wDAAwD;IACxD,0DAA0D;IAE1D,oBAAoB;IACpB,oCAAoC;IACpC,sCAAsC;IAEtC,MAAM;QACJ,OAAO,CACL,4DAAK,KAAK,EAAC,oEAAoE,EAAC,IAAI,EAAC,MAAM;YACzF,8DAAQ,CACJ,CACP,CAAC;IACJ,CAAC;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;CACF","sourcesContent":["import { Component, Element, Event, EventEmitter, h, Listen, Prop } from '@stencil/core';\n\nimport { isEventTargetChildOfElement, isHTMLElement } from '../../shared/utils';\n\n/**\n * The option list component is a container for multiple option elements.\n * It allows to manage the appearance and size of all options at once.\n *\n * @example How to use it\n * ```html\n * <bq-option-list>\n * <bq-option value=\"football\">Football</bq-option>\n * <bq-option value=\"basketball\">Basketball</bq-option>\n * <bq-option value=\"tennis\">Tennis</bq-option>\n * </bq-option-list>\n * ```\n *\n * @documentation https://storybook.beeq.design/?path=/story/components-option--default\n * @status stable\n *\n * @attr {string} aria-label - Aria label for the list.\n *\n * @slot - The option items\n *\n * @part base - The component's internal wrapper.\n *\n * @cssprop --bq-option-group--gapY-list - Option group gap between items Y axis\n */\n@Component({\n tag: 'bq-option-list',\n styleUrl: './scss/bq-option-list.scss',\n shadow: true,\n})\nexport class BqOptionList {\n // Own Properties\n // ====================\n\n // Reference to host HTML element\n // ===================================\n\n @Element() el!: HTMLBqOptionListElement;\n\n // State() variables\n // Inlined decorator, alphabetical order\n // =======================================\n\n // Public Property API\n // ========================\n\n // Prop lifecycle events\n // =======================\n\n /** Aria label for the list. */\n @Prop({ reflect: true }) ariaLabel: string = 'Options';\n\n // Events section\n // Requires JSDocs for public API documentation\n // ==============================================\n\n /** Handler to be called when `bq-option` is selected (on click/enter press). */\n @Event() bqSelect: EventEmitter<{ value: string; item: HTMLBqOptionElement }>;\n\n // Component lifecycle events\n // Ordered by their natural call order\n // =====================================\n\n componentDidLoad() {\n this.el.setAttribute('role', 'listbox');\n }\n\n // Listeners\n // ==============\n\n @Listen('bqClick', { passive: true })\n @Listen('bqEnter', { passive: true })\n onBqSelect(event: CustomEvent<HTMLElement>) {\n const { target: item } = event;\n if (!isHTMLElement(item, 'bq-option') || !isEventTargetChildOfElement(event, this.el)) return;\n\n this.bqSelect.emit({ item, value: item.value });\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 // render() function\n // Always the last one in the class.\n // ===================================\n\n render() {\n return (\n <div class=\"bq-option__list flex flex-col gap-y-[--bq-option-group--gapY-list]\" part=\"base\">\n <slot />\n </div>\n );\n }\n}\n"]}
@@ -51,11 +51,6 @@ import { hasSlotContent } from "../../shared/utils";
51
51
  * @cssprop --title-textSize - Page title text size for title
52
52
  */
53
53
  export class BqPageTitle {
54
- constructor() {
55
- this.haveBackNavigation = false;
56
- this.hasSuffix = false;
57
- this.hasSubTitle = false;
58
- }
59
54
  // Own Properties
60
55
  // ====================
61
56
  backNavigationElem;
@@ -64,6 +59,12 @@ export class BqPageTitle {
64
59
  // Reference to host HTML element
65
60
  // ===================================
66
61
  el;
62
+ // State() variables
63
+ // Inlined decorator, alphabetical order
64
+ // =======================================
65
+ haveBackNavigation = false;
66
+ hasSuffix = false;
67
+ hasSubTitle = false;
67
68
  // Public Property API
68
69
  // ========================
69
70
  // Prop lifecycle events
@@ -1 +1 @@
1
- {"version":3,"file":"bq-page-title.js","sourceRoot":"","sources":["../../../../../../src/components/page-title/bq-page-title.tsx"],"names":[],"mappings":"AAAA,OAAO,EAAE,SAAS,EAAE,OAAO,EAAE,CAAC,EAAE,KAAK,EAAE,MAAM,eAAe,CAAC;AAE7D,OAAO,EAAE,cAAc,EAAE,MAAM,oBAAoB,CAAC;AAEpD;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;GA6CG;AAMH,MAAM,OAAO,WAAW;;kCAiBgB,KAAK;yBACd,KAAK;2BACH,KAAK;;IAlBpC,iBAAiB;IACjB,uBAAuB;IAEf,kBAAkB,CAAc;IAChC,UAAU,CAAc;IACxB,YAAY,CAAc;IAElC,iCAAiC;IACjC,sCAAsC;IAE3B,EAAE,CAA0B;IAUvC,sBAAsB;IACtB,2BAA2B;IAE3B,wBAAwB;IACxB,0BAA0B;IAE1B,iBAAiB;IACjB,+CAA+C;IAC/C,iDAAiD;IAEjD,6BAA6B;IAC7B,sCAAsC;IACtC,wCAAwC;IAExC,YAAY;IACZ,iBAAiB;IAEjB,qBAAqB;IACrB,iDAAiD;IACjD,wBAAwB;IACxB,gCAAgC;IAChC,gDAAgD;IAChD,kDAAkD;IAElD,gBAAgB;IAChB,2BAA2B;IAC3B,wDAAwD;IACxD,0DAA0D;IAElD,gBAAgB,GAAG,GAAG,EAAE;QAC9B,IAAI,CAAC,kBAAkB,GAAG,cAAc,CAAC,IAAI,CAAC,kBAAkB,EAAE,MAAM,CAAC,CAAC;QAC1E,IAAI,CAAC,SAAS,GAAG,cAAc,CAAC,IAAI,CAAC,UAAU,EAAE,QAAQ,CAAC,CAAC;QAC3D,IAAI,CAAC,WAAW,GAAG,cAAc,CAAC,IAAI,CAAC,YAAY,EAAE,WAAW,CAAC,CAAC;IACpE,CAAC,CAAC;IAEF,oBAAoB;IACpB,oCAAoC;IACpC,sCAAsC;IAEtC,MAAM;QACJ,OAAO,CACL,4DAAK,KAAK,EAAC,2EAA2E,EAAC,IAAI,EAAC,MAAM;YAEhG,4DACE,KAAK,EAAE,EAAE,IAAI,EAAE,IAAI,EAAE,SAAS,EAAE,CAAC,IAAI,CAAC,kBAAkB,EAAE,EAC1D,GAAG,EAAE,CAAC,OAAO,EAAE,EAAE,CAAC,CAAC,IAAI,CAAC,kBAAkB,GAAG,OAAO,CAAC,EACrD,IAAI,EAAC,MAAM;gBAEX,6DAAM,IAAI,EAAC,MAAM,EAAC,YAAY,EAAE,IAAI,CAAC,gBAAgB,GAAI,CACrD;YACN,4DAAK,KAAK,EAAC,gCAAgC,EAAC,IAAI,EAAC,SAAS;gBACxD,4DAAK,KAAK,EAAC,0BAA0B,EAAC,IAAI,EAAC,cAAc;oBAEvD,2DACE,KAAK,EAAC,iIAAiI,EACvI,IAAI,EAAC,OAAO;wBAEZ,8DAAQ,CACL;oBAEL,4DACE,KAAK,EAAE,EAAE,uCAAuC,EAAE,IAAI,EAAE,SAAS,EAAE,CAAC,IAAI,CAAC,SAAS,EAAE,EACpF,GAAG,EAAE,CAAC,OAAO,EAAE,EAAE,CAAC,CAAC,IAAI,CAAC,UAAU,GAAG,OAAO,CAAC,EAC7C,IAAI,EAAC,QAAQ;wBAEb,6DAAM,IAAI,EAAC,QAAQ,EAAC,YAAY,EAAE,IAAI,CAAC,gBAAgB,GAAI,CACvD,CACF;gBAEN,4DACE,KAAK,EAAE;wBACL,0IAA0I,EACxI,IAAI;wBACN,MAAM,EAAE,CAAC,IAAI,CAAC,WAAW;qBAC1B,EACD,GAAG,EAAE,CAAC,OAAO,EAAE,EAAE,CAAC,CAAC,IAAI,CAAC,YAAY,GAAG,OAAO,CAAC,EAC/C,IAAI,EAAC,WAAW;oBAEhB,6DAAM,IAAI,EAAC,WAAW,EAAC,YAAY,EAAE,IAAI,CAAC,gBAAgB,GAAI,CAC1D,CACF,CACF,CACP,CAAC;IACJ,CAAC;;;;;;;;;;;;;;;CACF","sourcesContent":["import { Component, Element, h, State } from '@stencil/core';\n\nimport { hasSlotContent } from '../../shared/utils';\n\n/**\n * The Page Title component is a versatile and essential element used to display the main title of a page or section within an application.\n *\n * @example How to use it\n * ```html\n * <bq-page-title>\n * <bq-button appearance=\"link\" slot=\"back\">\n * <bq-icon\n * color=\"text--primary\"\n * name=\"arrow-left\"\n * weight=\"bold\"\n * role=\"img\"\n * title=\"Navigate back to the previous page\"\n * ></bq-icon>\n * </bq-button>\n * Title\n * <div slot=\"sub-title\">Sub-title</div>\n * </bq-page-title>\n * ```\n *\n * @documentation https://storybook.beeq.design/?path=/docs/components-page-title--overview\n * @status stable\n *\n * @slot back - The back navigation button.\n * @slot - The main title content.\n * @slot sub-title - The sub-title content.\n * @slot suffix - The suffix content.\n *\n * @part base - The inner container `<div>`of element that contains the base page title component.\n * @part content - Defines the main container of the page title component, which includes the title and subtitle elements.\n * @part title-suffix - Defines the container that holds the title and any suffix content.\n * @part back - The container `<div>` page title element that acts as back slot container.\n * @part title - The `<h1>` element serves as a container for the page title content, to improve accessibility.\n * @part suffix - The `<div>` page title element that acts as suffix slot container.\n * @part sub-title - The `<div>` page title element that acts as sub-title slot container.\n *\n * @cssprop --paddingY - Padding top and bottom of the page title wrapper\n * @cssprop --subtitle-borderBlockEnd - Page title border end color\n * @cssprop --subtitle-fontWeight - Page title font weight for subtitle\n * @cssprop --subtitle-textColor - Page title color for sub-title\n * @cssprop --subtitle-textSize - Page title text size for subtitle\n * @cssprop --title-fontWeight - Page title font weight for title\n * @cssprop --title-lineHeight - Page title text line height\n * @cssprop --title-textColor - Page title color for title\n * @cssprop --title-textSize - Page title text size for title\n */\n@Component({\n tag: 'bq-page-title',\n styleUrl: './scss/bq-page-title.scss',\n shadow: true,\n})\nexport class BqPageTitle {\n // Own Properties\n // ====================\n\n private backNavigationElem: HTMLElement;\n private suffixElem: HTMLElement;\n private subTitleElem: HTMLElement;\n\n // Reference to host HTML element\n // ===================================\n\n @Element() el!: HTMLBqPageTitleElement;\n\n // State() variables\n // Inlined decorator, alphabetical order\n // =======================================\n\n @State() private haveBackNavigation = false;\n @State() private hasSuffix = false;\n @State() private hasSubTitle = false;\n\n // Public Property API\n // ========================\n\n // Prop lifecycle events\n // =======================\n\n // Events section\n // Requires JSDocs for public API documentation\n // ==============================================\n\n // Component lifecycle events\n // Ordered by their natural call order\n // =====================================\n\n // Listeners\n // ==============\n\n // Public methods API\n // These methods are exposed on the host element.\n // Always use two lines.\n // Public Methods must be async.\n // Requires JSDocs for public API documentation.\n // ===============================================\n\n // Local methods\n // Internal business logic.\n // These methods cannot be called from the host element.\n // =======================================================\n\n private handleSlotChange = () => {\n this.haveBackNavigation = hasSlotContent(this.backNavigationElem, 'back');\n this.hasSuffix = hasSlotContent(this.suffixElem, 'suffix');\n this.hasSubTitle = hasSlotContent(this.subTitleElem, 'sub-title');\n };\n\n // render() function\n // Always the last one in the class.\n // ===================================\n\n render() {\n return (\n <div class=\"flex gap-xs p-b-[--paddingY] [border-block-end:--subtitle-borderBlockEnd]\" part=\"base\">\n {/* Back navigation button */}\n <div\n class={{ flex: true, '!hidden': !this.haveBackNavigation }}\n ref={(divElem) => (this.backNavigationElem = divElem)}\n part=\"back\"\n >\n <slot name=\"back\" onSlotchange={this.handleSlotChange} />\n </div>\n <div class=\"flex flex-grow flex-col gap-xs\" part=\"content\">\n <div class=\"flex items-center gap-xs\" part=\"title-suffix\">\n {/* Title */}\n <h1\n class=\"title-font text-[length:--title-textSize] font-[--title-fontWeight] leading-[--title-lineHeight] text-[color:--title-textColor]\"\n part=\"title\"\n >\n <slot />\n </h1>\n {/* Suffix */}\n <div\n class={{ 'flex flex-grow gap-xs p-b-xs2 p-i-xs2': true, '!hidden': !this.hasSuffix }}\n ref={(divElem) => (this.suffixElem = divElem)}\n part=\"suffix\"\n >\n <slot name=\"suffix\" onSlotchange={this.handleSlotChange} />\n </div>\n </div>\n {/* Sub-title */}\n <div\n class={{\n 'title-font text-[length:--subtitle-textSize] font-[--subtitle-fontWeight] leading-[--title-lineHeight] text-[color:--subtitle-textColor]':\n true,\n hidden: !this.hasSubTitle,\n }}\n ref={(divElem) => (this.subTitleElem = divElem)}\n part=\"sub-title\"\n >\n <slot name=\"sub-title\" onSlotchange={this.handleSlotChange} />\n </div>\n </div>\n </div>\n );\n }\n}\n"]}
1
+ {"version":3,"file":"bq-page-title.js","sourceRoot":"","sources":["../../../../../../src/components/page-title/bq-page-title.tsx"],"names":[],"mappings":"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","sourcesContent":["import { Component, Element, h, State } from '@stencil/core';\n\nimport { hasSlotContent } from '../../shared/utils';\n\n/**\n * The Page Title component is a versatile and essential element used to display the main title of a page or section within an application.\n *\n * @example How to use it\n * ```html\n * <bq-page-title>\n * <bq-button appearance=\"link\" slot=\"back\">\n * <bq-icon\n * color=\"text--primary\"\n * name=\"arrow-left\"\n * weight=\"bold\"\n * role=\"img\"\n * title=\"Navigate back to the previous page\"\n * ></bq-icon>\n * </bq-button>\n * Title\n * <div slot=\"sub-title\">Sub-title</div>\n * </bq-page-title>\n * ```\n *\n * @documentation https://storybook.beeq.design/?path=/docs/components-page-title--overview\n * @status stable\n *\n * @slot back - The back navigation button.\n * @slot - The main title content.\n * @slot sub-title - The sub-title content.\n * @slot suffix - The suffix content.\n *\n * @part base - The inner container `<div>`of element that contains the base page title component.\n * @part content - Defines the main container of the page title component, which includes the title and subtitle elements.\n * @part title-suffix - Defines the container that holds the title and any suffix content.\n * @part back - The container `<div>` page title element that acts as back slot container.\n * @part title - The `<h1>` element serves as a container for the page title content, to improve accessibility.\n * @part suffix - The `<div>` page title element that acts as suffix slot container.\n * @part sub-title - The `<div>` page title element that acts as sub-title slot container.\n *\n * @cssprop --paddingY - Padding top and bottom of the page title wrapper\n * @cssprop --subtitle-borderBlockEnd - Page title border end color\n * @cssprop --subtitle-fontWeight - Page title font weight for subtitle\n * @cssprop --subtitle-textColor - Page title color for sub-title\n * @cssprop --subtitle-textSize - Page title text size for subtitle\n * @cssprop --title-fontWeight - Page title font weight for title\n * @cssprop --title-lineHeight - Page title text line height\n * @cssprop --title-textColor - Page title color for title\n * @cssprop --title-textSize - Page title text size for title\n */\n@Component({\n tag: 'bq-page-title',\n styleUrl: './scss/bq-page-title.scss',\n shadow: true,\n})\nexport class BqPageTitle {\n // Own Properties\n // ====================\n\n private backNavigationElem: HTMLElement;\n private suffixElem: HTMLElement;\n private subTitleElem: HTMLElement;\n\n // Reference to host HTML element\n // ===================================\n\n @Element() el!: HTMLBqPageTitleElement;\n\n // State() variables\n // Inlined decorator, alphabetical order\n // =======================================\n\n @State() private haveBackNavigation = false;\n @State() private hasSuffix = false;\n @State() private hasSubTitle = false;\n\n // Public Property API\n // ========================\n\n // Prop lifecycle events\n // =======================\n\n // Events section\n // Requires JSDocs for public API documentation\n // ==============================================\n\n // Component lifecycle events\n // Ordered by their natural call order\n // =====================================\n\n // Listeners\n // ==============\n\n // Public methods API\n // These methods are exposed on the host element.\n // Always use two lines.\n // Public Methods must be async.\n // Requires JSDocs for public API documentation.\n // ===============================================\n\n // Local methods\n // Internal business logic.\n // These methods cannot be called from the host element.\n // =======================================================\n\n private handleSlotChange = () => {\n this.haveBackNavigation = hasSlotContent(this.backNavigationElem, 'back');\n this.hasSuffix = hasSlotContent(this.suffixElem, 'suffix');\n this.hasSubTitle = hasSlotContent(this.subTitleElem, 'sub-title');\n };\n\n // render() function\n // Always the last one in the class.\n // ===================================\n\n render() {\n return (\n <div class=\"flex gap-xs p-b-[--paddingY] [border-block-end:--subtitle-borderBlockEnd]\" part=\"base\">\n {/* Back navigation button */}\n <div\n class={{ flex: true, '!hidden': !this.haveBackNavigation }}\n ref={(divElem) => (this.backNavigationElem = divElem)}\n part=\"back\"\n >\n <slot name=\"back\" onSlotchange={this.handleSlotChange} />\n </div>\n <div class=\"flex flex-grow flex-col gap-xs\" part=\"content\">\n <div class=\"flex items-center gap-xs\" part=\"title-suffix\">\n {/* Title */}\n <h1\n class=\"title-font text-[length:--title-textSize] font-[--title-fontWeight] leading-[--title-lineHeight] text-[color:--title-textColor]\"\n part=\"title\"\n >\n <slot />\n </h1>\n {/* Suffix */}\n <div\n class={{ 'flex flex-grow gap-xs p-b-xs2 p-i-xs2': true, '!hidden': !this.hasSuffix }}\n ref={(divElem) => (this.suffixElem = divElem)}\n part=\"suffix\"\n >\n <slot name=\"suffix\" onSlotchange={this.handleSlotChange} />\n </div>\n </div>\n {/* Sub-title */}\n <div\n class={{\n 'title-font text-[length:--subtitle-textSize] font-[--subtitle-fontWeight] leading-[--title-lineHeight] text-[color:--subtitle-textColor]':\n true,\n hidden: !this.hasSubTitle,\n }}\n ref={(divElem) => (this.subTitleElem = divElem)}\n part=\"sub-title\"\n >\n <slot name=\"sub-title\" onSlotchange={this.handleSlotChange} />\n </div>\n </div>\n </div>\n );\n }\n}\n"]}
@@ -39,14 +39,6 @@ import { FloatingUI } from "../../services/libraries";
39
39
  * @prop --bq-panel-z-index - Panel z-index applied when opened
40
40
  */
41
41
  export class BqPanel {
42
- constructor() {
43
- this.distance = 4;
44
- this.placement = 'bottom-start';
45
- this.open = false;
46
- this.sameWidth = false;
47
- this.skidding = 0;
48
- this.strategy = 'fixed';
49
- }
50
42
  // Own Properties
51
43
  // ====================
52
44
  panel;
@@ -55,6 +47,23 @@ export class BqPanel {
55
47
  // Reference to host HTML element
56
48
  // ===================================
57
49
  el;
50
+ // State() variables
51
+ // Inlined decorator, alphabetical order
52
+ // =======================================
53
+ // Public Property API
54
+ // ========================
55
+ /** Represents the distance (gutter or margin) between the panel and the trigger element. */
56
+ distance = 4;
57
+ /** Position of the panel */
58
+ placement = 'bottom-start';
59
+ /** If true, the panel will be visible. */
60
+ open = false;
61
+ /** Whether the panel should have the same width as the trigger element */
62
+ sameWidth = false;
63
+ /** Represents the skidding between the panel and the trigger element. */
64
+ skidding = 0;
65
+ /** Defines the strategy to position the panel */
66
+ strategy = 'fixed';
58
67
  // Prop lifecycle events
59
68
  // =======================
60
69
  handleOpenChange() {