@bluevolt-tech/lumen 1.3.2 → 1.5.0

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
@@ -1,12 +1,325 @@
1
1
  // css-inline:/home/runner/work/BV_lumen/BV_lumen/components/bv-empty-state/bv-empty-state.css
2
- var bv_empty_state_default = ":host {\n display: flex;\n width: 100%;\n}\n\n.wrap {\n display: flex;\n flex-direction: column;\n align-items: center;\n justify-content: center;\n text-align: center;\n padding: 48px 24px;\n gap: 16px;\n width: 100%;\n font-family: var(--bv-font-family-base);\n}\n\n.icon {\n display: flex;\n align-items: center;\n justify-content: center;\n width: 48px;\n height: 48px;\n border-radius: var(--bv-radius-lg);\n background: var(--bv-color-neutral-100);\n color: var(--bv-color-neutral-500);\n}\n\n.text {\n display: flex;\n flex-direction: column;\n gap: 4px;\n max-width: 360px;\n}\n\n.title {\n font-size: var(--bv-font-size-md);\n font-weight: var(--bv-font-weight-semibold);\n color: var(--bv-color-neutral-800);\n margin: 0;\n line-height: 24px;\n}\n\n.description {\n font-size: var(--bv-font-size-sm);\n color: var(--bv-color-neutral-500);\n margin: 0;\n line-height: 20px;\n}\n\n.action ::slotted(*) {\n margin-top: 4px;\n}\n";
2
+ var bv_empty_state_default = ":host {\n display: flex;\n width: 100%;\n}\n\n.wrap {\n display: flex;\n flex-direction: column;\n align-items: center;\n justify-content: center;\n text-align: center;\n padding: 48px 24px 56px;\n width: 100%;\n font-family: var(--bv-font-family-base);\n}\n\n.icon {\n display: flex;\n align-items: center;\n justify-content: center;\n width: 48px;\n height: 48px;\n margin-bottom: 16px;\n border-radius: var(--bv-radius-lg);\n background: var(--bv-color-neutral-100);\n color: var(--bv-color-neutral-500);\n}\n\n.text {\n display: flex;\n flex-direction: column;\n gap: 4px;\n margin-bottom: 8px;\n max-width: 360px;\n}\n\n.title {\n font-size: var(--bv-font-size-md);\n font-weight: var(--bv-font-weight-semibold);\n color: var(--bv-color-neutral-800);\n margin: 0;\n line-height: 24px;\n}\n\n.description {\n font-size: var(--bv-font-size-sm);\n color: var(--bv-color-neutral-500);\n margin: 0;\n line-height: 20px;\n}\n\n.contact-support-link {\n font-size: var(--bv-font-size-sm);\n font-weight: var(--bv-font-weight-semibold);\n color: var(--bv-color-primary);\n text-decoration: none;\n}\n\n.contact-support-link:hover {\n text-decoration: underline;\n}\n\n.wrap.hero .contact-support-link {\n font-size: var(--bv-font-size-md);\n}\n\n/* Hero layout \u2014 used automatically when a preset `illustration` is set */\n.wrap.hero {\n padding: 64px 24px 72px;\n}\n\n.icon.hero {\n width: auto;\n height: auto;\n margin-bottom: 24px;\n background: none;\n border-radius: 0;\n}\n\n.icon.hero ::slotted(svg),\n.icon.hero slot svg {\n display: block;\n width: 160px;\n height: auto;\n}\n\n.wrap.hero .text {\n gap: 8px;\n margin-bottom: 12px;\n max-width: 480px;\n}\n\n.wrap.hero .title {\n font-size: var(--bv-font-size-2xl);\n line-height: 32px;\n}\n\n.wrap.hero .description {\n font-size: var(--bv-font-size-md);\n line-height: 24px;\n}\n";
3
+
4
+ // components/bv-empty-state/illustrations.ts
5
+ var illustrations = {
6
+ empty: `<svg viewBox="-18.66 -18.67 248.82 248.82" fill="none" xmlns="http://www.w3.org/2000/svg" aria-hidden="true">
7
+ <path d="M52.9146 36.6014C52.9146 36.6014 84.756 60.7639 133.163 15.584C176.153 -24.54 211.255 38.7665 211.5 69.083C211.819 108.355 168.51 139.778 189.527 165.572C210.545 191.366 147.847 233.961 114.056 197.098C72.021 151.242 60.6333 188.5 36.6735 188.5C19.4775 188.5 -15.828 145.772 8.01342 113.984C28.0754 87.2344 17.134 78.3567 11.8354 69.083C4.19241 55.7082 22.3438 19.4053 52.9146 36.6014Z" fill="#D1E9FF"/>
8
+ <path d="M194.909 20.1305C194.909 20.7249 194.883 21.3106 194.831 21.8906C194.369 27.1307 191.873 31.9815 187.878 35.4039C183.883 38.8263 178.707 40.5482 173.458 40.2008C168.209 39.8533 163.305 37.4642 159.796 33.5451C156.287 29.626 154.452 24.4886 154.684 19.2333C154.917 13.978 157.198 9.02258 161.039 5.42857C164.88 1.83456 169.976 -0.112294 175.236 0.00500927C180.495 0.122313 185.499 2.29445 189.176 6.05616C192.853 9.81787 194.911 14.87 194.909 20.1305Z" fill="#56ABDE"/>
9
+ <path d="M177.326 21.6712C176.028 22.681 174.213 24.6921 174.762 29.1671C174.153 30.9041 171.989 34.2221 171.989 35.8088C171.989 37.3956 169.392 37.6848 169.104 37.2508C168.815 36.8168 168.671 31.3361 167.084 30.3263C165.497 29.3165 165.786 24.7001 165.786 24.7001C165.786 24.7001 166.363 22.9689 164.487 21.8149C162.612 20.6608 161.305 17.9198 162.97 16.3329C164.632 14.746 160.159 13.7362 159.582 12.5821C159.337 12.0921 158.397 10.9952 157.398 9.9017C159.557 6.24622 162.811 3.36315 166.7 1.66144C168.175 3.20144 169.45 5.17278 169.104 7.24436C169.161 8.25418 173.544 9.84108 171.397 12.0044C169.248 14.1683 166.331 17.1984 171.397 18.2076C176.461 19.219 178.625 20.661 177.326 21.6712Z" fill="#0277BD"/>
10
+ <path d="M188.85 5.73039C187.771 8.00679 185.065 9.84177 183.53 9.84177C181.799 7.96577 178.048 10.5632 177.696 7.53359C177.492 5.76791 179.506 3.02685 181.222 1.04193C184.084 2.01299 186.691 3.61536 188.85 5.73039Z" fill="#0277BD"/>
11
+ <path d="M194.831 21.8905C194.402 26.8719 192.128 31.5134 188.455 34.9058C187.788 34.2681 187.226 33.5209 187.425 32.9236C187.858 31.6253 189.618 28.8842 189.315 27.1531C189.032 25.5374 190.524 20.6498 194.831 21.8905Z" fill="#0277BD"/>
12
+ <path d="M162.071 121.899C161.427 125.873 160.361 129.768 158.89 133.516C149.308 158.062 123.602 173.439 96.549 169.02C81.6139 166.575 68.2607 158.3 59.4247 146.013C50.5887 133.726 46.993 118.434 49.428 103.497C49.5517 102.739 49.6961 101.975 49.8467 101.232C55.95 71.3713 84.6015 51.4184 114.95 56.3756C124.006 57.8396 132.572 61.4781 139.913 66.9791C142.326 68.7802 144.589 70.7728 146.681 72.9373C152.894 79.3279 157.523 87.0858 160.195 95.5886C162.868 104.091 163.511 113.102 162.071 121.898V121.899Z" fill="#56ABDE"/>
13
+ <path d="M158.89 133.516C148.023 140.512 135.188 146.984 121.04 152.335C106.632 157.781 92.4841 161.461 79.5171 163.388C49.0456 167.931 25.115 162.855 19.7231 148.592C14.6735 135.271 27.0934 117.227 49.8469 101.232C49.6962 101.975 49.5519 102.739 49.4281 103.497C48.9734 106.271 48.7267 109.075 48.6899 111.886C35.5803 122.008 28.758 131.921 31.4474 139.032C34.0621 145.946 45.164 148.888 60.9574 148.054C76.3974 147.241 96.3214 142.793 117.176 134.909C135.213 128.082 151.029 119.784 162.807 111.448C178.573 100.301 187.125 89.0851 184.173 81.2605C181.138 73.2279 166.657 70.5505 146.681 72.938C144.589 70.7734 142.326 68.7808 139.913 66.9797C167.876 63.7481 189.429 69.0293 194.509 82.4627C199.951 96.8306 185.109 116.667 158.89 133.516Z" fill="#0277BD"/>
14
+ </svg>`,
15
+ error: `<svg viewBox="13.39 15.21 251.38 251.38" fill="none" xmlns="http://www.w3.org/2000/svg" aria-hidden="true">
16
+ <path d="M101.792 242.485C116.649 251.44 127.248 247.723 131.305 240.542C139.152 226.655 165.242 198.258 206.588 188.66C261.348 175.948 249.912 142.196 216.249 124.484C182.586 106.773 157.415 82.2652 161.225 55.6178C165.034 28.9703 127.289 19.7841 110.503 71.0448C99.6554 104.171 80.216 113.046 67.8198 115.179C56.1367 117.19 43.3568 119.713 37.1247 129.797C29.5624 142.033 32.2013 154.411 63.8627 162.9C108.73 174.93 68.492 222.413 101.792 242.485Z" fill="#DEE9FF"/>
17
+ <path d="M63.1915 184.424C63.8202 184.064 70.9166 181.06 106.22 197.518C106.117 197.658 106.073 197.724 106.073 197.724C106.073 197.724 69.3721 210.084 62.1813 194.858C60.0339 190.325 60.6492 187.203 63.1302 184.459L63.1915 184.424Z" fill="#0E84E5"/>
18
+ <path d="M181.847 190.652C174.177 197.1 162.149 201.78 150.543 195.557C152.377 194.385 154.271 193.178 156.203 191.929C167.859 184.44 178.125 189.451 181.847 190.652Z" fill="#0E84E5"/>
19
+ <path d="M195.586 111.349C203.422 176.601 184.799 188.443 182.726 190.242C182.126 190.763 181.883 190.725 180.975 190.491L180.96 190.5C177.119 189.482 167.859 184.44 156.203 191.928C154.271 193.177 152.377 194.384 150.543 195.556C138.653 203.097 129.051 208.411 122.134 205.327C116.266 202.333 110.976 199.743 106.219 197.518C70.9165 181.06 63.8201 184.064 63.1914 184.424C63.9209 184.027 70.6134 180.317 79.6246 173.793C79.6553 173.776 79.6859 173.758 79.6925 173.734C91.7373 165.005 107.868 151.249 119.462 133.554C127.355 121.521 135.077 91.0171 149.976 85.0319C180.595 73.6093 194.314 98.0764 195.586 111.349Z" fill="#699CFF"/>
20
+ <path d="M161.729 110.204C162.68 107.694 162.587 105.333 161.522 104.93C160.457 104.527 158.824 106.234 157.873 108.744C156.923 111.254 157.015 113.615 158.08 114.018C159.145 114.422 160.779 112.714 161.729 110.204Z" fill="white"/>
21
+ <path d="M181.224 113.406C181.898 110.809 181.551 108.471 180.449 108.185C179.346 107.899 177.907 109.774 177.233 112.372C176.56 114.969 176.907 117.307 178.009 117.593C179.111 117.879 180.551 116.004 181.224 113.406Z" fill="white"/>
22
+ <path d="M169.357 122.945C169.198 122.945 169.043 122.89 168.919 122.79C168.794 122.689 168.708 122.549 168.674 122.393C168.549 121.828 167.994 120.156 167.114 119.908C166.233 119.659 164.507 120.624 163.808 121.13C163.658 121.239 163.47 121.284 163.287 121.255C163.103 121.225 162.939 121.124 162.83 120.974C162.721 120.824 162.677 120.636 162.706 120.453C162.735 120.269 162.836 120.105 162.987 119.996C163.262 119.797 165.728 118.062 167.494 118.56C169.336 119.08 169.975 121.788 170.042 122.096C170.064 122.198 170.063 122.304 170.039 122.406C170.015 122.508 169.969 122.603 169.903 122.684C169.837 122.766 169.754 122.831 169.66 122.876C169.565 122.921 169.462 122.945 169.357 122.945H169.357Z" fill="white"/>
23
+ </svg>`,
24
+ "no-results": `<svg viewBox="-23.51 -20.04 267.31 267.31" fill="none" xmlns="http://www.w3.org/2000/svg" aria-hidden="true">
25
+ <path d="M23.1835 99.4558C23.1835 99.4558 61.9544 97.9032 70.3329 34.1721C77.7732 -22.4273 143.151 3.3347 162.049 25.8965C186.53 55.1235 173.48 105.4 205.15 111.751C236.819 118.103 216.138 188.719 168.066 181.96C108.266 173.552 122.734 208.496 104.783 223.286C91.899 233.901 39.0719 223.683 37.3112 185.149C35.8296 152.724 22.1519 152.826 12.457 149.15C-1.52521 143.847 -10.3355 105.444 23.1835 99.4558Z" fill="#D1E9FF"/>
26
+ <path d="M154.983 170.233L116.892 132.594L109.349 140.227L147.44 177.866L154.983 170.233Z" fill="#2095DB"/>
27
+ <path d="M169.534 180.347L139.899 151.063C139.734 150.9 139.468 150.902 139.305 151.067L128.088 162.418C127.925 162.583 127.926 162.849 128.091 163.012L157.727 192.296C157.892 192.459 158.158 192.457 158.321 192.292L169.537 180.941C169.7 180.776 169.699 180.51 169.534 180.347Z" fill="#025EBD"/>
28
+ <path d="M83.1311 151.524C109.337 151.524 130.581 130.28 130.581 104.074C130.581 77.8685 109.337 56.6247 83.1311 56.6247C56.9255 56.6247 35.6816 77.8685 35.6816 104.074C35.6816 130.28 56.9255 151.524 83.1311 151.524Z" fill="#025EBD"/>
29
+ <path d="M83.1311 143.782C105.061 143.782 122.838 126.004 122.838 104.074C122.838 82.1447 105.061 64.3672 83.1311 64.3672C61.2014 64.3672 43.4239 82.1447 43.4239 104.074C43.4239 126.004 61.2014 143.782 83.1311 143.782Z" fill="#D1E9FF"/>
30
+ <path d="M163.35 61.1795C152.22 57.5718 140.192 63.6735 136.57 74.8492C132.962 85.9792 139.064 98.0073 150.239 101.63C161.415 105.252 173.412 99.0904 177.02 87.9598C180.629 76.8293 174.481 64.787 163.35 61.1795ZM159.992 71.5409C161.237 71.9447 162.335 72.7095 163.146 73.7381C163.956 74.7667 164.443 76.0129 164.545 77.3186C164.646 78.6243 164.357 79.9307 163.715 81.0721C163.073 82.2134 162.106 83.1383 160.937 83.7295C159.769 84.3207 158.451 84.5515 157.151 84.3926C155.851 84.2338 154.628 83.6924 153.636 82.8372C152.644 81.982 151.928 80.8515 151.58 79.5891C151.232 78.3267 151.266 76.9892 151.679 75.7464C152.793 72.3077 156.552 70.4264 159.992 71.5409ZM151.589 97.4669C147.891 96.2745 144.723 93.8336 142.627 90.5623C146.549 88.3336 150.65 87.7129 154.36 88.9155C158.071 90.1181 161.088 92.9958 162.897 97.1322C159.28 98.5521 155.283 98.6704 151.589 97.4669Z" fill="#2095DB"/>
31
+ <path d="M70.7115 162.603C68.7783 163.589 67.1811 165.127 66.1219 167.022C65.0627 168.916 64.5891 171.082 64.761 173.246C64.9328 175.41 65.7424 177.474 67.0874 179.178C68.4324 180.881 70.2524 182.148 72.3172 182.817C74.3819 183.486 76.5988 183.528 78.6874 182.937C80.776 182.347 82.6425 181.15 84.0509 179.498C85.4594 177.847 86.3464 175.815 86.6 173.659C86.8535 171.503 86.4621 169.321 85.4753 167.388C84.1498 164.798 81.8508 162.839 79.083 161.942C76.3151 161.045 73.3044 161.282 70.7115 162.603ZM73.2676 167.61C73.8698 167.303 74.5496 167.181 75.2209 167.261C75.8923 167.34 76.5249 167.617 77.0384 168.057C77.552 168.497 77.9235 169.079 78.1057 169.73C78.2879 170.381 78.2726 171.071 78.0618 171.714C77.851 172.356 77.4542 172.921 76.9217 173.338C76.3891 173.754 75.7449 174.003 75.0707 174.053C74.3965 174.103 73.7227 173.951 73.1348 173.617C72.5469 173.284 72.0713 172.783 71.7684 172.179C71.3669 171.373 71.2992 170.441 71.5798 169.586C71.8605 168.731 72.4669 168.021 73.2676 167.61ZM79.6632 180.14C77.8784 181.055 75.8312 181.32 73.8722 180.891C74.4903 178.646 75.7606 176.922 77.5541 176.007C79.3477 175.092 81.4988 175.041 83.6689 175.89C82.867 177.728 81.4509 179.231 79.6632 180.14Z" fill="#2095DB"/>
32
+ </svg>`,
33
+ disconnect: `<svg viewBox="-15.99 -15.95 312.57 312.57" fill="none" xmlns="http://www.w3.org/2000/svg" aria-hidden="true">
34
+ <path d="M84.5562 73.8859C84.5562 73.8859 114.58 96.6699 160.224 54.0679C200.76 16.2342 233.859 75.9274 234.09 104.513C234.39 141.543 193.554 171.173 213.372 195.495C233.189 219.817 174.07 259.981 142.208 225.222C102.572 181.983 91.8345 217.114 69.2424 217.114C53.0278 217.114 19.7376 176.825 42.2181 146.851C61.1352 121.629 50.8181 113.258 45.822 104.513C38.6149 91.9021 55.7303 57.6714 84.5562 73.8859Z" fill="#DEE9FF"/>
35
+ <path d="M205.093 124.235C206.706 124.835 208.47 124.874 210.148 124.489C217.178 122.876 241.351 118.603 237.151 137.335C236.236 141.051 222.078 161.864 242.24 169.462C243.718 170.026 245.28 170.334 246.861 170.372C253.068 170.5 265.37 169.034 270.518 163.793C276.737 157.463 269.943 160.465 269.943 160.465C269.943 160.465 246.299 170.783 237.947 159.836C237.018 158.618 236.426 156.849 236.256 155.326C235.962 152.686 237.135 149.197 238.675 146.159C240.76 142.048 250.767 123.555 229.039 118.168C224.034 116.976 216.764 115.905 207.39 119.852C201.923 122.154 203.134 123.507 205.093 124.235Z" fill="#BDD6F9"/>
36
+ <path d="M209.93 117.331L203.637 119.687C201.464 120.5 200.362 122.92 201.175 125.092L201.487 125.926C202.3 128.098 204.721 129.2 206.893 128.387L213.186 126.032C215.359 125.219 216.461 122.798 215.648 120.626L215.336 119.793C214.523 117.62 212.102 116.518 209.93 117.331Z" fill="#0E84E5"/>
37
+ <path d="M171.302 124.147L150.547 131.914C149.461 132.321 148.91 133.531 149.316 134.617L149.398 134.836C149.804 135.922 151.015 136.473 152.101 136.066L172.856 128.299C173.942 127.892 174.493 126.682 174.086 125.596L174.005 125.377C173.598 124.291 172.388 123.74 171.302 124.147Z" fill="white"/>
38
+ <path d="M177.093 139.623L156.338 147.391C155.252 147.798 154.701 149.008 155.107 150.094L155.189 150.312C155.595 151.399 156.806 151.95 157.892 151.543L178.647 143.775C179.733 143.369 180.284 142.159 179.877 141.072L179.796 140.854C179.389 139.768 178.179 139.217 177.093 139.623Z" fill="white"/>
39
+ <path d="M196.255 113.585L179.434 119.88C177.261 120.693 176.159 123.113 176.972 125.286L182.715 140.631C183.528 142.803 185.949 143.905 188.121 143.092L204.942 136.797C207.115 135.984 208.217 133.563 207.404 131.391L201.661 116.046C200.848 113.873 198.427 112.771 196.255 113.585Z" fill="#5895F9"/>
40
+ <path d="M181.171 117.61L164.35 123.906C162.177 124.719 161.075 127.139 161.888 129.311L168.74 147.619C169.553 149.791 171.973 150.893 174.146 150.08L190.967 143.785C193.139 142.971 194.241 140.551 193.428 138.379L186.577 120.072C185.764 117.899 183.343 116.797 181.171 117.61Z" fill="#699CFF"/>
41
+ <path d="M183.805 113.895L183.673 113.944C182.225 114.486 181.49 116.1 182.032 117.548L191.631 143.194C192.173 144.643 193.786 145.377 195.235 144.835L195.367 144.786C196.815 144.244 197.549 142.631 197.007 141.182L187.409 115.536C186.867 114.087 185.253 113.353 183.805 113.895Z" fill="#208AF2"/>
42
+ <path d="M12.282 130.292C12.282 130.292 46.0651 120.798 41.1603 142.672C40.3086 146.132 28.0475 163.953 42.6523 172.509C45.7883 174.346 49.4073 175.16 53.0416 175.141C59.5576 175.107 69.8875 173.853 74.5281 169.13C80.7474 162.798 73.9529 165.801 73.9529 165.801C73.9529 165.801 54.5508 173.782 44.569 167.42C41.1607 165.248 39.6158 161.042 40.5414 157.107C41.0144 155.153 41.7348 153.267 42.6851 151.495C44.8559 147.429 54.7771 128.891 33.0491 123.504C28.0439 122.312 20.7741 121.241 11.4004 125.188C2.02667 129.135 12.282 130.292 12.282 130.292Z" fill="#BDD6F9"/>
43
+ <path d="M79.0705 160.906L72.7773 163.261C70.6049 164.075 69.5029 166.495 70.3159 168.667L70.6279 169.501C71.4409 171.673 73.8612 172.775 76.0336 171.962L82.3268 169.607C84.4993 168.794 85.6013 166.373 84.7882 164.201L84.4762 163.367C83.6632 161.195 81.243 160.093 79.0705 160.906Z" fill="#0E84E5"/>
44
+ <path d="M89.7038 150.552L80.3769 154.043C78.2045 154.856 77.1025 157.276 77.9155 159.448L82.4129 171.465C83.226 173.638 85.6462 174.74 87.8186 173.927L97.1456 170.436C99.318 169.623 100.42 167.202 99.6069 165.03L95.1095 153.013C94.2965 150.841 91.8762 149.739 89.7038 150.552Z" fill="#5895F9"/>
45
+ <path d="M105.231 141.3L91.3222 146.506C89.1498 147.319 88.0478 149.739 88.8608 151.912L95.7126 170.219C96.5256 172.391 98.9459 173.493 101.118 172.68L115.027 167.475C117.2 166.662 118.302 164.241 117.489 162.069L110.637 143.762C109.824 141.589 107.404 140.487 105.231 141.3Z" fill="#699CFF"/>
46
+ <path d="M108.176 137.509L108.044 137.558C106.596 138.1 105.861 139.714 106.403 141.162L116.002 166.808C116.544 168.257 118.157 168.991 119.606 168.449L119.738 168.4C121.186 167.858 121.921 166.245 121.379 164.796L111.78 139.15C111.238 137.701 109.624 136.967 108.176 137.509Z" fill="#208AF2"/>
47
+ <path d="M143.694 121.17C143.193 121.114 142.734 120.866 142.412 120.479C142.09 120.091 141.931 119.593 141.968 119.091L143.006 100.135C143.068 99.0025 144.024 98.1422 145.109 98.2423L146.621 98.3823C147.706 98.4824 148.483 99.5023 148.332 100.627L145.781 119.443C145.723 119.944 145.473 120.403 145.084 120.725C144.695 121.047 144.198 121.206 143.694 121.17Z" fill="#418DF9"/>
48
+ <path d="M134.732 122.804C134.577 122.85 134.413 122.865 134.252 122.847C134.09 122.83 133.934 122.781 133.791 122.703C133.649 122.626 133.523 122.52 133.421 122.394C133.319 122.268 133.243 122.122 133.198 121.966L129.492 110.175C129.384 109.839 129.413 109.475 129.574 109.162C129.735 108.848 130.013 108.611 130.348 108.503L131.308 108.213C131.472 108.165 131.645 108.152 131.815 108.174C131.985 108.196 132.149 108.253 132.296 108.341C132.443 108.43 132.57 108.548 132.669 108.688C132.767 108.828 132.836 108.987 132.871 109.155L135.618 121.237C135.694 121.561 135.645 121.903 135.481 122.193C135.317 122.484 135.05 122.702 134.732 122.804Z" fill="#418DF9"/>
49
+ <path d="M129.732 129.604C129.068 130.427 127.732 130.417 126.704 129.582L108.452 114.753C107.362 113.867 107.04 112.401 107.745 111.529L108.727 110.312C109.431 109.44 110.878 109.511 111.91 110.47L129.18 126.515C130.152 127.419 130.396 128.781 129.732 129.604Z" fill="#418DF9"/>
50
+ <path d="M138.169 167.906C138.639 168.088 139.02 168.445 139.232 168.902C139.444 169.359 139.471 169.881 139.306 170.357L133.462 188.419C133.113 189.498 131.969 190.085 130.945 189.711L129.518 189.19C128.495 188.816 128.003 187.631 128.438 186.584L135.709 169.043C135.893 168.573 136.252 168.193 136.71 167.981C137.169 167.769 137.691 167.742 138.169 167.906Z" fill="#418DF9"/>
51
+ <path d="M147.25 168.614C147.413 168.61 147.574 168.638 147.726 168.696C147.878 168.754 148.016 168.841 148.134 168.952C148.252 169.064 148.347 169.198 148.413 169.346C148.48 169.494 148.516 169.654 148.521 169.817L149.092 182.164C149.111 182.515 148.989 182.86 148.754 183.122C148.518 183.384 148.189 183.543 147.837 183.562L146.835 183.597C146.664 183.601 146.493 183.57 146.334 183.505C146.176 183.44 146.032 183.343 145.913 183.22C145.793 183.097 145.701 182.951 145.641 182.79C145.581 182.629 145.555 182.458 145.564 182.286L145.995 169.904C146.004 169.571 146.138 169.253 146.37 169.014C146.603 168.775 146.917 168.632 147.25 168.614Z" fill="#418DF9"/>
52
+ <path d="M153.821 163.317C154.673 162.691 155.962 163.042 156.743 164.112L170.602 183.11C171.43 184.245 171.367 185.744 170.462 186.408L169.202 187.333C168.298 187.997 166.918 187.558 166.165 186.368L153.565 166.444C152.856 165.323 152.969 163.943 153.821 163.317Z" fill="#418DF9"/>
53
+ </svg>`,
54
+ time: `<svg viewBox="17.07 23.03 234.62 234.62" fill="none" xmlns="http://www.w3.org/2000/svg" aria-hidden="true">
55
+ <path d="M84.5562 73.8859C84.5562 73.8859 114.58 96.6699 160.224 54.0679C200.76 16.2342 233.859 75.9274 234.09 104.513C234.39 141.543 193.554 171.173 213.372 195.495C233.189 219.817 174.07 259.981 142.208 225.222C102.572 181.983 91.8345 217.114 69.2424 217.114C53.0278 217.114 19.7376 176.825 42.2181 146.851C61.1352 121.629 50.8181 113.258 45.822 104.513C38.6149 91.9021 55.7303 57.6714 84.5562 73.8859Z" fill="#DEE9FF"/>
56
+ <g clip-path="url(#clip0_19637_55248)">
57
+ <path d="M158.614 72.105L153.059 88.7603L161.963 91.7977L167.518 75.1424L158.614 72.105Z" fill="#B0D6F8"/>
58
+ <path d="M157.585 75.5139L167.059 78.983C168.567 79.5361 170.23 78.7545 170.773 77.2388L173.187 70.5006C173.731 68.9846 172.948 67.3083 171.441 66.7558L161.966 63.2868C160.458 62.7346 158.794 63.5164 158.252 65.0319L155.837 71.7703C155.294 73.2851 156.077 74.9626 157.585 75.5139Z" fill="#0E84E5"/>
59
+ <path d="M118.334 83.56C114.777 84.5132 111.651 84.3838 111.353 83.2708L107.413 68.5678C107.115 67.4547 109.757 65.7796 113.315 64.8265C116.872 63.8733 119.998 64.0027 120.296 65.1157L124.236 79.8187C124.534 80.9318 121.892 82.6069 118.334 83.56Z" fill="#B0D6F8"/>
60
+ <path d="M71.3159 95.5476L65.123 102.63L78.2616 114.277L84.4545 107.194L71.3159 95.5476Z" fill="#B0D6F8"/>
61
+ <path d="M151.176 218.961C189.181 208.778 211.675 169.485 201.416 131.198C191.157 92.9107 152.03 70.1285 114.025 80.3121C76.0188 90.4958 53.5255 129.789 63.7845 168.076C74.0434 206.363 113.17 229.145 151.176 218.961Z" fill="#699CFF"/>
62
+ <path d="M147.666 205.862C178.491 197.602 196.734 165.734 188.413 134.682C180.093 103.629 148.36 85.1519 117.535 93.4113C86.7108 101.671 68.4677 133.539 76.7882 164.591C85.1086 195.644 116.842 214.121 147.666 205.862Z" fill="#D1E9FF"/>
63
+ <path d="M148.206 207.877C132.764 212.015 116.622 209.846 102.755 201.773C88.8876 193.698 78.9557 180.685 74.7871 165.128C70.6186 149.57 72.714 133.334 80.6852 119.408C88.6574 105.482 101.552 95.5339 116.995 91.396C132.437 87.2581 148.578 89.4267 162.445 97.5003C176.313 105.575 186.245 118.589 190.413 134.146C194.582 149.703 192.486 165.939 184.515 179.865C176.543 193.792 163.649 203.739 148.206 207.877ZM118.371 96.5314C104.29 100.304 92.5322 109.376 85.2625 122.074C77.9936 134.772 76.0833 149.578 79.8842 163.763C83.6851 177.948 92.7421 189.814 105.386 197.177C118.03 204.539 132.749 206.516 146.83 202.743C160.911 198.971 172.668 189.899 179.938 177.201C187.207 164.503 189.117 149.697 185.317 135.512C181.516 121.327 172.459 109.461 159.814 102.098C147.17 94.7355 132.452 92.7585 118.371 96.5314Z" fill="#0E84E5"/>
64
+ <path d="M121.75 109.141C120.645 109.437 119.508 108.775 119.21 107.662L118.061 103.376C117.763 102.263 118.417 101.121 119.522 100.825C120.627 100.529 121.764 101.191 122.062 102.304L123.211 106.59C123.509 107.703 122.855 108.845 121.75 109.141Z" fill="#56ABDE"/>
65
+ <path d="M95.2477 129.588C94.7354 129.725 94.1714 129.666 93.6752 129.376L89.8553 127.152C88.8634 126.575 88.5216 125.299 89.0916 124.302C89.6618 123.306 90.9281 122.966 91.921 123.544L95.7408 125.768C96.7327 126.345 97.0746 127.621 96.5046 128.618C96.2194 129.116 95.76 129.451 95.2486 129.588L95.2477 129.588Z" fill="#56ABDE"/>
66
+ <path d="M90.9423 162.959L86.6879 164.099C85.583 164.395 84.4457 163.733 84.1474 162.62C83.8492 161.507 84.503 160.365 85.6079 160.068L89.8623 158.928C90.9672 158.632 92.1046 159.295 92.4028 160.408C92.701 161.521 92.0472 162.663 90.9423 162.959Z" fill="#56ABDE"/>
67
+ <path d="M109.16 193.544C108.647 193.681 108.083 193.621 107.587 193.332C106.595 192.755 106.253 191.478 106.823 190.482L109.019 186.646C109.591 185.649 110.857 185.31 111.849 185.888C112.841 186.465 113.183 187.742 112.613 188.738L110.417 192.574C110.131 193.072 109.672 193.407 109.161 193.544L109.16 193.544Z" fill="#56ABDE"/>
68
+ <path d="M145.68 198.449C144.575 198.745 143.438 198.082 143.14 196.969L141.991 192.683C141.693 191.57 142.347 190.428 143.452 190.132C144.557 189.836 145.694 190.498 145.992 191.611L147.141 195.897C147.439 197.01 146.785 198.153 145.68 198.449Z" fill="#56ABDE"/>
69
+ <path d="M174.855 175.941C174.343 176.078 173.779 176.018 173.283 175.729L169.463 173.505C168.471 172.928 168.129 171.652 168.699 170.655C169.269 169.659 170.536 169.319 171.528 169.897L175.348 172.121C176.34 172.699 176.682 173.974 176.112 174.971C175.827 175.469 175.367 175.804 174.856 175.941L174.855 175.941Z" fill="#56ABDE"/>
70
+ <path d="M179.595 139.205L175.34 140.345C174.235 140.641 173.098 139.979 172.8 138.866C172.502 137.753 173.155 136.61 174.26 136.314L178.515 135.174C179.62 134.878 180.757 135.541 181.055 136.654C181.353 137.767 180.7 138.909 179.595 139.205Z" fill="#56ABDE"/>
71
+ <path d="M154.925 113.597C154.413 113.735 153.849 113.675 153.353 113.386C152.361 112.808 152.019 111.532 152.589 110.535L154.785 106.699C155.356 105.703 156.623 105.364 157.614 105.941C158.606 106.519 158.948 107.794 158.378 108.791L156.182 112.628C155.897 113.126 155.438 113.46 154.926 113.597L154.925 113.597Z" fill="#56ABDE"/>
72
+ <path d="M124.769 67.1517L105.864 72.2171C102.575 73.0985 99.1891 71.1271 98.3012 67.8134C97.4133 64.4997 99.3595 61.0986 102.649 60.2172L121.553 55.1518C124.843 54.2704 128.228 56.2419 129.116 59.5555C130.004 62.8692 128.057 66.2697 124.768 67.1508L124.769 67.1517Z" fill="#0E84E5"/>
73
+ <path d="M74.3792 97.6409L67.9089 105.382C66.8792 106.615 65.0482 106.77 63.8199 105.729L58.3602 101.101C57.131 100.06 56.9715 98.2161 58.0006 96.9841L64.4708 89.2428C65.5008 88.0105 67.3327 87.8556 68.5601 88.8969L74.0207 93.5251C75.2487 94.5653 75.4094 96.4095 74.3792 97.6409Z" fill="#0E84E5"/>
74
+ <path d="M141.042 143.608L140.036 107.661C140 106.345 138.172 106.063 137.755 107.309L126.382 141.264C124.252 142.861 122.73 145.282 122.33 148.151C121.554 153.714 125.357 158.959 130.862 159.92C136.576 160.918 141.962 157.019 142.848 151.277C143.28 148.474 142.561 145.755 141.043 143.609L141.042 143.608ZM131.848 154.51C129.172 154.081 127.34 151.553 127.755 148.862C128.171 146.171 130.676 144.336 133.353 144.765C136.028 145.193 137.861 147.721 137.446 150.412C137.03 153.103 134.524 154.938 131.849 154.51L131.848 154.51Z" fill="#0E84E5"/>
75
+ </g>
76
+ <defs>
77
+ <clipPath id="clip0_19637_55248">
78
+ <rect width="142.486" height="165.895" fill="white" transform="translate(39.4238 77.1582) rotate(-15)"/>
79
+ </clipPath>
80
+ </defs>
81
+ </svg>`
82
+ };
83
+ function getIllustrationSvg(name) {
84
+ return illustrations[name] ?? "";
85
+ }
86
+
87
+ // css-inline:/home/runner/work/BV_lumen/BV_lumen/components/bv-button/bv-button.css
88
+ var bv_button_default = "/* \u2500\u2500 Public theming API \u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\n Apps can override these three properties per-instance:\n\n HTML: <bv-button style=\"--bv-button-bg: #e53e3e;\">\n Angular: <bv-button [style.--bv-button-bg]=\"brandColor\">\n JavaScript: btn.style.setProperty('--bv-button-bg', value)\n\n Hover is auto-computed from the base colors via color-mix().\n Override --bv-button-bg-hover / --bv-button-border-color-hover\n if you need explicit control over the hovered state.\n\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500 */\n:host {\n /* Default values \u2014 map to global tokens (primary variant) */\n --bv-button-bg: var(--bv-color-primary);\n --bv-button-bg-hover: color-mix(in srgb, var(--bv-button-bg) 82%, black);\n --bv-button-color: var(--bv-color-neutral-0);\n --bv-button-border-color: var(--bv-color-primary);\n --bv-button-border-color-hover: color-mix(in srgb, var(--bv-button-border-color) 82%, black);\n --bv-button-font-family: var(--bv-font-family-base);\n --bv-button-font-size: var(--bv-font-size-sm);\n\n display: inline-block;\n font-family: var(--bv-font-family-base);\n}\n\n:host([hidden]) {\n /* `!important` so `hidden` always wins over :host([full-width]) / other display rules. */\n display: none !important;\n}\n\n:host([full-width]) {\n display: block;\n width: 100%;\n}\n\n/* \u2500\u2500 Variant tokens \u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\n Each variant re-points the component tokens to different global\n tokens. Apps can still override with inline styles \u2014 inline style\n always wins due to higher specificity.\n\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500 */\n\n:host([variant='secondary']) {\n --bv-button-bg: var(--bv-color-secondary);\n --bv-button-border-color: var(--bv-color-secondary);\n --bv-button-color: var(--bv-color-secondary-foreground);\n}\n\n:host([variant='tertiary']) {\n --bv-button-bg: var(--bv-color-tertiary);\n --bv-button-border-color: var(--bv-color-tertiary);\n}\n\n:host([variant='danger']) {\n --bv-button-bg: var(--bv-color-danger);\n --bv-button-border-color: var(--bv-color-danger);\n}\n\n:host([variant='ghost']) {\n --bv-button-bg: transparent;\n --bv-button-bg-hover: var(--bv-color-primary-light);\n --bv-button-color: var(--bv-color-primary);\n --bv-button-border-color: transparent;\n --bv-button-border-color-hover: transparent;\n}\n\n:host([variant='outline']) {\n --bv-button-bg: transparent;\n --bv-button-bg-hover: var(--bv-color-primary-light);\n --bv-button-color: var(--bv-color-primary);\n --bv-button-border-color: var(--bv-color-primary);\n --bv-button-border-color-hover: var(--bv-color-primary);\n}\n\n/* \u2500\u2500 Base button \u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\n All visual properties read from the component-level tokens above.\n\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500 */\n\n.btn {\n display: inline-flex;\n align-items: center;\n justify-content: center;\n gap: var(--bv-spacing-xs);\n padding: 10px var(--bv-spacing-md);\n min-height: 40px;\n width: auto;\n font-family: var(--bv-button-font-family);\n font-size: var(--bv-button-font-size);\n font-style: normal;\n font-weight: var(--bv-font-weight-semibold);\n line-height: 20px;\n border: 1px solid var(--bv-button-border-color);\n border-radius: var(--bv-radius-lg);\n cursor: pointer;\n transition:\n background var(--bv-transition-fast),\n color var(--bv-transition-fast),\n border-color var(--bv-transition-fast),\n box-shadow var(--bv-transition-fast),\n opacity var(--bv-transition-fast);\n white-space: nowrap;\n user-select: none;\n text-decoration: none;\n outline: none;\n box-sizing: border-box;\n background: var(--bv-button-bg);\n color: var(--bv-button-color);\n box-shadow: var(--bv-shadow-sm);\n}\n\n:host([full-width]) .btn {\n width: 100%;\n}\n\n.btn:hover:not(:disabled) {\n background: var(--bv-button-bg-hover);\n border-color: var(--bv-button-border-color-hover);\n}\n\n.btn:active:not(:disabled) {\n transform: translateY(1px);\n}\n\n.btn:focus-visible {\n outline: 2px solid var(--bv-button-border-color);\n outline-offset: 2px;\n}\n\n.btn:disabled {\n opacity: 0.5;\n cursor: not-allowed;\n pointer-events: none;\n}\n\n/* \u2500\u2500 Sizes \u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500*/\n\n:host([size='sm']) .btn {\n padding: 6px 12px;\n min-height: 32px;\n font-size: var(--bv-font-size-sm);\n}\n\n:host([size='lg']) .btn {\n padding: 12px var(--bv-spacing-lg);\n min-height: 48px;\n font-size: var(--bv-font-size-md);\n}\n\n/* \u2500\u2500 Icon \u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500*/\n\n.btn-icon {\n display: inline-flex;\n align-items: center;\n flex-shrink: 0;\n line-height: 0;\n}\n\n/* \u2500\u2500 Count badge \u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500*/\n\n.btn-count {\n opacity: 0.8;\n font-weight: var(--bv-font-weight-regular);\n}\n\n/* \u2500\u2500 Loading spinner \u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500*/\n\n.spinner {\n display: inline-block;\n width: 1em;\n height: 1em;\n border: 2px solid currentColor;\n border-top-color: transparent;\n border-radius: 50%;\n flex-shrink: 0;\n animation: bv-spin 700ms linear infinite;\n}\n\n@keyframes bv-spin {\n to {\n transform: rotate(360deg);\n }\n}\n";
89
+
90
+ // components/bv-icon/icons.ts
91
+ var icons = {
92
+ // Navigation
93
+ "chevron-up": `<path d="M18 15l-6-6-6 6"/>`,
94
+ "chevron-down": `<path d="M6 9l6 6 6-6"/>`,
95
+ "chevron-left": `<path d="M15 18l-6-6 6-6"/>`,
96
+ "chevron-right": `<path d="M9 18l6-6-6-6"/>`,
97
+ "arrow-left": `<path d="M19 12H5M12 19l-7-7 7-7"/>`,
98
+ "arrow-right": `<path d="M5 12h14M12 5l7 7-7 7"/>`,
99
+ "external-link": `<path d="M18 13v6a2 2 0 0 1-2 2H5a2 2 0 0 1-2-2V8a2 2 0 0 1 2-2h6"/><polyline points="15,3 21,3 21,9"/><line x1="10" y1="14" x2="21" y2="3"/>`,
100
+ // Actions
101
+ search: `<circle cx="11" cy="11" r="8"/><line x1="21" y1="21" x2="16.65" y2="16.65"/>`,
102
+ edit: `<path d="M11 4H4a2 2 0 0 0-2 2v14a2 2 0 0 0 2 2h14a2 2 0 0 0 2-2v-7"/><path d="M18.5 2.5a2.121 2.121 0 0 1 3 3L12 15l-4 1 1-4 9.5-9.5z"/>`,
103
+ download: `<path d="M21 15v4a2 2 0 0 1-2 2H5a2 2 0 0 1-2-2v-4"/><polyline points="7,10 12,15 17,10"/><line x1="12" y1="15" x2="12" y2="3"/>`,
104
+ upload: `<path d="M21 15v4a2 2 0 0 1-2 2H5a2 2 0 0 1-2-2v-4"/><polyline points="17,8 12,3 7,8"/><line x1="12" y1="3" x2="12" y2="15"/>`,
105
+ plus: `<line x1="12" y1="5" x2="12" y2="19"/><line x1="5" y1="12" x2="19" y2="12"/>`,
106
+ minus: `<line x1="5" y1="12" x2="19" y2="12"/>`,
107
+ x: `<line x1="18" y1="6" x2="6" y2="18"/><line x1="6" y1="6" x2="18" y2="18"/>`,
108
+ check: `<polyline points="20,6 9,17 4,12"/>`,
109
+ trash: `<polyline points="3,6 5,6 21,6"/><path d="M19 6l-1 14a2 2 0 0 1-2 2H8a2 2 0 0 1-2-2L5 6"/><path d="M10 11v6M14 11v6"/><path d="M9 6V4a1 1 0 0 1 1-1h4a1 1 0 0 1 1 1v2"/>`,
110
+ copy: `<rect x="9" y="9" width="13" height="13" rx="2" ry="2"/><path d="M5 15H4a2 2 0 0 1-2-2V4a2 2 0 0 1 2-2h9a2 2 0 0 1 2 2v1"/>`,
111
+ refresh: `<polyline points="23,4 23,10 17,10"/><polyline points="1,20 1,14 7,14"/><path d="M3.51 9a9 9 0 0 1 14.85-3.36L23 10M1 14l4.64 4.36A9 9 0 0 0 20.49 15"/>`,
112
+ filter: `<polygon points="22,3 2,3 10,12.46 10,19 14,21 14,12.46 22,3"/>`,
113
+ // Layout
114
+ list: `<line x1="8" y1="6" x2="21" y2="6"/><line x1="8" y1="12" x2="21" y2="12"/><line x1="8" y1="18" x2="21" y2="18"/><line x1="3" y1="6" x2="3.01" y2="6"/><line x1="3" y1="12" x2="3.01" y2="12"/><line x1="3" y1="18" x2="3.01" y2="18"/>`,
115
+ grid: `<rect x="3" y="3" width="7" height="7"/><rect x="14" y="3" width="7" height="7"/><rect x="14" y="14" width="7" height="7"/><rect x="3" y="14" width="7" height="7"/>`,
116
+ // User / profile
117
+ user: `<path d="M20 21v-2a4 4 0 0 0-4-4H8a4 4 0 0 0-4 4v2"/><circle cx="12" cy="7" r="4"/>`,
118
+ users: `<path d="M17 21v-2a4 4 0 0 0-4-4H5a4 4 0 0 0-4 4v2"/><circle cx="9" cy="7" r="4"/><path d="M23 21v-2a4 4 0 0 0-3-3.87"/><path d="M16 3.13a4 4 0 0 1 0 7.75"/>`,
119
+ // Content
120
+ star: `<polygon points="12,2 15.09,8.26 22,9.27 17,14.14 18.18,21.02 12,17.77 5.82,21.02 7,14.14 2,9.27 8.91,8.26 12,2"/>`,
121
+ eye: `<path d="M1 12s4-8 11-8 11 8 11 8-4 8-11 8-11-8-11-8z"/><circle cx="12" cy="12" r="3"/>`,
122
+ "eye-off": `<path d="M17.94 17.94A10.07 10.07 0 0 1 12 20c-7 0-11-8-11-8a18.45 18.45 0 0 1 5.06-5.94M9.9 4.24A9.12 9.12 0 0 1 12 4c7 0 11 8 11 8a18.5 18.5 0 0 1-2.16 3.19m-6.72-1.07a3 3 0 1 1-4.24-4.24"/><line x1="1" y1="1" x2="23" y2="23"/>`,
123
+ bookmark: `<path d="M19 21l-7-5-7 5V5a2 2 0 0 1 2-2h10a2 2 0 0 1 2 2z"/>`,
124
+ tag: `<path d="M20.59 13.41l-7.17 7.17a2 2 0 0 1-2.83 0L2 12V2h10l8.59 8.59a2 2 0 0 1 0 2.82z"/><line x1="7" y1="7" x2="7.01" y2="7"/>`,
125
+ // Status / feedback
126
+ info: `<circle cx="12" cy="12" r="10"/><line x1="12" y1="8" x2="12" y2="12"/><line x1="12" y1="16" x2="12.01" y2="16"/>`,
127
+ "alert-triangle": `<path d="M10.29 3.86L1.82 18a2 2 0 0 0 1.71 3h16.94a2 2 0 0 0 1.71-3L13.71 3.86a2 2 0 0 0-3.42 0z"/><line x1="12" y1="9" x2="12" y2="13"/><line x1="12" y1="17" x2="12.01" y2="17"/>`,
128
+ "check-circle": `<path d="M22 11.08V12a10 10 0 1 1-5.93-9.14"/><polyline points="22,4 12,14.01 9,11.01"/>`,
129
+ "x-circle": `<circle cx="12" cy="12" r="10"/><line x1="15" y1="9" x2="9" y2="15"/><line x1="9" y1="9" x2="15" y2="15"/>`,
130
+ // Files / media
131
+ file: `<path d="M13 2H6a2 2 0 0 0-2 2v16a2 2 0 0 0 2 2h12a2 2 0 0 0 2-2V9z"/><polyline points="13,2 13,9 20,9"/>`,
132
+ image: `<rect x="3" y="3" width="18" height="18" rx="2" ry="2"/><circle cx="8.5" cy="8.5" r="1.5"/><polyline points="21,15 16,10 5,21"/>`,
133
+ video: `<polygon points="23,7 16,12 23,17 23,7"/><rect x="1" y="5" width="15" height="14" rx="2" ry="2"/>`,
134
+ // Settings
135
+ settings: `<circle cx="12" cy="12" r="3"/><path d="M19.4 15a1.65 1.65 0 0 0 .33 1.82l.06.06a2 2 0 0 1-2.83 2.83l-.06-.06a1.65 1.65 0 0 0-1.82-.33 1.65 1.65 0 0 0-1 1.51V21a2 2 0 0 1-4 0v-.09A1.65 1.65 0 0 0 9 19.4a1.65 1.65 0 0 0-1.82.33l-.06.06a2 2 0 0 1-2.83-2.83l.06-.06A1.65 1.65 0 0 0 4.68 15a1.65 1.65 0 0 0-1.51-1H3a2 2 0 0 1 0-4h.09A1.65 1.65 0 0 0 4.6 9a1.65 1.65 0 0 0-.33-1.82l-.06-.06a2 2 0 0 1 2.83-2.83l.06.06A1.65 1.65 0 0 0 9 4.68a1.65 1.65 0 0 0 1-1.51V3a2 2 0 0 1 4 0v.09a1.65 1.65 0 0 0 1 1.51 1.65 1.65 0 0 0 1.82-.33l.06-.06a2 2 0 0 1 2.83 2.83l-.06.06A1.65 1.65 0 0 0 19.4 9a1.65 1.65 0 0 0 1.51 1H21a2 2 0 0 1 0 4h-.09a1.65 1.65 0 0 0-1.51 1z"/>`,
136
+ lock: `<rect x="3" y="11" width="18" height="11" rx="2" ry="2"/><path d="M7 11V7a5 5 0 0 1 10 0v4"/>`,
137
+ unlock: `<rect x="3" y="11" width="18" height="11" rx="2" ry="2"/><path d="M7 11V7a5 5 0 0 1 9.9-1"/>`,
138
+ bell: `<path d="M18 8A6 6 0 0 0 6 8c0 7-3 9-3 9h18s-3-2-3-9"/><path d="M13.73 21a2 2 0 0 1-3.46 0"/>`,
139
+ mail: `<path d="M4 4h16c1.1 0 2 .9 2 2v12c0 1.1-.9 2-2 2H4c-1.1 0-2-.9-2-2V6c0-1.1.9-2 2-2z"/><polyline points="22,6 12,13 2,6"/>`,
140
+ link: `<path d="M10 13a5 5 0 0 0 7.54.54l3-3a5 5 0 0 0-7.07-7.07l-1.72 1.71"/><path d="M14 11a5 5 0 0 0-7.54-.54l-3 3a5 5 0 0 0 7.07 7.07l1.71-1.71"/>`
141
+ };
142
+ function getIconSvg(name, size = 16) {
143
+ const raw = rawIcons[name];
144
+ if (raw)
145
+ return raw.replace(/width="[^"]*"/, `width="${size}"`).replace(/height="[^"]*"/, `height="${size}"`);
146
+ const paths = icons[name];
147
+ if (!paths) return "";
148
+ return `<svg xmlns="http://www.w3.org/2000/svg" width="${size}" height="${size}" viewBox="0 0 24 24" fill="none" stroke="currentColor" stroke-width="2" stroke-linecap="round" stroke-linejoin="round" aria-hidden="true">${paths}</svg>`;
149
+ }
150
+ var rawIcons = {
151
+ // Module type (small, ~18px)
152
+ "module-scorm": `<svg xmlns="http://www.w3.org/2000/svg" width="18" height="18" viewBox="0 0 15.03 16.28" fill="none" stroke="currentColor" stroke-width="1.5" stroke-linecap="round" stroke-linejoin="round" aria-hidden="true"><path d="M13.9014 4.60034L7.51368 8.14201M7.51368 8.14201L1.126 4.60034M7.51368 8.14201L7.5137 15.267M14.2771 11.1859V5.09812C14.2771 4.84113 14.2771 4.71264 14.2392 4.59804C14.2056 4.49666 14.1508 4.4036 14.0783 4.32508C13.9963 4.23633 13.8838 4.17393 13.6587 4.04913L8.09763 0.965793C7.88451 0.847624 7.77794 0.78854 7.66509 0.765376C7.56521 0.744875 7.46219 0.744875 7.36231 0.765376C7.24946 0.78854 7.1429 0.847624 6.92977 0.965793L1.36873 4.04913C1.14364 4.17393 1.0311 4.23633 0.949147 4.32508C0.876647 4.4036 0.82178 4.49666 0.788217 4.59804C0.750278 4.71264 0.750278 4.84113 0.750278 5.09812V11.1859C0.750278 11.4429 0.750278 11.5714 0.788217 11.686C0.82178 11.7874 0.876647 11.8805 0.949147 11.959C1.0311 12.0477 1.14364 12.1101 1.36873 12.2349L6.92977 15.3183C7.1429 15.4364 7.24946 15.4955 7.36231 15.5187C7.46219 15.5392 7.56521 15.5392 7.66509 15.5187C7.77794 15.4955 7.88451 15.4364 8.09763 15.3183L13.6587 12.2349C13.8838 12.1101 13.9963 12.0477 14.0783 11.959C14.1508 11.8805 14.2056 11.7874 14.2392 11.686C14.2771 11.5714 14.2771 11.4429 14.2771 11.1859Z"/></svg>`,
153
+ "module-assessment": `<svg xmlns="http://www.w3.org/2000/svg" width="18" height="18" viewBox="0 0 13.72 16.13" fill="none" stroke="currentColor" stroke-width="1.125" stroke-linecap="round" stroke-linejoin="round" aria-hidden="true"><path d="M12.507 6.1875V4.1625C12.507 2.90238 12.507 2.27232 12.2629 1.79102C12.0482 1.36766 11.7056 1.02345 11.2841 0.807736C10.8051 0.5625 10.1779 0.5625 8.92364 0.5625H4.14585C2.89156 0.5625 2.26441 0.5625 1.78534 0.807736C1.36393 1.02345 1.02132 1.36766 0.806601 1.79102C0.5625 2.27232 0.5625 2.90238 0.5625 4.1625V11.9625C0.5625 13.2226 0.5625 13.8527 0.806601 14.334C1.02132 14.7573 1.36393 15.1015 1.78534 15.3173C2.26441 15.5625 2.89156 15.5625 4.14585 15.5625H8.0278M8.0278 7.3125H3.54862M5.04168 10.3125H3.54862M9.52086 4.3125H3.54862M9.89413 10.3142C10.0257 9.93852 10.2853 9.62175 10.627 9.41998C10.9688 9.21821 11.3705 9.14445 11.7612 9.21178C12.1519 9.2791 12.5062 9.48315 12.7615 9.7878C13.0168 10.0925 13.1565 10.478 13.1559 10.8763C13.1559 12.0004 11.4775 12.5625 11.4775 12.5625M11.4991 14.8125H11.5066"/></svg>`,
154
+ "module-survey": `<svg xmlns="http://www.w3.org/2000/svg" width="18" height="18" viewBox="0 0 14.56 11.63" fill="none" stroke="currentColor" stroke-width="1.125" stroke-linecap="round" stroke-linejoin="round" aria-hidden="true"><path d="M14 5.8125L5.04168 5.8125M14 1.3125L5.04168 1.3125M14 10.3125L5.04168 10.3125M2.05556 5.8125C2.05556 6.22671 1.72133 6.5625 1.30903 6.5625C0.896733 6.5625 0.5625 6.22671 0.5625 5.8125C0.5625 5.39829 0.896733 5.0625 1.30903 5.0625C1.72133 5.0625 2.05556 5.39829 2.05556 5.8125ZM2.05556 1.3125C2.05556 1.72671 1.72133 2.0625 1.30903 2.0625C0.896733 2.0625 0.5625 1.72671 0.5625 1.3125C0.5625 0.898286 0.896733 0.5625 1.30903 0.5625C1.72133 0.5625 2.05556 0.898286 2.05556 1.3125ZM2.05556 10.3125C2.05556 10.7267 1.72133 11.0625 1.30903 11.0625C0.896733 11.0625 0.5625 10.7267 0.5625 10.3125C0.5625 9.89829 0.896733 9.5625 1.30903 9.5625C1.72133 9.5625 2.05556 9.89829 2.05556 10.3125Z"/></svg>`,
155
+ "module-download": `<svg xmlns="http://www.w3.org/2000/svg" width="18" height="18" viewBox="0 0 16.06 14.63" fill="none" stroke="currentColor" stroke-width="1.125" stroke-linecap="round" stroke-linejoin="round" aria-hidden="true"><path d="M8.77433 3.56259L7.94155 1.88928C7.70187 1.40769 7.58202 1.16689 7.40323 0.990961C7.24512 0.835387 7.05457 0.717069 6.84535 0.644571C6.60877 0.562589 6.3408 0.562589 5.80485 0.562589H2.9514C2.1152 0.562589 1.69711 0.562589 1.37773 0.726079C1.09679 0.869889 0.868379 1.09936 0.725234 1.3816C0.562501 1.70247 0.562501 2.12251 0.562501 2.96259V3.56259M0.562501 3.56259H11.9098C13.164 3.56259 13.7912 3.56259 14.2703 3.80782C14.6917 4.02354 15.0343 4.36775 15.249 4.79111C15.4931 5.27241 15.4931 5.90247 15.4931 7.16259V10.4626C15.4931 11.7227 15.4931 12.3528 15.249 12.8341C15.0343 13.2574 14.6917 13.6016 14.2703 13.8174C13.7912 14.0626 13.164 14.0626 11.9098 14.0626H4.14585C2.89156 14.0626 2.26441 14.0626 1.78534 13.8174C1.36393 13.6016 1.02132 13.2574 0.806601 12.8341C0.562501 12.3528 0.562501 11.7227 0.562501 10.4626V3.56259ZM10.2674 8.81259L8.0278 11.0626L5.78821 8.81259M8.0278 11.0626V6.56259"/></svg>`,
156
+ "module-link": `<svg xmlns="http://www.w3.org/2000/svg" width="18" height="18" viewBox="0 0 15.97 16.03" fill="none" stroke="currentColor" stroke-width="1.125" stroke-linecap="round" stroke-linejoin="round" aria-hidden="true"><path d="M6.49261 8.76267C6.81321 9.19327 7.22223 9.54956 7.69194 9.80737C8.16166 10.0652 8.68106 10.2185 9.21494 10.2569C9.74882 10.2953 10.2847 10.2179 10.7862 10.03C11.2876 9.84207 11.743 9.54797 12.1214 9.16767L14.361 6.91767C15.041 6.21041 15.4172 5.26315 15.4087 4.27991C15.4002 3.29668 15.0076 2.35613 14.3156 1.66085C13.6235 0.965569 12.6873 0.571186 11.7086 0.562642C10.7299 0.554098 9.78705 0.932077 9.08307 1.61517L7.79903 2.89767M9.47873 7.26267C9.15813 6.83207 8.7491 6.47578 8.27939 6.21796C7.80968 5.96015 7.29027 5.80683 6.75639 5.76842C6.22252 5.73001 5.68666 5.80739 5.18517 5.99533C4.68369 6.18327 4.2283 6.47737 3.84989 6.85767L1.6103 9.10767C0.930367 9.81493 0.554137 10.7622 0.562641 11.7454C0.571146 12.7287 0.963705 13.6692 1.65577 14.3645C2.34783 15.0598 3.28403 15.4542 4.26272 15.4627C5.24141 15.4712 6.18428 15.0933 6.88827 14.4102L8.16483 13.1277"/></svg>`,
157
+ "module-adobe-connect": `<svg xmlns="http://www.w3.org/2000/svg" width="18" height="18" viewBox="0 0 16.06 14.63" fill="none" stroke="currentColor" stroke-width="1.125" stroke-linecap="round" stroke-linejoin="round" aria-hidden="true"><path d="M11.7605 0.56252L8.0278 3.56252L4.29515 0.56252M4.14585 14.0625H11.9098C13.164 14.0625 13.7912 14.0625 14.2703 13.8173C14.6917 13.6016 15.0343 13.2574 15.249 12.834C15.4931 12.3527 15.4931 11.7226 15.4931 10.4625V7.16252C15.4931 5.9024 15.4931 5.27234 15.249 4.79104C15.0343 4.36768 14.6917 4.02347 14.2703 3.80776C13.7912 3.56252 13.164 3.56252 11.9098 3.56252H4.14585C2.89156 3.56252 2.26441 3.56252 1.78534 3.80776C1.36393 4.02347 1.02132 4.36768 0.806601 4.79104C0.5625 5.27234 0.5625 5.9024 0.5625 7.16252V10.4625C0.5625 11.7226 0.5625 12.3527 0.806601 12.834C1.02132 13.2574 1.36393 13.6016 1.78534 13.8173C2.26441 14.0625 2.89156 14.0625 4.14585 14.0625Z"/></svg>`,
158
+ "module-video": `<svg xmlns="http://www.w3.org/2000/svg" width="18" height="18" viewBox="0 0 16.06 11.63" fill="none" stroke="currentColor" stroke-width="1.125" stroke-linecap="round" stroke-linejoin="round" aria-hidden="true"><path d="M15.4931 3.51103C15.4931 3.05667 15.4931 2.82949 15.4037 2.72429C15.3261 2.63301 15.2097 2.58457 15.0906 2.59399C14.9533 2.60484 14.7934 2.76548 14.4736 3.08676L11.7605 5.8125L14.4736 8.53824C14.7934 8.85952 14.9533 9.02016 15.0906 9.03101C15.2097 9.04043 15.3261 8.99199 15.4037 8.90071C15.4931 8.79552 15.4931 8.56833 15.4931 8.11397V3.51103ZM0.5625 4.1625C0.5625 2.90238 0.5625 2.27232 0.806601 1.79102C1.02132 1.36766 1.36393 1.02345 1.78534 0.807736C2.26441 0.5625 2.89156 0.5625 4.14585 0.5625H8.17711C9.4314 0.5625 10.0585 0.5625 10.5376 0.807736C10.959 1.02345 11.3016 1.36766 11.5164 1.79102C11.7605 2.27232 11.7605 2.90238 11.7605 4.1625V7.4625C11.7605 8.72262 11.7605 9.35268 11.5164 9.83398C11.3016 10.2573 10.959 10.6015 10.5376 10.8173C10.0585 11.0625 9.4314 11.0625 8.17711 11.0625H4.14584C2.89156 11.0625 2.26441 11.0625 1.78534 10.8173C1.36393 10.6015 1.02132 10.2573 0.806601 9.83398C0.5625 9.35268 0.5625 8.72262 0.5625 7.4625V4.1625Z"/></svg>`,
159
+ "module-upload": `<svg xmlns="http://www.w3.org/2000/svg" width="18" height="18" viewBox="0 0 14.75 16.13" fill="none" stroke="currentColor" stroke-width="1.125" stroke-linecap="round" stroke-linejoin="round" aria-hidden="true"><path d="M13.39 4.3125V4.1625C13.39 2.90238 13.39 2.27232 13.1278 1.79102C12.8972 1.36766 12.5293 1.02345 12.0767 0.807736C11.5622 0.5625 10.8887 0.5625 9.54172 0.5625H4.41074C3.06373 0.5625 2.39022 0.5625 1.87573 0.807736C1.42318 1.02345 1.05524 1.36766 0.824646 1.79102C0.5625 2.27232 0.5625 2.90238 0.5625 4.1625V11.9625C0.5625 13.2226 0.5625 13.8527 0.824646 14.334C1.05524 14.7573 1.42318 15.1015 1.87573 15.3173C2.39022 15.5625 3.06373 15.5625 4.41074 15.5625H7.37709M7.37709 7.3125H3.76936M6.57537 10.3125H3.76936M10.1831 4.3125H3.76936M11.7865 12.5625V8.4375C11.7865 7.81618 12.3249 7.3125 12.9891 7.3125C13.6533 7.3125 14.1917 7.81618 14.1917 8.4375V12.5625C14.1917 13.8051 13.1149 14.8125 11.7865 14.8125C10.4582 14.8125 9.38138 13.8051 9.38138 12.5625V9.5625"/></svg>`
160
+ };
161
+
162
+ // components/bv-button/bv-button.ts
163
+ var _sheet = null;
164
+ function getSheet() {
165
+ if (!_sheet) {
166
+ _sheet = new CSSStyleSheet();
167
+ _sheet.replaceSync(bv_button_default);
168
+ }
169
+ return _sheet;
170
+ }
171
+ var BvButton = class extends HTMLElement {
172
+ static observedAttributes = [
173
+ "variant",
174
+ "size",
175
+ "disabled",
176
+ "loading",
177
+ "type",
178
+ "full-width",
179
+ "icon",
180
+ "icon-position",
181
+ "count"
182
+ ];
183
+ constructor() {
184
+ super();
185
+ const shadow = this.attachShadow({ mode: "open" });
186
+ if ("adoptedStyleSheets" in ShadowRoot.prototype) {
187
+ shadow.adoptedStyleSheets = [getSheet()];
188
+ }
189
+ }
190
+ // ── Accessors ────────────────────────────────────────────────
191
+ get variant() {
192
+ return this.getAttribute("variant") ?? "primary";
193
+ }
194
+ set variant(value) {
195
+ this.setAttribute("variant", value);
196
+ }
197
+ get size() {
198
+ return this.getAttribute("size") ?? "md";
199
+ }
200
+ set size(value) {
201
+ this.setAttribute("size", value);
202
+ }
203
+ get disabled() {
204
+ return this.hasAttribute("disabled");
205
+ }
206
+ set disabled(value) {
207
+ if (value) this.setAttribute("disabled", "");
208
+ else this.removeAttribute("disabled");
209
+ }
210
+ get loading() {
211
+ return this.hasAttribute("loading");
212
+ }
213
+ set loading(value) {
214
+ if (value) this.setAttribute("loading", "");
215
+ else this.removeAttribute("loading");
216
+ }
217
+ get type() {
218
+ const t = this.getAttribute("type");
219
+ return t === "submit" || t === "reset" ? t : "button";
220
+ }
221
+ set type(value) {
222
+ this.setAttribute("type", value);
223
+ }
224
+ get fullWidth() {
225
+ return this.hasAttribute("full-width");
226
+ }
227
+ set fullWidth(value) {
228
+ if (value) this.setAttribute("full-width", "");
229
+ else this.removeAttribute("full-width");
230
+ }
231
+ // ── Lifecycle ────────────────────────────────────────────────
232
+ connectedCallback() {
233
+ this._render();
234
+ }
235
+ attributeChangedCallback(_name, oldValue, newValue) {
236
+ if (oldValue === newValue) return;
237
+ this._render();
238
+ }
239
+ // ── Rendering ────────────────────────────────────────────────
240
+ _render() {
241
+ var _a;
242
+ const shadow = this.shadowRoot;
243
+ let btn = shadow.querySelector("button");
244
+ if (!btn) {
245
+ if (!shadow.adoptedStyleSheets.length) {
246
+ const styleEl = document.createElement("style");
247
+ styleEl.textContent = bv_button_default;
248
+ shadow.appendChild(styleEl);
249
+ }
250
+ btn = document.createElement("button");
251
+ btn.setAttribute("part", "button");
252
+ btn.appendChild(document.createElement("slot"));
253
+ shadow.appendChild(btn);
254
+ }
255
+ btn.type = this.type;
256
+ btn.disabled = this.disabled || this.loading;
257
+ btn.className = "btn";
258
+ if (this.loading) {
259
+ btn.setAttribute("aria-busy", "true");
260
+ if (!btn.querySelector(".spinner")) {
261
+ const spinner = document.createElement("span");
262
+ spinner.className = "spinner";
263
+ spinner.setAttribute("aria-hidden", "true");
264
+ btn.insertBefore(spinner, btn.querySelector("slot"));
265
+ }
266
+ } else {
267
+ btn.removeAttribute("aria-busy");
268
+ (_a = btn.querySelector(".spinner")) == null ? void 0 : _a.remove();
269
+ }
270
+ btn.querySelectorAll(".btn-icon").forEach((el) => el.remove());
271
+ const iconName = this.getAttribute("icon");
272
+ if (iconName && !this.loading) {
273
+ const svg = getIconSvg(iconName, 16);
274
+ if (svg) {
275
+ const iconEl = document.createElement("span");
276
+ iconEl.className = "btn-icon";
277
+ iconEl.innerHTML = svg;
278
+ const slot = btn.querySelector("slot");
279
+ if (this.getAttribute("icon-position") === "right") {
280
+ btn.appendChild(iconEl);
281
+ } else {
282
+ btn.insertBefore(iconEl, slot);
283
+ }
284
+ }
285
+ }
286
+ btn.querySelectorAll(".btn-count").forEach((el) => el.remove());
287
+ const countVal = this.getAttribute("count");
288
+ if (countVal && Number(countVal) > 0) {
289
+ const countEl = document.createElement("span");
290
+ countEl.className = "btn-count";
291
+ countEl.textContent = `(${countVal})`;
292
+ btn.appendChild(countEl);
293
+ }
294
+ }
295
+ };
296
+ if (!customElements.get("bv-button")) {
297
+ customElements.define("bv-button", BvButton);
298
+ }
3
299
 
4
300
  // components/bv-empty-state/bv-empty-state.ts
301
+ var DEFAULT_ICON_SVG = `<svg width="24" height="24" viewBox="0 0 24 24" fill="none" xmlns="http://www.w3.org/2000/svg" aria-hidden="true">
302
+ <path d="M9 5H7a2 2 0 00-2 2v12a2 2 0 002 2h10a2 2 0 002-2V7a2 2 0 00-2-2h-2M9 5a2 2 0 002 2h2a2 2 0 002-2M9 5a2 2 0 012-2h2a2 2 0 012 2" stroke="currentColor" stroke-width="2" stroke-linecap="round" stroke-linejoin="round"/>
303
+ </svg>`;
304
+ var DEFAULT_CONTACT_SUPPORT_LABEL = "Contact Support";
5
305
  var BvEmptyState = class extends HTMLElement {
6
- static observedAttributes = ["title", "description"];
306
+ static observedAttributes = [
307
+ "title",
308
+ "description",
309
+ "icon-svg",
310
+ "illustration",
311
+ "contact-support",
312
+ "contact-support-label",
313
+ "contact-support-href",
314
+ "contact-support-target"
315
+ ];
7
316
  _rendered = false;
8
317
  _titleEl = null;
9
318
  _descEl = null;
319
+ _iconWrap = null;
320
+ _iconSlot = null;
321
+ _actionSlot = null;
322
+ _wrapEl = null;
10
323
  constructor() {
11
324
  super();
12
325
  this.attachShadow({ mode: "open" });
@@ -16,6 +329,48 @@ var BvEmptyState = class extends HTMLElement {
16
329
  this.shadowRoot.adoptedStyleSheets = [sheet];
17
330
  }
18
331
  }
332
+ get iconSvg() {
333
+ return this.getAttribute("icon-svg") ?? "";
334
+ }
335
+ set iconSvg(v) {
336
+ if (v) this.setAttribute("icon-svg", v);
337
+ else this.removeAttribute("icon-svg");
338
+ }
339
+ get illustration() {
340
+ return this.getAttribute("illustration") ?? "none";
341
+ }
342
+ set illustration(v) {
343
+ if (v && v !== "none") this.setAttribute("illustration", v);
344
+ else this.removeAttribute("illustration");
345
+ }
346
+ get contactSupport() {
347
+ return this.hasAttribute("contact-support");
348
+ }
349
+ set contactSupport(v) {
350
+ if (v) this.setAttribute("contact-support", "");
351
+ else this.removeAttribute("contact-support");
352
+ }
353
+ get contactSupportLabel() {
354
+ return this.getAttribute("contact-support-label") ?? DEFAULT_CONTACT_SUPPORT_LABEL;
355
+ }
356
+ set contactSupportLabel(v) {
357
+ if (v) this.setAttribute("contact-support-label", v);
358
+ else this.removeAttribute("contact-support-label");
359
+ }
360
+ get contactSupportHref() {
361
+ return this.getAttribute("contact-support-href") ?? "";
362
+ }
363
+ set contactSupportHref(v) {
364
+ if (v) this.setAttribute("contact-support-href", v);
365
+ else this.removeAttribute("contact-support-href");
366
+ }
367
+ get contactSupportTarget() {
368
+ return this.getAttribute("contact-support-target") ?? "";
369
+ }
370
+ set contactSupportTarget(v) {
371
+ if (v) this.setAttribute("contact-support-target", v);
372
+ else this.removeAttribute("contact-support-target");
373
+ }
19
374
  connectedCallback() {
20
375
  this._render();
21
376
  }
@@ -23,6 +378,11 @@ var BvEmptyState = class extends HTMLElement {
23
378
  if (!this._rendered) return;
24
379
  if (name === "title" && this._titleEl) this._titleEl.textContent = val ?? "";
25
380
  if (name === "description" && this._descEl) this._descEl.textContent = val ?? "";
381
+ if (name === "icon-svg") this._syncIconFallback();
382
+ if (name === "illustration") this._syncIconFallback();
383
+ if (name === "contact-support" || name === "contact-support-label" || name === "contact-support-href" || name === "contact-support-target") {
384
+ this._syncActionFallback();
385
+ }
26
386
  }
27
387
  _render() {
28
388
  if (this._rendered) return;
@@ -35,13 +395,14 @@ var BvEmptyState = class extends HTMLElement {
35
395
  }
36
396
  const wrap = document.createElement("div");
37
397
  wrap.className = "wrap";
398
+ this._wrapEl = wrap;
38
399
  const iconWrap = document.createElement("div");
39
400
  iconWrap.className = "icon";
401
+ this._iconWrap = iconWrap;
40
402
  const iconSlot = document.createElement("slot");
41
403
  iconSlot.name = "icon";
42
- iconSlot.innerHTML = `<svg width="24" height="24" viewBox="0 0 24 24" fill="none" xmlns="http://www.w3.org/2000/svg">
43
- <path d="M9 5H7a2 2 0 00-2 2v12a2 2 0 002 2h10a2 2 0 002-2V7a2 2 0 00-2-2h-2M9 5a2 2 0 002 2h2a2 2 0 002-2M9 5a2 2 0 012-2h2a2 2 0 012 2" stroke="currentColor" stroke-width="2" stroke-linecap="round" stroke-linejoin="round"/>
44
- </svg>`;
404
+ this._iconSlot = iconSlot;
405
+ this._syncIconFallback();
45
406
  iconWrap.appendChild(iconSlot);
46
407
  const textWrap = document.createElement("div");
47
408
  textWrap.className = "text";
@@ -56,10 +417,54 @@ var BvEmptyState = class extends HTMLElement {
56
417
  actionWrap.className = "action";
57
418
  const actionSlot = document.createElement("slot");
58
419
  actionSlot.name = "action";
420
+ this._actionSlot = actionSlot;
421
+ this._syncActionFallback();
59
422
  actionWrap.appendChild(actionSlot);
60
423
  wrap.append(iconWrap, textWrap, actionWrap);
61
424
  shadow.appendChild(wrap);
62
425
  }
426
+ _syncIconFallback() {
427
+ if (!this._iconSlot || !this._iconWrap || !this._wrapEl) return;
428
+ const illustration = this.illustration;
429
+ const isHero = illustration !== "none";
430
+ this._wrapEl.classList.toggle("hero", isHero);
431
+ this._iconWrap.classList.toggle("hero", isHero);
432
+ if (isHero) {
433
+ this._iconSlot.innerHTML = getIllustrationSvg(illustration);
434
+ return;
435
+ }
436
+ const custom = this.getAttribute("icon-svg");
437
+ this._iconSlot.innerHTML = custom && custom.trim() ? custom : DEFAULT_ICON_SVG;
438
+ }
439
+ _syncActionFallback() {
440
+ if (!this._actionSlot) return;
441
+ if (!this.contactSupport) {
442
+ this._actionSlot.replaceChildren();
443
+ return;
444
+ }
445
+ const label = this.contactSupportLabel;
446
+ const href = this.contactSupportHref;
447
+ const target = this.contactSupportTarget;
448
+ let action;
449
+ if (href) {
450
+ const link = document.createElement("a");
451
+ link.className = "contact-support-link";
452
+ link.href = href;
453
+ link.rel = "noopener noreferrer";
454
+ if (target) link.setAttribute("target", target);
455
+ link.textContent = label;
456
+ action = link;
457
+ } else {
458
+ const btn = document.createElement("bv-button");
459
+ btn.setAttribute("variant", "ghost");
460
+ btn.textContent = label;
461
+ action = btn;
462
+ }
463
+ action.addEventListener("click", () => {
464
+ this.dispatchEvent(new CustomEvent("bv-contact-support", { bubbles: true, composed: true }));
465
+ });
466
+ this._actionSlot.replaceChildren(action);
467
+ }
63
468
  };
64
469
  if (!customElements.get("bv-empty-state")) {
65
470
  customElements.define("bv-empty-state", BvEmptyState);
@@ -0,0 +1,3 @@
1
+ export type EmptyStateIllustration = 'empty' | 'error' | 'no-results' | 'disconnect' | 'time';
2
+ export declare const illustrations: Record<EmptyStateIllustration, string>;
3
+ export declare function getIllustrationSvg(name: EmptyStateIllustration): string;
@@ -13,13 +13,17 @@ export interface FilterGroup {
13
13
  }
14
14
  export declare class BvFilterPanel extends HTMLElement {
15
15
  static readonly observedAttributes: string[];
16
+ get loading(): boolean;
17
+ set loading(v: boolean);
16
18
  private _rendered;
17
19
  private _groups;
18
20
  private _groupsEl;
21
+ private _skeletonEl;
19
22
  constructor();
20
23
  connectedCallback(): void;
21
24
  attributeChangedCallback(name: string, _old: string | null, _val: string | null): void;
22
25
  private _parseGroups;
23
26
  private _render;
27
+ private _syncLoading;
24
28
  private _buildGroups;
25
29
  }