@beeq/core 1.8.0-beta.0 → 1.8.0-beta.1
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
- package/dist/beeq/beeq.esm.js +43 -1
- package/dist/beeq/beeq.esm.js.map +1 -1
- package/dist/beeq/index.esm.js +64 -1
- package/dist/beeq/index.esm.js.map +1 -1
- package/dist/beeq/p-063a3968.entry.js +388 -0
- package/dist/beeq/{p-9acfedb8.entry.js.map → p-063a3968.entry.js.map} +1 -1
- package/dist/beeq/p-0979fdfd.entry.js +297 -0
- package/dist/beeq/{p-7f23cde7.entry.js.map → p-0979fdfd.entry.js.map} +1 -1
- package/dist/beeq/p-0ab0b58d.js +25 -1
- package/dist/beeq/p-0ab0b58d.js.map +1 -1
- package/dist/beeq/p-0c42c08a.js +1811 -0
- package/dist/beeq/p-0c42c08a.js.map +1 -0
- package/dist/beeq/p-0f48adcc.entry.js +117 -0
- package/dist/beeq/{p-9f40249f.entry.js.map → p-0f48adcc.entry.js.map} +1 -1
- package/dist/beeq/p-115ed5b2.js +25 -1
- package/dist/beeq/p-115ed5b2.js.map +1 -1
- package/dist/beeq/p-14b44a4b.entry.js +205 -0
- package/dist/beeq/{p-8059836c.entry.js.map → p-14b44a4b.entry.js.map} +1 -1
- package/dist/beeq/p-1715ac80.entry.js +274 -0
- package/dist/beeq/{p-eab59153.entry.js.map → p-1715ac80.entry.js.map} +1 -1
- package/dist/beeq/p-1c8b6eb4.js +12 -1
- package/dist/beeq/p-1c8b6eb4.js.map +1 -1
- package/dist/beeq/p-1f3a4359.js +11 -1
- package/dist/beeq/p-1f3a4359.js.map +1 -1
- package/dist/beeq/p-242ac28a.entry.js +145 -0
- package/dist/beeq/{p-90c5851d.entry.js.map → p-242ac28a.entry.js.map} +1 -1
- package/dist/beeq/p-297fb76b.entry.js +220 -0
- package/dist/beeq/{p-79b7547b.entry.js.map → p-297fb76b.entry.js.map} +1 -1
- package/dist/beeq/p-2bb65f53.entry.js +204 -0
- package/dist/beeq/{p-a8cb8989.entry.js.map → p-2bb65f53.entry.js.map} +1 -1
- package/dist/beeq/p-2e66fc4f.entry.js +434 -0
- package/dist/beeq/{p-ddb23180.entry.js.map → p-2e66fc4f.entry.js.map} +1 -1
- package/dist/beeq/p-36652891.entry.js +102 -0
- package/dist/beeq/{p-633319f3.entry.js.map → p-36652891.entry.js.map} +1 -1
- package/dist/beeq/p-38d4bd8a.js +1934 -1
- package/dist/beeq/p-38d4bd8a.js.map +1 -1
- package/dist/beeq/p-39b7c578.entry.js +84 -0
- package/dist/beeq/{p-94d62f1b.entry.js.map → p-39b7c578.entry.js.map} +1 -1
- package/dist/beeq/p-39d77ba6.entry.js +90 -0
- package/dist/beeq/{p-be664fb0.entry.js.map → p-39d77ba6.entry.js.map} +1 -1
- package/dist/beeq/p-3fd0d92d.js +1228 -1
- package/dist/beeq/p-3fd0d92d.js.map +1 -1
- package/dist/beeq/p-4688e046.js +16 -0
- package/dist/beeq/{p-aee056e5.js.map → p-4688e046.js.map} +1 -1
- package/dist/beeq/p-49249dda.entry.js +156 -0
- package/dist/beeq/{p-235328ee.entry.js.map → p-49249dda.entry.js.map} +1 -1
- package/dist/beeq/p-548b45b7.entry.js +104 -0
- package/dist/beeq/{p-ae8ffb81.entry.js.map → p-548b45b7.entry.js.map} +1 -1
- package/dist/beeq/p-57621be1.js +9 -1
- package/dist/beeq/p-57621be1.js.map +1 -1
- package/dist/beeq/p-57a55ac5.entry.js +261 -0
- package/dist/beeq/{p-52577f3a.entry.js.map → p-57a55ac5.entry.js.map} +1 -1
- package/dist/beeq/p-5e11b866.entry.js +102 -0
- package/dist/beeq/{p-b7281046.entry.js.map → p-5e11b866.entry.js.map} +1 -1
- package/dist/beeq/p-687da041.js +20 -1
- package/dist/beeq/p-687da041.js.map +1 -1
- package/dist/beeq/p-6a4e104b.entry.js +263 -0
- package/dist/beeq/{p-3aa41d80.entry.js.map → p-6a4e104b.entry.js.map} +1 -1
- package/dist/beeq/p-6a5a79a3.entry.js +184 -0
- package/dist/beeq/{p-606c080c.entry.js.map → p-6a5a79a3.entry.js.map} +1 -1
- package/dist/beeq/p-7f301da8.entry.js +508 -0
- package/dist/beeq/p-7f301da8.entry.js.map +1 -0
- package/dist/beeq/p-81f1c3ba.entry.js +121 -0
- package/dist/beeq/{p-c9c942e6.entry.js.map → p-81f1c3ba.entry.js.map} +1 -1
- package/dist/beeq/p-822773ae.entry.js +195 -0
- package/dist/beeq/{p-a7b0fd0b.entry.js.map → p-822773ae.entry.js.map} +1 -1
- package/dist/beeq/p-951ba558.js +64 -1
- package/dist/beeq/p-951ba558.js.map +1 -1
- package/dist/beeq/p-99829fc7.js +8 -1
- package/dist/beeq/p-99829fc7.js.map +1 -1
- package/dist/beeq/p-9990889d.entry.js +222 -0
- package/dist/beeq/{p-9cd26e8d.entry.js.map → p-9990889d.entry.js.map} +1 -1
- package/dist/beeq/p-a1b43de6.entry.js +248 -0
- package/dist/beeq/{p-4ba2bec7.entry.js.map → p-a1b43de6.entry.js.map} +1 -1
- package/dist/beeq/p-a5dc1c94.js +118 -1
- package/dist/beeq/p-a5dc1c94.js.map +1 -1
- package/dist/beeq/p-a6489187.entry.js +103 -0
- package/dist/beeq/{p-b90c6de9.entry.js.map → p-a6489187.entry.js.map} +1 -1
- package/dist/beeq/p-a8cad5ab.js +5 -1
- package/dist/beeq/p-a8cad5ab.js.map +1 -1
- package/dist/beeq/p-ac969486.entry.js +330 -0
- package/dist/beeq/{p-4739f5c3.entry.js.map → p-ac969486.entry.js.map} +1 -1
- package/dist/beeq/p-af062402.js +7 -1
- package/dist/beeq/p-af062402.js.map +1 -1
- package/dist/beeq/p-afc9fd80.entry.js +144 -0
- package/dist/beeq/{p-6e026fad.entry.js.map → p-afc9fd80.entry.js.map} +1 -1
- package/dist/beeq/p-bef53750.js +79 -0
- package/dist/beeq/p-bef53750.js.map +1 -0
- package/dist/beeq/p-bf2320dd.entry.js +329 -0
- package/dist/beeq/{p-e6382462.entry.js.map → p-bf2320dd.entry.js.map} +1 -1
- package/dist/beeq/p-c34e292e.entry.js +127 -0
- package/dist/beeq/{p-268dc1e3.entry.js.map → p-c34e292e.entry.js.map} +1 -1
- package/dist/beeq/p-d7a88b16.js +87 -1
- package/dist/beeq/p-d7a88b16.js.map +1 -1
- package/dist/beeq/p-db18eba1.entry.js +173 -0
- package/dist/beeq/{p-eddb77c7.entry.js.map → p-db18eba1.entry.js.map} +1 -1
- package/dist/beeq/p-dd950c12.entry.js +309 -0
- package/dist/beeq/{p-63ad9702.entry.js.map → p-dd950c12.entry.js.map} +1 -1
- package/dist/beeq/p-e301647a.entry.js +87 -0
- package/dist/beeq/{p-3b2ce34b.entry.js.map → p-e301647a.entry.js.map} +1 -1
- package/dist/beeq/p-e3aa2886.entry.js +203 -0
- package/dist/beeq/{p-a006be9e.entry.js.map → p-e3aa2886.entry.js.map} +1 -1
- package/dist/beeq/p-e41f07ae.entry.js +173 -0
- package/dist/beeq/{p-9c6c6646.entry.js.map → p-e41f07ae.entry.js.map} +1 -1
- package/dist/beeq/p-e88257a8.entry.js +259 -0
- package/dist/beeq/{p-d2bbae3b.entry.js.map → p-e88257a8.entry.js.map} +1 -1
- package/dist/beeq/p-e9a54b49.entry.js +145 -0
- package/dist/beeq/{p-96d7f361.entry.js.map → p-e9a54b49.entry.js.map} +1 -1
- package/dist/beeq/p-ecd27cf2.js +11 -1
- package/dist/beeq/p-ecd27cf2.js.map +1 -1
- package/dist/beeq/p-f77d9b8b.entry.js +144 -0
- package/dist/beeq/{p-41bac721.entry.js.map → p-f77d9b8b.entry.js.map} +1 -1
- package/dist/beeq/p-fd658de1.entry.js +135 -0
- package/dist/beeq/{p-255fcbe4.entry.js.map → p-fd658de1.entry.js.map} +1 -1
- package/dist/beeq/p-ffb48c40.entry.js +258 -0
- package/dist/beeq/{p-b9544567.entry.js.map → p-ffb48c40.entry.js.map} +1 -1
- package/dist/beeq/p-ffddc425.entry.js +149 -0
- package/dist/beeq/{p-571b40ff.entry.js.map → p-ffddc425.entry.js.map} +1 -1
- package/dist/cjs/app-globals-b11284b9.js.map +1 -1
- package/dist/cjs/assetsPath-3938a05d.js +78 -0
- package/dist/cjs/assetsPath-3938a05d.js.map +1 -0
- package/dist/cjs/beeq.cjs.js +1 -1
- package/dist/cjs/bq-accordion-group.cjs.entry.js +2 -2
- package/dist/cjs/bq-accordion.cjs.entry.js +2 -2
- package/dist/cjs/bq-alert.cjs.entry.js +2 -2
- package/dist/cjs/bq-avatar.cjs.entry.js +2 -2
- package/dist/cjs/bq-badge.cjs.entry.js +2 -2
- package/dist/cjs/bq-breadcrumb-item.cjs.entry.js +3 -3
- package/dist/cjs/bq-breadcrumb.cjs.entry.js +2 -2
- package/dist/cjs/bq-button_2.cjs.entry.js +3 -3
- package/dist/cjs/bq-card.cjs.entry.js +2 -2
- package/dist/cjs/bq-checkbox.cjs.entry.js +2 -2
- package/dist/cjs/bq-date-picker.cjs.entry.js +3 -3
- package/dist/cjs/bq-dialog.cjs.entry.js +2 -2
- package/dist/cjs/bq-divider.cjs.entry.js +2 -2
- package/dist/cjs/bq-drawer.cjs.entry.js +3 -3
- package/dist/cjs/bq-dropdown_2.cjs.entry.js +1 -1
- package/dist/cjs/bq-empty-state.cjs.entry.js +2 -2
- package/dist/cjs/bq-input.cjs.entry.js +3 -3
- package/dist/cjs/bq-notification.cjs.entry.js +2 -2
- package/dist/cjs/bq-option-group.cjs.entry.js +1 -1
- package/dist/cjs/bq-option-list_2.cjs.entry.js +2 -2
- package/dist/cjs/bq-option.cjs.entry.js +2 -2
- package/dist/cjs/bq-page-title.cjs.entry.js +2 -2
- package/dist/cjs/bq-progress.cjs.entry.js +2 -2
- package/dist/cjs/bq-radio-group.cjs.entry.js +2 -2
- package/dist/cjs/bq-radio.cjs.entry.js +1 -1
- package/dist/cjs/bq-select.cjs.entry.js +12 -12
- package/dist/cjs/bq-select.cjs.entry.js.map +1 -1
- package/dist/cjs/bq-side-menu-item.cjs.entry.js +2 -2
- package/dist/cjs/bq-side-menu.cjs.entry.js +2 -2
- package/dist/cjs/bq-slider.cjs.entry.js +2 -2
- package/dist/cjs/bq-spinner.cjs.entry.js +2 -2
- package/dist/cjs/bq-status.cjs.entry.js +2 -2
- package/dist/cjs/bq-step-item.cjs.entry.js +2 -2
- package/dist/cjs/bq-steps.cjs.entry.js +2 -2
- package/dist/cjs/bq-switch.cjs.entry.js +2 -2
- package/dist/cjs/bq-tab-group.cjs.entry.js +2 -2
- package/dist/cjs/bq-tab.cjs.entry.js +2 -2
- package/dist/cjs/bq-textarea.cjs.entry.js +2 -2
- package/dist/cjs/bq-toast.cjs.entry.js +2 -2
- package/dist/cjs/bq-tooltip.cjs.entry.js +1 -1
- package/dist/cjs/{index-e6d59dbb.js → index-1d3aac65.js} +20 -2
- package/dist/cjs/index-1d3aac65.js.map +1 -0
- package/dist/cjs/index.cjs.js +2 -2
- package/dist/cjs/{isDefined-4f4a320b.js → isDefined-750bffc4.js} +2 -2
- package/dist/cjs/{isDefined-4f4a320b.js.map → isDefined-750bffc4.js.map} +1 -1
- package/dist/cjs/loader.cjs.js +1 -1
- package/dist/collection/components/drawer/scss/bq-drawer.css +1 -1
- package/dist/collection/components/select/bq-select.js +10 -10
- package/dist/collection/components/select/bq-select.js.map +1 -1
- package/dist/collection/components/select/scss/bq-select.css +1 -1
- package/dist/collection/shared/utils/assetsPath.js +52 -26
- package/dist/collection/shared/utils/assetsPath.js.map +1 -1
- package/dist/components/assetsPath.js +52 -26
- package/dist/components/assetsPath.js.map +1 -1
- package/dist/components/bq-drawer.js +1 -1
- package/dist/components/bq-select.js +10 -10
- package/dist/components/bq-select.js.map +1 -1
- package/dist/esm/app-globals-de5a646b.js.map +1 -1
- package/dist/esm/assetsPath-a1b58980.js +75 -0
- package/dist/esm/assetsPath-a1b58980.js.map +1 -0
- package/dist/esm/beeq.js +2 -2
- package/dist/esm/bq-accordion-group.entry.js +2 -2
- package/dist/esm/bq-accordion.entry.js +2 -2
- package/dist/esm/bq-alert.entry.js +2 -2
- package/dist/esm/bq-avatar.entry.js +2 -2
- package/dist/esm/bq-badge.entry.js +2 -2
- package/dist/esm/bq-breadcrumb-item.entry.js +3 -3
- package/dist/esm/bq-breadcrumb.entry.js +2 -2
- package/dist/esm/bq-button_2.entry.js +3 -3
- package/dist/esm/bq-card.entry.js +2 -2
- package/dist/esm/bq-checkbox.entry.js +2 -2
- package/dist/esm/bq-date-picker.entry.js +3 -3
- package/dist/esm/bq-dialog.entry.js +2 -2
- package/dist/esm/bq-divider.entry.js +2 -2
- package/dist/esm/bq-drawer.entry.js +3 -3
- package/dist/esm/bq-dropdown_2.entry.js +1 -1
- package/dist/esm/bq-empty-state.entry.js +2 -2
- package/dist/esm/bq-input.entry.js +3 -3
- package/dist/esm/bq-notification.entry.js +2 -2
- package/dist/esm/bq-option-group.entry.js +1 -1
- package/dist/esm/bq-option-list_2.entry.js +2 -2
- package/dist/esm/bq-option.entry.js +2 -2
- package/dist/esm/bq-page-title.entry.js +2 -2
- package/dist/esm/bq-progress.entry.js +2 -2
- package/dist/esm/bq-radio-group.entry.js +2 -2
- package/dist/esm/bq-radio.entry.js +1 -1
- package/dist/esm/bq-select.entry.js +13 -13
- package/dist/esm/bq-select.entry.js.map +1 -1
- package/dist/esm/bq-side-menu-item.entry.js +2 -2
- package/dist/esm/bq-side-menu.entry.js +2 -2
- package/dist/esm/bq-slider.entry.js +2 -2
- package/dist/esm/bq-spinner.entry.js +2 -2
- package/dist/esm/bq-status.entry.js +2 -2
- package/dist/esm/bq-step-item.entry.js +2 -2
- package/dist/esm/bq-steps.entry.js +2 -2
- package/dist/esm/bq-switch.entry.js +2 -2
- package/dist/esm/bq-tab-group.entry.js +2 -2
- package/dist/esm/bq-tab.entry.js +2 -2
- package/dist/esm/bq-textarea.entry.js +2 -2
- package/dist/esm/bq-toast.entry.js +2 -2
- package/dist/esm/bq-tooltip.entry.js +1 -1
- package/dist/esm/{index-efc1c2ef.js → index-f69556fe.js} +20 -2
- package/dist/esm/index-f69556fe.js.map +1 -0
- package/dist/esm/index.js +3 -3
- package/dist/esm/{isDefined-91ae4cd3.js → isDefined-170f3095.js} +2 -2
- package/dist/esm/{isDefined-91ae4cd3.js.map → isDefined-170f3095.js.map} +1 -1
- package/dist/esm/loader.js +2 -2
- package/dist/hydrate/index.js +62 -36
- package/dist/hydrate/index.mjs +62 -36
- package/dist/stencil.config.js +4 -1
- package/dist/stencil.config.js.map +1 -1
- package/dist/types/home/workflows/workspace/packages/beeq/.stencil/packages/beeq/stencil.config.d.ts +2 -0
- package/dist/types/shared/utils/assetsPath.d.ts +18 -11
- package/package.json +1 -1
- package/dist/beeq/p-235328ee.entry.js +0 -6
- package/dist/beeq/p-255fcbe4.entry.js +0 -6
- package/dist/beeq/p-268dc1e3.entry.js +0 -6
- package/dist/beeq/p-3aa41d80.entry.js +0 -6
- package/dist/beeq/p-3b2ce34b.entry.js +0 -6
- package/dist/beeq/p-41bac721.entry.js +0 -6
- package/dist/beeq/p-4739f5c3.entry.js +0 -6
- package/dist/beeq/p-4ba2bec7.entry.js +0 -6
- package/dist/beeq/p-52577f3a.entry.js +0 -6
- package/dist/beeq/p-571b40ff.entry.js +0 -6
- package/dist/beeq/p-606c080c.entry.js +0 -6
- package/dist/beeq/p-633319f3.entry.js +0 -6
- package/dist/beeq/p-63ad9702.entry.js +0 -6
- package/dist/beeq/p-6e026fad.entry.js +0 -6
- package/dist/beeq/p-6edc8a33.js +0 -6
- package/dist/beeq/p-6edc8a33.js.map +0 -1
- package/dist/beeq/p-76e714c6.js +0 -7
- package/dist/beeq/p-76e714c6.js.map +0 -1
- package/dist/beeq/p-79b7547b.entry.js +0 -6
- package/dist/beeq/p-7f23cde7.entry.js +0 -6
- package/dist/beeq/p-8059836c.entry.js +0 -6
- package/dist/beeq/p-8b7c7049.entry.js +0 -6
- package/dist/beeq/p-8b7c7049.entry.js.map +0 -1
- package/dist/beeq/p-90c5851d.entry.js +0 -6
- package/dist/beeq/p-94d62f1b.entry.js +0 -6
- package/dist/beeq/p-96d7f361.entry.js +0 -6
- package/dist/beeq/p-9acfedb8.entry.js +0 -6
- package/dist/beeq/p-9c6c6646.entry.js +0 -6
- package/dist/beeq/p-9cd26e8d.entry.js +0 -6
- package/dist/beeq/p-9f40249f.entry.js +0 -6
- package/dist/beeq/p-a006be9e.entry.js +0 -6
- package/dist/beeq/p-a7b0fd0b.entry.js +0 -6
- package/dist/beeq/p-a8cb8989.entry.js +0 -6
- package/dist/beeq/p-ae8ffb81.entry.js +0 -6
- package/dist/beeq/p-aee056e5.js +0 -6
- package/dist/beeq/p-b7281046.entry.js +0 -6
- package/dist/beeq/p-b90c6de9.entry.js +0 -6
- package/dist/beeq/p-b9544567.entry.js +0 -6
- package/dist/beeq/p-be664fb0.entry.js +0 -6
- package/dist/beeq/p-c9c942e6.entry.js +0 -6
- package/dist/beeq/p-d2bbae3b.entry.js +0 -6
- package/dist/beeq/p-ddb23180.entry.js +0 -6
- package/dist/beeq/p-e6382462.entry.js +0 -6
- package/dist/beeq/p-eab59153.entry.js +0 -6
- package/dist/beeq/p-eddb77c7.entry.js +0 -6
- package/dist/cjs/assetsPath-eac0a3bf.js +0 -52
- package/dist/cjs/assetsPath-eac0a3bf.js.map +0 -1
- package/dist/cjs/index-e6d59dbb.js.map +0 -1
- package/dist/esm/assetsPath-ae18c25e.js +0 -49
- package/dist/esm/assetsPath-ae18c25e.js.map +0 -1
- package/dist/esm/index-efc1c2ef.js.map +0 -1
- package/dist/types/Users/dramos/PROJECTs/ENDAVA/BEEQ-Design-System/packages/beeq/.stencil/packages/beeq/stencil.config.d.ts +0 -2
- /package/dist/types/{Users/dramos/PROJECTs/ENDAVA/BEEQ-Design-System → home/workflows/workspace}/packages/beeq/.stencil/tailwind.config.d.ts +0 -0
|
@@ -0,0 +1,330 @@
|
|
|
1
|
+
/*!
|
|
2
|
+
* Built by Endavans
|
|
3
|
+
* © https://beeq.design - Apache 2 License.
|
|
4
|
+
*/
|
|
5
|
+
import { r as a, c as r, h as e, g as n } from "./p-0c42c08a.js";
|
|
6
|
+
|
|
7
|
+
import "./p-bef53750.js";
|
|
8
|
+
|
|
9
|
+
import { v as b } from "./p-687da041.js";
|
|
10
|
+
|
|
11
|
+
import { b as o } from "./p-d7a88b16.js";
|
|
12
|
+
|
|
13
|
+
const i = [ "small", "medium" ];
|
|
14
|
+
|
|
15
|
+
const d = [ "filled", "ghost" ];
|
|
16
|
+
|
|
17
|
+
/* -------------------------------------------------------------------------------------- */
|
|
18
|
+
/* 💡 Credits: https://css-tricks.com/how-to-animate-the-details-element-using-waapi */
|
|
19
|
+
/* -------------------------------------------------------------------------------------- */ class t {
|
|
20
|
+
constructor(a) {
|
|
21
|
+
this.animationOptions = {
|
|
22
|
+
duration: 200,
|
|
23
|
+
easing: "ease-in-out"
|
|
24
|
+
};
|
|
25
|
+
// Store the <details> element
|
|
26
|
+
this.el = a;
|
|
27
|
+
// Store the <summary> header element
|
|
28
|
+
this.header = a.querySelector("summary");
|
|
29
|
+
// Store the <div class="content"> element
|
|
30
|
+
this.panel = a.querySelector(".bq-accordion__body");
|
|
31
|
+
// Store the animation object (so we can cancel it, if needed)
|
|
32
|
+
this.animation = null;
|
|
33
|
+
// Store if the element is closing
|
|
34
|
+
this.isClosing = false;
|
|
35
|
+
// Store if the element is expanding
|
|
36
|
+
this.isExpanding = false;
|
|
37
|
+
}
|
|
38
|
+
open() {
|
|
39
|
+
// Check if the element is being closed or is already closed
|
|
40
|
+
if (!this.isClosing && this.el.open) return;
|
|
41
|
+
// Apply a fixed height on the element
|
|
42
|
+
this.el.style.height = `${this.el.offsetHeight}px`;
|
|
43
|
+
// Force the [open] attribute on the details element
|
|
44
|
+
this.el.open = true;
|
|
45
|
+
// Wait for the next frame to call the expand function
|
|
46
|
+
window.requestAnimationFrame((() => this.expand()));
|
|
47
|
+
}
|
|
48
|
+
close() {
|
|
49
|
+
// Check if the element is being opened or is already open
|
|
50
|
+
if (!this.isExpanding && !this.el.open) return;
|
|
51
|
+
// Set the element as "being closed"
|
|
52
|
+
this.isClosing = true;
|
|
53
|
+
// Store the current height of the element
|
|
54
|
+
const a = `${this.el.offsetHeight}px`;
|
|
55
|
+
// Calculate the height of the <summary> header
|
|
56
|
+
const r = `${this.header.offsetHeight}px`;
|
|
57
|
+
// If there is already an animation running
|
|
58
|
+
if (this.animation) {
|
|
59
|
+
// Cancel the current animation
|
|
60
|
+
this.animation.cancel();
|
|
61
|
+
}
|
|
62
|
+
// Start a WAAPI animation
|
|
63
|
+
this.animation = this.el.animate({
|
|
64
|
+
height: [ a, r ]
|
|
65
|
+
}, this.animationOptions);
|
|
66
|
+
// When the animation is complete, call onAnimationFinish()
|
|
67
|
+
this.animation.onfinish = () => this.onAnimationFinish(false)
|
|
68
|
+
// If the animation is cancelled, isClosing variable is set to false
|
|
69
|
+
;
|
|
70
|
+
this.animation.oncancel = () => this.isClosing = false;
|
|
71
|
+
}
|
|
72
|
+
// Expands the accordion
|
|
73
|
+
expand() {
|
|
74
|
+
// Set the element as "being expanding"
|
|
75
|
+
this.isExpanding = true;
|
|
76
|
+
// Get the current fixed height of the element
|
|
77
|
+
const a = `${this.el.offsetHeight}px`;
|
|
78
|
+
// Calculate the open height of the element (summary header height + panel body height)
|
|
79
|
+
const r = `${this.header.offsetHeight + this.panel.offsetHeight}px`;
|
|
80
|
+
// If there is already an animation running
|
|
81
|
+
if (this.animation) {
|
|
82
|
+
// Cancel the current animation
|
|
83
|
+
this.animation.cancel();
|
|
84
|
+
}
|
|
85
|
+
// Start a WAAPI animation
|
|
86
|
+
this.animation = this.el.animate({
|
|
87
|
+
height: [ a, r ]
|
|
88
|
+
}, this.animationOptions);
|
|
89
|
+
// When the animation is complete, call onAnimationFinish()
|
|
90
|
+
this.animation.onfinish = () => this.onAnimationFinish(true)
|
|
91
|
+
// If the animation is cancelled, isExpanding variable is set to false
|
|
92
|
+
;
|
|
93
|
+
this.animation.oncancel = () => this.isExpanding = false;
|
|
94
|
+
}
|
|
95
|
+
// Handles the end of the animation
|
|
96
|
+
onAnimationFinish(a) {
|
|
97
|
+
// Set the open attribute based on the parameter
|
|
98
|
+
this.el.open = a;
|
|
99
|
+
// Clear the stored animation
|
|
100
|
+
this.animation = null;
|
|
101
|
+
// Reset isClosing & isExpanding
|
|
102
|
+
this.isClosing = false;
|
|
103
|
+
this.isExpanding = false;
|
|
104
|
+
// Remove the overflow hidden and the fixed height
|
|
105
|
+
this.el.removeAttribute("style");
|
|
106
|
+
// Dispatch a custom event based on the open parameter
|
|
107
|
+
const r = new Event("accordionTransitionEnd", {
|
|
108
|
+
bubbles: false,
|
|
109
|
+
composed: true
|
|
110
|
+
});
|
|
111
|
+
this.el.dispatchEvent(r);
|
|
112
|
+
}
|
|
113
|
+
}
|
|
114
|
+
|
|
115
|
+
const c = '::backdrop,:root{--bq-blue-100:#e7f0fd;--bq-blue-200:#d0e2fb;--bq-blue-300:#a1c5f7;--bq-blue-400:#73a8f3;--bq-blue-500:#448bef;--bq-blue-600:#156eeb;--bq-blue-700:#1158bc;--bq-blue-800:#0d428d;--bq-blue-900:#082c5e;--bq-blue-1000:#04162f;--bq-corai-100:#fff2f2;--bq-corai-200:#ffe6e6;--bq-corai-300:#ffccce;--bq-corai-400:#ffb3b5;--bq-corai-500:#ff999d;--bq-corai-600:#ff8084;--bq-corai-700:#cc666a;--bq-corai-800:#994d4f;--bq-corai-900:#663335;--bq-corai-1000:#331a1a;--bq-cyan-100:#e8f7fb;--bq-cyan-200:#d2f0f8;--bq-cyan-300:#a5e1f1;--bq-cyan-400:#78d1e9;--bq-cyan-500:#4bc2e2;--bq-cyan-600:#1eb3db;--bq-cyan-700:#188faf;--bq-cyan-800:#126b83;--bq-cyan-900:#0c4858;--bq-cyan-1000:#06242c;--bq-gold-100:#fbf4ec;--bq-gold-200:#f7e9da;--bq-gold-300:#f0d3b6;--bq-gold-400:#e8bc91;--bq-gold-500:#e1a66d;--bq-gold-600:#d99048;--bq-gold-700:#ae733a;--bq-gold-800:#82562b;--bq-gold-900:#573a1d;--bq-gold-1000:#2b1d0e;--bq-green-100:#e8f8ef;--bq-green-200:#d2f1e0;--bq-green-300:#a5e3c1;--bq-green-400:#78d5a1;--bq-green-500:#4bc782;--bq-green-600:#1eb963;--bq-green-700:#18944f;--bq-green-800:#126f3b;--bq-green-900:#0c4a28;--bq-green-1000:#062514;--bq-grey-100:#f1f2f4;--bq-grey-200:#e7e8eb;--bq-grey-300:#caccd2;--bq-grey-400:#a6aab3;--bq-grey-50:#f6f6f8;--bq-grey-500:#898e99;--bq-grey-600:#646a77;--bq-grey-700:#3f4350;--bq-grey-800:#2a2c35;--bq-grey-900:#1c1d23;--bq-grey-950:#15161a;--bq-grey-1000:#0d0e11;--bq-indigo-100:#edecfc;--bq-indigo-200:#dcdafa;--bq-indigo-300:#b9b5f5;--bq-indigo-400:#9590ef;--bq-indigo-500:#726bea;--bq-indigo-600:#4f46e5;--bq-indigo-700:#3f38b7;--bq-indigo-800:#2f2a89;--bq-indigo-900:#201c5c;--bq-indigo-1000:#100e2e;--bq-iris-100:#e9f0ff;--bq-iris-200:#d6e0ff;--bq-iris-300:#b2c0fe;--bq-iris-400:#8691f8;--bq-iris-500:#6061ee;--bq-iris-600:#4f46e5;--bq-iris-700:#413abd;--bq-iris-800:#332e95;--bq-iris-900:#26216d;--bq-iris-1000:#181545;--bq-lime-100:#f5fae8;--bq-lime-200:#ecf6d2;--bq-lime-300:#d9eda5;--bq-lime-400:#c5e379;--bq-lime-500:#b2da4c;--bq-lime-600:#9fd11f;--bq-lime-700:#7fa719;--bq-lime-800:#5f7d13;--bq-lime-900:#40540c;--bq-lime-1000:#202a06;--bq-magenta-100:#fce7f4;--bq-magenta-200:#f9cfea;--bq-magenta-300:#f39fd6;--bq-magenta-400:#ee6fbf;--bq-magenta-500:#e83fab;--bq-magenta-600:#de1395;--bq-magenta-700:#b20f77;--bq-magenta-800:#850c59;--bq-magenta-900:#58083c;--bq-magenta-1000:#2c041e;--bq-neutral-white:#fbfbfc;--bq-neutral-black:#060708;--bq-orange-100:#fbf0e9;--bq-orange-200:#f8e1d4;--bq-orange-300:#f1c2a8;--bq-orange-400:#eaa47d;--bq-orange-500:#e38551;--bq-orange-600:#dc6726;--bq-orange-700:#b0521e;--bq-orange-800:#843e17;--bq-orange-900:#58290f;--bq-orange-1000:#2c1508;--bq-purple-100:#efebf8;--bq-purple-200:#e0d7f2;--bq-purple-300:#c1afe5;--bq-purple-400:#a388d8;--bq-purple-500:#8460cb;--bq-purple-600:#6538be;--bq-purple-700:#512d98;--bq-purple-800:#3d2272;--bq-purple-900:#28164c;--bq-purple-1000:#140b26;--bq-red-100:#fce7ea;--bq-red-200:#f9d1d5;--bq-red-300:#f3a2ac;--bq-red-400:#ed7482;--bq-red-500:#e74559;--bq-red-600:#e1172f;--bq-red-700:#b41226;--bq-red-800:#870e1c;--bq-red-900:#5a0913;--bq-red-1000:#2d0509;--bq-sky-100:#eff4fb;--bq-sky-200:#dfeaf8;--bq-sky-300:#bfd5f1;--bq-sky-400:#9ec1e9;--bq-sky-500:#7eace2;--bq-sky-600:#5e97db;--bq-sky-700:#4b79af;--bq-sky-800:#385b83;--bq-sky-900:#263c58;--bq-sky-1000:#131e2c;--bq-teal-100:#e5f7f5;--bq-teal-200:#ccf0eb;--bq-teal-300:#99e1d8;--bq-teal-400:#66d2c4;--bq-teal-500:#33c3b1;--bq-teal-600:#00b49d;--bq-teal-700:#00907e;--bq-teal-800:#006c5e;--bq-teal-900:#00483f;--bq-teal-1000:#00241f;--bq-volcano-100:#feede7;--bq-volcano-200:#fddbd1;--bq-volcano-300:#fbb8a3;--bq-volcano-400:#fa9474;--bq-volcano-500:#f87146;--bq-volcano-600:#f64d18;--bq-volcano-700:#c53e13;--bq-volcano-800:#942e0e;--bq-volcano-900:#621f0a;--bq-volcano-1000:#310f05;--bq-yellow-100:#fefbe7;--bq-yellow-200:#fcf6d0;--bq-yellow-300:#faeea0;--bq-yellow-400:#f7e571;--bq-yellow-500:#f5dd41;--bq-yellow-600:#f2d412;--bq-yellow-700:#c2aa0e;--bq-yellow-800:#917f0b;--bq-yellow-900:#615507;--bq-yellow-1000:#302a04;--bq-endava-grey-50:#f7f7f8;--bq-endava-grey-100:#e4e6e7;--bq-endava-grey-200:#b5babe;--bq-endava-grey-300:#949ca1;--bq-endava-grey-400:#737d84;--bq-endava-grey-500:#525f67;--bq-endava-grey-600:#30404b;--bq-endava-grey-700:#2b3942;--bq-endava-grey-800:#263139;--bq-endava-grey-900:#192b37;--bq-endava-grey-950:#151b1e;--bq-endava-grey-1000:#0f1316;--bq-endava-neutral-white:#fafbfb;--bq-endava-neutral-black:#060708;--bq-endava-orange-100:#fef3f1;--bq-endava-orange-200:#fbd6d1;--bq-endava-orange-300:#fab7af;--bq-endava-orange-400:#fa988b;--bq-endava-orange-500:#fc7866;--bq-endava-orange-600:#ff5640;--bq-endava-orange-700:#ce4a39;--bq-endava-orange-800:#a03d30;--bq-endava-orange-900:#722e25;--bq-endava-orange-1000:#471e19}*,:after,:before{box-sizing:border-box}*{font:inherit;margin:0}ol[role=list],ul[role=list]{list-style-type:none}html{font-size:var(--bq-font-size--m)}html:focus-within{scroll-behavior:smooth}body{-webkit-font-smoothing:antialiased;-moz-osx-font-smoothing:grayscale;background-color:var(--bq-background--primary);color:var(--bq-text--primary);font-family:var(--bq-font-family);line-height:var(--bq-font-line-height--regular);min-height:100vh;text-rendering:optimizeSpeed}a:not([class]){text-decoration-skip-ink:auto}canvas,img,picture,svg,video{display:block;max-width:100%}button,input,select,textarea{font:inherit}h1,h2,h3,h4,h5,h6,p{overflow-wrap:break-word}@media (prefers-reduced-motion:reduce){html:focus-within{scroll-behavior:auto}*,:after,:before{animation-duration:.01ms!important;animation-iteration-count:1!important;scroll-behavior:auto;transition-duration:.01ms!important}}:root{--bq-white:#fff;--bq-black:#060708;--bq-neutral-50:var(--bq-grey-50);--bq-neutral-100:var(--bq-grey-100);--bq-neutral-200:var(--bq-grey-200);--bq-neutral-300:var(--bq-grey-300);--bq-neutral-400:var(--bq-grey-400);--bq-neutral-500:var(--bq-grey-500);--bq-neutral-600:var(--bq-grey-600);--bq-neutral-700:var(--bq-grey-700);--bq-neutral-800:var(--bq-grey-800);--bq-neutral-900:var(--bq-grey-900);--bq-neutral-950:var(--bq-grey-950);--bq-neutral-1000:var(--bq-grey-1000);--bq-brand-light:var(--bq-iris-100);--bq-brand:var(--bq-iris-600);--bq-brand-dark:var(--bq-iris-1000);--bq-accent-light:var(--bq-purple-100);--bq-accent:var(--bq-purple-600);--bq-accent-dark:var(--bq-purple-1000);--bq-success-light:var(--bq-teal-100);--bq-success:var(--bq-teal-600);--bq-success-dark:var(--bq-teal-1000);--bq-danger-light:var(--bq-red-100);--bq-danger:var(--bq-red-600);--bq-danger-dark:var(--bq-red-1000);--bq-warning-light:var(--bq-gold-100);--bq-warning:var(--bq-gold-600);--bq-warning-dark:var(--bq-gold-1000);--bq-info-light:var(--bq-iris-100);--bq-info:var(--bq-iris-600);--bq-info-dark:var(--bq-iris-1000);--bq-focus:var(--bq-iris-600);--bq-data-01:var(--bq-brand);--bq-data-02:var(--bq-purple-600);--bq-data-03:var(--bq-magenta-600);--bq-data-04:var(--bq-cyan-600);--bq-data-05:var(--bq-teal-600);--bq-data-06:var(--bq-orange-600);--bq-data-07:var(--bq-yellow-600);--bq-data-08:var(--bq-red-600);--bq-data-09:var(--bq-blue-600);--bq-data-10:var(--bq-grey-600);--bq-data-11:var(--bq-black);--bq-data-12:var(--bq-white);--bq-radius--none:0;--bq-radius--xs2:0.125rem;--bq-radius--xs:0.25rem;--bq-radius--s:0.5rem;--bq-radius--m:0.75rem;--bq-radius--l:1.5rem;--bq-radius--full:9999px;--bq-box-shadow--xs:0 2px 0 rgba(0,0,0,.016);--bq-box-shadow--s:0 8px 24px rgba(0,0,0,.04);--bq-box-shadow--m:0 10px 48px -16px rgba(0,0,0,.12);--bq-box-shadow--l:0 20px 58px -16px rgba(0,0,0,.16);--bq-font-family:"Outfit",sans-serif;--bq-font-size--xs:0.75rem;--bq-font-size--s:0.875rem;--bq-font-size--m:1rem;--bq-font-size--l:1.125rem;--bq-font-size--xl:1.5rem;--bq-font-size--xxl:2rem;--bq-font-size--xxl2:2.5rem;--bq-font-size--xxl3:3rem;--bq-font-size--xxl4:3.5rem;--bq-font-size--xxl5:4rem;--bq-font-weight--thin:100;--bq-font-weight--light:300;--bq-font-weight--regular:400;--bq-font-weight--medium:500;--bq-font-weight--semibold:600;--bq-font-weight--bold:700;--bq-font-line-height--small:1.2;--bq-font-line-height--regular:1.5;--bq-font-line-height--large:1.5;--bq-spacing-xs3:0.125rem;--bq-spacing-xs2:0.25rem;--bq-spacing-xs:0.5rem;--bq-spacing-s:0.75rem;--bq-spacing-m:1rem;--bq-spacing-l:1.5rem;--bq-spacing-xl:2rem;--bq-spacing-xxl:2.5rem;--bq-spacing-xxl2:3.5rem;--bq-spacing-xxl3:4rem;--bq-spacing-xxl4:4.5rem;--bq-stroke-s:1px;--bq-stroke-m:2px;--bq-stroke-l:3px}.beeq.light,.light,:root,[bq-mode=light]{--bq-background--primary:var(--bq-white);--bq-background--secondary:var(--bq-neutral-100);--bq-background--tertiary:var(--bq-neutral-200);--bq-background--alt:var(--bq-neutral-300);--bq-background--inverse:var(--bq-neutral-900);--bq-background--brand:var(--bq-brand);--bq-background--overlay:var(--bq-neutral-900);--bq-icon--primary:var(--bq-neutral-800);--bq-icon--alt:var(--bq-white);--bq-icon--secondary:var(--bq-neutral-600);--bq-icon--inverse:var(--bq-neutral-50);--bq-icon--brand:var(--bq-brand);--bq-icon--info:var(--bq-brand);--bq-icon--success:var(--bq-success);--bq-icon--warning:var(--bq-warning);--bq-icon--danger:var(--bq-danger);--bq-stroke--primary:var(--bq-neutral-200);--bq-stroke--secondary:var(--bq-neutral-600);--bq-stroke--tertiary:var(--bq-neutral-900);--bq-stroke--inverse:var(--bq-white);--bq-stroke--brand:var(--bq-brand);--bq-stroke--alt:var(--bq-neutral-50);--bq-stroke--success:var(--bq-success);--bq-stroke--warning:var(--bq-warning);--bq-stroke--danger:var(--bq-danger);--bq-stroke--info:var(--bq-brand);--bq-text--primary:var(--bq-neutral-800);--bq-text--secondary:var(--bq-neutral-600);--bq-text--inverse:var(--bq-neutral-50);--bq-text--brand:var(--bq-brand);--bq-text--alt:var(--bq-white);--bq-text--info:var(--bq-brand);--bq-text--success:var(--bq-success);--bq-text--warning:var(--bq-warning);--bq-text--danger:var(--bq-danger);--bq-ui--primary:var(--bq-white);--bq-ui--secondary:var(--bq-neutral-200);--bq-ui--tertiary:var(--bq-neutral-500);--bq-ui--inverse:var(--bq-neutral-900);--bq-ui--brand:var(--bq-brand);--bq-ui--brand-alt:var(--bq-brand-light);--bq-ui--alt:var(--bq-neutral-50);--bq-ui--success:var(--bq-success);--bq-ui--success-alt:var(--bq-success-light);--bq-ui--warning:var(--bq-warning);--bq-ui--warning-alt:var(--bq-warning-light);--bq-ui--danger:var(--bq-danger);--bq-ui--danger-alt:var(--bq-danger-light);--bq-ui--info:var(--bq-brand);--bq-ui--info-alt:var(--bq-brand-light);--bq-hover:#bcbfc5;--bq-active:#444546}.beeq.dark,.dark,[bq-mode=dark]{--bq-background--primary:var(--bq-neutral-1000);--bq-background--secondary:var(--bq-neutral-950);--bq-background--tertiary:var(--bq-neutral-800);--bq-background--alt:var(--bq-neutral-700);--bq-background--inverse:var(--bq-neutral-600);--bq-background--brand:var(--bq-brand);--bq-background--overlay:var(--bq-neutral-900);--bq-icon--primary:var(--bq-neutral-100);--bq-icon--secondary:var(--bq-neutral-400);--bq-icon--inverse:var(--bq-neutral-800);--bq-icon--brand:var(--bq-brand);--bq-icon--alt:var(--bq-white);--bq-icon--info:var(--bq-brand);--bq-icon--success:var(--bq-success);--bq-icon--warning:var(--bq-warning);--bq-icon--danger:var(--bq-danger);--bq-stroke--primary:var(--bq-neutral-900);--bq-stroke--secondary:var(--bq-neutral-700);--bq-stroke--tertiary:var(--bq-neutral-400);--bq-stroke--inverse:var(--bq-neutral-950);--bq-stroke--brand:var(--bq-brand);--bq-stroke--alt:var(--bq-neutral-1000);--bq-stroke--success:var(--bq-success);--bq-stroke--warning:var(--bq-warning);--bq-stroke--danger:var(--bq-danger);--bq-stroke--info:var(--bq-brand);--bq-text--primary:var(--bq-neutral-100);--bq-text--secondary:var(--bq-neutral-400);--bq-text--inverse:var(--bq-neutral-800);--bq-text--brand:var(--bq-brand);--bq-text--alt:var(--bq-white);--bq-text--info:var(--bq-brand);--bq-text--success:var(--bq-success);--bq-text--warning:var(--bq-warning);--bq-text--danger:var(--bq-danger);--bq-ui--primary:var(--bq-neutral-900);--bq-ui--secondary:var(--bq-neutral-800);--bq-ui--tertiary:var(--bq-neutral-700);--bq-ui--inverse:var(--bq-neutral-100);--bq-ui--brand:var(--bq-brand);--bq-ui--brand-alt:var(--bq-brand-dark);--bq-ui--alt:var(--bq-neutral-950);--bq-ui--success:var(--bq-success);--bq-ui--success-alt:var(--bq-success-dark);--bq-ui--warning:var(--bq-warning);--bq-ui--warning-alt:var(--bq-warning-dark);--bq-ui--danger:var(--bq-danger);--bq-ui--danger-alt:var(--bq-danger-dark);--bq-ui--info:var(--bq-brand);--bq-ui--info-alt:var(--bq-brand-dark);--bq-hover:#444546;--bq-active:#1f2026}.endava,[bq-theme=endava]{--bq-font-family:"Poppins",sans-serif;--bq-white:#fafbfb;--bq-black:#030406;--bq-neutral-50:var(--bq-endava-grey-50);--bq-neutral-100:var(--bq-endava-grey-100);--bq-neutral-200:var(--bq-endava-grey-200);--bq-neutral-300:var(--bq-endava-grey-300);--bq-neutral-400:var(--bq-endava-grey-400);--bq-neutral-500:var(--bq-endava-grey-500);--bq-neutral-600:var(--bq-endava-grey-600);--bq-neutral-700:var(--bq-endava-grey-700);--bq-neutral-800:var(--bq-endava-grey-800);--bq-neutral-900:var(--bq-endava-grey-900);--bq-neutral-950:var(--bq-endava-grey-950);--bq-neutral-1000:var(--bq-endava-grey-1000);--bq-brand-light:var(--bq-endava-orange-100);--bq-brand:var(--bq-endava-orange-600);--bq-brand-dark:var(--bq-endava-orange-1000);--bq-accent-light:var(--bq-endava-orange-100);--bq-accent:var(--bq-endava-orange-600);--bq-accent-dark:var(--bq-endava-orange-1000);--bq-success-light:var(--bq-green-100);--bq-success:var(--bq-green-600);--bq-success-dark:var(--bq-green-1000);--bq-danger-light:var(--bq-corai-100);--bq-danger:var(--bq-corai-600);--bq-danger-dark:var(--bq-corai-1000);--bq-warning-light:var(--bq-yellow-100);--bq-warning:var(--bq-yellow-600);--bq-warning-dark:var(--bq-yellow-1000);--bq-info-light:var(--bq-blue-100);--bq-info:var(--bq-blue-600);--bq-info-dark:var(--bq-blue-1000);--bq-focus:var(--bq-endava-orange-600);--bq-data-01:var(--bq-brand);--bq-data-02:#af0cd8;--bq-data-03:#0ca8d8;--bq-data-04:var(--bq-teal-600);--bq-data-05:var(--bq-yellow-600);--bq-data-06:var(--bq-orange-600);--bq-data-07:var(--bq-blue-600);--bq-data-08:var(--bq-red-600);--bq-data-09:var(--bq-purple-600);--bq-data-10:#394b56;--bq-data-11:var(--bq-black);--bq-data-12:var(--bq-white)}.endava.light,[bq-theme=endava][bq-mode=light]{--bq-background--primary:var(--bq-white);--bq-background--secondary:var(--bq-neutral-100);--bq-background--tertiary:var(--bq-neutral-200);--bq-background--alt:var(--bq-neutral-300);--bq-background--inverse:var(--bq-neutral-900);--bq-background--brand:var(--bq-brand);--bq-background--overlay:var(--bq-neutral-900);--bq-icon--primary:var(--bq-neutral-800);--bq-icon--secondary:var(--bq-neutral-600);--bq-icon--inverse:var(--bq-neutral-50);--bq-icon--brand:var(--bq-brand);--bq-icon--alt:var(--bq-white);--bq-icon--info:var(--bq-info);--bq-icon--success:var(--bq-success);--bq-icon--warning:var(--bq-warning);--bq-icon--danger:var(--bq-danger);--bq-stroke--primary:var(--bq-neutral-200);--bq-stroke--secondary:var(--bq-neutral-600);--bq-stroke--tertiary:var(--bq-neutral-900);--bq-stroke--inverse:var(--bq-white);--bq-stroke--brand:var(--bq-brand);--bq-stroke--alt:var(--bq-neutral-50);--bq-stroke--brand-alt:var(--bq-brand-light);--bq-stroke--success:var(--bq-success);--bq-stroke--warning:var(--bq-warning);--bq-stroke--danger:var(--bq-danger);--bq-stroke--info:var(--bq-info);--bq-text--primary:var(--bq-neutral-800);--bq-text--secondary:var(--bq-neutral-600);--bq-text--inverse:var(--bq-neutral-50);--bq-text--brand:var(--bq-brand);--bq-text--alt:var(--bq-white);--bq-text--info:var(--bq-info);--bq-text--success:var(--bq-success);--bq-text--warning:var(--bq-warning);--bq-text--danger:var(--bq-danger);--bq-ui--primary:var(--bq-white);--bq-ui--secondary:var(--bq-neutral-200);--bq-ui--tertiary:var(--bq-neutral-500);--bq-ui--inverse:var(--bq-neutral-900);--bq-ui--alt:var(--bq-neutral-50);--bq-ui--brand-alt:var(--bq-brand-light);--bq-ui--brand:var(--bq-brand);--bq-ui--success:var(--bq-success);--bq-ui--success-alt:var(--bq-success-light);--bq-ui--warning:var(--bq-warning);--bq-ui--warning-alt:var(--bq-warning-light);--bq-ui--danger:var(--bq-danger);--bq-ui--danger-alt:var(--bq-danger-light);--bq-ui--info:var(--bq-info);--bq-ui--info-alt:var(--bq-info-light);--bq-hover:#444546;--bq-active:#1f2026}.endava.dark,[bq-theme=endava][bq-mode=dark]{--bq-background--primary:var(--bq-neutral-1000);--bq-background--secondary:var(--bq-neutral-900);--bq-background--tertiary:var(--bq-neutral-800);--bq-background--alt:var(--bq-neutral-700);--bq-background--inverse:var(--bq-neutral-600);--bq-background--brand:var(--bq-brand);--bq-background--overlay:var(--bq-neutral-900);--bq-icon--primary:var(--bq-neutral-100);--bq-icon--secondary:var(--bq-neutral-400);--bq-icon--inverse:var(--bq-neutral-800);--bq-icon--brand:var(--bq-brand);--bq-icon--alt:var(--bq-white);--bq-icon--info:var(--bq-info);--bq-icon--success:var(--bq-success);--bq-icon--warning:var(--bq-warning);--bq-icon--danger:var(--bq-danger);--bq-stroke--primary:var(--bq-neutral-900);--bq-stroke--secondary:var(--bq-neutral-700);--bq-stroke--tertiary:var(--bq-neutral-400);--bq-stroke--inverse:var(--bq-neutral-950);--bq-stroke--brand:var(--bq-brand);--bq-stroke--brand-alt:var(--bq-brand-dark);--bq-stroke--alt:var(--bq-neutral-1000);--bq-stroke--success:var(--bq-success);--bq-stroke--warning:var(--bq-warning);--bq-stroke--danger:var(--bq-danger);--bq-stroke--info:var(--bq-info);--bq-text--primary:var(--bq-neutral-100);--bq-text--secondary:var(--bq-neutral-400);--bq-text--inverse:var(--bq-neutral-800);--bq-text--brand:var(--bq-brand);--bq-text--alt:var(--bq-neutral-white);--bq-text--info:var(--bq-info);--bq-text--success:var(--bq-success);--bq-text--warning:var(--bq-warning);--bq-text--danger:var(--bq-danger);--bq-ui--primary:var(--bq-neutral-900);--bq-ui--secondary:var(--bq-neutral-800);--bq-ui--tertiary:var(--bq-neutral-700);--bq-ui--inverse:var(--bq-neutral-100);--bq-ui--brand:var(--bq-brand);--bq-ui--brand-alt:var(--bq-brand-dark);--bq-ui--alt:var(--bq-neutral-950);--bq-ui--success:var(--bq-success);--bq-ui--success-alt:var(--bq-success-dark);--bq-ui--warning:var(--bq-warning);--bq-ui--warning-alt:var(--bq-warning-dark);--bq-ui--danger:var(--bq-danger);--bq-ui--danger-alt:var(--bq-danger-dark);--bq-ui--info:var(--bq-info);--bq-ui--info-alt:var(--bq-info-dark);--bq-hover:#444546;--bq-active:#1f2026}.transform{--tw-translate-x:0;--tw-translate-y:0;--tw-rotate:0;--tw-skew-x:0;--tw-skew-y:0;--tw-scale-x:1;--tw-scale-y:1;transform:translate(var(--tw-translate-x),var(--tw-translate-y)) rotate(var(--tw-rotate)) skewX(var(--tw-skew-x)) skewY(var(--tw-skew-y)) scaleX(var(--tw-scale-x)) scaleY(var(--tw-scale-y))}.pointer-events-none{pointer-events:none}.block{display:block}.flex{display:flex}.hidden{display:none}.flex-1{flex:1 1 0%}.cursor-not-allowed{cursor:not-allowed}.cursor-pointer{cursor:pointer}.select-none{user-select:none}.list-none{list-style-type:none}.items-center{align-items:center}.justify-center{justify-content:center}.gap-\\[--bq-accordion--medium-gap\\]{gap:var(--bq-accordion--medium-gap)}.gap-\\[--bq-accordion--small-gap\\]{gap:var(--bq-accordion--small-gap)}.overflow-hidden{overflow:hidden}.rounded-ee-\\[--bq-accordion--medium-radius\\]{border-end-end-radius:var(--bq-accordion--medium-radius)}.rounded-ee-\\[--bq-accordion--small-radius\\]{border-end-end-radius:var(--bq-accordion--small-radius)}.rounded-ee-\\[0px\\]{border-end-end-radius:0}.rounded-es-\\[--bq-accordion--medium-radius\\]{border-end-start-radius:var(--bq-accordion--medium-radius)}.rounded-es-\\[--bq-accordion--small-radius\\]{border-end-start-radius:var(--bq-accordion--small-radius)}.rounded-es-\\[0px\\]{border-end-start-radius:0}.rounded-se-\\[--bq-accordion--medium-radius\\]{border-start-end-radius:var(--bq-accordion--medium-radius)}.rounded-se-\\[--bq-accordion--small-radius\\]{border-start-end-radius:var(--bq-accordion--small-radius)}.rounded-se-\\[0px\\]{border-start-end-radius:0}.rounded-ss-\\[--bq-accordion--medium-radius\\]{border-start-start-radius:var(--bq-accordion--medium-radius)}.rounded-ss-\\[--bq-accordion--small-radius\\]{border-start-start-radius:var(--bq-accordion--small-radius)}.rounded-ss-\\[0px\\]{border-start-start-radius:0}.border-\\[length\\:--bq-accordion--collapsed-border-width\\]{border-width:var(--bq-accordion--collapsed-border-width)}.border-\\[length\\:--bq-accordion--expanded-border-width\\]{border-width:var(--bq-accordion--expanded-border-width)}.border-\\[length\\:--bq-accordion--panel-filled-border-width\\]{border-width:var(--bq-accordion--panel-filled-border-width)}.border-\\[length\\:--bq-accordion--panel-ghost-border-width\\]{border-width:var(--bq-accordion--panel-ghost-border-width)}.border-\\[color\\:--bq-accordion--collapsed-border-color\\]{border-color:var(--bq-accordion--collapsed-border-color)}.border-\\[color\\:--bq-accordion--expanded-border-color\\]{border-color:var(--bq-accordion--expanded-border-color)}.border-\\[color\\:--bq-accordion--panel-filled-border-color\\]{border-color:var(--bq-accordion--panel-filled-border-color)}.border-\\[color\\:--bq-accordion--panel-ghost-border-color\\]{border-color:var(--bq-accordion--panel-ghost-border-color)}.bg-\\[--bq-accordion--filled-collapsed-background\\]{background-color:var(--bq-accordion--filled-collapsed-background)}.bg-\\[--bq-accordion--filled-expanded-background\\]{background-color:var(--bq-accordion--filled-expanded-background)}.bg-\\[--bq-accordion--ghost-collapsed-background\\]{background-color:var(--bq-accordion--ghost-collapsed-background)}.bg-\\[--bq-accordion--ghost-expanded-background\\]{background-color:var(--bq-accordion--ghost-expanded-background)}.pe-\\[--bq-accordion--medium-padding-end\\]{padding-inline-end:var(--bq-accordion--medium-padding-end)}.pe-\\[--bq-accordion--panel-medium-filled-padding-end\\]{padding-inline-end:var(--bq-accordion--panel-medium-filled-padding-end)}.pe-\\[--bq-accordion--panel-medium-ghost-padding-end\\]{padding-inline-end:var(--bq-accordion--panel-medium-ghost-padding-end)}.pe-\\[--bq-accordion--panel-small-filled-padding-end\\]{padding-inline-end:var(--bq-accordion--panel-small-filled-padding-end)}.pe-\\[--bq-accordion--panel-small-ghost-padding-end\\]{padding-inline-end:var(--bq-accordion--panel-small-ghost-padding-end)}.pe-\\[--bq-accordion--small-padding-end\\]{padding-inline-end:var(--bq-accordion--small-padding-end)}.ps-\\[--bq-accordion--medium-padding-start\\]{padding-inline-start:var(--bq-accordion--medium-padding-start)}.ps-\\[--bq-accordion--panel-medium-filled-padding-start\\]{padding-inline-start:var(--bq-accordion--panel-medium-filled-padding-start)}.ps-\\[--bq-accordion--panel-medium-ghost-padding-start\\]{padding-inline-start:var(--bq-accordion--panel-medium-ghost-padding-start)}.ps-\\[--bq-accordion--panel-small-filled-padding-start\\]{padding-inline-start:var(--bq-accordion--panel-small-filled-padding-start)}.ps-\\[--bq-accordion--panel-small-ghost-padding-start\\]{padding-inline-start:var(--bq-accordion--panel-small-ghost-padding-start)}.ps-\\[--bq-accordion--small-padding-start\\]{padding-inline-start:var(--bq-accordion--small-padding-start)}.text-\\[--bq-accordion--filled-collapsed-text-color\\]{color:var(--bq-accordion--filled-collapsed-text-color)}.text-\\[--bq-accordion--filled-expanded-text-color\\]{color:var(--bq-accordion--filled-expanded-text-color)}.text-\\[--bq-accordion--ghost-collapsed-text-color\\]{color:var(--bq-accordion--ghost-collapsed-text-color)}.text-\\[--bq-accordion--ghost-expanded-text-color\\]{color:var(--bq-accordion--ghost-expanded-text-color)}.opacity-60{opacity:.6}.transition-\\[block-size\\2c content-visibility\\]{transition-duration:.15s;transition-property:block-size,content-visibility;transition-timing-function:cubic-bezier(.4,0,.2,1)}.transition-colors{transition-duration:.15s;transition-property:color,background-color,border-color,text-decoration-color,fill,stroke;transition-timing-function:cubic-bezier(.4,0,.2,1)}.duration-300{transition-duration:.3s}.ease-in-out{transition-timing-function:cubic-bezier(.4,0,.2,1)}.bs-0{block-size:0}.bs-auto{block-size:auto}.p-b-\\[--bq-accordion--medium-padding-y\\]{padding-block:var(--bq-accordion--medium-padding-y)}.p-b-\\[--bq-accordion--panel-medium-filled-padding-y\\]{padding-block:var(--bq-accordion--panel-medium-filled-padding-y)}.p-b-\\[--bq-accordion--panel-medium-ghost-padding-y\\]{padding-block:var(--bq-accordion--panel-medium-ghost-padding-y)}.p-b-\\[--bq-accordion--panel-small-filled-padding-y\\]{padding-block:var(--bq-accordion--panel-small-filled-padding-y)}.p-b-\\[--bq-accordion--panel-small-ghost-padding-y\\]{padding-block:var(--bq-accordion--panel-small-ghost-padding-y)}.p-b-\\[--bq-accordion--small-padding-y\\]{padding-block:var(--bq-accordion--small-padding-y)}.\\[transition-behavior\\:allow-discrete\\]{transition-behavior:allow-discrete}@-webkit-keyframes fade-in{0%{opacity:0}}@keyframes fade-in{0%{opacity:0}}@-webkit-keyframes slide-in{0%{-webkit-transform:translateY(10px);transform:translateY(10px)}}@keyframes slide-in{0%{-webkit-transform:translateY(10px);transform:translateY(10px)}}@-webkit-keyframes spin{0%{-webkit-transform:rotate(0deg);transform:rotate(0deg)}to{-webkit-transform:rotate(1turn);transform:rotate(1turn)}}@keyframes spin{0%{-webkit-transform:rotate(0deg);transform:rotate(0deg)}to{-webkit-transform:rotate(1turn);transform:rotate(1turn)}}:host{--bq-accordion--small-padding-y:var(--bq-spacing-xs);--bq-accordion--small-padding-start:var(--bq-spacing-s);--bq-accordion--small-padding-end:var(--bq-spacing-s);--bq-accordion--small-gap:var(--bq-spacing-xs);--bq-accordion--small-radius:var(--bq-radius--xs);--bq-accordion--medium-padding-y:var(--bq-spacing-s);--bq-accordion--medium-padding-start:var(--bq-spacing-m);--bq-accordion--medium-padding-end:var(--bq-spacing-m);--bq-accordion--medium-gap:var(--bq-spacing-m);--bq-accordion--medium-radius:var(--bq-radius--xs);--bq-accordion--collapsed-border-color:transparent;--bq-accordion--collapsed-border-style:none;--bq-accordion--collapsed-border-width:unset;--bq-accordion--expanded-border-color:transparent;--bq-accordion--expanded-border-style:none;--bq-accordion--expanded-border-width:unset;--bq-accordion--filled-collapsed-background:var(--bq-ui--secondary);--bq-accordion--filled-collapsed-text-color:var(--bq-text--primary);--bq-accordion--filled-expanded-background:var(--bq-ui--brand-alt);--bq-accordion--filled-expanded-text-color:var(--bq-text--primary);--bq-accordion--ghost-collapsed-background:transparent;--bq-accordion--ghost-collapsed-text-color:var(--bq-text--primary);--bq-accordion--ghost-expanded-background:transparent;--bq-accordion--ghost-expanded-text-color:var(--bq-text--brand);--bq-accordion--panel-filled-border-color:var(--bq-stroke--primary);--bq-accordion--panel-filled-border-style:solid;--bq-accordion--panel-filled-border-width:var(--bq-stroke-s);--bq-accordion--panel-small-filled-padding-y:var(--bq-spacing-s);--bq-accordion--panel-small-filled-padding-start:var(--bq-spacing-s);--bq-accordion--panel-small-filled-padding-end:var(--bq-spacing-s);--bq-accordion--panel-medium-filled-padding-y:var(--bq-spacing-m);--bq-accordion--panel-medium-filled-padding-start:var(--bq-spacing-m);--bq-accordion--panel-medium-filled-padding-end:var(--bq-spacing-m);--bq-accordion--panel-ghost-border-color:transparent;--bq-accordion--panel-ghost-border-style:none;--bq-accordion--panel-ghost-border-width:unset;--bq-accordion--panel-small-ghost-padding-y:var(--bq-spacing-s);--bq-accordion--panel-small-ghost-padding-start:var(--bq-spacing-l);--bq-accordion--panel-small-ghost-padding-end:var(--bq-spacing-l);--bq-accordion--panel-medium-ghost-padding-y:var(--bq-spacing-m);--bq-accordion--panel-medium-ghost-padding-start:var(--bq-spacing-xl);--bq-accordion--panel-medium-ghost-padding-end:var(--bq-spacing-xl);display:block}.bq-accordion.disabled{cursor:not-allowed;opacity:.6}.bq-accordion.disabled .bq-accordion__header{pointer-events:none}.bq-accordion.small .bq-accordion__header{border-end-end-radius:var(--bq-accordion--small-radius);border-end-start-radius:var(--bq-accordion--small-radius);border-start-end-radius:var(--bq-accordion--small-radius);border-start-start-radius:var(--bq-accordion--small-radius);gap:var(--bq-accordion--small-gap);padding-block:var(--bq-accordion--small-padding-y);padding-inline-end:var(--bq-accordion--small-padding-end);padding-inline-start:var(--bq-accordion--small-padding-start)}.bq-accordion.medium .bq-accordion__header{border-end-end-radius:var(--bq-accordion--medium-radius);border-end-start-radius:var(--bq-accordion--medium-radius);border-start-end-radius:var(--bq-accordion--medium-radius);border-start-start-radius:var(--bq-accordion--medium-radius);gap:var(--bq-accordion--medium-gap);padding-block:var(--bq-accordion--medium-padding-y);padding-inline-end:var(--bq-accordion--medium-padding-end);padding-inline-start:var(--bq-accordion--medium-padding-start)}.bq-accordion[open] .bq-accordion__header{border-color:var(--bq-accordion--expanded-border-color);border-end-end-radius:0;border-end-start-radius:0;border-style:var(--bq-accordion--expanded-border-style);border-width:var(--bq-accordion--expanded-border-width)}.bq-accordion.small .bq-accordion__body{border-end-end-radius:var(--bq-accordion--small-radius);border-end-start-radius:var(--bq-accordion--small-radius);border-start-end-radius:0;border-start-start-radius:0}.bq-accordion.medium .bq-accordion__body{border-end-end-radius:var(--bq-accordion--medium-radius);border-end-start-radius:var(--bq-accordion--medium-radius);border-start-end-radius:0;border-start-start-radius:0}.bq-accordion.filled .bq-accordion__header{background-color:var(--bq-accordion--filled-collapsed-background)}.bq-accordion.filled .bq-accordion__header:hover{background-color:color-mix(in srgb,var(--bq-ui--secondary),var(--bq-hover) 20%)}.bq-accordion.filled .bq-accordion__header--text{color:var(--bq-accordion--filled-collapsed-text-color)}.bq-accordion.filled .bq-accordion__body{border-color:var(--bq-accordion--panel-filled-border-color);border-style:var(--bq-accordion--panel-filled-border-style);border-width:var(--bq-accordion--panel-filled-border-width)}.bq-accordion.filled[open] .bq-accordion__header{background-color:var(--bq-accordion--filled-expanded-background)}.bq-accordion.filled[open] .bq-accordion__header:hover{background-color:color-mix(in srgb,var(--bq-ui--secondary),var(--bq-hover) 20%)}.bq-accordion.filled[open] .bq-accordion__header--text{color:var(--bq-accordion--filled-expanded-text-color)}.bq-accordion.ghost .bq-accordion__header{background-color:var(--bq-accordion--ghost-collapsed-background)}.bq-accordion.ghost .bq-accordion__header:hover{background-color:color-mix(in srgb,var(--bq-ui--secondary),var(--bq-hover) 20%)}.bq-accordion.ghost .bq-accordion__header--text{color:var(--bq-accordion--ghost-collapsed-text-color)}.bq-accordion.ghost .bq-accordion__body{border-color:var(--bq-accordion--panel-ghost-border-color);border-style:var(--bq-accordion--panel-ghost-border-style);border-width:var(--bq-accordion--panel-ghost-border-width)}.bq-accordion.ghost[open] .bq-accordion__header{background-color:var(--bq-accordion--ghost-expanded-background)}.bq-accordion.ghost[open] .bq-accordion__header:hover{background-color:color-mix(in srgb,var(--bq-ui--secondary),var(--bq-hover) 20%)}.bq-accordion.ghost[open] .bq-accordion__header--text{color:var(--bq-accordion--ghost-expanded-text-color)}.bq-accordion.small.filled .bq-accordion__body{padding-block:var(--bq-accordion--panel-small-filled-padding-y);padding-inline-end:var(--bq-accordion--panel-small-filled-padding-end);padding-inline-start:var(--bq-accordion--panel-small-filled-padding-start)}.bq-accordion.medium.filled .bq-accordion__body{padding-block:var(--bq-accordion--panel-medium-filled-padding-y);padding-inline-end:var(--bq-accordion--panel-medium-filled-padding-end);padding-inline-start:var(--bq-accordion--panel-medium-filled-padding-start)}.bq-accordion.small.ghost .bq-accordion__body{padding-block:var(--bq-accordion--panel-small-ghost-padding-y);padding-inline-end:var(--bq-accordion--panel-small-ghost-padding-end);padding-inline-start:var(--bq-accordion--panel-small-ghost-padding-start)}.bq-accordion.medium.ghost .bq-accordion__body{padding-block:var(--bq-accordion--panel-medium-ghost-padding-y);padding-inline-end:var(--bq-accordion--panel-medium-ghost-padding-end);padding-inline-start:var(--bq-accordion--panel-medium-ghost-padding-start)}.bq-accordion::details-content{transition-behavior:allow-discrete;block-size:0;display:block;overflow:hidden;transition-duration:.3s;transition-property:block-size,content-visibility;transition-timing-function:cubic-bezier(.4,0,.2,1)}.bq-accordion[open]::details-content{block-size:auto}@supports (block-size:calc-size(auto)){.bq-accordion[open]:not(.no-animation)::details-content{block-size:calc-size(auto)}}.bq-accordion__header{--bq-ring-offset-width:-2px;align-items:center;border-color:var(--bq-accordion--collapsed-border-color);border-style:var(--bq-accordion--collapsed-border-style);border-width:var(--bq-accordion--collapsed-border-width);cursor:pointer;display:flex;list-style-type:none;transition-duration:.3s;transition-property:color,background-color,border-color,text-decoration-color,fill,stroke;transition-timing-function:cubic-bezier(.4,0,.2,1);user-select:none}.bq-accordion__header:focus-visible{outline:var(--bq-ring-width,2px) solid var(--bq-ring-color-focus,var(--bq-focus));outline-offset:var(--bq-ring-offset-width,1px)}.bq-accordion__header::-webkit-details-marker,.bq-accordion__header::marker{display:none}.bq-accordion__header--text{flex:1 1 0%}.bq-accordion__header--prefix,.bq-accordion__header--suffix{align-items:center;display:flex;justify-content:center}.focus-visible\\:focus:focus-visible{outline:var(--bq-ring-width,2px) solid var(--bq-ring-color-focus,var(--bq-focus));outline-offset:var(--bq-ring-offset-width,1px)}.hover\\:bg-hover-ui-secondary:hover{background-color:color-mix(in srgb,var(--bq-ui--secondary),var(--bq-hover) 20%)}@supports (block-size:calc-size(auto)){.supports-\\[block-size\\:calc-size\\(auto\\)\\]\\:bs-\\[calc-size\\(auto\\)\\]{block-size:calc-size(auto)}}.rotate-180{--tw-translate-x:0;--tw-translate-y:0;--tw-rotate:0;--tw-skew-x:0;--tw-skew-y:0;--tw-scale-x:1;--tw-scale-y:1;--tw-rotate:180deg;transform:translate(var(--tw-translate-x),var(--tw-translate-y)) rotate(var(--tw-rotate)) skewX(var(--tw-skew-x)) skewY(var(--tw-skew-y)) scaleX(var(--tw-scale-x)) scaleY(var(--tw-scale-y))}.collapse{visibility:collapse}.static{position:static}.\\!hidden{display:none!important}.transition-transform{transition-duration:.15s;transition-property:transform;transition-timing-function:cubic-bezier(.4,0,.2,1)}.text-\\[color\\:--bq-icon--color\\]{color:var(--bq-icon--color)}.bs-\\[--bq-icon--size\\]{block-size:var(--bq-icon--size)}.is-\\[--bq-icon--size\\]{inline-size:var(--bq-icon--size)}';
|
|
116
|
+
|
|
117
|
+
const s = c;
|
|
118
|
+
|
|
119
|
+
const q = class {
|
|
120
|
+
constructor(e) {
|
|
121
|
+
a(this, e);
|
|
122
|
+
this.bqBlur = r(this, "bqBlur", 7);
|
|
123
|
+
this.bqFocus = r(this, "bqFocus", 7);
|
|
124
|
+
this.bqOpen = r(this, "bqOpen", 7);
|
|
125
|
+
this.bqAfterOpen = r(this, "bqAfterOpen", 7);
|
|
126
|
+
this.bqClose = r(this, "bqClose", 7);
|
|
127
|
+
this.bqAfterClose = r(this, "bqAfterClose", 7);
|
|
128
|
+
this.bqClick = r(this, "bqClick", 7);
|
|
129
|
+
// Public methods API
|
|
130
|
+
// These methods are exposed on the host element.
|
|
131
|
+
// Always use two lines.
|
|
132
|
+
// Public Methods must be async.
|
|
133
|
+
// Requires JSDocs for public API documentation.
|
|
134
|
+
// ===============================================
|
|
135
|
+
// Local methods
|
|
136
|
+
// Internal business logic.
|
|
137
|
+
// These methods cannot be called from the host element.
|
|
138
|
+
// =======================================================
|
|
139
|
+
this.handleClick = a => {
|
|
140
|
+
a.preventDefault();
|
|
141
|
+
if (this.disabled) return;
|
|
142
|
+
this.bqClick.emit(this.el);
|
|
143
|
+
this.expanded = !this.expanded;
|
|
144
|
+
};
|
|
145
|
+
this.handleFocus = () => {
|
|
146
|
+
if (this.disabled) return;
|
|
147
|
+
this.bqFocus.emit(this.el);
|
|
148
|
+
};
|
|
149
|
+
this.handleBlur = () => {
|
|
150
|
+
this.bqBlur.emit(this.el);
|
|
151
|
+
};
|
|
152
|
+
this.handlePrefixSlotChange = () => {
|
|
153
|
+
this.hasPrefix = o(this.prefixElem, "prefix");
|
|
154
|
+
};
|
|
155
|
+
this.handleSuffixSlotChange = () => {
|
|
156
|
+
this.hasSuffix = o(this.suffixElem, "suffix");
|
|
157
|
+
};
|
|
158
|
+
this.hasPrefix = false;
|
|
159
|
+
this.hasSuffix = false;
|
|
160
|
+
this.appearance = "filled";
|
|
161
|
+
this.disabled = false;
|
|
162
|
+
this.expanded = false;
|
|
163
|
+
this.noAnimation = false;
|
|
164
|
+
this.rotate = false;
|
|
165
|
+
this.size = "medium";
|
|
166
|
+
}
|
|
167
|
+
// Prop lifecycle events
|
|
168
|
+
// =======================
|
|
169
|
+
checkPropValues() {
|
|
170
|
+
b(i, "medium", this.el, "size");
|
|
171
|
+
b(d, "filled", this.el, "appearance");
|
|
172
|
+
}
|
|
173
|
+
handleExpandedChange() {
|
|
174
|
+
var a, r;
|
|
175
|
+
const e = this.expanded ? this.bqOpen.emit(this.el) : this.bqClose.emit(this.el);
|
|
176
|
+
if (e.defaultPrevented) {
|
|
177
|
+
this.expanded = !this.expanded;
|
|
178
|
+
return;
|
|
179
|
+
}
|
|
180
|
+
this.expanded ? (a = this.accordion) === null || a === void 0 ? void 0 : a.open() : (r = this.accordion) === null || r === void 0 ? void 0 : r.close();
|
|
181
|
+
if (!this.isCssCalcSizeSupported) return;
|
|
182
|
+
// NOTE: This is a workaround to trigger the transitionEnd event
|
|
183
|
+
// when the open/close animation is handled via CSS instead of JS
|
|
184
|
+
setTimeout((() => {
|
|
185
|
+
this.el.dispatchEvent(new CustomEvent("accordionTransitionEnd", {
|
|
186
|
+
bubbles: false,
|
|
187
|
+
composed: true
|
|
188
|
+
}));
|
|
189
|
+
}), 200);
|
|
190
|
+
}
|
|
191
|
+
handleDisabledChange() {
|
|
192
|
+
if (!this.disabled) return;
|
|
193
|
+
this.expanded = false;
|
|
194
|
+
}
|
|
195
|
+
handleJsAnimation() {
|
|
196
|
+
if (this.isCssCalcSizeSupported) return;
|
|
197
|
+
console.warn(`[bq-accordion] calc-size() is not supported and animation will be set through JS\n For vertical layout, consider using the 'noAnimation' prop ('no-animation' attribute) to disable it`);
|
|
198
|
+
this.accordion = !this.noAnimation ? new t(this.detailsElem) : null;
|
|
199
|
+
}
|
|
200
|
+
// Component lifecycle events
|
|
201
|
+
// Ordered by their natural call order
|
|
202
|
+
// =====================================
|
|
203
|
+
componentWillLoad() {
|
|
204
|
+
this.checkPropValues();
|
|
205
|
+
}
|
|
206
|
+
componentDidLoad() {
|
|
207
|
+
this.handleJsAnimation();
|
|
208
|
+
this.handleExpandedChange();
|
|
209
|
+
}
|
|
210
|
+
// Listeners
|
|
211
|
+
// ==============
|
|
212
|
+
onAccordionTransitionEnd(a) {
|
|
213
|
+
a.stopPropagation();
|
|
214
|
+
if (a.target !== this.el) return;
|
|
215
|
+
this.expanded ? this.bqAfterOpen.emit(this.el) : this.bqAfterClose.emit(this.el);
|
|
216
|
+
}
|
|
217
|
+
get open() {
|
|
218
|
+
return this.expanded && !this.disabled;
|
|
219
|
+
}
|
|
220
|
+
get isCssCalcSizeSupported() {
|
|
221
|
+
var a;
|
|
222
|
+
return (a = window.CSS) === null || a === void 0 ? void 0 : a.supports("(block-size: calc-size(auto))");
|
|
223
|
+
}
|
|
224
|
+
// render() function
|
|
225
|
+
// Always the last one in the class.
|
|
226
|
+
// ===================================
|
|
227
|
+
render() {
|
|
228
|
+
return e("details", {
|
|
229
|
+
key: "48c1d654694d4999c6d325fcbde8c43486e62213",
|
|
230
|
+
class: {
|
|
231
|
+
[`bq-accordion overflow-hidden ${this.size} ${this.appearance}`]: true,
|
|
232
|
+
"no-animation": this.noAnimation,
|
|
233
|
+
disabled: this.disabled
|
|
234
|
+
},
|
|
235
|
+
ref: a => this.detailsElem = a,
|
|
236
|
+
open: this.open,
|
|
237
|
+
part: "base"
|
|
238
|
+
}, e("summary", {
|
|
239
|
+
key: "f8fc495b559b16237b3a8ad49f5499d239cd68e8",
|
|
240
|
+
class: "bq-accordion__header",
|
|
241
|
+
onClick: this.handleClick,
|
|
242
|
+
onFocus: this.handleFocus,
|
|
243
|
+
onBlur: this.handleBlur,
|
|
244
|
+
"aria-expanded": this.expanded,
|
|
245
|
+
"aria-disabled": this.disabled,
|
|
246
|
+
"aria-controls": "bq-accordion__body",
|
|
247
|
+
tabindex: this.disabled ? -1 : 0,
|
|
248
|
+
part: "header"
|
|
249
|
+
}, e("div", {
|
|
250
|
+
key: "305ee372c9c9537fea76e7b57b41ddaeb81640a5",
|
|
251
|
+
ref: a => this.prefixElem = a,
|
|
252
|
+
class: {
|
|
253
|
+
"bq-accordion__header--prefix": true,
|
|
254
|
+
"!hidden": !this.hasPrefix
|
|
255
|
+
},
|
|
256
|
+
part: "prefix"
|
|
257
|
+
}, e("slot", {
|
|
258
|
+
key: "e588a8a2f33215be8e70f642485c3d27c4b7767e",
|
|
259
|
+
name: "prefix",
|
|
260
|
+
onSlotchange: this.handlePrefixSlotChange
|
|
261
|
+
})), e("div", {
|
|
262
|
+
key: "248a47fd82003f7d745c88cdced34b3e6f5855a5",
|
|
263
|
+
class: "bq-accordion__header--text",
|
|
264
|
+
part: "text"
|
|
265
|
+
}, e("slot", {
|
|
266
|
+
key: "eeddb1706abda0deaf90c878f0843176f1f19320",
|
|
267
|
+
name: "header"
|
|
268
|
+
})), e("div", {
|
|
269
|
+
key: "ef62bfb8e766b59282092cdfb052ae71bff5d358",
|
|
270
|
+
ref: a => this.suffixElem = a,
|
|
271
|
+
class: {
|
|
272
|
+
"bq-accordion__header--suffix": true,
|
|
273
|
+
"!hidden": !this.hasSuffix
|
|
274
|
+
},
|
|
275
|
+
part: "suffix"
|
|
276
|
+
}, e("slot", {
|
|
277
|
+
key: "49b08c176cfd66552da0afc327fbbdc39b78d1e2",
|
|
278
|
+
name: "suffix",
|
|
279
|
+
onSlotchange: this.handleSuffixSlotChange
|
|
280
|
+
})), e("div", {
|
|
281
|
+
key: "27d8a460b110c6f33b7e7a49452a2d24ba373b64",
|
|
282
|
+
class: {
|
|
283
|
+
"flex items-center justify-center transition-transform duration-300 ease-in-out": true,
|
|
284
|
+
"!hidden": this.open && !this.rotate,
|
|
285
|
+
"rotate-180": this.rotate && this.open
|
|
286
|
+
}
|
|
287
|
+
}, e("slot", {
|
|
288
|
+
key: "19dc458b735a88262ab5df239404389aed64fdb8",
|
|
289
|
+
name: "expand"
|
|
290
|
+
}, e("bq-icon", {
|
|
291
|
+
key: "e9fdf8236ef47afbf8f1382437e8b68145ba980c",
|
|
292
|
+
name: "plus"
|
|
293
|
+
}))), e("div", {
|
|
294
|
+
key: "853a99dcd4d5418915781c5d02f33b7fe47ac8cb",
|
|
295
|
+
class: {
|
|
296
|
+
"flex items-center justify-center": true,
|
|
297
|
+
"!hidden": !this.open && !this.rotate || this.rotate
|
|
298
|
+
}
|
|
299
|
+
}, e("slot", {
|
|
300
|
+
key: "ee6cb86a458f75df72d35e984ab26676f9d534dd",
|
|
301
|
+
name: "collapse"
|
|
302
|
+
}, e("bq-icon", {
|
|
303
|
+
key: "d84dcc1320fb6ed50933593aebde0e4afc7369fe",
|
|
304
|
+
name: "minus"
|
|
305
|
+
})))), e("div", {
|
|
306
|
+
key: "fef7fff7e8686614b24cf8e84f996f403f6a63cd",
|
|
307
|
+
id: "bq-accordion__body",
|
|
308
|
+
class: "bq-accordion__body overflow-hidden",
|
|
309
|
+
part: "panel"
|
|
310
|
+
}, e("slot", {
|
|
311
|
+
key: "bb5f2a3e57a1b7ec4a05711cb8f14d88b3eaf8e3"
|
|
312
|
+
})));
|
|
313
|
+
}
|
|
314
|
+
get el() {
|
|
315
|
+
return n(this);
|
|
316
|
+
}
|
|
317
|
+
static get watchers() {
|
|
318
|
+
return {
|
|
319
|
+
size: [ "checkPropValues" ],
|
|
320
|
+
expanded: [ "handleExpandedChange" ],
|
|
321
|
+
disabled: [ "handleDisabledChange" ],
|
|
322
|
+
noAnimation: [ "handleJsAnimation" ]
|
|
323
|
+
};
|
|
324
|
+
}
|
|
325
|
+
};
|
|
326
|
+
|
|
327
|
+
q.style = s;
|
|
328
|
+
|
|
329
|
+
export { q as bq_accordion };
|
|
330
|
+
//# sourceMappingURL=p-ac969486.entry.js.map
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"names":["ACCORDION_SIZE","ACCORDION_APPEARANCE","Accordion","constructor","el","this","animationOptions","duration","easing","header","querySelector","panel","animation","isClosing","isExpanding","open","style","height","offsetHeight","window","requestAnimationFrame","expand","close","startHeight","endHeight","cancel","animate","onfinish","onAnimationFinish","oncancel","removeAttribute","endEvent","Event","bubbles","composed","dispatchEvent","bqAccordionCss","BqAccordionStyle0","BqAccordion","handleClick","event","preventDefault","disabled","bqClick","emit","expanded","handleFocus","bqFocus","handleBlur","bqBlur","handlePrefixSlotChange","hasPrefix","hasSlotContent","prefixElem","handleSuffixSlotChange","hasSuffix","suffixElem","checkPropValues","validatePropValue","handleExpandedChange","bqOpen","bqClose","defaultPrevented","_a","accordion","_b","isCssCalcSizeSupported","setTimeout","CustomEvent","handleDisabledChange","handleJsAnimation","console","warn","noAnimation","detailsElem","componentWillLoad","componentDidLoad","onAccordionTransitionEnd","stopPropagation","target","bqAfterOpen","bqAfterClose","CSS","supports","render","h","key","class","size","appearance","ref","part","onClick","onFocus","onBlur","tabindex","element","name","onSlotchange","rotate","id"],"sources":["../../packages/beeq/src/components/accordion/bq-accordion.types.ts","../../packages/beeq/src/components/accordion/helper/index.ts","../../packages/beeq/src/components/accordion/scss/bq-accordion.scss?tag=bq-accordion&encapsulation=shadow","../../packages/beeq/src/components/accordion/bq-accordion.tsx"],"sourcesContent":["export const ACCORDION_SIZE = ['small', 'medium'] as const;\nexport type TAccordionSize = (typeof ACCORDION_SIZE)[number];\n\nexport const ACCORDION_APPEARANCE = ['filled', 'ghost'] as const;\nexport type TAccordionAppearance = (typeof ACCORDION_APPEARANCE)[number];\n","/* -------------------------------------------------------------------------------------- */\n/* 💡 Credits: https://css-tricks.com/how-to-animate-the-details-element-using-waapi */\n/* -------------------------------------------------------------------------------------- */\n\nexport class Accordion {\n private el: HTMLDetailsElement;\n private header: HTMLElement;\n private panel: HTMLElement;\n private animation: Animation | null;\n private isClosing: boolean;\n private isExpanding: boolean;\n private animationOptions = {\n duration: 200,\n easing: 'ease-in-out',\n };\n\n constructor(el: HTMLDetailsElement) {\n // Store the <details> element\n this.el = el;\n // Store the <summary> header element\n this.header = el.querySelector('summary');\n // Store the <div class=\"content\"> element\n this.panel = el.querySelector('.bq-accordion__body');\n // Store the animation object (so we can cancel it, if needed)\n this.animation = null;\n // Store if the element is closing\n this.isClosing = false;\n // Store if the element is expanding\n this.isExpanding = false;\n }\n\n public open() {\n // Check if the element is being closed or is already closed\n if (!this.isClosing && this.el.open) return;\n // Apply a fixed height on the element\n this.el.style.height = `${this.el.offsetHeight}px`;\n // Force the [open] attribute on the details element\n this.el.open = true;\n // Wait for the next frame to call the expand function\n window.requestAnimationFrame(() => this.expand());\n }\n\n public close() {\n // Check if the element is being opened or is already open\n if (!this.isExpanding && !this.el.open) return;\n // Set the element as \"being closed\"\n this.isClosing = true;\n\n // Store the current height of the element\n const startHeight = `${this.el.offsetHeight}px`;\n // Calculate the height of the <summary> header\n const endHeight = `${this.header.offsetHeight}px`;\n\n // If there is already an animation running\n if (this.animation) {\n // Cancel the current animation\n this.animation.cancel();\n }\n\n // Start a WAAPI animation\n this.animation = this.el.animate({ height: [startHeight, endHeight] }, this.animationOptions);\n // When the animation is complete, call onAnimationFinish()\n this.animation.onfinish = () => this.onAnimationFinish(false);\n // If the animation is cancelled, isClosing variable is set to false\n this.animation.oncancel = () => (this.isClosing = false);\n }\n\n // Expands the accordion\n private expand() {\n // Set the element as \"being expanding\"\n this.isExpanding = true;\n // Get the current fixed height of the element\n const startHeight = `${this.el.offsetHeight}px`;\n // Calculate the open height of the element (summary header height + panel body height)\n const endHeight = `${this.header.offsetHeight + this.panel.offsetHeight}px`;\n\n // If there is already an animation running\n if (this.animation) {\n // Cancel the current animation\n this.animation.cancel();\n }\n\n // Start a WAAPI animation\n this.animation = this.el.animate({ height: [startHeight, endHeight] }, this.animationOptions);\n // When the animation is complete, call onAnimationFinish()\n this.animation.onfinish = () => this.onAnimationFinish(true);\n // If the animation is cancelled, isExpanding variable is set to false\n this.animation.oncancel = () => (this.isExpanding = false);\n }\n\n // Handles the end of the animation\n private onAnimationFinish(open: boolean) {\n // Set the open attribute based on the parameter\n this.el.open = open;\n // Clear the stored animation\n this.animation = null;\n // Reset isClosing & isExpanding\n this.isClosing = false;\n this.isExpanding = false;\n // Remove the overflow hidden and the fixed height\n this.el.removeAttribute('style');\n // Dispatch a custom event based on the open parameter\n const endEvent = new Event('accordionTransitionEnd', { bubbles: false, composed: true });\n this.el.dispatchEvent(endEvent);\n }\n}\n","/* -------------------------------------------------------------------------- */\n/* Accordion styles */\n/* -------------------------------------------------------------------------- */\n\n@import './bq-accordion.variables';\n\n:host {\n @apply block;\n}\n\n.bq-accordion {\n &.disabled {\n @apply cursor-not-allowed opacity-60;\n\n .bq-accordion__header {\n @apply pointer-events-none;\n }\n }\n\n &.small .bq-accordion__header {\n @apply gap-[--bq-accordion--small-gap] pe-[--bq-accordion--small-padding-end] ps-[--bq-accordion--small-padding-start] p-b-[--bq-accordion--small-padding-y];\n @apply rounded-ee-[--bq-accordion--small-radius] rounded-es-[--bq-accordion--small-radius] rounded-se-[--bq-accordion--small-radius] rounded-ss-[--bq-accordion--small-radius];\n }\n\n &.medium .bq-accordion__header {\n @apply gap-[--bq-accordion--medium-gap] pe-[--bq-accordion--medium-padding-end] ps-[--bq-accordion--medium-padding-start] p-b-[--bq-accordion--medium-padding-y];\n @apply rounded-ee-[--bq-accordion--medium-radius] rounded-es-[--bq-accordion--medium-radius] rounded-se-[--bq-accordion--medium-radius] rounded-ss-[--bq-accordion--medium-radius];\n }\n\n &[open] .bq-accordion__header {\n @apply border-[length:--bq-accordion--expanded-border-width] border-[color:--bq-accordion--expanded-border-color];\n @apply rounded-ee-[0px] rounded-es-[0px];\n\n border-style: var(--bq-accordion--expanded-border-style);\n }\n\n &.small .bq-accordion__body {\n @apply rounded-ee-[--bq-accordion--small-radius] rounded-es-[--bq-accordion--small-radius] rounded-se-[0px] rounded-ss-[0px];\n }\n\n &.medium .bq-accordion__body {\n @apply rounded-ee-[--bq-accordion--medium-radius] rounded-es-[--bq-accordion--medium-radius] rounded-se-[0px] rounded-ss-[0px];\n }\n\n &.filled {\n .bq-accordion__header {\n @apply bg-[--bq-accordion--filled-collapsed-background] hover:bg-hover-ui-secondary;\n }\n\n .bq-accordion__header--text {\n @apply text-[--bq-accordion--filled-collapsed-text-color];\n }\n\n .bq-accordion__body {\n @apply border-[length:--bq-accordion--panel-filled-border-width] border-[color:--bq-accordion--panel-filled-border-color];\n\n border-style: var(--bq-accordion--panel-filled-border-style);\n }\n\n &[open] .bq-accordion__header {\n @apply bg-[--bq-accordion--filled-expanded-background] hover:bg-hover-ui-secondary;\n }\n\n &[open] .bq-accordion__header--text {\n @apply text-[--bq-accordion--filled-expanded-text-color];\n }\n }\n\n &.ghost {\n .bq-accordion__header {\n @apply bg-[--bq-accordion--ghost-collapsed-background] hover:bg-hover-ui-secondary;\n }\n\n .bq-accordion__header--text {\n @apply text-[--bq-accordion--ghost-collapsed-text-color];\n }\n\n .bq-accordion__body {\n @apply border-[length:--bq-accordion--panel-ghost-border-width] border-[color:--bq-accordion--panel-ghost-border-color];\n\n border-style: var(--bq-accordion--panel-ghost-border-style);\n }\n\n &[open] .bq-accordion__header {\n @apply bg-[--bq-accordion--ghost-expanded-background] hover:bg-hover-ui-secondary;\n }\n\n &[open] .bq-accordion__header--text {\n @apply text-[--bq-accordion--ghost-expanded-text-color];\n }\n }\n\n &.small.filled .bq-accordion__body {\n @apply pe-[--bq-accordion--panel-small-filled-padding-end] ps-[--bq-accordion--panel-small-filled-padding-start] p-b-[--bq-accordion--panel-small-filled-padding-y];\n }\n\n &.medium.filled .bq-accordion__body {\n @apply pe-[--bq-accordion--panel-medium-filled-padding-end] ps-[--bq-accordion--panel-medium-filled-padding-start] p-b-[--bq-accordion--panel-medium-filled-padding-y];\n }\n\n &.small.ghost .bq-accordion__body {\n @apply pe-[--bq-accordion--panel-small-ghost-padding-end] ps-[--bq-accordion--panel-small-ghost-padding-start] p-b-[--bq-accordion--panel-small-ghost-padding-y];\n }\n\n &.medium.ghost .bq-accordion__body {\n @apply pe-[--bq-accordion--panel-medium-ghost-padding-end] ps-[--bq-accordion--panel-medium-ghost-padding-start] p-b-[--bq-accordion--panel-medium-ghost-padding-y];\n }\n}\n\n/* stylelint-disable-next-line selector-pseudo-element-no-unknown */\n.bq-accordion::details-content {\n @apply block overflow-hidden transition-[block-size,content-visibility] duration-300 ease-in-out bs-0 [transition-behavior:allow-discrete];\n}\n\n/* stylelint-disable-next-line selector-pseudo-element-no-unknown */\n.bq-accordion[open]::details-content {\n /* block-size: auto is just a fallback for browsers that don't support the calc-size() function */\n @apply bs-auto;\n}\n\n/* stylelint-disable-next-line selector-pseudo-element-no-unknown */\n.bq-accordion[open]:not(.no-animation)::details-content {\n @apply supports-[block-size:calc-size(auto)]:bs-[calc-size(auto)];\n}\n\n.bq-accordion__header {\n // Since there's an overflow on the <summary> element, the focus outline is not visible,\n // so we force it to be inset to avoid the overflow hidden.\n --bq-ring-offset-width: -2px;\n\n @apply flex cursor-pointer select-none list-none items-center transition-colors duration-300 ease-in-out focus-visible:focus;\n @apply border-[length:--bq-accordion--collapsed-border-width] border-[color:--bq-accordion--collapsed-border-color];\n\n border-style: var(--bq-accordion--collapsed-border-style);\n\n &::marker,\n &::-webkit-details-marker {\n @apply hidden;\n }\n}\n\n.bq-accordion__header--text {\n @apply flex-1;\n}\n\n.bq-accordion__header--prefix,\n.bq-accordion__header--suffix {\n @apply flex items-center justify-center;\n}\n","import { Component, Element, Event, EventEmitter, h, Listen, Prop, State, Watch } from '@stencil/core';\n\nimport { ACCORDION_APPEARANCE, ACCORDION_SIZE, TAccordionAppearance, TAccordionSize } from './bq-accordion.types';\nimport { Accordion } from './helper';\nimport { hasSlotContent, validatePropValue } from '../../shared/utils';\n\n/**\n * @part base - The `<details>` that holds the accordion content\n * @part header - The `<summary>` that holds the accordion header content\n * @part prefix - The `<div>` that holds the accordion text prefix icon / avatar\n * @part text - The `<div>` that holds the accordion header text\n * @part suffix - The `<div>` that holds the accordion text suffix icon\n * @part panel - The `<div>` that holds the accordion panel content\n */\n@Component({\n tag: 'bq-accordion',\n styleUrl: './scss/bq-accordion.scss',\n shadow: true,\n})\nexport class BqAccordion {\n // Own Properties\n // ====================\n\n private accordion: Accordion;\n private prefixElem: HTMLDivElement;\n private suffixElem: HTMLDivElement;\n private detailsElem: HTMLDetailsElement;\n\n // Reference to host HTML element\n // ===================================\n\n @Element() el!: HTMLBqAccordionElement;\n\n // State() variables\n // Inlined decorator, alphabetical order\n // =======================================\n\n @State() private hasPrefix = false;\n @State() private hasSuffix = false;\n\n // Public Property API\n // ========================\n\n /** The appearance style of accordion */\n @Prop({ reflect: true, mutable: true }) appearance: TAccordionAppearance = 'filled';\n\n /** If true accordion is disabled */\n @Prop({ reflect: true }) disabled: boolean = false;\n\n /** If true accordion is expanded */\n @Prop({ reflect: true, mutable: true }) expanded: boolean = false;\n\n /**\n * Animation is set through JS when the browser does not support CSS calc-size()\n * If true, the accordion animation, will be disabled. No animation will be applied.\n */\n @Prop({ reflect: true }) noAnimation: boolean = false;\n\n /** If true accordion expand icon is rotate 180deg when expanded */\n @Prop({ reflect: true }) rotate: boolean = false;\n\n /** The size of accordion */\n @Prop({ reflect: true, mutable: true }) size: TAccordionSize = 'medium';\n\n // Prop lifecycle events\n // =======================\n\n @Watch('size')\n checkPropValues() {\n validatePropValue(ACCORDION_SIZE, 'medium', this.el, 'size');\n validatePropValue(ACCORDION_APPEARANCE, 'filled', this.el, 'appearance');\n }\n\n @Watch('expanded')\n handleExpandedChange() {\n const event = this.expanded ? this.bqOpen.emit(this.el) : this.bqClose.emit(this.el);\n if (event.defaultPrevented) {\n this.expanded = !this.expanded;\n return;\n }\n\n this.expanded ? this.accordion?.open() : this.accordion?.close();\n if (!this.isCssCalcSizeSupported) return;\n\n // NOTE: This is a workaround to trigger the transitionEnd event\n // when the open/close animation is handled via CSS instead of JS\n setTimeout(() => {\n this.el.dispatchEvent(new CustomEvent('accordionTransitionEnd', { bubbles: false, composed: true }));\n }, 200);\n }\n\n @Watch('disabled')\n handleDisabledChange() {\n if (!this.disabled) return;\n\n this.expanded = false;\n }\n\n @Watch('noAnimation')\n handleJsAnimation() {\n if (this.isCssCalcSizeSupported) return;\n\n console.warn(\n `[bq-accordion] calc-size() is not supported and animation will be set through JS\n For vertical layout, consider using the 'noAnimation' prop ('no-animation' attribute) to disable it`,\n );\n this.accordion = !this.noAnimation ? new Accordion(this.detailsElem) : null;\n }\n\n // Events section\n // Requires JSDocs for public API documentation\n // ==============================================\n\n /** Handler to be called when the accordion loses focus */\n @Event() bqBlur: EventEmitter<HTMLBqAccordionElement>;\n\n /** Handler to be called when the accordion gets focus */\n @Event() bqFocus: EventEmitter<HTMLBqAccordionElement>;\n\n /** Handler to be called when the accordion is opened */\n @Event() bqOpen: EventEmitter<HTMLBqAccordionElement>;\n\n /** Handler to be called after the accordion is opened */\n @Event() bqAfterOpen: EventEmitter<HTMLBqAccordionElement>;\n\n /** Handler to be called when the accordion is closed */\n @Event() bqClose: EventEmitter<HTMLBqAccordionElement>;\n\n /** Handler to be called after the accordion is closed */\n @Event() bqAfterClose: EventEmitter<HTMLBqAccordionElement>;\n\n /** @internal Handler to be called when the accordion is clicked */\n @Event() bqClick: EventEmitter<HTMLBqAccordionElement>;\n\n // Component lifecycle events\n // Ordered by their natural call order\n // =====================================\n\n componentWillLoad() {\n this.checkPropValues();\n }\n\n componentDidLoad() {\n this.handleJsAnimation();\n this.handleExpandedChange();\n }\n\n // Listeners\n // ==============\n\n @Listen('accordionTransitionEnd')\n onAccordionTransitionEnd(event: CustomEvent) {\n event.stopPropagation();\n if (event.target !== this.el) return;\n\n this.expanded ? this.bqAfterOpen.emit(this.el) : this.bqAfterClose.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 handleClick = (event: MouseEvent) => {\n event.preventDefault();\n\n if (this.disabled) return;\n\n this.bqClick.emit(this.el);\n this.expanded = !this.expanded;\n };\n\n private handleFocus = () => {\n if (this.disabled) return;\n\n this.bqFocus.emit(this.el);\n };\n\n private handleBlur = () => {\n this.bqBlur.emit(this.el);\n };\n\n private handlePrefixSlotChange = () => {\n this.hasPrefix = hasSlotContent(this.prefixElem, 'prefix');\n };\n\n private handleSuffixSlotChange = () => {\n this.hasSuffix = hasSlotContent(this.suffixElem, 'suffix');\n };\n\n private get open() {\n return this.expanded && !this.disabled;\n }\n\n private get isCssCalcSizeSupported() {\n return window.CSS?.supports('(block-size: calc-size(auto))');\n }\n\n // render() function\n // Always the last one in the class.\n // ===================================\n\n render() {\n return (\n <details\n class={{\n [`bq-accordion overflow-hidden ${this.size} ${this.appearance}`]: true,\n 'no-animation': this.noAnimation,\n disabled: this.disabled,\n }}\n ref={(detailsElem: HTMLDetailsElement) => (this.detailsElem = detailsElem)}\n open={this.open}\n part=\"base\"\n >\n <summary\n class=\"bq-accordion__header\"\n onClick={this.handleClick}\n onFocus={this.handleFocus}\n onBlur={this.handleBlur}\n aria-expanded={this.expanded}\n aria-disabled={this.disabled}\n aria-controls=\"bq-accordion__body\"\n tabindex={this.disabled ? -1 : 0}\n part=\"header\"\n >\n <div\n ref={(element) => (this.prefixElem = element)}\n class={{ 'bq-accordion__header--prefix': true, '!hidden': !this.hasPrefix }}\n part=\"prefix\"\n >\n <slot name=\"prefix\" onSlotchange={this.handlePrefixSlotChange} />\n </div>\n <div class=\"bq-accordion__header--text\" part=\"text\">\n <slot name=\"header\" />\n </div>\n <div\n ref={(element) => (this.suffixElem = element)}\n class={{ 'bq-accordion__header--suffix': true, '!hidden': !this.hasSuffix }}\n part=\"suffix\"\n >\n <slot name=\"suffix\" onSlotchange={this.handleSuffixSlotChange} />\n </div>\n <div\n class={{\n 'flex items-center justify-center transition-transform duration-300 ease-in-out': true,\n '!hidden': this.open && !this.rotate,\n 'rotate-180': this.rotate && this.open,\n }}\n >\n <slot name=\"expand\">\n <bq-icon name=\"plus\" />\n </slot>\n </div>\n <div\n class={{ 'flex items-center justify-center': true, '!hidden': (!this.open && !this.rotate) || this.rotate }}\n >\n <slot name=\"collapse\">\n <bq-icon name=\"minus\" />\n </slot>\n </div>\n </summary>\n <div id=\"bq-accordion__body\" class=\"bq-accordion__body overflow-hidden\" part=\"panel\">\n <slot />\n </div>\n </details>\n );\n }\n}\n"],"mappings":";;;;oJAAO,MAAMA,EAAiB,CAAC,QAAS,UAGjC,MAAMC,EAAuB,CAAC,SAAU,S,MCClCC,EAYX,WAAAC,CAAYC,GALJC,KAAAC,iBAAmB,CACzBC,SAAU,IACVC,OAAQ,eAKRH,KAAKD,GAAKA,EAEVC,KAAKI,OAASL,EAAGM,cAAc,WAE/BL,KAAKM,MAAQP,EAAGM,cAAc,uBAE9BL,KAAKO,UAAY,KAEjBP,KAAKQ,UAAY,MAEjBR,KAAKS,YAAc,K,CAGd,IAAAC,GAEL,IAAKV,KAAKQ,WAAaR,KAAKD,GAAGW,KAAM,OAErCV,KAAKD,GAAGY,MAAMC,OAAS,GAAGZ,KAAKD,GAAGc,iBAElCb,KAAKD,GAAGW,KAAO,KAEfI,OAAOC,uBAAsB,IAAMf,KAAKgB,U,CAGnC,KAAAC,GAEL,IAAKjB,KAAKS,cAAgBT,KAAKD,GAAGW,KAAM,OAExCV,KAAKQ,UAAY,KAGjB,MAAMU,EAAc,GAAGlB,KAAKD,GAAGc,iBAE/B,MAAMM,EAAY,GAAGnB,KAAKI,OAAOS,iBAGjC,GAAIb,KAAKO,UAAW,CAElBP,KAAKO,UAAUa,Q,CAIjBpB,KAAKO,UAAYP,KAAKD,GAAGsB,QAAQ,CAAET,OAAQ,CAACM,EAAaC,IAAcnB,KAAKC,kBAE5ED,KAAKO,UAAUe,SAAW,IAAMtB,KAAKuB,kBAAkB,OAEvDvB,KAAKO,UAAUiB,SAAW,IAAOxB,KAAKQ,UAAY,K,CAI5C,MAAAQ,GAENhB,KAAKS,YAAc,KAEnB,MAAMS,EAAc,GAAGlB,KAAKD,GAAGc,iBAE/B,MAAMM,EAAY,GAAGnB,KAAKI,OAAOS,aAAeb,KAAKM,MAAMO,iBAG3D,GAAIb,KAAKO,UAAW,CAElBP,KAAKO,UAAUa,Q,CAIjBpB,KAAKO,UAAYP,KAAKD,GAAGsB,QAAQ,CAAET,OAAQ,CAACM,EAAaC,IAAcnB,KAAKC,kBAE5ED,KAAKO,UAAUe,SAAW,IAAMtB,KAAKuB,kBAAkB,MAEvDvB,KAAKO,UAAUiB,SAAW,IAAOxB,KAAKS,YAAc,K,CAI9C,iBAAAc,CAAkBb,GAExBV,KAAKD,GAAGW,KAAOA,EAEfV,KAAKO,UAAY,KAEjBP,KAAKQ,UAAY,MACjBR,KAAKS,YAAc,MAEnBT,KAAKD,GAAG0B,gBAAgB,SAExB,MAAMC,EAAW,IAAIC,MAAM,yBAA0B,CAAEC,QAAS,MAAOC,SAAU,OACjF7B,KAAKD,GAAG+B,cAAcJ,E,ECvG1B,MAAMK,EAAiB,49jCACvB,MAAAC,EAAeD,E,MCkBFE,EAAW,M,8QAuJdjC,KAAAkC,YAAeC,IACrBA,EAAMC,iBAEN,GAAIpC,KAAKqC,SAAU,OAEnBrC,KAAKsC,QAAQC,KAAKvC,KAAKD,IACvBC,KAAKwC,UAAYxC,KAAKwC,QAAQ,EAGxBxC,KAAAyC,YAAc,KACpB,GAAIzC,KAAKqC,SAAU,OAEnBrC,KAAK0C,QAAQH,KAAKvC,KAAKD,GAAG,EAGpBC,KAAA2C,WAAa,KACnB3C,KAAK4C,OAAOL,KAAKvC,KAAKD,GAAG,EAGnBC,KAAA6C,uBAAyB,KAC/B7C,KAAK8C,UAAYC,EAAe/C,KAAKgD,WAAY,SAAS,EAGpDhD,KAAAiD,uBAAyB,KAC/BjD,KAAKkD,UAAYH,EAAe/C,KAAKmD,WAAY,SAAS,E,eA7J/B,M,eACA,M,gBAM8C,S,cAG9B,M,cAGe,M,iBAMZ,M,YAGL,M,UAGoB,Q,CAM/D,eAAAC,GACEC,EAAkB1D,EAAgB,SAAUK,KAAKD,GAAI,QACrDsD,EAAkBzD,EAAsB,SAAUI,KAAKD,GAAI,a,CAI7D,oBAAAuD,G,QACE,MAAMnB,EAAQnC,KAAKwC,SAAWxC,KAAKuD,OAAOhB,KAAKvC,KAAKD,IAAMC,KAAKwD,QAAQjB,KAAKvC,KAAKD,IACjF,GAAIoC,EAAMsB,iBAAkB,CAC1BzD,KAAKwC,UAAYxC,KAAKwC,SACtB,M,CAGFxC,KAAKwC,UAAWkB,EAAA1D,KAAK2D,aAAS,MAAAD,SAAA,SAAAA,EAAEhD,QAASkD,EAAA5D,KAAK2D,aAAS,MAAAC,SAAA,SAAAA,EAAE3C,QACzD,IAAKjB,KAAK6D,uBAAwB,OAIlCC,YAAW,KACT9D,KAAKD,GAAG+B,cAAc,IAAIiC,YAAY,yBAA0B,CAAEnC,QAAS,MAAOC,SAAU,OAAQ,GACnG,I,CAIL,oBAAAmC,GACE,IAAKhE,KAAKqC,SAAU,OAEpBrC,KAAKwC,SAAW,K,CAIlB,iBAAAyB,GACE,GAAIjE,KAAK6D,uBAAwB,OAEjCK,QAAQC,KACN,iMAGFnE,KAAK2D,WAAa3D,KAAKoE,YAAc,IAAIvE,EAAUG,KAAKqE,aAAe,I,CAgCzE,iBAAAC,GACEtE,KAAKoD,iB,CAGP,gBAAAmB,GACEvE,KAAKiE,oBACLjE,KAAKsD,sB,CAOP,wBAAAkB,CAAyBrC,GACvBA,EAAMsC,kBACN,GAAItC,EAAMuC,SAAW1E,KAAKD,GAAI,OAE9BC,KAAKwC,SAAWxC,KAAK2E,YAAYpC,KAAKvC,KAAKD,IAAMC,KAAK4E,aAAarC,KAAKvC,KAAKD,G,CA0C/E,QAAYW,GACV,OAAOV,KAAKwC,WAAaxC,KAAKqC,Q,CAGhC,0BAAYwB,G,MACV,OAAOH,EAAA5C,OAAO+D,OAAG,MAAAnB,SAAA,SAAAA,EAAEoB,SAAS,gC,CAO9B,MAAAC,GACE,OACEC,EAAA,WAAAC,IAAA,2CACEC,MAAO,CACL,CAAC,gCAAgClF,KAAKmF,QAAQnF,KAAKoF,cAAe,KAClE,eAAgBpF,KAAKoE,YACrB/B,SAAUrC,KAAKqC,UAEjBgD,IAAMhB,GAAqCrE,KAAKqE,YAAcA,EAC9D3D,KAAMV,KAAKU,KACX4E,KAAK,QAELN,EAAA,WAAAC,IAAA,2CACEC,MAAM,uBACNK,QAASvF,KAAKkC,YACdsD,QAASxF,KAAKyC,YACdgD,OAAQzF,KAAK2C,WAAU,gBACR3C,KAAKwC,SAAQ,gBACbxC,KAAKqC,SAAQ,gBACd,qBACdqD,SAAU1F,KAAKqC,UAAY,EAAI,EAC/BiD,KAAK,UAELN,EAAA,OAAAC,IAAA,2CACEI,IAAMM,GAAa3F,KAAKgD,WAAa2C,EACrCT,MAAO,CAAE,+BAAgC,KAAM,WAAYlF,KAAK8C,WAChEwC,KAAK,UAELN,EAAA,QAAAC,IAAA,2CAAMW,KAAK,SAASC,aAAc7F,KAAK6C,0BAEzCmC,EAAA,OAAAC,IAAA,2CAAKC,MAAM,6BAA6BI,KAAK,QAC3CN,EAAA,QAAAC,IAAA,2CAAMW,KAAK,YAEbZ,EAAA,OAAAC,IAAA,2CACEI,IAAMM,GAAa3F,KAAKmD,WAAawC,EACrCT,MAAO,CAAE,+BAAgC,KAAM,WAAYlF,KAAKkD,WAChEoC,KAAK,UAELN,EAAA,QAAAC,IAAA,2CAAMW,KAAK,SAASC,aAAc7F,KAAKiD,0BAEzC+B,EAAA,OAAAC,IAAA,2CACEC,MAAO,CACL,iFAAkF,KAClF,UAAWlF,KAAKU,OAASV,KAAK8F,OAC9B,aAAc9F,KAAK8F,QAAU9F,KAAKU,OAGpCsE,EAAA,QAAAC,IAAA,2CAAMW,KAAK,UACTZ,EAAA,WAAAC,IAAA,2CAASW,KAAK,WAGlBZ,EAAA,OAAAC,IAAA,2CACEC,MAAO,CAAE,mCAAoC,KAAM,WAAalF,KAAKU,OAASV,KAAK8F,QAAW9F,KAAK8F,SAEnGd,EAAA,QAAAC,IAAA,2CAAMW,KAAK,YACTZ,EAAA,WAAAC,IAAA,2CAASW,KAAK,aAIpBZ,EAAA,OAAAC,IAAA,2CAAKc,GAAG,qBAAqBb,MAAM,qCAAqCI,KAAK,SAC3EN,EAAA,QAAAC,IAAA,8C","ignoreList":[]}
|
|
1
|
+
{"version":3,"names":["ACCORDION_SIZE","ACCORDION_APPEARANCE","Accordion","constructor","el","this","animationOptions","duration","easing","header","querySelector","panel","animation","isClosing","isExpanding","open","style","height","offsetHeight","window","requestAnimationFrame","expand","close","startHeight","endHeight","cancel","animate","onfinish","onAnimationFinish","oncancel","removeAttribute","endEvent","Event","bubbles","composed","dispatchEvent","bqAccordionCss","BqAccordionStyle0","BqAccordion","handleClick","event","preventDefault","disabled","bqClick","emit","expanded","handleFocus","bqFocus","handleBlur","bqBlur","handlePrefixSlotChange","hasPrefix","hasSlotContent","prefixElem","handleSuffixSlotChange","hasSuffix","suffixElem","checkPropValues","validatePropValue","handleExpandedChange","bqOpen","bqClose","defaultPrevented","_a","accordion","_b","isCssCalcSizeSupported","setTimeout","CustomEvent","handleDisabledChange","handleJsAnimation","console","warn","noAnimation","detailsElem","componentWillLoad","componentDidLoad","onAccordionTransitionEnd","stopPropagation","target","bqAfterOpen","bqAfterClose","CSS","supports","render","h","key","class","size","appearance","ref","part","onClick","onFocus","onBlur","tabindex","element","name","onSlotchange","rotate","id"],"sources":["../../packages/beeq/src/components/accordion/bq-accordion.types.ts","../../packages/beeq/src/components/accordion/helper/index.ts","../../packages/beeq/src/components/accordion/scss/bq-accordion.scss?tag=bq-accordion&encapsulation=shadow","../../packages/beeq/src/components/accordion/bq-accordion.tsx"],"sourcesContent":["export const ACCORDION_SIZE = ['small', 'medium'] as const;\nexport type TAccordionSize = (typeof ACCORDION_SIZE)[number];\n\nexport const ACCORDION_APPEARANCE = ['filled', 'ghost'] as const;\nexport type TAccordionAppearance = (typeof ACCORDION_APPEARANCE)[number];\n","/* -------------------------------------------------------------------------------------- */\n/* 💡 Credits: https://css-tricks.com/how-to-animate-the-details-element-using-waapi */\n/* -------------------------------------------------------------------------------------- */\n\nexport class Accordion {\n private el: HTMLDetailsElement;\n private header: HTMLElement;\n private panel: HTMLElement;\n private animation: Animation | null;\n private isClosing: boolean;\n private isExpanding: boolean;\n private animationOptions = {\n duration: 200,\n easing: 'ease-in-out',\n };\n\n constructor(el: HTMLDetailsElement) {\n // Store the <details> element\n this.el = el;\n // Store the <summary> header element\n this.header = el.querySelector('summary');\n // Store the <div class=\"content\"> element\n this.panel = el.querySelector('.bq-accordion__body');\n // Store the animation object (so we can cancel it, if needed)\n this.animation = null;\n // Store if the element is closing\n this.isClosing = false;\n // Store if the element is expanding\n this.isExpanding = false;\n }\n\n public open() {\n // Check if the element is being closed or is already closed\n if (!this.isClosing && this.el.open) return;\n // Apply a fixed height on the element\n this.el.style.height = `${this.el.offsetHeight}px`;\n // Force the [open] attribute on the details element\n this.el.open = true;\n // Wait for the next frame to call the expand function\n window.requestAnimationFrame(() => this.expand());\n }\n\n public close() {\n // Check if the element is being opened or is already open\n if (!this.isExpanding && !this.el.open) return;\n // Set the element as \"being closed\"\n this.isClosing = true;\n\n // Store the current height of the element\n const startHeight = `${this.el.offsetHeight}px`;\n // Calculate the height of the <summary> header\n const endHeight = `${this.header.offsetHeight}px`;\n\n // If there is already an animation running\n if (this.animation) {\n // Cancel the current animation\n this.animation.cancel();\n }\n\n // Start a WAAPI animation\n this.animation = this.el.animate({ height: [startHeight, endHeight] }, this.animationOptions);\n // When the animation is complete, call onAnimationFinish()\n this.animation.onfinish = () => this.onAnimationFinish(false);\n // If the animation is cancelled, isClosing variable is set to false\n this.animation.oncancel = () => (this.isClosing = false);\n }\n\n // Expands the accordion\n private expand() {\n // Set the element as \"being expanding\"\n this.isExpanding = true;\n // Get the current fixed height of the element\n const startHeight = `${this.el.offsetHeight}px`;\n // Calculate the open height of the element (summary header height + panel body height)\n const endHeight = `${this.header.offsetHeight + this.panel.offsetHeight}px`;\n\n // If there is already an animation running\n if (this.animation) {\n // Cancel the current animation\n this.animation.cancel();\n }\n\n // Start a WAAPI animation\n this.animation = this.el.animate({ height: [startHeight, endHeight] }, this.animationOptions);\n // When the animation is complete, call onAnimationFinish()\n this.animation.onfinish = () => this.onAnimationFinish(true);\n // If the animation is cancelled, isExpanding variable is set to false\n this.animation.oncancel = () => (this.isExpanding = false);\n }\n\n // Handles the end of the animation\n private onAnimationFinish(open: boolean) {\n // Set the open attribute based on the parameter\n this.el.open = open;\n // Clear the stored animation\n this.animation = null;\n // Reset isClosing & isExpanding\n this.isClosing = false;\n this.isExpanding = false;\n // Remove the overflow hidden and the fixed height\n this.el.removeAttribute('style');\n // Dispatch a custom event based on the open parameter\n const endEvent = new Event('accordionTransitionEnd', { bubbles: false, composed: true });\n this.el.dispatchEvent(endEvent);\n }\n}\n","/* -------------------------------------------------------------------------- */\n/* Accordion styles */\n/* -------------------------------------------------------------------------- */\n\n@import './bq-accordion.variables';\n\n:host {\n @apply block;\n}\n\n.bq-accordion {\n &.disabled {\n @apply cursor-not-allowed opacity-60;\n\n .bq-accordion__header {\n @apply pointer-events-none;\n }\n }\n\n &.small .bq-accordion__header {\n @apply gap-[--bq-accordion--small-gap] pe-[--bq-accordion--small-padding-end] ps-[--bq-accordion--small-padding-start] p-b-[--bq-accordion--small-padding-y];\n @apply rounded-ee-[--bq-accordion--small-radius] rounded-es-[--bq-accordion--small-radius] rounded-se-[--bq-accordion--small-radius] rounded-ss-[--bq-accordion--small-radius];\n }\n\n &.medium .bq-accordion__header {\n @apply gap-[--bq-accordion--medium-gap] pe-[--bq-accordion--medium-padding-end] ps-[--bq-accordion--medium-padding-start] p-b-[--bq-accordion--medium-padding-y];\n @apply rounded-ee-[--bq-accordion--medium-radius] rounded-es-[--bq-accordion--medium-radius] rounded-se-[--bq-accordion--medium-radius] rounded-ss-[--bq-accordion--medium-radius];\n }\n\n &[open] .bq-accordion__header {\n @apply border-[length:--bq-accordion--expanded-border-width] border-[color:--bq-accordion--expanded-border-color];\n @apply rounded-ee-[0px] rounded-es-[0px];\n\n border-style: var(--bq-accordion--expanded-border-style);\n }\n\n &.small .bq-accordion__body {\n @apply rounded-ee-[--bq-accordion--small-radius] rounded-es-[--bq-accordion--small-radius] rounded-se-[0px] rounded-ss-[0px];\n }\n\n &.medium .bq-accordion__body {\n @apply rounded-ee-[--bq-accordion--medium-radius] rounded-es-[--bq-accordion--medium-radius] rounded-se-[0px] rounded-ss-[0px];\n }\n\n &.filled {\n .bq-accordion__header {\n @apply bg-[--bq-accordion--filled-collapsed-background] hover:bg-hover-ui-secondary;\n }\n\n .bq-accordion__header--text {\n @apply text-[--bq-accordion--filled-collapsed-text-color];\n }\n\n .bq-accordion__body {\n @apply border-[length:--bq-accordion--panel-filled-border-width] border-[color:--bq-accordion--panel-filled-border-color];\n\n border-style: var(--bq-accordion--panel-filled-border-style);\n }\n\n &[open] .bq-accordion__header {\n @apply bg-[--bq-accordion--filled-expanded-background] hover:bg-hover-ui-secondary;\n }\n\n &[open] .bq-accordion__header--text {\n @apply text-[--bq-accordion--filled-expanded-text-color];\n }\n }\n\n &.ghost {\n .bq-accordion__header {\n @apply bg-[--bq-accordion--ghost-collapsed-background] hover:bg-hover-ui-secondary;\n }\n\n .bq-accordion__header--text {\n @apply text-[--bq-accordion--ghost-collapsed-text-color];\n }\n\n .bq-accordion__body {\n @apply border-[length:--bq-accordion--panel-ghost-border-width] border-[color:--bq-accordion--panel-ghost-border-color];\n\n border-style: var(--bq-accordion--panel-ghost-border-style);\n }\n\n &[open] .bq-accordion__header {\n @apply bg-[--bq-accordion--ghost-expanded-background] hover:bg-hover-ui-secondary;\n }\n\n &[open] .bq-accordion__header--text {\n @apply text-[--bq-accordion--ghost-expanded-text-color];\n }\n }\n\n &.small.filled .bq-accordion__body {\n @apply pe-[--bq-accordion--panel-small-filled-padding-end] ps-[--bq-accordion--panel-small-filled-padding-start] p-b-[--bq-accordion--panel-small-filled-padding-y];\n }\n\n &.medium.filled .bq-accordion__body {\n @apply pe-[--bq-accordion--panel-medium-filled-padding-end] ps-[--bq-accordion--panel-medium-filled-padding-start] p-b-[--bq-accordion--panel-medium-filled-padding-y];\n }\n\n &.small.ghost .bq-accordion__body {\n @apply pe-[--bq-accordion--panel-small-ghost-padding-end] ps-[--bq-accordion--panel-small-ghost-padding-start] p-b-[--bq-accordion--panel-small-ghost-padding-y];\n }\n\n &.medium.ghost .bq-accordion__body {\n @apply pe-[--bq-accordion--panel-medium-ghost-padding-end] ps-[--bq-accordion--panel-medium-ghost-padding-start] p-b-[--bq-accordion--panel-medium-ghost-padding-y];\n }\n}\n\n/* stylelint-disable-next-line selector-pseudo-element-no-unknown */\n.bq-accordion::details-content {\n @apply block overflow-hidden transition-[block-size,content-visibility] duration-300 ease-in-out bs-0 [transition-behavior:allow-discrete];\n}\n\n/* stylelint-disable-next-line selector-pseudo-element-no-unknown */\n.bq-accordion[open]::details-content {\n /* block-size: auto is just a fallback for browsers that don't support the calc-size() function */\n @apply bs-auto;\n}\n\n/* stylelint-disable-next-line selector-pseudo-element-no-unknown */\n.bq-accordion[open]:not(.no-animation)::details-content {\n @apply supports-[block-size:calc-size(auto)]:bs-[calc-size(auto)];\n}\n\n.bq-accordion__header {\n // Since there's an overflow on the <summary> element, the focus outline is not visible,\n // so we force it to be inset to avoid the overflow hidden.\n --bq-ring-offset-width: -2px;\n\n @apply flex cursor-pointer select-none list-none items-center transition-colors duration-300 ease-in-out focus-visible:focus;\n @apply border-[length:--bq-accordion--collapsed-border-width] border-[color:--bq-accordion--collapsed-border-color];\n\n border-style: var(--bq-accordion--collapsed-border-style);\n\n &::marker,\n &::-webkit-details-marker {\n @apply hidden;\n }\n}\n\n.bq-accordion__header--text {\n @apply flex-1;\n}\n\n.bq-accordion__header--prefix,\n.bq-accordion__header--suffix {\n @apply flex items-center justify-center;\n}\n","import { Component, Element, Event, EventEmitter, h, Listen, Prop, State, Watch } from '@stencil/core';\n\nimport { ACCORDION_APPEARANCE, ACCORDION_SIZE, TAccordionAppearance, TAccordionSize } from './bq-accordion.types';\nimport { Accordion } from './helper';\nimport { hasSlotContent, validatePropValue } from '../../shared/utils';\n\n/**\n * @part base - The `<details>` that holds the accordion content\n * @part header - The `<summary>` that holds the accordion header content\n * @part prefix - The `<div>` that holds the accordion text prefix icon / avatar\n * @part text - The `<div>` that holds the accordion header text\n * @part suffix - The `<div>` that holds the accordion text suffix icon\n * @part panel - The `<div>` that holds the accordion panel content\n */\n@Component({\n tag: 'bq-accordion',\n styleUrl: './scss/bq-accordion.scss',\n shadow: true,\n})\nexport class BqAccordion {\n // Own Properties\n // ====================\n\n private accordion: Accordion;\n private prefixElem: HTMLDivElement;\n private suffixElem: HTMLDivElement;\n private detailsElem: HTMLDetailsElement;\n\n // Reference to host HTML element\n // ===================================\n\n @Element() el!: HTMLBqAccordionElement;\n\n // State() variables\n // Inlined decorator, alphabetical order\n // =======================================\n\n @State() private hasPrefix = false;\n @State() private hasSuffix = false;\n\n // Public Property API\n // ========================\n\n /** The appearance style of accordion */\n @Prop({ reflect: true, mutable: true }) appearance: TAccordionAppearance = 'filled';\n\n /** If true accordion is disabled */\n @Prop({ reflect: true }) disabled: boolean = false;\n\n /** If true accordion is expanded */\n @Prop({ reflect: true, mutable: true }) expanded: boolean = false;\n\n /**\n * Animation is set through JS when the browser does not support CSS calc-size()\n * If true, the accordion animation, will be disabled. No animation will be applied.\n */\n @Prop({ reflect: true }) noAnimation: boolean = false;\n\n /** If true accordion expand icon is rotate 180deg when expanded */\n @Prop({ reflect: true }) rotate: boolean = false;\n\n /** The size of accordion */\n @Prop({ reflect: true, mutable: true }) size: TAccordionSize = 'medium';\n\n // Prop lifecycle events\n // =======================\n\n @Watch('size')\n checkPropValues() {\n validatePropValue(ACCORDION_SIZE, 'medium', this.el, 'size');\n validatePropValue(ACCORDION_APPEARANCE, 'filled', this.el, 'appearance');\n }\n\n @Watch('expanded')\n handleExpandedChange() {\n const event = this.expanded ? this.bqOpen.emit(this.el) : this.bqClose.emit(this.el);\n if (event.defaultPrevented) {\n this.expanded = !this.expanded;\n return;\n }\n\n this.expanded ? this.accordion?.open() : this.accordion?.close();\n if (!this.isCssCalcSizeSupported) return;\n\n // NOTE: This is a workaround to trigger the transitionEnd event\n // when the open/close animation is handled via CSS instead of JS\n setTimeout(() => {\n this.el.dispatchEvent(new CustomEvent('accordionTransitionEnd', { bubbles: false, composed: true }));\n }, 200);\n }\n\n @Watch('disabled')\n handleDisabledChange() {\n if (!this.disabled) return;\n\n this.expanded = false;\n }\n\n @Watch('noAnimation')\n handleJsAnimation() {\n if (this.isCssCalcSizeSupported) return;\n\n console.warn(\n `[bq-accordion] calc-size() is not supported and animation will be set through JS\n For vertical layout, consider using the 'noAnimation' prop ('no-animation' attribute) to disable it`,\n );\n this.accordion = !this.noAnimation ? new Accordion(this.detailsElem) : null;\n }\n\n // Events section\n // Requires JSDocs for public API documentation\n // ==============================================\n\n /** Handler to be called when the accordion loses focus */\n @Event() bqBlur: EventEmitter<HTMLBqAccordionElement>;\n\n /** Handler to be called when the accordion gets focus */\n @Event() bqFocus: EventEmitter<HTMLBqAccordionElement>;\n\n /** Handler to be called when the accordion is opened */\n @Event() bqOpen: EventEmitter<HTMLBqAccordionElement>;\n\n /** Handler to be called after the accordion is opened */\n @Event() bqAfterOpen: EventEmitter<HTMLBqAccordionElement>;\n\n /** Handler to be called when the accordion is closed */\n @Event() bqClose: EventEmitter<HTMLBqAccordionElement>;\n\n /** Handler to be called after the accordion is closed */\n @Event() bqAfterClose: EventEmitter<HTMLBqAccordionElement>;\n\n /** @internal Handler to be called when the accordion is clicked */\n @Event() bqClick: EventEmitter<HTMLBqAccordionElement>;\n\n // Component lifecycle events\n // Ordered by their natural call order\n // =====================================\n\n componentWillLoad() {\n this.checkPropValues();\n }\n\n componentDidLoad() {\n this.handleJsAnimation();\n this.handleExpandedChange();\n }\n\n // Listeners\n // ==============\n\n @Listen('accordionTransitionEnd')\n onAccordionTransitionEnd(event: CustomEvent) {\n event.stopPropagation();\n if (event.target !== this.el) return;\n\n this.expanded ? this.bqAfterOpen.emit(this.el) : this.bqAfterClose.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 handleClick = (event: MouseEvent) => {\n event.preventDefault();\n\n if (this.disabled) return;\n\n this.bqClick.emit(this.el);\n this.expanded = !this.expanded;\n };\n\n private handleFocus = () => {\n if (this.disabled) return;\n\n this.bqFocus.emit(this.el);\n };\n\n private handleBlur = () => {\n this.bqBlur.emit(this.el);\n };\n\n private handlePrefixSlotChange = () => {\n this.hasPrefix = hasSlotContent(this.prefixElem, 'prefix');\n };\n\n private handleSuffixSlotChange = () => {\n this.hasSuffix = hasSlotContent(this.suffixElem, 'suffix');\n };\n\n private get open() {\n return this.expanded && !this.disabled;\n }\n\n private get isCssCalcSizeSupported() {\n return window.CSS?.supports('(block-size: calc-size(auto))');\n }\n\n // render() function\n // Always the last one in the class.\n // ===================================\n\n render() {\n return (\n <details\n class={{\n [`bq-accordion overflow-hidden ${this.size} ${this.appearance}`]: true,\n 'no-animation': this.noAnimation,\n disabled: this.disabled,\n }}\n ref={(detailsElem: HTMLDetailsElement) => (this.detailsElem = detailsElem)}\n open={this.open}\n part=\"base\"\n >\n <summary\n class=\"bq-accordion__header\"\n onClick={this.handleClick}\n onFocus={this.handleFocus}\n onBlur={this.handleBlur}\n aria-expanded={this.expanded}\n aria-disabled={this.disabled}\n aria-controls=\"bq-accordion__body\"\n tabindex={this.disabled ? -1 : 0}\n part=\"header\"\n >\n <div\n ref={(element) => (this.prefixElem = element)}\n class={{ 'bq-accordion__header--prefix': true, '!hidden': !this.hasPrefix }}\n part=\"prefix\"\n >\n <slot name=\"prefix\" onSlotchange={this.handlePrefixSlotChange} />\n </div>\n <div class=\"bq-accordion__header--text\" part=\"text\">\n <slot name=\"header\" />\n </div>\n <div\n ref={(element) => (this.suffixElem = element)}\n class={{ 'bq-accordion__header--suffix': true, '!hidden': !this.hasSuffix }}\n part=\"suffix\"\n >\n <slot name=\"suffix\" onSlotchange={this.handleSuffixSlotChange} />\n </div>\n <div\n class={{\n 'flex items-center justify-center transition-transform duration-300 ease-in-out': true,\n '!hidden': this.open && !this.rotate,\n 'rotate-180': this.rotate && this.open,\n }}\n >\n <slot name=\"expand\">\n <bq-icon name=\"plus\" />\n </slot>\n </div>\n <div\n class={{ 'flex items-center justify-center': true, '!hidden': (!this.open && !this.rotate) || this.rotate }}\n >\n <slot name=\"collapse\">\n <bq-icon name=\"minus\" />\n </slot>\n </div>\n </summary>\n <div id=\"bq-accordion__body\" class=\"bq-accordion__body overflow-hidden\" part=\"panel\">\n <slot />\n </div>\n </details>\n );\n }\n}\n"],"mappings":"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","ignoreList":[]}
|
package/dist/beeq/p-af062402.js
CHANGED
|
@@ -2,5 +2,11 @@
|
|
|
2
2
|
* Built by Endavans
|
|
3
3
|
* © https://beeq.design - Apache 2 License.
|
|
4
4
|
*/
|
|
5
|
-
const a=["small","medium","large"
|
|
5
|
+
const a = [ "small", "medium", "large" ];
|
|
6
|
+
|
|
7
|
+
const s = [ "horizontal", "vertical" ];
|
|
8
|
+
|
|
9
|
+
const t = [ "start", "end" ];
|
|
10
|
+
|
|
11
|
+
export { a as T, s as a, t as b };
|
|
6
12
|
//# sourceMappingURL=p-af062402.js.map
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"names":["TAB_SIZE","TAB_ORIENTATION","TAB_PLACEMENT"],"sources":["../../packages/beeq/src/components/tab/bq-tab.types.ts"],"sourcesContent":["export const TAB_SIZE = ['small', 'medium', 'large'] as const;\nexport type TTabSize = (typeof TAB_SIZE)[number];\n\nexport const TAB_ORIENTATION = ['horizontal', 'vertical'] as const;\nexport type TTabOrientation = (typeof TAB_ORIENTATION)[number];\n\nexport const TAB_PLACEMENT = ['start', 'end'] as const;\nexport type TTabPlacement = (typeof TAB_PLACEMENT)[number];\n"],"mappings":";;;;MAAaA,
|
|
1
|
+
{"version":3,"names":["TAB_SIZE","TAB_ORIENTATION","TAB_PLACEMENT"],"sources":["../../packages/beeq/src/components/tab/bq-tab.types.ts"],"sourcesContent":["export const TAB_SIZE = ['small', 'medium', 'large'] as const;\nexport type TTabSize = (typeof TAB_SIZE)[number];\n\nexport const TAB_ORIENTATION = ['horizontal', 'vertical'] as const;\nexport type TTabOrientation = (typeof TAB_ORIENTATION)[number];\n\nexport const TAB_PLACEMENT = ['start', 'end'] as const;\nexport type TTabPlacement = (typeof TAB_PLACEMENT)[number];\n"],"mappings":";;;;MAAaA,IAAW,EAAC,SAAS,UAAU;;MAG/BC,IAAkB,EAAC,cAAc;;MAGjCC,IAAgB,EAAC,SAAS","ignoreList":[]}
|