@endfield-ui/react 1.0.0 → 1.1.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.
- package/NOTICE.md +32 -2
- package/README.md +37 -2
- package/dist/game/LICENSE.lucide +43 -0
- package/dist/game/assets/alert_banner_bg_left.png +0 -0
- package/dist/game/assets/alert_banner_bg_right.png +0 -0
- package/dist/game/assets/alert_bg.png +0 -0
- package/dist/game/assets/deco_common_logo_bg.png +0 -0
- package/dist/game/assets/detail.png +0 -0
- package/dist/game/assets/enemies_background.webp +0 -0
- package/dist/game/assets/enemies_background_dark.webp +0 -0
- package/dist/game/assets/header.webp +0 -0
- package/dist/game/assets/icon_card_rarity_1_bottom_edge.webp +0 -0
- package/dist/game/assets/icon_card_rarity_2_bottom_edge.webp +0 -0
- package/dist/game/assets/icon_card_rarity_3_bottom_edge.webp +0 -0
- package/dist/game/assets/icon_card_rarity_4_bottom_edge.webp +0 -0
- package/dist/game/assets/icon_card_rarity_5_bottom_edge.webp +0 -0
- package/dist/game/assets/icon_card_rarity_6_bottom_edge.webp +0 -0
- package/dist/game/assets/items_background.webp +0 -0
- package/dist/game/assets/items_background_dark.webp +0 -0
- package/dist/game/assets/link.webp +0 -0
- package/dist/game/assets/pag-button-texture.png +0 -0
- package/dist/game/assets/weapons_background.webp +0 -0
- package/dist/game/assets/weapons_background_dark.webp +0 -0
- package/dist/game/resource-provenance.json +384 -0
- package/dist/game/styles.css +2 -0
- package/dist/game.d.ts +372 -0
- package/dist/game.js +2042 -0
- package/dist/index.js +2 -2
- package/package.json +9 -2
- package/src/components/README.md +3 -1
- package/src/components/carousel/Carousel.tsx +2 -1
- package/src/components/dash-indicator/DashIndicator.tsx +5 -1
- package/src/styles/README.md +5 -1
- package/src/styles/index.css +5 -0
|
@@ -0,0 +1,2 @@
|
|
|
1
|
+
/*! tailwindcss v4.3.3 | MIT License | https://tailwindcss.com */
|
|
2
|
+
@layer theme,base;@layer components{.ef-animated-dialog-backdrop{z-index:var(--z-overlay,300);background:#0003;position:fixed;inset:0}.ef-animated-dialog-viewport{z-index:var(--z-overlay,300);justify-content:center;align-items:center;display:flex;position:fixed;inset:0;overflow:hidden}.ef-animated-dialog{color:#191919;width:768px;min-width:0;max-width:100%;min-height:0;max-height:100%;font-family:var(--font-sans,inherit);isolation:isolate;outline:none;flex-direction:column;display:flex;position:relative}.ef-animated-dialog[hidden],.ef-animated-dialog-viewport[hidden],.ef-animated-dialog-backdrop[hidden]{display:none}.ef-animated-dialog__header{flex-shrink:0;position:relative}.ef-animated-dialog__top-strip{transform-origin:0;align-items:stretch;width:348px;max-width:100%;height:15px;display:flex}.ef-animated-dialog__yellow-block{background:#ffff21;flex:0 0 51px}.ef-animated-dialog__top-deco{color:#363636;background:#999;flex:1;justify-content:space-between;align-items:center;min-width:0;padding-inline:4px;display:flex}.ef-animated-dialog__top-deco>svg{fill:currentColor;width:auto;height:10px;font-family:Outfit;font-weight:700}.ef-animated-dialog__top-deco>.ef-animated-dialog__plus{fill:none;flex-shrink:0;width:10px;height:10px}.ef-animated-dialog__title-band{background:#363636;gap:24px;height:63px;display:flex;position:relative;overflow:hidden}.ef-animated-dialog__icon-slot{color:#d3d3d3;background:#484848;flex:0 0 79px;justify-content:center;align-items:center;font-size:24px;display:flex}.ef-animated-dialog__icon{justify-content:center;align-items:center;display:flex}.ef-animated-dialog__title{z-index:1;color:#fff;flex:1;align-items:center;min-width:0;margin:0;padding-right:40px;font-size:32px;font-weight:700;line-height:1;display:flex;position:relative;overflow:hidden}.ef-animated-dialog__title-deco{color:#ffffff0d;letter-spacing:-14px;pointer-events:none;font-family:Outfit;font-size:144px;font-weight:700;position:absolute;top:50%;right:0;transform:translateY(-50%)}.ef-animated-dialog__title>span{text-overflow:ellipsis;white-space:nowrap;overflow:hidden}.ef-animated-dialog__close-motion{z-index:2;position:absolute;top:0;right:0}.ef-animated-dialog__close{color:#363636;cursor:pointer;background:#ffff21;border:0;place-items:center;width:36px;height:36px;padding:0;display:grid}.ef-animated-dialog__close>svg{width:24px;height:24px}.ef-animated-dialog__close:hover{background:#eeea00}.ef-animated-dialog__close:active{background:#e6de01}.ef-animated-dialog__close[aria-disabled=true]{cursor:progress}.ef-animated-dialog__close:focus-visible{outline-offset:3px;outline:2px solid #fff;box-shadow:0 0 0 3px #191919}.ef-animated-dialog__separator{z-index:1;transform-origin:0;filter:drop-shadow(0 0 3px #00000080);background:linear-gradient(90deg,#ffff1b 50%,#d3d3d3 50%);height:6px;position:relative}.ef-animated-dialog__separator:after{box-sizing:content-box;content:"";border-top:12px solid #ffff1b;border-inline:12px solid #0000;display:block;position:absolute;bottom:-8px;left:52px}.ef-animated-dialog__content{background-color:#fff;background-image:repeating-linear-gradient(-45deg,#0000,#0000 2px,#ccc2 2px 3px);flex-direction:column;flex:auto;min-height:0;display:flex;position:relative;overflow:hidden}.ef-animated-dialog__body{overscroll-behavior:contain;min-height:0;overflow-y:auto}.ef-animated-dialog__description{color:#626262;margin:24px 24px 16px}.ef-animated-dialog__registration{transform-origin:100%;background:linear-gradient(90deg,#00ffa2 42.5%,#ffff21 42.5% 79.2%,#ff00f0 79.2%);width:min(240px,100% - 40.8px);height:4px;position:absolute;bottom:0;right:20.4px}.ef-animated-dialog__footer{transform-origin:0;background:#ababab;flex-shrink:0;align-items:center;height:15px;margin-right:36px;padding-inline:16px;display:flex}.ef-animated-dialog__footer-square{background:#838383;width:8px;height:8px}.ef-animated-dialog__footer-outline{border:1px solid #838383;width:8px;height:8px;margin-left:2px;-webkit-mask-image:linear-gradient(#fff 2px,#0000 2px 6px,#fff 6px);mask-image:linear-gradient(#fff 2px,#0000 2px 6px,#fff 6px)}.ef-animated-dialog__footer-hatch{background:repeating-linear-gradient(-45deg,#0000,#0000 1px,#838383 1px 2px);width:48px;height:8px;margin-left:4px}.ef-animated-dialog[data-open]{animation:.15s ease-out both ef-animated-dialog-enter}.ef-animated-dialog[data-open] .ef-animated-dialog__top-strip{animation:.12s ease-out both ef-animated-dialog-strip-enter}.ef-animated-dialog[data-open] .ef-animated-dialog__footer{animation:.12s ease-out 50ms both ef-animated-dialog-strip-enter}.ef-animated-dialog[data-open] .ef-animated-dialog__icon{animation:.2s cubic-bezier(.33,1.53,.69,.99) .1s both ef-animated-dialog-scale-enter}.ef-animated-dialog[data-open] .ef-animated-dialog__close-motion{animation:.2s cubic-bezier(.33,1.53,.69,.99) .2s both ef-animated-dialog-scale-enter}.ef-animated-dialog[data-open] .ef-animated-dialog__registration{animation:.15s ease-out .1s both ef-animated-dialog-strip-enter}.ef-animated-dialog[data-open] .ef-animated-dialog__separator{animation:.12s ease-out .2s both ef-animated-dialog-strip-enter}.ef-animated-dialog[data-ending-style]{animation:.1s ease-out .2s both ef-animated-dialog-exit}.ef-animated-dialog[data-ending-style] .ef-animated-dialog__top-strip{animation:.1s ease-in .15s both ef-animated-dialog-strip-exit}.ef-animated-dialog[data-ending-style] .ef-animated-dialog__footer{animation:.1s ease-in 50ms both ef-animated-dialog-strip-exit}.ef-animated-dialog[data-ending-style] .ef-animated-dialog__icon{animation:.1s ease-in both ef-animated-dialog-scale-exit}.ef-animated-dialog[data-ending-style] .ef-animated-dialog__close-motion{animation:.15s ease-in both ef-animated-dialog-scale-exit}.ef-animated-dialog[data-ending-style] .ef-animated-dialog__registration{animation:80ms ease-in both ef-animated-dialog-strip-exit}.ef-animated-dialog[data-ending-style] .ef-animated-dialog__separator{animation:.1s ease-in .1s both ef-animated-dialog-strip-exit}@keyframes ef-animated-dialog-enter{0%{opacity:0;transform:scale(.9)}to{opacity:1;transform:scale(1)}}@keyframes ef-animated-dialog-exit{0%{opacity:1;transform:scale(1)}to{opacity:0;transform:scale(.9)}}@keyframes ef-animated-dialog-strip-enter{0%{transform:scaleX(0)}to{transform:scaleX(1)}}@keyframes ef-animated-dialog-strip-exit{0%{transform:scaleX(1)}to{transform:scaleX(0)}}@keyframes ef-animated-dialog-scale-enter{0%{transform:scale(0)}to{transform:scale(1)}}@keyframes ef-animated-dialog-scale-exit{0%{transform:scale(1)}to{transform:scale(0)}}@media (prefers-reduced-motion:reduce){.ef-animated-dialog,.ef-animated-dialog :is(.ef-animated-dialog__top-strip,.ef-animated-dialog__footer,.ef-animated-dialog__icon,.ef-animated-dialog__close-motion,.ef-animated-dialog__registration,.ef-animated-dialog__separator){animation-duration:.01ms!important;animation-delay:0s!important}}@media (forced-colors:active){.ef-animated-dialog{background:canvas;border:1px solid canvastext}.ef-animated-dialog__top-strip,.ef-animated-dialog__title-deco,.ef-animated-dialog__separator,.ef-animated-dialog__registration,.ef-animated-dialog__footer{display:none}.ef-animated-dialog__content{color:canvastext;background:canvas}.ef-animated-dialog__title-band{background:canvas;border:1px solid canvastext}.ef-animated-dialog__title{color:canvastext}.ef-animated-dialog__close{color:buttontext;background:buttonface;border:1px solid buttontext}}.ef-rounded-select{color:#373537;width:100%;min-width:0;position:relative}.ef-rounded-select-trigger{z-index:1;box-sizing:border-box;width:100%;min-height:32px;color:inherit;font:inherit;text-align:left;cursor:default;background:#edebec;border:0;border-radius:9999px;align-items:center;gap:8px;padding:4px 10px 4px 14px;line-height:24px;display:flex;position:relative;box-shadow:0 4px 6px -1px #0000001a,0 2px 4px -2px #0000001a}.ef-rounded-select-trigger:hover:not(:disabled){background:#e0e0e0}.ef-rounded-select-trigger:active:not(:disabled){background:#edebec}.ef-rounded-select-trigger:disabled{color:#6e6d6e;cursor:not-allowed;box-shadow:none;background:#edebec66}.ef-rounded-select-trigger:focus-visible{outline:2px solid var(--ef-focus,#373537);outline-offset:2px}.ef-rounded-select[data-invalid] .ef-rounded-select-trigger,.ef-rounded-select-mirror[data-invalid]{outline:2px solid var(--ef-danger,#bd3636);outline-offset:1px}.ef-rounded-select-value{white-space:nowrap;text-overflow:ellipsis;flex:1;min-width:0;overflow:hidden}.ef-rounded-select-chevron{flex-shrink:0;align-items:center;transition:transform .3s;display:flex}.ef-rounded-select-chevron[data-popup-open]{transform:rotate(180deg)}.ef-rounded-select-positioner{z-index:var(--z-overlay,300);min-width:var(--anchor-width);color:#373537;pointer-events:none;outline:none;max-width:calc(100vw - 16px)}.ef-rounded-select-mirror{width:var(--anchor-width);height:var(--anchor-height);pointer-events:none;position:absolute;top:-16px;left:0}.ef-rounded-select-mirror[data-hovered]{background:#e0e0e0}.ef-rounded-select-mirror[data-pressed]{background:#edebec}.ef-rounded-select-positioner[data-side=top] .ef-rounded-select-mirror{top:auto;bottom:-16px}.ef-rounded-select-popup{box-sizing:border-box;width:max-content;min-width:var(--anchor-width);max-width:min(var(--available-width), calc(100vw - 16px));max-height:min(var(--available-height), 256px);color:#373537;opacity:1;transform-origin:top;pointer-events:none;background:#d4d2d3;border-radius:0 0 6px 6px;flex-direction:column;padding-top:22px;transition:transform .15s ease-out,opacity .15s ease-out;display:flex;overflow:hidden;transform:scaleY(1);box-shadow:0 4px 6px -1px #0000001a,0 2px 4px -2px #0000001a}.ef-rounded-select-popup[data-side=top]{transform-origin:bottom;border-radius:6px 6px 0 0;padding-top:0;padding-bottom:22px}.ef-rounded-select-popup[data-starting-style],.ef-rounded-select-popup[data-ending-style]{opacity:0;transform:scaleY(0)}.ef-rounded-select-scroll-area{pointer-events:auto;flex-direction:column;flex:1;min-width:0;min-height:0;display:flex;position:relative;overflow:hidden}.ef-rounded-select-viewport{overscroll-behavior:contain;outline:none;flex:1;min-height:0}.ef-rounded-select-option{box-sizing:border-box;width:100%;min-width:0;font:inherit;text-align:left;cursor:default;-webkit-user-select:none;user-select:none;outline:none;align-items:center;padding:6px 4px;line-height:24px;display:flex;position:relative}.ef-rounded-select-option[data-highlighted]:not([data-selected]):not([data-disabled]){background:#e0e0e0}.ef-rounded-select-option[data-selected]:not([data-disabled]){color:#fff;background:#5f5f5f}.ef-rounded-select-option[data-selected]:before{content:"";background:#fff;border-radius:9999px;width:2.5px;height:18px;position:absolute;top:50%;left:1.5px;transform:translateY(-50%)}.ef-rounded-select-option[data-disabled]{color:#6e6d6e;cursor:not-allowed}.ef-rounded-select-option:focus-visible{outline-offset:-2px;outline:2px solid}.ef-rounded-select-option-label{text-overflow:ellipsis;white-space:nowrap;flex:1;min-width:0;margin-inline:8px;overflow:hidden}.ef-rounded-select-left,.ef-rounded-select-right{flex-shrink:0;align-items:center;display:flex}.ef-rounded-select-left{margin-left:4px}.ef-rounded-select-right{margin-right:4px}.ef-rounded-select-check{flex-shrink:0;justify-content:center;align-items:center;width:16px;display:flex}.ef-rounded-select-scrollbar{opacity:0;justify-content:center;width:12px;transition:opacity .3s;display:flex;position:relative}.ef-rounded-select-scrollbar[data-hovering],.ef-rounded-select-scrollbar[data-scrolling],.ef-rounded-select-scroll-area:focus-within .ef-rounded-select-scrollbar{opacity:1}.ef-rounded-select-scrollbar:before{content:"";inset-block:0;background:#0003;border-radius:9999px;width:3px;position:absolute;left:50%;transform:translate(-50%)}.ef-rounded-select-thumb{z-index:1;cursor:grab;background:#fcfefe;border-radius:9999px;width:5px;box-shadow:0 0 2px #0003}.ef-rounded-select-thumb:active{cursor:grabbing}@media (prefers-reduced-motion:reduce){.ef-rounded-select-chevron,.ef-rounded-select-popup,.ef-rounded-select-scrollbar{transition:none}}@media (forced-colors:active){.ef-rounded-select-trigger,.ef-rounded-select-popup{color:buttontext;box-shadow:none;background:canvas;border:1px solid buttontext}.ef-rounded-select-trigger:disabled,.ef-rounded-select-option[data-disabled]{color:graytext}.ef-rounded-select-option[data-selected]:not([data-disabled]){color:highlighttext;forced-color-adjust:none;background:highlight}.ef-rounded-select-option[data-selected]:before{background:currentColor}.ef-rounded-select-scrollbar:before{background:canvas;border:1px solid buttontext}.ef-rounded-select-thumb{background:buttontext}}.ef-rounded-button{box-sizing:border-box;color:#fefcfc;cursor:default;background:#2a2728;border:0;border-radius:9999px;justify-content:center;align-items:center;min-width:112px;padding:.3em .35em;font-family:inherit;font-size:16px;line-height:1.5;display:inline-flex;box-shadow:0 0 0 .1em #2a2728,inset 0 0 0 .1em #81807f}.ef-rounded-button[data-variant=default]{color:#4d4d4d;background:#f2f1ef;box-shadow:0 0 0 .1em #f2f1ef,inset 0 0 0 .1em #a0a2a3}.ef-rounded-button[data-icon-position=left]{padding-left:.3em}.ef-rounded-button:disabled{opacity:.7;cursor:not-allowed}.ef-rounded-button[data-loading]{cursor:progress}.ef-rounded-button:focus-visible,.ef-rounded-icon-button:focus-visible{outline:2px solid var(--ef-focus,#373537);outline-offset:3px}.ef-rounded-button-text{text-align:center;flex:1}.ef-rounded-button-icon{color:#2a2728;pointer-events:none;background:#fefcfc;border-radius:9999px;flex-shrink:0;justify-content:center;align-items:center;width:1.3em;height:1.3em;transition:background-color .3s,color .3s;display:flex}.ef-rounded-button-icon svg{font-size:1.3em}.ef-rounded-button[data-variant=default] .ef-rounded-button-icon{color:#f2f1ef;background:#4d4d4d}.ef-rounded-button[data-variant=default] .ef-rounded-button-icon svg{font-size:1em}.ef-rounded-button-spinner{box-sizing:border-box;border:2px solid #fb0;border-top-color:#fff;border-radius:9999px;width:1em;height:1em;animation:1s linear infinite ef-rounded-button-spin}@keyframes ef-rounded-button-spin{to{transform:rotate(360deg)}}.ef-rounded-icon-button{box-sizing:border-box;color:#3c3c3c;width:24px;height:24px;font:inherit;cursor:default;background:#fafafa;border:0;border-radius:9999px;flex-shrink:0;justify-content:center;align-items:center;padding:0;transition:background-color .15s;display:inline-flex;position:relative;box-shadow:0 0 10px #0202024d}.ef-rounded-icon-button:disabled{opacity:.5;cursor:not-allowed}.ef-rounded-icon-button-texture,.ef-rounded-icon-button-border{pointer-events:none;border-radius:9999px;position:absolute;inset:0}.ef-rounded-icon-button-texture{background:var(--ef-game-button-texture,url(./assets/pag-button-texture.png)) center / cover no-repeat;opacity:.4}.ef-rounded-icon-button-border{z-index:1}.ef-rounded-icon-button-border:before,.ef-rounded-icon-button-border:after{content:"";border-radius:9999px;position:absolute;inset:0}.ef-rounded-icon-button-border:before{border:1.5px solid #e6e6e6}.ef-rounded-icon-button-border:after{border:1px solid #fff}.ef-rounded-icon-button-content{pointer-events:none;justify-content:center;align-items:center;display:flex;position:relative}@media (hover:hover) and (pointer:fine){.ef-rounded-button:not(:disabled):not([data-loading]):hover{background:#2a2728b5;box-shadow:0 0 0 .1em #2a2728b5,inset 0 0 0 .1em #81807f}.ef-rounded-button[data-variant=default]:not(:disabled):not([data-loading]):hover{background:#e8e8e8b5;box-shadow:0 0 0 .1em #e8e8e8b5,inset 0 0 0 .1em #a5a5a5}}@media (min-width:768px) and (hover:hover) and (pointer:fine){.ef-rounded-icon-button:not(:disabled):hover{background:#fffa00}.ef-rounded-icon-button:not(:disabled):active{background:#eeea00}}@media (prefers-reduced-motion:reduce){.ef-rounded-button-icon,.ef-rounded-icon-button{transition:none}.ef-rounded-button-spinner{animation:none}}@media (forced-colors:active){.ef-rounded-button,.ef-rounded-icon-button{color:buttontext;box-shadow:none;background:buttonface;border:1px solid buttontext}.ef-rounded-button:disabled,.ef-rounded-icon-button:disabled{color:graytext;border-color:graytext}.ef-rounded-button-icon{color:buttontext;background:buttonface;border:1px solid buttontext}.ef-rounded-icon-button-texture,.ef-rounded-icon-button-border{display:none}.ef-rounded-button-spinner{border-color:highlight buttontext buttontext}}.ef-rounded-icon-button-texture:is([data-ef-game-images=off],[data-ef-game-images=off] *){background:0 0;display:none}.ef-rounded-toggle{isolation:isolate;background:#5c5a5d;border-radius:9999px;align-items:center;width:100%;min-width:0;max-width:100%;min-height:32px;font-size:16px;line-height:24px;display:flex;position:relative;box-shadow:0 0 3px #0004}.ef-rounded-toggle__highlight{z-index:1;pointer-events:none;background:#edebec;border-radius:9999px;height:100%;transition-property:none;position:absolute;inset:0 auto 0 0;box-shadow:0 0 3px #0006}.ef-rounded-toggle__highlight[hidden]{display:none}.ef-rounded-toggle__option{z-index:2;color:#b3b1b4;min-width:0;min-height:32px;font:inherit;cursor:pointer;background:0 0;border:0;border-radius:9999px;flex:1 1 0;justify-content:center;align-items:center;gap:8px;padding:4px 16px;display:flex;position:relative}.ef-rounded-toggle__option[data-checked]{color:#373537}.ef-rounded-toggle__option:is([disabled],[aria-disabled=true]){cursor:not-allowed}.ef-rounded-toggle__option:focus-visible{outline:2px solid var(--ef-focus,#191919);outline-offset:2px;z-index:3}.ef-rounded-toggle__label{text-overflow:ellipsis;white-space:nowrap;min-width:0;overflow:hidden}.ef-rounded-toggle__icon{background:#373537;border-radius:50%;flex-shrink:0;justify-content:center;align-items:center;width:24px;height:24px;display:flex}@media (forced-colors:active){.ef-rounded-toggle{box-shadow:none;background:canvas;border:1px solid buttontext}.ef-rounded-toggle__highlight{box-shadow:none;forced-color-adjust:none;background:highlight}.ef-rounded-toggle__option{color:buttontext}.ef-rounded-toggle__option[data-checked]{color:highlighttext;forced-color-adjust:none}.ef-rounded-toggle__option:is([disabled],[aria-disabled=true]){color:graytext}.ef-rounded-toggle__option:focus-visible{outline-color:highlight}}.ef-rounded-switch{isolation:isolate;background:#5c5a5d;border-radius:9999px;align-items:center;width:100%;min-width:0;max-width:100%;min-height:32px;font-size:16px;line-height:24px;display:flex;position:relative;box-shadow:0 0 3px #0004}.ef-rounded-switch__highlight{z-index:1;pointer-events:none;background:#edebec;border-radius:9999px;width:calc(50% + .5em);height:100%;transition-property:none;position:absolute;inset:0 auto 0 0;box-shadow:0 0 3px #0006}.ef-rounded-switch__option{z-index:2;color:#b3b1b4;min-width:0;min-height:32px;font:inherit;cursor:pointer;background:0 0;border:0;border-radius:9999px;flex:1 1 0;justify-content:center;align-items:center;padding:4px 16px;display:flex;position:relative}.ef-rounded-switch__option[data-checked]{color:#373537}.ef-rounded-switch__option:is([disabled],[aria-disabled=true]){cursor:not-allowed}.ef-rounded-switch__option:focus-visible{outline:2px solid var(--ef-focus,#191919);outline-offset:2px;z-index:3}.ef-rounded-switch__option>span{text-overflow:ellipsis;white-space:nowrap;min-width:0;overflow:hidden}@media (forced-colors:active){.ef-rounded-switch{box-shadow:none;background:canvas;border:1px solid buttontext}.ef-rounded-switch__highlight{box-shadow:none;forced-color-adjust:none;background:highlight}.ef-rounded-switch__option{color:buttontext}.ef-rounded-switch__option[data-checked]{color:highlighttext;forced-color-adjust:none}.ef-rounded-switch__option:is([disabled],[aria-disabled=true]){color:graytext}.ef-rounded-switch__option:focus-visible{outline-color:highlight}}.ef-alert-modal-viewport{--ef-game-alert-background-default:url(./assets/alert_bg.png);--ef-game-alert-banner-left-default:url(./assets/alert_banner_bg_left.png);--ef-game-alert-banner-right-default:url(./assets/alert_banner_bg_right.png);--ef-game-alert-logo-default:url(./assets/deco_common_logo_bg.png);z-index:var(--z-overlay,300);justify-content:center;align-items:center;display:flex;position:fixed;inset:0;overflow:hidden}.ef-alert-modal-viewport[hidden],.ef-banner-alert[hidden],.ef-banner-alert-backdrop[hidden]{display:none}.ef-alert-modal-sr-only{clip:rect(0, 0, 0, 0);white-space:nowrap;border:0;width:1px;height:1px;margin:-1px;padding:0;position:absolute;overflow:hidden}.ef-banner-alert-backdrop{z-index:var(--z-overlay,300);background:#0003;position:fixed;inset:0}.ef-banner-alert{background-color:#fefefe;background-image:var(--ef-game-alert-background,var(--ef-game-alert-background-default));color:#2a2728;transform-origin:top;background-position:100% 100%;background-repeat:no-repeat;background-size:90%;border-radius:.2em;outline:none;flex-direction:column;max-width:calc(100vw - 2em);min-height:10em;max-height:calc(100dvh - 4em);margin:1em;padding:1.7em 0 16px;display:flex;position:relative;box-shadow:0 0 .4em #0000004d}.ef-banner-alert__banner{z-index:0;pointer-events:none;align-items:stretch;width:100%;height:4.5em;display:flex;position:absolute;top:0;left:0}.ef-banner-alert__banner>:first-child{background:var(--ef-game-alert-banner-left,var(--ef-game-alert-banner-left-default)) top left / contain repeat-x;flex:1;height:100%;padding-right:30%;display:block}.ef-banner-alert__banner>:last-child{background:var(--ef-game-alert-banner-right,var(--ef-game-alert-banner-right-default)) top right / 100% 100% no-repeat;flex-shrink:0;width:6.96711em;height:4.5em;display:block}.ef-banner-alert__content{z-index:1;overscroll-behavior:contain;flex-direction:column;flex:1;min-height:0;margin-inline:16px;transition-property:none;display:flex;position:relative;overflow-y:auto}.ef-banner-alert__body{color:#2a2728;flex:1;padding-block:16px}.ef-banner-alert__actions{z-index:1;flex-shrink:0;justify-content:space-between;gap:16px;padding:16px 16px 0;transition-property:none;display:flex;position:relative}.ef-banner-alert__actions[data-hide-cancel]{justify-content:center}.ef-banner-alert__button{width:50%}.ef-banner-alert[data-open]{animation:.15s ease-out both ef-banner-alert-enter}.ef-banner-alert[data-ending-style]{animation:.15s ease-out both ef-banner-alert-scale-exit,30ms ease-out 70ms both ef-banner-alert-opacity-exit}.ef-banner-alert[data-ending-style] :is(.ef-banner-alert__content,.ef-banner-alert__actions){animation:.15s ease-out both ef-banner-alert-content-exit}@keyframes ef-banner-alert-enter{0%{opacity:0;transform:scaleY(0)}to{opacity:1;transform:scaleY(1)}}@keyframes ef-banner-alert-scale-exit{0%{transform:scaleY(1)}to{transform:scaleY(0)}}@keyframes ef-banner-alert-opacity-exit{0%{opacity:1}to{opacity:0}}@keyframes ef-banner-alert-content-exit{0%{opacity:var(--ef-game-alert-exit-opacity,1)}to{opacity:0}}@media (min-width:768px){.ef-banner-alert{max-width:calc(100vw - .2em);margin:.5em}}@media (prefers-reduced-motion:reduce){.ef-banner-alert,.ef-banner-alert :is(.ef-banner-alert__content,.ef-banner-alert__actions){animation-duration:.01ms!important;animation-delay:0s!important}}@media (forced-colors:active){.ef-banner-alert{color:canvastext;box-shadow:none;background:canvas;border:1px solid canvastext}.ef-banner-alert__body{color:canvastext}.ef-banner-alert__banner{display:none}}.ef-banner-alert:is([data-ef-game-images=off],[data-ef-game-images=off] *){background-image:none}.ef-banner-alert__banner:is([data-ef-game-images=off],[data-ef-game-images=off] *){display:none}.ef-banner-alert__banner:is([data-ef-game-images=off],[data-ef-game-images=off] *)>*{background:0 0}.ef-full-width-alert-backdrop{z-index:var(--z-overlay,300);opacity:1;background:#00000080;transition:opacity 50ms ease-out;position:fixed;inset:0}.ef-full-width-alert-backdrop[data-starting-style],.ef-full-width-alert-backdrop[data-ending-style]{opacity:0}.ef-full-width-alert-viewport{z-index:var(--z-overlay,300);justify-content:center;align-items:center;display:flex;position:fixed;inset:0;overflow:hidden}.ef-full-width-alert{box-sizing:border-box;color:#2a2728;filter:drop-shadow(0 0 .4em #0000004d);opacity:1;transform-origin:100%;background:#fefefe;outline:none;flex-direction:column;width:100%;min-width:0;min-height:10em;max-height:calc(100dvh - 4em);padding-top:1.7em;padding-bottom:16px;font-size:16px;line-height:1.5;transition:transform .1s ease-out,opacity .1s ease-out;display:flex;position:relative;transform:scaleX(1)}.ef-full-width-alert[data-starting-style],.ef-full-width-alert[data-ending-style]{opacity:0;transform:scaleX(0)}.ef-full-width-alert[hidden],.ef-full-width-alert-backdrop[hidden]{display:none}.ef-full-width-alert-decoration{pointer-events:none;position:absolute;inset:0;overflow:hidden}.ef-full-width-alert-logo{background:var(--ef-game-alert-logo,var(--ef-game-alert-logo-default)) bottom left / contain no-repeat;width:100%;height:calc(100% - 1em);position:absolute;bottom:0;left:-2em}.ef-full-width-alert-color-bar{background:linear-gradient(90deg,#f0f48a 0% 50%,#57a2b5 50% 75%,#b96bbc 75% 100%);width:15em;max-width:100%;height:.2em;position:absolute;top:0;left:0}.ef-full-width-alert-banner{width:40em;height:3em;display:flex;position:absolute;top:0;right:0;transform:scaleX(-1)}.ef-full-width-alert-banner-left{box-sizing:border-box;background:var(--ef-game-alert-banner-left,var(--ef-game-alert-banner-left-default)) top left / contain repeat-x;flex:1;height:100%;padding-right:30%}.ef-full-width-alert-banner-right{background:var(--ef-game-alert-banner-right,var(--ef-game-alert-banner-right-default)) center / contain no-repeat;flex-shrink:0;width:4.64474em;height:3em}.ef-full-width-alert-content{z-index:1;flex-direction:column;flex:1;min-width:0;min-height:0;margin-inline:16px;display:flex;position:relative}.ef-full-width-alert-scroll-area{flex-direction:column;flex:1;min-width:0;min-height:0;display:flex;position:relative;overflow:hidden}.ef-full-width-alert-viewport-content{overscroll-behavior:contain;flex:1;min-width:0;min-height:0}.ef-full-width-alert-viewport-content:focus-visible{outline:2px solid var(--ef-focus,#373537);outline-offset:-2px}.ef-full-width-alert-body{color:#2a2728;flex-direction:column;align-items:center;min-width:0;padding-block:16px;display:flex}.ef-full-width-alert-scrollbar{opacity:0;justify-content:center;width:12px;transition:opacity .3s;display:flex;position:relative}.ef-full-width-alert-scrollbar[data-hovering],.ef-full-width-alert-scrollbar[data-scrolling],.ef-full-width-alert-scroll-area:focus-within .ef-full-width-alert-scrollbar{opacity:1}.ef-full-width-alert-scrollbar:before{content:"";inset-block:0;background:#0003;border-radius:9999px;width:3px;position:absolute;left:50%;transform:translate(-50%)}.ef-full-width-alert-thumb{z-index:1;cursor:grab;background:#fcfefe;border-radius:9999px;width:5px;box-shadow:0 0 2px #0003}.ef-full-width-alert-thumb:active{cursor:grabbing}.ef-full-width-alert-actions{z-index:1;box-sizing:border-box;margin-inline:auto;flex-shrink:0;gap:32px;width:26em;max-width:calc(100% - 2em);margin-bottom:-2em;padding:16px 16px 0;display:flex;position:relative}.ef-full-width-alert-action{flex:1;min-width:0;display:flex;position:relative}.ef-full-width-alert-action-backing{pointer-events:none;background:#fefefe;border-radius:0 0 9999px 9999px;position:absolute;inset:50% -.24em -.24em}.ef-full-width-alert-button{flex:1;position:relative}@media (min-width:768px){.ef-full-width-alert-actions{gap:16px;width:25em}}@media (prefers-reduced-motion:reduce){.ef-full-width-alert-backdrop,.ef-full-width-alert,.ef-full-width-alert-scrollbar{transition:none}}@media (forced-colors:active){.ef-full-width-alert{color:canvastext;filter:none;background:canvas;border:1px solid canvastext}.ef-full-width-alert-decoration{display:none}.ef-full-width-alert-body,.ef-full-width-alert-action-backing{color:canvastext;background:canvas}.ef-full-width-alert-scrollbar:before{background:canvas;border:1px solid canvastext}.ef-full-width-alert-thumb{background:canvastext}}.ef-full-width-alert-logo:is([data-ef-game-images=off],[data-ef-game-images=off] *),.ef-full-width-alert-banner:is([data-ef-game-images=off],[data-ef-game-images=off] *){background:0 0;display:none}.ef-full-width-alert-banner-left:is([data-ef-game-images=off],[data-ef-game-images=off] *),.ef-full-width-alert-banner-right:is([data-ef-game-images=off],[data-ef-game-images=off] *){background:0 0}.ef-composite-item-icon{isolation:isolate;display:block;position:relative;overflow:hidden}.ef-composite-item-icon__layer{pointer-events:none;object-fit:contain;width:100%;height:100%;position:absolute;inset:0}.ef-composite-item-icon__art{pointer-events:auto}.ef-composite-item-icon__overlay{mix-blend-mode:screen}:root,[data-theme=light]{--ef-game-itemcard-bg-item-default:url(./assets/items_background.webp);--ef-game-itemcard-bg-weapon-default:url(./assets/weapons_background.webp);--ef-game-itemcard-bg-enemy-default:url(./assets/enemies_background.webp);--ef-game-itemcard-x-bg-item-default:url(./assets/items_background_dark.webp);--ef-game-itemcard-x-bg-weapon-default:url(./assets/weapons_background_dark.webp);--ef-game-itemcard-x-bg-enemy-default:url(./assets/enemies_background_dark.webp)}[data-theme=dark]{--ef-game-itemcard-bg-item-default:url(./assets/items_background_dark.webp);--ef-game-itemcard-bg-weapon-default:url(./assets/weapons_background_dark.webp);--ef-game-itemcard-bg-enemy-default:url(./assets/enemies_background_dark.webp);--ef-game-itemcard-x-bg-item-default:url(./assets/items_background.webp);--ef-game-itemcard-x-bg-weapon-default:url(./assets/weapons_background.webp);--ef-game-itemcard-x-bg-enemy-default:url(./assets/enemies_background.webp)}[data-theme=inverse]{--ef-game-itemcard-bg-item-default:var(--ef-game-itemcard-x-bg-item-default);--ef-game-itemcard-bg-weapon-default:var(--ef-game-itemcard-x-bg-weapon-default);--ef-game-itemcard-bg-enemy-default:var(--ef-game-itemcard-x-bg-enemy-default)}.ef-item-card{box-sizing:border-box;width:112px;max-width:100%;margin-inline:auto}.ef-item-card[data-variant=inventory]{flex-direction:column;gap:4px;width:96px;display:flex}.ef-item-card-tile{isolation:isolate;border-radius:6px;position:relative;overflow:hidden}.ef-item-card-background,.ef-item-card-edge{pointer-events:none;position:absolute;inset:0}.ef-item-card-background{background-color:var(--ef-surface-muted,#e6e6e6);background-position:50%;background-size:cover}.ef-item-card[data-kind=item] .ef-item-card-background{background-image:var(--ef-game-itemcard-bg-item,var(--ef-game-itemcard-bg-item-default))}.ef-item-card[data-kind=weapon] .ef-item-card-background{background-image:var(--ef-game-itemcard-bg-weapon,var(--ef-game-itemcard-bg-weapon-default))}.ef-item-card[data-kind=enemy] .ef-item-card-background{background-image:var(--ef-game-itemcard-bg-enemy,var(--ef-game-itemcard-bg-enemy-default))}.ef-item-card-art{z-index:10;box-sizing:border-box;aspect-ratio:1;padding:4px 4px 12px;position:relative}.ef-item-card-icon{width:100%;height:100%}.ef-item-card-fallback{color:#ffffffb3;text-transform:uppercase;letter-spacing:.08em;place-items:center;font-family:monospace;font-size:12px;display:grid;position:absolute;inset:0}.ef-item-card-badges{z-index:30;pointer-events:none;flex-direction:column;align-items:flex-end;gap:2px;display:flex;position:absolute;top:4px;right:4px}.ef-item-card-strip{z-index:20;padding:12px 6px 6px;position:absolute;bottom:0;left:0;right:0;overflow:hidden;container-type:inline-size}.ef-item-card-edge{background-image:linear-gradient(to top, var(--ef-surface,#fff), transparent)}@supports (color:color-mix(in lab, red, red)){.ef-item-card-edge{background-image:linear-gradient(to top, color-mix(in srgb, var(--ef-surface,#fff) 62%, transparent), transparent)}}.ef-item-card-edge{background-position:bottom;background-repeat:no-repeat;background-size:100% 100%}.ef-item-card[data-rarity="1"] .ef-item-card-edge{background-image:var(--ef-game-itemcard-edge-1,url(./assets/icon_card_rarity_1_bottom_edge.webp))}.ef-item-card[data-rarity="2"] .ef-item-card-edge{background-image:var(--ef-game-itemcard-edge-2,url(./assets/icon_card_rarity_2_bottom_edge.webp))}.ef-item-card[data-rarity="3"] .ef-item-card-edge{background-image:var(--ef-game-itemcard-edge-3,url(./assets/icon_card_rarity_3_bottom_edge.webp))}.ef-item-card[data-rarity="4"] .ef-item-card-edge{background-image:var(--ef-game-itemcard-edge-4,url(./assets/icon_card_rarity_4_bottom_edge.webp))}.ef-item-card[data-rarity="5"] .ef-item-card-edge{background-image:var(--ef-game-itemcard-edge-5,url(./assets/icon_card_rarity_5_bottom_edge.webp))}.ef-item-card[data-rarity="6"] .ef-item-card-edge{background-image:var(--ef-game-itemcard-edge-6,url(./assets/icon_card_rarity_6_bottom_edge.webp))}.ef-item-card-strip-content{justify-content:center;display:flex;position:relative}.ef-item-card-name,.ef-item-card-count{color:var(--ef-game-itemcard-ink,var(--ef-ink,#191919));text-align:center;font-size:14px;font-weight:700}.ef-item-card-name{text-overflow:ellipsis;white-space:nowrap;width:100%;line-height:17.5px;overflow:hidden}.ef-item-card-count{color:var(--ef-game-itemcard-count-color,var(--ef-game-itemcard-ink,var(--ef-ink,#191919)));font-size:var(--ef-game-itemcard-count-size,14px);font-variant-numeric:tabular-nums;line-height:1.25;transform:translateY(2px)}.ef-item-card-caption{-webkit-line-clamp:2;color:var(--ef-game-itemcard-ink,var(--ef-ink,#191919));text-align:center;-webkit-box-orient:vertical;font-size:12px;line-height:15px;display:-webkit-box;overflow:hidden}.ef-item-card-action{box-sizing:border-box;width:fit-content;max-width:100%;color:inherit;font:inherit;text-align:left;cursor:pointer;background:0 0;border:0;border-radius:6px;padding:0;display:block}.ef-item-card-action[data-selected]{outline:2px solid var(--ef-game-itemcard-accent,var(--ef-accent-ink,#d4bd00));outline-offset:2px}.ef-item-card-action:disabled{opacity:.45;cursor:not-allowed}.ef-item-card-disabled-reason{color:var(--ef-game-itemcard-muted,var(--ef-ink-secondary,#737373));margin-top:4px;font-size:12px;line-height:1.625;display:block}.ef-item-card-link{width:fit-content;max-width:100%;text-decoration:none;transition:filter .15s;display:block}.ef-item-card-action:focus-visible,.ef-item-card-link:focus-visible{outline:2px solid var(--ef-game-itemcard-accent,var(--ef-focus,#373537));outline-offset:2px;border-radius:6px}@media (hover:hover){.ef-item-card-link:hover,.ef-item-card-action:enabled:hover{filter:brightness(1.1)}}@media (prefers-reduced-motion:reduce){.ef-item-card-link{transition:none}}@media (forced-colors:active){.ef-item-card-tile{border:1px solid canvastext}.ef-item-card-background,.ef-item-card-edge{display:none}.ef-item-card-name,.ef-item-card-count{color:canvastext}.ef-item-card-action:disabled{color:graytext}.ef-item-card-action[data-selected]{outline-color:highlight}.ef-item-card-action:focus-visible,.ef-item-card-link:focus-visible{outline-color:buttontext}}.ef-item-card[data-kind] .ef-item-card-background:is([data-ef-game-images=off],[data-ef-game-images=off] *){background-image:none}.ef-item-card[data-rarity="1"] .ef-item-card-edge:is([data-ef-game-images=off],[data-ef-game-images=off] *){background-image:linear-gradient(to top, #9b9b9b 0 3px, transparent 3px), linear-gradient(to top, var(--ef-surface,#fff), transparent)}@supports (color:color-mix(in lab, red, red)){.ef-item-card[data-rarity="1"] .ef-item-card-edge:is([data-ef-game-images=off],[data-ef-game-images=off] *){background-image:linear-gradient(to top, #9b9b9b 0 3px, transparent 3px), linear-gradient(to top, color-mix(in srgb, var(--ef-surface,#fff) 62%, transparent), transparent)}}.ef-item-card[data-rarity="2"] .ef-item-card-edge:is([data-ef-game-images=off],[data-ef-game-images=off] *){background-image:linear-gradient(to top, #abce42 0 3px, transparent 3px), linear-gradient(to top, var(--ef-surface,#fff), transparent)}@supports (color:color-mix(in lab, red, red)){.ef-item-card[data-rarity="2"] .ef-item-card-edge:is([data-ef-game-images=off],[data-ef-game-images=off] *){background-image:linear-gradient(to top, #abce42 0 3px, transparent 3px), linear-gradient(to top, color-mix(in srgb, var(--ef-surface,#fff) 62%, transparent), transparent)}}.ef-item-card[data-rarity="3"] .ef-item-card-edge:is([data-ef-game-images=off],[data-ef-game-images=off] *){background-image:linear-gradient(to top, #26bbfd 0 3px, transparent 3px), linear-gradient(to top, var(--ef-surface,#fff), transparent)}@supports (color:color-mix(in lab, red, red)){.ef-item-card[data-rarity="3"] .ef-item-card-edge:is([data-ef-game-images=off],[data-ef-game-images=off] *){background-image:linear-gradient(to top, #26bbfd 0 3px, transparent 3px), linear-gradient(to top, color-mix(in srgb, var(--ef-surface,#fff) 62%, transparent), transparent)}}.ef-item-card[data-rarity="4"] .ef-item-card-edge:is([data-ef-game-images=off],[data-ef-game-images=off] *){background-image:linear-gradient(to top, #9452fa 0 3px, transparent 3px), linear-gradient(to top, var(--ef-surface,#fff), transparent)}@supports (color:color-mix(in lab, red, red)){.ef-item-card[data-rarity="4"] .ef-item-card-edge:is([data-ef-game-images=off],[data-ef-game-images=off] *){background-image:linear-gradient(to top, #9452fa 0 3px, transparent 3px), linear-gradient(to top, color-mix(in srgb, var(--ef-surface,#fff) 62%, transparent), transparent)}}.ef-item-card[data-rarity="5"] .ef-item-card-edge:is([data-ef-game-images=off],[data-ef-game-images=off] *){background-image:linear-gradient(to top, #ffbb03 0 3px, transparent 3px), linear-gradient(to top, var(--ef-surface,#fff), transparent)}@supports (color:color-mix(in lab, red, red)){.ef-item-card[data-rarity="5"] .ef-item-card-edge:is([data-ef-game-images=off],[data-ef-game-images=off] *){background-image:linear-gradient(to top, #ffbb03 0 3px, transparent 3px), linear-gradient(to top, color-mix(in srgb, var(--ef-surface,#fff) 62%, transparent), transparent)}}.ef-item-card[data-rarity="6"] .ef-item-card-edge:is([data-ef-game-images=off],[data-ef-game-images=off] *){background-image:linear-gradient(to top, #ff7100 0 3px, transparent 3px), linear-gradient(to top, var(--ef-surface,#fff), transparent)}@supports (color:color-mix(in lab, red, red)){.ef-item-card[data-rarity="6"] .ef-item-card-edge:is([data-ef-game-images=off],[data-ef-game-images=off] *){background-image:linear-gradient(to top, #ff7100 0 3px, transparent 3px), linear-gradient(to top, color-mix(in srgb, var(--ef-surface,#fff) 62%, transparent), transparent)}}.ef-item-tooltip-card{--ef-game-item-tooltip-rarity:#9b9b9b;isolation:isolate;color:#555651;font-synthesis:none;text-align:left;color-scheme:light;background:#cdcdcb;border-radius:2px;font-family:HarmonyOS Sans SC,HarmonyOS Sans,sans-serif;font-weight:500;overflow:hidden;box-shadow:0 20px 25px -5px #0000001a,0 8px 10px -6px #0000001a;container-type:inline-size}.ef-item-tooltip-card[data-rarity="2"]{--ef-game-item-tooltip-rarity:#abce42}.ef-item-tooltip-card[data-rarity="3"]{--ef-game-item-tooltip-rarity:#26bbfd}.ef-item-tooltip-card[data-rarity="4"]{--ef-game-item-tooltip-rarity:#9452fa}.ef-item-tooltip-card[data-rarity="5"]{--ef-game-item-tooltip-rarity:#ffbb03}.ef-item-tooltip-card[data-rarity="6"]{--ef-game-item-tooltip-rarity:#ff7100}.ef-item-tooltip-card *,.ef-item-tooltip-card :before,.ef-item-tooltip-card :after{box-sizing:border-box}.ef-item-tooltip-card p,.ef-item-tooltip-card h2,.ef-item-tooltip-card h3{overflow-wrap:anywhere;margin:0}.ef-item-tooltip-card a{color:inherit;text-decoration:none}.ef-item-tooltip-card__header{background:linear-gradient(90deg, var(--ef-game-item-tooltip-rarity) 0%, var(--ef-game-item-tooltip-rarity) 45%, var(--ef-game-item-tooltip-rarity) 100%);align-items:center;gap:12px;min-height:48px;padding:8px 20px;display:flex;position:relative;overflow:hidden}@supports (color:color-mix(in lab, red, red)){.ef-item-tooltip-card__header{background:linear-gradient(90deg, color-mix(in srgb, var(--ef-game-item-tooltip-rarity) 78%, #303234) 0%, color-mix(in srgb, var(--ef-game-item-tooltip-rarity) 78%, #4b415a) 45%, color-mix(in srgb, var(--ef-game-item-tooltip-rarity) 78%, #8e8b85) 100%)}}.ef-item-tooltip-card__header{color:#fff}.ef-item-tooltip-card__header h2{flex:1;min-width:0;font-size:20px;font-weight:500;line-height:1.25;position:relative}.ef-item-tooltip-card__header-texture{background:var(--ef-game-item-tooltip-header,url(./assets/header.webp)) center / 100% 100% no-repeat;opacity:.78;pointer-events:none;position:absolute;inset:0}.ef-item-tooltip-card__detail-link{border-radius:2px;flex-shrink:0;transition:opacity .15s;position:relative}.ef-item-tooltip-card__detail-link-icon{background:var(--ef-game-item-tooltip-link-icon,url(./assets/link.webp)) center / contain no-repeat;pointer-events:none;width:32px;height:32px;display:block}.ef-item-tooltip-card__detail-link:hover{opacity:.75}.ef-item-tooltip-card__detail-link:focus-visible{outline-offset:2px;outline:2px solid #fff}.ef-item-tooltip-card__body{background:#2e3234;flex-direction:column;min-height:256px;display:flex;position:relative}.ef-item-tooltip-card__detail-texture{border:5px solid #0000;border-width:126px 5px 0;border-image-source:var(--ef-game-item-tooltip-detail,url(./assets/detail.png));filter:brightness(1.1);pointer-events:none;border-image-slice:222 8 14 fill;border-image-repeat:stretch;position:absolute;inset:60px 0 0}.ef-item-tooltip-card__hero{min-height:160px;padding:8px 20px 0;position:relative}.ef-item-tooltip-card__category{z-index:1;color:#aeb1aa;max-width:58%;font-size:16px;font-weight:500;line-height:1.5;position:relative}.ef-item-tooltip-card__marker{opacity:.35;border-left:2px solid #72756e;width:80px;height:40px;margin-top:12px;display:block}.ef-item-tooltip-card__barcode{opacity:.35;background:repeating-linear-gradient(90deg,#aeb1aa 0 5px,#0000 5px 7px);width:96px;height:6px;margin-top:4px;display:block}.ef-item-tooltip-card .ef-item-tooltip-card__icon{filter:drop-shadow(0 4px 4px #00000026);pointer-events:none;width:176px;height:176px;position:absolute;top:-36px;right:8px}.ef-item-tooltip-card__icon img{pointer-events:none}.ef-item-tooltip-card__color-strip{pointer-events:none;background:linear-gradient(#00ffa2 0 33.333%,#ff00f0 33.333% 66.667%,#fffa00 66.667% 100%);width:4px;height:48px;position:absolute;top:8px;right:0}.ef-item-tooltip-card__text{white-space:pre-wrap;flex-direction:column;gap:6px;padding:8px 20px 12px;font-size:14px;line-height:1.375;display:flex;position:relative}.ef-item-tooltip-card__description{color:#70716d}.ef-item-tooltip-card__obtain-title{text-align:center;background:#bdbebb;border-top:2px solid #a4a5a1;padding:6px 20px;font-size:18px;font-weight:500;line-height:24px}.ef-item-tooltip-card__obtain-list{margin:0;padding:0;list-style:none}.ef-item-tooltip-card__obtain-row{background:#f6f5f3;border-top:1px solid #a4a5a1;align-items:center;gap:8px;min-height:36px;padding:8px 20px;font-size:16px;font-weight:500;line-height:20px;display:flex}a.ef-item-tooltip-card__obtain-row{transition:background-color .15s}a.ef-item-tooltip-card__obtain-row:hover{background:#e3e4df}a.ef-item-tooltip-card__obtain-row:focus-visible{outline-offset:-2px;outline:2px solid #525350}.ef-item-tooltip-card__obtain-icon{flex-shrink:0;width:20px;height:20px}.ef-item-tooltip-card__obtain-icon img{filter:brightness(0);opacity:.65}.ef-item-tooltip-card__obtain-icon svg{width:20px;height:20px;display:block}.ef-item-tooltip-card__obtain-name{overflow-wrap:anywhere;flex:1;min-width:0}.ef-item-tooltip-card__chevrons{color:#a1a39d;flex-shrink:0;width:20px;height:20px}.ef-item-tooltip-card__obtain-hint{border-top:1px solid #a4a5a1;padding:8px 20px;font-size:14px}@container (max-width:319px){.ef-item-tooltip-card .ef-item-tooltip-card__icon{width:min(176px,55cqw);height:min(176px,55cqw)}.ef-item-tooltip-card__category{max-width:max(48px,100cqw - min(176px,55cqw) - 28px)}}@media (prefers-reduced-motion:reduce){.ef-item-tooltip-card a{transition:none}}@media (forced-colors:active){.ef-item-tooltip-card{color:canvastext;box-shadow:none;background:canvas;border:1px solid canvastext}.ef-item-tooltip-card__header,.ef-item-tooltip-card__body,.ef-item-tooltip-card__obtain-title,.ef-item-tooltip-card__obtain-row{color:canvastext;background:canvas}.ef-item-tooltip-card__header-texture,.ef-item-tooltip-card__detail-texture,.ef-item-tooltip-card__marker,.ef-item-tooltip-card__barcode,.ef-item-tooltip-card__color-strip{display:none}.ef-item-tooltip-card__category,.ef-item-tooltip-card__description,.ef-item-tooltip-card__chevrons{color:canvastext}.ef-item-tooltip-card__detail-link-icon{-webkit-mask:var(--ef-game-item-tooltip-link-icon,url(./assets/link.webp)) center / contain no-repeat;-webkit-mask:var(--ef-game-item-tooltip-link-icon,url(./assets/link.webp)) center / contain no-repeat;mask:var(--ef-game-item-tooltip-link-icon,url(./assets/link.webp)) center / contain no-repeat;background:buttontext}}.ef-item-tooltip-card__header-texture:is([data-ef-game-images=off],[data-ef-game-images=off] *){background:0 0;display:none}.ef-item-tooltip-card__detail-texture:is([data-ef-game-images=off],[data-ef-game-images=off] *){border:0;border-image:;background:linear-gradient(#0000,#cdcdcb 126px);border-radius:0 0 4px 4px}.ef-item-tooltip-card__detail-link-icon:is([data-ef-game-images=off],[data-ef-game-images=off] *){background:0 0;border:2px solid;border-radius:2px}.ef-item-tooltip-card__detail-link-icon:is([data-ef-game-images=off],[data-ef-game-images=off] *):before{content:"";border:2px solid;border-width:2px 2px 0 0;width:10px;height:10px;margin:9px 0 0 6px;display:block;transform:rotate(45deg)}@media (forced-colors:active){.ef-item-tooltip-card__detail-link-icon:is([data-ef-game-images=off],[data-ef-game-images=off] *){background:0 0;-webkit-mask:none;mask:none}}.ef-item-hover-trigger{vertical-align:top;max-width:100%;display:inline-block}.ef-item-hover-positioner{z-index:var(--z-overlay,300);max-width:calc(100vw - 16px)}.ef-item-hover-panel{overscroll-behavior:contain;scrollbar-width:thin;text-align:left;background:0 0;border:0;width:100%;max-height:calc(100dvh - 16px);margin:0;padding:0;overflow-y:auto}.ef-item-hover-panel:focus-visible{outline:2px solid var(--ef-accent-ink,#fffa00);outline-offset:2px}}@layer utilities;
|
package/dist/game.d.ts
ADDED
|
@@ -0,0 +1,372 @@
|
|
|
1
|
+
|
|
2
|
+
import { Dialog } from "@base-ui/react/dialog";
|
|
3
|
+
import { CSSProperties, ComponentProps, HTMLAttributes, ReactElement, ReactNode, Ref, RefObject } from "react";
|
|
4
|
+
//#region src/game/animated-dialog/AnimatedDialog.d.ts
|
|
5
|
+
type PopupProps$1 = ComponentProps<typeof Dialog.Popup>;
|
|
6
|
+
type PortalProps$1 = ComponentProps<typeof Dialog.Portal>;
|
|
7
|
+
type CloseAction = () => boolean | void | PromiseLike<boolean | void>;
|
|
8
|
+
type SlotClassName = string | ((open: boolean) => string);
|
|
9
|
+
type AnimatedDialogClassNames = {
|
|
10
|
+
backdrop?: SlotClassName;
|
|
11
|
+
alert?: SlotClassName;
|
|
12
|
+
contentContainer?: SlotClassName;
|
|
13
|
+
header?: SlotClassName;
|
|
14
|
+
title?: SlotClassName;
|
|
15
|
+
footer?: SlotClassName;
|
|
16
|
+
close?: SlotClassName;
|
|
17
|
+
};
|
|
18
|
+
type AnimatedDialogProps = Omit<ComponentProps<"div">, "title" | "children" | "onClose" | "className" | "style"> & {
|
|
19
|
+
trigger?: ReactElement<Record<string, unknown>>;
|
|
20
|
+
open?: boolean;
|
|
21
|
+
defaultOpen?: boolean;
|
|
22
|
+
onOpenChange?: (open: boolean) => void;
|
|
23
|
+
title: ReactNode;
|
|
24
|
+
description?: ReactNode;
|
|
25
|
+
icon?: ReactNode;
|
|
26
|
+
width?: CSSProperties["width"];
|
|
27
|
+
height?: CSSProperties["height"];
|
|
28
|
+
className?: string;
|
|
29
|
+
classNames?: AnimatedDialogClassNames;
|
|
30
|
+
/** 点遮罩是否请求关闭。默认允许。 */
|
|
31
|
+
dismissible?: boolean;
|
|
32
|
+
/** Esc 是否请求关闭。未传时跟随 dismissible。 */
|
|
33
|
+
keyboardCloseable?: boolean;
|
|
34
|
+
/** 所有内部关闭请求都会执行;返回 false 或失败时保持打开。 */
|
|
35
|
+
onClose?: CloseAction;
|
|
36
|
+
/** 遮罩与 Esc 请求先执行此回调,再执行 onClose。 */
|
|
37
|
+
onDismiss?: CloseAction;
|
|
38
|
+
closeLabel?: string;
|
|
39
|
+
initialFocus?: PopupProps$1["initialFocus"];
|
|
40
|
+
finalFocus?: PopupProps$1["finalFocus"];
|
|
41
|
+
keepMounted?: boolean;
|
|
42
|
+
/**
|
|
43
|
+
* 是不是模态。默认是。传 `false` 时不锁焦点、不锁页面滚动,页面的其余部分照常能用——
|
|
44
|
+
* 配上 `container` 可以把弹窗嵌在页面的一块区域里展示。
|
|
45
|
+
*/
|
|
46
|
+
modal?: boolean;
|
|
47
|
+
/** 弹层挂到哪个元素里。默认挂在 `<body>` 下 */
|
|
48
|
+
container?: PortalProps$1["container"];
|
|
49
|
+
children?: ReactNode;
|
|
50
|
+
};
|
|
51
|
+
export declare function AnimatedDialog({ trigger, open: controlledOpen, defaultOpen, onOpenChange, title, description, icon, width, height, className, classNames, dismissible, keyboardCloseable, onClose, onDismiss, closeLabel, initialFocus, finalFocus, keepMounted, modal, container, children, ...popupProps }: AnimatedDialogProps): import("react").JSX.Element;
|
|
52
|
+
//#endregion
|
|
53
|
+
//#region src/game/banner-alert/types.d.ts
|
|
54
|
+
type PopupProps = ComponentProps<typeof Dialog.Popup>;
|
|
55
|
+
type PortalProps = ComponentProps<typeof Dialog.Portal>;
|
|
56
|
+
type AlertAction = () => boolean | void | PromiseLike<boolean | void>;
|
|
57
|
+
type AlertClassName = string | ((open: boolean) => string);
|
|
58
|
+
type AlertClassNames = {
|
|
59
|
+
backdrop?: AlertClassName;
|
|
60
|
+
alert?: AlertClassName;
|
|
61
|
+
content?: AlertClassName;
|
|
62
|
+
};
|
|
63
|
+
type AlertModalProps = Omit<ComponentProps<"div">, "title" | "children" | "onClose" | "onCancel" | "style"> & {
|
|
64
|
+
trigger?: ReactElement<Record<string, unknown>>;
|
|
65
|
+
open?: boolean;
|
|
66
|
+
defaultOpen?: boolean;
|
|
67
|
+
onOpenChange?: (open: boolean) => void;
|
|
68
|
+
title: ReactNode;
|
|
69
|
+
description?: ReactNode;
|
|
70
|
+
dismissible?: boolean;
|
|
71
|
+
keyboardCloseable?: boolean;
|
|
72
|
+
hideCancel?: boolean;
|
|
73
|
+
cancelText?: string;
|
|
74
|
+
confirmText?: string;
|
|
75
|
+
loading?: boolean;
|
|
76
|
+
showIcon?: boolean;
|
|
77
|
+
width?: CSSProperties["width"];
|
|
78
|
+
height?: CSSProperties["height"];
|
|
79
|
+
classNames?: AlertClassNames;
|
|
80
|
+
onConfirm?: AlertAction;
|
|
81
|
+
onCancel?: AlertAction;
|
|
82
|
+
onDismiss?: AlertAction;
|
|
83
|
+
onClose?: AlertAction;
|
|
84
|
+
initialFocus?: PopupProps["initialFocus"];
|
|
85
|
+
finalFocus?: PopupProps["finalFocus"];
|
|
86
|
+
keepMounted?: boolean;
|
|
87
|
+
/**
|
|
88
|
+
* 是不是模态。默认是。传 `false` 时不锁焦点、不锁页面滚动,页面的其余部分照常能用——
|
|
89
|
+
* 配上 `container` 可以把弹窗嵌在页面的一块区域里展示。
|
|
90
|
+
*/
|
|
91
|
+
modal?: boolean;
|
|
92
|
+
/** 弹层挂到哪个元素里。默认挂在 `<body>` 下 */
|
|
93
|
+
container?: PortalProps["container"];
|
|
94
|
+
children?: ReactNode;
|
|
95
|
+
};
|
|
96
|
+
//#endregion
|
|
97
|
+
//#region src/game/banner-alert/BannerAlert.d.ts
|
|
98
|
+
type BannerAlertProps = AlertModalProps;
|
|
99
|
+
export declare function BannerAlert({ children, width, hideCancel, cancelText, confirmText, showIcon, classNames, ...props }: BannerAlertProps): import("react").JSX.Element;
|
|
100
|
+
//#endregion
|
|
101
|
+
//#region src/game/full-width-alert/FullWidthAlert.d.ts
|
|
102
|
+
type FullWidthAlertProps = Omit<AlertModalProps, "width">;
|
|
103
|
+
/** 横贯视口的确认面板,底部按钮突出于面板下沿。 */
|
|
104
|
+
export declare function FullWidthAlert({ hideCancel, cancelText, confirmText, showIcon, height, classNames, children, ...props }: FullWidthAlertProps): import("react").JSX.Element;
|
|
105
|
+
//#endregion
|
|
106
|
+
//#region src/game/item-icon/types.d.ts
|
|
107
|
+
type ItemIconTrans = "" | "formula" | "bigGem";
|
|
108
|
+
interface ItemIconLayers {
|
|
109
|
+
iconUrl: string;
|
|
110
|
+
iconBgUrl?: string;
|
|
111
|
+
iconMarkUrl?: string;
|
|
112
|
+
iconOverlayUrl?: string;
|
|
113
|
+
iconContentUrl?: string;
|
|
114
|
+
iconTrans?: ItemIconTrans;
|
|
115
|
+
iconShowRarity?: boolean;
|
|
116
|
+
}
|
|
117
|
+
interface ItemIconImageProps {
|
|
118
|
+
src: string;
|
|
119
|
+
alt: string;
|
|
120
|
+
className?: string;
|
|
121
|
+
style?: CSSProperties;
|
|
122
|
+
fallback?: ReactNode;
|
|
123
|
+
loading?: "lazy" | "eager";
|
|
124
|
+
}
|
|
125
|
+
type ItemIconImageRenderer = (props: ItemIconImageProps) => ReactNode;
|
|
126
|
+
interface ItemIconProps {
|
|
127
|
+
layers: ItemIconLayers;
|
|
128
|
+
alt: string;
|
|
129
|
+
className?: string;
|
|
130
|
+
style?: CSSProperties;
|
|
131
|
+
fallback?: ReactNode;
|
|
132
|
+
loading?: "lazy" | "eager";
|
|
133
|
+
renderImage?: ItemIconImageRenderer;
|
|
134
|
+
}
|
|
135
|
+
//#endregion
|
|
136
|
+
//#region src/game/item-icon/ItemIcon.d.ts
|
|
137
|
+
export declare function ItemIcon({ layers, alt, className, style, fallback, loading, renderImage }: ItemIconProps): import("react").JSX.Element;
|
|
138
|
+
//#endregion
|
|
139
|
+
//#region src/game/item-icon/helpers.d.ts
|
|
140
|
+
export declare const EMPTY_ITEM_ICON_LAYERS: Readonly<Required<ItemIconLayers>>;
|
|
141
|
+
export declare const ITEM_ICON_TRANSFORMS: {
|
|
142
|
+
readonly formula: {
|
|
143
|
+
readonly scale: 0.72;
|
|
144
|
+
readonly pivotX: 1;
|
|
145
|
+
readonly pivotY: 0.5;
|
|
146
|
+
};
|
|
147
|
+
readonly bigGem: {
|
|
148
|
+
readonly scale: 1;
|
|
149
|
+
readonly offsetX: 3;
|
|
150
|
+
readonly offsetY: 4;
|
|
151
|
+
};
|
|
152
|
+
};
|
|
153
|
+
type ItemIconTransformKey = keyof typeof ITEM_ICON_TRANSFORMS;
|
|
154
|
+
export declare function itemIconTransformStyle(key: ItemIconTransformKey): CSSProperties;
|
|
155
|
+
export declare function coerceItemIconTrans(value: unknown): ItemIconTrans;
|
|
156
|
+
export declare function pickItemIconLayers(source: object | null | undefined, prefix?: string): Required<ItemIconLayers>;
|
|
157
|
+
//#endregion
|
|
158
|
+
//#region src/game/item-card/ItemCard.d.ts
|
|
159
|
+
type ItemCardKind = "weapon" | "item" | "enemy" | "";
|
|
160
|
+
type ItemCardVariant = "banner" | "inventory";
|
|
161
|
+
type ItemCardSelectionAction = {
|
|
162
|
+
onSelect: () => void;
|
|
163
|
+
ariaLabel?: string;
|
|
164
|
+
selected?: boolean;
|
|
165
|
+
disabled?: boolean;
|
|
166
|
+
disabledReason?: string;
|
|
167
|
+
};
|
|
168
|
+
type ItemCardLinkProps = {
|
|
169
|
+
href: string;
|
|
170
|
+
children: ReactNode;
|
|
171
|
+
className: string;
|
|
172
|
+
"aria-label": string;
|
|
173
|
+
"data-item-tooltip-id"?: string;
|
|
174
|
+
};
|
|
175
|
+
type ItemCardLinkRenderer = (props: ItemCardLinkProps) => ReactNode;
|
|
176
|
+
type ItemCardProps = {
|
|
177
|
+
kind: ItemCardKind;
|
|
178
|
+
name: string;
|
|
179
|
+
imageUrl: string;
|
|
180
|
+
rarity: number;
|
|
181
|
+
itemId?: string;
|
|
182
|
+
/** 实际链接地址;组件不转换 Wiki 文章标题。 */
|
|
183
|
+
href?: string;
|
|
184
|
+
variant?: ItemCardVariant;
|
|
185
|
+
count?: number;
|
|
186
|
+
showName?: boolean;
|
|
187
|
+
className?: string;
|
|
188
|
+
style?: CSSProperties;
|
|
189
|
+
icon?: ItemIconLayers;
|
|
190
|
+
action?: ItemCardSelectionAction;
|
|
191
|
+
badges?: ReactNode;
|
|
192
|
+
ariaLabel?: string;
|
|
193
|
+
fallback?: ReactNode;
|
|
194
|
+
renderImage?: ItemIconImageRenderer;
|
|
195
|
+
renderLink?: ItemCardLinkRenderer;
|
|
196
|
+
renderName?: (name: string) => ReactNode;
|
|
197
|
+
renderCount?: (count: number) => ReactNode;
|
|
198
|
+
};
|
|
199
|
+
/** Wiki 物品卡片:名称横条或库存数量横条,共用完整图层图标。 */
|
|
200
|
+
export declare const ItemCard: import("react").MemoExoticComponent<({ kind, name, imageUrl, rarity, itemId, href, variant, count, showName, className, style, icon, action, badges, ariaLabel, fallback, renderImage, renderLink, renderName, renderCount }: ItemCardProps) => string | number | bigint | boolean | import("react").JSX.Element | Iterable<ReactNode> | Promise<string | number | bigint | boolean | Iterable<ReactNode> | import("react").ReactElement<unknown, string | import("react").JSXElementConstructor<any>> | import("react").ReactPortal | null | undefined> | null | undefined>;
|
|
201
|
+
//#endregion
|
|
202
|
+
//#region src/game/item-tooltip-card/types.d.ts
|
|
203
|
+
type ItemTooltipObtainWay = {
|
|
204
|
+
id?: string;
|
|
205
|
+
name: string;
|
|
206
|
+
iconUrl?: string;
|
|
207
|
+
href?: string;
|
|
208
|
+
};
|
|
209
|
+
type ItemTooltipItem = ItemIconLayers & {
|
|
210
|
+
name: string;
|
|
211
|
+
rarity: number;
|
|
212
|
+
category?: string;
|
|
213
|
+
usage?: string;
|
|
214
|
+
description?: string;
|
|
215
|
+
/** 实际 URL,由使用方转换自己的文章或路由地址。 */
|
|
216
|
+
href?: string;
|
|
217
|
+
obtainWays?: readonly ItemTooltipObtainWay[];
|
|
218
|
+
noObtainWayHint?: string;
|
|
219
|
+
};
|
|
220
|
+
type ItemTooltipLinkProps = {
|
|
221
|
+
href: string;
|
|
222
|
+
className: string;
|
|
223
|
+
children: ReactNode;
|
|
224
|
+
"aria-label"?: string;
|
|
225
|
+
};
|
|
226
|
+
type ItemTooltipLinkRenderer = (props: ItemTooltipLinkProps) => ReactNode;
|
|
227
|
+
type ItemTooltipCardProps = {
|
|
228
|
+
item: ItemTooltipItem;
|
|
229
|
+
className?: string;
|
|
230
|
+
style?: CSSProperties;
|
|
231
|
+
fontFamily?: string;
|
|
232
|
+
obtainLabel?: string;
|
|
233
|
+
renderText?: (text: string) => ReactNode;
|
|
234
|
+
renderImage?: ItemIconImageRenderer;
|
|
235
|
+
renderLink?: ItemTooltipLinkRenderer;
|
|
236
|
+
};
|
|
237
|
+
//#endregion
|
|
238
|
+
//#region src/game/item-tooltip-card/ItemTooltipCard.d.ts
|
|
239
|
+
/** 固定灰色游戏皮肤的物品详情;文章路由与富文本由使用方接入。 */
|
|
240
|
+
export declare function ItemTooltipCard({ item, className, style, fontFamily, obtainLabel, renderText, renderImage, renderLink }: ItemTooltipCardProps): import("react").JSX.Element;
|
|
241
|
+
//#endregion
|
|
242
|
+
//#region src/game/item-hover-card/ItemHoverCard.d.ts
|
|
243
|
+
type ItemHoverCardLayerProps = {
|
|
244
|
+
/** 由使用方的本地数据或缓存解析;组件不发请求。 */
|
|
245
|
+
resolveItem: (itemId: string, host: HTMLElement) => ItemTooltipItem | null | undefined;
|
|
246
|
+
root?: HTMLElement | Document;
|
|
247
|
+
rootRef?: RefObject<HTMLElement | null>;
|
|
248
|
+
disabled?: boolean;
|
|
249
|
+
/** 默认只在 768px 以上、支持精细指针悬停的设备启用。 */
|
|
250
|
+
disableOnMobile?: boolean;
|
|
251
|
+
openDelay?: number;
|
|
252
|
+
closeDelay?: number;
|
|
253
|
+
gap?: number;
|
|
254
|
+
width?: CSSProperties["width"];
|
|
255
|
+
className?: string;
|
|
256
|
+
style?: CSSProperties;
|
|
257
|
+
cardProps?: Omit<ItemTooltipCardProps, "item">;
|
|
258
|
+
onOpenChange?: (open: boolean, itemId: string | null) => void;
|
|
259
|
+
};
|
|
260
|
+
/** 一个监听层为网格内所有 data-item-tooltip-id 提供物品预览。 */
|
|
261
|
+
export declare function ItemHoverCardLayer({ resolveItem, root, rootRef, disabled, disableOnMobile, openDelay, closeDelay, gap, width, className, style, cardProps, onOpenChange }: ItemHoverCardLayerProps): import("react").JSX.Element | null;
|
|
262
|
+
type ItemHoverCardProps = Omit<ItemHoverCardLayerProps, "resolveItem" | "root" | "rootRef"> & {
|
|
263
|
+
item: ItemTooltipItem;
|
|
264
|
+
children: ReactNode;
|
|
265
|
+
triggerProps?: Omit<HTMLAttributes<HTMLSpanElement>, "children">;
|
|
266
|
+
};
|
|
267
|
+
export declare function ItemHoverCard({ item, children, triggerProps, ...layerProps }: ItemHoverCardProps): import("react").JSX.Element;
|
|
268
|
+
//#endregion
|
|
269
|
+
//#region src/game/rounded-button/RoundedButton.d.ts
|
|
270
|
+
type RoundedButtonVariant = "primary" | "default";
|
|
271
|
+
type RoundedButtonSlotClass = string | ((isPrimary: boolean) => string);
|
|
272
|
+
type RoundedButtonProps = ComponentProps<"button"> & {
|
|
273
|
+
variant?: RoundedButtonVariant;
|
|
274
|
+
text?: string;
|
|
275
|
+
icon?: ReactNode;
|
|
276
|
+
showIcon?: boolean;
|
|
277
|
+
iconPosition?: "left" | "right";
|
|
278
|
+
loading?: boolean;
|
|
279
|
+
classNames?: {
|
|
280
|
+
button?: RoundedButtonSlotClass;
|
|
281
|
+
text?: RoundedButtonSlotClass;
|
|
282
|
+
icon?: RoundedButtonSlotClass;
|
|
283
|
+
};
|
|
284
|
+
};
|
|
285
|
+
/** 原灰色圆角按钮;悬停闪动由浏览器动画执行。 */
|
|
286
|
+
export declare function RoundedButton({ variant, type, text, children, icon, showIcon, iconPosition, loading, disabled, className, classNames, onClick, onPointerEnter, onPointerLeave, ...props }: RoundedButtonProps): import("react").JSX.Element;
|
|
287
|
+
//#endregion
|
|
288
|
+
//#region src/game/rounded-button/RoundedIconButton.d.ts
|
|
289
|
+
type RoundedIconButtonProps = ComponentProps<"button"> & {
|
|
290
|
+
"aria-label": string;
|
|
291
|
+
children: ReactNode;
|
|
292
|
+
};
|
|
293
|
+
/** 24px 圆形图标按钮;纹理与双边线只作装饰。 */
|
|
294
|
+
export declare function RoundedIconButton({ type, disabled, children, className, ...props }: RoundedIconButtonProps): import("react").JSX.Element;
|
|
295
|
+
//#endregion
|
|
296
|
+
//#region src/game/rounded-select/RoundedSelect.d.ts
|
|
297
|
+
type RoundedSelectOption<T extends string = string> = {
|
|
298
|
+
value: T;
|
|
299
|
+
label: ReactNode;
|
|
300
|
+
disabled?: boolean;
|
|
301
|
+
hidden?: boolean;
|
|
302
|
+
left?: ReactNode | ((selected: boolean) => ReactNode);
|
|
303
|
+
right?: ReactNode | ((selected: boolean) => ReactNode);
|
|
304
|
+
/** 自定义标签的键盘文字匹配名称。 */
|
|
305
|
+
textValue?: string;
|
|
306
|
+
};
|
|
307
|
+
type RoundedSelectProps<T extends string = string> = {
|
|
308
|
+
options: readonly RoundedSelectOption<T>[];
|
|
309
|
+
value?: T | null;
|
|
310
|
+
defaultValue?: T | null;
|
|
311
|
+
onValueChange?: (value: T) => void;
|
|
312
|
+
placeholder?: ReactNode;
|
|
313
|
+
name?: string;
|
|
314
|
+
form?: string;
|
|
315
|
+
required?: boolean;
|
|
316
|
+
disabled?: boolean;
|
|
317
|
+
invalid?: boolean;
|
|
318
|
+
open?: boolean;
|
|
319
|
+
defaultOpen?: boolean;
|
|
320
|
+
onOpenChange?: (open: boolean) => void;
|
|
321
|
+
id?: string;
|
|
322
|
+
"aria-label"?: string;
|
|
323
|
+
"aria-describedby"?: string;
|
|
324
|
+
className?: string;
|
|
325
|
+
classNames?: {
|
|
326
|
+
container?: string;
|
|
327
|
+
trigger?: string;
|
|
328
|
+
option?: string;
|
|
329
|
+
optionContainer?: string;
|
|
330
|
+
optionScrollArea?: string;
|
|
331
|
+
};
|
|
332
|
+
ref?: Ref<HTMLButtonElement>;
|
|
333
|
+
};
|
|
334
|
+
/** 圆角触发器与半覆盖面板;隐藏项不进入列表,禁用项不能选择。 */
|
|
335
|
+
export declare function RoundedSelect<T extends string = string>({ options, value, defaultValue, onValueChange, placeholder, name, form, required: requiredProp, disabled: disabledProp, invalid: invalidProp, open, defaultOpen, onOpenChange, id: idProp, "aria-label": ariaLabel, "aria-describedby": describedByProp, className, classNames, ref }: RoundedSelectProps<T>): import("react").JSX.Element;
|
|
336
|
+
//#endregion
|
|
337
|
+
//#region src/game/rounded-switch/RoundedSwitch.d.ts
|
|
338
|
+
type RoundedSwitchProps = Omit<ComponentProps<"div">, "defaultChecked" | "defaultValue" | "onChange" | "children"> & {
|
|
339
|
+
checked?: boolean;
|
|
340
|
+
defaultChecked?: boolean;
|
|
341
|
+
onCheckedChange?: (checked: boolean) => void;
|
|
342
|
+
onText?: ReactNode;
|
|
343
|
+
offText?: ReactNode;
|
|
344
|
+
name?: string;
|
|
345
|
+
form?: string;
|
|
346
|
+
disabled?: boolean;
|
|
347
|
+
required?: boolean;
|
|
348
|
+
};
|
|
349
|
+
export declare function RoundedSwitch({ checked, defaultChecked, onCheckedChange, onText, offText, name, form, disabled: disabledProp, required: requiredProp, className, onKeyDown, ...props }: RoundedSwitchProps): import("react").JSX.Element;
|
|
350
|
+
//#endregion
|
|
351
|
+
//#region src/game/rounded-toggle/RoundedToggle.d.ts
|
|
352
|
+
type RoundedToggleOption = {
|
|
353
|
+
value: string;
|
|
354
|
+
label: ReactNode;
|
|
355
|
+
icon?: ReactNode;
|
|
356
|
+
disabled?: boolean;
|
|
357
|
+
"aria-label"?: string;
|
|
358
|
+
};
|
|
359
|
+
type RoundedToggleProps = Omit<ComponentProps<"div">, "defaultValue" | "onChange" | "children"> & {
|
|
360
|
+
options: readonly RoundedToggleOption[];
|
|
361
|
+
value?: string;
|
|
362
|
+
defaultValue?: string;
|
|
363
|
+
onValueChange?: (value: string) => void;
|
|
364
|
+
label?: string;
|
|
365
|
+
name?: string;
|
|
366
|
+
form?: string;
|
|
367
|
+
required?: boolean;
|
|
368
|
+
disabled?: boolean;
|
|
369
|
+
};
|
|
370
|
+
export declare function RoundedToggle({ options, value, defaultValue, onValueChange, label, name, form, required: requiredProp, disabled: disabledProp, className, onKeyDown, "aria-label": ariaLabel, ...props }: RoundedToggleProps): import("react").JSX.Element;
|
|
371
|
+
//#endregion
|
|
372
|
+
export type { AnimatedDialogClassNames, AnimatedDialogProps, BannerAlertProps, FullWidthAlertProps, ItemCardKind, ItemCardLinkProps, ItemCardLinkRenderer, ItemCardProps, ItemCardSelectionAction, ItemCardVariant, ItemHoverCardLayerProps, ItemHoverCardProps, ItemIconImageProps, ItemIconImageRenderer, ItemIconLayers, ItemIconProps, ItemIconTrans, ItemIconTransformKey, ItemTooltipCardProps, ItemTooltipItem, ItemTooltipLinkProps, ItemTooltipLinkRenderer, ItemTooltipObtainWay, RoundedButtonProps, RoundedButtonVariant, RoundedIconButtonProps, RoundedSelectOption, RoundedSelectProps, RoundedSwitchProps, RoundedToggleOption, RoundedToggleProps };
|