@pollinations/ui 0.1.0-alpha.1 → 0.1.0-alpha.4

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 (88) hide show
  1. package/README.md +148 -36
  2. package/dist/Button-ByKwRtdw.d.cts +29 -0
  3. package/dist/Button-ByKwRtdw.d.ts +29 -0
  4. package/dist/Chip-v-ADv6cz.d.cts +18 -0
  5. package/dist/Chip-v-ADv6cz.d.ts +18 -0
  6. package/dist/Dialog-D3Nqt8cE.d.cts +66 -0
  7. package/dist/Dialog-D3Nqt8cE.d.ts +66 -0
  8. package/dist/app-user-menu/sdk.cjs +698 -242
  9. package/dist/app-user-menu/sdk.cjs.map +1 -1
  10. package/dist/app-user-menu/sdk.d.cts +22 -7
  11. package/dist/app-user-menu/sdk.d.ts +22 -7
  12. package/dist/app-user-menu/sdk.js +703 -240
  13. package/dist/app-user-menu/sdk.js.map +1 -1
  14. package/dist/app.css +12 -122
  15. package/dist/auth/index.cjs +1365 -85
  16. package/dist/auth/index.cjs.map +1 -1
  17. package/dist/auth/index.d.cts +91 -6
  18. package/dist/auth/index.d.ts +91 -6
  19. package/dist/auth/index.js +1362 -84
  20. package/dist/auth/index.js.map +1 -1
  21. package/dist/auth/sdk.cjs +244 -0
  22. package/dist/auth/sdk.cjs.map +1 -0
  23. package/dist/auth/sdk.d.cts +40 -0
  24. package/dist/auth/sdk.d.ts +40 -0
  25. package/dist/auth/sdk.js +213 -0
  26. package/dist/auth/sdk.js.map +1 -0
  27. package/dist/brand/lockup-horizontal-black.png +0 -0
  28. package/dist/brand/lockup-horizontal-black.svg +4 -0
  29. package/dist/brand/lockup-horizontal-white.png +0 -0
  30. package/dist/brand/lockup-horizontal-white.svg +4 -0
  31. package/dist/brand/lockup-horizontal.svg +4 -0
  32. package/dist/brand/lockup-stacked-black.png +0 -0
  33. package/dist/brand/lockup-stacked-black.svg +4 -0
  34. package/dist/brand/lockup-stacked-white.png +0 -0
  35. package/dist/brand/lockup-stacked-white.svg +4 -0
  36. package/dist/brand/lockup-stacked.svg +4 -0
  37. package/dist/brand/mark-black.png +0 -0
  38. package/dist/brand/mark-black.svg +1 -0
  39. package/dist/brand/mark-white.png +0 -0
  40. package/dist/brand/mark-white.svg +1 -0
  41. package/dist/brand/mark.svg +1 -0
  42. package/dist/brand/polli/polli-lockup-horizontal-black.png +0 -0
  43. package/dist/brand/polli/polli-lockup-horizontal-white.png +0 -0
  44. package/dist/brand/polli/polli-lockup-stacked-black.png +0 -0
  45. package/dist/brand/polli/polli-lockup-stacked-white.png +0 -0
  46. package/dist/brand/polli/polli.png +0 -0
  47. package/dist/brand/wordmark-black.png +0 -0
  48. package/dist/brand/wordmark-black.svg +1 -0
  49. package/dist/brand/wordmark-white.png +0 -0
  50. package/dist/brand/wordmark-white.svg +1 -0
  51. package/dist/brand/wordmark.svg +1 -0
  52. package/dist/fonts/geist-pixel-square.woff2 +0 -0
  53. package/dist/gen/index.cjs +427 -217
  54. package/dist/gen/index.cjs.map +1 -1
  55. package/dist/gen/index.d.cts +68 -19
  56. package/dist/gen/index.d.ts +68 -19
  57. package/dist/gen/index.js +421 -215
  58. package/dist/gen/index.js.map +1 -1
  59. package/dist/index.browser.min.js +2 -0
  60. package/dist/index.browser.min.js.map +1 -0
  61. package/dist/index.cjs +3711 -1590
  62. package/dist/index.cjs.map +1 -1
  63. package/dist/index.d.cts +548 -178
  64. package/dist/index.d.ts +548 -178
  65. package/dist/index.js +3713 -1655
  66. package/dist/index.js.map +1 -1
  67. package/dist/licenses/Geist-OFL.txt +93 -0
  68. package/dist/markdown.cjs +826 -0
  69. package/dist/markdown.cjs.map +1 -0
  70. package/dist/markdown.d.cts +16 -0
  71. package/dist/markdown.d.ts +16 -0
  72. package/dist/markdown.js +797 -0
  73. package/dist/markdown.js.map +1 -0
  74. package/dist/styles.css +1 -1
  75. package/dist/theme.css +87 -0
  76. package/dist/wallet/index.cjs +291 -64
  77. package/dist/wallet/index.cjs.map +1 -1
  78. package/dist/wallet/index.d.cts +30 -7
  79. package/dist/wallet/index.d.ts +30 -7
  80. package/dist/wallet/index.js +290 -64
  81. package/dist/wallet/index.js.map +1 -1
  82. package/package.json +106 -89
  83. package/dist/Chip-CQCq34kS.d.cts +0 -20
  84. package/dist/Chip-Cj4xG7Te.d.ts +0 -20
  85. package/dist/assets/logo-wordmark.svg +0 -1
  86. package/dist/assets/logo.svg +0 -4
  87. package/dist/theme-jRPPBmld.d.cts +0 -20
  88. package/dist/theme-jRPPBmld.d.ts +0 -20
@@ -1,10 +1,5 @@
1
- // src/assets/logo.svg
2
- var logo_default = 'data:image/svg+xml,<?xml version="1.0" encoding="utf-8"?>%0A<svg xmlns="http://www.w3.org/2000/svg" viewBox="15 17.6409 119.9998 114.7498" width="160px" height="153px">%0A <path style="stroke:none;fill-rule:evenodd;fill:currentColor;fill-opacity:1" d="M73.832 19.293a1893.685 1893.685 0 0 0-7.742 9.047c-1.93 2.273-3.274 3.898-4.266 5.156-.988 1.258-1.62 2.149-2.117 2.957-.5.805-.86 1.531-1.309 2.453-.14.285-.277.563-.402.813-.121.254-.238.48-.332.676a20.107 20.107 0 0 1-.34.652c-.008.008-.062 0-.156-.02s-.227-.047-.383-.09c-.16-.039-.351-.09-.558-.148-.207-.059-.43-.121-.668-.191-1.079-.32-1.895-.559-2.684-.743-.79-.18-1.55-.3-2.516-.382-.96-.082-2.129-.121-3.734-.145-1.602-.02-3.64-.023-6.348-.023H35.31l-2.485-.004H30.34v20.574l-.527.059-.524.058-1.055.117c-.59.067-1.203.157-1.84.274-.636.113-1.292.25-1.968.414-.676.16-1.371.348-2.086.555-.715.21-1.445.441-2.195.695-.47.16-1.024.36-1.594.574a64.38 64.38 0 0 0-1.684.649c-.523.207-.992.398-1.328.546-.336.149-.539.246-.539.274 0 .039.07.234.191.535.118.297.29.7.485 1.156.195.453.418.961.644 1.473.227.508.461 1.02.676 1.484a52.041 52.041 0 0 0 9.54 13.926 47.507 47.507 0 0 0 6.14 5.41c2.164 1.59 4.426 2.953 6.75 4.047a51.197 51.197 0 0 0 3.414 1.461c1.129.43 2.242.805 3.36 1.125 1.112.324 2.226.59 3.343.809a39.04 39.04 0 0 0 3.375.504c.84.085 1.781.136 2.777.156a51.632 51.632 0 0 0 6.203-.266 34.786 34.786 0 0 0 2.836-.394 59.177 59.177 0 0 1 2.633-.442c.149-.02.235-.023.246-.015.043.043-.02.195-.152.414a9.01 9.01 0 0 1-.582.812c-.242.313-.527.645-.813.965-.289.316-.582.617-.851.86-.57.519-1.168.968-1.809 1.355-.64.383-1.324.703-2.07.969-.746.261-1.555.464-2.441.617-.891.156-1.856.258-2.926.316-1.36.07-2.582.207-3.703.422-1.118.211-2.13.496-3.07.871-.938.375-1.801.84-2.618 1.403a15.82 15.82 0 0 0-2.351 2 14.205 14.205 0 0 0-1.489 1.765 13.256 13.256 0 0 0-1.148 1.945 15.518 15.518 0 0 0-.856 2.207 20.834 20.834 0 0 0-.59 2.543c-.058.348-.105.61-.156.817-.05.207-.105.36-.183.484a1.184 1.184 0 0 1-.325.332c-.144.106-.332.211-.578.356a9.157 9.157 0 0 0-2.543 2.183 8.797 8.797 0 0 0-1.52 2.813 8.33 8.33 0 0 0-.382 3.113 7.995 7.995 0 0 0 .852 3.098 7.95 7.95 0 0 0 1.574 2.117 9.294 9.294 0 0 0 2.168 1.566c.789.418 1.629.715 2.469.868.84.152 1.68.167 2.472.007a7.941 7.941 0 0 0 1.188-.336c.406-.144.82-.32 1.222-.515.399-.2.79-.418 1.149-.653.36-.234.691-.476.976-.73a6.93 6.93 0 0 0 1.473-1.86c.39-.71.68-1.492.855-2.308.176-.82.243-1.676.188-2.527a8.74 8.74 0 0 0-.531-2.516 5.919 5.919 0 0 0-.68-1.281c-.289-.43-.64-.856-1.031-1.258a10.34 10.34 0 0 0-1.262-1.11 8.299 8.299 0 0 0-1.379-.847c-.414-.2-.722-.352-.95-.492-.226-.137-.366-.27-.44-.43-.075-.16-.083-.352-.043-.613.039-.266.125-.598.242-1.043.226-.871.566-1.695 1.004-2.465a10.426 10.426 0 0 1 3.672-3.754c.77-.46 1.605-.836 2.492-1.102.152-.046.386-.093.675-.144a30.829 30.829 0 0 1 2.246-.273c.43-.043.876-.075 1.317-.102a41.754 41.754 0 0 0 2.773-.25 19.813 19.813 0 0 0 2.243-.406 13.283 13.283 0 0 0 1.918-.621c.609-.246 1.199-.536 1.804-.88a20.824 20.824 0 0 0 1.774-1.116c.539-.383 1.031-.786 1.511-1.227.48-.445.942-.934 1.415-1.488.468-.559.953-1.18 1.468-1.899l.309-.426.308-.43.313-.429.309-.426v19.633l-.399.262-.402.265-.797.532a11.66 11.66 0 0 0-1.567 1.21c-.44.41-.808.837-1.113 1.305-.305.465-.55.97-.746 1.535-.2.567-.351 1.192-.473 1.903a7.401 7.401 0 0 0 .024 2.574 8.502 8.502 0 0 0 2.441 4.543 7.787 7.787 0 0 0 2.157 1.496c.804.367 1.632.61 2.46.715.829.105 1.66.082 2.47-.07a7.963 7.963 0 0 0 2.343-.828 8.831 8.831 0 0 0 2.094-1.567c.406-.402.738-.789 1.011-1.18.27-.394.48-.796.641-1.234.156-.441.266-.918.336-1.473.07-.55.102-1.171.105-1.894 0-.524 0-.93-.011-1.266a6.504 6.504 0 0 0-.074-.836 3.967 3.967 0 0 0-.192-.683c-.09-.23-.207-.485-.355-.805a7.845 7.845 0 0 0-1.594-2.262 8.117 8.117 0 0 0-1.07-.879 9.342 9.342 0 0 0-1.254-.718l-.348-.164-.348-.16-.343-.165-.348-.164v-4.957l-.004-2.476v-2.48c0-1.36.004-2.657.012-3.833.008-1.176.02-2.23.035-3.11.016-.882.035-1.589.055-2.07.02-.48.043-.734.066-.707.02.028.074.102.156.208l.301.421c.121.168.258.364.406.575.145.207.305.433.461.664.38.543.735 1.027 1.09 1.468.352.438.703.832 1.063 1.2.363.367.742.707 1.148 1.039.406.328.844.652 1.332.98.777.528 1.5.965 2.223 1.328.718.364 1.437.657 2.203.89.765.235 1.582.411 2.496.544.914.137 1.93.23 3.094.3.433.024.867.055 1.289.087a40.742 40.742 0 0 1 2.148.215c.27.035.477.07.602.101.965.234 1.898.64 2.761 1.168a11.119 11.119 0 0 1 2.34 1.93 10.355 10.355 0 0 1 1.688 2.437c.43.867.707 1.781.805 2.695l.03.313.032.309.035.316.031.309-.27.14-.538.274-.274.136c-.828.426-1.558.922-2.183 1.493a7.954 7.954 0 0 0-1.54 1.91 7.731 7.731 0 0 0-.87 2.273 9.264 9.264 0 0 0-.172 2.594c.066.96.285 1.871.64 2.703a7.903 7.903 0 0 0 1.446 2.258 8.316 8.316 0 0 0 2.14 1.683c.817.45 1.727.782 2.715.98 1.309.255 2.617.126 3.836-.3a8.813 8.813 0 0 0 3.266-2.05 8.893 8.893 0 0 0 2.117-3.239c.453-1.21.613-2.527.387-3.848a9.06 9.06 0 0 0-1.504-3.644 9.344 9.344 0 0 0-1.301-1.477 8.97 8.97 0 0 0-1.61-1.16c-.18-.097-.347-.2-.507-.293-.16-.097-.305-.183-.434-.265-.125-.082-.23-.153-.312-.211a.573.573 0 0 1-.137-.121.813.813 0 0 1-.063-.184c-.027-.094-.058-.223-.097-.375a11.147 11.147 0 0 1-.11-.512c-.039-.187-.082-.39-.12-.594-.098-.5-.227-1.023-.383-1.554a19.7 19.7 0 0 0-.551-1.594c-.207-.527-.43-1.039-.668-1.512a12.868 12.868 0 0 0-.735-1.3 12.93 12.93 0 0 0-1.582-1.954 15.064 15.064 0 0 0-1.98-1.691 15.833 15.833 0 0 0-2.27-1.355 14.35 14.35 0 0 0-2.449-.934 9.33 9.33 0 0 0-.836-.188 25.72 25.72 0 0 0-1.094-.18 40.224 40.224 0 0 0-2.605-.269 51.614 51.614 0 0 1-1.281-.11 47.27 47.27 0 0 1-1.242-.128 37.65 37.65 0 0 1-1.067-.14 12.643 12.643 0 0 1-.746-.133 11.48 11.48 0 0 1-1.508-.458c-.5-.187-.996-.414-1.472-.668a12.371 12.371 0 0 1-2.606-1.847 16.117 16.117 0 0 1-1.676-1.836 5.604 5.604 0 0 1-.465-.707c-.097-.192-.125-.324-.074-.375.016-.016.117-.012.285.004.168.015.407.047.696.09.293.039.633.093 1.008.156.37.062.78.137 1.207.215a60.65 60.65 0 0 0 1.789.304c.527.079 1.011.133 1.535.172.523.04 1.09.063 1.777.078.692.016 1.504.02 2.527.024 1.22 0 2.204-.008 3.06-.031a27.474 27.474 0 0 0 2.257-.153 20.662 20.662 0 0 0 2.047-.336 48.885 48.885 0 0 0 2.426-.59 44.634 44.634 0 0 0 5.347-1.761 42.256 42.256 0 0 0 4.98-2.387 43.059 43.059 0 0 0 4.633-3.031 46.976 46.976 0 0 0 4.329-3.692 55.822 55.822 0 0 0 3.312-3.468 49.244 49.244 0 0 0 2.879-3.63 50.142 50.142 0 0 0 2.516-3.886 57.29 57.29 0 0 0 2.23-4.258c.375-.793.691-1.48.95-2.066.257-.59.46-1.078.613-1.473.144-.398.242-.7.285-.918.047-.219.039-.351-.016-.402-.078-.07-.41-.23-.902-.442a57.272 57.272 0 0 0-1.828-.73c-.692-.262-1.434-.535-2.121-.777a36.517 36.517 0 0 0-1.778-.586 54.289 54.289 0 0 0-3.531-.879 48.341 48.341 0 0 0-1.715-.332 23.874 23.874 0 0 0-1.465-.215l-.633-.07-.312-.04-.316-.035V39.301l-2.461.004h-2.461l-2.457.004h-2.461c-2.645.004-4.664.007-6.266.03-1.605.024-2.797.067-3.789.141-.992.079-1.789.192-2.598.356-.812.164-1.64.383-2.703.668a23.531 23.531 0 0 1-1.203.3c-.16.036-.289.06-.383.075-.093.016-.148.02-.156.008a29.962 29.962 0 0 1-.355-.672c-.102-.2-.22-.434-.348-.692a79.19 79.19 0 0 1-.418-.828c-.45-.902-.785-1.578-1.168-2.234-.379-.66-.805-1.297-1.422-2.117-.617-.817-1.433-1.82-2.594-3.203-1.16-1.387-2.671-3.153-4.68-5.508-1.398-1.64-2.53-2.961-3.44-4.02a272.265 272.265 0 0 0-2.122-2.441c-.523-.59-.875-.973-1.11-1.211-.237-.234-.355-.324-.402-.32-.015 0-.07.047-.156.132-.086.086-.199.207-.34.356-.136.148-.296.328-.472.523-.172.2-.364.414-.555.641m7.059 11.504a151.52 151.52 0 0 1 3.582 4.336 58.05 58.05 0 0 1 2.488 3.336c.66.965 1.16 1.793 1.516 2.515.355.72.57 1.332.66 1.868.023.14.039.25.031.347a.526.526 0 0 1-.09.262 1.205 1.205 0 0 1-.266.262c-.12.093-.285.199-.492.332-.332.21-.773.554-1.265.976-.493.426-1.043.934-1.594 1.473a43.455 43.455 0 0 0-1.625 1.672 25.487 25.487 0 0 0-1.348 1.574c-.398.512-.812 1.09-1.222 1.703a39.76 39.76 0 0 0-1.204 1.91 39.73 39.73 0 0 0-1.085 1.946c-.329.636-.622 1.25-.86 1.812-.34.809-.672 1.727-.976 2.688-.305.96-.582 1.964-.817 2.945-.234.984-.43 1.945-.562 2.816-.137.871-.215 1.653-.215 2.282-.004.609-.024 1.054-.055 1.332-.035.277-.086.386-.152.328-.067-.055-.149-.278-.246-.664a26.572 26.572 0 0 1-.336-1.66 76.29 76.29 0 0 0-.54-2.758 81.86 81.86 0 0 0-.624-2.66c-.211-.844-.43-1.637-.645-2.34a22.878 22.878 0 0 0-.617-1.801 24.472 24.472 0 0 0-.742-1.66 48.94 48.94 0 0 0-2.047-3.746c-.36-.59-.707-1.13-1.027-1.582a21.393 21.393 0 0 0-1.153-1.446 44.776 44.776 0 0 0-1.558-1.71 47.283 47.283 0 0 0-1.657-1.657c-.539-.512-1.043-.96-1.468-1.3-.172-.141-.34-.278-.489-.41a8.144 8.144 0 0 1-.402-.376 3.846 3.846 0 0 1-.27-.293c-.066-.082-.101-.144-.101-.176 0-.105.098-.378.262-.753.16-.372.386-.848.644-1.356.258-.508.547-1.05.828-1.562a24.735 24.735 0 0 1 1.582-2.508c.262-.371.543-.746.871-1.16.329-.418.7-.871 1.149-1.407.45-.535.973-1.144 1.601-1.87.235-.27.536-.614.875-1.005.336-.394.715-.832 1.114-1.293.394-.46.808-.937 1.215-1.41.402-.472.8-.933 1.168-1.363l.668-.777.668-.774.667-.777.665-.778.117.118.113.12.117.118.113.117a110.75 110.75 0 0 1 1.668 1.914l1.555 1.809c.57.664 1.184 1.383 1.813 2.12M51.227 44.149c.425.09.867.2 1.304.317.434.117.864.242 1.254.37.395.13.754.259 1.055.38.297.12.535.234.687.332.051.035.09.094.11.191.02.098.023.239.011.442-.015.199-.046.457-.097.793-.055.336-.125.75-.215 1.257-.094.524-.172.989-.23 1.446-.06.457-.106.91-.137 1.41a32.68 32.68 0 0 0-.067 1.7c-.011.648-.015 1.401-.015 2.312 0 .98.004 1.761.015 2.414.012.648.035 1.172.07 1.644.04.473.09.89.165 1.336.07.446.164.918.285 1.488.074.348.156.72.242 1.094.082.375.168.754.254 1.11.086.359.168.695.242.992.074.3.14.554.195.75.055.195.102.383.149.554.043.172.082.329.113.461.031.13.059.239.07.317.016.078.02.125.012.133a.942.942 0 0 1-.183-.079 35.955 35.955 0 0 1-1.148-.629c-.255-.144-.532-.304-.821-.472a95.651 95.651 0 0 0-2.031-1.152 44.616 44.616 0 0 0-1.723-.899 34 34 0 0 0-1.633-.75 44.224 44.224 0 0 0-1.762-.715 50.86 50.86 0 0 0-2.855-1.004 45.68 45.68 0 0 0-2.8-.793 39.106 39.106 0 0 0-2.653-.562 26.924 26.924 0 0 0-2.406-.309l-.426-.03-.426-.036-.426-.031-.426-.035V43.758h7.215c1.578.004 2.832.008 3.852.015 1.02.012 1.8.028 2.437.055a20.37 20.37 0 0 1 1.547.117c.43.051.797.117 1.196.203m64.886 7.493c0 1.23-.008 2.34-.015 3.312-.008.977-.02 1.817-.04 2.504-.015.691-.038 1.23-.062 1.602-.023.367-.05.57-.082.59a1.259 1.259 0 0 1-.281.07c-.153.031-.367.062-.617.101-.254.035-.547.078-.868.117-.32.043-.664.083-1.02.122-.765.086-1.538.199-2.323.343-.79.141-1.59.313-2.407.516-.816.203-1.652.434-2.503.7-.856.26-1.73.558-2.625.882-.735.266-1.305.477-1.801.672-.496.195-.918.375-1.348.578-.43.203-.867.43-1.398.723-.528.289-1.149.644-1.946 1.101a34.54 34.54 0 0 1-1.644.895 9.035 9.035 0 0 1-.528.242c-.128.055-.21.074-.226.059-.016-.016-.02-.082-.012-.184a5.49 5.49 0 0 1 .055-.422c.031-.172.066-.371.113-.59.043-.219.098-.457.156-.699.258-1.082.454-1.906.602-2.613.152-.703.258-1.282.332-1.867.078-.583.125-1.172.156-1.895.035-.723.059-1.578.086-2.695.024-.98.04-1.77.043-2.434.004-.66-.004-1.2-.027-1.684a17.76 17.76 0 0 0-.113-1.355 29.95 29.95 0 0 0-.223-1.445c-.152-.887-.27-1.543-.336-2.035-.066-.493-.086-.825-.04-1.059a.664.664 0 0 1 .333-.492c.18-.117.437-.207.781-.336.692-.266 1.29-.469 1.926-.63.637-.16 1.309-.276 2.152-.358.84-.082 1.852-.133 3.164-.16 1.309-.032 2.922-.044 4.965-.047l3.813-.008h1.902l1.906-.004v7.883m-25.05-2.368c.195 1.02.343 1.977.437 2.91.098.934.14 1.837.133 2.75a25.621 25.621 0 0 1-.18 2.797c-.11.961-.273 1.961-.488 3.036a39.395 39.395 0 0 1-.746 3.12 31.161 31.161 0 0 1-.946 2.829c-.355.906-.75 1.781-1.187 2.64a30.9 30.9 0 0 1-1.473 2.555c-.215.34-.597.86-1.074 1.469a76.18 76.18 0 0 1-1.625 2.012 79.82 79.82 0 0 1-1.73 2.011 30.987 30.987 0 0 1-1.387 1.489l-.258.25-.262.254-.257.253-.262.254.02-1.62.023-1.622.02-1.617.019-1.621c.02-1.414.035-2.543.058-3.465.02-.922.047-1.637.082-2.227.036-.59.082-1.054.141-1.472.059-.422.133-.797.227-1.211a38.117 38.117 0 0 1 1.086-3.91c.418-1.235.89-2.403 1.433-3.524a28.68 28.68 0 0 1 1.82-3.222 31.184 31.184 0 0 1 2.258-3.012 18.08 18.08 0 0 1 1.012-1.086c.367-.363.746-.715 1.106-1.023.355-.31.69-.575.964-.762.27-.188.48-.297.59-.297.035 0 .07.031.11.086.039.05.078.129.12.226a4.214 4.214 0 0 1 .216.75m-28.895.91c.914.915 1.738 1.86 2.488 2.86a25.52 25.52 0 0 1 2.028 3.187 30.027 30.027 0 0 1 1.636 3.645 42.64 42.64 0 0 1 1.32 4.23c.122.485.22.872.294 1.274.074.406.125.832.164 1.387.043.554.07 1.242.09 2.171.023.934.039 2.11.058 3.645.02 1.441.035 2.566.04 3.438.003.87 0 1.488-.016 1.921-.016.434-.043.68-.086.813-.04.129-.094.14-.16.101-.106-.058-.376-.324-.743-.722-.367-.399-.84-.926-1.34-1.512a82.643 82.643 0 0 1-1.539-1.832 48.185 48.185 0 0 1-1.34-1.695c-.34-.45-.722-1.031-1.117-1.688a40.534 40.534 0 0 1-1.183-2.125 43.623 43.623 0 0 1-1.075-2.207 21.82 21.82 0 0 1-.773-1.933c-.07-.215-.152-.477-.238-.762-.082-.29-.172-.602-.258-.922a49.961 49.961 0 0 1-.461-1.844c-.187-.86-.316-2.113-.395-3.508a62.606 62.606 0 0 1-.066-4.378c.027-1.434.106-2.762.227-3.735.12-.969.285-1.578.492-1.578.023 0 .097.05.21.14.11.09.259.22.438.38a44.358 44.358 0 0 1 1.305 1.25m53.23 15.39a24.897 24.897 0 0 1-.965 4.492 26.72 26.72 0 0 1-.824 2.25 33.11 33.11 0 0 1-1.058 2.305c-.344.676-.66 1.262-.98 1.805-.321.543-.641 1.035-.997 1.523-.351.485-.734.961-1.18 1.473-.445.508-.953 1.05-1.542 1.66a35.204 35.204 0 0 1-1.579 1.54c-.496.448-.976.847-1.468 1.21-.493.367-1 .703-1.551 1.031-.55.328-1.145.649-1.817.989-.84.421-1.624.761-2.445 1.03a15.58 15.58 0 0 1-2.683.626c-1.004.152-2.145.25-3.532.308-1.382.063-3.011.082-4.98.082H82.18l.03-.113.036-.113.031-.113.035-.114c.055-.199.243-.582.516-1.074.274-.496.633-1.101 1.027-1.746.399-.645.836-1.324 1.266-1.969.43-.644.852-1.25 1.219-1.746a44.604 44.604 0 0 1 5.883-6.445 41.569 41.569 0 0 1 6.812-4.977 38.048 38.048 0 0 1 7.477-3.36 34.711 34.711 0 0 1 7.886-1.585c.11-.008.22-.02.325-.027.105-.008.203-.02.293-.028.09-.008.164-.02.226-.023.063-.008.106-.016.13-.02.023-.004.038.024.05.078a.934.934 0 0 1 .023.239c.004.101 0 .226-.007.363-.008.137-.02.29-.04.45M30.934 66.89c.242 1.234.562 2.488.945 3.738a41.182 41.182 0 0 0 1.32 3.68 37.438 37.438 0 0 0 1.61 3.425 27.185 27.185 0 0 0 1.816 2.961c.45.633.992 1.313 1.594 2.004a38.232 38.232 0 0 0 1.949 2.074c.687.68 1.395 1.34 2.098 1.942.699.597 1.39 1.144 2.03 1.597.298.208.575.407.825.59.25.184.469.352.649.496.18.141.32.258.41.344.09.082.129.133.105.14-.066.028-.328-.038-.71-.167-.384-.13-.891-.324-1.458-.555a48.612 48.612 0 0 1-1.812-.777 38.066 38.066 0 0 1-7.352-4.297 42.01 42.01 0 0 1-5.043-4.422 44.733 44.733 0 0 1-4.37-5.254 45.026 45.026 0 0 1-3.575-5.941c-.125-.258-.25-.504-.356-.735-.109-.226-.207-.433-.285-.609-.078-.176-.14-.32-.18-.422-.042-.101-.058-.164-.05-.172.008-.008.062-.031.148-.066.09-.035.211-.082.36-.137.144-.05.32-.113.507-.18l.614-.21c.433-.145.988-.297 1.593-.446a39.578 39.578 0 0 1 3.805-.73c.574-.078 1.07-.125 1.434-.133l.23-.004.235-.004.23-.004.234-.004.114.57.109.57.113.567.114.57m8.199-1.87c1.383.238 2.8.59 4.226 1.039 1.426.449 2.856 1 4.27 1.636a42.064 42.064 0 0 1 4.16 2.164c1.348.801 2.648 1.68 3.879 2.621.41.317.95.778 1.547 1.32a69.069 69.069 0 0 1 1.914 1.805c.652.641 1.3 1.293 1.871 1.899a31.34 31.34 0 0 1 1.422 1.586 46.416 46.416 0 0 1 1.726 2.27c.57.796 1.125 1.613 1.622 2.39.5.781.94 1.52 1.285 2.152.343.637.593 1.172.71 1.543l.032.114.035.113.04.113.03.113h-5.511c-1.918 0-3.48-.02-4.801-.078-1.324-.058-2.41-.156-3.371-.312a15.68 15.68 0 0 1-2.63-.653c-.831-.289-1.651-.652-2.581-1.109a20.527 20.527 0 0 1-3.137-1.926 24.776 24.776 0 0 1-2.902-2.523 26.07 26.07 0 0 1-2.528-2.988 24.005 24.005 0 0 1-2.011-3.305 35.404 35.404 0 0 1-1.192-2.649 38.321 38.321 0 0 1-.968-2.66 25.394 25.394 0 0 1-.645-2.39c-.156-.72-.238-1.348-.238-1.832 0-.211 0-.371.011-.489.012-.12.032-.203.079-.257.043-.055.105-.082.203-.098.093-.016.222-.016.39-.016.094 0 .25.012.453.032.204.023.454.05.73.09.278.035.583.078.903.128.32.047.653.102.977.157m84.953.085c.336.06.809.168 1.336.297.523.13 1.101.282 1.64.434.543.152 1.051.305 1.43.43.387.125.649.222.7.273.027.023-.028.184-.149.45-.121.265-.3.632-.527 1.062-.223.433-.493.93-.79 1.457a56.9 56.9 0 0 1-.937 1.633 44.31 44.31 0 0 1-3.473 5.027 46.345 46.345 0 0 1-4.12 4.531 43.203 43.203 0 0 1-4.571 3.848 34.726 34.726 0 0 1-4.82 2.969 42.898 42.898 0 0 1-3.02 1.367c-.469.191-.89.351-1.207.457-.32.105-.535.156-.598.137-.027-.012.004-.055.079-.133.074-.074.195-.18.351-.309.153-.129.348-.281.563-.445.218-.164.465-.344.722-.531a31.987 31.987 0 0 0 3.067-2.473 30.025 30.025 0 0 0 4.992-5.887 32.018 32.018 0 0 0 1.953-3.441c.398-.809.75-1.57 1.059-2.309a30.121 30.121 0 0 0 1.48-4.39c.188-.758.363-1.547.52-2.391l.109-.59.113-.586.11-.59.109-.586h1.133c.156 0 .347.008.566.024.215.012.457.035.703.062a20.21 20.21 0 0 1 1.477.203m-79.191 55.711c.363.23.671.555.917.934.247.379.426.816.536 1.273.109.457.148.938.105 1.407a3.61 3.61 0 0 1-.371 1.336c-.156.304-.332.57-.539.808a3.303 3.303 0 0 1-1.512.996 4.104 4.104 0 0 1-.965.184 4.468 4.468 0 0 1-1.03-.043 3.427 3.427 0 0 1-1.719-.805 4.434 4.434 0 0 1-.696-.77 3.378 3.378 0 0 1-.555-1.284 4.203 4.203 0 0 1-.046-1.434c.066-.48.21-.945.43-1.36.214-.413.507-.78.87-1.058a3.654 3.654 0 0 1 1.059-.555c.383-.132.789-.207 1.2-.222.41-.02.82.023 1.214.12.39.102.766.259 1.102.473m64.375-.195c.175.086.37.23.574.406.199.176.402.38.586.598.187.215.36.438.492.652.133.211.226.407.266.567.019.07.035.168.042.285.012.113.02.25.024.398.004.145 0 .301-.004.457a8.875 8.875 0 0 1-.023.461 3.545 3.545 0 0 1-.774 1.953 3.866 3.866 0 0 1-3.625 1.368 3.584 3.584 0 0 1-1.883-.95 4.289 4.289 0 0 1-.55-.609 2.827 2.827 0 0 1-.352-.637 3.475 3.475 0 0 1-.188-.746 6.793 6.793 0 0 1-.054-.941c0-.352.027-.672.082-.961.05-.293.137-.555.25-.797.117-.242.265-.465.449-.676.188-.21.406-.41.668-.601.25-.188.547-.328.879-.434a4.168 4.168 0 0 1 1.05-.187c.364-.024.735 0 1.09.066.36.062.7.176 1 .328m-31.93.473c.177.125.368.328.556.57.183.242.367.531.527.824.16.293.297.598.394.88a2.5 2.5 0 0 1 .16.737c0 .258-.074.567-.206.895a5.551 5.551 0 0 1-.54.996 6 6 0 0 1-.742.906c-.265.27-.547.489-.816.63a2.93 2.93 0 0 1-1.024.3 3.709 3.709 0 0 1-1.117-.047 3.928 3.928 0 0 1-1.066-.37 3.194 3.194 0 0 1-.871-.669 4.034 4.034 0 0 1-.68-1.012 4.028 4.028 0 0 1-.355-1.12 3.802 3.802 0 0 1-.012-1.153 3.5 3.5 0 0 1 .344-1.094c.187-.363.375-.664.586-.91.21-.242.441-.43.71-.57.266-.14.57-.23.922-.282a6.496 6.496 0 0 1 1.239-.046c.254.011.472.027.664.046.195.024.363.055.515.098a2.284 2.284 0 0 1 .813.39" id="path6"/>%0A</svg>';
3
-
4
- // src/primitives/Dialog.tsx
5
- import { Dialog as ArkDialog } from "@ark-ui/react/dialog";
6
- import { Portal } from "@ark-ui/react/portal";
7
- import { useRef } from "react";
1
+ // src/modules/auth/AuthModal.tsx
2
+ import { useId } from "react";
8
3
 
9
4
  // src/lib/cn.ts
10
5
  import { clsx } from "clsx";
@@ -14,12 +9,324 @@ function cn(...inputs) {
14
9
  return twMerge(clsx(...inputs));
15
10
  }
16
11
 
17
- // src/primitives/Dialog.tsx
12
+ // src/primitives/icons/index.tsx
18
13
  import { jsx, jsxs } from "react/jsx-runtime";
14
+ var strokeProps = {
15
+ fill: "none",
16
+ stroke: "currentColor",
17
+ strokeWidth: 2,
18
+ strokeLinecap: "round",
19
+ strokeLinejoin: "round"
20
+ };
21
+ function CheckIcon(props) {
22
+ return /* @__PURE__ */ jsx(
23
+ "svg",
24
+ {
25
+ "aria-hidden": "true",
26
+ viewBox: "0 0 24 24",
27
+ ...strokeProps,
28
+ strokeWidth: 2.5,
29
+ ...props,
30
+ children: /* @__PURE__ */ jsx("polyline", { points: "20 6 9 17 4 12" })
31
+ }
32
+ );
33
+ }
34
+ function ExternalLinkIcon(props) {
35
+ return /* @__PURE__ */ jsx("svg", { "aria-hidden": "true", viewBox: "0 0 24 24", ...strokeProps, ...props, children: /* @__PURE__ */ jsx("path", { d: "M7 17 17 7M9 7h8v8" }) });
36
+ }
37
+ function GitHubIcon(props) {
38
+ return /* @__PURE__ */ jsx("svg", { viewBox: "0 0 24 24", "aria-hidden": "true", ...props, children: /* @__PURE__ */ jsx(
39
+ "path",
40
+ {
41
+ fill: "currentColor",
42
+ d: "M12 .5A11.5 11.5 0 0 0 8.36 22.9c.58.11.79-.25.79-.56v-2.16c-3.21.7-3.89-1.38-3.89-1.38-.53-1.34-1.29-1.7-1.29-1.7-1.05-.72.08-.7.08-.7 1.16.08 1.77 1.19 1.77 1.19 1.04 1.76 2.71 1.25 3.37.96.11-.75.4-1.25.74-1.54-2.56-.29-5.26-1.28-5.26-5.7 0-1.26.45-2.29 1.19-3.1-.12-.29-.52-1.46.11-3.06 0 0 .97-.31 3.16 1.18a10.88 10.88 0 0 1 5.76 0c2.19-1.49 3.15-1.18 3.15-1.18.63 1.6.23 2.77.11 3.06.74.81 1.19 1.84 1.19 3.1 0 4.43-2.7 5.4-5.27 5.69.41.36.78 1.06.78 2.14v3.19c0 .31.21.68.8.56A11.5 11.5 0 0 0 12 .5Z"
43
+ }
44
+ ) });
45
+ }
46
+ function WarningIcon(props) {
47
+ return /* @__PURE__ */ jsxs("svg", { "aria-hidden": "true", viewBox: "0 0 24 24", ...strokeProps, ...props, children: [
48
+ /* @__PURE__ */ jsx("path", { d: "M10.3 3.1 1.8 17a2 2 0 0 0 1.7 3h17a2 2 0 0 0 1.7-3L13.7 3.1a2 2 0 0 0-3.4 0Z" }),
49
+ /* @__PURE__ */ jsx("path", { d: "M12 9v4M12 17h.01" })
50
+ ] });
51
+ }
52
+ function SignOutIcon(props) {
53
+ return /* @__PURE__ */ jsxs("svg", { "aria-hidden": "true", viewBox: "0 0 24 24", ...strokeProps, ...props, children: [
54
+ /* @__PURE__ */ jsx("path", { d: "M9 21H5a2 2 0 0 1-2-2V5a2 2 0 0 1 2-2h4" }),
55
+ /* @__PURE__ */ jsx("path", { d: "m16 17 5-5-5-5" }),
56
+ /* @__PURE__ */ jsx("path", { d: "M21 12H9" })
57
+ ] });
58
+ }
59
+ function RefreshIcon(props) {
60
+ return /* @__PURE__ */ jsxs("svg", { "aria-hidden": "true", viewBox: "0 0 24 24", ...strokeProps, ...props, children: [
61
+ /* @__PURE__ */ jsx("path", { d: "M21 12a9 9 0 1 1-2.64-6.36" }),
62
+ /* @__PURE__ */ jsx("path", { d: "M21 3v6h-6" })
63
+ ] });
64
+ }
65
+
66
+ // src/primitives/Typography.tsx
67
+ import { jsx as jsx2 } from "react/jsx-runtime";
68
+ var headingSizeClasses = {
69
+ display: "polli:font-heading polli:text-5xl polli:leading-none",
70
+ title: "polli:font-heading polli:text-4xl polli:leading-none",
71
+ section: "polli:font-subheading polli:text-2xl polli:leading-tight",
72
+ subsection: "polli:font-subheading polli:text-xl polli:leading-tight",
73
+ card: "polli:font-subheading polli:text-lg polli:leading-tight"
74
+ };
75
+ var textSizeClasses = {
76
+ body: "polli:text-base polli:leading-relaxed",
77
+ sm: "polli:text-sm polli:leading-6",
78
+ xs: "polli:text-xs polli:leading-normal",
79
+ micro: "polli:text-micro polli:leading-normal"
80
+ };
81
+ var textToneClasses = {
82
+ base: "polli:text-theme-text-base",
83
+ strong: "polli:text-theme-text-strong",
84
+ soft: "polli:text-theme-text-soft",
85
+ muted: "polli:text-theme-text-muted"
86
+ };
87
+ var textWeightClasses = {
88
+ normal: "polli:font-normal",
89
+ medium: "polli:font-medium",
90
+ semibold: "polli:font-semibold",
91
+ bold: "polli:font-bold"
92
+ };
93
+ function headingClassName(size, className) {
94
+ return cn(
95
+ "polli:break-words polli:text-theme-text-strong",
96
+ headingSizeClasses[size],
97
+ className
98
+ );
99
+ }
100
+ function textClassName({
101
+ size,
102
+ tone,
103
+ weight,
104
+ className
105
+ }) {
106
+ return cn(
107
+ "polli:break-words polli:font-body",
108
+ textSizeClasses[size],
109
+ textToneClasses[tone],
110
+ textWeightClasses[weight],
111
+ className
112
+ );
113
+ }
114
+ function Heading({
115
+ as,
116
+ size = "section",
117
+ className,
118
+ children,
119
+ ...rest
120
+ }) {
121
+ const Component = as || "h2";
122
+ return /* @__PURE__ */ jsx2(Component, { ...rest, className: headingClassName(size, className), children });
123
+ }
124
+ function Text({
125
+ as,
126
+ size = "body",
127
+ tone = "base",
128
+ weight = "normal",
129
+ className,
130
+ children,
131
+ ...rest
132
+ }) {
133
+ const Component = as || "p";
134
+ return /* @__PURE__ */ jsx2(
135
+ Component,
136
+ {
137
+ ...rest,
138
+ className: textClassName({ size, tone, weight, className }),
139
+ children
140
+ }
141
+ );
142
+ }
143
+
144
+ // src/compositions/Alert.tsx
145
+ import { Fragment, jsx as jsx3, jsxs as jsxs2 } from "react/jsx-runtime";
146
+ var intentClasses = {
147
+ info: "polli:bg-theme-bg-pale polli:text-theme-text-strong",
148
+ advisory: "polli:bg-intent-warning-bg-light/45 polli:text-theme-text-base",
149
+ warning: "polli:bg-intent-warning-bg-light polli:text-intent-warning-text",
150
+ danger: "polli:bg-intent-danger-bg-light polli:text-intent-danger-text"
151
+ };
152
+ var Alert = ({
153
+ intent = "info",
154
+ title,
155
+ className,
156
+ children,
157
+ ...rest
158
+ }) => /* @__PURE__ */ jsxs2(
159
+ "div",
160
+ {
161
+ ...rest,
162
+ role: intent === "danger" ? "alert" : "status",
163
+ className: cn(
164
+ "polli:rounded-xl polli:px-3 polli:py-2 polli:text-sm",
165
+ intent === "advisory" && "polli:flex polli:items-start polli:gap-2",
166
+ intentClasses[intent],
167
+ className
168
+ ),
169
+ children: [
170
+ intent === "advisory" && /* @__PURE__ */ jsx3(WarningIcon, { className: "polli:mt-0.5 polli:h-4 polli:w-4 polli:shrink-0 polli:text-intent-warning-text" }),
171
+ /* @__PURE__ */ jsxs2("div", { className: "polli:min-w-0", children: [
172
+ title && (intent === "advisory" ? /* @__PURE__ */ jsxs2(Fragment, { children: [
173
+ /* @__PURE__ */ jsx3("strong", { className: "polli:font-semibold polli:text-theme-text-strong", children: title }),
174
+ " ",
175
+ "\u2014",
176
+ " "
177
+ ] }) : /* @__PURE__ */ jsx3(
178
+ Text,
179
+ {
180
+ as: "div",
181
+ size: "xs",
182
+ tone: "strong",
183
+ weight: "bold",
184
+ className: "polli:mb-1 polli:uppercase polli:tracking-wide",
185
+ children: title
186
+ }
187
+ )),
188
+ children
189
+ ] })
190
+ ]
191
+ }
192
+ );
193
+
194
+ // src/brand/lockup-horizontal.svg
195
+ var lockup_horizontal_default = 'data:image/svg+xml,<svg xmlns="http://www.w3.org/2000/svg" viewBox="0 0 858.891 105.6" fill="currentColor">%0A <g transform="translate(-13.81 -16.241) scale(0.921)"><path fill-rule="evenodd" d="M73.832 19.293a1893.685 1893.685 0 0 0-7.742 9.047c-1.93 2.273-3.274 3.898-4.266 5.156-.988 1.258-1.62 2.149-2.117 2.957-.5.805-.86 1.531-1.309 2.453-.14.285-.277.563-.402.813-.121.254-.238.48-.332.676a20.107 20.107 0 0 1-.34.652c-.008.008-.062 0-.156-.02s-.227-.047-.383-.09c-.16-.039-.351-.09-.558-.148-.207-.059-.43-.121-.668-.191-1.079-.32-1.895-.559-2.684-.743-.79-.18-1.55-.3-2.516-.382-.96-.082-2.129-.121-3.734-.145-1.602-.02-3.64-.023-6.348-.023H35.31l-2.485-.004H30.34v20.574l-.527.059-.524.058-1.055.117c-.59.067-1.203.157-1.84.274-.636.113-1.292.25-1.968.414-.676.16-1.371.348-2.086.555-.715.21-1.445.441-2.195.695-.47.16-1.024.36-1.594.574a64.38 64.38 0 0 0-1.684.649c-.523.207-.992.398-1.328.546-.336.149-.539.246-.539.274 0 .039.07.234.191.535.118.297.29.7.485 1.156.195.453.418.961.644 1.473.227.508.461 1.02.676 1.484a52.041 52.041 0 0 0 9.54 13.926 47.507 47.507 0 0 0 6.14 5.41c2.164 1.59 4.426 2.953 6.75 4.047a51.197 51.197 0 0 0 3.414 1.461c1.129.43 2.242.805 3.36 1.125 1.112.324 2.226.59 3.343.809a39.04 39.04 0 0 0 3.375.504c.84.085 1.781.136 2.777.156a51.632 51.632 0 0 0 6.203-.266 34.786 34.786 0 0 0 2.836-.394 59.177 59.177 0 0 1 2.633-.442c.149-.02.235-.023.246-.015.043.043-.02.195-.152.414a9.01 9.01 0 0 1-.582.812c-.242.313-.527.645-.813.965-.289.316-.582.617-.851.86-.57.519-1.168.968-1.809 1.355-.64.383-1.324.703-2.07.969-.746.261-1.555.464-2.441.617-.891.156-1.856.258-2.926.316-1.36.07-2.582.207-3.703.422-1.118.211-2.13.496-3.07.871-.938.375-1.801.84-2.618 1.403a15.82 15.82 0 0 0-2.351 2 14.205 14.205 0 0 0-1.489 1.765 13.256 13.256 0 0 0-1.148 1.945 15.518 15.518 0 0 0-.856 2.207 20.834 20.834 0 0 0-.59 2.543c-.058.348-.105.61-.156.817-.05.207-.105.36-.183.484a1.184 1.184 0 0 1-.325.332c-.144.106-.332.211-.578.356a9.157 9.157 0 0 0-2.543 2.183 8.797 8.797 0 0 0-1.52 2.813 8.33 8.33 0 0 0-.382 3.113 7.995 7.995 0 0 0 .852 3.098 7.95 7.95 0 0 0 1.574 2.117 9.294 9.294 0 0 0 2.168 1.566c.789.418 1.629.715 2.469.868.84.152 1.68.167 2.472.007a7.941 7.941 0 0 0 1.188-.336c.406-.144.82-.32 1.222-.515.399-.2.79-.418 1.149-.653.36-.234.691-.476.976-.73a6.93 6.93 0 0 0 1.473-1.86c.39-.71.68-1.492.855-2.308.176-.82.243-1.676.188-2.527a8.74 8.74 0 0 0-.531-2.516 5.919 5.919 0 0 0-.68-1.281c-.289-.43-.64-.856-1.031-1.258a10.34 10.34 0 0 0-1.262-1.11 8.299 8.299 0 0 0-1.379-.847c-.414-.2-.722-.352-.95-.492-.226-.137-.366-.27-.44-.43-.075-.16-.083-.352-.043-.613.039-.266.125-.598.242-1.043.226-.871.566-1.695 1.004-2.465a10.426 10.426 0 0 1 3.672-3.754c.77-.46 1.605-.836 2.492-1.102.152-.046.386-.093.675-.144a30.829 30.829 0 0 1 2.246-.273c.43-.043.876-.075 1.317-.102a41.754 41.754 0 0 0 2.773-.25 19.813 19.813 0 0 0 2.243-.406 13.283 13.283 0 0 0 1.918-.621c.609-.246 1.199-.536 1.804-.88a20.824 20.824 0 0 0 1.774-1.116c.539-.383 1.031-.786 1.511-1.227.48-.445.942-.934 1.415-1.488.468-.559.953-1.18 1.468-1.899l.309-.426.308-.43.313-.429.309-.426v19.633l-.399.262-.402.265-.797.532a11.66 11.66 0 0 0-1.567 1.21c-.44.41-.808.837-1.113 1.305-.305.465-.55.97-.746 1.535-.2.567-.351 1.192-.473 1.903a7.401 7.401 0 0 0 .024 2.574 8.502 8.502 0 0 0 2.441 4.543 7.787 7.787 0 0 0 2.157 1.496c.804.367 1.632.61 2.46.715.829.105 1.66.082 2.47-.07a7.963 7.963 0 0 0 2.343-.828 8.831 8.831 0 0 0 2.094-1.567c.406-.402.738-.789 1.011-1.18.27-.394.48-.796.641-1.234.156-.441.266-.918.336-1.473.07-.55.102-1.171.105-1.894 0-.524 0-.93-.011-1.266a6.504 6.504 0 0 0-.074-.836 3.967 3.967 0 0 0-.192-.683c-.09-.23-.207-.485-.355-.805a7.845 7.845 0 0 0-1.594-2.262 8.117 8.117 0 0 0-1.07-.879 9.342 9.342 0 0 0-1.254-.718l-.348-.164-.348-.16-.343-.165-.348-.164v-4.957l-.004-2.476v-2.48c0-1.36.004-2.657.012-3.833.008-1.176.02-2.23.035-3.11.016-.882.035-1.589.055-2.07.02-.48.043-.734.066-.707.02.028.074.102.156.208l.301.421c.121.168.258.364.406.575.145.207.305.433.461.664.38.543.735 1.027 1.09 1.468.352.438.703.832 1.063 1.2.363.367.742.707 1.148 1.039.406.328.844.652 1.332.98.777.528 1.5.965 2.223 1.328.718.364 1.437.657 2.203.89.765.235 1.582.411 2.496.544.914.137 1.93.23 3.094.3.433.024.867.055 1.289.087a40.742 40.742 0 0 1 2.148.215c.27.035.477.07.602.101.965.234 1.898.64 2.761 1.168a11.119 11.119 0 0 1 2.34 1.93 10.355 10.355 0 0 1 1.688 2.437c.43.867.707 1.781.805 2.695l.03.313.032.309.035.316.031.309-.27.14-.538.274-.274.136c-.828.426-1.558.922-2.183 1.493a7.954 7.954 0 0 0-1.54 1.91 7.731 7.731 0 0 0-.87 2.273 9.264 9.264 0 0 0-.172 2.594c.066.96.285 1.871.64 2.703a7.903 7.903 0 0 0 1.446 2.258 8.316 8.316 0 0 0 2.14 1.683c.817.45 1.727.782 2.715.98 1.309.255 2.617.126 3.836-.3a8.813 8.813 0 0 0 3.266-2.05 8.893 8.893 0 0 0 2.117-3.239c.453-1.21.613-2.527.387-3.848a9.06 9.06 0 0 0-1.504-3.644 9.344 9.344 0 0 0-1.301-1.477 8.97 8.97 0 0 0-1.61-1.16c-.18-.097-.347-.2-.507-.293-.16-.097-.305-.183-.434-.265-.125-.082-.23-.153-.312-.211a.573.573 0 0 1-.137-.121.813.813 0 0 1-.063-.184c-.027-.094-.058-.223-.097-.375a11.147 11.147 0 0 1-.11-.512c-.039-.187-.082-.39-.12-.594-.098-.5-.227-1.023-.383-1.554a19.7 19.7 0 0 0-.551-1.594c-.207-.527-.43-1.039-.668-1.512a12.868 12.868 0 0 0-.735-1.3 12.93 12.93 0 0 0-1.582-1.954 15.064 15.064 0 0 0-1.98-1.691 15.833 15.833 0 0 0-2.27-1.355 14.35 14.35 0 0 0-2.449-.934 9.33 9.33 0 0 0-.836-.188 25.72 25.72 0 0 0-1.094-.18 40.224 40.224 0 0 0-2.605-.269 51.614 51.614 0 0 1-1.281-.11 47.27 47.27 0 0 1-1.242-.128 37.65 37.65 0 0 1-1.067-.14 12.643 12.643 0 0 1-.746-.133 11.48 11.48 0 0 1-1.508-.458c-.5-.187-.996-.414-1.472-.668a12.371 12.371 0 0 1-2.606-1.847 16.117 16.117 0 0 1-1.676-1.836 5.604 5.604 0 0 1-.465-.707c-.097-.192-.125-.324-.074-.375.016-.016.117-.012.285.004.168.015.407.047.696.09.293.039.633.093 1.008.156.37.062.78.137 1.207.215a60.65 60.65 0 0 0 1.789.304c.527.079 1.011.133 1.535.172.523.04 1.09.063 1.777.078.692.016 1.504.02 2.527.024 1.22 0 2.204-.008 3.06-.031a27.474 27.474 0 0 0 2.257-.153 20.662 20.662 0 0 0 2.047-.336 48.885 48.885 0 0 0 2.426-.59 44.634 44.634 0 0 0 5.347-1.761 42.256 42.256 0 0 0 4.98-2.387 43.059 43.059 0 0 0 4.633-3.031 46.976 46.976 0 0 0 4.329-3.692 55.822 55.822 0 0 0 3.312-3.468 49.244 49.244 0 0 0 2.879-3.63 50.142 50.142 0 0 0 2.516-3.886 57.29 57.29 0 0 0 2.23-4.258c.375-.793.691-1.48.95-2.066.257-.59.46-1.078.613-1.473.144-.398.242-.7.285-.918.047-.219.039-.351-.016-.402-.078-.07-.41-.23-.902-.442a57.272 57.272 0 0 0-1.828-.73c-.692-.262-1.434-.535-2.121-.777a36.517 36.517 0 0 0-1.778-.586 54.289 54.289 0 0 0-3.531-.879 48.341 48.341 0 0 0-1.715-.332 23.874 23.874 0 0 0-1.465-.215l-.633-.07-.312-.04-.316-.035V39.301l-2.461.004h-2.461l-2.457.004h-2.461c-2.645.004-4.664.007-6.266.03-1.605.024-2.797.067-3.789.141-.992.079-1.789.192-2.598.356-.812.164-1.64.383-2.703.668a23.531 23.531 0 0 1-1.203.3c-.16.036-.289.06-.383.075-.093.016-.148.02-.156.008a29.962 29.962 0 0 1-.355-.672c-.102-.2-.22-.434-.348-.692a79.19 79.19 0 0 1-.418-.828c-.45-.902-.785-1.578-1.168-2.234-.379-.66-.805-1.297-1.422-2.117-.617-.817-1.433-1.82-2.594-3.203-1.16-1.387-2.671-3.153-4.68-5.508-1.398-1.64-2.53-2.961-3.44-4.02a272.265 272.265 0 0 0-2.122-2.441c-.523-.59-.875-.973-1.11-1.211-.237-.234-.355-.324-.402-.32-.015 0-.07.047-.156.132-.086.086-.199.207-.34.356-.136.148-.296.328-.472.523-.172.2-.364.414-.555.641m7.059 11.504a151.52 151.52 0 0 1 3.582 4.336 58.05 58.05 0 0 1 2.488 3.336c.66.965 1.16 1.793 1.516 2.515.355.72.57 1.332.66 1.868.023.14.039.25.031.347a.526.526 0 0 1-.09.262 1.205 1.205 0 0 1-.266.262c-.12.093-.285.199-.492.332-.332.21-.773.554-1.265.976-.493.426-1.043.934-1.594 1.473a43.455 43.455 0 0 0-1.625 1.672 25.487 25.487 0 0 0-1.348 1.574c-.398.512-.812 1.09-1.222 1.703a39.76 39.76 0 0 0-1.204 1.91 39.73 39.73 0 0 0-1.085 1.946c-.329.636-.622 1.25-.86 1.812-.34.809-.672 1.727-.976 2.688-.305.96-.582 1.964-.817 2.945-.234.984-.43 1.945-.562 2.816-.137.871-.215 1.653-.215 2.282-.004.609-.024 1.054-.055 1.332-.035.277-.086.386-.152.328-.067-.055-.149-.278-.246-.664a26.572 26.572 0 0 1-.336-1.66 76.29 76.29 0 0 0-.54-2.758 81.86 81.86 0 0 0-.624-2.66c-.211-.844-.43-1.637-.645-2.34a22.878 22.878 0 0 0-.617-1.801 24.472 24.472 0 0 0-.742-1.66 48.94 48.94 0 0 0-2.047-3.746c-.36-.59-.707-1.13-1.027-1.582a21.393 21.393 0 0 0-1.153-1.446 44.776 44.776 0 0 0-1.558-1.71 47.283 47.283 0 0 0-1.657-1.657c-.539-.512-1.043-.96-1.468-1.3-.172-.141-.34-.278-.489-.41a8.144 8.144 0 0 1-.402-.376 3.846 3.846 0 0 1-.27-.293c-.066-.082-.101-.144-.101-.176 0-.105.098-.378.262-.753.16-.372.386-.848.644-1.356.258-.508.547-1.05.828-1.562a24.735 24.735 0 0 1 1.582-2.508c.262-.371.543-.746.871-1.16.329-.418.7-.871 1.149-1.407.45-.535.973-1.144 1.601-1.87.235-.27.536-.614.875-1.005.336-.394.715-.832 1.114-1.293.394-.46.808-.937 1.215-1.41.402-.472.8-.933 1.168-1.363l.668-.777.668-.774.667-.777.665-.778.117.118.113.12.117.118.113.117a110.75 110.75 0 0 1 1.668 1.914l1.555 1.809c.57.664 1.184 1.383 1.813 2.12M51.227 44.149c.425.09.867.2 1.304.317.434.117.864.242 1.254.37.395.13.754.259 1.055.38.297.12.535.234.687.332.051.035.09.094.11.191.02.098.023.239.011.442-.015.199-.046.457-.097.793-.055.336-.125.75-.215 1.257-.094.524-.172.989-.23 1.446-.06.457-.106.91-.137 1.41a32.68 32.68 0 0 0-.067 1.7c-.011.648-.015 1.401-.015 2.312 0 .98.004 1.761.015 2.414.012.648.035 1.172.07 1.644.04.473.09.89.165 1.336.07.446.164.918.285 1.488.074.348.156.72.242 1.094.082.375.168.754.254 1.11.086.359.168.695.242.992.074.3.14.554.195.75.055.195.102.383.149.554.043.172.082.329.113.461.031.13.059.239.07.317.016.078.02.125.012.133a.942.942 0 0 1-.183-.079 35.955 35.955 0 0 1-1.148-.629c-.255-.144-.532-.304-.821-.472a95.651 95.651 0 0 0-2.031-1.152 44.616 44.616 0 0 0-1.723-.899 34 34 0 0 0-1.633-.75 44.224 44.224 0 0 0-1.762-.715 50.86 50.86 0 0 0-2.855-1.004 45.68 45.68 0 0 0-2.8-.793 39.106 39.106 0 0 0-2.653-.562 26.924 26.924 0 0 0-2.406-.309l-.426-.03-.426-.036-.426-.031-.426-.035V43.758h7.215c1.578.004 2.832.008 3.852.015 1.02.012 1.8.028 2.437.055a20.37 20.37 0 0 1 1.547.117c.43.051.797.117 1.196.203m64.886 7.493c0 1.23-.008 2.34-.015 3.312-.008.977-.02 1.817-.04 2.504-.015.691-.038 1.23-.062 1.602-.023.367-.05.57-.082.59a1.259 1.259 0 0 1-.281.07c-.153.031-.367.062-.617.101-.254.035-.547.078-.868.117-.32.043-.664.083-1.02.122-.765.086-1.538.199-2.323.343-.79.141-1.59.313-2.407.516-.816.203-1.652.434-2.503.7-.856.26-1.73.558-2.625.882-.735.266-1.305.477-1.801.672-.496.195-.918.375-1.348.578-.43.203-.867.43-1.398.723-.528.289-1.149.644-1.946 1.101a34.54 34.54 0 0 1-1.644.895 9.035 9.035 0 0 1-.528.242c-.128.055-.21.074-.226.059-.016-.016-.02-.082-.012-.184a5.49 5.49 0 0 1 .055-.422c.031-.172.066-.371.113-.59.043-.219.098-.457.156-.699.258-1.082.454-1.906.602-2.613.152-.703.258-1.282.332-1.867.078-.583.125-1.172.156-1.895.035-.723.059-1.578.086-2.695.024-.98.04-1.77.043-2.434.004-.66-.004-1.2-.027-1.684a17.76 17.76 0 0 0-.113-1.355 29.95 29.95 0 0 0-.223-1.445c-.152-.887-.27-1.543-.336-2.035-.066-.493-.086-.825-.04-1.059a.664.664 0 0 1 .333-.492c.18-.117.437-.207.781-.336.692-.266 1.29-.469 1.926-.63.637-.16 1.309-.276 2.152-.358.84-.082 1.852-.133 3.164-.16 1.309-.032 2.922-.044 4.965-.047l3.813-.008h1.902l1.906-.004v7.883m-25.05-2.368c.195 1.02.343 1.977.437 2.91.098.934.14 1.837.133 2.75a25.621 25.621 0 0 1-.18 2.797c-.11.961-.273 1.961-.488 3.036a39.395 39.395 0 0 1-.746 3.12 31.161 31.161 0 0 1-.946 2.829c-.355.906-.75 1.781-1.187 2.64a30.9 30.9 0 0 1-1.473 2.555c-.215.34-.597.86-1.074 1.469a76.18 76.18 0 0 1-1.625 2.012 79.82 79.82 0 0 1-1.73 2.011 30.987 30.987 0 0 1-1.387 1.489l-.258.25-.262.254-.257.253-.262.254.02-1.62.023-1.622.02-1.617.019-1.621c.02-1.414.035-2.543.058-3.465.02-.922.047-1.637.082-2.227.036-.59.082-1.054.141-1.472.059-.422.133-.797.227-1.211a38.117 38.117 0 0 1 1.086-3.91c.418-1.235.89-2.403 1.433-3.524a28.68 28.68 0 0 1 1.82-3.222 31.184 31.184 0 0 1 2.258-3.012 18.08 18.08 0 0 1 1.012-1.086c.367-.363.746-.715 1.106-1.023.355-.31.69-.575.964-.762.27-.188.48-.297.59-.297.035 0 .07.031.11.086.039.05.078.129.12.226a4.214 4.214 0 0 1 .216.75m-28.895.91c.914.915 1.738 1.86 2.488 2.86a25.52 25.52 0 0 1 2.028 3.187 30.027 30.027 0 0 1 1.636 3.645 42.64 42.64 0 0 1 1.32 4.23c.122.485.22.872.294 1.274.074.406.125.832.164 1.387.043.554.07 1.242.09 2.171.023.934.039 2.11.058 3.645.02 1.441.035 2.566.04 3.438.003.87 0 1.488-.016 1.921-.016.434-.043.68-.086.813-.04.129-.094.14-.16.101-.106-.058-.376-.324-.743-.722-.367-.399-.84-.926-1.34-1.512a82.643 82.643 0 0 1-1.539-1.832 48.185 48.185 0 0 1-1.34-1.695c-.34-.45-.722-1.031-1.117-1.688a40.534 40.534 0 0 1-1.183-2.125 43.623 43.623 0 0 1-1.075-2.207 21.82 21.82 0 0 1-.773-1.933c-.07-.215-.152-.477-.238-.762-.082-.29-.172-.602-.258-.922a49.961 49.961 0 0 1-.461-1.844c-.187-.86-.316-2.113-.395-3.508a62.606 62.606 0 0 1-.066-4.378c.027-1.434.106-2.762.227-3.735.12-.969.285-1.578.492-1.578.023 0 .097.05.21.14.11.09.259.22.438.38a44.358 44.358 0 0 1 1.305 1.25m53.23 15.39a24.897 24.897 0 0 1-.965 4.492 26.72 26.72 0 0 1-.824 2.25 33.11 33.11 0 0 1-1.058 2.305c-.344.676-.66 1.262-.98 1.805-.321.543-.641 1.035-.997 1.523-.351.485-.734.961-1.18 1.473-.445.508-.953 1.05-1.542 1.66a35.204 35.204 0 0 1-1.579 1.54c-.496.448-.976.847-1.468 1.21-.493.367-1 .703-1.551 1.031-.55.328-1.145.649-1.817.989-.84.421-1.624.761-2.445 1.03a15.58 15.58 0 0 1-2.683.626c-1.004.152-2.145.25-3.532.308-1.382.063-3.011.082-4.98.082H82.18l.03-.113.036-.113.031-.113.035-.114c.055-.199.243-.582.516-1.074.274-.496.633-1.101 1.027-1.746.399-.645.836-1.324 1.266-1.969.43-.644.852-1.25 1.219-1.746a44.604 44.604 0 0 1 5.883-6.445 41.569 41.569 0 0 1 6.812-4.977 38.048 38.048 0 0 1 7.477-3.36 34.711 34.711 0 0 1 7.886-1.585c.11-.008.22-.02.325-.027.105-.008.203-.02.293-.028.09-.008.164-.02.226-.023.063-.008.106-.016.13-.02.023-.004.038.024.05.078a.934.934 0 0 1 .023.239c.004.101 0 .226-.007.363-.008.137-.02.29-.04.45M30.934 66.89c.242 1.234.562 2.488.945 3.738a41.182 41.182 0 0 0 1.32 3.68 37.438 37.438 0 0 0 1.61 3.425 27.185 27.185 0 0 0 1.816 2.961c.45.633.992 1.313 1.594 2.004a38.232 38.232 0 0 0 1.949 2.074c.687.68 1.395 1.34 2.098 1.942.699.597 1.39 1.144 2.03 1.597.298.208.575.407.825.59.25.184.469.352.649.496.18.141.32.258.41.344.09.082.129.133.105.14-.066.028-.328-.038-.71-.167-.384-.13-.891-.324-1.458-.555a48.612 48.612 0 0 1-1.812-.777 38.066 38.066 0 0 1-7.352-4.297 42.01 42.01 0 0 1-5.043-4.422 44.733 44.733 0 0 1-4.37-5.254 45.026 45.026 0 0 1-3.575-5.941c-.125-.258-.25-.504-.356-.735-.109-.226-.207-.433-.285-.609-.078-.176-.14-.32-.18-.422-.042-.101-.058-.164-.05-.172.008-.008.062-.031.148-.066.09-.035.211-.082.36-.137.144-.05.32-.113.507-.18l.614-.21c.433-.145.988-.297 1.593-.446a39.578 39.578 0 0 1 3.805-.73c.574-.078 1.07-.125 1.434-.133l.23-.004.235-.004.23-.004.234-.004.114.57.109.57.113.567.114.57m8.199-1.87c1.383.238 2.8.59 4.226 1.039 1.426.449 2.856 1 4.27 1.636a42.064 42.064 0 0 1 4.16 2.164c1.348.801 2.648 1.68 3.879 2.621.41.317.95.778 1.547 1.32a69.069 69.069 0 0 1 1.914 1.805c.652.641 1.3 1.293 1.871 1.899a31.34 31.34 0 0 1 1.422 1.586 46.416 46.416 0 0 1 1.726 2.27c.57.796 1.125 1.613 1.622 2.39.5.781.94 1.52 1.285 2.152.343.637.593 1.172.71 1.543l.032.114.035.113.04.113.03.113h-5.511c-1.918 0-3.48-.02-4.801-.078-1.324-.058-2.41-.156-3.371-.312a15.68 15.68 0 0 1-2.63-.653c-.831-.289-1.651-.652-2.581-1.109a20.527 20.527 0 0 1-3.137-1.926 24.776 24.776 0 0 1-2.902-2.523 26.07 26.07 0 0 1-2.528-2.988 24.005 24.005 0 0 1-2.011-3.305 35.404 35.404 0 0 1-1.192-2.649 38.321 38.321 0 0 1-.968-2.66 25.394 25.394 0 0 1-.645-2.39c-.156-.72-.238-1.348-.238-1.832 0-.211 0-.371.011-.489.012-.12.032-.203.079-.257.043-.055.105-.082.203-.098.093-.016.222-.016.39-.016.094 0 .25.012.453.032.204.023.454.05.73.09.278.035.583.078.903.128.32.047.653.102.977.157m84.953.085c.336.06.809.168 1.336.297.523.13 1.101.282 1.64.434.543.152 1.051.305 1.43.43.387.125.649.222.7.273.027.023-.028.184-.149.45-.121.265-.3.632-.527 1.062-.223.433-.493.93-.79 1.457a56.9 56.9 0 0 1-.937 1.633 44.31 44.31 0 0 1-3.473 5.027 46.345 46.345 0 0 1-4.12 4.531 43.203 43.203 0 0 1-4.571 3.848 34.726 34.726 0 0 1-4.82 2.969 42.898 42.898 0 0 1-3.02 1.367c-.469.191-.89.351-1.207.457-.32.105-.535.156-.598.137-.027-.012.004-.055.079-.133.074-.074.195-.18.351-.309.153-.129.348-.281.563-.445.218-.164.465-.344.722-.531a31.987 31.987 0 0 0 3.067-2.473 30.025 30.025 0 0 0 4.992-5.887 32.018 32.018 0 0 0 1.953-3.441c.398-.809.75-1.57 1.059-2.309a30.121 30.121 0 0 0 1.48-4.39c.188-.758.363-1.547.52-2.391l.109-.59.113-.586.11-.59.109-.586h1.133c.156 0 .347.008.566.024.215.012.457.035.703.062a20.21 20.21 0 0 1 1.477.203m-79.191 55.711c.363.23.671.555.917.934.247.379.426.816.536 1.273.109.457.148.938.105 1.407a3.61 3.61 0 0 1-.371 1.336c-.156.304-.332.57-.539.808a3.303 3.303 0 0 1-1.512.996 4.104 4.104 0 0 1-.965.184 4.468 4.468 0 0 1-1.03-.043 3.427 3.427 0 0 1-1.719-.805 4.434 4.434 0 0 1-.696-.77 3.378 3.378 0 0 1-.555-1.284 4.203 4.203 0 0 1-.046-1.434c.066-.48.21-.945.43-1.36.214-.413.507-.78.87-1.058a3.654 3.654 0 0 1 1.059-.555c.383-.132.789-.207 1.2-.222.41-.02.82.023 1.214.12.39.102.766.259 1.102.473m64.375-.195c.175.086.37.23.574.406.199.176.402.38.586.598.187.215.36.438.492.652.133.211.226.407.266.567.019.07.035.168.042.285.012.113.02.25.024.398.004.145 0 .301-.004.457a8.875 8.875 0 0 1-.023.461 3.545 3.545 0 0 1-.774 1.953 3.866 3.866 0 0 1-3.625 1.368 3.584 3.584 0 0 1-1.883-.95 4.289 4.289 0 0 1-.55-.609 2.827 2.827 0 0 1-.352-.637 3.475 3.475 0 0 1-.188-.746 6.793 6.793 0 0 1-.054-.941c0-.352.027-.672.082-.961.05-.293.137-.555.25-.797.117-.242.265-.465.449-.676.188-.21.406-.41.668-.601.25-.188.547-.328.879-.434a4.168 4.168 0 0 1 1.05-.187c.364-.024.735 0 1.09.066.36.062.7.176 1 .328m-31.93.473c.177.125.368.328.556.57.183.242.367.531.527.824.16.293.297.598.394.88a2.5 2.5 0 0 1 .16.737c0 .258-.074.567-.206.895a5.551 5.551 0 0 1-.54.996 6 6 0 0 1-.742.906c-.265.27-.547.489-.816.63a2.93 2.93 0 0 1-1.024.3 3.709 3.709 0 0 1-1.117-.047 3.928 3.928 0 0 1-1.066-.37 3.194 3.194 0 0 1-.871-.669 4.034 4.034 0 0 1-.68-1.012 4.028 4.028 0 0 1-.355-1.12 3.802 3.802 0 0 1-.012-1.153 3.5 3.5 0 0 1 .344-1.094c.187-.363.375-.664.586-.91.21-.242.441-.43.71-.57.266-.14.57-.23.922-.282a6.496 6.496 0 0 1 1.239-.046c.254.011.472.027.664.046.195.024.363.055.515.098a2.284 2.284 0 0 1 .813.39"/></g>%0A <g transform="translate(-68.454 -154.133) scale(4.051)"><path d="M82.117 39.523c-.152.172-.191 2.747-.172 9.192l.059 8.945h4.773l.059-9.039c.039-7.113 0-9.078-.191-9.21-.438-.266-4.278-.192-4.528.112m7.621.117c-.21.4-.265 16.895-.054 17.696.093.398.187.418 2.441.418 1.969 0 2.371-.059 2.465-.305.21-.535.133-17.43-.074-17.828-.192-.324-.422-.363-2.391-.363-1.965 0-2.195.039-2.387.383m7.774-.27c-.075.078-.133.992-.133 2.024v1.867h4.793l-.055-1.965-.058-1.945-2.215-.055c-1.203-.02-2.254.02-2.332.074m50.312.152c-.156.172-.21.88-.172 1.965l.055 1.68h4.777l.055-1.793c.04-1.316-.02-1.852-.191-1.965-.133-.074-1.164-.152-2.27-.152-1.512 0-2.101.078-2.254.265m76.512-.152c-.074.078-.133.992-.133 2.024v1.867h4.793l-.055-1.965-.058-1.945-2.215-.055c-1.203-.02-2.254.02-2.332.074m-86.539 1.527c-.059.172-.117 1.145-.117 2.192v1.887h-.84c-.973 0-1.07.136-1.07 1.601 0 1.184.21 1.45 1.183 1.45h.727v2.042c0 1.145.058 2.899.132 3.907l.118 1.87h1.832l.058.895.055.918h5.54l.058-1.316c.039-.934-.02-1.375-.192-1.469-.133-.098-.781-.172-1.449-.172h-1.187l.039-3.3.058-3.278 1.336-.098 1.336-.093v-2.86l-1.336-.097-1.336-.094-.058-2.156-.055-2.133h-2.352c-1.984 0-2.386.054-2.48.304m-88.414 4.215c-.078.055-.137 4.04-.137 8.848 0 8.14.02 8.75.344 8.883.172.097 1.3.133 2.484.097l2.14-.058v-5.13h3.532c2.695 0 3.535-.058 3.555-.245.02-.117.035-.535.054-.899.02-.668.02-.668 1.032-.722l.996-.059v-8.906l-.594-.113a7.4 7.4 0 0 0-1.05-.114c-.419 0-.458-.078-.458-.86v-.858H55.38l-.059.707c-.054.726-.054.726-.953.78l-.918.06v-1.547h-1.97c-1.085 0-2.042.058-2.097.136m9.031 6.235v3.336l-2.023.058c-1.11.035-2.063.02-2.102-.02-.039-.038-.074-1.562-.074-3.394v-3.3h4.2Zm9.32-5.473c-.054.875-.074.914-.629.875a5.6 5.6 0 0 0-.992.059l-.441.078v8.941l1.012.059.996.054.054.918.059.895 4.91-.04 4.906-.054.059-.918.059-.894h2.082v-4.461c0-4.328-.02-4.485-.383-4.598-.211-.074-.668-.094-1.012-.055-.594.055-.613.036-.707-.8l-.098-.86-4.906-.058-4.91-.04Zm6.914 5.492v3.336h-4.007v-6.676h4.007Zm22.864-6.254c-.075.055-.133 2.934-.133 6.387v6.273l2.351-.058 2.329-.055.058-6.351.035-6.332h-2.25c-1.242 0-2.332.058-2.39.136m6.972 6.196.059 6.351h4.773l.059-4.824.04-4.809h4.007l.039 4.809.059 4.824h4.773l.059-5.379.039-5.379-.996-.054-1.012-.059-.055-.914-.058-.898-3.094.039-3.094.058-.059.703-.058.727h-1.89v-1.527h-3.63Zm17-4.864.055 1.489 3.785.058 3.781.035-.058.918-.059.895-3.148.097-3.153.094-.019.762v.766l-.973.054c-.824.04-.996.133-1.09.477-.152.555-.152 1.773 0 2.879l.133.879h1.832l.059.894.058.918 2.922.055 2.903.058v-1.562l.918.055c.898.058.898.058.953.761l.058.727h3.61V46.922l-.574-.133c-.305-.074-.649-.074-.743-.02-.441.29-.785-.132-.785-.953v-.84h-10.523Zm7.602 7.399v.86h-3.629v-1.716h3.629Zm18.621-8.637c-.055.133-.074 2.992-.055 6.352l.055 6.101h4.777V45.074l-2.351-.058c-1.778-.04-2.367.02-2.426.191m9.168 0a5.3 5.3 0 0 0-.133.914c-.058.668-.058.668-1.07.727l-.992.054.039 4.426.054 4.422.997.059.992.058.058.895.055.898 4.93.055 4.906.039v-1.906h2.101v-8.961h-.742c-1.207 0-1.36-.137-1.36-1.07v-.84h-4.866c-3.746 0-4.91.058-4.969.23m6.973 6.16v3.336h-4.012v-6.676h4.012Zm7.179-6.234c-.054.113-.035 8.406.059 11.894l.02.727h2.367c1.988 0 2.386-.059 2.484-.305.059-.172.113-2.347.113-4.863v-4.574l1.97.054 1.948.059.094 4.766.098 4.77h4.773V46.98l-.957-.094-.953-.098-.094-.855-.097-.86-3.094-.058-3.113-.04v1.528h-1.91v-1.527h-1.798c-.992 0-1.851.078-1.91.156m18.321.075a5 5 0 0 0-.137.914c-.055.668-.055.668-1.05.727l-1.013.054v1.891c0 1.027.059 2 .118 2.172.074.23.379.305 1.03.305h.934l.06.8.058.82 2.73.06 2.711.058v1.695h-3.57c-1.989 0-3.707.074-3.84.172-.172.094-.23.535-.191 1.469l.058 1.316h10.313l.058-.898.055-.895.996-.058.992-.059.059-1.617c.074-2.367.035-2.48-1.11-2.48h-.937l-.055-.821-.058-.8-2.77-.094-2.77-.098v-1.715l3.516-.059c1.95-.02 3.61-.113 3.723-.207.133-.117.191-.726.152-1.527l-.074-1.355h-4.95c-3.8 0-4.984.058-5.038.23m19.902 0c-.04.133-.04.8.035 1.488l.117 1.239 3.684.058 3.668.035v1.91h-6.3v1.715h-2.102v4.176l1.011.059.992.054.06.918.054.914 2.906-.058 2.902-.055.059-.726c.055-.707.074-.707.894-.707.825 0 .844 0 .899.707l.059.726 1.87.055 1.852.058V52.32c0-4.215-.055-5.433-.226-5.453-.137-.02-.594-.039-1.012-.058-.766-.02-.766-.02-.863-.875l-.094-.86-5.176-.058c-4.05-.04-5.215 0-5.289.191m7.504 8.637v.879l-1.758-.059-1.773-.055-.059-.535c-.113-1.011 0-1.086 1.871-1.086h1.719Zm7.449-2.477v6.387h4.719l.113-2.156a67 67 0 0 0 0-8.293l-.113-2.328h-4.719Zm-22.137 2.27c-.152.172-.21.894-.171 2.133l.058 1.89 2.063.055 2.062.058-.058-2.156-.055-2.152-1.836-.059c-1.414-.039-1.89.02-2.063.23m0 0"/></g>%0A</svg>%0A';
196
+
197
+ // src/brand/mark.svg
198
+ var mark_default = 'data:image/svg+xml,<svg xmlns="http://www.w3.org/2000/svg" viewBox="15 17.6409 119.9998 114.7498" fill="currentColor"><path fill-rule="evenodd" d="M73.832 19.293a1893.685 1893.685 0 0 0-7.742 9.047c-1.93 2.273-3.274 3.898-4.266 5.156-.988 1.258-1.62 2.149-2.117 2.957-.5.805-.86 1.531-1.309 2.453-.14.285-.277.563-.402.813-.121.254-.238.48-.332.676a20.107 20.107 0 0 1-.34.652c-.008.008-.062 0-.156-.02s-.227-.047-.383-.09c-.16-.039-.351-.09-.558-.148-.207-.059-.43-.121-.668-.191-1.079-.32-1.895-.559-2.684-.743-.79-.18-1.55-.3-2.516-.382-.96-.082-2.129-.121-3.734-.145-1.602-.02-3.64-.023-6.348-.023H35.31l-2.485-.004H30.34v20.574l-.527.059-.524.058-1.055.117c-.59.067-1.203.157-1.84.274-.636.113-1.292.25-1.968.414-.676.16-1.371.348-2.086.555-.715.21-1.445.441-2.195.695-.47.16-1.024.36-1.594.574a64.38 64.38 0 0 0-1.684.649c-.523.207-.992.398-1.328.546-.336.149-.539.246-.539.274 0 .039.07.234.191.535.118.297.29.7.485 1.156.195.453.418.961.644 1.473.227.508.461 1.02.676 1.484a52.041 52.041 0 0 0 9.54 13.926 47.507 47.507 0 0 0 6.14 5.41c2.164 1.59 4.426 2.953 6.75 4.047a51.197 51.197 0 0 0 3.414 1.461c1.129.43 2.242.805 3.36 1.125 1.112.324 2.226.59 3.343.809a39.04 39.04 0 0 0 3.375.504c.84.085 1.781.136 2.777.156a51.632 51.632 0 0 0 6.203-.266 34.786 34.786 0 0 0 2.836-.394 59.177 59.177 0 0 1 2.633-.442c.149-.02.235-.023.246-.015.043.043-.02.195-.152.414a9.01 9.01 0 0 1-.582.812c-.242.313-.527.645-.813.965-.289.316-.582.617-.851.86-.57.519-1.168.968-1.809 1.355-.64.383-1.324.703-2.07.969-.746.261-1.555.464-2.441.617-.891.156-1.856.258-2.926.316-1.36.07-2.582.207-3.703.422-1.118.211-2.13.496-3.07.871-.938.375-1.801.84-2.618 1.403a15.82 15.82 0 0 0-2.351 2 14.205 14.205 0 0 0-1.489 1.765 13.256 13.256 0 0 0-1.148 1.945 15.518 15.518 0 0 0-.856 2.207 20.834 20.834 0 0 0-.59 2.543c-.058.348-.105.61-.156.817-.05.207-.105.36-.183.484a1.184 1.184 0 0 1-.325.332c-.144.106-.332.211-.578.356a9.157 9.157 0 0 0-2.543 2.183 8.797 8.797 0 0 0-1.52 2.813 8.33 8.33 0 0 0-.382 3.113 7.995 7.995 0 0 0 .852 3.098 7.95 7.95 0 0 0 1.574 2.117 9.294 9.294 0 0 0 2.168 1.566c.789.418 1.629.715 2.469.868.84.152 1.68.167 2.472.007a7.941 7.941 0 0 0 1.188-.336c.406-.144.82-.32 1.222-.515.399-.2.79-.418 1.149-.653.36-.234.691-.476.976-.73a6.93 6.93 0 0 0 1.473-1.86c.39-.71.68-1.492.855-2.308.176-.82.243-1.676.188-2.527a8.74 8.74 0 0 0-.531-2.516 5.919 5.919 0 0 0-.68-1.281c-.289-.43-.64-.856-1.031-1.258a10.34 10.34 0 0 0-1.262-1.11 8.299 8.299 0 0 0-1.379-.847c-.414-.2-.722-.352-.95-.492-.226-.137-.366-.27-.44-.43-.075-.16-.083-.352-.043-.613.039-.266.125-.598.242-1.043.226-.871.566-1.695 1.004-2.465a10.426 10.426 0 0 1 3.672-3.754c.77-.46 1.605-.836 2.492-1.102.152-.046.386-.093.675-.144a30.829 30.829 0 0 1 2.246-.273c.43-.043.876-.075 1.317-.102a41.754 41.754 0 0 0 2.773-.25 19.813 19.813 0 0 0 2.243-.406 13.283 13.283 0 0 0 1.918-.621c.609-.246 1.199-.536 1.804-.88a20.824 20.824 0 0 0 1.774-1.116c.539-.383 1.031-.786 1.511-1.227.48-.445.942-.934 1.415-1.488.468-.559.953-1.18 1.468-1.899l.309-.426.308-.43.313-.429.309-.426v19.633l-.399.262-.402.265-.797.532a11.66 11.66 0 0 0-1.567 1.21c-.44.41-.808.837-1.113 1.305-.305.465-.55.97-.746 1.535-.2.567-.351 1.192-.473 1.903a7.401 7.401 0 0 0 .024 2.574 8.502 8.502 0 0 0 2.441 4.543 7.787 7.787 0 0 0 2.157 1.496c.804.367 1.632.61 2.46.715.829.105 1.66.082 2.47-.07a7.963 7.963 0 0 0 2.343-.828 8.831 8.831 0 0 0 2.094-1.567c.406-.402.738-.789 1.011-1.18.27-.394.48-.796.641-1.234.156-.441.266-.918.336-1.473.07-.55.102-1.171.105-1.894 0-.524 0-.93-.011-1.266a6.504 6.504 0 0 0-.074-.836 3.967 3.967 0 0 0-.192-.683c-.09-.23-.207-.485-.355-.805a7.845 7.845 0 0 0-1.594-2.262 8.117 8.117 0 0 0-1.07-.879 9.342 9.342 0 0 0-1.254-.718l-.348-.164-.348-.16-.343-.165-.348-.164v-4.957l-.004-2.476v-2.48c0-1.36.004-2.657.012-3.833.008-1.176.02-2.23.035-3.11.016-.882.035-1.589.055-2.07.02-.48.043-.734.066-.707.02.028.074.102.156.208l.301.421c.121.168.258.364.406.575.145.207.305.433.461.664.38.543.735 1.027 1.09 1.468.352.438.703.832 1.063 1.2.363.367.742.707 1.148 1.039.406.328.844.652 1.332.98.777.528 1.5.965 2.223 1.328.718.364 1.437.657 2.203.89.765.235 1.582.411 2.496.544.914.137 1.93.23 3.094.3.433.024.867.055 1.289.087a40.742 40.742 0 0 1 2.148.215c.27.035.477.07.602.101.965.234 1.898.64 2.761 1.168a11.119 11.119 0 0 1 2.34 1.93 10.355 10.355 0 0 1 1.688 2.437c.43.867.707 1.781.805 2.695l.03.313.032.309.035.316.031.309-.27.14-.538.274-.274.136c-.828.426-1.558.922-2.183 1.493a7.954 7.954 0 0 0-1.54 1.91 7.731 7.731 0 0 0-.87 2.273 9.264 9.264 0 0 0-.172 2.594c.066.96.285 1.871.64 2.703a7.903 7.903 0 0 0 1.446 2.258 8.316 8.316 0 0 0 2.14 1.683c.817.45 1.727.782 2.715.98 1.309.255 2.617.126 3.836-.3a8.813 8.813 0 0 0 3.266-2.05 8.893 8.893 0 0 0 2.117-3.239c.453-1.21.613-2.527.387-3.848a9.06 9.06 0 0 0-1.504-3.644 9.344 9.344 0 0 0-1.301-1.477 8.97 8.97 0 0 0-1.61-1.16c-.18-.097-.347-.2-.507-.293-.16-.097-.305-.183-.434-.265-.125-.082-.23-.153-.312-.211a.573.573 0 0 1-.137-.121.813.813 0 0 1-.063-.184c-.027-.094-.058-.223-.097-.375a11.147 11.147 0 0 1-.11-.512c-.039-.187-.082-.39-.12-.594-.098-.5-.227-1.023-.383-1.554a19.7 19.7 0 0 0-.551-1.594c-.207-.527-.43-1.039-.668-1.512a12.868 12.868 0 0 0-.735-1.3 12.93 12.93 0 0 0-1.582-1.954 15.064 15.064 0 0 0-1.98-1.691 15.833 15.833 0 0 0-2.27-1.355 14.35 14.35 0 0 0-2.449-.934 9.33 9.33 0 0 0-.836-.188 25.72 25.72 0 0 0-1.094-.18 40.224 40.224 0 0 0-2.605-.269 51.614 51.614 0 0 1-1.281-.11 47.27 47.27 0 0 1-1.242-.128 37.65 37.65 0 0 1-1.067-.14 12.643 12.643 0 0 1-.746-.133 11.48 11.48 0 0 1-1.508-.458c-.5-.187-.996-.414-1.472-.668a12.371 12.371 0 0 1-2.606-1.847 16.117 16.117 0 0 1-1.676-1.836 5.604 5.604 0 0 1-.465-.707c-.097-.192-.125-.324-.074-.375.016-.016.117-.012.285.004.168.015.407.047.696.09.293.039.633.093 1.008.156.37.062.78.137 1.207.215a60.65 60.65 0 0 0 1.789.304c.527.079 1.011.133 1.535.172.523.04 1.09.063 1.777.078.692.016 1.504.02 2.527.024 1.22 0 2.204-.008 3.06-.031a27.474 27.474 0 0 0 2.257-.153 20.662 20.662 0 0 0 2.047-.336 48.885 48.885 0 0 0 2.426-.59 44.634 44.634 0 0 0 5.347-1.761 42.256 42.256 0 0 0 4.98-2.387 43.059 43.059 0 0 0 4.633-3.031 46.976 46.976 0 0 0 4.329-3.692 55.822 55.822 0 0 0 3.312-3.468 49.244 49.244 0 0 0 2.879-3.63 50.142 50.142 0 0 0 2.516-3.886 57.29 57.29 0 0 0 2.23-4.258c.375-.793.691-1.48.95-2.066.257-.59.46-1.078.613-1.473.144-.398.242-.7.285-.918.047-.219.039-.351-.016-.402-.078-.07-.41-.23-.902-.442a57.272 57.272 0 0 0-1.828-.73c-.692-.262-1.434-.535-2.121-.777a36.517 36.517 0 0 0-1.778-.586 54.289 54.289 0 0 0-3.531-.879 48.341 48.341 0 0 0-1.715-.332 23.874 23.874 0 0 0-1.465-.215l-.633-.07-.312-.04-.316-.035V39.301l-2.461.004h-2.461l-2.457.004h-2.461c-2.645.004-4.664.007-6.266.03-1.605.024-2.797.067-3.789.141-.992.079-1.789.192-2.598.356-.812.164-1.64.383-2.703.668a23.531 23.531 0 0 1-1.203.3c-.16.036-.289.06-.383.075-.093.016-.148.02-.156.008a29.962 29.962 0 0 1-.355-.672c-.102-.2-.22-.434-.348-.692a79.19 79.19 0 0 1-.418-.828c-.45-.902-.785-1.578-1.168-2.234-.379-.66-.805-1.297-1.422-2.117-.617-.817-1.433-1.82-2.594-3.203-1.16-1.387-2.671-3.153-4.68-5.508-1.398-1.64-2.53-2.961-3.44-4.02a272.265 272.265 0 0 0-2.122-2.441c-.523-.59-.875-.973-1.11-1.211-.237-.234-.355-.324-.402-.32-.015 0-.07.047-.156.132-.086.086-.199.207-.34.356-.136.148-.296.328-.472.523-.172.2-.364.414-.555.641m7.059 11.504a151.52 151.52 0 0 1 3.582 4.336 58.05 58.05 0 0 1 2.488 3.336c.66.965 1.16 1.793 1.516 2.515.355.72.57 1.332.66 1.868.023.14.039.25.031.347a.526.526 0 0 1-.09.262 1.205 1.205 0 0 1-.266.262c-.12.093-.285.199-.492.332-.332.21-.773.554-1.265.976-.493.426-1.043.934-1.594 1.473a43.455 43.455 0 0 0-1.625 1.672 25.487 25.487 0 0 0-1.348 1.574c-.398.512-.812 1.09-1.222 1.703a39.76 39.76 0 0 0-1.204 1.91 39.73 39.73 0 0 0-1.085 1.946c-.329.636-.622 1.25-.86 1.812-.34.809-.672 1.727-.976 2.688-.305.96-.582 1.964-.817 2.945-.234.984-.43 1.945-.562 2.816-.137.871-.215 1.653-.215 2.282-.004.609-.024 1.054-.055 1.332-.035.277-.086.386-.152.328-.067-.055-.149-.278-.246-.664a26.572 26.572 0 0 1-.336-1.66 76.29 76.29 0 0 0-.54-2.758 81.86 81.86 0 0 0-.624-2.66c-.211-.844-.43-1.637-.645-2.34a22.878 22.878 0 0 0-.617-1.801 24.472 24.472 0 0 0-.742-1.66 48.94 48.94 0 0 0-2.047-3.746c-.36-.59-.707-1.13-1.027-1.582a21.393 21.393 0 0 0-1.153-1.446 44.776 44.776 0 0 0-1.558-1.71 47.283 47.283 0 0 0-1.657-1.657c-.539-.512-1.043-.96-1.468-1.3-.172-.141-.34-.278-.489-.41a8.144 8.144 0 0 1-.402-.376 3.846 3.846 0 0 1-.27-.293c-.066-.082-.101-.144-.101-.176 0-.105.098-.378.262-.753.16-.372.386-.848.644-1.356.258-.508.547-1.05.828-1.562a24.735 24.735 0 0 1 1.582-2.508c.262-.371.543-.746.871-1.16.329-.418.7-.871 1.149-1.407.45-.535.973-1.144 1.601-1.87.235-.27.536-.614.875-1.005.336-.394.715-.832 1.114-1.293.394-.46.808-.937 1.215-1.41.402-.472.8-.933 1.168-1.363l.668-.777.668-.774.667-.777.665-.778.117.118.113.12.117.118.113.117a110.75 110.75 0 0 1 1.668 1.914l1.555 1.809c.57.664 1.184 1.383 1.813 2.12M51.227 44.149c.425.09.867.2 1.304.317.434.117.864.242 1.254.37.395.13.754.259 1.055.38.297.12.535.234.687.332.051.035.09.094.11.191.02.098.023.239.011.442-.015.199-.046.457-.097.793-.055.336-.125.75-.215 1.257-.094.524-.172.989-.23 1.446-.06.457-.106.91-.137 1.41a32.68 32.68 0 0 0-.067 1.7c-.011.648-.015 1.401-.015 2.312 0 .98.004 1.761.015 2.414.012.648.035 1.172.07 1.644.04.473.09.89.165 1.336.07.446.164.918.285 1.488.074.348.156.72.242 1.094.082.375.168.754.254 1.11.086.359.168.695.242.992.074.3.14.554.195.75.055.195.102.383.149.554.043.172.082.329.113.461.031.13.059.239.07.317.016.078.02.125.012.133a.942.942 0 0 1-.183-.079 35.955 35.955 0 0 1-1.148-.629c-.255-.144-.532-.304-.821-.472a95.651 95.651 0 0 0-2.031-1.152 44.616 44.616 0 0 0-1.723-.899 34 34 0 0 0-1.633-.75 44.224 44.224 0 0 0-1.762-.715 50.86 50.86 0 0 0-2.855-1.004 45.68 45.68 0 0 0-2.8-.793 39.106 39.106 0 0 0-2.653-.562 26.924 26.924 0 0 0-2.406-.309l-.426-.03-.426-.036-.426-.031-.426-.035V43.758h7.215c1.578.004 2.832.008 3.852.015 1.02.012 1.8.028 2.437.055a20.37 20.37 0 0 1 1.547.117c.43.051.797.117 1.196.203m64.886 7.493c0 1.23-.008 2.34-.015 3.312-.008.977-.02 1.817-.04 2.504-.015.691-.038 1.23-.062 1.602-.023.367-.05.57-.082.59a1.259 1.259 0 0 1-.281.07c-.153.031-.367.062-.617.101-.254.035-.547.078-.868.117-.32.043-.664.083-1.02.122-.765.086-1.538.199-2.323.343-.79.141-1.59.313-2.407.516-.816.203-1.652.434-2.503.7-.856.26-1.73.558-2.625.882-.735.266-1.305.477-1.801.672-.496.195-.918.375-1.348.578-.43.203-.867.43-1.398.723-.528.289-1.149.644-1.946 1.101a34.54 34.54 0 0 1-1.644.895 9.035 9.035 0 0 1-.528.242c-.128.055-.21.074-.226.059-.016-.016-.02-.082-.012-.184a5.49 5.49 0 0 1 .055-.422c.031-.172.066-.371.113-.59.043-.219.098-.457.156-.699.258-1.082.454-1.906.602-2.613.152-.703.258-1.282.332-1.867.078-.583.125-1.172.156-1.895.035-.723.059-1.578.086-2.695.024-.98.04-1.77.043-2.434.004-.66-.004-1.2-.027-1.684a17.76 17.76 0 0 0-.113-1.355 29.95 29.95 0 0 0-.223-1.445c-.152-.887-.27-1.543-.336-2.035-.066-.493-.086-.825-.04-1.059a.664.664 0 0 1 .333-.492c.18-.117.437-.207.781-.336.692-.266 1.29-.469 1.926-.63.637-.16 1.309-.276 2.152-.358.84-.082 1.852-.133 3.164-.16 1.309-.032 2.922-.044 4.965-.047l3.813-.008h1.902l1.906-.004v7.883m-25.05-2.368c.195 1.02.343 1.977.437 2.91.098.934.14 1.837.133 2.75a25.621 25.621 0 0 1-.18 2.797c-.11.961-.273 1.961-.488 3.036a39.395 39.395 0 0 1-.746 3.12 31.161 31.161 0 0 1-.946 2.829c-.355.906-.75 1.781-1.187 2.64a30.9 30.9 0 0 1-1.473 2.555c-.215.34-.597.86-1.074 1.469a76.18 76.18 0 0 1-1.625 2.012 79.82 79.82 0 0 1-1.73 2.011 30.987 30.987 0 0 1-1.387 1.489l-.258.25-.262.254-.257.253-.262.254.02-1.62.023-1.622.02-1.617.019-1.621c.02-1.414.035-2.543.058-3.465.02-.922.047-1.637.082-2.227.036-.59.082-1.054.141-1.472.059-.422.133-.797.227-1.211a38.117 38.117 0 0 1 1.086-3.91c.418-1.235.89-2.403 1.433-3.524a28.68 28.68 0 0 1 1.82-3.222 31.184 31.184 0 0 1 2.258-3.012 18.08 18.08 0 0 1 1.012-1.086c.367-.363.746-.715 1.106-1.023.355-.31.69-.575.964-.762.27-.188.48-.297.59-.297.035 0 .07.031.11.086.039.05.078.129.12.226a4.214 4.214 0 0 1 .216.75m-28.895.91c.914.915 1.738 1.86 2.488 2.86a25.52 25.52 0 0 1 2.028 3.187 30.027 30.027 0 0 1 1.636 3.645 42.64 42.64 0 0 1 1.32 4.23c.122.485.22.872.294 1.274.074.406.125.832.164 1.387.043.554.07 1.242.09 2.171.023.934.039 2.11.058 3.645.02 1.441.035 2.566.04 3.438.003.87 0 1.488-.016 1.921-.016.434-.043.68-.086.813-.04.129-.094.14-.16.101-.106-.058-.376-.324-.743-.722-.367-.399-.84-.926-1.34-1.512a82.643 82.643 0 0 1-1.539-1.832 48.185 48.185 0 0 1-1.34-1.695c-.34-.45-.722-1.031-1.117-1.688a40.534 40.534 0 0 1-1.183-2.125 43.623 43.623 0 0 1-1.075-2.207 21.82 21.82 0 0 1-.773-1.933c-.07-.215-.152-.477-.238-.762-.082-.29-.172-.602-.258-.922a49.961 49.961 0 0 1-.461-1.844c-.187-.86-.316-2.113-.395-3.508a62.606 62.606 0 0 1-.066-4.378c.027-1.434.106-2.762.227-3.735.12-.969.285-1.578.492-1.578.023 0 .097.05.21.14.11.09.259.22.438.38a44.358 44.358 0 0 1 1.305 1.25m53.23 15.39a24.897 24.897 0 0 1-.965 4.492 26.72 26.72 0 0 1-.824 2.25 33.11 33.11 0 0 1-1.058 2.305c-.344.676-.66 1.262-.98 1.805-.321.543-.641 1.035-.997 1.523-.351.485-.734.961-1.18 1.473-.445.508-.953 1.05-1.542 1.66a35.204 35.204 0 0 1-1.579 1.54c-.496.448-.976.847-1.468 1.21-.493.367-1 .703-1.551 1.031-.55.328-1.145.649-1.817.989-.84.421-1.624.761-2.445 1.03a15.58 15.58 0 0 1-2.683.626c-1.004.152-2.145.25-3.532.308-1.382.063-3.011.082-4.98.082H82.18l.03-.113.036-.113.031-.113.035-.114c.055-.199.243-.582.516-1.074.274-.496.633-1.101 1.027-1.746.399-.645.836-1.324 1.266-1.969.43-.644.852-1.25 1.219-1.746a44.604 44.604 0 0 1 5.883-6.445 41.569 41.569 0 0 1 6.812-4.977 38.048 38.048 0 0 1 7.477-3.36 34.711 34.711 0 0 1 7.886-1.585c.11-.008.22-.02.325-.027.105-.008.203-.02.293-.028.09-.008.164-.02.226-.023.063-.008.106-.016.13-.02.023-.004.038.024.05.078a.934.934 0 0 1 .023.239c.004.101 0 .226-.007.363-.008.137-.02.29-.04.45M30.934 66.89c.242 1.234.562 2.488.945 3.738a41.182 41.182 0 0 0 1.32 3.68 37.438 37.438 0 0 0 1.61 3.425 27.185 27.185 0 0 0 1.816 2.961c.45.633.992 1.313 1.594 2.004a38.232 38.232 0 0 0 1.949 2.074c.687.68 1.395 1.34 2.098 1.942.699.597 1.39 1.144 2.03 1.597.298.208.575.407.825.59.25.184.469.352.649.496.18.141.32.258.41.344.09.082.129.133.105.14-.066.028-.328-.038-.71-.167-.384-.13-.891-.324-1.458-.555a48.612 48.612 0 0 1-1.812-.777 38.066 38.066 0 0 1-7.352-4.297 42.01 42.01 0 0 1-5.043-4.422 44.733 44.733 0 0 1-4.37-5.254 45.026 45.026 0 0 1-3.575-5.941c-.125-.258-.25-.504-.356-.735-.109-.226-.207-.433-.285-.609-.078-.176-.14-.32-.18-.422-.042-.101-.058-.164-.05-.172.008-.008.062-.031.148-.066.09-.035.211-.082.36-.137.144-.05.32-.113.507-.18l.614-.21c.433-.145.988-.297 1.593-.446a39.578 39.578 0 0 1 3.805-.73c.574-.078 1.07-.125 1.434-.133l.23-.004.235-.004.23-.004.234-.004.114.57.109.57.113.567.114.57m8.199-1.87c1.383.238 2.8.59 4.226 1.039 1.426.449 2.856 1 4.27 1.636a42.064 42.064 0 0 1 4.16 2.164c1.348.801 2.648 1.68 3.879 2.621.41.317.95.778 1.547 1.32a69.069 69.069 0 0 1 1.914 1.805c.652.641 1.3 1.293 1.871 1.899a31.34 31.34 0 0 1 1.422 1.586 46.416 46.416 0 0 1 1.726 2.27c.57.796 1.125 1.613 1.622 2.39.5.781.94 1.52 1.285 2.152.343.637.593 1.172.71 1.543l.032.114.035.113.04.113.03.113h-5.511c-1.918 0-3.48-.02-4.801-.078-1.324-.058-2.41-.156-3.371-.312a15.68 15.68 0 0 1-2.63-.653c-.831-.289-1.651-.652-2.581-1.109a20.527 20.527 0 0 1-3.137-1.926 24.776 24.776 0 0 1-2.902-2.523 26.07 26.07 0 0 1-2.528-2.988 24.005 24.005 0 0 1-2.011-3.305 35.404 35.404 0 0 1-1.192-2.649 38.321 38.321 0 0 1-.968-2.66 25.394 25.394 0 0 1-.645-2.39c-.156-.72-.238-1.348-.238-1.832 0-.211 0-.371.011-.489.012-.12.032-.203.079-.257.043-.055.105-.082.203-.098.093-.016.222-.016.39-.016.094 0 .25.012.453.032.204.023.454.05.73.09.278.035.583.078.903.128.32.047.653.102.977.157m84.953.085c.336.06.809.168 1.336.297.523.13 1.101.282 1.64.434.543.152 1.051.305 1.43.43.387.125.649.222.7.273.027.023-.028.184-.149.45-.121.265-.3.632-.527 1.062-.223.433-.493.93-.79 1.457a56.9 56.9 0 0 1-.937 1.633 44.31 44.31 0 0 1-3.473 5.027 46.345 46.345 0 0 1-4.12 4.531 43.203 43.203 0 0 1-4.571 3.848 34.726 34.726 0 0 1-4.82 2.969 42.898 42.898 0 0 1-3.02 1.367c-.469.191-.89.351-1.207.457-.32.105-.535.156-.598.137-.027-.012.004-.055.079-.133.074-.074.195-.18.351-.309.153-.129.348-.281.563-.445.218-.164.465-.344.722-.531a31.987 31.987 0 0 0 3.067-2.473 30.025 30.025 0 0 0 4.992-5.887 32.018 32.018 0 0 0 1.953-3.441c.398-.809.75-1.57 1.059-2.309a30.121 30.121 0 0 0 1.48-4.39c.188-.758.363-1.547.52-2.391l.109-.59.113-.586.11-.59.109-.586h1.133c.156 0 .347.008.566.024.215.012.457.035.703.062a20.21 20.21 0 0 1 1.477.203m-79.191 55.711c.363.23.671.555.917.934.247.379.426.816.536 1.273.109.457.148.938.105 1.407a3.61 3.61 0 0 1-.371 1.336c-.156.304-.332.57-.539.808a3.303 3.303 0 0 1-1.512.996 4.104 4.104 0 0 1-.965.184 4.468 4.468 0 0 1-1.03-.043 3.427 3.427 0 0 1-1.719-.805 4.434 4.434 0 0 1-.696-.77 3.378 3.378 0 0 1-.555-1.284 4.203 4.203 0 0 1-.046-1.434c.066-.48.21-.945.43-1.36.214-.413.507-.78.87-1.058a3.654 3.654 0 0 1 1.059-.555c.383-.132.789-.207 1.2-.222.41-.02.82.023 1.214.12.39.102.766.259 1.102.473m64.375-.195c.175.086.37.23.574.406.199.176.402.38.586.598.187.215.36.438.492.652.133.211.226.407.266.567.019.07.035.168.042.285.012.113.02.25.024.398.004.145 0 .301-.004.457a8.875 8.875 0 0 1-.023.461 3.545 3.545 0 0 1-.774 1.953 3.866 3.866 0 0 1-3.625 1.368 3.584 3.584 0 0 1-1.883-.95 4.289 4.289 0 0 1-.55-.609 2.827 2.827 0 0 1-.352-.637 3.475 3.475 0 0 1-.188-.746 6.793 6.793 0 0 1-.054-.941c0-.352.027-.672.082-.961.05-.293.137-.555.25-.797.117-.242.265-.465.449-.676.188-.21.406-.41.668-.601.25-.188.547-.328.879-.434a4.168 4.168 0 0 1 1.05-.187c.364-.024.735 0 1.09.066.36.062.7.176 1 .328m-31.93.473c.177.125.368.328.556.57.183.242.367.531.527.824.16.293.297.598.394.88a2.5 2.5 0 0 1 .16.737c0 .258-.074.567-.206.895a5.551 5.551 0 0 1-.54.996 6 6 0 0 1-.742.906c-.265.27-.547.489-.816.63a2.93 2.93 0 0 1-1.024.3 3.709 3.709 0 0 1-1.117-.047 3.928 3.928 0 0 1-1.066-.37 3.194 3.194 0 0 1-.871-.669 4.034 4.034 0 0 1-.68-1.012 4.028 4.028 0 0 1-.355-1.12 3.802 3.802 0 0 1-.012-1.153 3.5 3.5 0 0 1 .344-1.094c.187-.363.375-.664.586-.91.21-.242.441-.43.71-.57.266-.14.57-.23.922-.282a6.496 6.496 0 0 1 1.239-.046c.254.011.472.027.664.046.195.024.363.055.515.098a2.284 2.284 0 0 1 .813.39"/></svg>%0A';
199
+
200
+ // src/primitives/BrandMark.tsx
201
+ import { jsx as jsx4 } from "react/jsx-runtime";
202
+ var mask = (url) => ({
203
+ WebkitMask: `url('${url}') center / contain no-repeat`,
204
+ mask: `url('${url}') center / contain no-repeat`
205
+ });
206
+ var MASKS = { mark: mask(mark_default), lockup: mask(lockup_horizontal_default) };
207
+ function BrandMark({ variant = "mark", className }) {
208
+ return /* @__PURE__ */ jsx4(
209
+ "span",
210
+ {
211
+ "aria-hidden": "true",
212
+ className: cn(
213
+ "polli:block polli:shrink-0 polli:bg-current",
214
+ className
215
+ ),
216
+ style: MASKS[variant]
217
+ }
218
+ );
219
+ }
220
+
221
+ // src/primitives/Dialog.tsx
222
+ import { Dialog as ArkDialog } from "@ark-ui/react/dialog";
223
+ import { Portal } from "@ark-ui/react/portal";
224
+ import { useRef as useRef2 } from "react";
225
+
226
+ // src/primitives/ScrollArea.tsx
227
+ import {
228
+ forwardRef,
229
+ useCallback,
230
+ useEffect,
231
+ useRef
232
+ } from "react";
233
+ import { jsx as jsx5 } from "react/jsx-runtime";
234
+ var axisClasses = {
235
+ y: "polli:overflow-y-auto polli:overflow-x-hidden",
236
+ x: "polli:overflow-x-auto polli:overflow-y-hidden",
237
+ both: "polli:overflow-auto"
238
+ };
239
+ function assignRef(ref, value) {
240
+ if (typeof ref === "function") ref(value);
241
+ else if (ref) ref.current = value;
242
+ }
243
+ var ScrollArea = forwardRef(
244
+ ({ axis = "y", scrollbar = "subtle", className, children, ...rest }, externalRef) => {
245
+ const innerRef = useRef(null);
246
+ const setRef = useCallback(
247
+ (node) => {
248
+ innerRef.current = node;
249
+ assignRef(externalRef, node);
250
+ },
251
+ [externalRef]
252
+ );
253
+ useEffect(() => {
254
+ if (scrollbar === "native") return;
255
+ const element = innerRef.current;
256
+ if (!element) return;
257
+ let hideTimer = null;
258
+ const clearHideTimer = () => {
259
+ if (hideTimer !== null) {
260
+ window.clearTimeout(hideTimer);
261
+ hideTimer = null;
262
+ }
263
+ };
264
+ const show = () => {
265
+ element.dataset.scrollbarActive = "true";
266
+ clearHideTimer();
267
+ };
268
+ const hide = () => {
269
+ element.dataset.scrollbarActive = "false";
270
+ clearHideTimer();
271
+ };
272
+ const scheduleHide = () => {
273
+ clearHideTimer();
274
+ hideTimer = window.setTimeout(hide, 2e3);
275
+ };
276
+ const handleInteraction = () => {
277
+ show();
278
+ scheduleHide();
279
+ };
280
+ hide();
281
+ element.addEventListener("scroll", handleInteraction, {
282
+ passive: true
283
+ });
284
+ element.addEventListener("wheel", handleInteraction, {
285
+ passive: true
286
+ });
287
+ element.addEventListener("touchstart", handleInteraction, {
288
+ passive: true
289
+ });
290
+ element.addEventListener("pointerdown", handleInteraction);
291
+ element.addEventListener("keydown", handleInteraction);
292
+ element.addEventListener("focusin", handleInteraction);
293
+ element.addEventListener("focusout", scheduleHide);
294
+ return () => {
295
+ clearHideTimer();
296
+ element.removeEventListener("scroll", handleInteraction);
297
+ element.removeEventListener("wheel", handleInteraction);
298
+ element.removeEventListener("touchstart", handleInteraction);
299
+ element.removeEventListener("pointerdown", handleInteraction);
300
+ element.removeEventListener("keydown", handleInteraction);
301
+ element.removeEventListener("focusin", handleInteraction);
302
+ element.removeEventListener("focusout", scheduleHide);
303
+ };
304
+ }, [scrollbar]);
305
+ return /* @__PURE__ */ jsx5(
306
+ "div",
307
+ {
308
+ ...rest,
309
+ ref: setRef,
310
+ className: cn(
311
+ scrollbar === "subtle" && "polli-scrollbar-subtle",
312
+ "polli:min-w-0 polli:max-w-full",
313
+ axisClasses[axis],
314
+ className
315
+ ),
316
+ children
317
+ }
318
+ );
319
+ }
320
+ );
321
+ ScrollArea.displayName = "ScrollArea";
322
+
323
+ // src/primitives/Dialog.tsx
324
+ import { jsx as jsx6, jsxs as jsxs3 } from "react/jsx-runtime";
19
325
  var sizeClasses = {
20
326
  sm: "polli:max-w-md",
21
327
  md: "polli:max-w-xl",
22
- lg: "polli:max-w-2xl"
328
+ lg: "polli:max-w-[800px]",
329
+ xl: "polli:max-w-6xl"
23
330
  };
24
331
  var Dialog = ({
25
332
  open,
@@ -28,26 +335,24 @@ var Dialog = ({
28
335
  triggerAsChild = false,
29
336
  triggerClassName,
30
337
  title,
31
- titleClassName,
32
338
  ariaLabel,
33
339
  labelledBy,
34
- theme = "blue",
35
340
  size = "md",
36
341
  showBackdrop = true,
37
- backdropClassName,
342
+ backdropBlur = true,
38
343
  positionerClassName,
39
344
  contentClassName,
40
345
  children
41
346
  }) => {
42
- const contentRef = useRef(null);
43
- return /* @__PURE__ */ jsxs(
347
+ const contentRef = useRef2(null);
348
+ return /* @__PURE__ */ jsxs3(
44
349
  ArkDialog.Root,
45
350
  {
46
351
  open,
47
352
  initialFocusEl: () => contentRef.current,
48
353
  onOpenChange: (details) => onOpenChange?.(details.open),
49
354
  children: [
50
- trigger && /* @__PURE__ */ jsx(
355
+ trigger && /* @__PURE__ */ jsx6(
51
356
  ArkDialog.Trigger,
52
357
  {
53
358
  asChild: triggerAsChild,
@@ -55,47 +360,38 @@ var Dialog = ({
55
360
  children: trigger
56
361
  }
57
362
  ),
58
- /* @__PURE__ */ jsxs(Portal, { children: [
59
- showBackdrop && /* @__PURE__ */ jsx(
363
+ /* @__PURE__ */ jsxs3(Portal, { children: [
364
+ showBackdrop && /* @__PURE__ */ jsx6(
60
365
  ArkDialog.Backdrop,
61
366
  {
62
367
  className: cn(
63
- "polli:fixed polli:inset-0 polli:z-[100] polli:bg-ink-950/50",
64
- backdropClassName
368
+ "polli:fixed polli:inset-0 polli:z-[calc(100_+_var(--layer-index,0)_*_20)] polli:bg-[#000]/50",
369
+ backdropBlur && "polli:backdrop-blur-sm"
65
370
  )
66
371
  }
67
372
  ),
68
- /* @__PURE__ */ jsx(
373
+ /* @__PURE__ */ jsx6(
69
374
  ArkDialog.Positioner,
70
375
  {
71
- "data-theme": theme,
72
376
  className: cn(
73
- "polli:fixed polli:inset-0 polli:z-[110] polli:flex polli:h-dvh polli:items-start polli:justify-center polli:overflow-hidden polli:p-4",
377
+ "polli:fixed polli:inset-0 polli:z-[calc(110_+_var(--layer-index,0)_*_20)] polli:flex polli:max-h-dvh polli:items-start polli:justify-center polli:overflow-hidden polli:p-4",
378
+ "polli-dialog-mobile-positioner",
74
379
  positionerClassName
75
380
  ),
76
- children: /* @__PURE__ */ jsxs(
381
+ children: /* @__PURE__ */ jsxs3(
77
382
  ArkDialog.Content,
78
383
  {
79
384
  ref: contentRef,
80
- "data-theme": theme,
81
385
  "aria-label": ariaLabel,
82
386
  "aria-labelledby": labelledBy,
83
387
  className: cn(
84
- "polli:my-auto polli:w-full polli:overflow-hidden polli:rounded-lg polli:border-2 polli:border-theme-border polli:bg-surface-opaque polli:shadow-lg polli:outline-none polli:focus:outline-none polli:focus-visible:outline-none",
388
+ "polli:my-auto polli:flex polli:h-auto polli:max-h-full polli:w-full polli:flex-col polli:overflow-y-auto polli:rounded-block polli:bg-surface-block polli:outline-none polli:focus:outline-none polli:focus-visible:outline-none",
389
+ "polli-dialog-mobile-page",
85
390
  sizeClasses[size],
86
391
  contentClassName
87
392
  ),
88
393
  children: [
89
- title && /* @__PURE__ */ jsx(
90
- DialogTitle,
91
- {
92
- className: cn(
93
- "polli:px-6 polli:pt-6 polli:font-subheading polli:text-xl polli:text-theme-text-strong",
94
- titleClassName
95
- ),
96
- children: title
97
- }
98
- ),
394
+ title && /* @__PURE__ */ jsx6(DialogHeader, { title }),
99
395
  children
100
396
  ]
101
397
  }
@@ -108,94 +404,1076 @@ var Dialog = ({
108
404
  );
109
405
  };
110
406
  var DialogTitle = ArkDialog.Title;
407
+ var DialogDescription = ArkDialog.Description;
408
+ var DialogHeader = ({
409
+ title,
410
+ description,
411
+ children,
412
+ inBody = false,
413
+ className,
414
+ titleClassName,
415
+ descriptionClassName,
416
+ ...props
417
+ }) => {
418
+ return /* @__PURE__ */ jsxs3(
419
+ "div",
420
+ {
421
+ className: cn(
422
+ inBody ? "polli:shrink-0 polli:pt-2 polli:pb-4" : "polli:shrink-0 polli:px-(--polli-dialog-gutter) polli:pt-6 polli:pb-4",
423
+ className
424
+ ),
425
+ ...props,
426
+ children: [
427
+ title && /* @__PURE__ */ jsx6(
428
+ DialogTitle,
429
+ {
430
+ className: cn(headingClassName("section"), titleClassName),
431
+ children: title
432
+ }
433
+ ),
434
+ description && /* @__PURE__ */ jsx6(
435
+ DialogDescription,
436
+ {
437
+ className: cn(
438
+ "polli:mt-1 polli:font-body polli:text-sm polli:font-normal polli:leading-5 polli:text-theme-text-base",
439
+ descriptionClassName
440
+ ),
441
+ children: description
442
+ }
443
+ ),
444
+ children
445
+ ]
446
+ }
447
+ );
448
+ };
449
+ function DialogBody({
450
+ children,
451
+ actions,
452
+ footnote,
453
+ bodyClassName,
454
+ className,
455
+ ...props
456
+ }) {
457
+ return /* @__PURE__ */ jsxs3(
458
+ ScrollArea,
459
+ {
460
+ ...props,
461
+ className: cn(
462
+ "polli:flex polli:min-h-0 polli:flex-1 polli:flex-col polli:overscroll-contain",
463
+ className
464
+ ),
465
+ children: [
466
+ /* @__PURE__ */ jsx6(
467
+ "div",
468
+ {
469
+ className: cn(
470
+ "polli:space-y-3 polli:px-(--polli-dialog-gutter) polli:py-4",
471
+ bodyClassName
472
+ ),
473
+ children
474
+ }
475
+ ),
476
+ (actions || footnote) && // The size container lets the footer follow the dialog's width.
477
+ // It sits on the footer alone so pickers and tooltips in the
478
+ // body keep their positioning.
479
+ /* @__PURE__ */ jsxs3("div", { className: "polli-dialog-floating-controls polli:@container polli:pointer-events-none polli:sticky polli:bottom-0 polli:z-10", children: [
480
+ actions && /* @__PURE__ */ jsx6(DialogFooter, { className: "polli:pointer-events-auto", children: actions }),
481
+ footnote && /* @__PURE__ */ jsx6("div", { className: "polli:pointer-events-auto", children: footnote })
482
+ ] })
483
+ ]
484
+ }
485
+ );
486
+ }
487
+ var DialogFooter = ({
488
+ children,
489
+ className,
490
+ ...props
491
+ }) => {
492
+ return /* @__PURE__ */ jsx6(
493
+ "div",
494
+ {
495
+ className: cn(
496
+ "polli:flex polli:shrink-0 polli:flex-wrap polli:items-center polli:justify-end polli:gap-3 polli:bg-transparent polli:px-(--polli-dialog-gutter) polli:pt-4 polli:pb-6",
497
+ // Actions are the screen's main controls: touch-sized, sharing
498
+ // the row in a narrow dialog (below 36rem, phones included), and
499
+ // spanning it when there is only one.
500
+ "polli:[&>.polli-control]:min-h-12 polli:[&>.polli-control]:text-base polli:@max-xl:[&>.polli-control]:flex-auto polli:[&>.polli-control:only-child]:flex-auto",
501
+ className
502
+ ),
503
+ ...props,
504
+ children
505
+ }
506
+ );
507
+ };
111
508
 
112
- // src/modules/auth/AuthModal.tsx
113
- import { jsx as jsx2, jsxs as jsxs2 } from "react/jsx-runtime";
114
- var authLogoMaskUrl = `url('${logo_default}')`;
115
- var authLogoMask = {
116
- WebkitMaskImage: authLogoMaskUrl,
117
- WebkitMaskPosition: "center",
118
- WebkitMaskRepeat: "no-repeat",
119
- WebkitMaskSize: "contain",
120
- maskImage: authLogoMaskUrl,
121
- maskPosition: "center",
122
- maskRepeat: "no-repeat",
123
- maskSize: "contain"
124
- };
125
- function AuthModal({
509
+ // src/lib/link.ts
510
+ function isExternalHref(href, origin = globalThis.location?.origin) {
511
+ if (typeof href !== "string" || !/^(https?:)?\/\//i.test(href))
512
+ return false;
513
+ if (!origin) return true;
514
+ try {
515
+ return new URL(href, origin).origin !== origin;
516
+ } catch {
517
+ return false;
518
+ }
519
+ }
520
+
521
+ // src/primitives/InlineLink.tsx
522
+ import { jsx as jsx7, jsxs as jsxs4 } from "react/jsx-runtime";
523
+ function InlineLink({
524
+ as,
525
+ external,
526
+ showIcon = true,
527
+ size = "inherit",
528
+ tone = "accent",
529
+ className,
126
530
  children,
127
- dialog,
128
- tone = "default"
531
+ ...linkProps
129
532
  }) {
130
- const borderClass = tone === "error" ? "polli:border-intent-danger-border" : "polli:border-theme-border";
131
- return /* @__PURE__ */ jsx2(
533
+ const Component = as || "a";
534
+ const isExternal = external ?? isExternalHref(linkProps.href);
535
+ return /* @__PURE__ */ jsxs4(
536
+ Component,
537
+ {
538
+ target: isExternal && as !== "button" ? "_blank" : void 0,
539
+ rel: isExternal && as !== "button" ? "noopener noreferrer" : void 0,
540
+ className: ["polli-link", className].filter(Boolean).join(" "),
541
+ "data-size": size,
542
+ "data-tone": tone,
543
+ ...linkProps,
544
+ children: [
545
+ children,
546
+ showIcon && isExternal && /* @__PURE__ */ jsx7(
547
+ ExternalLinkIcon,
548
+ {
549
+ "aria-hidden": "true",
550
+ className: "polli-link-external-icon"
551
+ }
552
+ )
553
+ ]
554
+ }
555
+ );
556
+ }
557
+
558
+ // src/primitives/LoadingStatus.tsx
559
+ import { jsx as jsx8, jsxs as jsxs5 } from "react/jsx-runtime";
560
+ function LoadingStatus({ children }) {
561
+ return /* @__PURE__ */ jsxs5("output", { className: "polli:flex polli:items-center polli:gap-2 polli:font-body polli:text-sm polli:text-theme-text-muted", children: [
562
+ /* @__PURE__ */ jsx8(
563
+ "span",
564
+ {
565
+ "aria-hidden": "true",
566
+ className: "polli:h-4 polli:w-4 polli:shrink-0 polli:animate-spin polli:motion-reduce:animate-none polli:rounded-full polli:border-2 polli:border-current polli:border-r-transparent"
567
+ }
568
+ ),
569
+ children
570
+ ] });
571
+ }
572
+
573
+ // src/primitives/Surface.tsx
574
+ import { jsx as jsx9 } from "react/jsx-runtime";
575
+ var variantClasses = {
576
+ // Phones get tighter padding (and a matching radius) so nested cards keep
577
+ // their width; from `sm` up the page has room for the full spacing.
578
+ panel: "polli:rounded-3xl polli:bg-surface-block polli:p-4 polli:sm:rounded-block polli:sm:p-7",
579
+ card: "polli-surface-card polli:rounded-card polli:bg-surface-opaque polli:p-3.5 polli:sm:p-4",
580
+ "card-themed": "polli:rounded-card polli:bg-theme-bg-pale polli:p-3.5 polli:sm:p-4"
581
+ };
582
+ function Surface({
583
+ as,
584
+ variant = "card",
585
+ className,
586
+ children,
587
+ ...rest
588
+ }) {
589
+ const Component = as || "div";
590
+ return /* @__PURE__ */ jsx9(
591
+ Component,
592
+ {
593
+ ...rest,
594
+ className: cn("polli:min-w-0", variantClasses[variant], className),
595
+ children
596
+ }
597
+ );
598
+ }
599
+
600
+ // src/modules/auth/AuthModal.tsx
601
+ import { Fragment as Fragment2, jsx as jsx10, jsxs as jsxs6 } from "react/jsx-runtime";
602
+ function AuthModal({ children, size, dialog, onClose }) {
603
+ return /* @__PURE__ */ jsx10(
132
604
  Dialog,
133
605
  {
134
606
  open: true,
135
- theme: "amber",
607
+ onOpenChange: (open) => !open && onClose?.(),
136
608
  showBackdrop: false,
137
609
  ariaLabel: dialog?.label,
138
610
  labelledBy: dialog?.labelledBy,
139
- positionerClassName: "polli:items-start polli:overflow-y-auto polli:bg-theme-bg-pale",
140
- contentClassName: `polli:bg-surface-white polli:border-2 ${borderClass} polli:rounded-lg polli:shadow-lg polli:max-w-xl polli:w-full polli:my-auto`,
611
+ positionerClassName: "polli:bg-app-bg",
612
+ contentClassName: "polli:overflow-hidden",
613
+ size,
614
+ children
615
+ }
616
+ );
617
+ }
618
+ var legalFootnote = /* @__PURE__ */ jsxs6(Fragment2, { children: [
619
+ "By continuing, you agree to the",
620
+ " ",
621
+ /* @__PURE__ */ jsx10(
622
+ InlineLink,
623
+ {
624
+ href: "https://pollinations.ai/terms",
625
+ tone: "quiet",
626
+ showIcon: false,
627
+ children: "Terms"
628
+ }
629
+ ),
630
+ " ",
631
+ "and acknowledge the",
632
+ " ",
633
+ /* @__PURE__ */ jsx10(
634
+ InlineLink,
635
+ {
636
+ href: "https://pollinations.ai/privacy",
637
+ tone: "quiet",
638
+ showIcon: false,
639
+ children: "Privacy Policy"
640
+ }
641
+ ),
642
+ "."
643
+ ] });
644
+ function AuthFlowLayout({
645
+ children,
646
+ title,
647
+ subject,
648
+ description,
649
+ error,
650
+ titleId,
651
+ headerAction,
652
+ actions,
653
+ footnote = legalFootnote,
654
+ dialog,
655
+ // Most auth steps are a title, a line and one action; busy steps opt into more width.
656
+ size = "sm",
657
+ onClose
658
+ }) {
659
+ const generatedId = useId();
660
+ const headingId = titleId ?? generatedId;
661
+ return /* @__PURE__ */ jsx10(
662
+ AuthModal,
663
+ {
664
+ dialog: dialog ?? (title ? { labelledBy: headingId } : void 0),
665
+ size,
666
+ onClose,
667
+ children: /* @__PURE__ */ jsxs6(
668
+ DialogBody,
669
+ {
670
+ actions,
671
+ footnote: /* @__PURE__ */ jsx10(AuthModalFootnote, { children: footnote }),
672
+ bodyClassName: "polli:space-y-0 polli:p-0",
673
+ children: [
674
+ /* @__PURE__ */ jsx10(AuthModalHeader, { children: headerAction }),
675
+ /* @__PURE__ */ jsxs6("div", { className: "polli:space-y-3 polli:px-(--polli-dialog-gutter) polli:py-4", children: [
676
+ title && /* @__PURE__ */ jsxs6("div", { className: "polli:space-y-3", children: [
677
+ /* @__PURE__ */ jsx10(Heading, { as: "h1", size: "section", id: headingId, children: title }),
678
+ subject,
679
+ description && // The step instruction: body tone, so it reads as
680
+ // the sentence's second half rather than a caption.
681
+ /* @__PURE__ */ jsx10(
682
+ Text,
683
+ {
684
+ size: "body",
685
+ tone: "base",
686
+ className: "polli:text-pretty",
687
+ children: description
688
+ }
689
+ ),
690
+ error && /* @__PURE__ */ jsx10(ErrorBanner, { children: error })
691
+ ] }),
692
+ children
693
+ ] })
694
+ ]
695
+ }
696
+ )
697
+ }
698
+ );
699
+ }
700
+ function AuthModalFootnote({ children }) {
701
+ return /* @__PURE__ */ jsx10(
702
+ Text,
703
+ {
704
+ size: "xs",
705
+ tone: "muted",
706
+ className: "polli:shrink-0 polli:px-(--polli-dialog-gutter) polli:pb-5 polli:text-center polli:text-[13px] polli:text-balance",
141
707
  children
142
708
  }
143
709
  );
144
710
  }
145
711
  function AuthModalHeader({ children }) {
146
- const logo = /* @__PURE__ */ jsxs2(
712
+ const logo = /* @__PURE__ */ jsxs6(
147
713
  "a",
148
714
  {
149
715
  href: "https://pollinations.ai",
150
716
  target: "_blank",
151
717
  rel: "noopener noreferrer",
152
- tabIndex: -1,
153
- className: "polli:block polli:shrink-0 polli:text-theme-text-strong polli:focus:outline-none",
718
+ className: "polli:block polli:shrink-0 polli:text-theme-text-muted polli:transition-colors polli:hover:text-theme-text-strong polli:focus-visible:outline-2 polli:focus-visible:outline-offset-4",
154
719
  "aria-label": "pollinations.ai",
155
720
  children: [
156
- /* @__PURE__ */ jsx2("span", { className: "polli:sr-only", children: "pollinations.ai" }),
157
- /* @__PURE__ */ jsx2(
158
- "span",
721
+ /* @__PURE__ */ jsx10("span", { className: "polli:sr-only", children: "pollinations.ai" }),
722
+ /* @__PURE__ */ jsx10(BrandMark, { className: "polli:h-8 polli:w-8" })
723
+ ]
724
+ }
725
+ );
726
+ return /* @__PURE__ */ jsx10("div", { className: "polli:shrink-0 polli:px-(--polli-dialog-gutter) polli:pt-4 polli:pb-4 polli:sm:pt-6", children: /* @__PURE__ */ jsxs6("div", { className: "polli:flex polli:min-h-10 polli:items-start polli:justify-between polli:gap-3", children: [
727
+ logo,
728
+ children
729
+ ] }) });
730
+ }
731
+ function AuthModalLoading({
732
+ title,
733
+ subject,
734
+ message = "Loading\u2026"
735
+ }) {
736
+ return /* @__PURE__ */ jsx10(AuthFlowLayout, { title, subject, children: /* @__PURE__ */ jsx10("div", { className: "polli:flex polli:justify-center polli:py-10", children: /* @__PURE__ */ jsx10(LoadingStatus, { children: message }) }) });
737
+ }
738
+ function ErrorBanner({ children }) {
739
+ return /* @__PURE__ */ jsx10(Alert, { intent: "danger", children });
740
+ }
741
+ function AuthInfoCard({ title, children }) {
742
+ return /* @__PURE__ */ jsxs6(Surface, { className: "polli:space-y-3 polli:font-body", children: [
743
+ title != null && /* @__PURE__ */ jsx10("p", { className: "polli:font-body polli:text-sm polli:font-semibold polli:leading-5 polli:text-theme-text-strong", children: title }),
744
+ children
745
+ ] });
746
+ }
747
+ function AuthAccessItem({
748
+ children,
749
+ control,
750
+ details,
751
+ info,
752
+ icon,
753
+ checked = false,
754
+ onChange,
755
+ ariaLabel,
756
+ disabled = false
757
+ }) {
758
+ const Row = icon != null ? "div" : "label";
759
+ return /* @__PURE__ */ jsxs6(
760
+ "li",
761
+ {
762
+ className: cn(
763
+ info != null && "polli:flex polli:flex-wrap polli:items-center"
764
+ ),
765
+ children: [
766
+ /* @__PURE__ */ jsxs6(
767
+ Row,
159
768
  {
160
- "aria-hidden": "true",
161
- className: "polli:block polli:h-8 polli:w-8 polli:bg-current",
162
- style: authLogoMask
769
+ className: cn(
770
+ "polli:flex polli:min-h-8 polli:items-center polli:gap-3 polli:font-body polli:text-sm polli:font-semibold polli:leading-5",
771
+ info != null && "polli:min-w-0",
772
+ onChange && (disabled ? "polli:cursor-not-allowed" : "polli:cursor-pointer")
773
+ ),
774
+ children: [
775
+ icon != null ? /* @__PURE__ */ jsx10(
776
+ "span",
777
+ {
778
+ "aria-hidden": "true",
779
+ className: "polli:flex polli:h-5 polli:w-5 polli:shrink-0 polli:items-center polli:justify-center polli:text-theme-text-strong polli:[&>svg]:h-4 polli:[&>svg]:w-4",
780
+ children: icon
781
+ }
782
+ ) : /* @__PURE__ */ jsxs6("span", { className: "polli:relative polli:flex polli:h-5 polli:w-5 polli:shrink-0", children: [
783
+ /* @__PURE__ */ jsx10(
784
+ "input",
785
+ {
786
+ type: "checkbox",
787
+ "aria-label": ariaLabel,
788
+ checked,
789
+ disabled: disabled || !onChange,
790
+ onChange: (event) => onChange?.(event.target.checked),
791
+ className: "polli:peer polli:sr-only"
792
+ }
793
+ ),
794
+ /* @__PURE__ */ jsx10(
795
+ "span",
796
+ {
797
+ "aria-hidden": "true",
798
+ className: "polli:flex polli:h-5 polli:w-5 polli:items-center polli:justify-center polli:rounded polli:border polli:border-theme-text-muted/50 polli:bg-transparent polli:transition-colors polli:peer-checked:border-theme-bg-active polli:peer-checked:bg-theme-bg-active polli:peer-checked:text-theme-text-strong polli:peer-focus-visible:outline-2 polli:peer-focus-visible:outline-offset-2 polli:peer-focus-visible:outline-theme-text-soft polli:peer-disabled:opacity-50",
799
+ children: checked && /* @__PURE__ */ jsx10(CheckIcon, { className: "polli:h-3.5 polli:w-3.5" })
800
+ }
801
+ )
802
+ ] }),
803
+ /* @__PURE__ */ jsx10(
804
+ "span",
805
+ {
806
+ className: cn(
807
+ "polli:min-w-0 polli:flex-1 polli:transition-opacity",
808
+ !!onChange && !checked && "polli:opacity-60"
809
+ ),
810
+ children
811
+ }
812
+ ),
813
+ control != null && /* @__PURE__ */ jsx10("span", { className: "polli:shrink-0", children: control })
814
+ ]
815
+ }
816
+ ),
817
+ info,
818
+ details && /* @__PURE__ */ jsx10(
819
+ "div",
820
+ {
821
+ className: cn(
822
+ "polli:pl-8 polli:font-body polli:text-xs polli:font-normal polli:leading-normal polli:text-theme-text-muted",
823
+ info != null && "polli:basis-full"
824
+ ),
825
+ children: details
163
826
  }
164
827
  )
165
828
  ]
166
829
  }
167
830
  );
168
- if (!children) {
169
- return /* @__PURE__ */ jsx2("div", { className: "polli:flex polli:justify-start polli:px-6 polli:pt-6", children: logo });
831
+ }
832
+
833
+ // src/modules/auth/DashboardAccountMenu.tsx
834
+ import { useState as useState2 } from "react";
835
+
836
+ // src/compositions/AccountIdentity.tsx
837
+ import { useId as useId3 } from "react";
838
+
839
+ // src/primitives/ChevronIcon.tsx
840
+ import { jsx as jsx11 } from "react/jsx-runtime";
841
+ var ChevronIcon = ({ expanded, className }) => /* @__PURE__ */ jsx11(
842
+ "svg",
843
+ {
844
+ "aria-hidden": "true",
845
+ width: "12",
846
+ height: "12",
847
+ viewBox: "0 0 12 12",
848
+ className: cn(
849
+ "polli:shrink-0 polli:transition-transform polli:duration-200 polli:ease-out",
850
+ expanded && "polli:rotate-180",
851
+ className
852
+ ),
853
+ children: /* @__PURE__ */ jsx11(
854
+ "path",
855
+ {
856
+ d: "M3 4.5 6 7.5l3-3",
857
+ fill: "none",
858
+ stroke: "currentColor",
859
+ strokeLinecap: "round",
860
+ strokeLinejoin: "round",
861
+ strokeWidth: "1.5"
862
+ }
863
+ )
170
864
  }
171
- return /* @__PURE__ */ jsx2("div", { className: "polli:px-6 polli:pt-6 polli:pb-2", children: /* @__PURE__ */ jsxs2("div", { className: "polli:flex polli:items-center polli:justify-between polli:gap-3", children: [
172
- logo,
173
- children
174
- ] }) });
865
+ );
866
+
867
+ // src/primitives/Dropdown.tsx
868
+ import { Popover } from "@ark-ui/react/popover";
869
+ import { Portal as Portal2 } from "@ark-ui/react/portal";
870
+ import { useId as useId2, useState } from "react";
871
+ import { jsx as jsx12, jsxs as jsxs7 } from "react/jsx-runtime";
872
+ var DEFAULT_PANEL = "polli:rounded-lg polli:bg-surface-menu polli:shadow-lg";
873
+ var Dropdown = ({
874
+ trigger,
875
+ children,
876
+ align = "start",
877
+ side = "bottom",
878
+ open: openProp,
879
+ portalled = true,
880
+ onOpenChange,
881
+ className,
882
+ panelStyle
883
+ }) => {
884
+ const triggerId = useId2();
885
+ const [internalOpen, setInternalOpen] = useState(false);
886
+ const isControlled = openProp !== void 0;
887
+ const open = isControlled ? openProp : internalOpen;
888
+ const setOpen = (next) => {
889
+ if (!isControlled) setInternalOpen(next);
890
+ onOpenChange?.(next);
891
+ };
892
+ return /* @__PURE__ */ jsxs7(
893
+ Popover.Root,
894
+ {
895
+ ids: { trigger: triggerId },
896
+ open,
897
+ portalled,
898
+ onOpenChange: (details) => setOpen(details.open),
899
+ positioning: {
900
+ placement: `${side}-${align}`,
901
+ strategy: portalled ? "absolute" : "fixed"
902
+ },
903
+ children: [
904
+ /* @__PURE__ */ jsx12(Popover.Trigger, { asChild: true, children: trigger(open) }),
905
+ /* @__PURE__ */ jsx12(Portal2, { disabled: !portalled, children: /* @__PURE__ */ jsx12(Popover.Positioner, { children: /* @__PURE__ */ jsx12(
906
+ Popover.Content,
907
+ {
908
+ "aria-labelledby": triggerId,
909
+ style: panelStyle,
910
+ className: cn(
911
+ "polli:z-[120] polli:overflow-hidden polli:focus:outline-none",
912
+ DEFAULT_PANEL,
913
+ className
914
+ ),
915
+ children: typeof children === "function" ? children(() => setOpen(false)) : children
916
+ }
917
+ ) }) })
918
+ ]
919
+ }
920
+ );
921
+ };
922
+
923
+ // src/compositions/AccountIdentity.tsx
924
+ import { jsx as jsx13, jsxs as jsxs8 } from "react/jsx-runtime";
925
+ function initials(name) {
926
+ const parts = name.trim().split(/\s+/).filter(Boolean);
927
+ if (parts.length === 0) return "?";
928
+ if (parts.length === 1) return parts[0].slice(0, 2).toUpperCase();
929
+ return `${parts[0][0] ?? ""}${parts.at(-1)?.[0] ?? ""}`.toUpperCase();
930
+ }
931
+ function AccountAvatar({
932
+ name,
933
+ avatarUrl,
934
+ secondaryContent,
935
+ dashboardHref,
936
+ inline = false
937
+ }) {
938
+ const size = inline ? "polli:h-6 polli:w-6" : secondaryContent != null ? "polli:h-11 polli:w-11" : "polli:h-8 polli:w-8";
939
+ const className = cn(
940
+ size,
941
+ inline && "polli:transition-transform polli:group-hover:scale-110 polli:group-hover:brightness-110 polli:motion-reduce:transition-none polli:motion-reduce:group-hover:scale-100"
942
+ );
943
+ const avatar = avatarUrl ? /* @__PURE__ */ jsx13(
944
+ "img",
945
+ {
946
+ src: avatarUrl,
947
+ alt: "",
948
+ className: cn(
949
+ className,
950
+ "polli:shrink-0 polli:rounded-full polli:object-cover"
951
+ )
952
+ }
953
+ ) : /* @__PURE__ */ jsx13(
954
+ "span",
955
+ {
956
+ role: "img",
957
+ "aria-label": `${name} avatar`,
958
+ className: cn(
959
+ className,
960
+ "polli:flex polli:shrink-0 polli:items-center polli:justify-center polli:rounded-full polli:bg-theme-bg-pale polli:text-xs polli:font-semibold polli:text-theme-text-strong"
961
+ ),
962
+ children: initials(name)
963
+ }
964
+ );
965
+ return dashboardHref ? /* @__PURE__ */ jsx13(
966
+ "a",
967
+ {
968
+ href: dashboardHref,
969
+ target: "_blank",
970
+ rel: "noopener noreferrer",
971
+ "aria-label": "Open dashboard",
972
+ title: "Open dashboard",
973
+ className: "polli:shrink-0 polli:rounded-full polli:cursor-pointer polli:transition-transform polli:hover:scale-105 polli:hover:brightness-110 polli:focus-visible:outline-2 polli:focus-visible:outline-offset-2 polli:focus-visible:outline-current polli:motion-reduce:transition-none polli:motion-reduce:hover:scale-100",
974
+ children: avatar
975
+ }
976
+ ) : avatar;
175
977
  }
176
- function AuthModalLoading() {
177
- return /* @__PURE__ */ jsxs2(AuthModal, { children: [
178
- /* @__PURE__ */ jsx2(AuthModalHeader, {}),
179
- /* @__PURE__ */ jsx2("div", { className: "polli:px-8 polli:pt-2 polli:pb-8 polli:text-center", children: /* @__PURE__ */ jsx2("p", { className: "polli:text-theme-text-strong", children: "Loading..." }) })
978
+ function AccountDetails({
979
+ name,
980
+ secondaryContent,
981
+ secondaryId
982
+ }) {
983
+ return /* @__PURE__ */ jsxs8("span", { className: "polli:flex polli:min-w-0 polli:flex-col polli:items-start polli:text-left", children: [
984
+ /* @__PURE__ */ jsx13(
985
+ "span",
986
+ {
987
+ title: name,
988
+ className: "polli:max-w-full polli:truncate polli:text-sm polli:font-medium polli:leading-5 polli:text-theme-text-strong",
989
+ children: name
990
+ }
991
+ ),
992
+ secondaryContent != null && /* @__PURE__ */ jsx13(
993
+ "span",
994
+ {
995
+ id: secondaryId,
996
+ className: "polli:inline-flex polli:min-h-5 polli:items-center polli:whitespace-nowrap polli:text-xs polli:leading-4 polli:text-theme-text-base",
997
+ children: secondaryContent
998
+ }
999
+ )
180
1000
  ] });
181
1001
  }
182
- function ErrorBanner({ children }) {
183
- return /* @__PURE__ */ jsx2("div", { className: "polli:rounded-lg polli:border-2 polli:border-intent-danger-border polli:bg-intent-danger-bg-light polli:p-4", children: /* @__PURE__ */ jsx2("p", { className: "polli:text-sm polli:text-intent-danger-text", children }) });
1002
+ function AccountMenu({
1003
+ name,
1004
+ avatarUrl,
1005
+ dashboardHref,
1006
+ secondaryContent,
1007
+ children,
1008
+ className,
1009
+ menuClassName,
1010
+ side = "bottom",
1011
+ menuLabel = `Account menu for ${name}`
1012
+ }) {
1013
+ const statusId = useId3();
1014
+ const avatar = /* @__PURE__ */ jsx13(
1015
+ AccountAvatar,
1016
+ {
1017
+ name,
1018
+ avatarUrl,
1019
+ dashboardHref,
1020
+ secondaryContent
1021
+ }
1022
+ );
1023
+ return /* @__PURE__ */ jsxs8(
1024
+ "div",
1025
+ {
1026
+ "data-theme": "accent",
1027
+ className: cn(
1028
+ "polli:flex polli:min-w-0 polli:items-center polli:gap-2 polli:rounded-full polli:bg-theme-bg-active polli:p-1 polli:pr-3 polli:text-theme-text-strong polli:transition-colors polli:hover:bg-theme-bg-hover",
1029
+ className
1030
+ ),
1031
+ children: [
1032
+ dashboardHref && avatar,
1033
+ /* @__PURE__ */ jsx13(
1034
+ Dropdown,
1035
+ {
1036
+ align: "end",
1037
+ side,
1038
+ className: cn(
1039
+ "polli:w-max polli:min-w-[var(--reference-width)] polli:p-1",
1040
+ menuClassName
1041
+ ),
1042
+ trigger: (open) => /* @__PURE__ */ jsxs8(
1043
+ "button",
1044
+ {
1045
+ type: "button",
1046
+ "aria-label": menuLabel,
1047
+ "aria-describedby": secondaryContent != null ? statusId : void 0,
1048
+ className: "polli-control polli:flex polli:min-w-0 polli:flex-1 polli:items-center polli:gap-2 polli:self-stretch polli:rounded-full polli:text-theme-text-strong",
1049
+ children: [
1050
+ !dashboardHref && avatar,
1051
+ /* @__PURE__ */ jsx13(
1052
+ AccountDetails,
1053
+ {
1054
+ name,
1055
+ secondaryContent,
1056
+ secondaryId: statusId
1057
+ }
1058
+ ),
1059
+ /* @__PURE__ */ jsx13(
1060
+ ChevronIcon,
1061
+ {
1062
+ expanded: open,
1063
+ className: "polli:ml-auto polli:h-4 polli:w-4 polli:text-theme-text-strong"
1064
+ }
1065
+ )
1066
+ ]
1067
+ }
1068
+ ),
1069
+ children
1070
+ }
1071
+ )
1072
+ ]
1073
+ }
1074
+ );
184
1075
  }
185
- function AuthInfoCard({
186
- title = "Authorize",
187
- children
1076
+
1077
+ // src/primitives/DropdownItem.tsx
1078
+ import { jsx as jsx14 } from "react/jsx-runtime";
1079
+ function DropdownItem({
1080
+ as,
1081
+ className,
1082
+ children,
1083
+ ...rest
188
1084
  }) {
189
- return /* @__PURE__ */ jsxs2("div", { className: "polli:rounded-lg polli:border-2 polli:border-theme-border polli:bg-theme-bg-pale polli:p-4", children: [
190
- /* @__PURE__ */ jsx2("p", { className: "polli:mb-2 polli:font-body polli:text-xs polli:font-semibold polli:tracking-wide polli:text-theme-text-soft", children: title }),
191
- children
1085
+ const Component = as || "button";
1086
+ return /* @__PURE__ */ jsx14(
1087
+ Component,
1088
+ {
1089
+ ...Component === "button" ? { type: "button" } : void 0,
1090
+ ...rest,
1091
+ className: cn(
1092
+ "polli-control polli:flex polli:w-full polli:cursor-pointer polli:items-center polli:gap-2 polli:rounded-lg polli:bg-transparent polli:px-3 polli:py-2 polli:text-left polli:text-sm polli:font-medium polli:text-theme-text-base polli:no-underline polli:transition-colors polli:hover:bg-theme-bg-hover polli:hover:text-theme-text-hover polli:focus-visible:bg-theme-bg-hover",
1093
+ className
1094
+ ),
1095
+ children
1096
+ }
1097
+ );
1098
+ }
1099
+
1100
+ // src/modules/auth/DashboardAccountMenu.tsx
1101
+ import { Fragment as Fragment3, jsx as jsx15, jsxs as jsxs9 } from "react/jsx-runtime";
1102
+ function DashboardAccountMenu({
1103
+ user,
1104
+ onSignOut,
1105
+ className,
1106
+ side
1107
+ }) {
1108
+ const [error, setError] = useState2(null);
1109
+ return /* @__PURE__ */ jsxs9(Fragment3, { children: [
1110
+ error && /* @__PURE__ */ jsx15(Alert, { children: error }),
1111
+ /* @__PURE__ */ jsx15(
1112
+ AccountMenu,
1113
+ {
1114
+ name: user.name || user.preferred_username || user.email,
1115
+ avatarUrl: user.picture,
1116
+ className,
1117
+ side,
1118
+ children: /* @__PURE__ */ jsxs9(
1119
+ DropdownItem,
1120
+ {
1121
+ onClick: () => {
1122
+ setError(null);
1123
+ Promise.resolve().then(onSignOut).catch(
1124
+ () => setError(
1125
+ "Could not sign out. Please try again."
1126
+ )
1127
+ );
1128
+ },
1129
+ children: [
1130
+ /* @__PURE__ */ jsx15(
1131
+ SignOutIcon,
1132
+ {
1133
+ "aria-hidden": "true",
1134
+ className: "polli:h-4 polli:w-4 polli:shrink-0"
1135
+ }
1136
+ ),
1137
+ "Sign out"
1138
+ ]
1139
+ }
1140
+ )
1141
+ }
1142
+ )
192
1143
  ] });
193
1144
  }
1145
+
1146
+ // src/primitives/Button.tsx
1147
+ import { jsx as jsx16, jsxs as jsxs10 } from "react/jsx-runtime";
1148
+ var pillSizes = {
1149
+ icon: "polli:h-12 polli:w-12 polli:p-0",
1150
+ xs: "polli:h-5 polli:px-1.5 polli:py-0 polli:text-[11px] polli:leading-none",
1151
+ sm: "polli:min-h-7 polli:px-2 polli:pt-0.5 polli:pb-1",
1152
+ md: "polli:min-h-9 polli:px-4 polli:pt-1.5 polli:pb-2",
1153
+ lg: "polli:min-h-12 polli:px-6 polli:py-3 polli:text-base"
1154
+ };
1155
+ var raisedSizes = {
1156
+ icon: "polli:h-12 polli:w-12 polli:p-0",
1157
+ xs: "polli:px-2 polli:py-1 polli:text-xs",
1158
+ sm: "polli:px-4 polli:py-2 polli:text-sm",
1159
+ md: "polli:px-7 polli:py-3.5 polli:text-base",
1160
+ lg: "polli:px-8 polli:py-4 polli:text-lg"
1161
+ };
1162
+ var appearanceClasses = {
1163
+ pill: "polli:rounded-full",
1164
+ raised: "polli:rounded-xl polli:border-r-[3px] polli:border-b-[3px] polli:border-solid polli:border-theme-text-strong/20 polli:hover:border-theme-text-strong/45"
1165
+ };
1166
+ var themeClasses = "polli:bg-theme-bg-active polli:text-theme-text-strong polli:hover:bg-theme-bg-hover polli:hover:text-theme-text-hover polli:transition-colors";
1167
+ var outlined = "polli:border polli:border-theme-text-soft polli:bg-theme-bg-active/30 polli:text-theme-text-strong polli:transition-colors polli:[.dark_&]:bg-transparent";
1168
+ var intentClasses2 = {
1169
+ brand: `${outlined} polli:hover:bg-theme-bg-active/50 polli:[.dark_&]:hover:bg-theme-text-soft/10`,
1170
+ commit: `${outlined} polli:hover:border-theme-bg-active polli:hover:bg-theme-bg-active polli:focus-visible:border-theme-bg-active polli:focus-visible:bg-theme-bg-active polli:[.dark_&]:hover:bg-theme-bg-active polli:[.dark_&]:focus-visible:bg-theme-bg-active`,
1171
+ danger: "polli:border polli:border-intent-danger-text polli:bg-intent-danger-bg-light polli:text-intent-danger-text polli:hover:bg-intent-danger-bg-hover polli:focus-visible:bg-intent-danger-bg-hover polli:transition-colors polli:[.dark_&]:bg-transparent polli:[.dark_&]:hover:bg-intent-danger-bg-hover polli:[.dark_&]:focus-visible:bg-intent-danger-bg-hover",
1172
+ info: "polli:bg-intent-info-bg-light polli:text-intent-info-text polli:hover:bg-intent-info-bg-hover polli:transition-colors",
1173
+ // Secondary actions never take the accent: one step stronger grey on hover.
1174
+ neutral: "polli:bg-theme-bg-subtle polli:text-theme-text-base polli:hover:bg-theme-text-muted/25 polli:hover:text-theme-text-strong polli:transition-colors"
1175
+ };
1176
+ var buttonClasses = ({
1177
+ intent,
1178
+ appearance = "pill",
1179
+ size,
1180
+ className,
1181
+ disabled,
1182
+ busy
1183
+ }) => {
1184
+ const colorClasses = intent ? intentClasses2[intent] : themeClasses;
1185
+ const sizeClasses2 = appearance === "raised" ? raisedSizes : pillSizes;
1186
+ return cn(
1187
+ "polli-control polli:inline-flex polli:items-center polli:justify-center polli:self-center polli:font-body polli:text-sm polli:font-medium polli:leading-normal polli:box-border polli:border polli:border-transparent",
1188
+ // A busy button is working, not unavailable: it keeps its strength.
1189
+ busy ? "polli:cursor-progress" : disabled ? "polli:opacity-50 polli:cursor-not-allowed" : "polli:hover:filter polli:hover:brightness-105 polli:cursor-pointer",
1190
+ colorClasses,
1191
+ appearanceClasses[appearance],
1192
+ sizeClasses2[size || "md"],
1193
+ className
1194
+ );
1195
+ };
1196
+ function Button({
1197
+ as,
1198
+ children,
1199
+ icon,
1200
+ intent,
1201
+ appearance,
1202
+ size,
1203
+ className,
1204
+ disabled,
1205
+ ...buttonProps
1206
+ }) {
1207
+ const Component = as || "button";
1208
+ const isButton = Component === "button";
1209
+ const isAnchor = Component === "a";
1210
+ const buttonType = buttonProps.type;
1211
+ const onClick = buttonProps.onClick;
1212
+ const ariaBusy = buttonProps["aria-busy"];
1213
+ const busy = ariaBusy === true || ariaBusy === "true";
1214
+ const handleClick = disabled ? (event) => {
1215
+ event.preventDefault();
1216
+ event.stopPropagation();
1217
+ } : onClick;
1218
+ return /* @__PURE__ */ jsxs10(
1219
+ Component,
1220
+ {
1221
+ ...buttonProps,
1222
+ "data-intent": intent,
1223
+ ...isButton ? { type: buttonType ?? "button", disabled } : {},
1224
+ ...!isButton && disabled ? { "aria-disabled": true, tabIndex: -1 } : {},
1225
+ ...isAnchor && disabled ? { href: void 0 } : {},
1226
+ onClick: handleClick,
1227
+ className: buttonClasses({
1228
+ intent,
1229
+ appearance,
1230
+ size,
1231
+ className,
1232
+ disabled,
1233
+ busy
1234
+ }),
1235
+ children: [
1236
+ icon && /* @__PURE__ */ jsx16(
1237
+ "span",
1238
+ {
1239
+ "aria-hidden": "true",
1240
+ className: "polli:mr-2 polli:flex polli:size-4 polli:shrink-0 polli:[&>svg]:size-full",
1241
+ children: busy ? /* @__PURE__ */ jsx16("span", { className: "polli:block polli:size-full polli:animate-spin polli:rounded-full polli:border-2 polli:border-current polli:border-r-transparent polli:motion-reduce:animate-none" }) : icon
1242
+ }
1243
+ ),
1244
+ children
1245
+ ]
1246
+ }
1247
+ );
1248
+ }
1249
+
1250
+ // src/primitives/ColorModeToggle.tsx
1251
+ import { useSyncExternalStore } from "react";
1252
+ import { jsx as jsx17 } from "react/jsx-runtime";
1253
+ var STORAGE_KEY = "polli-color-mode";
1254
+ function readStored() {
1255
+ try {
1256
+ const value = localStorage.getItem(STORAGE_KEY);
1257
+ return value === "light" || value === "dark" ? value : null;
1258
+ } catch {
1259
+ return null;
1260
+ }
1261
+ }
1262
+ function systemMode() {
1263
+ return typeof window !== "undefined" && window.matchMedia?.("(prefers-color-scheme: dark)").matches === true ? "dark" : "light";
1264
+ }
1265
+ var current = readStored() ?? systemMode();
1266
+ var listeners = /* @__PURE__ */ new Set();
1267
+ function apply() {
1268
+ if (typeof document === "undefined") return;
1269
+ document.documentElement.classList.toggle("dark", current === "dark");
1270
+ syncThemeColor();
1271
+ }
1272
+ function syncThemeColor() {
1273
+ if (typeof document === "undefined") return;
1274
+ const appBg = getComputedStyle(document.documentElement).getPropertyValue("--polli-color-app-bg").trim();
1275
+ if (!appBg) return;
1276
+ let meta = document.querySelector('meta[name="theme-color"]');
1277
+ if (!meta) {
1278
+ meta = document.createElement("meta");
1279
+ meta.setAttribute("name", "theme-color");
1280
+ document.head.appendChild(meta);
1281
+ }
1282
+ meta.setAttribute("content", appBg);
1283
+ }
1284
+ function emit() {
1285
+ for (const listener of listeners) listener();
1286
+ }
1287
+ function handleStorage(event) {
1288
+ if (event.key !== STORAGE_KEY) return;
1289
+ const next = readStored() ?? systemMode();
1290
+ if (next === current) return;
1291
+ current = next;
1292
+ apply();
1293
+ emit();
1294
+ }
1295
+ function subscribe(listener) {
1296
+ if (listeners.size === 0 && typeof window !== "undefined") {
1297
+ apply();
1298
+ window.addEventListener("storage", handleStorage);
1299
+ }
1300
+ listeners.add(listener);
1301
+ return () => {
1302
+ listeners.delete(listener);
1303
+ if (listeners.size === 0 && typeof window !== "undefined") {
1304
+ window.removeEventListener("storage", handleStorage);
1305
+ }
1306
+ };
1307
+ }
1308
+ function getSnapshot() {
1309
+ return current;
1310
+ }
1311
+ function getServerSnapshot() {
1312
+ return "light";
1313
+ }
1314
+ function setColorMode(mode) {
1315
+ if (mode === current) return;
1316
+ current = mode;
1317
+ apply();
1318
+ try {
1319
+ if (mode === systemMode()) localStorage.removeItem(STORAGE_KEY);
1320
+ else localStorage.setItem(STORAGE_KEY, mode);
1321
+ } catch {
1322
+ }
1323
+ emit();
1324
+ }
1325
+ function useColorMode() {
1326
+ const mode = useSyncExternalStore(
1327
+ subscribe,
1328
+ getSnapshot,
1329
+ getServerSnapshot
1330
+ );
1331
+ return {
1332
+ mode,
1333
+ isDark: mode === "dark",
1334
+ toggle: () => setColorMode(mode === "dark" ? "light" : "dark")
1335
+ };
1336
+ }
1337
+
1338
+ // src/modules/auth/ProviderSignInButton.tsx
1339
+ import { jsx as jsx18, jsxs as jsxs11 } from "react/jsx-runtime";
1340
+ function ProviderSignInButton({
1341
+ icon,
1342
+ className,
1343
+ children,
1344
+ type = "button",
1345
+ ...props
1346
+ }) {
1347
+ return /* @__PURE__ */ jsxs11(
1348
+ Button,
1349
+ {
1350
+ ...props,
1351
+ type,
1352
+ intent: "brand",
1353
+ "data-theme": "accent",
1354
+ className: cn("polli:gap-2 polli:whitespace-nowrap", className),
1355
+ children: [
1356
+ props["aria-busy"] === true ? /* @__PURE__ */ jsx18(
1357
+ "span",
1358
+ {
1359
+ "aria-hidden": "true",
1360
+ className: "polli:h-5 polli:w-5 polli:shrink-0 polli:animate-spin polli:rounded-full polli:border-2 polli:border-current polli:border-r-transparent polli:motion-reduce:animate-none"
1361
+ }
1362
+ ) : icon,
1363
+ /* @__PURE__ */ jsx18("span", { children })
1364
+ ]
1365
+ }
1366
+ );
1367
+ }
1368
+
1369
+ // src/modules/auth/PollinationsSignInButton.tsx
1370
+ import { jsx as jsx19 } from "react/jsx-runtime";
1371
+ function PollinationsSignInButton({
1372
+ className,
1373
+ children,
1374
+ type = "button",
1375
+ isPending = false,
1376
+ disabled,
1377
+ ...props
1378
+ }) {
1379
+ return /* @__PURE__ */ jsx19(
1380
+ ProviderSignInButton,
1381
+ {
1382
+ type,
1383
+ ...props,
1384
+ disabled: disabled || isPending,
1385
+ "aria-busy": isPending,
1386
+ className,
1387
+ icon: /* @__PURE__ */ jsx19(BrandMark, { className: "polli:h-5 polli:w-5" }),
1388
+ children: children ?? "Connect with Pollinations"
1389
+ }
1390
+ );
1391
+ }
1392
+
1393
+ // src/modules/auth/DashboardSignIn.tsx
1394
+ import { jsx as jsx20 } from "react/jsx-runtime";
1395
+ var signInErrors = {
1396
+ admin_required: {
1397
+ title: "Admin access required",
1398
+ message: "Your Pollinations account does not have admin access. Switch accounts on Pollinations, then try again."
1399
+ },
1400
+ cancelled: {
1401
+ title: "Sign-in cancelled",
1402
+ message: "Sign-in was cancelled. You can try again."
1403
+ },
1404
+ invalid_state: {
1405
+ title: "Sign-in link expired",
1406
+ message: "Your Pollinations sign-in link expired. Please try again."
1407
+ },
1408
+ unavailable: {
1409
+ title: "Couldn\u2019t sign in",
1410
+ message: "Couldn\u2019t complete your Pollinations sign-in. Please try again."
1411
+ }
1412
+ };
1413
+ function DashboardSignIn({
1414
+ appName,
1415
+ onSignIn,
1416
+ isPending = false,
1417
+ sessionError
1418
+ }) {
1419
+ useColorMode();
1420
+ const code = typeof window === "undefined" ? null : new URLSearchParams(window.location.search).get("auth_error");
1421
+ const error = sessionError ? { title: "Couldn\u2019t check your session", message: sessionError } : code && Object.hasOwn(signInErrors, code) ? signInErrors[code] : null;
1422
+ const shownError = isPending ? null : error;
1423
+ return /* @__PURE__ */ jsx20(
1424
+ AuthFlowLayout,
1425
+ {
1426
+ title: shownError ? shownError.title : `Sign in to ${appName}`,
1427
+ description: shownError ? void 0 : "Use your Pollinations admin account.",
1428
+ error: shownError?.message,
1429
+ actions: isPending ? /* @__PURE__ */ jsx20(PollinationsSignInButton, { isPending: true, children: "Checking sign-in\u2026" }) : sessionError ? /* @__PURE__ */ jsx20(
1430
+ Button,
1431
+ {
1432
+ icon: /* @__PURE__ */ jsx20(RefreshIcon, {}),
1433
+ onClick: () => window.location.reload(),
1434
+ children: "Reload"
1435
+ }
1436
+ ) : /* @__PURE__ */ jsx20(PollinationsSignInButton, { onClick: onSignIn, children: error ? "Try again" : "Sign in with Pollinations" })
1437
+ }
1438
+ );
1439
+ }
1440
+
1441
+ // src/modules/auth/GitHubSignInButton.tsx
1442
+ import { jsx as jsx21 } from "react/jsx-runtime";
1443
+ function GitHubSignInButton({
1444
+ isSigningIn = false,
1445
+ disabled,
1446
+ ...props
1447
+ }) {
1448
+ return /* @__PURE__ */ jsx21(
1449
+ ProviderSignInButton,
1450
+ {
1451
+ ...props,
1452
+ disabled: disabled || isSigningIn,
1453
+ "aria-busy": isSigningIn,
1454
+ icon: /* @__PURE__ */ jsx21(
1455
+ GitHubIcon,
1456
+ {
1457
+ "aria-hidden": "true",
1458
+ className: "polli:h-5 polli:w-5 polli:shrink-0"
1459
+ }
1460
+ ),
1461
+ children: isSigningIn ? "Signing in\u2026" : "Sign in with GitHub"
1462
+ }
1463
+ );
1464
+ }
194
1465
  export {
1466
+ AuthAccessItem,
1467
+ AuthFlowLayout,
195
1468
  AuthInfoCard,
196
1469
  AuthModal,
1470
+ AuthModalFootnote,
197
1471
  AuthModalHeader,
198
1472
  AuthModalLoading,
199
- ErrorBanner
1473
+ DashboardAccountMenu,
1474
+ DashboardSignIn,
1475
+ ErrorBanner,
1476
+ GitHubSignInButton,
1477
+ PollinationsSignInButton
200
1478
  };
201
1479
  //# sourceMappingURL=index.js.map