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

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 (91) hide show
  1. package/README.md +148 -36
  2. package/dist/Button-BGqClaBr.d.cts +29 -0
  3. package/dist/Button-BGqClaBr.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 +684 -243
  9. package/dist/app-user-menu/sdk.cjs.map +1 -1
  10. package/dist/app-user-menu/sdk.d.cts +18 -7
  11. package/dist/app-user-menu/sdk.d.ts +18 -7
  12. package/dist/app-user-menu/sdk.js +689 -241
  13. package/dist/app-user-menu/sdk.js.map +1 -1
  14. package/dist/app.css +19 -122
  15. package/dist/auth/index.cjs +1372 -86
  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 +1369 -85
  20. package/dist/auth/index.js.map +1 -1
  21. package/dist/auth/sdk.cjs +250 -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 +219 -0
  26. package/dist/auth/sdk.js.map +1 -0
  27. package/dist/brand/badge-made-with.svg +1 -0
  28. package/dist/brand/lockup-horizontal-black.png +0 -0
  29. package/dist/brand/lockup-horizontal-black.svg +4 -0
  30. package/dist/brand/lockup-horizontal-white.png +0 -0
  31. package/dist/brand/lockup-horizontal-white.svg +4 -0
  32. package/dist/brand/lockup-horizontal.svg +4 -0
  33. package/dist/brand/lockup-stacked-black.png +0 -0
  34. package/dist/brand/lockup-stacked-black.svg +4 -0
  35. package/dist/brand/lockup-stacked-white.png +0 -0
  36. package/dist/brand/lockup-stacked-white.svg +4 -0
  37. package/dist/brand/lockup-stacked.svg +4 -0
  38. package/dist/brand/mark-black.png +0 -0
  39. package/dist/brand/mark-black.svg +1 -0
  40. package/dist/brand/mark-white.png +0 -0
  41. package/dist/brand/mark-white.svg +1 -0
  42. package/dist/brand/mark.svg +1 -0
  43. package/dist/brand/polli/polli-lockup-horizontal-black.png +0 -0
  44. package/dist/brand/polli/polli-lockup-horizontal-white.png +0 -0
  45. package/dist/brand/polli/polli-lockup-stacked-black.png +0 -0
  46. package/dist/brand/polli/polli-lockup-stacked-white.png +0 -0
  47. package/dist/brand/polli/polli.png +0 -0
  48. package/dist/brand/wordmark-black.png +0 -0
  49. package/dist/brand/wordmark-black.svg +1 -0
  50. package/dist/brand/wordmark-white.png +0 -0
  51. package/dist/brand/wordmark-white.svg +1 -0
  52. package/dist/brand/wordmark.svg +1 -0
  53. package/dist/fonts/geist-pixel-square.woff2 +0 -0
  54. package/dist/gen/index.cjs +459 -218
  55. package/dist/gen/index.cjs.map +1 -1
  56. package/dist/gen/index.d.cts +75 -19
  57. package/dist/gen/index.d.ts +75 -19
  58. package/dist/gen/index.js +453 -216
  59. package/dist/gen/index.js.map +1 -1
  60. package/dist/index.browser.min.js +2 -0
  61. package/dist/index.browser.min.js.map +1 -0
  62. package/dist/index.cjs +3907 -1626
  63. package/dist/index.cjs.map +1 -1
  64. package/dist/index.d.cts +682 -199
  65. package/dist/index.d.ts +682 -199
  66. package/dist/index.js +3671 -1457
  67. package/dist/index.js.map +1 -1
  68. package/dist/licenses/Geist-OFL.txt +93 -0
  69. package/dist/markdown.cjs +836 -0
  70. package/dist/markdown.cjs.map +1 -0
  71. package/dist/markdown.d.cts +16 -0
  72. package/dist/markdown.d.ts +16 -0
  73. package/dist/markdown.js +807 -0
  74. package/dist/markdown.js.map +1 -0
  75. package/dist/styles.css +1 -1
  76. package/dist/theme.css +94 -0
  77. package/dist/types-CCy9JNu9.d.cts +6 -0
  78. package/dist/types-CCy9JNu9.d.ts +6 -0
  79. package/dist/wallet/index.cjs +295 -65
  80. package/dist/wallet/index.cjs.map +1 -1
  81. package/dist/wallet/index.d.cts +30 -7
  82. package/dist/wallet/index.d.ts +30 -7
  83. package/dist/wallet/index.js +294 -65
  84. package/dist/wallet/index.js.map +1 -1
  85. package/package.json +106 -89
  86. package/dist/Chip-CQCq34kS.d.cts +0 -20
  87. package/dist/Chip-Cj4xG7Te.d.ts +0 -20
  88. package/dist/assets/logo-wordmark.svg +0 -1
  89. package/dist/assets/logo.svg +0 -4
  90. package/dist/theme-jRPPBmld.d.cts +0 -20
  91. package/dist/theme-jRPPBmld.d.ts +0 -20
@@ -1,25 +1,335 @@
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";
11
6
  import { extendTailwindMerge } from "tailwind-merge";
12
- var twMerge = extendTailwindMerge({ prefix: "polli" });
7
+ var twMerge = extendTailwindMerge({
8
+ prefix: "polli",
9
+ extend: { theme: { text: ["micro"] } }
10
+ });
13
11
  function cn(...inputs) {
14
12
  return twMerge(clsx(...inputs));
15
13
  }
16
14
 
17
- // src/primitives/Dialog.tsx
15
+ // src/primitives/icons/index.tsx
18
16
  import { jsx, jsxs } from "react/jsx-runtime";
17
+ var strokeProps = {
18
+ fill: "none",
19
+ stroke: "currentColor",
20
+ strokeWidth: 2,
21
+ strokeLinecap: "round",
22
+ strokeLinejoin: "round"
23
+ };
24
+ function CheckIcon(props) {
25
+ return /* @__PURE__ */ jsx(
26
+ "svg",
27
+ {
28
+ "aria-hidden": "true",
29
+ viewBox: "0 0 24 24",
30
+ ...strokeProps,
31
+ strokeWidth: 2.5,
32
+ ...props,
33
+ children: /* @__PURE__ */ jsx("polyline", { points: "20 6 9 17 4 12" })
34
+ }
35
+ );
36
+ }
37
+ function ExternalLinkIcon(props) {
38
+ return /* @__PURE__ */ jsx("svg", { "aria-hidden": "true", viewBox: "0 0 24 24", ...strokeProps, ...props, children: /* @__PURE__ */ jsx("path", { d: "M7 17 17 7M9 7h8v8" }) });
39
+ }
40
+ function GitHubIcon(props) {
41
+ return /* @__PURE__ */ jsx("svg", { viewBox: "0 0 24 24", "aria-hidden": "true", ...props, children: /* @__PURE__ */ jsx(
42
+ "path",
43
+ {
44
+ fill: "currentColor",
45
+ 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"
46
+ }
47
+ ) });
48
+ }
49
+ function WarningIcon(props) {
50
+ return /* @__PURE__ */ jsxs("svg", { "aria-hidden": "true", viewBox: "0 0 24 24", ...strokeProps, ...props, children: [
51
+ /* @__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" }),
52
+ /* @__PURE__ */ jsx("path", { d: "M12 9v4M12 17h.01" })
53
+ ] });
54
+ }
55
+ function SignOutIcon(props) {
56
+ return /* @__PURE__ */ jsxs("svg", { "aria-hidden": "true", viewBox: "0 0 24 24", ...strokeProps, ...props, children: [
57
+ /* @__PURE__ */ jsx("path", { d: "M9 21H5a2 2 0 0 1-2-2V5a2 2 0 0 1 2-2h4" }),
58
+ /* @__PURE__ */ jsx("path", { d: "m16 17 5-5-5-5" }),
59
+ /* @__PURE__ */ jsx("path", { d: "M21 12H9" })
60
+ ] });
61
+ }
62
+ function RefreshIcon(props) {
63
+ return /* @__PURE__ */ jsxs("svg", { "aria-hidden": "true", viewBox: "0 0 24 24", ...strokeProps, ...props, children: [
64
+ /* @__PURE__ */ jsx("path", { d: "M21 12a9 9 0 1 1-2.64-6.36" }),
65
+ /* @__PURE__ */ jsx("path", { d: "M21 3v6h-6" })
66
+ ] });
67
+ }
68
+
69
+ // src/primitives/Typography.tsx
70
+ import { jsx as jsx2 } from "react/jsx-runtime";
71
+ var headingSizeClasses = {
72
+ display: "polli:font-heading polli:text-5xl polli:leading-none",
73
+ title: "polli:font-heading polli:text-4xl polli:leading-none",
74
+ section: "polli:font-subheading polli:text-2xl polli:leading-tight",
75
+ subsection: "polli:font-subheading polli:text-xl polli:leading-tight",
76
+ card: "polli:font-subheading polli:text-lg polli:leading-tight"
77
+ };
78
+ var textSizeClasses = {
79
+ body: "polli:text-base polli:leading-relaxed",
80
+ sm: "polli:text-sm polli:leading-6",
81
+ xs: "polli:text-xs polli:leading-normal",
82
+ micro: "polli:text-micro polli:leading-normal"
83
+ };
84
+ var textToneClasses = {
85
+ base: "polli:text-theme-text-base",
86
+ strong: "polli:text-theme-text-strong",
87
+ soft: "polli:text-theme-text-soft",
88
+ muted: "polli:text-theme-text-muted"
89
+ };
90
+ var textWeightClasses = {
91
+ normal: "polli:font-normal",
92
+ medium: "polli:font-medium",
93
+ semibold: "polli:font-semibold",
94
+ bold: "polli:font-bold"
95
+ };
96
+ function headingClassName(size, className) {
97
+ return cn(
98
+ "polli:break-words polli:text-theme-text-strong",
99
+ headingSizeClasses[size],
100
+ className
101
+ );
102
+ }
103
+ function textClassName({
104
+ size,
105
+ tone,
106
+ weight,
107
+ className
108
+ }) {
109
+ return cn(
110
+ "polli:break-words polli:font-body",
111
+ textSizeClasses[size],
112
+ textToneClasses[tone],
113
+ textWeightClasses[weight],
114
+ className
115
+ );
116
+ }
117
+ function Heading({
118
+ as,
119
+ size = "section",
120
+ className,
121
+ children,
122
+ ...rest
123
+ }) {
124
+ const Component = as || "h2";
125
+ return /* @__PURE__ */ jsx2(Component, { ...rest, className: headingClassName(size, className), children });
126
+ }
127
+ function Text({
128
+ as,
129
+ size = "body",
130
+ tone = "base",
131
+ weight = "normal",
132
+ className,
133
+ children,
134
+ ...rest
135
+ }) {
136
+ const Component = as || "p";
137
+ return /* @__PURE__ */ jsx2(
138
+ Component,
139
+ {
140
+ ...rest,
141
+ className: textClassName({ size, tone, weight, className }),
142
+ children
143
+ }
144
+ );
145
+ }
146
+
147
+ // src/compositions/Alert.tsx
148
+ import { Fragment, jsx as jsx3, jsxs as jsxs2 } from "react/jsx-runtime";
149
+ var intentClasses = {
150
+ info: "polli:bg-theme-bg-pale polli:text-theme-text-strong",
151
+ advisory: "polli:bg-intent-warning-bg-light/45 polli:text-theme-text-base",
152
+ warning: "polli:bg-intent-warning-bg-light polli:text-intent-warning-text",
153
+ danger: "polli:bg-intent-danger-bg-light polli:text-intent-danger-text"
154
+ };
155
+ var Alert = ({
156
+ intent = "info",
157
+ title,
158
+ className,
159
+ children,
160
+ ...rest
161
+ }) => /* @__PURE__ */ jsxs2(
162
+ "div",
163
+ {
164
+ ...rest,
165
+ role: intent === "danger" ? "alert" : "status",
166
+ className: cn(
167
+ "polli:rounded-xl polli:px-3 polli:py-2 polli:text-sm",
168
+ intent === "advisory" && "polli:flex polli:items-start polli:gap-2",
169
+ intentClasses[intent],
170
+ className
171
+ ),
172
+ children: [
173
+ intent === "advisory" && /* @__PURE__ */ jsx3(WarningIcon, { className: "polli:mt-0.5 polli:h-4 polli:w-4 polli:shrink-0 polli:text-intent-warning-text" }),
174
+ /* @__PURE__ */ jsxs2("div", { className: "polli:min-w-0", children: [
175
+ title && (intent === "advisory" ? /* @__PURE__ */ jsxs2(Fragment, { children: [
176
+ /* @__PURE__ */ jsx3("strong", { className: "polli:font-semibold polli:text-theme-text-strong", children: title }),
177
+ " ",
178
+ "\u2014",
179
+ " "
180
+ ] }) : /* @__PURE__ */ jsx3(
181
+ Text,
182
+ {
183
+ as: "div",
184
+ size: "xs",
185
+ tone: "strong",
186
+ weight: "bold",
187
+ className: "polli:mb-1 polli:uppercase polli:tracking-wide",
188
+ children: title
189
+ }
190
+ )),
191
+ children
192
+ ] })
193
+ ]
194
+ }
195
+ );
196
+
197
+ // src/brand/lockup-horizontal.svg
198
+ 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';
199
+
200
+ // src/brand/mark.svg
201
+ 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';
202
+
203
+ // src/primitives/BrandMark.tsx
204
+ import { jsx as jsx4 } from "react/jsx-runtime";
205
+ var mask = (url) => ({
206
+ WebkitMask: `url('${url}') center / contain no-repeat`,
207
+ mask: `url('${url}') center / contain no-repeat`
208
+ });
209
+ var MASKS = { mark: mask(mark_default), lockup: mask(lockup_horizontal_default) };
210
+ function BrandMark({ variant = "mark", className }) {
211
+ return /* @__PURE__ */ jsx4(
212
+ "span",
213
+ {
214
+ "aria-hidden": "true",
215
+ className: cn(
216
+ "polli:block polli:shrink-0 polli:bg-current",
217
+ className
218
+ ),
219
+ style: MASKS[variant]
220
+ }
221
+ );
222
+ }
223
+
224
+ // src/primitives/Dialog.tsx
225
+ import { Dialog as ArkDialog } from "@ark-ui/react/dialog";
226
+ import { Portal } from "@ark-ui/react/portal";
227
+ import { useRef as useRef2 } from "react";
228
+
229
+ // src/primitives/ScrollArea.tsx
230
+ import {
231
+ forwardRef,
232
+ useCallback,
233
+ useEffect,
234
+ useRef
235
+ } from "react";
236
+ import { jsx as jsx5 } from "react/jsx-runtime";
237
+ var axisClasses = {
238
+ y: "polli:overflow-y-auto polli:overflow-x-hidden",
239
+ x: "polli:overflow-x-auto polli:overflow-y-hidden",
240
+ both: "polli:overflow-auto"
241
+ };
242
+ function assignRef(ref, value) {
243
+ if (typeof ref === "function") ref(value);
244
+ else if (ref) ref.current = value;
245
+ }
246
+ var ScrollArea = forwardRef(
247
+ ({ axis = "y", scrollbar = "subtle", className, children, ...rest }, externalRef) => {
248
+ const innerRef = useRef(null);
249
+ const setRef = useCallback(
250
+ (node) => {
251
+ innerRef.current = node;
252
+ assignRef(externalRef, node);
253
+ },
254
+ [externalRef]
255
+ );
256
+ useEffect(() => {
257
+ if (scrollbar === "native") return;
258
+ const element = innerRef.current;
259
+ if (!element) return;
260
+ let hideTimer = null;
261
+ const clearHideTimer = () => {
262
+ if (hideTimer !== null) {
263
+ window.clearTimeout(hideTimer);
264
+ hideTimer = null;
265
+ }
266
+ };
267
+ const show = () => {
268
+ element.dataset.scrollbarActive = "true";
269
+ clearHideTimer();
270
+ };
271
+ const hide = () => {
272
+ element.dataset.scrollbarActive = "false";
273
+ clearHideTimer();
274
+ };
275
+ const scheduleHide = () => {
276
+ clearHideTimer();
277
+ hideTimer = window.setTimeout(hide, 2e3);
278
+ };
279
+ const handleInteraction = () => {
280
+ show();
281
+ scheduleHide();
282
+ };
283
+ hide();
284
+ element.addEventListener("scroll", handleInteraction, {
285
+ passive: true
286
+ });
287
+ element.addEventListener("wheel", handleInteraction, {
288
+ passive: true
289
+ });
290
+ element.addEventListener("touchstart", handleInteraction, {
291
+ passive: true
292
+ });
293
+ element.addEventListener("pointerdown", handleInteraction);
294
+ element.addEventListener("keydown", handleInteraction);
295
+ element.addEventListener("focusin", handleInteraction);
296
+ element.addEventListener("focusout", scheduleHide);
297
+ return () => {
298
+ clearHideTimer();
299
+ element.removeEventListener("scroll", handleInteraction);
300
+ element.removeEventListener("wheel", handleInteraction);
301
+ element.removeEventListener("touchstart", handleInteraction);
302
+ element.removeEventListener("pointerdown", handleInteraction);
303
+ element.removeEventListener("keydown", handleInteraction);
304
+ element.removeEventListener("focusin", handleInteraction);
305
+ element.removeEventListener("focusout", scheduleHide);
306
+ };
307
+ }, [scrollbar]);
308
+ return /* @__PURE__ */ jsx5(
309
+ "div",
310
+ {
311
+ ...rest,
312
+ ref: setRef,
313
+ className: cn(
314
+ scrollbar === "subtle" && "polli-scrollbar-subtle",
315
+ "polli:min-w-0 polli:max-w-full",
316
+ axisClasses[axis],
317
+ className
318
+ ),
319
+ children
320
+ }
321
+ );
322
+ }
323
+ );
324
+ ScrollArea.displayName = "ScrollArea";
325
+
326
+ // src/primitives/Dialog.tsx
327
+ import { jsx as jsx6, jsxs as jsxs3 } from "react/jsx-runtime";
19
328
  var sizeClasses = {
20
329
  sm: "polli:max-w-md",
21
330
  md: "polli:max-w-xl",
22
- lg: "polli:max-w-2xl"
331
+ lg: "polli:max-w-[800px]",
332
+ xl: "polli:max-w-6xl"
23
333
  };
24
334
  var Dialog = ({
25
335
  open,
@@ -28,26 +338,24 @@ var Dialog = ({
28
338
  triggerAsChild = false,
29
339
  triggerClassName,
30
340
  title,
31
- titleClassName,
32
341
  ariaLabel,
33
342
  labelledBy,
34
- theme = "blue",
35
343
  size = "md",
36
344
  showBackdrop = true,
37
- backdropClassName,
345
+ backdropBlur = true,
38
346
  positionerClassName,
39
347
  contentClassName,
40
348
  children
41
349
  }) => {
42
- const contentRef = useRef(null);
43
- return /* @__PURE__ */ jsxs(
350
+ const contentRef = useRef2(null);
351
+ return /* @__PURE__ */ jsxs3(
44
352
  ArkDialog.Root,
45
353
  {
46
354
  open,
47
355
  initialFocusEl: () => contentRef.current,
48
356
  onOpenChange: (details) => onOpenChange?.(details.open),
49
357
  children: [
50
- trigger && /* @__PURE__ */ jsx(
358
+ trigger && /* @__PURE__ */ jsx6(
51
359
  ArkDialog.Trigger,
52
360
  {
53
361
  asChild: triggerAsChild,
@@ -55,47 +363,38 @@ var Dialog = ({
55
363
  children: trigger
56
364
  }
57
365
  ),
58
- /* @__PURE__ */ jsxs(Portal, { children: [
59
- showBackdrop && /* @__PURE__ */ jsx(
366
+ /* @__PURE__ */ jsxs3(Portal, { children: [
367
+ showBackdrop && /* @__PURE__ */ jsx6(
60
368
  ArkDialog.Backdrop,
61
369
  {
62
370
  className: cn(
63
- "polli:fixed polli:inset-0 polli:z-[100] polli:bg-ink-950/50",
64
- backdropClassName
371
+ "polli:fixed polli:inset-0 polli:z-[calc(100_+_var(--layer-index,0)_*_20)] polli:bg-[#000]/50",
372
+ backdropBlur && "polli:backdrop-blur-sm"
65
373
  )
66
374
  }
67
375
  ),
68
- /* @__PURE__ */ jsx(
376
+ /* @__PURE__ */ jsx6(
69
377
  ArkDialog.Positioner,
70
378
  {
71
- "data-theme": theme,
72
379
  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",
380
+ "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",
381
+ "polli-dialog-mobile-positioner",
74
382
  positionerClassName
75
383
  ),
76
- children: /* @__PURE__ */ jsxs(
384
+ children: /* @__PURE__ */ jsxs3(
77
385
  ArkDialog.Content,
78
386
  {
79
387
  ref: contentRef,
80
- "data-theme": theme,
81
388
  "aria-label": ariaLabel,
82
389
  "aria-labelledby": labelledBy,
83
390
  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",
391
+ "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",
392
+ "polli-dialog-mobile-page",
85
393
  sizeClasses[size],
86
394
  contentClassName
87
395
  ),
88
396
  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
- ),
397
+ title && /* @__PURE__ */ jsx6(DialogHeader, { title }),
99
398
  children
100
399
  ]
101
400
  }
@@ -108,94 +407,1079 @@ var Dialog = ({
108
407
  );
109
408
  };
110
409
  var DialogTitle = ArkDialog.Title;
410
+ var DialogDescription = ArkDialog.Description;
411
+ var DialogHeader = ({
412
+ title,
413
+ description,
414
+ children,
415
+ inBody = false,
416
+ className,
417
+ titleClassName,
418
+ descriptionClassName,
419
+ ...props
420
+ }) => {
421
+ return /* @__PURE__ */ jsxs3(
422
+ "div",
423
+ {
424
+ className: cn(
425
+ inBody ? "polli:shrink-0 polli:pt-2 polli:pb-4" : "polli:shrink-0 polli:px-(--polli-dialog-gutter) polli:pt-6 polli:pb-4",
426
+ className
427
+ ),
428
+ ...props,
429
+ children: [
430
+ title && /* @__PURE__ */ jsx6(
431
+ DialogTitle,
432
+ {
433
+ className: cn(headingClassName("section"), titleClassName),
434
+ children: title
435
+ }
436
+ ),
437
+ description && /* @__PURE__ */ jsx6(
438
+ DialogDescription,
439
+ {
440
+ className: cn(
441
+ "polli:mt-1 polli:font-body polli:text-sm polli:font-normal polli:leading-5 polli:text-theme-text-base",
442
+ descriptionClassName
443
+ ),
444
+ children: description
445
+ }
446
+ ),
447
+ children
448
+ ]
449
+ }
450
+ );
451
+ };
452
+ function DialogBody({
453
+ children,
454
+ actions,
455
+ footnote,
456
+ bodyClassName,
457
+ className,
458
+ ...props
459
+ }) {
460
+ return /* @__PURE__ */ jsxs3(
461
+ ScrollArea,
462
+ {
463
+ ...props,
464
+ className: cn(
465
+ "polli:flex polli:min-h-0 polli:flex-1 polli:flex-col polli:overscroll-contain",
466
+ className
467
+ ),
468
+ children: [
469
+ /* @__PURE__ */ jsx6(
470
+ "div",
471
+ {
472
+ className: cn(
473
+ "polli:space-y-3 polli:px-(--polli-dialog-gutter) polli:py-4",
474
+ bodyClassName
475
+ ),
476
+ children
477
+ }
478
+ ),
479
+ (actions || footnote) && // The size container lets the footer follow the dialog's width.
480
+ // It sits on the footer alone so pickers and tooltips in the
481
+ // body keep their positioning.
482
+ /* @__PURE__ */ jsxs3("div", { className: "polli-dialog-floating-controls polli:@container polli:pointer-events-none polli:sticky polli:bottom-0 polli:z-10", children: [
483
+ actions && /* @__PURE__ */ jsx6(DialogFooter, { className: "polli:pointer-events-auto", children: actions }),
484
+ footnote && /* @__PURE__ */ jsx6("div", { className: "polli:pointer-events-auto", children: footnote })
485
+ ] })
486
+ ]
487
+ }
488
+ );
489
+ }
490
+ var DialogFooter = ({
491
+ children,
492
+ className,
493
+ ...props
494
+ }) => {
495
+ return /* @__PURE__ */ jsx6(
496
+ "div",
497
+ {
498
+ className: cn(
499
+ "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",
500
+ // Actions are the screen's main controls: touch-sized, sharing
501
+ // the row in a narrow dialog (below 36rem, phones included), and
502
+ // spanning it when there is only one.
503
+ "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",
504
+ className
505
+ ),
506
+ ...props,
507
+ children
508
+ }
509
+ );
510
+ };
111
511
 
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({
512
+ // src/lib/link.ts
513
+ function isExternalHref(href, origin = globalThis.location?.origin) {
514
+ if (typeof href !== "string" || !/^(https?:)?\/\//i.test(href))
515
+ return false;
516
+ if (!origin) return true;
517
+ try {
518
+ return new URL(href, origin).origin !== origin;
519
+ } catch {
520
+ return false;
521
+ }
522
+ }
523
+
524
+ // src/primitives/InlineLink.tsx
525
+ import { jsx as jsx7, jsxs as jsxs4 } from "react/jsx-runtime";
526
+ function InlineLink({
527
+ as,
528
+ external,
529
+ showIcon = true,
530
+ size = "inherit",
531
+ tone = "accent",
532
+ className,
126
533
  children,
127
- dialog,
128
- tone = "default"
534
+ ...linkProps
129
535
  }) {
130
- const borderClass = tone === "error" ? "polli:border-intent-danger-border" : "polli:border-theme-border";
131
- return /* @__PURE__ */ jsx2(
536
+ const Component = as || "a";
537
+ const isExternal = external ?? isExternalHref(linkProps.href);
538
+ return /* @__PURE__ */ jsxs4(
539
+ Component,
540
+ {
541
+ target: isExternal && as !== "button" ? "_blank" : void 0,
542
+ rel: isExternal && as !== "button" ? "noopener noreferrer" : void 0,
543
+ className: ["polli-link", className].filter(Boolean).join(" "),
544
+ "data-size": size,
545
+ "data-tone": tone,
546
+ ...linkProps,
547
+ children: [
548
+ children,
549
+ showIcon && isExternal && /* @__PURE__ */ jsx7(
550
+ ExternalLinkIcon,
551
+ {
552
+ "aria-hidden": "true",
553
+ className: "polli-link-external-icon"
554
+ }
555
+ )
556
+ ]
557
+ }
558
+ );
559
+ }
560
+
561
+ // src/primitives/LoadingStatus.tsx
562
+ import { jsx as jsx8, jsxs as jsxs5 } from "react/jsx-runtime";
563
+ function LoadingStatus({ children }) {
564
+ 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: [
565
+ /* @__PURE__ */ jsx8(
566
+ "span",
567
+ {
568
+ "aria-hidden": "true",
569
+ 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"
570
+ }
571
+ ),
572
+ children
573
+ ] });
574
+ }
575
+
576
+ // src/primitives/Surface.tsx
577
+ import { jsx as jsx9 } from "react/jsx-runtime";
578
+ var variantClasses = {
579
+ // Phones get tighter padding (and a matching radius) so nested cards keep
580
+ // their width; from `sm` up the page has room for the full spacing.
581
+ panel: "polli:rounded-3xl polli:bg-surface-block polli:p-4 polli:sm:rounded-block polli:sm:p-7",
582
+ card: "polli-surface-card polli:rounded-card polli:bg-surface-opaque polli:p-3.5 polli:sm:p-4",
583
+ "card-themed": "polli:rounded-card polli:bg-theme-bg-pale polli:p-3.5 polli:sm:p-4"
584
+ };
585
+ function Surface({
586
+ as,
587
+ variant = "card",
588
+ className,
589
+ children,
590
+ ...rest
591
+ }) {
592
+ const Component = as || "div";
593
+ return /* @__PURE__ */ jsx9(
594
+ Component,
595
+ {
596
+ ...rest,
597
+ className: cn("polli:min-w-0", variantClasses[variant], className),
598
+ children
599
+ }
600
+ );
601
+ }
602
+
603
+ // src/modules/auth/AuthModal.tsx
604
+ import { Fragment as Fragment2, jsx as jsx10, jsxs as jsxs6 } from "react/jsx-runtime";
605
+ function AuthModal({ children, size, dialog, onClose }) {
606
+ return /* @__PURE__ */ jsx10(
132
607
  Dialog,
133
608
  {
134
609
  open: true,
135
- theme: "amber",
610
+ onOpenChange: (open) => !open && onClose?.(),
136
611
  showBackdrop: false,
137
612
  ariaLabel: dialog?.label,
138
613
  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`,
614
+ positionerClassName: "polli:bg-app-bg",
615
+ contentClassName: "polli:overflow-hidden",
616
+ size,
617
+ children
618
+ }
619
+ );
620
+ }
621
+ var legalFootnote = /* @__PURE__ */ jsxs6(Fragment2, { children: [
622
+ "By continuing, you agree to the",
623
+ " ",
624
+ /* @__PURE__ */ jsx10(
625
+ InlineLink,
626
+ {
627
+ href: "https://pollinations.ai/terms",
628
+ tone: "quiet",
629
+ showIcon: false,
630
+ children: "Terms"
631
+ }
632
+ ),
633
+ " ",
634
+ "and acknowledge the",
635
+ " ",
636
+ /* @__PURE__ */ jsx10(
637
+ InlineLink,
638
+ {
639
+ href: "https://pollinations.ai/privacy",
640
+ tone: "quiet",
641
+ showIcon: false,
642
+ children: "Privacy Policy"
643
+ }
644
+ ),
645
+ "."
646
+ ] });
647
+ function AuthFlowLayout({
648
+ children,
649
+ title,
650
+ subject,
651
+ description,
652
+ error,
653
+ titleId,
654
+ headerAction,
655
+ actions,
656
+ footnote = legalFootnote,
657
+ dialog,
658
+ // Most auth steps are a title, a line and one action; busy steps opt into more width.
659
+ size = "sm",
660
+ onClose
661
+ }) {
662
+ const generatedId = useId();
663
+ const headingId = titleId ?? generatedId;
664
+ return /* @__PURE__ */ jsx10(
665
+ AuthModal,
666
+ {
667
+ dialog: dialog ?? (title ? { labelledBy: headingId } : void 0),
668
+ size,
669
+ onClose,
670
+ children: /* @__PURE__ */ jsxs6(
671
+ DialogBody,
672
+ {
673
+ actions,
674
+ footnote: /* @__PURE__ */ jsx10(AuthModalFootnote, { children: footnote }),
675
+ bodyClassName: "polli:space-y-0 polli:p-0",
676
+ children: [
677
+ /* @__PURE__ */ jsx10(AuthModalHeader, { children: headerAction }),
678
+ /* @__PURE__ */ jsxs6("div", { className: "polli:space-y-3 polli:px-(--polli-dialog-gutter) polli:py-4", children: [
679
+ title && /* @__PURE__ */ jsxs6("div", { className: "polli:space-y-3", children: [
680
+ /* @__PURE__ */ jsx10(Heading, { as: "h1", size: "section", id: headingId, children: title }),
681
+ subject,
682
+ description && // The step instruction: body tone, so it reads as
683
+ // the sentence's second half rather than a caption.
684
+ /* @__PURE__ */ jsx10(
685
+ Text,
686
+ {
687
+ size: "body",
688
+ tone: "base",
689
+ className: "polli:text-pretty",
690
+ children: description
691
+ }
692
+ ),
693
+ error && /* @__PURE__ */ jsx10(ErrorBanner, { children: error })
694
+ ] }),
695
+ children
696
+ ] })
697
+ ]
698
+ }
699
+ )
700
+ }
701
+ );
702
+ }
703
+ function AuthModalFootnote({ children }) {
704
+ return /* @__PURE__ */ jsx10(
705
+ Text,
706
+ {
707
+ size: "xs",
708
+ tone: "muted",
709
+ className: "polli:shrink-0 polli:px-(--polli-dialog-gutter) polli:pb-5 polli:text-center polli:text-[13px] polli:text-balance",
141
710
  children
142
711
  }
143
712
  );
144
713
  }
145
714
  function AuthModalHeader({ children }) {
146
- const logo = /* @__PURE__ */ jsxs2(
715
+ const logo = /* @__PURE__ */ jsxs6(
147
716
  "a",
148
717
  {
149
718
  href: "https://pollinations.ai",
150
719
  target: "_blank",
151
720
  rel: "noopener noreferrer",
152
- tabIndex: -1,
153
- className: "polli:block polli:shrink-0 polli:text-theme-text-strong polli:focus:outline-none",
721
+ 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
722
  "aria-label": "pollinations.ai",
155
723
  children: [
156
- /* @__PURE__ */ jsx2("span", { className: "polli:sr-only", children: "pollinations.ai" }),
157
- /* @__PURE__ */ jsx2(
158
- "span",
724
+ /* @__PURE__ */ jsx10("span", { className: "polli:sr-only", children: "pollinations.ai" }),
725
+ /* @__PURE__ */ jsx10(BrandMark, { className: "polli:h-8 polli:w-8" })
726
+ ]
727
+ }
728
+ );
729
+ 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: [
730
+ logo,
731
+ children
732
+ ] }) });
733
+ }
734
+ function AuthModalLoading({
735
+ title,
736
+ subject,
737
+ message = "Loading\u2026"
738
+ }) {
739
+ 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 }) }) });
740
+ }
741
+ function ErrorBanner({ children }) {
742
+ return /* @__PURE__ */ jsx10(Alert, { intent: "danger", children });
743
+ }
744
+ function AuthInfoCard({ title, children }) {
745
+ return /* @__PURE__ */ jsxs6(Surface, { className: "polli:space-y-3 polli:font-body", children: [
746
+ 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 }),
747
+ children
748
+ ] });
749
+ }
750
+ function AuthAccessItem({
751
+ children,
752
+ control,
753
+ details,
754
+ info,
755
+ icon,
756
+ checked = false,
757
+ onChange,
758
+ ariaLabel,
759
+ disabled = false
760
+ }) {
761
+ const Row = icon != null ? "div" : "label";
762
+ return /* @__PURE__ */ jsxs6(
763
+ "li",
764
+ {
765
+ className: cn(
766
+ info != null && "polli:flex polli:flex-wrap polli:items-center"
767
+ ),
768
+ children: [
769
+ /* @__PURE__ */ jsxs6(
770
+ Row,
159
771
  {
160
- "aria-hidden": "true",
161
- className: "polli:block polli:h-8 polli:w-8 polli:bg-current",
162
- style: authLogoMask
772
+ className: cn(
773
+ "polli:flex polli:min-h-8 polli:items-center polli:gap-3 polli:font-body polli:text-sm polli:font-semibold polli:leading-5",
774
+ info != null && "polli:min-w-0",
775
+ onChange && (disabled ? "polli:cursor-not-allowed" : "polli:cursor-pointer")
776
+ ),
777
+ children: [
778
+ icon != null ? /* @__PURE__ */ jsx10(
779
+ "span",
780
+ {
781
+ "aria-hidden": "true",
782
+ 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",
783
+ children: icon
784
+ }
785
+ ) : /* @__PURE__ */ jsxs6("span", { className: "polli:relative polli:flex polli:h-5 polli:w-5 polli:shrink-0", children: [
786
+ /* @__PURE__ */ jsx10(
787
+ "input",
788
+ {
789
+ type: "checkbox",
790
+ "aria-label": ariaLabel,
791
+ checked,
792
+ disabled: disabled || !onChange,
793
+ onChange: (event) => onChange?.(event.target.checked),
794
+ className: "polli:peer polli:sr-only"
795
+ }
796
+ ),
797
+ /* @__PURE__ */ jsx10(
798
+ "span",
799
+ {
800
+ "aria-hidden": "true",
801
+ 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",
802
+ children: checked && /* @__PURE__ */ jsx10(CheckIcon, { className: "polli:h-3.5 polli:w-3.5" })
803
+ }
804
+ )
805
+ ] }),
806
+ /* @__PURE__ */ jsx10(
807
+ "span",
808
+ {
809
+ className: cn(
810
+ "polli:min-w-0 polli:flex-1 polli:transition-opacity",
811
+ !!onChange && !checked && "polli:opacity-60"
812
+ ),
813
+ children
814
+ }
815
+ ),
816
+ control != null && /* @__PURE__ */ jsx10("span", { className: "polli:shrink-0", children: control })
817
+ ]
818
+ }
819
+ ),
820
+ info,
821
+ details && /* @__PURE__ */ jsx10(
822
+ "div",
823
+ {
824
+ className: cn(
825
+ "polli:pl-8 polli:font-body polli:text-xs polli:font-normal polli:leading-normal polli:text-theme-text-muted",
826
+ info != null && "polli:basis-full"
827
+ ),
828
+ children: details
163
829
  }
164
830
  )
165
831
  ]
166
832
  }
167
833
  );
168
- if (!children) {
169
- return /* @__PURE__ */ jsx2("div", { className: "polli:flex polli:justify-start polli:px-6 polli:pt-6", children: logo });
834
+ }
835
+
836
+ // src/modules/auth/DashboardAccountMenu.tsx
837
+ import { useState as useState2 } from "react";
838
+
839
+ // src/compositions/AccountIdentity.tsx
840
+ import { useId as useId3 } from "react";
841
+
842
+ // src/primitives/ChevronIcon.tsx
843
+ import { jsx as jsx11 } from "react/jsx-runtime";
844
+ var ChevronIcon = ({ expanded, className }) => /* @__PURE__ */ jsx11(
845
+ "svg",
846
+ {
847
+ "aria-hidden": "true",
848
+ width: "12",
849
+ height: "12",
850
+ viewBox: "0 0 12 12",
851
+ className: cn(
852
+ "polli:shrink-0 polli:transition-transform polli:duration-200 polli:ease-out",
853
+ expanded && "polli:rotate-180",
854
+ className
855
+ ),
856
+ children: /* @__PURE__ */ jsx11(
857
+ "path",
858
+ {
859
+ d: "M3 4.5 6 7.5l3-3",
860
+ fill: "none",
861
+ stroke: "currentColor",
862
+ strokeLinecap: "round",
863
+ strokeLinejoin: "round",
864
+ strokeWidth: "1.5"
865
+ }
866
+ )
170
867
  }
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
- ] }) });
868
+ );
869
+
870
+ // src/primitives/Dropdown.tsx
871
+ import { Popover } from "@ark-ui/react/popover";
872
+ import { Portal as Portal2 } from "@ark-ui/react/portal";
873
+ import { useId as useId2, useState } from "react";
874
+ import { jsx as jsx12, jsxs as jsxs7 } from "react/jsx-runtime";
875
+ var DEFAULT_PANEL = "polli:rounded-lg polli:bg-surface-menu polli:shadow-lg";
876
+ var Dropdown = ({
877
+ trigger,
878
+ children,
879
+ align = "start",
880
+ side = "bottom",
881
+ open: openProp,
882
+ portalled = true,
883
+ onOpenChange,
884
+ className,
885
+ panelStyle
886
+ }) => {
887
+ const triggerId = useId2();
888
+ const [internalOpen, setInternalOpen] = useState(false);
889
+ const isControlled = openProp !== void 0;
890
+ const open = isControlled ? openProp : internalOpen;
891
+ const setOpen = (next) => {
892
+ if (!isControlled) setInternalOpen(next);
893
+ onOpenChange?.(next);
894
+ };
895
+ return /* @__PURE__ */ jsxs7(
896
+ Popover.Root,
897
+ {
898
+ ids: { trigger: triggerId },
899
+ open,
900
+ portalled,
901
+ onOpenChange: (details) => setOpen(details.open),
902
+ positioning: {
903
+ placement: `${side}-${align}`,
904
+ strategy: portalled ? "absolute" : "fixed"
905
+ },
906
+ children: [
907
+ /* @__PURE__ */ jsx12(Popover.Trigger, { asChild: true, children: trigger(open) }),
908
+ /* @__PURE__ */ jsx12(Portal2, { disabled: !portalled, children: /* @__PURE__ */ jsx12(Popover.Positioner, { children: /* @__PURE__ */ jsx12(
909
+ Popover.Content,
910
+ {
911
+ "aria-labelledby": triggerId,
912
+ style: panelStyle,
913
+ className: cn(
914
+ "polli:z-[120] polli:overflow-hidden polli:focus:outline-none",
915
+ DEFAULT_PANEL,
916
+ className
917
+ ),
918
+ children: typeof children === "function" ? children(() => setOpen(false)) : children
919
+ }
920
+ ) }) })
921
+ ]
922
+ }
923
+ );
924
+ };
925
+
926
+ // src/compositions/AccountIdentity.tsx
927
+ import { jsx as jsx13, jsxs as jsxs8 } from "react/jsx-runtime";
928
+ function initials(name) {
929
+ const parts = name.trim().split(/\s+/).filter(Boolean);
930
+ if (parts.length === 0) return "?";
931
+ if (parts.length === 1) return parts[0].slice(0, 2).toUpperCase();
932
+ return `${parts[0][0] ?? ""}${parts.at(-1)?.[0] ?? ""}`.toUpperCase();
933
+ }
934
+ function AccountAvatar({
935
+ name,
936
+ avatarUrl,
937
+ secondaryContent,
938
+ dashboardHref,
939
+ inline = false
940
+ }) {
941
+ const size = inline ? "polli:h-6 polli:w-6" : secondaryContent != null ? "polli:h-11 polli:w-11" : "polli:h-8 polli:w-8";
942
+ const className = cn(
943
+ size,
944
+ 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"
945
+ );
946
+ const avatar = avatarUrl ? /* @__PURE__ */ jsx13(
947
+ "img",
948
+ {
949
+ src: avatarUrl,
950
+ alt: "",
951
+ className: cn(
952
+ className,
953
+ "polli:shrink-0 polli:rounded-full polli:object-cover"
954
+ )
955
+ }
956
+ ) : /* @__PURE__ */ jsx13(
957
+ "span",
958
+ {
959
+ role: "img",
960
+ "aria-label": `${name} avatar`,
961
+ className: cn(
962
+ className,
963
+ "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"
964
+ ),
965
+ children: initials(name)
966
+ }
967
+ );
968
+ return dashboardHref ? /* @__PURE__ */ jsx13(
969
+ "a",
970
+ {
971
+ href: dashboardHref,
972
+ target: "_blank",
973
+ rel: "noopener noreferrer",
974
+ "aria-label": "Open dashboard",
975
+ title: "Open dashboard",
976
+ 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",
977
+ children: avatar
978
+ }
979
+ ) : avatar;
175
980
  }
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..." }) })
981
+ function AccountDetails({
982
+ name,
983
+ secondaryContent,
984
+ secondaryId
985
+ }) {
986
+ return /* @__PURE__ */ jsxs8("span", { className: "polli:flex polli:min-w-0 polli:flex-col polli:items-start polli:text-left", children: [
987
+ /* @__PURE__ */ jsx13(
988
+ "span",
989
+ {
990
+ title: name,
991
+ className: "polli:max-w-full polli:truncate polli:text-sm polli:font-medium polli:leading-5 polli:text-theme-text-strong",
992
+ children: name
993
+ }
994
+ ),
995
+ secondaryContent != null && /* @__PURE__ */ jsx13(
996
+ "span",
997
+ {
998
+ id: secondaryId,
999
+ 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",
1000
+ children: secondaryContent
1001
+ }
1002
+ )
180
1003
  ] });
181
1004
  }
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 }) });
1005
+ function AccountMenu({
1006
+ name,
1007
+ avatarUrl,
1008
+ dashboardHref,
1009
+ secondaryContent,
1010
+ children,
1011
+ className,
1012
+ menuClassName,
1013
+ side = "bottom",
1014
+ menuLabel = `Account menu for ${name}`
1015
+ }) {
1016
+ const statusId = useId3();
1017
+ const avatar = /* @__PURE__ */ jsx13(
1018
+ AccountAvatar,
1019
+ {
1020
+ name,
1021
+ avatarUrl,
1022
+ dashboardHref,
1023
+ secondaryContent
1024
+ }
1025
+ );
1026
+ return /* @__PURE__ */ jsxs8(
1027
+ "div",
1028
+ {
1029
+ "data-theme": "accent",
1030
+ className: cn(
1031
+ "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",
1032
+ className
1033
+ ),
1034
+ children: [
1035
+ dashboardHref && avatar,
1036
+ /* @__PURE__ */ jsx13(
1037
+ Dropdown,
1038
+ {
1039
+ align: "end",
1040
+ side,
1041
+ className: cn(
1042
+ "polli:w-max polli:min-w-[var(--reference-width)] polli:p-1",
1043
+ menuClassName
1044
+ ),
1045
+ trigger: (open) => /* @__PURE__ */ jsxs8(
1046
+ "button",
1047
+ {
1048
+ type: "button",
1049
+ "aria-label": menuLabel,
1050
+ "aria-describedby": secondaryContent != null ? statusId : void 0,
1051
+ 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",
1052
+ children: [
1053
+ !dashboardHref && avatar,
1054
+ /* @__PURE__ */ jsx13(
1055
+ AccountDetails,
1056
+ {
1057
+ name,
1058
+ secondaryContent,
1059
+ secondaryId: statusId
1060
+ }
1061
+ ),
1062
+ /* @__PURE__ */ jsx13(
1063
+ ChevronIcon,
1064
+ {
1065
+ expanded: open,
1066
+ className: "polli:ml-auto polli:h-4 polli:w-4 polli:text-theme-text-strong"
1067
+ }
1068
+ )
1069
+ ]
1070
+ }
1071
+ ),
1072
+ children
1073
+ }
1074
+ )
1075
+ ]
1076
+ }
1077
+ );
184
1078
  }
185
- function AuthInfoCard({
186
- title = "Authorize",
187
- children
1079
+
1080
+ // src/primitives/DropdownItem.tsx
1081
+ import { jsx as jsx14 } from "react/jsx-runtime";
1082
+ function DropdownItem({
1083
+ as,
1084
+ className,
1085
+ children,
1086
+ ...rest
188
1087
  }) {
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
1088
+ const Component = as || "button";
1089
+ return /* @__PURE__ */ jsx14(
1090
+ Component,
1091
+ {
1092
+ ...Component === "button" ? { type: "button" } : void 0,
1093
+ ...rest,
1094
+ className: cn(
1095
+ "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",
1096
+ className
1097
+ ),
1098
+ children
1099
+ }
1100
+ );
1101
+ }
1102
+
1103
+ // src/modules/auth/DashboardAccountMenu.tsx
1104
+ import { Fragment as Fragment3, jsx as jsx15, jsxs as jsxs9 } from "react/jsx-runtime";
1105
+ function DashboardAccountMenu({
1106
+ user,
1107
+ onSignOut,
1108
+ className,
1109
+ side
1110
+ }) {
1111
+ const [error, setError] = useState2(null);
1112
+ return /* @__PURE__ */ jsxs9(Fragment3, { children: [
1113
+ error && /* @__PURE__ */ jsx15(Alert, { children: error }),
1114
+ /* @__PURE__ */ jsx15(
1115
+ AccountMenu,
1116
+ {
1117
+ name: user.name || user.preferred_username || user.email,
1118
+ avatarUrl: user.picture,
1119
+ className,
1120
+ side,
1121
+ children: /* @__PURE__ */ jsxs9(
1122
+ DropdownItem,
1123
+ {
1124
+ onClick: () => {
1125
+ setError(null);
1126
+ Promise.resolve().then(onSignOut).catch(
1127
+ () => setError(
1128
+ "Could not sign out. Please try again."
1129
+ )
1130
+ );
1131
+ },
1132
+ children: [
1133
+ /* @__PURE__ */ jsx15(
1134
+ SignOutIcon,
1135
+ {
1136
+ "aria-hidden": "true",
1137
+ className: "polli:h-4 polli:w-4 polli:shrink-0"
1138
+ }
1139
+ ),
1140
+ "Sign out"
1141
+ ]
1142
+ }
1143
+ )
1144
+ }
1145
+ )
192
1146
  ] });
193
1147
  }
1148
+
1149
+ // src/primitives/Button.tsx
1150
+ import { jsx as jsx16, jsxs as jsxs10 } from "react/jsx-runtime";
1151
+ var pillSizes = {
1152
+ icon: "polli:h-12 polli:w-12 polli:p-0",
1153
+ xs: "polli:h-5 polli:px-1.5 polli:py-0 polli:text-[11px] polli:leading-none",
1154
+ sm: "polli:min-h-7 polli:px-2 polli:pt-0.5 polli:pb-1",
1155
+ md: "polli:min-h-9 polli:px-4 polli:pt-1.5 polli:pb-2",
1156
+ lg: "polli:min-h-12 polli:px-6 polli:py-3 polli:text-base"
1157
+ };
1158
+ var raisedSizes = {
1159
+ icon: "polli:h-12 polli:w-12 polli:p-0",
1160
+ xs: "polli:px-2 polli:py-1 polli:text-xs",
1161
+ sm: "polli:px-4 polli:py-2 polli:text-sm",
1162
+ md: "polli:px-7 polli:py-3.5 polli:text-base",
1163
+ lg: "polli:px-8 polli:py-4 polli:text-lg"
1164
+ };
1165
+ var appearanceClasses = {
1166
+ pill: "polli:rounded-full",
1167
+ 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"
1168
+ };
1169
+ 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";
1170
+ 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";
1171
+ var intentClasses2 = {
1172
+ brand: `${outlined} polli:hover:bg-theme-bg-active/50 polli:[.dark_&]:hover:bg-theme-text-soft/10`,
1173
+ 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`,
1174
+ 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",
1175
+ info: "polli:bg-intent-info-bg-light polli:text-intent-info-text polli:hover:bg-intent-info-bg-hover polli:transition-colors",
1176
+ // A quiet white pill on the desk, like the colour toggle; hover previews
1177
+ // the accent as the ambient button does.
1178
+ surface: "polli:bg-surface-opaque polli:text-theme-text-strong polli:hover:bg-theme-bg-hover polli:hover:text-theme-text-hover polli:transition-colors",
1179
+ // Secondary actions never take the accent: one step stronger grey on hover.
1180
+ 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"
1181
+ };
1182
+ var buttonClasses = ({
1183
+ intent,
1184
+ appearance = "pill",
1185
+ size,
1186
+ className,
1187
+ disabled,
1188
+ busy
1189
+ }) => {
1190
+ const colorClasses = intent ? intentClasses2[intent] : themeClasses;
1191
+ const sizeClasses2 = appearance === "raised" ? raisedSizes : pillSizes;
1192
+ return cn(
1193
+ "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",
1194
+ // A busy button is working, not unavailable: it keeps its strength.
1195
+ busy ? "polli:cursor-progress" : disabled ? "polli:opacity-50 polli:cursor-not-allowed" : "polli:hover:filter polli:hover:brightness-105 polli:cursor-pointer",
1196
+ colorClasses,
1197
+ appearanceClasses[appearance],
1198
+ sizeClasses2[size || "md"],
1199
+ className
1200
+ );
1201
+ };
1202
+ function Button({
1203
+ as,
1204
+ children,
1205
+ icon,
1206
+ intent,
1207
+ appearance,
1208
+ size,
1209
+ className,
1210
+ disabled,
1211
+ ...buttonProps
1212
+ }) {
1213
+ const Component = as || "button";
1214
+ const isButton = Component === "button";
1215
+ const isAnchor = Component === "a";
1216
+ const buttonType = buttonProps.type;
1217
+ const onClick = buttonProps.onClick;
1218
+ const ariaBusy = buttonProps["aria-busy"];
1219
+ const busy = ariaBusy === true || ariaBusy === "true";
1220
+ const handleClick = disabled ? (event) => {
1221
+ event.preventDefault();
1222
+ event.stopPropagation();
1223
+ } : onClick;
1224
+ return /* @__PURE__ */ jsxs10(
1225
+ Component,
1226
+ {
1227
+ ...buttonProps,
1228
+ "data-intent": intent,
1229
+ ...isButton ? { type: buttonType ?? "button", disabled } : {},
1230
+ ...!isButton && disabled ? { "aria-disabled": true, tabIndex: -1 } : {},
1231
+ ...isAnchor && disabled ? { href: void 0 } : {},
1232
+ onClick: handleClick,
1233
+ className: buttonClasses({
1234
+ intent,
1235
+ appearance,
1236
+ size,
1237
+ className,
1238
+ disabled,
1239
+ busy
1240
+ }),
1241
+ children: [
1242
+ icon && /* @__PURE__ */ jsx16(
1243
+ "span",
1244
+ {
1245
+ "aria-hidden": "true",
1246
+ className: "polli:mr-2 polli:flex polli:size-4 polli:shrink-0 polli:[&>svg]:size-full",
1247
+ 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
1248
+ }
1249
+ ),
1250
+ children
1251
+ ]
1252
+ }
1253
+ );
1254
+ }
1255
+
1256
+ // src/primitives/ColorModeToggle.tsx
1257
+ import { useSyncExternalStore } from "react";
1258
+ import { jsx as jsx17 } from "react/jsx-runtime";
1259
+ var STORAGE_KEY = "polli-color-mode";
1260
+ function readStored() {
1261
+ try {
1262
+ const value = localStorage.getItem(STORAGE_KEY);
1263
+ return value === "light" || value === "dark" ? value : null;
1264
+ } catch {
1265
+ return null;
1266
+ }
1267
+ }
1268
+ function systemMode() {
1269
+ return typeof window !== "undefined" && window.matchMedia?.("(prefers-color-scheme: dark)").matches === true ? "dark" : "light";
1270
+ }
1271
+ var current = readStored() ?? systemMode();
1272
+ var listeners = /* @__PURE__ */ new Set();
1273
+ function apply() {
1274
+ if (typeof document === "undefined") return;
1275
+ document.documentElement.classList.toggle("dark", current === "dark");
1276
+ syncThemeColor();
1277
+ }
1278
+ function syncThemeColor() {
1279
+ if (typeof document === "undefined") return;
1280
+ const appBg = getComputedStyle(document.documentElement).getPropertyValue("--polli-color-app-bg").trim();
1281
+ if (!appBg) return;
1282
+ let meta = document.querySelector('meta[name="theme-color"]');
1283
+ if (!meta) {
1284
+ meta = document.createElement("meta");
1285
+ meta.setAttribute("name", "theme-color");
1286
+ document.head.appendChild(meta);
1287
+ }
1288
+ meta.setAttribute("content", appBg);
1289
+ }
1290
+ function emit() {
1291
+ for (const listener of listeners) listener();
1292
+ }
1293
+ function handleStorage(event) {
1294
+ if (event.key !== STORAGE_KEY) return;
1295
+ const next = readStored() ?? systemMode();
1296
+ if (next === current) return;
1297
+ current = next;
1298
+ apply();
1299
+ emit();
1300
+ }
1301
+ function subscribe(listener) {
1302
+ if (listeners.size === 0 && typeof window !== "undefined") {
1303
+ apply();
1304
+ window.addEventListener("storage", handleStorage);
1305
+ }
1306
+ listeners.add(listener);
1307
+ return () => {
1308
+ listeners.delete(listener);
1309
+ if (listeners.size === 0 && typeof window !== "undefined") {
1310
+ window.removeEventListener("storage", handleStorage);
1311
+ }
1312
+ };
1313
+ }
1314
+ function getSnapshot() {
1315
+ return current;
1316
+ }
1317
+ function getServerSnapshot() {
1318
+ return "light";
1319
+ }
1320
+ function setColorMode(mode) {
1321
+ if (mode === current) return;
1322
+ current = mode;
1323
+ apply();
1324
+ try {
1325
+ if (mode === systemMode()) localStorage.removeItem(STORAGE_KEY);
1326
+ else localStorage.setItem(STORAGE_KEY, mode);
1327
+ } catch {
1328
+ }
1329
+ emit();
1330
+ }
1331
+ function useColorMode() {
1332
+ const mode = useSyncExternalStore(
1333
+ subscribe,
1334
+ getSnapshot,
1335
+ getServerSnapshot
1336
+ );
1337
+ return {
1338
+ mode,
1339
+ isDark: mode === "dark",
1340
+ toggle: () => setColorMode(mode === "dark" ? "light" : "dark")
1341
+ };
1342
+ }
1343
+
1344
+ // src/modules/auth/ProviderSignInButton.tsx
1345
+ import { jsx as jsx18, jsxs as jsxs11 } from "react/jsx-runtime";
1346
+ function ProviderSignInButton({
1347
+ icon,
1348
+ className,
1349
+ children,
1350
+ type = "button",
1351
+ ...props
1352
+ }) {
1353
+ return /* @__PURE__ */ jsxs11(
1354
+ Button,
1355
+ {
1356
+ ...props,
1357
+ type,
1358
+ intent: "brand",
1359
+ "data-theme": "accent",
1360
+ className: cn("polli:gap-2 polli:whitespace-nowrap", className),
1361
+ children: [
1362
+ props["aria-busy"] === true ? /* @__PURE__ */ jsx18(
1363
+ "span",
1364
+ {
1365
+ "aria-hidden": "true",
1366
+ 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"
1367
+ }
1368
+ ) : icon,
1369
+ /* @__PURE__ */ jsx18("span", { children })
1370
+ ]
1371
+ }
1372
+ );
1373
+ }
1374
+
1375
+ // src/modules/auth/PollinationsSignInButton.tsx
1376
+ import { jsx as jsx19 } from "react/jsx-runtime";
1377
+ function PollinationsSignInButton({
1378
+ className,
1379
+ children,
1380
+ type = "button",
1381
+ isPending = false,
1382
+ disabled,
1383
+ ...props
1384
+ }) {
1385
+ return /* @__PURE__ */ jsx19(
1386
+ ProviderSignInButton,
1387
+ {
1388
+ type,
1389
+ ...props,
1390
+ disabled: disabled || isPending,
1391
+ "aria-busy": isPending,
1392
+ className,
1393
+ icon: /* @__PURE__ */ jsx19(BrandMark, { className: "polli:h-5 polli:w-5" }),
1394
+ children: children ?? "Connect with Pollinations"
1395
+ }
1396
+ );
1397
+ }
1398
+
1399
+ // src/modules/auth/DashboardSignIn.tsx
1400
+ import { jsx as jsx20 } from "react/jsx-runtime";
1401
+ var signInErrors = {
1402
+ admin_required: {
1403
+ title: "Admin access required",
1404
+ message: "Your Pollinations account does not have admin access. Switch accounts on Pollinations, then try again."
1405
+ },
1406
+ cancelled: {
1407
+ title: "Sign-in cancelled",
1408
+ message: "Sign-in was cancelled. You can try again."
1409
+ },
1410
+ invalid_state: {
1411
+ title: "Sign-in link expired",
1412
+ message: "Your Pollinations sign-in link expired. Please try again."
1413
+ },
1414
+ unavailable: {
1415
+ title: "Couldn\u2019t sign in",
1416
+ message: "Couldn\u2019t complete your Pollinations sign-in. Please try again."
1417
+ }
1418
+ };
1419
+ function DashboardSignIn({
1420
+ appName,
1421
+ onSignIn,
1422
+ isPending = false,
1423
+ sessionError
1424
+ }) {
1425
+ useColorMode();
1426
+ const code = typeof window === "undefined" ? null : new URLSearchParams(window.location.search).get("auth_error");
1427
+ const error = sessionError ? { title: "Couldn\u2019t check your session", message: sessionError } : code && Object.hasOwn(signInErrors, code) ? signInErrors[code] : null;
1428
+ const shownError = isPending ? null : error;
1429
+ return /* @__PURE__ */ jsx20(
1430
+ AuthFlowLayout,
1431
+ {
1432
+ title: shownError ? shownError.title : `Sign in to ${appName}`,
1433
+ description: shownError ? void 0 : "Use your Pollinations admin account.",
1434
+ error: shownError?.message,
1435
+ actions: isPending ? /* @__PURE__ */ jsx20(PollinationsSignInButton, { isPending: true, children: "Checking sign-in\u2026" }) : sessionError ? /* @__PURE__ */ jsx20(
1436
+ Button,
1437
+ {
1438
+ icon: /* @__PURE__ */ jsx20(RefreshIcon, {}),
1439
+ onClick: () => window.location.reload(),
1440
+ children: "Reload"
1441
+ }
1442
+ ) : /* @__PURE__ */ jsx20(PollinationsSignInButton, { onClick: onSignIn, children: error ? "Try again" : "Sign in with Pollinations" })
1443
+ }
1444
+ );
1445
+ }
1446
+
1447
+ // src/modules/auth/GitHubSignInButton.tsx
1448
+ import { jsx as jsx21 } from "react/jsx-runtime";
1449
+ function GitHubSignInButton({
1450
+ isSigningIn = false,
1451
+ disabled,
1452
+ ...props
1453
+ }) {
1454
+ return /* @__PURE__ */ jsx21(
1455
+ ProviderSignInButton,
1456
+ {
1457
+ ...props,
1458
+ disabled: disabled || isSigningIn,
1459
+ "aria-busy": isSigningIn,
1460
+ icon: /* @__PURE__ */ jsx21(
1461
+ GitHubIcon,
1462
+ {
1463
+ "aria-hidden": "true",
1464
+ className: "polli:h-5 polli:w-5 polli:shrink-0"
1465
+ }
1466
+ ),
1467
+ children: isSigningIn ? "Signing in\u2026" : "Sign in with GitHub"
1468
+ }
1469
+ );
1470
+ }
194
1471
  export {
1472
+ AuthAccessItem,
1473
+ AuthFlowLayout,
195
1474
  AuthInfoCard,
196
1475
  AuthModal,
1476
+ AuthModalFootnote,
197
1477
  AuthModalHeader,
198
1478
  AuthModalLoading,
199
- ErrorBanner
1479
+ DashboardAccountMenu,
1480
+ DashboardSignIn,
1481
+ ErrorBanner,
1482
+ GitHubSignInButton,
1483
+ PollinationsSignInButton
200
1484
  };
201
1485
  //# sourceMappingURL=index.js.map