nfx-ui 0.6.2 → 0.7.1

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
Files changed (116) hide show
  1. package/dist/animations.cjs +2 -2
  2. package/dist/animations.d.ts +0 -101
  3. package/dist/animations.mjs +9 -11
  4. package/dist/apis.cjs +2 -2
  5. package/dist/apis.cjs.map +1 -1
  6. package/dist/apis.d.ts +0 -6
  7. package/dist/apis.mjs +8 -9
  8. package/dist/apis.mjs.map +1 -1
  9. package/dist/{chunk-BounceLoading-B54QEw0n.mjs → chunk-BounceLoading-C5XE8DKc.mjs} +62 -65
  10. package/dist/{chunk-BounceLoading-B54QEw0n.mjs.map → chunk-BounceLoading-C5XE8DKc.mjs.map} +1 -1
  11. package/dist/chunk-BounceLoading-CwvDT5HF.cjs +11 -0
  12. package/dist/{chunk-BounceLoading-C6n4BZVJ.cjs.map → chunk-BounceLoading-CwvDT5HF.cjs.map} +1 -1
  13. package/dist/chunk-animations-CEZ01ALd.mjs +740 -0
  14. package/dist/chunk-animations-CEZ01ALd.mjs.map +1 -0
  15. package/dist/chunk-animations-CO7zKbti.cjs +3 -0
  16. package/dist/chunk-animations-CO7zKbti.cjs.map +1 -0
  17. package/dist/chunk-i18n-BCDF-skF.cjs +3 -0
  18. package/dist/{chunk-i18n-daHSL0Nm.cjs.map → chunk-i18n-BCDF-skF.cjs.map} +1 -1
  19. package/dist/{chunk-i18n-BBPhh6MT.mjs → chunk-i18n-BsyWvA9c.mjs} +44 -69
  20. package/dist/{chunk-i18n-BBPhh6MT.mjs.map → chunk-i18n-BsyWvA9c.mjs.map} +1 -1
  21. package/dist/{chunk-types-SD4MzUGp.mjs → chunk-language-B8sfGadQ.mjs} +2 -2
  22. package/dist/chunk-language-B8sfGadQ.mjs.map +1 -0
  23. package/dist/{chunk-types-BE3JCLff.cjs → chunk-language-Bqmpuf2W.cjs} +1 -1
  24. package/dist/chunk-language-Bqmpuf2W.cjs.map +1 -0
  25. package/dist/{chunk-types-DNPBKfmx.mjs → chunk-layout-C2uqDEMJ.mjs} +2 -2
  26. package/dist/chunk-layout-C2uqDEMJ.mjs.map +1 -0
  27. package/dist/{chunk-types-C_opkZGr.cjs → chunk-layout-D728gccQ.cjs} +1 -1
  28. package/dist/chunk-layout-D728gccQ.cjs.map +1 -0
  29. package/dist/{chunk-lucide-BhgnmTNo.mjs → chunk-lucide-C54WenI6.mjs} +2 -2
  30. package/dist/{chunk-lucide-BhgnmTNo.mjs.map → chunk-lucide-C54WenI6.mjs.map} +1 -1
  31. package/dist/chunk-preference-BWEpbZgC.mjs +50 -0
  32. package/dist/{chunk-preference-By58ZcJ_.mjs.map → chunk-preference-BWEpbZgC.mjs.map} +1 -1
  33. package/dist/chunk-preference-Dbugm0iQ.cjs +3 -0
  34. package/dist/{chunk-preference-C144GkCD.cjs.map → chunk-preference-Dbugm0iQ.cjs.map} +1 -1
  35. package/dist/chunk-theme-9dcwRKw8.mjs +17 -0
  36. package/dist/chunk-theme-9dcwRKw8.mjs.map +1 -0
  37. package/dist/chunk-theme-BFvDRCYS.cjs +3 -0
  38. package/dist/chunk-theme-BFvDRCYS.cjs.map +1 -0
  39. package/dist/components.cjs +3 -3
  40. package/dist/components.cjs.map +1 -1
  41. package/dist/components.d.ts +0 -412
  42. package/dist/components.mjs +628 -642
  43. package/dist/components.mjs.map +1 -1
  44. package/dist/constants.cjs +1 -1
  45. package/dist/constants.d.ts +0 -129
  46. package/dist/constants.mjs +1 -1
  47. package/dist/events.cjs +1 -1
  48. package/dist/events.d.ts +0 -60
  49. package/dist/events.mjs +1 -1
  50. package/dist/hooks.cjs +1 -1
  51. package/dist/hooks.d.ts +0 -315
  52. package/dist/hooks.mjs +1 -1
  53. package/dist/icons.cjs +2 -2
  54. package/dist/icons.d.ts +0 -217
  55. package/dist/icons.mjs +2 -2
  56. package/dist/languages.cjs +2 -2
  57. package/dist/languages.cjs.map +1 -1
  58. package/dist/languages.d.ts +0 -178
  59. package/dist/languages.mjs +4 -4
  60. package/dist/languages.mjs.map +1 -1
  61. package/dist/layouts.cjs +2 -2
  62. package/dist/layouts.cjs.map +1 -1
  63. package/dist/layouts.d.ts +0 -208
  64. package/dist/layouts.mjs +201 -210
  65. package/dist/layouts.mjs.map +1 -1
  66. package/dist/navigations.cjs +1 -1
  67. package/dist/navigations.d.ts +0 -71
  68. package/dist/navigations.mjs +1 -1
  69. package/dist/pixel-blast.cjs +192 -0
  70. package/dist/pixel-blast.cjs.map +1 -0
  71. package/dist/pixel-blast.d.ts +1 -0
  72. package/dist/pixel-blast.mjs +506 -0
  73. package/dist/pixel-blast.mjs.map +1 -0
  74. package/dist/preference.cjs +2 -2
  75. package/dist/preference.d.ts +0 -95
  76. package/dist/preference.mjs +8 -11
  77. package/dist/services.cjs +2 -2
  78. package/dist/services.cjs.map +1 -1
  79. package/dist/services.d.ts +0 -7
  80. package/dist/services.mjs +9 -10
  81. package/dist/services.mjs.map +1 -1
  82. package/dist/stores.cjs +2 -2
  83. package/dist/stores.cjs.map +1 -1
  84. package/dist/stores.d.ts +1 -101
  85. package/dist/stores.mjs +53 -53
  86. package/dist/stores.mjs.map +1 -1
  87. package/dist/themes.cjs +2 -2
  88. package/dist/themes.cjs.map +1 -1
  89. package/dist/themes.d.ts +0 -232
  90. package/dist/themes.mjs +888 -721
  91. package/dist/themes.mjs.map +1 -1
  92. package/dist/types.cjs +1 -1
  93. package/dist/types.d.ts +0 -180
  94. package/dist/types.mjs +1 -1
  95. package/dist/utils.cjs +2 -2
  96. package/dist/utils.cjs.map +1 -1
  97. package/dist/utils.d.ts +0 -485
  98. package/dist/utils.mjs +143 -156
  99. package/dist/utils.mjs.map +1 -1
  100. package/package.json +45 -29
  101. package/dist/chunk-BounceLoading-C6n4BZVJ.cjs +0 -11
  102. package/dist/chunk-animations-Brp-bsaE.mjs +0 -1243
  103. package/dist/chunk-animations-Brp-bsaE.mjs.map +0 -1
  104. package/dist/chunk-animations-e2F3zuP9.cjs +0 -190
  105. package/dist/chunk-animations-e2F3zuP9.cjs.map +0 -1
  106. package/dist/chunk-i18n-daHSL0Nm.cjs +0 -3
  107. package/dist/chunk-preference-By58ZcJ_.mjs +0 -51
  108. package/dist/chunk-preference-C144GkCD.cjs +0 -3
  109. package/dist/chunk-types-BE3JCLff.cjs.map +0 -1
  110. package/dist/chunk-types-BNUlgEkq.cjs +0 -3
  111. package/dist/chunk-types-BNUlgEkq.cjs.map +0 -1
  112. package/dist/chunk-types-BudGuDCK.mjs +0 -20
  113. package/dist/chunk-types-BudGuDCK.mjs.map +0 -1
  114. package/dist/chunk-types-C_opkZGr.cjs.map +0 -1
  115. package/dist/chunk-types-DNPBKfmx.mjs.map +0 -1
  116. package/dist/chunk-types-SD4MzUGp.mjs.map +0 -1
@@ -1,5 +1,5 @@
1
- (function(){try{if(typeof document<"u"){var e=document.createElement("style");e.appendChild(document.createTextNode(`.styles-module__loading___bgEAk{justify-content:center;align-items:center;display:inline-flex}.styles-module__loading___bgEAk svg polyline{fill:none;stroke-width:3px;stroke-linecap:round;stroke-linejoin:round}.styles-module__loading___bgEAk svg polyline.styles-module__back___XLPvD{fill:none;stroke:var(--color-primary-alpha,#ff4d5033)}.styles-module__loading___bgEAk svg polyline.styles-module__front___hSxig{fill:none;stroke:var(--color-primary,#ff4d4f);stroke-dasharray:48 144;stroke-dashoffset:192px;animation:1.4s linear infinite styles-module__dash_682___AQzo6}@keyframes styles-module__dash_682___AQzo6{72.5%{opacity:0}to{stroke-dashoffset:0}}.styles-module__loader___E7OIM{justify-content:center;align-items:center;width:fit-content;height:fit-content;display:flex}.styles-module__truckWrapper___Sk4zX{flex-direction:column;justify-content:flex-end;align-items:center;width:100%;height:100%;display:flex;position:relative;overflow-x:hidden}.styles-module__truckBody___j7w2C{width:65%;height:fit-content;margin-bottom:6px;animation:1s linear infinite styles-module__motion___IiNlW}@keyframes styles-module__motion___IiNlW{0%{transform:translateY(0)}50%{transform:translateY(3px)}to{transform:translateY(0)}}.styles-module__truckTires___4ncTl{justify-content:space-between;align-items:center;width:65%;height:fit-content;padding:0 10px 0 15px;display:flex;position:absolute;bottom:0}.styles-module__tiresvg___IBQcN{width:24px}.styles-module__road___sxx-E{background-color:var(--color-fg-heading);border-radius:3px;align-self:flex-end;width:100%;height:1.5px;position:relative;bottom:0}.styles-module__road___sxx-E:before{content:"";background-color:var(--color-fg-heading);border-left:10px solid var(--color-bg);border-radius:3px;width:20px;height:100%;animation:1.4s linear infinite styles-module__roadAnimation___yvrHP;position:absolute;right:-50%}.styles-module__road___sxx-E:after{content:"";background-color:var(--color-fg-heading);border-left:4px solid var(--color-bg);border-radius:3px;width:10px;height:100%;animation:1.4s linear infinite styles-module__roadAnimation___yvrHP;position:absolute;right:-65%}.styles-module__lampPost___okcN5{height:45%;animation:1.4s linear infinite styles-module__roadAnimation___yvrHP;position:absolute;bottom:0;right:-90%}@keyframes styles-module__roadAnimation___yvrHP{0%{transform:translate(0)}to{transform:translate(-350px)}}.styles-module__loader___pFUzL{justify-content:center;align-items:center;display:inline-flex;position:relative}.styles-module__loader___pFUzL:before{content:"";background:var(--color-primary);opacity:.3;border-radius:50%;width:100%;height:5px;animation:.5s linear infinite styles-module__shadow324___sutUe;position:absolute;top:calc(100% + 12px);left:0}.styles-module__loader___pFUzL:after{content:"";background:var(--color-primary);width:100%;height:100%;position:absolute;top:0;left:0}.styles-module__square___GKjhm:after{border-radius:4px;animation:.5s linear infinite styles-module__jump7456Square___Z-D9b}.styles-module__circle___bUpSN:after{border-radius:50%;animation:.5s linear infinite styles-module__jump7456Circle___2AfF7}@keyframes styles-module__jump7456Square___Z-D9b{15%{border-bottom-right-radius:3px}25%{transform:translateY(9px)rotate(22.5deg)}50%{border-bottom-right-radius:40px;transform:translateY(18px)scaleY(.9)rotate(45deg)}75%{transform:translateY(9px)rotate(67.5deg)}to{transform:translateY(0)rotate(90deg)}}@keyframes styles-module__jump7456Circle___2AfF7{15%{border-bottom-right-radius:50%}25%{transform:translateY(9px)rotate(22.5deg)}50%{border-bottom-right-radius:40px;transform:translateY(18px)scaleY(.9)rotate(45deg)}75%{transform:translateY(9px)rotate(67.5deg)}to{transform:translateY(0)rotate(90deg)}}@keyframes styles-module__shadow324___sutUe{0%,to{transform:scale(1)}50%{transform:scaleX(1.2)}}.style-module__waves___oR3u7{width:100%;height:100%;margin:0;padding:0;position:absolute;top:0;left:0;overflow:hidden}.style-module__waves___oR3u7:before{content:"";width:.5rem;height:.5rem;transform:translate3d(calc(var(--x) - 50%), calc(var(--y) - 50%), 0);will-change:transform;background:#160000;border-radius:50%;position:absolute;top:0;left:0}.style-module__wavesCanvas___zkhTC{width:100%;height:100%;display:block}.style-module__squaresCanvas___22kMc{border:none;width:100%;height:100%;display:block}.style-module__container___HkxIe{background-color:#000;width:100%;height:100%;position:relative;overflow:hidden}.style-module__canvas___MR9JX{width:100%;height:100%;display:block}.style-module__outerVignette___i75nw{pointer-events:none;background:radial-gradient(circle,#0000 60%,#000 100%);width:100%;height:100%;position:absolute;top:0;left:0}.style-module__centerVignette___n9uVG{pointer-events:none;background:radial-gradient(circle,#000c 0%,#0000 60%);width:100%;height:100%;position:absolute;top:0;left:0}.style-module__container___Hh3-c{width:100%;height:100%;position:relative;overflow:hidden}.styles-module__button___RbliA{cursor:pointer;border:1px solid #0000;border-radius:.5rem;outline:none;justify-content:center;align-items:center;gap:.5rem;font-family:inherit;font-weight:500;transition:all .2s;display:inline-flex;position:relative}.styles-module__button___RbliA:focus-visible{outline:2px solid var(--color-primary);outline-offset:2px}.styles-module__button___RbliA:disabled{cursor:not-allowed;opacity:.6}.styles-module__button___RbliA.styles-module__small___yK0Yp{min-height:2rem;padding:.5rem 1rem;font-size:.8125rem}.styles-module__button___RbliA.styles-module__medium___eBTch{min-height:2.5rem;padding:.75rem 1.5rem;font-size:.875rem}.styles-module__button___RbliA.styles-module__large___pIZkl{min-height:3rem;padding:1rem 2rem;font-size:1rem}.styles-module__button___RbliA.styles-module__primary___qsZpA{background:var(--color-primary);border-color:var(--color-primary);color:var(--color-primary-fg,#fff)}.styles-module__button___RbliA.styles-module__primary___qsZpA:hover:not(:disabled){background:var(--color-primary-light);border-color:var(--color-primary-light);transform:translateY(-1px)}.styles-module__button___RbliA.styles-module__primary___qsZpA:active:not(:disabled){transform:translateY(0)}.styles-module__button___RbliA.styles-module__secondary___SCpPv{background:var(--color-bg-2);border-color:var(--color-border-4);color:var(--color-fg-text)}.styles-module__button___RbliA.styles-module__secondary___SCpPv:hover:not(:disabled){background:var(--color-bg-3);border-color:var(--color-primary)}.styles-module__button___RbliA.styles-module__outline___rrlk9{border-color:var(--color-border-4);color:var(--color-fg-text);background:0 0}.styles-module__button___RbliA.styles-module__outline___rrlk9:hover:not(:disabled){background:var(--color-bg-2);border-color:var(--color-primary)}.styles-module__button___RbliA.styles-module__ghost___QMoiH{color:var(--color-fg-text);background:0 0;border-color:#0000}.styles-module__button___RbliA.styles-module__ghost___QMoiH:hover:not(:disabled){background:var(--color-bg-2)}.styles-module__button___RbliA.styles-module__danger___MW-pg{background:var(--color-danger);border-color:var(--color-danger);color:#fff}.styles-module__button___RbliA.styles-module__danger___MW-pg:hover:not(:disabled){background:var(--color-danger-light);border-color:var(--color-danger-light);transform:translateY(-1px)}.styles-module__button___RbliA.styles-module__danger___MW-pg:active:not(:disabled){transform:translateY(0)}.styles-module__button___RbliA.styles-module__fullWidth___-dXBR{width:100%}.styles-module__button___RbliA.styles-module__loading___UWw6V{pointer-events:none}.styles-module__spinner___KpJ-L{border:2px solid;border-top-color:#0000;border-radius:50%;flex-shrink:0;width:1rem;height:1rem;animation:.6s linear infinite styles-module__spin___ntZKM}@keyframes styles-module__spin___ntZKM{to{transform:rotate(360deg)}}.styles-module__button___RbliA.styles-module__small___yK0Yp .styles-module__spinner___KpJ-L{border-width:1.5px;width:.875rem;height:.875rem}.styles-module__button___RbliA.styles-module__large___pIZkl .styles-module__spinner___KpJ-L{border-width:2.5px;width:1.25rem;height:1.25rem}.styles-module__content___oyZRO{align-items:center;display:flex}.styles-module__leftIcon___cDktv,.styles-module__rightIcon___1mpk0{flex-shrink:0;align-items:center;display:flex}.styles-module__leftIcon___cDktv{margin-right:-.25rem}.styles-module__rightIcon___1mpk0{margin-left:-.25rem}.styles-module__button___RbliA.styles-module__iconOnly___iOv-U{aspect-ratio:1;min-width:2.5rem;min-height:2.5rem;padding:0}.styles-module__button___RbliA.styles-module__iconOnly___iOv-U.styles-module__small___yK0Yp{min-width:2rem;min-height:2rem}.styles-module__button___RbliA.styles-module__iconOnly___iOv-U.styles-module__large___pIZkl{min-width:3rem;min-height:3rem}.styles-module__iconContainer___bwvE3{justify-content:center;align-items:center;width:100%;height:100%;display:flex}.styles-module__layout___WaGy9{flex-direction:column;justify-content:center;align-items:center;gap:.25rem;width:100%;display:flex}.styles-module__horizontal___lKpGq{justify-content:center;align-items:center;gap:.5rem;width:100%;display:flex}.styles-module__topIcon___bzw6s,.styles-module__bottomIcon___suPfa{flex-shrink:0;justify-content:center;align-items:center;display:flex}.styles-module__iconOnly___iOv-U .styles-module__iconContainer___bwvE3 .styles-module__leftIcon___cDktv,.styles-module__iconOnly___iOv-U .styles-module__iconContainer___bwvE3 .styles-module__rightIcon___1mpk0{margin:0}.Dropdown-module__dropdown___c9wIp{width:100%;display:inline-block;position:relative}.Dropdown-module__dropdownButton___suNh-{border:1px solid var(--color-separator);cursor:pointer;text-align:left;background:var(--color-bg-2);width:100%;color:var(--color-fg-text);border-radius:8px;outline:none;justify-content:space-between;align-items:center;padding:.75rem 2.5rem .75rem 1rem;font-family:inherit;font-size:1rem;font-weight:400;line-height:1.5rem;transition:all .2s ease-in-out;display:flex;position:relative}.Dropdown-module__dropdownButton___suNh-:hover:not(:disabled){border-color:var(--color-primary);background:var(--color-bg-1)}.Dropdown-module__dropdownButton___suNh-:focus{border-color:var(--color-primary);background:var(--color-bg-1);box-shadow:0 0 0 2px var(--color-primary-transparent)}.Dropdown-module__dropdownButton___suNh-.Dropdown-module__disabled___Rz0pX{cursor:not-allowed;opacity:.6;background:var(--color-bg-3)}.Dropdown-module__dropdownButton___suNh-.Dropdown-module__error___F7dDu{border-color:#ef4444}.Dropdown-module__buttonText___D2zxn{text-overflow:ellipsis;white-space:nowrap;flex:1;overflow:hidden}.Dropdown-module__chevronIcon___uyawp{color:var(--color-fg-highlight);flex-shrink:0;transition:transform .15s;position:absolute;right:1rem}.Dropdown-module__chevronIcon___uyawp.Dropdown-module__open___APoXd{transform:rotate(180deg)}.Dropdown-module__dropdownMenu___WJ-QO{background:var(--color-bg);border:1px solid var(--color-border-4);z-index:1000;border-radius:8px;min-width:100%;animation:.15s ease-out Dropdown-module__slideDown___sRCmO;position:absolute;top:calc(100% + .5rem);left:0;right:0;overflow:hidden;box-shadow:0 .5rem 1rem #0000002d}@keyframes Dropdown-module__slideDown___sRCmO{0%{opacity:0;transform:translateY(-.5rem)}to{opacity:1;transform:translateY(0)}}.Dropdown-module__optionsList___Be6RN{margin:0;padding:.5rem 0;list-style:none}.Dropdown-module__option___q-NgT{cursor:pointer;color:var(--color-fg-text);align-items:center;padding:.75rem 1rem;font-size:.875rem;transition:all .15s;display:flex}.Dropdown-module__option___q-NgT:hover{background-color:var(--color-bg-2)}.Dropdown-module__option___q-NgT.Dropdown-module__selected___-OTW-{background-color:var(--color-bg-3);color:var(--color-fg-highlight);font-weight:600}@media (width<=768px){.Dropdown-module__dropdownButton___suNh-{padding:.625rem 2.25rem .625rem .875rem;font-size:.875rem}.Dropdown-module__chevronIcon___uyawp{right:.875rem}.Dropdown-module__option___q-NgT{padding:.625rem .875rem;font-size:.8125rem}}.styles-module__wrapper___COeGm{flex-direction:column;gap:.5rem;display:flex}.styles-module__wrapper___COeGm.styles-module__fullWidth___lVU49{width:100%}.styles-module__label___gfOA7{color:var(--color-fg-heading);align-items:center;gap:.25rem;font-size:.875rem;font-weight:500;display:flex}.styles-module__required___-zOy5{color:var(--color-danger)}.styles-module__inputContainer___wXY53{align-items:center;width:100%;display:flex;position:relative}.styles-module__input___IZDc3{border:1px solid var(--color-border-4);background:var(--color-bg);width:100%;color:var(--color-fg-text);border-radius:.5rem;outline:none;font-family:inherit;font-size:.875rem;transition:all .2s}.styles-module__input___IZDc3[type=password]::-webkit-credentials-auto-fill-button{visibility:hidden!important;opacity:0!important;pointer-events:none!important;appearance:none!important;display:none!important;position:absolute!important;left:-9999px!important}.styles-module__input___IZDc3[type=password]::-webkit-strong-password-toggle-button{visibility:hidden!important;opacity:0!important;pointer-events:none!important;appearance:none!important;width:0!important;height:0!important;margin:0!important;padding:0!important;display:none!important;position:absolute!important;left:-9999px!important}.styles-module__input___IZDc3[type=password]::-ms-reveal{visibility:hidden!important;opacity:0!important;pointer-events:none!important;width:0!important;height:0!important;display:none!important;position:absolute!important;left:-9999px!important}.styles-module__input___IZDc3[type=password]::-ms-clear{visibility:hidden!important;opacity:0!important;pointer-events:none!important;width:0!important;height:0!important;display:none!important;position:absolute!important;left:-9999px!important}.styles-module__input___IZDc3:focus{border-color:var(--color-primary);box-shadow:0 0 0 3px rgba(var(--color-primary-rgb,102, 126, 234), .1)}.styles-module__input___IZDc3::placeholder{color:var(--color-fg-muted,var(--color-fg-text));opacity:.5}.styles-module__input___IZDc3.styles-module__small___cuGyE{padding:.5rem .75rem;font-size:.8125rem}.styles-module__input___IZDc3.styles-module__medium___JdDPu{padding:.75rem;font-size:.875rem}.styles-module__input___IZDc3.styles-module__large___fMmiG{padding:1rem;font-size:1rem}.styles-module__input___IZDc3.styles-module__default___-eZTG{background:var(--color-bg);border-color:var(--color-border-4)}.styles-module__input___IZDc3.styles-module__filled___EQ5PQ{background:var(--color-bg-2);border-color:var(--color-border-3)}.styles-module__inputContainer___wXY53.styles-module__withLeftIcon___NFn6- .styles-module__input___IZDc3{padding-left:2.5rem}.styles-module__inputContainer___wXY53.styles-module__withRightIcon___mz-hn .styles-module__input___IZDc3{padding-right:2.5rem}.styles-module__inputContainer___wXY53.styles-module__withLeftIcon___NFn6- .styles-module__input___IZDc3.styles-module__small___cuGyE{padding-left:2rem}.styles-module__inputContainer___wXY53.styles-module__withRightIcon___mz-hn .styles-module__input___IZDc3.styles-module__small___cuGyE{padding-right:2rem}.styles-module__inputContainer___wXY53.styles-module__withLeftIcon___NFn6- .styles-module__input___IZDc3.styles-module__large___fMmiG{padding-left:3rem}.styles-module__inputContainer___wXY53.styles-module__withRightIcon___mz-hn .styles-module__input___IZDc3.styles-module__large___fMmiG{padding-right:3rem}.styles-module__leftIcon___jEW5H,.styles-module__rightIcon___bA3Eo{color:var(--color-fg-muted,var(--color-fg-text));pointer-events:none;z-index:1;justify-content:center;align-items:center;display:flex;position:absolute}.styles-module__leftIcon___jEW5H{left:.75rem}.styles-module__rightIcon___bA3Eo{right:.75rem}.styles-module__rightIcon___bA3Eo.styles-module__rightIconInteractive___ccypw{pointer-events:auto}.styles-module__inputContainer___wXY53.styles-module__containerSmall___20ICq .styles-module__leftIcon___jEW5H{left:.5rem}.styles-module__inputContainer___wXY53.styles-module__containerSmall___20ICq .styles-module__rightIcon___bA3Eo{right:.5rem}.styles-module__inputContainer___wXY53.styles-module__containerLarge___IztuN .styles-module__leftIcon___jEW5H{left:1rem}.styles-module__inputContainer___wXY53.styles-module__containerLarge___IztuN .styles-module__rightIcon___bA3Eo{right:1rem}.styles-module__input___IZDc3.styles-module__error___946qV{border-color:var(--color-danger)}.styles-module__input___IZDc3.styles-module__error___946qV:focus{border-color:var(--color-danger);box-shadow:0 0 0 3px rgba(var(--color-danger-rgb,244, 67, 54), .1)}.styles-module__input___IZDc3.styles-module__disabled___sJvLd{background:var(--color-bg-3);border-color:var(--color-border-5);color:var(--color-fg-muted);cursor:not-allowed;opacity:.6}.styles-module__errorMessage___5Mn22{color:var(--color-danger);margin:0;font-size:.75rem}.styles-module__helperText___T2eui{color:var(--color-fg-muted);margin:0;font-size:.75rem}.styles-module__container___xeg8O{flex-direction:column;gap:1rem;display:flex}.styles-module__label___qhbKe{color:var(--color-fg-text);font-size:.875rem;font-weight:500}.styles-module__error___O-7AY{color:var(--color-error);font-size:.875rem}.styles-module__pairs___owGV3{flex-direction:column;gap:.75rem;display:flex}.styles-module__pair___G4WFY{grid-template-columns:1fr 2fr auto;align-items:start;gap:.75rem;display:grid}.styles-module__keyInput___wl1M1,.styles-module__valueInput___HiwJ5{flex:1}.styles-module__removeButton___4-X0b{min-width:auto;color:var(--color-error);padding:.5rem}.styles-module__removeButton___4-X0b:hover{background-color:var(--color-error);color:#fff}.styles-module__addButton___QFljt{align-self:flex-start}@media (width<=768px){.styles-module__pair___G4WFY{grid-template-columns:1fr}.styles-module__removeButton___4-X0b{align-self:flex-end}}.styles-module__searchContainer___86TGN{width:100%;max-width:400px;position:relative}.styles-module__searchIcon___ZInry{color:var(--color-fg-muted);pointer-events:none;position:absolute;top:50%;left:1rem;transform:translateY(-50%)}.styles-module__searchInput___SqZXQ{border:1px solid var(--color-border);width:100%;color:var(--color-fg-text);background:var(--color-bg-2);border-radius:.5rem;padding:.75rem 3rem;font-size:1rem;transition:all .2s}.styles-module__searchInput___SqZXQ:focus{border-color:var(--color-primary);box-shadow:0 0 0 3px var(--color-primary-bg);outline:none}.styles-module__searchInput___SqZXQ::placeholder{color:var(--color-fg-muted)}.styles-module__clearBtn___7jExr{width:1.5rem;height:1.5rem;color:var(--color-fg-muted);cursor:pointer;background:0 0;border:none;justify-content:center;align-items:center;padding:0;transition:all .2s;display:flex;position:absolute;top:50%;right:.75rem;transform:translateY(-50%)}.styles-module__clearBtn___7jExr:hover{color:var(--color-fg-text)}@media (width<=768px){.styles-module__searchContainer___86TGN{max-width:100%}}.styles-module__container___nGxdM{flex-direction:column;gap:.75rem;display:flex}.styles-module__toggleContainer___VrsKI{align-items:center;display:flex}.styles-module__toggleButton___IzD6Z{border:1px solid var(--color-border-4);background:var(--color-bg);color:var(--color-fg-muted);cursor:pointer;border-radius:.5rem;align-items:center;gap:.5rem;padding:.5rem 1rem;font-size:.875rem;transition:all .2s;display:flex}.styles-module__toggleButton___IzD6Z:hover{background:var(--color-bg-2);border-color:var(--color-border-3)}.styles-module__toggleButton___IzD6Z.styles-module__enabled___cao0G{background:var(--color-primary);color:#fff;border-color:var(--color-primary)}.styles-module__toggleButton___IzD6Z.styles-module__enabled___cao0G:hover{background:var(--color-primary-hover);border-color:var(--color-primary-hover)}.styles-module__optionsContainer___LOzlO{background:var(--color-bg-2);border:1px solid var(--color-border-4);border-radius:.5rem;gap:.5rem;padding:.5rem;display:flex}.styles-module__option___abhnC{border:1px solid var(--color-border-4);background:var(--color-bg);color:var(--color-fg);cursor:pointer;border-radius:.375rem;flex:1;justify-content:center;align-items:center;gap:.375rem;padding:.5rem .875rem;font-size:.875rem;font-weight:500;transition:all .2s;display:flex}.styles-module__option___abhnC:hover{background:var(--color-bg-3);border-color:var(--color-border-3)}.styles-module__option___abhnC.styles-module__active___pqmSi{background:var(--color-primary);color:#fff;border-color:var(--color-primary)}.styles-module__option___abhnC.styles-module__active___pqmSi:hover{background:var(--color-primary-hover);border-color:var(--color-primary-hover)}.styles-module__nbSelect___KjxSc{font-family:inherit;font-size:.9375rem;font-weight:600;line-height:1.5rem;display:inline-block;position:relative}.styles-module__selectButton___AKZe4{cursor:pointer;text-align:left;width:100%;min-width:8rem;font-family:inherit;font-size:inherit;font-weight:inherit;line-height:inherit;appearance:none;border:1px solid;border-radius:.25rem;outline:none;justify-content:space-between;align-items:center;padding:.4375rem 2.2rem .4375rem 1.125rem;transition:all .15s ease-in-out;display:flex;position:relative}.styles-module__selectButton___AKZe4.styles-module__primary___HU36a{background-color:var(--color-primary);border-color:var(--color-primary);color:var(--color-primary-fg)}.styles-module__selectButton___AKZe4.styles-module__primary___HU36a:hover:not(:disabled){background-color:var(--color-primary-light);border-color:var(--color-primary-light)}.styles-module__selectButton___AKZe4.styles-module__primary___HU36a:focus,.styles-module__selectButton___AKZe4.styles-module__primary___HU36a.styles-module__open___9AKMb{background-color:var(--color-primary-light);border-color:var(--color-primary-light);box-shadow:0 0 0 .125rem #8f9bb340}.styles-module__selectButton___AKZe4.styles-module__default___LedYP{background-color:var(--color-bg);border-color:var(--color-border-4);color:var(--color-fg-text)}.styles-module__selectButton___AKZe4.styles-module__default___LedYP:hover:not(:disabled){background-color:var(--color-bg-2);border-color:var(--color-primary)}.styles-module__selectButton___AKZe4.styles-module__default___LedYP:focus,.styles-module__selectButton___AKZe4.styles-module__default___LedYP.styles-module__open___9AKMb{background-color:var(--color-bg-2);border-color:var(--color-primary);box-shadow:0 0 0 .125rem #8f9bb340}.styles-module__selectButton___AKZe4:disabled{cursor:not-allowed;opacity:.6}.styles-module__buttonText___QSLO1{text-overflow:ellipsis;white-space:nowrap;flex:1;overflow:hidden}.styles-module__chevronIcon___qAHaD{flex-shrink:0;width:1.5rem;height:1.5rem;transition:transform .15s;position:absolute;right:.41rem}.styles-module__selectButton___AKZe4.styles-module__primary___HU36a .styles-module__chevronIcon___qAHaD{color:var(--color-primary-fg)}.styles-module__selectButton___AKZe4.styles-module__default___LedYP .styles-module__chevronIcon___qAHaD{color:var(--color-fg)}.styles-module__chevronIcon___qAHaD.styles-module__open___9AKMb{transform:rotate(180deg)}.styles-module__optionsPanel___NWAp3{background-color:var(--color-bg);border:1px solid var(--color-border-4);z-index:1000;transform-origin:top;visibility:hidden;pointer-events:none;border-radius:.25rem;min-width:100%;position:absolute;top:calc(100% + .5rem);left:0;right:0;overflow:hidden;box-shadow:0 .5rem 1rem #00000026}.styles-module__optionsPanel___NWAp3.styles-module__open___9AKMb{visibility:visible;pointer-events:auto;animation:.25s ease-out styles-module__expandDown___eD4lh}.styles-module__optionsPanel___NWAp3.styles-module__closed___bez-q{visibility:hidden;pointer-events:none;animation:.25s ease-out styles-module__collapseUp___dt1E7}@keyframes styles-module__expandDown___eD4lh{0%{opacity:0;transform:scaleY(0)}to{opacity:1;transform:scaleY(1)}}@keyframes styles-module__collapseUp___dt1E7{0%{opacity:1;transform:scaleY(1)}to{opacity:0;transform:scaleY(0)}}.styles-module__optionsPanel___NWAp3.styles-module__primary___HU36a{border-color:var(--color-primary)}.styles-module__optionsPanel___NWAp3.styles-module__default___LedYP{border-color:var(--color-border-4)}.styles-module__optionsList___AxhVp{margin:0;padding:.5rem 0;list-style:none}.styles-module__option___t1SSw{cursor:pointer;color:var(--color-fg-text);justify-content:space-between;align-items:center;padding:.75rem 1.125rem;transition:all .15s;display:flex}.styles-module__option___t1SSw:hover{background-color:var(--color-bg-2)}.styles-module__option___t1SSw.styles-module__selected___azD4A{background-color:var(--color-primary);color:var(--color-primary-fg);font-weight:700}@media (prefers-color-scheme:dark){.styles-module__optionsPanel___NWAp3{box-shadow:0 .5rem 1rem #0000004d}}.styles-module__sliderContainer___lgpaD{flex-direction:column;gap:.5rem;display:flex}.styles-module__sliderContainer___lgpaD.styles-module__fullWidth___ZS8W5{width:100%}.styles-module__labelRow___dkVVM{justify-content:space-between;align-items:center;min-height:1.5rem;margin-bottom:.5rem;display:flex}.styles-module__label___bXGZs{color:var(--color-fg-text);font-size:.875rem;font-weight:500}.styles-module__required___FuyfE{color:var(--color-danger);margin-left:.25rem}.styles-module__sliderWrapper___1Wdti{touch-action:none;-webkit-user-select:none;user-select:none;justify-content:center;align-items:center;gap:.75rem;width:100%;display:flex}.styles-module__sliderRoot___yzOjR{cursor:grab;touch-action:none;-webkit-user-select:none;user-select:none;flex-grow:1;align-items:center;width:100%;padding:.75rem 0;display:flex;position:relative}.styles-module__sliderRoot___yzOjR:active{cursor:grabbing}.styles-module__sliderTrackWrapper___N72WQ{flex-grow:1;display:flex;position:relative}.styles-module__sliderTrack___AltcD{background-color:var(--color-bg-3);border-radius:9999px;width:100%;height:.375rem;position:relative;overflow:hidden}.styles-module__sliderRange___U3g0-{background-color:var(--color-primary);border-radius:9999px;height:100%;position:absolute}.styles-module__valueIndicator___aLf0I{color:var(--color-primary);text-align:center;flex-shrink:0;min-width:2rem;font-size:.875rem;font-weight:600;line-height:1}.styles-module__iconWrapper___wL-b8{flex-shrink:0;justify-content:center;align-items:center;display:flex}.styles-module__icon___vHsID{width:20px;height:20px;color:var(--color-fg-muted)}.styles-module__errorMessage___qFgGe{color:var(--color-danger);margin:0;font-size:.75rem}.styles-module__helperText___tgBGl{color:var(--color-fg-muted);margin:0;font-size:.75rem}.styles-module__loadingContainer___OMgwS{flex-direction:column;justify-content:center;align-items:center;gap:1.5rem;min-height:60vh;display:flex}.styles-module__loadingText___KRZqR{color:var(--color-fg-muted);font-size:1rem}.styles-module__errorContainer___qhAg2{text-align:center;min-height:60vh;color:var(--color-fg-text);flex-direction:column;justify-content:center;align-items:center;gap:2rem;padding:3rem 2rem;display:flex}.styles-module__errorIconWrapper___IHZrN{background:linear-gradient(135deg, rgba(var(--color-error-rgb,239, 68, 68), .1), rgba(var(--color-error-rgb,239, 68, 68), .05));border:2px solid rgba(var(--color-error-rgb,239, 68, 68), .2);border-radius:50%;justify-content:center;align-items:center;width:120px;height:120px;animation:2s ease-in-out infinite styles-module__pulse___Lju-z;display:flex}@keyframes styles-module__pulse___Lju-z{0%,to{opacity:1;transform:scale(1)}50%{opacity:.9;transform:scale(1.05)}}.styles-module__errorIcon___oGDIP{color:var(--color-error,#ef4444);stroke-width:1.5px}.styles-module__errorContent___F55rQ{flex-direction:column;align-items:center;gap:1rem;width:100%;max-width:600px;display:flex}.styles-module__errorTitle___hC8D-{color:var(--color-fg-heading);letter-spacing:-.02em;margin:0;font-size:1.75rem;font-weight:700;line-height:1.2}.styles-module__errorDescription___hZtuP{color:var(--color-fg-muted);max-width:480px;margin:0;font-size:1rem;line-height:1.6}.styles-module__errorDetailsWrapper___-sp8b{width:100%;max-width:600px;margin-top:.5rem}.styles-module__errorDetailsContainer___eywMo{text-align:left;border:1px solid var(--color-border,#0000001a);background:var(--color-bg-2,#00000005);border-radius:.75rem;width:100%;transition:all .2s;overflow:hidden}.styles-module__errorDetailsContainer___eywMo:hover{border-color:var(--color-border-hover,#00000026);background:var(--color-bg-3,#00000008)}.styles-module__errorDetailsSummary___hGEoD{cursor:pointer;color:var(--color-fg-muted);-webkit-user-select:none;user-select:none;padding:.875rem 1.25rem;font-size:.875rem;font-weight:500;list-style:none;transition:color .2s}.styles-module__errorDetailsSummary___hGEoD:hover{color:var(--color-fg-text)}.styles-module__errorDetailsSummary___hGEoD::-webkit-details-marker{display:none}.styles-module__errorDetailsSummary___hGEoD:before{content:"▶";margin-right:.5rem;font-size:.75rem;transition:transform .2s;display:inline-block}.styles-module__errorDetailsContainer___eywMo[open] .styles-module__errorDetailsSummary___hGEoD:before{transform:rotate(90deg)}.styles-module__errorDetails___tzCT-{background:var(--color-bg-3,#00000008);border-top:1px solid var(--color-border,#0000001a);max-width:100%;color:var(--color-fg-muted);white-space:pre-wrap;word-break:break-word;margin:0;padding:1rem 1.25rem;font-family:Monaco,Menlo,Ubuntu Mono,Consolas,source-code-pro,monospace;font-size:.8125rem;line-height:1.6;overflow-x:auto}.styles-module__errorActions___gtqYw{flex-wrap:wrap;justify-content:center;align-items:center;gap:.75rem;margin-top:1rem;display:flex}.styles-module__retryButton___TA4jm{background:var(--color-primary);color:var(--color-primary-fg);cursor:pointer;border:none;border-radius:.5rem;justify-content:center;align-items:center;gap:.5rem;padding:.75rem 2rem;font-size:.9375rem;font-weight:500;transition:all .2s;display:inline-flex;box-shadow:0 2px 8px #00000014}.styles-module__retryButton___TA4jm:hover{background:var(--color-primary-hover,var(--color-primary));transform:translateY(-2px);box-shadow:0 4px 16px #0000001f}.styles-module__retryButton___TA4jm:active{transform:translateY(0);box-shadow:0 2px 8px #00000014}.styles-module__retryButtonIcon___vzfp-{font-size:1.125rem;line-height:1;transition:transform .3s;display:inline-block}.styles-module__retryButton___TA4jm:hover .styles-module__retryButtonIcon___vzfp-{transform:rotate(180deg)}.styles-module__clearLocalDataButton___T3B-K{color:var(--color-fg-muted);border:1px solid var(--color-border-4);cursor:pointer;background:0 0;border-radius:.5rem;justify-content:center;align-items:center;padding:.75rem 1.5rem;font-size:.9375rem;font-weight:500;transition:all .2s;display:inline-flex}.styles-module__clearLocalDataButton___T3B-K:hover{color:var(--color-fg-text);border-color:var(--color-border-3);background:var(--color-bg-secondary)}.styles-module__wrapper___jXPV3{flex-direction:column;gap:.5rem;display:flex}.styles-module__wrapper___jXPV3.styles-module__fullWidth___eKyGB{width:100%}.styles-module__label___MyTeo{color:var(--color-fg-heading);align-items:center;gap:.25rem;font-size:.875rem;font-weight:500;display:flex}.styles-module__required___TV-m8{color:var(--color-danger)}.styles-module__inputContainer___VvGBl{align-items:flex-start;width:100%;display:flex;position:relative}.styles-module__textarea___AjX9N{border:1px solid var(--color-border-4);background:var(--color-bg);width:100%;color:var(--color-fg-text);resize:vertical;border-radius:.5rem;outline:none;min-height:4rem;font-family:inherit;font-size:.875rem;transition:all .2s}.styles-module__textarea___AjX9N:focus{border-color:var(--color-primary);box-shadow:0 0 0 3px rgba(var(--color-primary-rgb,102, 126, 234), .1)}.styles-module__textarea___AjX9N::placeholder{color:var(--color-fg-muted,var(--color-fg-text));opacity:.5}.styles-module__textarea___AjX9N.styles-module__small___zMx0G{min-height:3rem;padding:.5rem .75rem;font-size:.8125rem}.styles-module__textarea___AjX9N.styles-module__medium___tO2Lb{min-height:4rem;padding:.75rem;font-size:.875rem}.styles-module__textarea___AjX9N.styles-module__large___3eU2g{min-height:5rem;padding:1rem;font-size:1rem}.styles-module__textarea___AjX9N.styles-module__default___vsSxX{background:var(--color-bg);border-color:var(--color-border-4)}.styles-module__textarea___AjX9N.styles-module__filled___TPQgI{background:var(--color-bg-2);border-color:var(--color-border-3)}.styles-module__inputContainer___VvGBl .styles-module__leftIcon___FHp2R{color:var(--color-fg-muted,var(--color-fg-text));pointer-events:none;z-index:1;justify-content:center;align-items:center;display:flex;position:absolute;top:.75rem;left:.75rem}.styles-module__inputContainer___VvGBl .styles-module__rightIcon___dkyvP{color:var(--color-fg-muted,var(--color-fg-text));pointer-events:none;z-index:1;justify-content:center;align-items:center;display:flex;position:absolute;top:.75rem;right:.75rem}.styles-module__inputContainer___VvGBl .styles-module__textarea___AjX9N.styles-module__small___zMx0G+.styles-module__leftIcon___FHp2R,.styles-module__inputContainer___VvGBl .styles-module__textarea___AjX9N.styles-module__small___zMx0G+.styles-module__rightIcon___dkyvP{top:.5rem}.styles-module__inputContainer___VvGBl .styles-module__textarea___AjX9N.styles-module__large___3eU2g+.styles-module__leftIcon___FHp2R,.styles-module__inputContainer___VvGBl .styles-module__textarea___AjX9N.styles-module__large___3eU2g+.styles-module__rightIcon___dkyvP{top:1rem}.styles-module__textarea___AjX9N.styles-module__error___d8gLK{border-color:var(--color-danger)}.styles-module__textarea___AjX9N.styles-module__error___d8gLK:focus{border-color:var(--color-danger);box-shadow:0 0 0 3px rgba(var(--color-danger-rgb,244, 67, 54), .1)}.styles-module__textarea___AjX9N.styles-module__disabled___IzbfE{background:var(--color-bg-3);border-color:var(--color-border-5);color:var(--color-fg-muted);cursor:not-allowed;opacity:.6}.styles-module__errorText___Nom7x{color:var(--color-danger);margin:0;font-size:.75rem}.styles-module__helperText___97Def{color:var(--color-fg-muted);margin:0;font-size:.75rem}.styles-module__virtualList___pM6rN{contain:strict;width:100%;padding-bottom:300px;position:relative;overflow:auto}.styles-module__emptyContainer___rm938{height:100%;color:var(--color-fg-muted);justify-content:center;align-items:center;display:flex}.styles-module__virtualListInner___HxRzc{width:100%;position:relative}.styles-module__virtualListItems___p19-a{width:100%;position:absolute;top:0;left:0}.styles-module__loadingMore___zAdLM{color:var(--color-fg-muted);justify-content:center;align-items:center;gap:.75rem;padding:2rem 0;font-size:.875rem;display:flex}.styles-module__endOfList___5cYFh{color:var(--color-fg-muted);border-top:1px solid var(--color-border-3);justify-content:center;margin-top:1rem;padding:2rem 0;font-size:.875rem;display:flex}.styles-module__endOfList___5cYFh span{background-color:var(--color-bg-2);border-radius:.25rem;padding:.5rem 1rem}.styles-module__virtualList___xmj2v{width:100%;padding-bottom:300px;position:relative;overflow:visible}.styles-module__virtualListInner___quD74{width:100%;position:relative}.styles-module__virtualListItems___-Muml{width:100%;position:absolute;top:0;left:0}.styles-module__virtualListRow___h3pzX{width:100%}.styles-module__emptyContainer___LIy8r{color:var(--color-fg-muted);justify-content:center;align-items:center;padding:2rem 0;display:flex}.styles-module__loadingMore___Mzf-p{color:var(--color-fg-muted);justify-content:center;align-items:center;padding:1.5rem 0;display:flex}.styles-module__endOfList___g5G--{color:var(--color-fg-muted);border-top:1px solid var(--color-border-3);justify-content:center;padding:1.5rem 0;display:flex}.styles-module__sidebar___BMt0j{flex-direction:column;height:100%;min-height:0;display:flex;overflow:hidden}.styles-module__sidebarContent___iAwiw{flex-direction:column;height:100%;min-height:0;padding-top:1rem;display:flex;overflow:hidden}.styles-module__menuWrapper___DKuEv{flex:1;min-height:0;overflow:hidden auto}.styles-module__sidebarContent___iAwiw::-webkit-scrollbar{width:0}.styles-module__sidebarContent___iAwiw::-webkit-scrollbar-track{background:0 0}.styles-module__sidebarContent___iAwiw::-webkit-scrollbar-thumb{background:0 0}.styles-module__sidebarContent___iAwiw::-webkit-scrollbar-thumb:hover{background:0 0}.styles-module__sidebar___BMt0j a{margin-left:0}.styles-module__sidebar___BMt0j .ps-sidebar-root{background-color:var(--color-bg-2)!important;border-right:1px solid var(--color-separator)!important;flex-direction:column!important;height:100%!important;min-height:0!important;display:flex!important;overflow:hidden!important}.styles-module__sidebar___BMt0j .ps-sidebar-container{background-color:var(--color-bg-2)!important;height:100%!important;min-height:0!important;color:var(--color-fg-text)!important;flex-direction:column!important;flex:1!important;display:flex!important;overflow:hidden!important}.styles-module__sidebar___BMt0j .ps-menu-button{color:var(--color-fg-text)!important;border-radius:.375rem!important;margin:.125rem .5rem!important;padding:.5rem .75rem!important;font-size:.875rem!important;transition:all .2s!important}.styles-module__sidebar___BMt0j .ps-menu-button:hover{background-color:var(--color-bg-3)!important;color:var(--color-fg-text)!important}.styles-module__sidebar___BMt0j .ps-menu-button.ps-active{background-color:var(--color-primary)!important;color:#fff!important}.styles-module__sidebar___BMt0j .ps-menu-button.ps-active *,.styles-module__sidebar___BMt0j .ps-menu-button.ps-active .ps-menu-icon,.styles-module__sidebar___BMt0j .ps-menu-button.ps-active .ps-menu-label{color:#fff!important}.styles-module__sidebar___BMt0j .ps-menu-icon{width:1.25rem!important;height:1.25rem!important;color:var(--color-fg-text)!important;margin-right:.5rem!important}.styles-module__sidebar___BMt0j .ps-submenu-content{background-color:var(--color-bg-3)!important;padding-left:.5rem!important;overflow:hidden!important}.styles-module__sidebar___BMt0j .ps-submenu-content .ps-menu-button{margin:.125rem .25rem!important;padding:.375rem .5rem!important;font-size:.8125rem!important;transition:all .2s!important}.styles-module__sidebar___BMt0j .ps-menu-label{color:var(--color-fg-text)!important;font-weight:500!important}.styles-module__sidebar___BMt0j .ps-menu-button.ps-active,.styles-module__sidebar___BMt0j .ps-menu-button.ps-active span,.styles-module__sidebar___BMt0j .ps-menu-button.ps-active div,.styles-module__sidebar___BMt0j .ps-menu-button.ps-active .ps-menu-icon,.styles-module__sidebar___BMt0j .ps-menu-button.ps-active .ps-menu-label{color:#fff!important}.styles-module__logoutContainer___7NwBL{border-top:1px solid var(--color-separator);writing-mode:horizontal-tb;text-orientation:mixed;flex-shrink:0;margin-top:auto;padding:.5rem}.styles-module__logoutButton___rfD6u{width:100%;color:var(--color-fg-text);cursor:pointer;white-space:nowrap;writing-mode:horizontal-tb;text-orientation:mixed;direction:ltr;background:0 0;border:none;border-radius:.375rem;justify-content:flex-start;align-items:center;gap:.5rem;padding:.5rem .75rem;font-size:.875rem;transition:background-color .2s,color .2s;display:flex;overflow:hidden}.styles-module__logoutButton___rfD6u span{opacity:1;max-width:200px;transition:opacity .3s,max-width .3s;display:inline-block;writing-mode:horizontal-tb!important;text-orientation:mixed!important;direction:ltr!important;transform:none!important}.styles-module__logoutButton___rfD6u .styles-module__hiddenText___z183T{opacity:0;width:0;max-width:0;overflow:hidden}.styles-module__logoutButton___rfD6u .styles-module__visibleText___lfsv-{opacity:1;width:auto;max-width:200px}.styles-module__logoutButton___rfD6u:hover{background-color:var(--color-bg-3)}.styles-module__logoutButton___rfD6u:active{transform:scale(.98)}.styles-module__logoutButton___rfD6u svg{color:inherit;flex-shrink:0}.styles-module__footer___g-hY7{background:var(--color-bg-2);width:100%;padding:0 2rem}.styles-module__footerContent___Oen5n{justify-content:space-between;align-items:center;max-width:100%;margin:0 auto;display:flex}.styles-module__copyright___1R2o3{color:var(--color-fg-text);font-size:.875rem}.styles-module__links___dQyvB{gap:1.5rem;display:flex}.styles-module__link___UWfyK{color:var(--color-fg-text);font-size:.875rem;text-decoration:none;transition:color .3s}.styles-module__link___UWfyK:hover{color:var(--color-primary)}@media (width<=768px){.styles-module__footerContent___Oen5n{flex-direction:column;gap:1rem}.styles-module__links___dQyvB{gap:1rem}}.styles-module__header___4Uc8h{width:100%;padding:.5rem 2rem;display:flex}.styles-module__header___4Uc8h>:first-child{flex:1;justify-content:flex-start;align-items:center;display:flex}.styles-module__header___4Uc8h>:last-child{flex:1;justify-content:flex-end;align-items:center;display:flex}.styles-module__layout___ZQKU7{background:var(--color-bg);flex-direction:column;width:100%;height:100vh;display:flex;position:relative}.styles-module__header___XIaFb{z-index:100;background:var(--color-bg);width:100%;position:fixed;top:0;box-shadow:0 .125rem .25rem #2c33491a}.styles-module__footer___r8ASO{z-index:100;width:100%;position:fixed;bottom:0}.styles-module__mainWrapper___i4tEI{flex:1;display:flex;position:relative}.styles-module__sidebar___ij-8-{position:fixed;top:0}.styles-module__content___mTgUr{background:var(--color-bg);flex:1;min-height:calc(100vh - 10rem);margin:0;padding-top:0;padding-bottom:0;overflow:hidden auto}@media (width<=768px){.styles-module__content___mTgUr{width:100%}.styles-module__sidebar___ij-8-{z-index:999;height:100vh;position:fixed;top:0;left:0}}.styles-module__mainWrapper___AiTAw{flex-direction:row;flex:1;display:flex;position:relative}.styles-module__sidebarContainer___X4yj8{z-index:99;flex-direction:column;display:flex;position:fixed;left:0;overflow:hidden}.styles-module__sidebar___VQTlH{flex-shrink:0;top:0;left:0}.styles-module__content___htJlH{background:var(--color-bg);flex:1;margin:0;padding-top:0;padding-bottom:0;overflow:hidden auto}@media (width<=1024px){.styles-module__content___htJlH{padding:1.5rem}}@media (width<=768px){.styles-module__content___htJlH{width:100%}.styles-module__sidebar___VQTlH{z-index:999;height:100vh;position:fixed;top:0;left:0}}.styles-module__wavesWrapper___TK7DI{pointer-events:none;z-index:0;width:100vw;height:100vh;position:fixed;inset:0;overflow:hidden}.styles-module__wavesWrapper___TK7DI>*{pointer-events:auto}.styles-module__squaresWrapper___P25uF{pointer-events:none;z-index:0;width:100vw;height:100vh;position:fixed;inset:0;overflow:hidden}.styles-module__squaresWrapper___P25uF>*{pointer-events:auto}.styles-module__letterGlitchWrapper___KWtWU{pointer-events:none;z-index:0;width:100vw;height:100vh;position:fixed;inset:0;overflow:hidden}.styles-module__letterGlitchWrapper___KWtWU>*{pointer-events:auto}.styles-module__pixelBlastWrapper___YptHh{pointer-events:none;z-index:0;width:100vw;height:100vh;position:fixed;inset:0;overflow:hidden}.styles-module__pixelBlastWrapper___YptHh>*{pointer-events:auto}
1
+ (function(){try{if(typeof document<"u"){var e=document.createElement("style");e.appendChild(document.createTextNode(`.styles-module__loading___bgEAk{justify-content:center;align-items:center;display:inline-flex}.styles-module__loading___bgEAk svg polyline{fill:none;stroke-width:3px;stroke-linecap:round;stroke-linejoin:round}.styles-module__loading___bgEAk svg polyline.styles-module__back___XLPvD{fill:none;stroke:var(--color-primary-alpha,#ff4d5033)}.styles-module__loading___bgEAk svg polyline.styles-module__front___hSxig{fill:none;stroke:var(--color-primary,#ff4d4f);stroke-dasharray:48 144;stroke-dashoffset:192px;animation:1.4s linear infinite styles-module__dash_682___AQzo6}@keyframes styles-module__dash_682___AQzo6{72.5%{opacity:0}to{stroke-dashoffset:0}}.styles-module__loader___E7OIM{justify-content:center;align-items:center;width:fit-content;height:fit-content;display:flex}.styles-module__truckWrapper___Sk4zX{flex-direction:column;justify-content:flex-end;align-items:center;width:100%;height:100%;display:flex;position:relative;overflow-x:hidden}.styles-module__truckBody___j7w2C{width:65%;height:fit-content;margin-bottom:6px;animation:1s linear infinite styles-module__motion___IiNlW}@keyframes styles-module__motion___IiNlW{0%{transform:translateY(0)}50%{transform:translateY(3px)}to{transform:translateY(0)}}.styles-module__truckTires___4ncTl{justify-content:space-between;align-items:center;width:65%;height:fit-content;padding:0 10px 0 15px;display:flex;position:absolute;bottom:0}.styles-module__tiresvg___IBQcN{width:24px}.styles-module__road___sxx-E{background-color:var(--color-fg-heading);border-radius:3px;align-self:flex-end;width:100%;height:1.5px;position:relative;bottom:0}.styles-module__road___sxx-E:before{content:"";background-color:var(--color-fg-heading);border-left:10px solid var(--color-bg);border-radius:3px;width:20px;height:100%;animation:1.4s linear infinite styles-module__roadAnimation___yvrHP;position:absolute;right:-50%}.styles-module__road___sxx-E:after{content:"";background-color:var(--color-fg-heading);border-left:4px solid var(--color-bg);border-radius:3px;width:10px;height:100%;animation:1.4s linear infinite styles-module__roadAnimation___yvrHP;position:absolute;right:-65%}.styles-module__lampPost___okcN5{height:45%;animation:1.4s linear infinite styles-module__roadAnimation___yvrHP;position:absolute;bottom:0;right:-90%}@keyframes styles-module__roadAnimation___yvrHP{0%{transform:translate(0)}to{transform:translate(-350px)}}.styles-module__loader___pFUzL{justify-content:center;align-items:center;display:inline-flex;position:relative}.styles-module__loader___pFUzL:before{content:"";background:var(--color-primary);opacity:.3;border-radius:50%;width:100%;height:5px;animation:.5s linear infinite styles-module__shadow324___sutUe;position:absolute;top:calc(100% + 12px);left:0}.styles-module__loader___pFUzL:after{content:"";background:var(--color-primary);width:100%;height:100%;position:absolute;top:0;left:0}.styles-module__square___GKjhm:after{border-radius:4px;animation:.5s linear infinite styles-module__jump7456Square___Z-D9b}.styles-module__circle___bUpSN:after{border-radius:50%;animation:.5s linear infinite styles-module__jump7456Circle___2AfF7}@keyframes styles-module__jump7456Square___Z-D9b{15%{border-bottom-right-radius:3px}25%{transform:translateY(9px)rotate(22.5deg)}50%{border-bottom-right-radius:40px;transform:translateY(18px)scaleY(.9)rotate(45deg)}75%{transform:translateY(9px)rotate(67.5deg)}to{transform:translateY(0)rotate(90deg)}}@keyframes styles-module__jump7456Circle___2AfF7{15%{border-bottom-right-radius:50%}25%{transform:translateY(9px)rotate(22.5deg)}50%{border-bottom-right-radius:40px;transform:translateY(18px)scaleY(.9)rotate(45deg)}75%{transform:translateY(9px)rotate(67.5deg)}to{transform:translateY(0)rotate(90deg)}}@keyframes styles-module__shadow324___sutUe{0%,to{transform:scale(1)}50%{transform:scaleX(1.2)}}.style-module__waves___oR3u7{width:100%;height:100%;margin:0;padding:0;position:absolute;top:0;left:0;overflow:hidden}.style-module__waves___oR3u7:before{content:"";width:.5rem;height:.5rem;transform:translate3d(calc(var(--x) - 50%), calc(var(--y) - 50%), 0);will-change:transform;background:#160000;border-radius:50%;position:absolute;top:0;left:0}.style-module__wavesCanvas___zkhTC{width:100%;height:100%;display:block}.style-module__squaresCanvas___22kMc{border:none;width:100%;height:100%;display:block}.style-module__container___HkxIe{background-color:#000;width:100%;height:100%;position:relative;overflow:hidden}.style-module__canvas___MR9JX{width:100%;height:100%;display:block}.style-module__outerVignette___i75nw{pointer-events:none;background:radial-gradient(circle,#0000 60%,#000 100%);width:100%;height:100%;position:absolute;top:0;left:0}.style-module__centerVignette___n9uVG{pointer-events:none;background:radial-gradient(circle,#000c 0%,#0000 60%);width:100%;height:100%;position:absolute;top:0;left:0}.styles-module__button___RbliA{cursor:pointer;border:1px solid #0000;border-radius:.5rem;outline:none;justify-content:center;align-items:center;gap:.5rem;font-family:inherit;font-weight:500;transition:all .2s;display:inline-flex;position:relative}.styles-module__button___RbliA:focus-visible{outline:2px solid var(--color-primary);outline-offset:2px}.styles-module__button___RbliA:disabled{cursor:not-allowed;opacity:.6}.styles-module__button___RbliA.styles-module__small___yK0Yp{min-height:2rem;padding:.5rem 1rem;font-size:.8125rem}.styles-module__button___RbliA.styles-module__medium___eBTch{min-height:2.5rem;padding:.75rem 1.5rem;font-size:.875rem}.styles-module__button___RbliA.styles-module__large___pIZkl{min-height:3rem;padding:1rem 2rem;font-size:1rem}.styles-module__button___RbliA.styles-module__primary___qsZpA{background:var(--color-primary);border-color:var(--color-primary);color:var(--color-primary-fg,#fff)}.styles-module__button___RbliA.styles-module__primary___qsZpA:hover:not(:disabled){background:var(--color-primary-light);border-color:var(--color-primary-light);transform:translateY(-1px)}.styles-module__button___RbliA.styles-module__primary___qsZpA:active:not(:disabled){transform:translateY(0)}.styles-module__button___RbliA.styles-module__secondary___SCpPv{background:var(--color-bg-2);border-color:var(--color-border-4);color:var(--color-fg-text)}.styles-module__button___RbliA.styles-module__secondary___SCpPv:hover:not(:disabled){background:var(--color-bg-3);border-color:var(--color-primary)}.styles-module__button___RbliA.styles-module__outline___rrlk9{border-color:var(--color-border-4);color:var(--color-fg-text);background:0 0}.styles-module__button___RbliA.styles-module__outline___rrlk9:hover:not(:disabled){background:var(--color-bg-2);border-color:var(--color-primary)}.styles-module__button___RbliA.styles-module__ghost___QMoiH{color:var(--color-fg-text);background:0 0;border-color:#0000}.styles-module__button___RbliA.styles-module__ghost___QMoiH:hover:not(:disabled){background:var(--color-bg-2)}.styles-module__button___RbliA.styles-module__danger___MW-pg{background:var(--color-danger);border-color:var(--color-danger);color:#fff}.styles-module__button___RbliA.styles-module__danger___MW-pg:hover:not(:disabled){background:var(--color-danger-light);border-color:var(--color-danger-light);transform:translateY(-1px)}.styles-module__button___RbliA.styles-module__danger___MW-pg:active:not(:disabled){transform:translateY(0)}.styles-module__button___RbliA.styles-module__fullWidth___-dXBR{width:100%}.styles-module__button___RbliA.styles-module__loading___UWw6V{pointer-events:none}.styles-module__spinner___KpJ-L{border:2px solid;border-top-color:#0000;border-radius:50%;flex-shrink:0;width:1rem;height:1rem;animation:.6s linear infinite styles-module__spin___ntZKM}@keyframes styles-module__spin___ntZKM{to{transform:rotate(360deg)}}.styles-module__button___RbliA.styles-module__small___yK0Yp .styles-module__spinner___KpJ-L{border-width:1.5px;width:.875rem;height:.875rem}.styles-module__button___RbliA.styles-module__large___pIZkl .styles-module__spinner___KpJ-L{border-width:2.5px;width:1.25rem;height:1.25rem}.styles-module__content___oyZRO{align-items:center;display:flex}.styles-module__leftIcon___cDktv,.styles-module__rightIcon___1mpk0{flex-shrink:0;align-items:center;display:flex}.styles-module__leftIcon___cDktv{margin-right:-.25rem}.styles-module__rightIcon___1mpk0{margin-left:-.25rem}.styles-module__button___RbliA.styles-module__iconOnly___iOv-U{aspect-ratio:1;min-width:2.5rem;min-height:2.5rem;padding:0}.styles-module__button___RbliA.styles-module__iconOnly___iOv-U.styles-module__small___yK0Yp{min-width:2rem;min-height:2rem}.styles-module__button___RbliA.styles-module__iconOnly___iOv-U.styles-module__large___pIZkl{min-width:3rem;min-height:3rem}.styles-module__iconContainer___bwvE3{justify-content:center;align-items:center;width:100%;height:100%;display:flex}.styles-module__layout___WaGy9{flex-direction:column;justify-content:center;align-items:center;gap:.25rem;width:100%;display:flex}.styles-module__horizontal___lKpGq{justify-content:center;align-items:center;gap:.5rem;width:100%;display:flex}.styles-module__topIcon___bzw6s,.styles-module__bottomIcon___suPfa{flex-shrink:0;justify-content:center;align-items:center;display:flex}.styles-module__iconOnly___iOv-U .styles-module__iconContainer___bwvE3 .styles-module__leftIcon___cDktv,.styles-module__iconOnly___iOv-U .styles-module__iconContainer___bwvE3 .styles-module__rightIcon___1mpk0{margin:0}.Dropdown-module__dropdown___c9wIp{width:100%;display:inline-block;position:relative}.Dropdown-module__dropdownButton___suNh-{border:1px solid var(--color-separator);cursor:pointer;text-align:left;background:var(--color-bg-2);width:100%;color:var(--color-fg-text);border-radius:8px;outline:none;justify-content:space-between;align-items:center;padding:.75rem 2.5rem .75rem 1rem;font-family:inherit;font-size:1rem;font-weight:400;line-height:1.5rem;transition:all .2s ease-in-out;display:flex;position:relative}.Dropdown-module__dropdownButton___suNh-:hover:not(:disabled){border-color:var(--color-primary);background:var(--color-bg-1)}.Dropdown-module__dropdownButton___suNh-:focus{border-color:var(--color-primary);background:var(--color-bg-1);box-shadow:0 0 0 2px var(--color-primary-transparent)}.Dropdown-module__dropdownButton___suNh-.Dropdown-module__disabled___Rz0pX{cursor:not-allowed;opacity:.6;background:var(--color-bg-3)}.Dropdown-module__dropdownButton___suNh-.Dropdown-module__error___F7dDu{border-color:#ef4444}.Dropdown-module__buttonText___D2zxn{text-overflow:ellipsis;white-space:nowrap;flex:1;overflow:hidden}.Dropdown-module__chevronIcon___uyawp{color:var(--color-fg-highlight);flex-shrink:0;transition:transform .15s;position:absolute;right:1rem}.Dropdown-module__chevronIcon___uyawp.Dropdown-module__open___APoXd{transform:rotate(180deg)}.Dropdown-module__dropdownMenu___WJ-QO{background:var(--color-bg);border:1px solid var(--color-border-4);z-index:1000;border-radius:8px;min-width:100%;animation:.15s ease-out Dropdown-module__slideDown___sRCmO;position:absolute;top:calc(100% + .5rem);left:0;right:0;overflow:hidden;box-shadow:0 .5rem 1rem #0000002d}@keyframes Dropdown-module__slideDown___sRCmO{0%{opacity:0;transform:translateY(-.5rem)}to{opacity:1;transform:translateY(0)}}.Dropdown-module__optionsList___Be6RN{margin:0;padding:.5rem 0;list-style:none}.Dropdown-module__option___q-NgT{cursor:pointer;color:var(--color-fg-text);align-items:center;padding:.75rem 1rem;font-size:.875rem;transition:all .15s;display:flex}.Dropdown-module__option___q-NgT:hover{background-color:var(--color-bg-2)}.Dropdown-module__option___q-NgT.Dropdown-module__selected___-OTW-{background-color:var(--color-bg-3);color:var(--color-fg-highlight);font-weight:600}@media (width<=768px){.Dropdown-module__dropdownButton___suNh-{padding:.625rem 2.25rem .625rem .875rem;font-size:.875rem}.Dropdown-module__chevronIcon___uyawp{right:.875rem}.Dropdown-module__option___q-NgT{padding:.625rem .875rem;font-size:.8125rem}}.styles-module__wrapper___COeGm{flex-direction:column;gap:.5rem;display:flex}.styles-module__wrapper___COeGm.styles-module__fullWidth___lVU49{width:100%}.styles-module__label___gfOA7{color:var(--color-fg-heading);align-items:center;gap:.25rem;font-size:.875rem;font-weight:500;display:flex}.styles-module__required___-zOy5{color:var(--color-danger)}.styles-module__inputContainer___wXY53{align-items:center;width:100%;display:flex;position:relative}.styles-module__input___IZDc3{border:1px solid var(--color-border-4);background:var(--color-bg);width:100%;color:var(--color-fg-text);border-radius:.5rem;outline:none;font-family:inherit;font-size:.875rem;transition:all .2s}.styles-module__input___IZDc3[type=password]::-webkit-credentials-auto-fill-button{visibility:hidden!important;opacity:0!important;pointer-events:none!important;appearance:none!important;display:none!important;position:absolute!important;left:-9999px!important}.styles-module__input___IZDc3[type=password]::-webkit-strong-password-toggle-button{visibility:hidden!important;opacity:0!important;pointer-events:none!important;appearance:none!important;width:0!important;height:0!important;margin:0!important;padding:0!important;display:none!important;position:absolute!important;left:-9999px!important}.styles-module__input___IZDc3[type=password]::-ms-reveal{visibility:hidden!important;opacity:0!important;pointer-events:none!important;width:0!important;height:0!important;display:none!important;position:absolute!important;left:-9999px!important}.styles-module__input___IZDc3[type=password]::-ms-clear{visibility:hidden!important;opacity:0!important;pointer-events:none!important;width:0!important;height:0!important;display:none!important;position:absolute!important;left:-9999px!important}.styles-module__input___IZDc3:focus{border-color:var(--color-primary);box-shadow:0 0 0 3px rgba(var(--color-primary-rgb,102, 126, 234), .1)}.styles-module__input___IZDc3::placeholder{color:var(--color-fg-muted,var(--color-fg-text));opacity:.5}.styles-module__input___IZDc3.styles-module__small___cuGyE{padding:.5rem .75rem;font-size:.8125rem}.styles-module__input___IZDc3.styles-module__medium___JdDPu{padding:.75rem;font-size:.875rem}.styles-module__input___IZDc3.styles-module__large___fMmiG{padding:1rem;font-size:1rem}.styles-module__input___IZDc3.styles-module__default___-eZTG{background:var(--color-bg);border-color:var(--color-border-4)}.styles-module__input___IZDc3.styles-module__filled___EQ5PQ{background:var(--color-bg-2);border-color:var(--color-border-3)}.styles-module__inputContainer___wXY53.styles-module__withLeftIcon___NFn6- .styles-module__input___IZDc3{padding-left:2.5rem}.styles-module__inputContainer___wXY53.styles-module__withRightIcon___mz-hn .styles-module__input___IZDc3{padding-right:2.5rem}.styles-module__inputContainer___wXY53.styles-module__withLeftIcon___NFn6- .styles-module__input___IZDc3.styles-module__small___cuGyE{padding-left:2rem}.styles-module__inputContainer___wXY53.styles-module__withRightIcon___mz-hn .styles-module__input___IZDc3.styles-module__small___cuGyE{padding-right:2rem}.styles-module__inputContainer___wXY53.styles-module__withLeftIcon___NFn6- .styles-module__input___IZDc3.styles-module__large___fMmiG{padding-left:3rem}.styles-module__inputContainer___wXY53.styles-module__withRightIcon___mz-hn .styles-module__input___IZDc3.styles-module__large___fMmiG{padding-right:3rem}.styles-module__leftIcon___jEW5H,.styles-module__rightIcon___bA3Eo{color:var(--color-fg-muted,var(--color-fg-text));pointer-events:none;z-index:1;justify-content:center;align-items:center;display:flex;position:absolute}.styles-module__leftIcon___jEW5H{left:.75rem}.styles-module__rightIcon___bA3Eo{right:.75rem}.styles-module__rightIcon___bA3Eo.styles-module__rightIconInteractive___ccypw{pointer-events:auto}.styles-module__inputContainer___wXY53.styles-module__containerSmall___20ICq .styles-module__leftIcon___jEW5H{left:.5rem}.styles-module__inputContainer___wXY53.styles-module__containerSmall___20ICq .styles-module__rightIcon___bA3Eo{right:.5rem}.styles-module__inputContainer___wXY53.styles-module__containerLarge___IztuN .styles-module__leftIcon___jEW5H{left:1rem}.styles-module__inputContainer___wXY53.styles-module__containerLarge___IztuN .styles-module__rightIcon___bA3Eo{right:1rem}.styles-module__input___IZDc3.styles-module__error___946qV{border-color:var(--color-danger)}.styles-module__input___IZDc3.styles-module__error___946qV:focus{border-color:var(--color-danger);box-shadow:0 0 0 3px rgba(var(--color-danger-rgb,244, 67, 54), .1)}.styles-module__input___IZDc3.styles-module__disabled___sJvLd{background:var(--color-bg-3);border-color:var(--color-border-5);color:var(--color-fg-muted);cursor:not-allowed;opacity:.6}.styles-module__errorMessage___5Mn22{color:var(--color-danger);margin:0;font-size:.75rem}.styles-module__helperText___T2eui{color:var(--color-fg-muted);margin:0;font-size:.75rem}.styles-module__container___xeg8O{flex-direction:column;gap:1rem;display:flex}.styles-module__label___qhbKe{color:var(--color-fg-text);font-size:.875rem;font-weight:500}.styles-module__error___O-7AY{color:var(--color-error);font-size:.875rem}.styles-module__pairs___owGV3{flex-direction:column;gap:.75rem;display:flex}.styles-module__pair___G4WFY{grid-template-columns:1fr 2fr auto;align-items:start;gap:.75rem;display:grid}.styles-module__keyInput___wl1M1,.styles-module__valueInput___HiwJ5{flex:1}.styles-module__removeButton___4-X0b{min-width:auto;color:var(--color-error);padding:.5rem}.styles-module__removeButton___4-X0b:hover{background-color:var(--color-error);color:#fff}.styles-module__addButton___QFljt{align-self:flex-start}@media (width<=768px){.styles-module__pair___G4WFY{grid-template-columns:1fr}.styles-module__removeButton___4-X0b{align-self:flex-end}}.styles-module__searchContainer___86TGN{width:100%;max-width:400px;position:relative}.styles-module__searchIcon___ZInry{color:var(--color-fg-muted);pointer-events:none;position:absolute;top:50%;left:1rem;transform:translateY(-50%)}.styles-module__searchInput___SqZXQ{border:1px solid var(--color-border);width:100%;color:var(--color-fg-text);background:var(--color-bg-2);border-radius:.5rem;padding:.75rem 3rem;font-size:1rem;transition:all .2s}.styles-module__searchInput___SqZXQ:focus{border-color:var(--color-primary);box-shadow:0 0 0 3px var(--color-primary-bg);outline:none}.styles-module__searchInput___SqZXQ::placeholder{color:var(--color-fg-muted)}.styles-module__clearBtn___7jExr{width:1.5rem;height:1.5rem;color:var(--color-fg-muted);cursor:pointer;background:0 0;border:none;justify-content:center;align-items:center;padding:0;transition:all .2s;display:flex;position:absolute;top:50%;right:.75rem;transform:translateY(-50%)}.styles-module__clearBtn___7jExr:hover{color:var(--color-fg-text)}@media (width<=768px){.styles-module__searchContainer___86TGN{max-width:100%}}.styles-module__container___nGxdM{flex-direction:column;gap:.75rem;display:flex}.styles-module__toggleContainer___VrsKI{align-items:center;display:flex}.styles-module__toggleButton___IzD6Z{border:1px solid var(--color-border-4);background:var(--color-bg);color:var(--color-fg-muted);cursor:pointer;border-radius:.5rem;align-items:center;gap:.5rem;padding:.5rem 1rem;font-size:.875rem;transition:all .2s;display:flex}.styles-module__toggleButton___IzD6Z:hover{background:var(--color-bg-2);border-color:var(--color-border-3)}.styles-module__toggleButton___IzD6Z.styles-module__enabled___cao0G{background:var(--color-primary);color:#fff;border-color:var(--color-primary)}.styles-module__toggleButton___IzD6Z.styles-module__enabled___cao0G:hover{background:var(--color-primary-hover);border-color:var(--color-primary-hover)}.styles-module__optionsContainer___LOzlO{background:var(--color-bg-2);border:1px solid var(--color-border-4);border-radius:.5rem;gap:.5rem;padding:.5rem;display:flex}.styles-module__option___abhnC{border:1px solid var(--color-border-4);background:var(--color-bg);color:var(--color-fg);cursor:pointer;border-radius:.375rem;flex:1;justify-content:center;align-items:center;gap:.375rem;padding:.5rem .875rem;font-size:.875rem;font-weight:500;transition:all .2s;display:flex}.styles-module__option___abhnC:hover{background:var(--color-bg-3);border-color:var(--color-border-3)}.styles-module__option___abhnC.styles-module__active___pqmSi{background:var(--color-primary);color:#fff;border-color:var(--color-primary)}.styles-module__option___abhnC.styles-module__active___pqmSi:hover{background:var(--color-primary-hover);border-color:var(--color-primary-hover)}.styles-module__nbSelect___KjxSc{font-family:inherit;font-size:.9375rem;font-weight:600;line-height:1.5rem;display:inline-block;position:relative}.styles-module__selectButton___AKZe4{cursor:pointer;text-align:left;width:100%;min-width:8rem;font-family:inherit;font-size:inherit;font-weight:inherit;line-height:inherit;appearance:none;border:1px solid;border-radius:.25rem;outline:none;justify-content:space-between;align-items:center;padding:.4375rem 2.2rem .4375rem 1.125rem;transition:all .15s ease-in-out;display:flex;position:relative}.styles-module__selectButton___AKZe4.styles-module__primary___HU36a{background-color:var(--color-primary);border-color:var(--color-primary);color:var(--color-primary-fg)}.styles-module__selectButton___AKZe4.styles-module__primary___HU36a:hover:not(:disabled){background-color:var(--color-primary-light);border-color:var(--color-primary-light)}.styles-module__selectButton___AKZe4.styles-module__primary___HU36a:focus,.styles-module__selectButton___AKZe4.styles-module__primary___HU36a.styles-module__open___9AKMb{background-color:var(--color-primary-light);border-color:var(--color-primary-light);box-shadow:0 0 0 .125rem #8f9bb340}.styles-module__selectButton___AKZe4.styles-module__default___LedYP{background-color:var(--color-bg);border-color:var(--color-border-4);color:var(--color-fg-text)}.styles-module__selectButton___AKZe4.styles-module__default___LedYP:hover:not(:disabled){background-color:var(--color-bg-2);border-color:var(--color-primary)}.styles-module__selectButton___AKZe4.styles-module__default___LedYP:focus,.styles-module__selectButton___AKZe4.styles-module__default___LedYP.styles-module__open___9AKMb{background-color:var(--color-bg-2);border-color:var(--color-primary);box-shadow:0 0 0 .125rem #8f9bb340}.styles-module__selectButton___AKZe4:disabled{cursor:not-allowed;opacity:.6}.styles-module__buttonText___QSLO1{text-overflow:ellipsis;white-space:nowrap;flex:1;overflow:hidden}.styles-module__chevronIcon___qAHaD{flex-shrink:0;width:1.5rem;height:1.5rem;transition:transform .15s;position:absolute;right:.41rem}.styles-module__selectButton___AKZe4.styles-module__primary___HU36a .styles-module__chevronIcon___qAHaD{color:var(--color-primary-fg)}.styles-module__selectButton___AKZe4.styles-module__default___LedYP .styles-module__chevronIcon___qAHaD{color:var(--color-fg)}.styles-module__chevronIcon___qAHaD.styles-module__open___9AKMb{transform:rotate(180deg)}.styles-module__optionsPanel___NWAp3{background-color:var(--color-bg);border:1px solid var(--color-border-4);z-index:1000;transform-origin:top;visibility:hidden;pointer-events:none;border-radius:.25rem;min-width:100%;position:absolute;top:calc(100% + .5rem);left:0;right:0;overflow:hidden;box-shadow:0 .5rem 1rem #00000026}.styles-module__optionsPanel___NWAp3.styles-module__open___9AKMb{visibility:visible;pointer-events:auto;animation:.25s ease-out styles-module__expandDown___eD4lh}.styles-module__optionsPanel___NWAp3.styles-module__closed___bez-q{visibility:hidden;pointer-events:none;animation:.25s ease-out styles-module__collapseUp___dt1E7}@keyframes styles-module__expandDown___eD4lh{0%{opacity:0;transform:scaleY(0)}to{opacity:1;transform:scaleY(1)}}@keyframes styles-module__collapseUp___dt1E7{0%{opacity:1;transform:scaleY(1)}to{opacity:0;transform:scaleY(0)}}.styles-module__optionsPanel___NWAp3.styles-module__primary___HU36a{border-color:var(--color-primary)}.styles-module__optionsPanel___NWAp3.styles-module__default___LedYP{border-color:var(--color-border-4)}.styles-module__optionsList___AxhVp{margin:0;padding:.5rem 0;list-style:none}.styles-module__option___t1SSw{cursor:pointer;color:var(--color-fg-text);justify-content:space-between;align-items:center;padding:.75rem 1.125rem;transition:all .15s;display:flex}.styles-module__option___t1SSw:hover{background-color:var(--color-bg-2)}.styles-module__option___t1SSw.styles-module__selected___azD4A{background-color:var(--color-primary);color:var(--color-primary-fg);font-weight:700}@media (prefers-color-scheme:dark){.styles-module__optionsPanel___NWAp3{box-shadow:0 .5rem 1rem #0000004d}}.styles-module__sliderContainer___lgpaD{flex-direction:column;gap:.5rem;display:flex}.styles-module__sliderContainer___lgpaD.styles-module__fullWidth___ZS8W5{width:100%}.styles-module__labelRow___dkVVM{justify-content:space-between;align-items:center;min-height:1.5rem;margin-bottom:.5rem;display:flex}.styles-module__label___bXGZs{color:var(--color-fg-text);font-size:.875rem;font-weight:500}.styles-module__required___FuyfE{color:var(--color-danger);margin-left:.25rem}.styles-module__sliderWrapper___1Wdti{touch-action:none;-webkit-user-select:none;user-select:none;justify-content:center;align-items:center;gap:.75rem;width:100%;display:flex}.styles-module__sliderRoot___yzOjR{cursor:grab;touch-action:none;-webkit-user-select:none;user-select:none;flex-grow:1;align-items:center;width:100%;padding:.75rem 0;display:flex;position:relative}.styles-module__sliderRoot___yzOjR:active{cursor:grabbing}.styles-module__sliderTrackWrapper___N72WQ{flex-grow:1;display:flex;position:relative}.styles-module__sliderTrack___AltcD{background-color:var(--color-bg-3);border-radius:9999px;width:100%;height:.375rem;position:relative;overflow:hidden}.styles-module__sliderRange___U3g0-{background-color:var(--color-primary);border-radius:9999px;height:100%;position:absolute}.styles-module__valueIndicator___aLf0I{color:var(--color-primary);text-align:center;flex-shrink:0;min-width:2rem;font-size:.875rem;font-weight:600;line-height:1}.styles-module__iconWrapper___wL-b8{flex-shrink:0;justify-content:center;align-items:center;display:flex}.styles-module__icon___vHsID{width:20px;height:20px;color:var(--color-fg-muted)}.styles-module__errorMessage___qFgGe{color:var(--color-danger);margin:0;font-size:.75rem}.styles-module__helperText___tgBGl{color:var(--color-fg-muted);margin:0;font-size:.75rem}.styles-module__loadingContainer___OMgwS{flex-direction:column;justify-content:center;align-items:center;gap:1.5rem;min-height:60vh;display:flex}.styles-module__loadingText___KRZqR{color:var(--color-fg-muted);font-size:1rem}.styles-module__errorContainer___qhAg2{text-align:center;min-height:60vh;color:var(--color-fg-text);flex-direction:column;justify-content:center;align-items:center;gap:2rem;padding:3rem 2rem;display:flex}.styles-module__errorIconWrapper___IHZrN{background:linear-gradient(135deg, rgba(var(--color-error-rgb,239, 68, 68), .1), rgba(var(--color-error-rgb,239, 68, 68), .05));border:2px solid rgba(var(--color-error-rgb,239, 68, 68), .2);border-radius:50%;justify-content:center;align-items:center;width:120px;height:120px;animation:2s ease-in-out infinite styles-module__pulse___Lju-z;display:flex}@keyframes styles-module__pulse___Lju-z{0%,to{opacity:1;transform:scale(1)}50%{opacity:.9;transform:scale(1.05)}}.styles-module__errorIcon___oGDIP{color:var(--color-error,#ef4444);stroke-width:1.5px}.styles-module__errorContent___F55rQ{flex-direction:column;align-items:center;gap:1rem;width:100%;max-width:600px;display:flex}.styles-module__errorTitle___hC8D-{color:var(--color-fg-heading);letter-spacing:-.02em;margin:0;font-size:1.75rem;font-weight:700;line-height:1.2}.styles-module__errorDescription___hZtuP{color:var(--color-fg-muted);max-width:480px;margin:0;font-size:1rem;line-height:1.6}.styles-module__errorDetailsWrapper___-sp8b{width:100%;max-width:600px;margin-top:.5rem}.styles-module__errorDetailsContainer___eywMo{text-align:left;border:1px solid var(--color-border,#0000001a);background:var(--color-bg-2,#00000005);border-radius:.75rem;width:100%;transition:all .2s;overflow:hidden}.styles-module__errorDetailsContainer___eywMo:hover{border-color:var(--color-border-hover,#00000026);background:var(--color-bg-3,#00000008)}.styles-module__errorDetailsSummary___hGEoD{cursor:pointer;color:var(--color-fg-muted);-webkit-user-select:none;user-select:none;padding:.875rem 1.25rem;font-size:.875rem;font-weight:500;list-style:none;transition:color .2s}.styles-module__errorDetailsSummary___hGEoD:hover{color:var(--color-fg-text)}.styles-module__errorDetailsSummary___hGEoD::-webkit-details-marker{display:none}.styles-module__errorDetailsSummary___hGEoD:before{content:"▶";margin-right:.5rem;font-size:.75rem;transition:transform .2s;display:inline-block}.styles-module__errorDetailsContainer___eywMo[open] .styles-module__errorDetailsSummary___hGEoD:before{transform:rotate(90deg)}.styles-module__errorDetails___tzCT-{background:var(--color-bg-3,#00000008);border-top:1px solid var(--color-border,#0000001a);max-width:100%;color:var(--color-fg-muted);white-space:pre-wrap;word-break:break-word;margin:0;padding:1rem 1.25rem;font-family:Monaco,Menlo,Ubuntu Mono,Consolas,source-code-pro,monospace;font-size:.8125rem;line-height:1.6;overflow-x:auto}.styles-module__errorActions___gtqYw{flex-wrap:wrap;justify-content:center;align-items:center;gap:.75rem;margin-top:1rem;display:flex}.styles-module__retryButton___TA4jm{background:var(--color-primary);color:var(--color-primary-fg);cursor:pointer;border:none;border-radius:.5rem;justify-content:center;align-items:center;gap:.5rem;padding:.75rem 2rem;font-size:.9375rem;font-weight:500;transition:all .2s;display:inline-flex;box-shadow:0 2px 8px #00000014}.styles-module__retryButton___TA4jm:hover{background:var(--color-primary-hover,var(--color-primary));transform:translateY(-2px);box-shadow:0 4px 16px #0000001f}.styles-module__retryButton___TA4jm:active{transform:translateY(0);box-shadow:0 2px 8px #00000014}.styles-module__retryButtonIcon___vzfp-{font-size:1.125rem;line-height:1;transition:transform .3s;display:inline-block}.styles-module__retryButton___TA4jm:hover .styles-module__retryButtonIcon___vzfp-{transform:rotate(180deg)}.styles-module__clearLocalDataButton___T3B-K{color:var(--color-fg-muted);border:1px solid var(--color-border-4);cursor:pointer;background:0 0;border-radius:.5rem;justify-content:center;align-items:center;padding:.75rem 1.5rem;font-size:.9375rem;font-weight:500;transition:all .2s;display:inline-flex}.styles-module__clearLocalDataButton___T3B-K:hover{color:var(--color-fg-text);border-color:var(--color-border-3);background:var(--color-bg-secondary)}.styles-module__wrapper___jXPV3{flex-direction:column;gap:.5rem;display:flex}.styles-module__wrapper___jXPV3.styles-module__fullWidth___eKyGB{width:100%}.styles-module__label___MyTeo{color:var(--color-fg-heading);align-items:center;gap:.25rem;font-size:.875rem;font-weight:500;display:flex}.styles-module__required___TV-m8{color:var(--color-danger)}.styles-module__inputContainer___VvGBl{align-items:flex-start;width:100%;display:flex;position:relative}.styles-module__textarea___AjX9N{border:1px solid var(--color-border-4);background:var(--color-bg);width:100%;color:var(--color-fg-text);resize:vertical;border-radius:.5rem;outline:none;min-height:4rem;font-family:inherit;font-size:.875rem;transition:all .2s}.styles-module__textarea___AjX9N:focus{border-color:var(--color-primary);box-shadow:0 0 0 3px rgba(var(--color-primary-rgb,102, 126, 234), .1)}.styles-module__textarea___AjX9N::placeholder{color:var(--color-fg-muted,var(--color-fg-text));opacity:.5}.styles-module__textarea___AjX9N.styles-module__small___zMx0G{min-height:3rem;padding:.5rem .75rem;font-size:.8125rem}.styles-module__textarea___AjX9N.styles-module__medium___tO2Lb{min-height:4rem;padding:.75rem;font-size:.875rem}.styles-module__textarea___AjX9N.styles-module__large___3eU2g{min-height:5rem;padding:1rem;font-size:1rem}.styles-module__textarea___AjX9N.styles-module__default___vsSxX{background:var(--color-bg);border-color:var(--color-border-4)}.styles-module__textarea___AjX9N.styles-module__filled___TPQgI{background:var(--color-bg-2);border-color:var(--color-border-3)}.styles-module__inputContainer___VvGBl .styles-module__leftIcon___FHp2R{color:var(--color-fg-muted,var(--color-fg-text));pointer-events:none;z-index:1;justify-content:center;align-items:center;display:flex;position:absolute;top:.75rem;left:.75rem}.styles-module__inputContainer___VvGBl .styles-module__rightIcon___dkyvP{color:var(--color-fg-muted,var(--color-fg-text));pointer-events:none;z-index:1;justify-content:center;align-items:center;display:flex;position:absolute;top:.75rem;right:.75rem}.styles-module__inputContainer___VvGBl .styles-module__textarea___AjX9N.styles-module__small___zMx0G+.styles-module__leftIcon___FHp2R,.styles-module__inputContainer___VvGBl .styles-module__textarea___AjX9N.styles-module__small___zMx0G+.styles-module__rightIcon___dkyvP{top:.5rem}.styles-module__inputContainer___VvGBl .styles-module__textarea___AjX9N.styles-module__large___3eU2g+.styles-module__leftIcon___FHp2R,.styles-module__inputContainer___VvGBl .styles-module__textarea___AjX9N.styles-module__large___3eU2g+.styles-module__rightIcon___dkyvP{top:1rem}.styles-module__textarea___AjX9N.styles-module__error___d8gLK{border-color:var(--color-danger)}.styles-module__textarea___AjX9N.styles-module__error___d8gLK:focus{border-color:var(--color-danger);box-shadow:0 0 0 3px rgba(var(--color-danger-rgb,244, 67, 54), .1)}.styles-module__textarea___AjX9N.styles-module__disabled___IzbfE{background:var(--color-bg-3);border-color:var(--color-border-5);color:var(--color-fg-muted);cursor:not-allowed;opacity:.6}.styles-module__errorText___Nom7x{color:var(--color-danger);margin:0;font-size:.75rem}.styles-module__helperText___97Def{color:var(--color-fg-muted);margin:0;font-size:.75rem}.styles-module__virtualList___pM6rN{contain:strict;width:100%;padding-bottom:300px;position:relative;overflow:auto}.styles-module__emptyContainer___rm938{height:100%;color:var(--color-fg-muted);justify-content:center;align-items:center;display:flex}.styles-module__virtualListInner___HxRzc{width:100%;position:relative}.styles-module__virtualListItems___p19-a{width:100%;position:absolute;top:0;left:0}.styles-module__loadingMore___zAdLM{color:var(--color-fg-muted);justify-content:center;align-items:center;gap:.75rem;padding:2rem 0;font-size:.875rem;display:flex}.styles-module__endOfList___5cYFh{color:var(--color-fg-muted);border-top:1px solid var(--color-border-3);justify-content:center;margin-top:1rem;padding:2rem 0;font-size:.875rem;display:flex}.styles-module__endOfList___5cYFh span{background-color:var(--color-bg-2);border-radius:.25rem;padding:.5rem 1rem}.styles-module__virtualList___xmj2v{width:100%;padding-bottom:300px;position:relative;overflow:visible}.styles-module__virtualListInner___quD74{width:100%;position:relative}.styles-module__virtualListItems___-Muml{width:100%;position:absolute;top:0;left:0}.styles-module__virtualListRow___h3pzX{width:100%}.styles-module__emptyContainer___LIy8r{color:var(--color-fg-muted);justify-content:center;align-items:center;padding:2rem 0;display:flex}.styles-module__loadingMore___Mzf-p{color:var(--color-fg-muted);justify-content:center;align-items:center;padding:1.5rem 0;display:flex}.styles-module__endOfList___g5G--{color:var(--color-fg-muted);border-top:1px solid var(--color-border-3);justify-content:center;padding:1.5rem 0;display:flex}.styles-module__sidebar___BMt0j{flex-direction:column;height:100%;min-height:0;display:flex;overflow:hidden}.styles-module__sidebarContent___iAwiw{flex-direction:column;height:100%;min-height:0;padding-top:1rem;display:flex;overflow:hidden}.styles-module__menuWrapper___DKuEv{flex:1;min-height:0;overflow:hidden auto}.styles-module__sidebarContent___iAwiw::-webkit-scrollbar{width:0}.styles-module__sidebarContent___iAwiw::-webkit-scrollbar-track{background:0 0}.styles-module__sidebarContent___iAwiw::-webkit-scrollbar-thumb{background:0 0}.styles-module__sidebarContent___iAwiw::-webkit-scrollbar-thumb:hover{background:0 0}.styles-module__sidebar___BMt0j a{margin-left:0}.styles-module__sidebar___BMt0j .ps-sidebar-root{background-color:var(--color-bg-2)!important;border-right:1px solid var(--color-separator)!important;flex-direction:column!important;height:100%!important;min-height:0!important;display:flex!important;overflow:hidden!important}.styles-module__sidebar___BMt0j .ps-sidebar-container{background-color:var(--color-bg-2)!important;height:100%!important;min-height:0!important;color:var(--color-fg-text)!important;flex-direction:column!important;flex:1!important;display:flex!important;overflow:hidden!important}.styles-module__sidebar___BMt0j .ps-menu-button{color:var(--color-fg-text)!important;border-radius:.375rem!important;margin:.125rem .5rem!important;padding:.5rem .75rem!important;font-size:.875rem!important;transition:all .2s!important}.styles-module__sidebar___BMt0j .ps-menu-button:hover{background-color:var(--color-bg-3)!important;color:var(--color-fg-text)!important}.styles-module__sidebar___BMt0j .ps-menu-button.ps-active{background-color:var(--color-primary)!important;color:#fff!important}.styles-module__sidebar___BMt0j .ps-menu-button.ps-active *,.styles-module__sidebar___BMt0j .ps-menu-button.ps-active .ps-menu-icon,.styles-module__sidebar___BMt0j .ps-menu-button.ps-active .ps-menu-label{color:#fff!important}.styles-module__sidebar___BMt0j .ps-menu-icon{width:1.25rem!important;height:1.25rem!important;color:var(--color-fg-text)!important;margin-right:.5rem!important}.styles-module__sidebar___BMt0j .ps-submenu-content{background-color:var(--color-bg-3)!important;padding-left:.5rem!important;overflow:hidden!important}.styles-module__sidebar___BMt0j .ps-submenu-content .ps-menu-button{margin:.125rem .25rem!important;padding:.375rem .5rem!important;font-size:.8125rem!important;transition:all .2s!important}.styles-module__sidebar___BMt0j .ps-menu-label{color:var(--color-fg-text)!important;font-weight:500!important}.styles-module__sidebar___BMt0j .ps-menu-button.ps-active,.styles-module__sidebar___BMt0j .ps-menu-button.ps-active span,.styles-module__sidebar___BMt0j .ps-menu-button.ps-active div,.styles-module__sidebar___BMt0j .ps-menu-button.ps-active .ps-menu-icon,.styles-module__sidebar___BMt0j .ps-menu-button.ps-active .ps-menu-label{color:#fff!important}.styles-module__logoutContainer___7NwBL{border-top:1px solid var(--color-separator);writing-mode:horizontal-tb;text-orientation:mixed;flex-shrink:0;margin-top:auto;padding:.5rem}.styles-module__logoutButton___rfD6u{width:100%;color:var(--color-fg-text);cursor:pointer;white-space:nowrap;writing-mode:horizontal-tb;text-orientation:mixed;direction:ltr;background:0 0;border:none;border-radius:.375rem;justify-content:flex-start;align-items:center;gap:.5rem;padding:.5rem .75rem;font-size:.875rem;transition:background-color .2s,color .2s;display:flex;overflow:hidden}.styles-module__logoutButton___rfD6u span{opacity:1;max-width:200px;transition:opacity .3s,max-width .3s;display:inline-block;writing-mode:horizontal-tb!important;text-orientation:mixed!important;direction:ltr!important;transform:none!important}.styles-module__logoutButton___rfD6u .styles-module__hiddenText___z183T{opacity:0;width:0;max-width:0;overflow:hidden}.styles-module__logoutButton___rfD6u .styles-module__visibleText___lfsv-{opacity:1;width:auto;max-width:200px}.styles-module__logoutButton___rfD6u:hover{background-color:var(--color-bg-3)}.styles-module__logoutButton___rfD6u:active{transform:scale(.98)}.styles-module__logoutButton___rfD6u svg{color:inherit;flex-shrink:0}.styles-module__footer___g-hY7{background:var(--color-bg-2);width:100%;padding:0 2rem}.styles-module__footerContent___Oen5n{justify-content:space-between;align-items:center;max-width:100%;margin:0 auto;display:flex}.styles-module__copyright___1R2o3{color:var(--color-fg-text);font-size:.875rem}.styles-module__links___dQyvB{gap:1.5rem;display:flex}.styles-module__link___UWfyK{color:var(--color-fg-text);font-size:.875rem;text-decoration:none;transition:color .3s}.styles-module__link___UWfyK:hover{color:var(--color-primary)}@media (width<=768px){.styles-module__footerContent___Oen5n{flex-direction:column;gap:1rem}.styles-module__links___dQyvB{gap:1rem}}.styles-module__header___4Uc8h{width:100%;padding:.5rem 2rem;display:flex}.styles-module__header___4Uc8h>:first-child{flex:1;justify-content:flex-start;align-items:center;display:flex}.styles-module__header___4Uc8h>:last-child{flex:1;justify-content:flex-end;align-items:center;display:flex}.styles-module__layout___ZQKU7{background:var(--color-bg);flex-direction:column;width:100%;height:100vh;display:flex;position:relative}.styles-module__header___XIaFb{z-index:100;background:var(--color-bg);width:100%;position:fixed;top:0;box-shadow:0 .125rem .25rem #2c33491a}.styles-module__footer___r8ASO{z-index:100;width:100%;position:fixed;bottom:0}.styles-module__mainWrapper___i4tEI{flex:1;display:flex;position:relative}.styles-module__sidebar___ij-8-{position:fixed;top:0}.styles-module__content___mTgUr{background:var(--color-bg);flex:1;min-height:calc(100vh - 10rem);margin:0;padding-top:0;padding-bottom:0;overflow:hidden auto}@media (width<=768px){.styles-module__content___mTgUr{width:100%}.styles-module__sidebar___ij-8-{z-index:999;height:100vh;position:fixed;top:0;left:0}}.styles-module__mainWrapper___AiTAw{flex-direction:row;flex:1;display:flex;position:relative}.styles-module__sidebarContainer___X4yj8{z-index:99;flex-direction:column;display:flex;position:fixed;left:0;overflow:hidden}.styles-module__sidebar___VQTlH{flex-shrink:0;top:0;left:0}.styles-module__content___htJlH{background:var(--color-bg);flex:1;margin:0;padding-top:0;padding-bottom:0;overflow:hidden auto}@media (width<=1024px){.styles-module__content___htJlH{padding:1.5rem}}@media (width<=768px){.styles-module__content___htJlH{width:100%}.styles-module__sidebar___VQTlH{z-index:999;height:100vh;position:fixed;top:0;left:0}}.styles-module__wavesWrapper___TK7DI{pointer-events:none;z-index:0;width:100vw;height:100vh;position:fixed;inset:0;overflow:hidden}.styles-module__wavesWrapper___TK7DI>*{pointer-events:auto}.styles-module__squaresWrapper___P25uF{pointer-events:none;z-index:0;width:100vw;height:100vh;position:fixed;inset:0;overflow:hidden}.styles-module__squaresWrapper___P25uF>*{pointer-events:auto}.styles-module__letterGlitchWrapper___KWtWU{pointer-events:none;z-index:0;width:100vw;height:100vh;position:fixed;inset:0;overflow:hidden}.styles-module__letterGlitchWrapper___KWtWU>*{pointer-events:auto}.styles-module__pixelBlastWrapper___YptHh{pointer-events:none;z-index:0;width:100vw;height:100vh;position:fixed;inset:0;overflow:hidden}.styles-module__pixelBlastWrapper___YptHh>*{pointer-events:auto}.style-module__container___Hh3-c{width:100%;height:100%;position:relative;overflow:hidden}
2
2
  /*$vite$:1*/`)),document.head.appendChild(e)}}catch(o){console.error("vite-plugin-css-injected-by-js",o)}})();
3
- Object.defineProperty(exports,Symbol.toStringTag,{value:"Module"});const U=require("./chunk-chunk-BFrxaqQT.cjs"),r=require("./chunk-lstorage-BnxLXHgH.cjs"),a=require("./chunk-types-BE3JCLff.cjs"),t=require("./chunk-i18n-daHSL0Nm.cjs");let n=require("react"),l=require("react/jsx-runtime");function s(e){return t.i18n_default.t("languageSwitcher."+e,{ns:"language",defaultValue:e})}function S(){const e=(0,n.useCallback)(s,[]);return(0,n.useMemo)(()=>({getLanguageDisplayName:e}),[e])}function o(e){return t.i18n_default.t("layoutSwitcher."+e,{ns:"layout",defaultValue:e})}function G(){const e=(0,n.useCallback)(o,[]);return(0,n.useMemo)(()=>({getLayoutDisplayName:e}),[e])}function c(e){return t.i18n_default.t("baseSwitcher."+e,{ns:"preference",defaultValue:e})}function d(){const e=(0,n.useCallback)(c,[]);return(0,n.useMemo)(()=>({getPreferenceDisplayName:e}),[e])}function L(e){return t.i18n_default.t("themeSwitcher."+e,{ns:"theme",defaultValue:e})}function y(){const e=(0,n.useCallback)(L,[]);return(0,n.useMemo)(()=>({getThemeDisplayName:e}),[e])}function h(e,u){return{RESOURCES:e,NAME_SPACES_MAP:u,NAME_SPACES:Object.values(u)}}function p(e){t.i18n_default.changeLanguage(e)}function f(){const e=r.getItem(a.LANGUAGE_STORAGE_KEY);return e==null||a.LANGUAGE_VALUES.includes(e)?e:void 0}function A(e){r.setItem(a.LANGUAGE_STORAGE_KEY,e)}function P(){r.removeItem(a.LANGUAGE_STORAGE_KEY)}function E(){const e=f();if(e!=null)return e;const u=(typeof navigator<"u"&&(navigator.language||navigator.languages?.[0])||"").toLowerCase();return u.startsWith("zh")?a.LanguageEnum.ZH:u.startsWith("en")?a.LanguageEnum.EN:u.startsWith("fr")?a.LanguageEnum.FR:a.DEFAULT_LANGUAGE}var m=(0,n.memo)(({children:e,bundles:u,fallbackLng:_,onLoadExtraBundles:N})=>{const g=(0,n.useRef)(!1);return g.current||(t.initI18n({bundles:u,fallbackLng:_,onLoadExtraBundles:N}),g.current=!0),(0,n.useEffect)(()=>{const i=E();A(i),t.i18n_default.changeLanguage(i)},[]),(0,l.jsx)(l.Fragment,{children:e})});m.displayName="LanguageProvider";exports.DEFAULT_LANGUAGE=a.DEFAULT_LANGUAGE;exports.LANGUAGE_STORAGE_KEY=a.LANGUAGE_STORAGE_KEY;exports.LANGUAGE_VALUES=a.LANGUAGE_VALUES;exports.LanguageEnum=a.LanguageEnum;exports.LanguageProvider=m;exports.NFX_NAMESPACES=t.NFX_NAMESPACES;exports.NFX_NAMESPACES_MAP=t.NFX_NAMESPACES_MAP;exports.changeLanguage=p;exports.createI18nResources=h;exports.getDefaultNfxBundles=t.getDefaultNfxBundles;exports.getLanguageDisplayName=s;exports.getLanguageStorage=f;exports.getLayoutDisplayName=o;exports.getLocalLanguage=E;exports.getPreferenceDisplayName=c;exports.getThemeDisplayName=L;exports.i18n=t.i18n_default;exports.initI18n=t.initI18n;exports.removeLanguageStorage=P;exports.setLanguageStorage=A;exports.useLanguageLabel=S;exports.useLayoutLabel=G;exports.usePreferenceLabel=d;exports.useThemeLabel=y;
3
+ Object.defineProperty(exports,Symbol.toStringTag,{value:"Module"});const U=require("./chunk-chunk-BFrxaqQT.cjs"),r=require("./chunk-lstorage-BnxLXHgH.cjs"),a=require("./chunk-language-Bqmpuf2W.cjs"),n=require("./chunk-i18n-BCDF-skF.cjs");let t=require("react"),l=require("react/jsx-runtime");function s(e){return n.i18n_default.t("languageSwitcher."+e,{ns:"language",defaultValue:e})}function S(){const e=(0,t.useCallback)(s,[]);return(0,t.useMemo)(()=>({getLanguageDisplayName:e}),[e])}function o(e){return n.i18n_default.t("layoutSwitcher."+e,{ns:"layout",defaultValue:e})}function G(){const e=(0,t.useCallback)(o,[]);return(0,t.useMemo)(()=>({getLayoutDisplayName:e}),[e])}function c(e){return n.i18n_default.t("baseSwitcher."+e,{ns:"preference",defaultValue:e})}function d(){const e=(0,t.useCallback)(c,[]);return(0,t.useMemo)(()=>({getPreferenceDisplayName:e}),[e])}function L(e){return n.i18n_default.t("themeSwitcher."+e,{ns:"theme",defaultValue:e})}function y(){const e=(0,t.useCallback)(L,[]);return(0,t.useMemo)(()=>({getThemeDisplayName:e}),[e])}function h(e,u){return{RESOURCES:e,NAME_SPACES_MAP:u,NAME_SPACES:Object.values(u)}}function p(e){n.i18n_default.changeLanguage(e)}function f(){const e=r.getItem(a.LANGUAGE_STORAGE_KEY);return e==null||a.LANGUAGE_VALUES.includes(e)?e:void 0}function A(e){r.setItem(a.LANGUAGE_STORAGE_KEY,e)}function P(){r.removeItem(a.LANGUAGE_STORAGE_KEY)}function E(){const e=f();if(e!=null)return e;const u=(typeof navigator<"u"&&(navigator.language||navigator.languages?.[0])||"").toLowerCase();return u.startsWith("zh")?a.LanguageEnum.ZH:u.startsWith("en")?a.LanguageEnum.EN:u.startsWith("fr")?a.LanguageEnum.FR:a.DEFAULT_LANGUAGE}var m=(0,t.memo)(({children:e,bundles:u,fallbackLng:_,onLoadExtraBundles:N})=>{const g=(0,t.useRef)(!1);return g.current||(n.initI18n({bundles:u,fallbackLng:_,onLoadExtraBundles:N}),g.current=!0),(0,t.useEffect)(()=>{const i=E();A(i),n.i18n_default.changeLanguage(i)},[]),(0,l.jsx)(l.Fragment,{children:e})});m.displayName="LanguageProvider";exports.DEFAULT_LANGUAGE=a.DEFAULT_LANGUAGE;exports.LANGUAGE_STORAGE_KEY=a.LANGUAGE_STORAGE_KEY;exports.LANGUAGE_VALUES=a.LANGUAGE_VALUES;exports.LanguageEnum=a.LanguageEnum;exports.LanguageProvider=m;exports.NFX_NAMESPACES=n.NFX_NAMESPACES;exports.NFX_NAMESPACES_MAP=n.NFX_NAMESPACES_MAP;exports.changeLanguage=p;exports.createI18nResources=h;exports.getDefaultNfxBundles=n.getDefaultNfxBundles;exports.getLanguageDisplayName=s;exports.getLanguageStorage=f;exports.getLayoutDisplayName=o;exports.getLocalLanguage=E;exports.getPreferenceDisplayName=c;exports.getThemeDisplayName=L;exports.i18n=n.i18n_default;exports.initI18n=n.initI18n;exports.removeLanguageStorage=P;exports.setLanguageStorage=A;exports.useLanguageLabel=S;exports.useLayoutLabel=G;exports.usePreferenceLabel=d;exports.useThemeLabel=y;
4
4
 
5
5
  //# sourceMappingURL=languages.cjs.map
@@ -1 +1 @@
1
- {"version":3,"file":"languages.cjs","names":[],"sources":["../src/languages/hooks/useLanguageLabel.ts","../src/languages/hooks/useLayoutLabel.ts","../src/languages/hooks/usePreferenceLabel.ts","../src/languages/hooks/useThemeLabel.ts","../src/languages/languages/i18nResources.ts","../src/languages/utils/languageStorage.ts","../src/languages/utils/getLocalLanguage.ts","../src/languages/providers/index.tsx"],"sourcesContent":["/**\n * 返回 { getLanguageDisplayName },便于扩展;getLanguageDisplayName 可传给 SlideDownSwitcher 的 getDisplayName。\n * Returns { getLanguageDisplayName } for extensibility; pass to SlideDownSwitcher getDisplayName.\n */\nimport type { LanguageEnum } from \"../types\";\n\nimport { useCallback, useMemo } from \"react\";\n\nimport i18n from \"../languages/i18n\";\n\nfunction getLanguageDisplayNameImpl(lang: LanguageEnum): string {\n return i18n.t(\"languageSwitcher.\" + lang, { ns: \"language\", defaultValue: lang });\n}\n\nexport function useLanguageLabel(): { getLanguageDisplayName: (lang: LanguageEnum) => string } {\n const getLanguageDisplayName = useCallback(getLanguageDisplayNameImpl, []);\n return useMemo(() => ({ getLanguageDisplayName }), [getLanguageDisplayName]);\n}\n\nexport { getLanguageDisplayNameImpl as getLanguageDisplayName };\n","/**\n * 返回 { getLayoutDisplayName },便于扩展;getLayoutDisplayName 可传给 SlideDownSwitcher 的 getDisplayName。\n * Returns { getLayoutDisplayName } for extensibility; pass to SlideDownSwitcher getDisplayName.\n */\nimport type { LayoutModeEnum } from \"@/designs/layouts/types\";\n\nimport { useCallback, useMemo } from \"react\";\n\nimport i18n from \"../languages/i18n\";\n\nfunction getLayoutDisplayNameImpl(mode: LayoutModeEnum): string {\n return i18n.t(\"layoutSwitcher.\" + mode, { ns: \"layout\", defaultValue: mode });\n}\n\nexport function useLayoutLabel(): { getLayoutDisplayName: (mode: LayoutModeEnum) => string } {\n const getLayoutDisplayName = useCallback(getLayoutDisplayNameImpl, []);\n return useMemo(() => ({ getLayoutDisplayName }), [getLayoutDisplayName]);\n}\n\nexport { getLayoutDisplayNameImpl as getLayoutDisplayName };\n","/**\n * 返回 { getPreferenceDisplayName }(Base 展示名),便于扩展;可传给 SlideDownSwitcher 的 getDisplayName。\n * Returns { getPreferenceDisplayName } for extensibility; pass to SlideDownSwitcher getDisplayName.\n */\nimport type { BaseEnum } from \"@/themes/types\";\n\nimport { useCallback, useMemo } from \"react\";\n\nimport i18n from \"../languages/i18n\";\n\nfunction getPreferenceDisplayNameImpl(base: BaseEnum): string {\n return i18n.t(\"baseSwitcher.\" + base, { ns: \"preference\", defaultValue: base });\n}\n\nexport function usePreferenceLabel(): { getPreferenceDisplayName: (base: BaseEnum) => string } {\n const getPreferenceDisplayName = useCallback(getPreferenceDisplayNameImpl, []);\n return useMemo(() => ({ getPreferenceDisplayName }), [getPreferenceDisplayName]);\n}\n\nexport { getPreferenceDisplayNameImpl as getPreferenceDisplayName };\n","/**\n * 返回 { getThemeDisplayName },便于扩展;getThemeDisplayName 可传给 SlideDownSwitcher 的 getDisplayName。\n * Returns { getThemeDisplayName } for extensibility; pass to SlideDownSwitcher getDisplayName.\n */\nimport type { ThemeEnum } from \"@/themes/types\";\n\nimport { useCallback, useMemo } from \"react\";\n\nimport i18n from \"../languages/i18n\";\n\nfunction getThemeDisplayNameImpl(theme: ThemeEnum): string {\n return i18n.t(\"themeSwitcher.\" + theme, { ns: \"theme\", defaultValue: theme });\n}\n\nexport function useThemeLabel(): { getThemeDisplayName: (theme: ThemeEnum) => string } {\n const getThemeDisplayName = useCallback(getThemeDisplayNameImpl, []);\n return useMemo(() => ({ getThemeDisplayName }), [getThemeDisplayName]);\n}\n\nexport { getThemeDisplayNameImpl as getThemeDisplayName };\n","/**\n * 文案包工厂:createI18nResources(resources, nameSpacesMap) 供用户自建 JSON 后生成 i18n 所需结构。\n * Bundle factory: createI18nResources(resources, nameSpacesMap) for building i18n structure from user JSON.\n */\nimport type { CreateI18nResourcesResult, LanguageEnum, NameSpacesMap, Resources } from \"../types\";\n\nimport i18n from \"./i18n\";\n\n/**\n * 由调用方传入 resources 和 nameSpacesMap,生成 i18n 所需的 RESOURCES、NAME_SPACES_MAP、NAME_SPACES。\n * Caller provides resources and nameSpacesMap; returns RESOURCES, NAME_SPACES_MAP, NAME_SPACES for i18n.\n *\n * @param resources - 各语言下的命名空间文案。Bundles per language.\n * @param nameSpacesMap - 命名空间 key → 命名空间字符串。Namespace key to string.\n */\nfunction createI18nResources(resources: Resources, nameSpacesMap: NameSpacesMap): CreateI18nResourcesResult {\n return {\n RESOURCES: resources,\n NAME_SPACES_MAP: nameSpacesMap,\n NAME_SPACES: Object.values(nameSpacesMap),\n };\n}\n\n/** 切换当前语言。Switch current language. */\nfunction changeLanguage(lng: LanguageEnum): void {\n i18n.changeLanguage(lng);\n}\n\nexport { createI18nResources, changeLanguage };\nexport type { CreateI18nResourcesResult, Resources, NameSpacesMap, NamespaceBundle } from \"../types\";\n","/**\n * 语言相关 localStorage 读写与移除,统一走 utils/lstorage;读写类型为 LanguageEnum。\n * Language localStorage get/set/remove via utils/lstorage; typed as LanguageEnum.\n */\nimport type { Nilable } from \"@/types/utils\";\nimport { getItem, removeItem, setItem } from \"@/utils/lstorage\";\n\nimport { LANGUAGE_STORAGE_KEY, LANGUAGE_VALUES, LanguageEnum } from \"../types\";\n\nexport function getLanguageStorage(): Nilable<LanguageEnum> {\n const raw = getItem(LANGUAGE_STORAGE_KEY);\n if (raw == null) return raw;\n return (LANGUAGE_VALUES as readonly string[]).includes(raw) ? (raw as LanguageEnum) : undefined;\n}\n\nexport function setLanguageStorage(value: LanguageEnum): void {\n setItem(LANGUAGE_STORAGE_KEY, value);\n}\n\nexport function removeLanguageStorage(): void {\n removeItem(LANGUAGE_STORAGE_KEY);\n}\n","/**\n * 获取本地语言:优先 localStorage,其次浏览器语言,最后默认语言。\n * Get local language: localStorage first, then navigator, then default.\n */\nimport { getLanguageStorage } from \"./languageStorage\";\nimport { DEFAULT_LANGUAGE, LanguageEnum } from \"../types\";\n\nexport function getLocalLanguage(): LanguageEnum {\n const stored = getLanguageStorage();\n if (stored != null) return stored;\n const nav = typeof navigator !== \"undefined\" ? navigator.language || navigator.languages?.[0] || \"\" : \"\";\n const lower = nav.toLowerCase();\n if (lower.startsWith(\"zh\")) return LanguageEnum.ZH;\n if (lower.startsWith(\"en\")) return LanguageEnum.EN;\n if (lower.startsWith(\"fr\")) return LanguageEnum.FR;\n return DEFAULT_LANGUAGE;\n}\n","/**\n * 语言提供者:首次渲染时同步初始化 i18n(保证内层 ModalProvider 等子组件 useTranslation 时已就绪),再用 useEffect 应用本地语言。\n * Language provider: inits i18n synchronously on first render so inner children (e.g. ModalProvider) have i18n ready; then useEffect applies getLocalLanguage.\n */\nimport type { LanguageProviderProps } from \"../types\";\n\nimport { memo, useEffect, useRef } from \"react\";\n\nimport i18n, { initI18n } from \"../languages/i18n\";\nimport { getLocalLanguage, setLanguageStorage } from \"../utils\";\n\nconst LanguageProvider = memo(({ children, bundles, fallbackLng, onLoadExtraBundles }: LanguageProviderProps) => {\n const hasInitialized = useRef(false);\n if (!hasInitialized.current) {\n initI18n({ bundles, fallbackLng, onLoadExtraBundles });\n hasInitialized.current = true;\n }\n\n useEffect(() => {\n const lng = getLocalLanguage();\n setLanguageStorage(lng);\n void i18n.changeLanguage(lng);\n }, []);\n\n return <>{children}</>;\n});\n\nLanguageProvider.displayName = \"LanguageProvider\";\nexport default LanguageProvider;\n"],"mappings":"iSAUA,SAAS,EAA2B,EAA4B,CAC9D,OAAO,EAAA,aAAK,EAAE,oBAAsB,EAAM,CAAE,GAAI,WAAY,aAAc,EAAM,EAGlF,SAAgB,GAA+E,CAC7F,MAAM,KAAA,EAAA,aAAqC,EAA4B,CAAA,CAAE,EACzE,SAAA,EAAA,SAAA,KAAsB,CAAE,uBAAA,CAAA,GAA2B,CAAC,CAAA,CAAuB,ECN7E,SAAS,EAAyB,EAA8B,CAC9D,OAAO,EAAA,aAAK,EAAE,kBAAoB,EAAM,CAAE,GAAI,SAAU,aAAc,EAAM,EAG9E,SAAgB,GAA6E,CAC3F,MAAM,KAAA,EAAA,aAAmC,EAA0B,CAAA,CAAE,EACrE,SAAA,EAAA,SAAA,KAAsB,CAAE,qBAAA,CAAA,GAAyB,CAAC,CAAA,CAAqB,ECNzE,SAAS,EAA6B,EAAwB,CAC5D,OAAO,EAAA,aAAK,EAAE,gBAAkB,EAAM,CAAE,GAAI,aAAc,aAAc,EAAM,EAGhF,SAAgB,GAA+E,CAC7F,MAAM,KAAA,EAAA,aAAuC,EAA8B,CAAA,CAAE,EAC7E,SAAA,EAAA,SAAA,KAAsB,CAAE,yBAAA,CAAA,GAA6B,CAAC,CAAA,CAAyB,ECNjF,SAAS,EAAwB,EAA0B,CACzD,OAAO,EAAA,aAAK,EAAE,iBAAmB,EAAO,CAAE,GAAI,QAAS,aAAc,EAAO,EAG9E,SAAgB,GAAuE,CACrF,MAAM,KAAA,EAAA,aAAkC,EAAyB,CAAA,CAAE,EACnE,SAAA,EAAA,SAAA,KAAsB,CAAE,oBAAA,CAAA,GAAwB,CAAC,CAAA,CAAoB,ECDvE,SAAS,EAAoB,EAAsB,EAAyD,CAC1G,MAAO,CACL,UAAW,EACX,gBAAiB,EACjB,YAAa,OAAO,OAAO,CAAA,GAK/B,SAAS,EAAe,EAAyB,CAC/C,EAAA,aAAK,eAAe,CAAA,EChBtB,SAAgB,GAA4C,CAC1D,MAAM,EAAM,EAAA,QAAQ,EAAA,oBAAA,EACpB,OAAI,GAAO,MACH,EAAA,gBAAsC,SAAS,CAAA,EAD/B,EAC8D,OAGxF,SAAgB,EAAmB,EAA2B,CAC5D,EAAA,QAAQ,EAAA,qBAAsB,CAAA,EAGhC,SAAgB,GAA8B,CAC5C,EAAA,WAAW,EAAA,oBAAA,ECbb,SAAgB,GAAiC,CAC/C,MAAM,EAAS,EAAA,EACf,GAAI,GAAU,KAAM,OAAO,EAE3B,MAAM,GADM,OAAO,UAAc,MAAc,UAAU,UAAY,UAAU,YAAY,CAAA,IAAM,IAC/E,YAAA,EAClB,OAAI,EAAM,WAAW,IAAA,EAAc,EAAA,aAAa,GAC5C,EAAM,WAAW,IAAA,EAAc,EAAA,aAAa,GAC5C,EAAM,WAAW,IAAA,EAAc,EAAA,aAAa,GACzC,EAAA,iBCJT,IAAM,KAAA,EAAA,MAAA,CAAyB,CAAE,SAAA,EAAU,QAAA,EAAS,YAAA,EAAa,mBAAA,CAAA,IAAgD,CAC/G,MAAM,KAAA,EAAA,QAAwB,EAAA,EAC9B,OAAK,EAAe,UAClB,EAAA,SAAS,CAAE,QAAA,EAAS,YAAA,EAAa,mBAAA,EAAoB,EACrD,EAAe,QAAU,OAG3B,EAAA,WAAA,IAAgB,CACd,MAAM,EAAM,EAAA,EACZ,EAAmB,CAAA,EACd,EAAA,aAAK,eAAe,CAAA,GACxB,CAAA,CAAE,KAEL,EAAA,KAAO,EAAA,SAAA,CAAG,SAAA,CAAA,CAAY,IAGxB,EAAiB,YAAc"}
1
+ {"version":3,"file":"languages.cjs","names":[],"sources":["../src/languages/hooks/useLanguageLabel.ts","../src/languages/hooks/useLayoutLabel.ts","../src/languages/hooks/usePreferenceLabel.ts","../src/languages/hooks/useThemeLabel.ts","../src/languages/languages/i18nResources.ts","../src/languages/utils/languageStorage.ts","../src/languages/utils/getLocalLanguage.ts","../src/languages/providers/index.tsx"],"sourcesContent":["/**\n * 返回 { getLanguageDisplayName },便于扩展;getLanguageDisplayName 可传给 SlideDownSwitcher 的 getDisplayName。\n * Returns { getLanguageDisplayName } for extensibility; pass to SlideDownSwitcher getDisplayName.\n */\nimport type { LanguageEnum } from \"../types\";\n\nimport { useCallback, useMemo } from \"react\";\n\nimport i18n from \"../languages/i18n\";\n\nfunction getLanguageDisplayNameImpl(lang: LanguageEnum): string {\n return i18n.t(\"languageSwitcher.\" + lang, { ns: \"language\", defaultValue: lang });\n}\n\nexport function useLanguageLabel(): { getLanguageDisplayName: (lang: LanguageEnum) => string } {\n const getLanguageDisplayName = useCallback(getLanguageDisplayNameImpl, []);\n return useMemo(() => ({ getLanguageDisplayName }), [getLanguageDisplayName]);\n}\n\nexport { getLanguageDisplayNameImpl as getLanguageDisplayName };\n","/**\n * 返回 { getLayoutDisplayName },便于扩展;getLayoutDisplayName 可传给 SlideDownSwitcher 的 getDisplayName。\n * Returns { getLayoutDisplayName } for extensibility; pass to SlideDownSwitcher getDisplayName.\n */\nimport type { LayoutModeEnum } from \"@/designs/layouts/types\";\n\nimport { useCallback, useMemo } from \"react\";\n\nimport i18n from \"../languages/i18n\";\n\nfunction getLayoutDisplayNameImpl(mode: LayoutModeEnum): string {\n return i18n.t(\"layoutSwitcher.\" + mode, { ns: \"layout\", defaultValue: mode });\n}\n\nexport function useLayoutLabel(): { getLayoutDisplayName: (mode: LayoutModeEnum) => string } {\n const getLayoutDisplayName = useCallback(getLayoutDisplayNameImpl, []);\n return useMemo(() => ({ getLayoutDisplayName }), [getLayoutDisplayName]);\n}\n\nexport { getLayoutDisplayNameImpl as getLayoutDisplayName };\n","/**\n * 返回 { getPreferenceDisplayName }(Base 展示名),便于扩展;可传给 SlideDownSwitcher 的 getDisplayName。\n * Returns { getPreferenceDisplayName } for extensibility; pass to SlideDownSwitcher getDisplayName.\n */\nimport type { BaseEnum } from \"@/themes/types\";\n\nimport { useCallback, useMemo } from \"react\";\n\nimport i18n from \"../languages/i18n\";\n\nfunction getPreferenceDisplayNameImpl(base: BaseEnum): string {\n return i18n.t(\"baseSwitcher.\" + base, { ns: \"preference\", defaultValue: base });\n}\n\nexport function usePreferenceLabel(): { getPreferenceDisplayName: (base: BaseEnum) => string } {\n const getPreferenceDisplayName = useCallback(getPreferenceDisplayNameImpl, []);\n return useMemo(() => ({ getPreferenceDisplayName }), [getPreferenceDisplayName]);\n}\n\nexport { getPreferenceDisplayNameImpl as getPreferenceDisplayName };\n","/**\n * 返回 { getThemeDisplayName },便于扩展;getThemeDisplayName 可传给 SlideDownSwitcher 的 getDisplayName。\n * Returns { getThemeDisplayName } for extensibility; pass to SlideDownSwitcher getDisplayName.\n */\nimport type { ThemeEnum } from \"@/themes/types\";\n\nimport { useCallback, useMemo } from \"react\";\n\nimport i18n from \"../languages/i18n\";\n\nfunction getThemeDisplayNameImpl(theme: ThemeEnum): string {\n return i18n.t(\"themeSwitcher.\" + theme, { ns: \"theme\", defaultValue: theme });\n}\n\nexport function useThemeLabel(): { getThemeDisplayName: (theme: ThemeEnum) => string } {\n const getThemeDisplayName = useCallback(getThemeDisplayNameImpl, []);\n return useMemo(() => ({ getThemeDisplayName }), [getThemeDisplayName]);\n}\n\nexport { getThemeDisplayNameImpl as getThemeDisplayName };\n","/**\n * 文案包工厂:createI18nResources(resources, nameSpacesMap) 供用户自建 JSON 后生成 i18n 所需结构。\n * Bundle factory: createI18nResources(resources, nameSpacesMap) for building i18n structure from user JSON.\n */\nimport type { CreateI18nResourcesResult, LanguageEnum, NameSpacesMap, Resources } from \"../types\";\n\nimport i18n from \"./i18n\";\n\n/**\n * 由调用方传入 resources 和 nameSpacesMap,生成 i18n 所需的 RESOURCES、NAME_SPACES_MAP、NAME_SPACES。\n * Caller provides resources and nameSpacesMap; returns RESOURCES, NAME_SPACES_MAP, NAME_SPACES for i18n.\n *\n * @param resources - 各语言下的命名空间文案。Bundles per language.\n * @param nameSpacesMap - 命名空间 key → 命名空间字符串。Namespace key to string.\n */\nfunction createI18nResources(resources: Resources, nameSpacesMap: NameSpacesMap): CreateI18nResourcesResult {\n return {\n RESOURCES: resources,\n NAME_SPACES_MAP: nameSpacesMap,\n NAME_SPACES: Object.values(nameSpacesMap),\n };\n}\n\n/** 切换当前语言。Switch current language. */\nfunction changeLanguage(lng: LanguageEnum): void {\n i18n.changeLanguage(lng);\n}\n\nexport { createI18nResources, changeLanguage };\nexport type { CreateI18nResourcesResult, Resources, NameSpacesMap, NamespaceBundle } from \"../types\";\n","/**\n * 语言相关 localStorage 读写与移除,统一走 utils/lstorage;读写类型为 LanguageEnum。\n * Language localStorage get/set/remove via utils/lstorage; typed as LanguageEnum.\n */\nimport type { Nilable } from \"@/types/utils\";\nimport { getItem, removeItem, setItem } from \"@/utils/lstorage\";\n\nimport { LANGUAGE_STORAGE_KEY, LANGUAGE_VALUES, LanguageEnum } from \"../types\";\n\nexport function getLanguageStorage(): Nilable<LanguageEnum> {\n const raw = getItem(LANGUAGE_STORAGE_KEY);\n if (raw == null) return raw;\n return (LANGUAGE_VALUES as readonly string[]).includes(raw) ? (raw as LanguageEnum) : undefined;\n}\n\nexport function setLanguageStorage(value: LanguageEnum): void {\n setItem(LANGUAGE_STORAGE_KEY, value);\n}\n\nexport function removeLanguageStorage(): void {\n removeItem(LANGUAGE_STORAGE_KEY);\n}\n","/**\n * 获取本地语言:优先 localStorage,其次浏览器语言,最后默认语言。\n * Get local language: localStorage first, then navigator, then default.\n */\nimport { getLanguageStorage } from \"./languageStorage\";\nimport { DEFAULT_LANGUAGE, LanguageEnum } from \"../types\";\n\nexport function getLocalLanguage(): LanguageEnum {\n const stored = getLanguageStorage();\n if (stored != null) return stored;\n const nav = typeof navigator !== \"undefined\" ? navigator.language || navigator.languages?.[0] || \"\" : \"\";\n const lower = nav.toLowerCase();\n if (lower.startsWith(\"zh\")) return LanguageEnum.ZH;\n if (lower.startsWith(\"en\")) return LanguageEnum.EN;\n if (lower.startsWith(\"fr\")) return LanguageEnum.FR;\n return DEFAULT_LANGUAGE;\n}\n","/**\n * 语言提供者:首次渲染时同步初始化 i18n(保证内层 ModalProvider 等子组件 useTranslation 时已就绪),再用 useEffect 应用本地语言。\n * Language provider: inits i18n synchronously on first render so inner children (e.g. ModalProvider) have i18n ready; then useEffect applies getLocalLanguage.\n */\nimport type { LanguageProviderProps } from \"../types\";\n\nimport { memo, useEffect, useRef } from \"react\";\n\nimport i18n, { initI18n } from \"../languages/i18n\";\nimport { getLocalLanguage, setLanguageStorage } from \"../utils\";\n\nconst LanguageProvider = memo(({ children, bundles, fallbackLng, onLoadExtraBundles }: LanguageProviderProps) => {\n const hasInitialized = useRef(false);\n if (!hasInitialized.current) {\n initI18n({ bundles, fallbackLng, onLoadExtraBundles });\n hasInitialized.current = true;\n }\n\n useEffect(() => {\n const lng = getLocalLanguage();\n setLanguageStorage(lng);\n void i18n.changeLanguage(lng);\n }, []);\n\n return <>{children}</>;\n});\n\nLanguageProvider.displayName = \"LanguageProvider\";\nexport default LanguageProvider;\n"],"mappings":"oSAUA,SAAS,EAA2B,EAA4B,CAC9D,OAAO,EAAA,aAAK,EAAE,oBAAsB,EAAM,CAAE,GAAI,WAAY,aAAc,EAAM,EAGlF,SAAgB,GAA+E,CAC7F,MAAM,KAAA,EAAA,aAAqC,EAA4B,CAAA,CAAE,EACzE,SAAA,EAAA,SAAA,KAAsB,CAAE,uBAAA,CAAA,GAA2B,CAAC,CAAA,CAAuB,ECN7E,SAAS,EAAyB,EAA8B,CAC9D,OAAO,EAAA,aAAK,EAAE,kBAAoB,EAAM,CAAE,GAAI,SAAU,aAAc,EAAM,EAG9E,SAAgB,GAA6E,CAC3F,MAAM,KAAA,EAAA,aAAmC,EAA0B,CAAA,CAAE,EACrE,SAAA,EAAA,SAAA,KAAsB,CAAE,qBAAA,CAAA,GAAyB,CAAC,CAAA,CAAqB,ECNzE,SAAS,EAA6B,EAAwB,CAC5D,OAAO,EAAA,aAAK,EAAE,gBAAkB,EAAM,CAAE,GAAI,aAAc,aAAc,EAAM,EAGhF,SAAgB,GAA+E,CAC7F,MAAM,KAAA,EAAA,aAAuC,EAA8B,CAAA,CAAE,EAC7E,SAAA,EAAA,SAAA,KAAsB,CAAE,yBAAA,CAAA,GAA6B,CAAC,CAAA,CAAyB,ECNjF,SAAS,EAAwB,EAA0B,CACzD,OAAO,EAAA,aAAK,EAAE,iBAAmB,EAAO,CAAE,GAAI,QAAS,aAAc,EAAO,EAG9E,SAAgB,GAAuE,CACrF,MAAM,KAAA,EAAA,aAAkC,EAAyB,CAAA,CAAE,EACnE,SAAA,EAAA,SAAA,KAAsB,CAAE,oBAAA,CAAA,GAAwB,CAAC,CAAA,CAAoB,ECDvE,SAAS,EAAoB,EAAsB,EAAyD,CAC1G,MAAO,CACL,UAAW,EACX,gBAAiB,EACjB,YAAa,OAAO,OAAO,CAAA,GAK/B,SAAS,EAAe,EAAyB,CAC/C,EAAA,aAAK,eAAe,CAAA,EChBtB,SAAgB,GAA4C,CAC1D,MAAM,EAAM,EAAA,QAAQ,EAAA,oBAAA,EACpB,OAAI,GAAO,MACH,EAAA,gBAAsC,SAAS,CAAA,EAD/B,EAC8D,OAGxF,SAAgB,EAAmB,EAA2B,CAC5D,EAAA,QAAQ,EAAA,qBAAsB,CAAA,EAGhC,SAAgB,GAA8B,CAC5C,EAAA,WAAW,EAAA,oBAAA,ECbb,SAAgB,GAAiC,CAC/C,MAAM,EAAS,EAAA,EACf,GAAI,GAAU,KAAM,OAAO,EAE3B,MAAM,GADM,OAAO,UAAc,MAAc,UAAU,UAAY,UAAU,YAAY,CAAA,IAAM,IAC/E,YAAA,EAClB,OAAI,EAAM,WAAW,IAAA,EAAc,EAAA,aAAa,GAC5C,EAAM,WAAW,IAAA,EAAc,EAAA,aAAa,GAC5C,EAAM,WAAW,IAAA,EAAc,EAAA,aAAa,GACzC,EAAA,iBCJT,IAAM,KAAA,EAAA,MAAA,CAAyB,CAAE,SAAA,EAAU,QAAA,EAAS,YAAA,EAAa,mBAAA,CAAA,IAAgD,CAC/G,MAAM,KAAA,EAAA,QAAwB,EAAA,EAC9B,OAAK,EAAe,UAClB,EAAA,SAAS,CAAE,QAAA,EAAS,YAAA,EAAa,mBAAA,EAAoB,EACrD,EAAe,QAAU,OAG3B,EAAA,WAAA,IAAgB,CACd,MAAM,EAAM,EAAA,EACZ,EAAmB,CAAA,EACd,EAAA,aAAK,eAAe,CAAA,GACxB,CAAA,CAAE,KAEE,EAAA,KAAA,EAAA,SAAA,CAAG,SAAA,CAAA,CAAY,IAGxB,EAAiB,YAAc"}
@@ -1,179 +1 @@
1
- import { default as i18n } from 'i18next';
2
- import { JSX } from 'react/jsx-runtime';
3
- import { MemoExoticComponent } from 'react';
4
- import { ReactNode } from 'react';
5
-
6
- /** 基础主题枚举(平台/圆角等,如 iOS 24 / Android|Windows 6 / Linux 4) */
7
- declare enum BaseEnum {
8
- DEFAULT = "default",
9
- IOS = "ios",
10
- ANDROID = "android",
11
- WINDOWS = "windows",
12
- LINUX = "linux"
13
- }
14
-
15
- /** 切换当前语言。Switch current language. */
16
- export declare function changeLanguage(lng: LanguageEnum): void;
17
-
18
- /**
19
- * 由调用方传入 resources 和 nameSpacesMap,生成 i18n 所需的 RESOURCES、NAME_SPACES_MAP、NAME_SPACES。
20
- * Caller provides resources and nameSpacesMap; returns RESOURCES, NAME_SPACES_MAP, NAME_SPACES for i18n.
21
- *
22
- * @param resources - 各语言下的命名空间文案。Bundles per language.
23
- * @param nameSpacesMap - 命名空间 key → 命名空间字符串。Namespace key to string.
24
- */
25
- export declare function createI18nResources(resources: Resources, nameSpacesMap: NameSpacesMap): CreateI18nResourcesResult;
26
-
27
- /** createI18nResources 返回值,含 RESOURCES / NAME_SPACES_MAP / NAME_SPACES。Return type of createI18nResources. */
28
- export declare interface CreateI18nResourcesResult {
29
- RESOURCES: Resources;
30
- NAME_SPACES_MAP: NameSpacesMap;
31
- NAME_SPACES: string[];
32
- }
33
-
34
- export declare const DEFAULT_LANGUAGE = LanguageEnum.ZH;
35
-
36
- /** 单条额外 bundle:命名空间 + 文案对象,由 initI18n 注入到 i18n。 */
37
- export declare interface ExtraBundleItem {
38
- namespace: string;
39
- bundle: Record<string, unknown>;
40
- }
41
-
42
- /**
43
- * 返回 NFX-UI 默认文案包,可与使用方自建 resources 合并后传入 createI18nResources。
44
- * Returns default NFX bundles; merge with your resources and pass to createI18nResources.
45
- */
46
- export declare function getDefaultNfxBundles(): CreateI18nResourcesResult;
47
-
48
- export declare function getLanguageDisplayName(lang: LanguageEnum): string;
49
-
50
- export declare function getLanguageStorage(): Nilable<LanguageEnum>;
51
-
52
- export declare function getLayoutDisplayName(mode: LayoutModeEnum): string;
53
-
54
- export declare function getLocalLanguage(): LanguageEnum;
55
-
56
- export declare function getPreferenceDisplayName(base: BaseEnum): string;
57
-
58
- export declare function getThemeDisplayName(theme: ThemeEnum): string;
59
-
60
- export { i18n }
61
-
62
- /**
63
- * 初始化 i18n。会先合并 NFX-UI 自带的四类 JSON(theme/language/layout/preference),再与用户传入的 bundles 合并(用户可覆盖)。
64
- * Init i18n. Merges built-in NFX bundles (theme, language, layout, preference) with user bundles (user overrides).
65
- */
66
- export declare function initI18n(options: InitI18nOptions): void;
67
-
68
- /** initI18n 的选项。Options for initI18n. */
69
- export declare interface InitI18nOptions {
70
- /** 由 createI18nResources(resources, nameSpacesMap) 得到;用户自建 JSON 后组装传入。From createI18nResources; user builds from their JSON. */
71
- bundles: CreateI18nResourcesResult;
72
- /** 回退语言。Fallback language. */
73
- fallbackLng?: LanguageEnum;
74
- /** 语言切换后由调用方拉取额外文案(如错误码);返回 { namespace, bundle } 或数组,由 initI18n 负责 addResourceBundle。 */
75
- onLoadExtraBundles?: onLoadExtraBundles;
76
- }
77
-
78
- export declare const LANGUAGE_STORAGE_KEY = "language-storage";
79
-
80
- export declare const LANGUAGE_VALUES: LanguageEnum[];
81
-
82
- /**
83
- * 语言枚举与常量,不引用任何 JSON,供需要轻量引用的模块使用。
84
- * Language enum and constants; no JSON deps for lightweight usage.
85
- */
86
- export declare enum LanguageEnum {
87
- EN = "en",
88
- ZH = "zh",
89
- FR = "fr"
90
- }
91
-
92
- export declare const LanguageProvider: MemoExoticComponent<({ children, bundles, fallbackLng, onLoadExtraBundles }: LanguageProviderProps) => JSX.Element>;
93
-
94
- /** 语言 Provider 的 props。LanguageProvider props. */
95
- export declare interface LanguageProviderProps {
96
- /** 子节点。Children. */
97
- children: ReactNode;
98
- /** 用户自建 JSON 后调用 createI18nResources 得到的结果。Result of createI18nResources(resources, nameSpacesMap). */
99
- bundles: CreateI18nResourcesResult;
100
- /** 回退语言。Fallback language. */
101
- fallbackLng?: LanguageEnum;
102
- /** 语言切换后拉取额外文案(如错误码);返回 { namespace, bundle },由 Provider 内部 addResourceBundle。Caller only fetches; Provider injects. */
103
- onLoadExtraBundles?: onLoadExtraBundles;
104
- }
105
-
106
- /** 语言切换器 props。LanguageSwitcher props. */
107
- export declare interface LanguageSwitcherProps {
108
- /** 样式状态。Visual status. */
109
- status?: "primary" | "default";
110
- /** 根据 lang 返回显示名称;未传则使用 lang 原值。Display name for language; default is lang value. */
111
- getLanguageDisplayName?: (lang: LanguageEnum) => string;
112
- /** 处理语言改变。Handle language change. */
113
- handleChangeLanguage?: (language: LanguageEnum) => void;
114
- }
115
-
116
- /**
117
- * 布局模式枚举与常量。Layout mode enum and constants.
118
- */
119
- declare enum LayoutModeEnum {
120
- SHOW = "show",
121
- HIDE = "hide"
122
- }
123
-
124
- /** 单语言下的命名空间 → 文案对象。One language: namespace -> key-value bundle. */
125
- export declare type NamespaceBundle = Record<string, unknown>;
126
-
127
- /** 命名空间映射:命名空间 key → 命名空间字符串(用于 ns 列表)。Name space key -> string. */
128
- export declare type NameSpacesMap = Record<string, string>;
129
-
130
- export declare const NFX_NAMESPACES: readonly ["theme", "language", "layout", "preference"];
131
-
132
- export declare const NFX_NAMESPACES_MAP: NameSpacesMap;
133
-
134
- /**
135
- * 可为 null 或 undefined。Nilable: T | null | undefined.
136
- * @example Nilable<boolean> => boolean | null | undefined
137
- */
138
- declare type Nilable<T> = T | null | undefined;
139
-
140
- export declare type onLoadExtraBundles = (lng: LanguageEnum) => Promise<ExtraBundleItem | ExtraBundleItem[] | null | undefined>;
141
-
142
- export declare function removeLanguageStorage(): void;
143
-
144
- /** 所有语言的资源:语言码 → 命名空间 → 文案。Resources: lng -> ns -> bundle. */
145
- export declare type Resources = Record<string, Record<string, NamespaceBundle>>;
146
-
147
- export declare function setLanguageStorage(value: LanguageEnum): void;
148
-
149
- /** 颜色主题枚举 */
150
- declare enum ThemeEnum {
151
- DEFAULT = "default",
152
- LIGHT = "light",
153
- CORPORATE = "corporate",
154
- FOREST = "forest",
155
- DARK = "dark",
156
- COSMIC = "cosmic",
157
- COFFEE = "coffee",
158
- WINE = "wine",
159
- /** 麦田:default 基础上白红色改为金黄色 */
160
- WHEAT = "wheat"
161
- }
162
-
163
- export declare function useLanguageLabel(): {
164
- getLanguageDisplayName: (lang: LanguageEnum) => string;
165
- };
166
-
167
- export declare function useLayoutLabel(): {
168
- getLayoutDisplayName: (mode: LayoutModeEnum) => string;
169
- };
170
-
171
- export declare function usePreferenceLabel(): {
172
- getPreferenceDisplayName: (base: BaseEnum) => string;
173
- };
174
-
175
- export declare function useThemeLabel(): {
176
- getThemeDisplayName: (theme: ThemeEnum) => string;
177
- };
178
-
179
1
  export { }