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

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
Files changed (88) hide show
  1. package/README.md +148 -36
  2. package/dist/Button-ByKwRtdw.d.cts +29 -0
  3. package/dist/Button-ByKwRtdw.d.ts +29 -0
  4. package/dist/Chip-v-ADv6cz.d.cts +18 -0
  5. package/dist/Chip-v-ADv6cz.d.ts +18 -0
  6. package/dist/Dialog-D3Nqt8cE.d.cts +66 -0
  7. package/dist/Dialog-D3Nqt8cE.d.ts +66 -0
  8. package/dist/app-user-menu/sdk.cjs +698 -242
  9. package/dist/app-user-menu/sdk.cjs.map +1 -1
  10. package/dist/app-user-menu/sdk.d.cts +22 -7
  11. package/dist/app-user-menu/sdk.d.ts +22 -7
  12. package/dist/app-user-menu/sdk.js +703 -240
  13. package/dist/app-user-menu/sdk.js.map +1 -1
  14. package/dist/app.css +12 -122
  15. package/dist/auth/index.cjs +1365 -85
  16. package/dist/auth/index.cjs.map +1 -1
  17. package/dist/auth/index.d.cts +91 -6
  18. package/dist/auth/index.d.ts +91 -6
  19. package/dist/auth/index.js +1362 -84
  20. package/dist/auth/index.js.map +1 -1
  21. package/dist/auth/sdk.cjs +244 -0
  22. package/dist/auth/sdk.cjs.map +1 -0
  23. package/dist/auth/sdk.d.cts +40 -0
  24. package/dist/auth/sdk.d.ts +40 -0
  25. package/dist/auth/sdk.js +213 -0
  26. package/dist/auth/sdk.js.map +1 -0
  27. package/dist/brand/lockup-horizontal-black.png +0 -0
  28. package/dist/brand/lockup-horizontal-black.svg +4 -0
  29. package/dist/brand/lockup-horizontal-white.png +0 -0
  30. package/dist/brand/lockup-horizontal-white.svg +4 -0
  31. package/dist/brand/lockup-horizontal.svg +4 -0
  32. package/dist/brand/lockup-stacked-black.png +0 -0
  33. package/dist/brand/lockup-stacked-black.svg +4 -0
  34. package/dist/brand/lockup-stacked-white.png +0 -0
  35. package/dist/brand/lockup-stacked-white.svg +4 -0
  36. package/dist/brand/lockup-stacked.svg +4 -0
  37. package/dist/brand/mark-black.png +0 -0
  38. package/dist/brand/mark-black.svg +1 -0
  39. package/dist/brand/mark-white.png +0 -0
  40. package/dist/brand/mark-white.svg +1 -0
  41. package/dist/brand/mark.svg +1 -0
  42. package/dist/brand/polli/polli-lockup-horizontal-black.png +0 -0
  43. package/dist/brand/polli/polli-lockup-horizontal-white.png +0 -0
  44. package/dist/brand/polli/polli-lockup-stacked-black.png +0 -0
  45. package/dist/brand/polli/polli-lockup-stacked-white.png +0 -0
  46. package/dist/brand/polli/polli.png +0 -0
  47. package/dist/brand/wordmark-black.png +0 -0
  48. package/dist/brand/wordmark-black.svg +1 -0
  49. package/dist/brand/wordmark-white.png +0 -0
  50. package/dist/brand/wordmark-white.svg +1 -0
  51. package/dist/brand/wordmark.svg +1 -0
  52. package/dist/fonts/geist-pixel-square.woff2 +0 -0
  53. package/dist/gen/index.cjs +427 -217
  54. package/dist/gen/index.cjs.map +1 -1
  55. package/dist/gen/index.d.cts +68 -19
  56. package/dist/gen/index.d.ts +68 -19
  57. package/dist/gen/index.js +421 -215
  58. package/dist/gen/index.js.map +1 -1
  59. package/dist/index.browser.min.js +2 -0
  60. package/dist/index.browser.min.js.map +1 -0
  61. package/dist/index.cjs +3711 -1590
  62. package/dist/index.cjs.map +1 -1
  63. package/dist/index.d.cts +548 -178
  64. package/dist/index.d.ts +548 -178
  65. package/dist/index.js +3713 -1655
  66. package/dist/index.js.map +1 -1
  67. package/dist/licenses/Geist-OFL.txt +93 -0
  68. package/dist/markdown.cjs +826 -0
  69. package/dist/markdown.cjs.map +1 -0
  70. package/dist/markdown.d.cts +16 -0
  71. package/dist/markdown.d.ts +16 -0
  72. package/dist/markdown.js +797 -0
  73. package/dist/markdown.js.map +1 -0
  74. package/dist/styles.css +1 -1
  75. package/dist/theme.css +87 -0
  76. package/dist/wallet/index.cjs +291 -64
  77. package/dist/wallet/index.cjs.map +1 -1
  78. package/dist/wallet/index.d.cts +30 -7
  79. package/dist/wallet/index.d.ts +30 -7
  80. package/dist/wallet/index.js +290 -64
  81. package/dist/wallet/index.js.map +1 -1
  82. package/package.json +106 -89
  83. package/dist/Chip-CQCq34kS.d.cts +0 -20
  84. package/dist/Chip-Cj4xG7Te.d.ts +0 -20
  85. package/dist/assets/logo-wordmark.svg +0 -1
  86. package/dist/assets/logo.svg +0 -4
  87. package/dist/theme-jRPPBmld.d.cts +0 -20
  88. package/dist/theme-jRPPBmld.d.ts +0 -20
@@ -20,13 +20,16 @@ var __toCommonJS = (mod) => __copyProps(__defProp({}, "__esModule", { value: tru
20
20
  // src/modules/app-user-menu/sdk.ts
21
21
  var sdk_exports = {};
22
22
  __export(sdk_exports, {
23
- AppUserMenu: () => AppUserMenu,
24
- isEmbeddedContext: () => isEmbeddedContext
23
+ AppUserMenu: () => AppUserMenu
25
24
  });
26
25
  module.exports = __toCommonJS(sdk_exports);
27
26
 
28
27
  // src/modules/app-user-menu/AppUserMenu.tsx
29
- var import_react10 = require("@pollinations/sdk/react");
28
+ var import_react4 = require("@pollinations/sdk/react");
29
+ var import_react5 = require("react");
30
+
31
+ // src/compositions/AccountIdentity.tsx
32
+ var import_react2 = require("react");
30
33
 
31
34
  // src/lib/cn.ts
32
35
  var import_clsx = require("clsx");
@@ -69,16 +72,19 @@ var import_popover = require("@ark-ui/react/popover");
69
72
  var import_portal = require("@ark-ui/react/portal");
70
73
  var import_react = require("react");
71
74
  var import_jsx_runtime2 = require("react/jsx-runtime");
72
- var DEFAULT_PANEL = "polli:rounded-lg polli:border polli:border-theme-border polli:bg-theme-bg-pale polli:shadow-lg";
75
+ var DEFAULT_PANEL = "polli:rounded-lg polli:bg-surface-menu polli:shadow-lg";
73
76
  var Dropdown = ({
74
- theme,
75
77
  trigger,
76
78
  children,
77
79
  align = "start",
80
+ side = "bottom",
78
81
  open: openProp,
82
+ portalled = true,
79
83
  onOpenChange,
80
- className
84
+ className,
85
+ panelStyle
81
86
  }) => {
87
+ const triggerId = (0, import_react.useId)();
82
88
  const [internalOpen, setInternalOpen] = (0, import_react.useState)(false);
83
89
  const isControlled = openProp !== void 0;
84
90
  const open = isControlled ? openProp : internalOpen;
@@ -89,19 +95,23 @@ var Dropdown = ({
89
95
  return /* @__PURE__ */ (0, import_jsx_runtime2.jsxs)(
90
96
  import_popover.Popover.Root,
91
97
  {
98
+ ids: { trigger: triggerId },
92
99
  open,
100
+ portalled,
93
101
  onOpenChange: (details) => setOpen(details.open),
94
102
  positioning: {
95
- placement: align === "end" ? "bottom-end" : "bottom-start"
103
+ placement: `${side}-${align}`,
104
+ strategy: portalled ? "absolute" : "fixed"
96
105
  },
97
106
  children: [
98
107
  /* @__PURE__ */ (0, import_jsx_runtime2.jsx)(import_popover.Popover.Trigger, { asChild: true, children: trigger(open) }),
99
- /* @__PURE__ */ (0, import_jsx_runtime2.jsx)(import_portal.Portal, { children: /* @__PURE__ */ (0, import_jsx_runtime2.jsx)(import_popover.Popover.Positioner, { children: /* @__PURE__ */ (0, import_jsx_runtime2.jsx)(
108
+ /* @__PURE__ */ (0, import_jsx_runtime2.jsx)(import_portal.Portal, { disabled: !portalled, children: /* @__PURE__ */ (0, import_jsx_runtime2.jsx)(import_popover.Popover.Positioner, { children: /* @__PURE__ */ (0, import_jsx_runtime2.jsx)(
100
109
  import_popover.Popover.Content,
101
110
  {
102
- "data-theme": theme,
111
+ "aria-labelledby": triggerId,
112
+ style: panelStyle,
103
113
  className: cn(
104
- "polli:z-50 polli:overflow-hidden polli:focus:outline-none",
114
+ "polli:z-[120] polli:overflow-hidden polli:focus:outline-none",
105
115
  DEFAULT_PANEL,
106
116
  className
107
117
  ),
@@ -113,8 +123,236 @@ var Dropdown = ({
113
123
  );
114
124
  };
115
125
 
116
- // src/primitives/DropdownItem.tsx
126
+ // src/primitives/icons/index.tsx
117
127
  var import_jsx_runtime3 = require("react/jsx-runtime");
128
+ var strokeProps = {
129
+ fill: "none",
130
+ stroke: "currentColor",
131
+ strokeWidth: 2,
132
+ strokeLinecap: "round",
133
+ strokeLinejoin: "round"
134
+ };
135
+ function ExternalLinkIcon(props) {
136
+ return /* @__PURE__ */ (0, import_jsx_runtime3.jsx)("svg", { "aria-hidden": "true", viewBox: "0 0 24 24", ...strokeProps, ...props, children: /* @__PURE__ */ (0, import_jsx_runtime3.jsx)("path", { d: "M7 17 17 7M9 7h8v8" }) });
137
+ }
138
+ function WalletIcon(props) {
139
+ return /* @__PURE__ */ (0, import_jsx_runtime3.jsxs)("svg", { "aria-hidden": "true", viewBox: "0 0 24 24", ...strokeProps, ...props, children: [
140
+ /* @__PURE__ */ (0, import_jsx_runtime3.jsx)("path", { d: "M3 7a2 2 0 0 1 2-2h13a2 2 0 0 1 2 2v2H5a2 2 0 0 0-2 2V7Z" }),
141
+ /* @__PURE__ */ (0, import_jsx_runtime3.jsx)("path", { d: "M3 11a2 2 0 0 1 2-2h14a2 2 0 0 1 2 2v6a2 2 0 0 1-2 2H5a2 2 0 0 1-2-2v-6Z" }),
142
+ /* @__PURE__ */ (0, import_jsx_runtime3.jsx)("circle", { cx: "17", cy: "14", r: "1.25", fill: "currentColor" })
143
+ ] });
144
+ }
145
+ function PowerIcon(props) {
146
+ return /* @__PURE__ */ (0, import_jsx_runtime3.jsxs)("svg", { "aria-hidden": "true", viewBox: "0 0 24 24", ...strokeProps, ...props, children: [
147
+ /* @__PURE__ */ (0, import_jsx_runtime3.jsx)("path", { d: "M12 2v10" }),
148
+ /* @__PURE__ */ (0, import_jsx_runtime3.jsx)("path", { d: "M18.4 6.6a9 9 0 1 1-12.77.04" })
149
+ ] });
150
+ }
151
+ function CardIcon(props) {
152
+ return /* @__PURE__ */ (0, import_jsx_runtime3.jsxs)("svg", { "aria-hidden": "true", viewBox: "0 0 24 24", ...strokeProps, ...props, children: [
153
+ /* @__PURE__ */ (0, import_jsx_runtime3.jsx)("rect", { x: "2", y: "5", width: "20", height: "14", rx: "2" }),
154
+ /* @__PURE__ */ (0, import_jsx_runtime3.jsx)("path", { d: "M2 10h20" })
155
+ ] });
156
+ }
157
+ function SproutIcon(props) {
158
+ return /* @__PURE__ */ (0, import_jsx_runtime3.jsxs)("svg", { "aria-hidden": "true", viewBox: "0 0 24 24", ...strokeProps, ...props, children: [
159
+ /* @__PURE__ */ (0, import_jsx_runtime3.jsx)("path", { d: "M7 20h10" }),
160
+ /* @__PURE__ */ (0, import_jsx_runtime3.jsx)("path", { d: "M10 20c5.5-2.5.8-6.4 3-10" }),
161
+ /* @__PURE__ */ (0, import_jsx_runtime3.jsx)("path", { d: "M9.5 9.4c1.1.8 1.8 2.2 2.3 3.7-2 .4-3.5.4-4.8-.3-1.2-.6-2.3-1.9-3-4.2 2.8-.5 4.4 0 5.5.8z" }),
162
+ /* @__PURE__ */ (0, import_jsx_runtime3.jsx)("path", { d: "M14.1 6a7 7 0 0 0-1.1 4c1.9-.1 3.3-.6 4.3-1.4 1-1 1.6-2.3 1.7-4.6-2.7.1-4 1-4.9 2z" })
163
+ ] });
164
+ }
165
+ function KeyIcon(props) {
166
+ return /* @__PURE__ */ (0, import_jsx_runtime3.jsxs)("svg", { "aria-hidden": "true", viewBox: "0 0 24 24", ...strokeProps, ...props, children: [
167
+ /* @__PURE__ */ (0, import_jsx_runtime3.jsx)("circle", { cx: "7.5", cy: "15.5", r: "5.5" }),
168
+ /* @__PURE__ */ (0, import_jsx_runtime3.jsx)("path", { d: "m21 2-9.6 9.6" }),
169
+ /* @__PURE__ */ (0, import_jsx_runtime3.jsx)("path", { d: "m15.5 7.5 3 3L22 7l-3-3" })
170
+ ] });
171
+ }
172
+
173
+ // src/compositions/AccountIdentity.tsx
174
+ var import_jsx_runtime4 = require("react/jsx-runtime");
175
+ function initials(name) {
176
+ const parts = name.trim().split(/\s+/).filter(Boolean);
177
+ if (parts.length === 0) return "?";
178
+ if (parts.length === 1) return parts[0].slice(0, 2).toUpperCase();
179
+ return `${parts[0][0] ?? ""}${parts.at(-1)?.[0] ?? ""}`.toUpperCase();
180
+ }
181
+ function AccountAvatar({
182
+ name,
183
+ avatarUrl,
184
+ secondaryContent,
185
+ dashboardHref,
186
+ inline = false
187
+ }) {
188
+ const size = inline ? "polli:h-6 polli:w-6" : secondaryContent != null ? "polli:h-11 polli:w-11" : "polli:h-8 polli:w-8";
189
+ const className = cn(
190
+ size,
191
+ 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"
192
+ );
193
+ const avatar = avatarUrl ? /* @__PURE__ */ (0, import_jsx_runtime4.jsx)(
194
+ "img",
195
+ {
196
+ src: avatarUrl,
197
+ alt: "",
198
+ className: cn(
199
+ className,
200
+ "polli:shrink-0 polli:rounded-full polli:object-cover"
201
+ )
202
+ }
203
+ ) : /* @__PURE__ */ (0, import_jsx_runtime4.jsx)(
204
+ "span",
205
+ {
206
+ role: "img",
207
+ "aria-label": `${name} avatar`,
208
+ className: cn(
209
+ className,
210
+ "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"
211
+ ),
212
+ children: initials(name)
213
+ }
214
+ );
215
+ return dashboardHref ? /* @__PURE__ */ (0, import_jsx_runtime4.jsx)(
216
+ "a",
217
+ {
218
+ href: dashboardHref,
219
+ target: "_blank",
220
+ rel: "noopener noreferrer",
221
+ "aria-label": "Open dashboard",
222
+ title: "Open dashboard",
223
+ 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",
224
+ children: avatar
225
+ }
226
+ ) : avatar;
227
+ }
228
+ function AccountDetails({
229
+ name,
230
+ secondaryContent,
231
+ secondaryId
232
+ }) {
233
+ return /* @__PURE__ */ (0, import_jsx_runtime4.jsxs)("span", { className: "polli:flex polli:min-w-0 polli:flex-col polli:items-start polli:text-left", children: [
234
+ /* @__PURE__ */ (0, import_jsx_runtime4.jsx)(
235
+ "span",
236
+ {
237
+ title: name,
238
+ className: "polli:max-w-full polli:truncate polli:text-sm polli:font-medium polli:leading-5 polli:text-theme-text-strong",
239
+ children: name
240
+ }
241
+ ),
242
+ secondaryContent != null && /* @__PURE__ */ (0, import_jsx_runtime4.jsx)(
243
+ "span",
244
+ {
245
+ id: secondaryId,
246
+ 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",
247
+ children: secondaryContent
248
+ }
249
+ )
250
+ ] });
251
+ }
252
+ function AccountMenu({
253
+ name,
254
+ avatarUrl,
255
+ dashboardHref,
256
+ secondaryContent,
257
+ children,
258
+ className,
259
+ menuClassName,
260
+ side = "bottom",
261
+ menuLabel = `Account menu for ${name}`
262
+ }) {
263
+ const statusId = (0, import_react2.useId)();
264
+ const avatar = /* @__PURE__ */ (0, import_jsx_runtime4.jsx)(
265
+ AccountAvatar,
266
+ {
267
+ name,
268
+ avatarUrl,
269
+ dashboardHref,
270
+ secondaryContent
271
+ }
272
+ );
273
+ return /* @__PURE__ */ (0, import_jsx_runtime4.jsxs)(
274
+ "div",
275
+ {
276
+ "data-theme": "accent",
277
+ className: cn(
278
+ "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",
279
+ className
280
+ ),
281
+ children: [
282
+ dashboardHref && avatar,
283
+ /* @__PURE__ */ (0, import_jsx_runtime4.jsx)(
284
+ Dropdown,
285
+ {
286
+ align: "end",
287
+ side,
288
+ className: cn(
289
+ "polli:w-max polli:min-w-[var(--reference-width)] polli:p-1",
290
+ menuClassName
291
+ ),
292
+ trigger: (open) => /* @__PURE__ */ (0, import_jsx_runtime4.jsxs)(
293
+ "button",
294
+ {
295
+ type: "button",
296
+ "aria-label": menuLabel,
297
+ "aria-describedby": secondaryContent != null ? statusId : void 0,
298
+ 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",
299
+ children: [
300
+ !dashboardHref && avatar,
301
+ /* @__PURE__ */ (0, import_jsx_runtime4.jsx)(
302
+ AccountDetails,
303
+ {
304
+ name,
305
+ secondaryContent,
306
+ secondaryId: statusId
307
+ }
308
+ ),
309
+ /* @__PURE__ */ (0, import_jsx_runtime4.jsx)(
310
+ ChevronIcon,
311
+ {
312
+ expanded: open,
313
+ className: "polli:ml-auto polli:h-4 polli:w-4 polli:text-theme-text-strong"
314
+ }
315
+ )
316
+ ]
317
+ }
318
+ ),
319
+ children
320
+ }
321
+ )
322
+ ]
323
+ }
324
+ );
325
+ }
326
+
327
+ // src/brand/lockup-horizontal.svg
328
+ 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';
329
+
330
+ // src/brand/mark.svg
331
+ 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';
332
+
333
+ // src/primitives/BrandMark.tsx
334
+ var import_jsx_runtime5 = require("react/jsx-runtime");
335
+ var mask = (url) => ({
336
+ WebkitMask: `url('${url}') center / contain no-repeat`,
337
+ mask: `url('${url}') center / contain no-repeat`
338
+ });
339
+ var MASKS = { mark: mask(mark_default), lockup: mask(lockup_horizontal_default) };
340
+ function BrandMark({ variant = "mark", className }) {
341
+ return /* @__PURE__ */ (0, import_jsx_runtime5.jsx)(
342
+ "span",
343
+ {
344
+ "aria-hidden": "true",
345
+ className: cn(
346
+ "polli:block polli:shrink-0 polli:bg-current",
347
+ className
348
+ ),
349
+ style: MASKS[variant]
350
+ }
351
+ );
352
+ }
353
+
354
+ // src/primitives/DropdownItem.tsx
355
+ var import_jsx_runtime6 = require("react/jsx-runtime");
118
356
  function DropdownItem({
119
357
  as,
120
358
  className,
@@ -122,13 +360,13 @@ function DropdownItem({
122
360
  ...rest
123
361
  }) {
124
362
  const Component = as || "button";
125
- return /* @__PURE__ */ (0, import_jsx_runtime3.jsx)(
363
+ return /* @__PURE__ */ (0, import_jsx_runtime6.jsx)(
126
364
  Component,
127
365
  {
128
366
  ...Component === "button" ? { type: "button" } : void 0,
129
367
  ...rest,
130
368
  className: cn(
131
- "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:focus-visible:bg-theme-bg-hover",
369
+ "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",
132
370
  className
133
371
  ),
134
372
  children
@@ -137,176 +375,141 @@ function DropdownItem({
137
375
  }
138
376
 
139
377
  // src/modules/auth/LoginButton.tsx
140
- var import_react2 = require("@pollinations/sdk/react");
378
+ var import_react3 = require("@pollinations/sdk/react");
141
379
 
142
380
  // src/primitives/Button.tsx
143
- var import_jsx_runtime4 = require("react/jsx-runtime");
144
- var sizes = {
145
- sm: "polli:px-2 polli:pt-0.5 polli:pb-1",
146
- md: "polli:px-4 polli:pt-1.5 polli:pb-2",
147
- lg: "polli:px-6 polli:py-3"
381
+ var import_jsx_runtime7 = require("react/jsx-runtime");
382
+ var pillSizes = {
383
+ icon: "polli:h-12 polli:w-12 polli:p-0",
384
+ xs: "polli:h-5 polli:px-1.5 polli:py-0 polli:text-[11px] polli:leading-none",
385
+ sm: "polli:min-h-7 polli:px-2 polli:pt-0.5 polli:pb-1",
386
+ md: "polli:min-h-9 polli:px-4 polli:pt-1.5 polli:pb-2",
387
+ lg: "polli:min-h-12 polli:px-6 polli:py-3 polli:text-base"
388
+ };
389
+ var raisedSizes = {
390
+ icon: "polli:h-12 polli:w-12 polli:p-0",
391
+ xs: "polli:px-2 polli:py-1 polli:text-xs",
392
+ sm: "polli:px-4 polli:py-2 polli:text-sm",
393
+ md: "polli:px-7 polli:py-3.5 polli:text-base",
394
+ lg: "polli:px-8 polli:py-4 polli:text-lg"
395
+ };
396
+ var appearanceClasses = {
397
+ pill: "polli:rounded-full",
398
+ 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"
148
399
  };
149
- var themeClasses = "polli:bg-theme-bg-active polli:text-theme-text-base polli:hover:bg-theme-bg-hover polli:transition-colors";
400
+ 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";
401
+ 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";
150
402
  var intentClasses = {
151
- danger: "polli:bg-intent-danger-bg-light polli:text-intent-danger-text polli:hover:bg-intent-danger-bg-hover polli:transition-colors"
403
+ brand: `${outlined} polli:hover:bg-theme-bg-active/50 polli:[.dark_&]:hover:bg-theme-text-soft/10`,
404
+ 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`,
405
+ 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",
406
+ info: "polli:bg-intent-info-bg-light polli:text-intent-info-text polli:hover:bg-intent-info-bg-hover polli:transition-colors",
407
+ // Secondary actions never take the accent: one step stronger grey on hover.
408
+ 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"
152
409
  };
153
410
  var buttonClasses = ({
154
- theme: _theme,
155
411
  intent,
412
+ appearance = "pill",
156
413
  size,
157
414
  className,
158
- disabled
415
+ disabled,
416
+ busy
159
417
  }) => {
160
418
  const colorClasses = intent ? intentClasses[intent] : themeClasses;
419
+ const sizeClasses = appearance === "raised" ? raisedSizes : pillSizes;
161
420
  return cn(
162
- "polli-control polli:inline-flex polli:items-center polli:justify-center polli:rounded-full polli:self-center polli:font-medium polli:leading-normal polli:box-border",
163
- disabled ? "polli:opacity-50 polli:cursor-not-allowed" : "polli:hover:filter polli:hover:brightness-105 polli:cursor-pointer",
421
+ "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",
422
+ // A busy button is working, not unavailable: it keeps its strength.
423
+ busy ? "polli:cursor-progress" : disabled ? "polli:opacity-50 polli:cursor-not-allowed" : "polli:hover:filter polli:hover:brightness-105 polli:cursor-pointer",
164
424
  colorClasses,
165
- sizes[size || "md"],
425
+ appearanceClasses[appearance],
426
+ sizeClasses[size || "md"],
166
427
  className
167
428
  );
168
429
  };
169
430
  function Button({
170
431
  as,
171
432
  children,
172
- theme,
433
+ icon,
173
434
  intent,
435
+ appearance,
174
436
  size,
175
437
  className,
176
438
  disabled,
177
439
  ...buttonProps
178
440
  }) {
179
441
  const Component = as || "button";
180
- return /* @__PURE__ */ (0, import_jsx_runtime4.jsx)(
442
+ const isButton = Component === "button";
443
+ const isAnchor = Component === "a";
444
+ const buttonType = buttonProps.type;
445
+ const onClick = buttonProps.onClick;
446
+ const ariaBusy = buttonProps["aria-busy"];
447
+ const busy = ariaBusy === true || ariaBusy === "true";
448
+ const handleClick = disabled ? (event) => {
449
+ event.preventDefault();
450
+ event.stopPropagation();
451
+ } : onClick;
452
+ return /* @__PURE__ */ (0, import_jsx_runtime7.jsxs)(
181
453
  Component,
182
454
  {
183
- "data-theme": intent ? void 0 : theme,
455
+ ...buttonProps,
184
456
  "data-intent": intent,
457
+ ...isButton ? { type: buttonType ?? "button", disabled } : {},
458
+ ...!isButton && disabled ? { "aria-disabled": true, tabIndex: -1 } : {},
459
+ ...isAnchor && disabled ? { href: void 0 } : {},
460
+ onClick: handleClick,
185
461
  className: buttonClasses({
186
- theme,
187
462
  intent,
463
+ appearance,
188
464
  size,
189
465
  className,
190
- disabled
466
+ disabled,
467
+ busy
191
468
  }),
192
- disabled,
193
- ...buttonProps,
194
- children
469
+ children: [
470
+ icon && /* @__PURE__ */ (0, import_jsx_runtime7.jsx)(
471
+ "span",
472
+ {
473
+ "aria-hidden": "true",
474
+ className: "polli:mr-2 polli:flex polli:size-4 polli:shrink-0 polli:[&>svg]:size-full",
475
+ children: busy ? /* @__PURE__ */ (0, import_jsx_runtime7.jsx)("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
476
+ }
477
+ ),
478
+ children
479
+ ]
195
480
  }
196
481
  );
197
482
  }
198
483
 
199
484
  // src/modules/auth/LoginButton.tsx
200
- var import_jsx_runtime5 = require("react/jsx-runtime");
485
+ var import_jsx_runtime8 = require("react/jsx-runtime");
201
486
  function LoginButton({ children, ...buttonProps }) {
202
- const { isLoggedIn } = (0, import_react2.useAuthState)();
203
- const { login } = (0, import_react2.useAuthActions)();
204
- if (isLoggedIn) return null;
205
- return /* @__PURE__ */ (0, import_jsx_runtime5.jsx)(Button, { ...buttonProps, onClick: () => login(), children });
206
- }
207
-
208
- // src/modules/auth/UserAvatar.tsx
209
- var import_react3 = require("@pollinations/sdk/react");
210
- var import_jsx_runtime6 = require("react/jsx-runtime");
211
- var sizeClass = {
212
- sm: "polli:w-6 polli:h-6 polli:text-xs",
213
- md: "polli:w-9 polli:h-9 polli:text-sm",
214
- lg: "polli:w-12 polli:h-12 polli:text-base"
215
- };
216
- function initials(name) {
217
- const parts = name.trim().split(/\s+/).filter(Boolean);
218
- if (parts.length === 0) return null;
219
- if (parts.length === 1) return parts[0].slice(0, 2).toUpperCase() || null;
220
- const first = parts[0][0] ?? "";
221
- const last = parts[parts.length - 1][0] ?? "";
222
- return (first + last).toUpperCase() || null;
223
- }
224
- function UserAvatar({ size = "md", className }) {
225
487
  const { isLoggedIn } = (0, import_react3.useAuthState)();
226
- const { data: profile } = (0, import_react3.useAccountProfile)({ enabled: isLoggedIn });
227
- if (!isLoggedIn) return null;
228
- const base = cn(
229
- "polli:inline-flex polli:items-center polli:justify-center polli:rounded-full polli:overflow-hidden polli:bg-theme-bg-pale polli:text-theme-text-strong polli:font-semibold polli:select-none",
230
- sizeClass[size],
231
- className
232
- );
233
- if (profile?.image) {
234
- return /* @__PURE__ */ (0, import_jsx_runtime6.jsx)(
235
- "img",
236
- {
237
- "data-polli": "user-avatar",
238
- src: profile.image,
239
- alt: profile.name ?? "",
240
- className: base
241
- }
242
- );
243
- }
244
- const label = profile?.name ? initials(profile.name) : null;
245
- if (!label) return null;
246
- return /* @__PURE__ */ (0, import_jsx_runtime6.jsx)(
247
- "div",
248
- {
249
- "data-polli": "user-avatar",
250
- role: "img",
251
- "aria-label": profile?.name ?? void 0,
252
- className: base,
253
- children: label
254
- }
255
- );
256
- }
257
-
258
- // src/modules/auth/UserName.tsx
259
- var import_react4 = require("@pollinations/sdk/react");
260
- var import_jsx_runtime7 = require("react/jsx-runtime");
261
- function UserName({ className }) {
262
- const { isLoggedIn } = (0, import_react4.useAuthState)();
263
- const { data: profile } = (0, import_react4.useAccountProfile)({ enabled: isLoggedIn });
264
- if (!isLoggedIn || !profile) return null;
265
- const display = profile.name || profile.githubUsername;
266
- if (!display) return null;
267
- return /* @__PURE__ */ (0, import_jsx_runtime7.jsx)("span", { "data-polli": "user-name", className, children: display });
268
- }
269
-
270
- // src/modules/auth/WhenLoggedIn.tsx
271
- var import_react5 = require("@pollinations/sdk/react");
272
- var import_react6 = require("react");
273
- var import_jsx_runtime8 = require("react/jsx-runtime");
274
- function WhenLoggedIn({ children }) {
275
- const { isLoggedIn } = (0, import_react5.useAuthState)();
276
- if (!isLoggedIn) return null;
277
- return /* @__PURE__ */ (0, import_jsx_runtime8.jsx)(import_react6.Fragment, { children });
278
- }
279
-
280
- // src/modules/auth/WhenLoggedOut.tsx
281
- var import_react7 = require("@pollinations/sdk/react");
282
- var import_react8 = require("react");
283
- var import_jsx_runtime9 = require("react/jsx-runtime");
284
- function WhenLoggedOut({ children }) {
285
- const { isLoggedIn } = (0, import_react7.useAuthState)();
488
+ const { login } = (0, import_react3.useAuthActions)();
286
489
  if (isLoggedIn) return null;
287
- return /* @__PURE__ */ (0, import_jsx_runtime9.jsx)(import_react8.Fragment, { children });
490
+ return /* @__PURE__ */ (0, import_jsx_runtime8.jsx)(Button, { ...buttonProps, onClick: () => login(), children });
288
491
  }
289
492
 
290
- // src/modules/wallet/Balance.tsx
291
- var import_react9 = require("@pollinations/sdk/react");
292
-
293
493
  // src/primitives/Chip.tsx
294
- var import_jsx_runtime10 = require("react/jsx-runtime");
494
+ var import_jsx_runtime9 = require("react/jsx-runtime");
295
495
  var chipSizes = {
296
- sm: "polli:px-2 polli:py-0.5 polli:text-xs",
297
- md: "polli:px-2.5 polli:py-0.5 polli:text-sm",
298
- lg: "polli:px-3 polli:py-1 polli:text-sm"
496
+ icon: "polli:h-5 polli:w-5 polli:p-0 polli:text-xs",
497
+ sm: "polli:h-5 polli:px-2 polli:text-xs",
498
+ md: "polli:h-6 polli:px-2.5 polli:text-sm",
499
+ lg: "polli:h-7 polli:px-3 polli:text-sm"
299
500
  };
300
501
  var intentClasses2 = {
301
502
  news: "polli:bg-intent-news-bg-light polli:text-intent-news-text",
503
+ new: "polli:bg-intent-new-bg-light polli:text-intent-new-text",
504
+ free: "polli:bg-intent-free-bg-light polli:text-intent-free-text",
302
505
  alpha: "polli:bg-intent-alpha-bg-light polli:text-intent-alpha-text",
303
506
  neutral: "polli:bg-ink-100/80 polli:text-ink-900",
304
- success: "polli:bg-intent-success-bg-light polli:text-intent-success-text",
507
+ success: "polli:bg-intent-success-bg-bright/15 polli:text-intent-success-text",
305
508
  warning: "polli:bg-intent-warning-bg-light polli:text-intent-warning-text",
509
+ info: "polli:bg-intent-info-bg-light polli:text-intent-info-text",
306
510
  danger: "polli:bg-intent-danger-bg-light polli:text-intent-danger-text"
307
511
  };
308
512
  var Chip = ({
309
- theme,
310
513
  intent,
311
514
  size = "md",
312
515
  className,
@@ -314,13 +517,12 @@ var Chip = ({
314
517
  ...rest
315
518
  }) => {
316
519
  const intentClass = intent ? intentClasses2[intent] : "polli:bg-theme-bg-active polli:text-theme-text-strong";
317
- return /* @__PURE__ */ (0, import_jsx_runtime10.jsx)(
520
+ return /* @__PURE__ */ (0, import_jsx_runtime9.jsx)(
318
521
  "span",
319
522
  {
320
523
  ...rest,
321
- "data-theme": theme,
322
524
  className: cn(
323
- "polli:inline-flex polli:shrink-0 polli:items-center polli:gap-1 polli:rounded-lg polli:font-medium polli:leading-normal",
525
+ "polli:inline-flex polli:shrink-0 polli:items-center polli:justify-center polli:gap-1 polli:rounded-lg polli:font-medium polli:leading-none",
324
526
  chipSizes[size],
325
527
  intentClass,
326
528
  className
@@ -330,6 +532,55 @@ var Chip = ({
330
532
  );
331
533
  };
332
534
 
535
+ // src/lib/link.ts
536
+ function isExternalHref(href, origin = globalThis.location?.origin) {
537
+ if (typeof href !== "string" || !/^(https?:)?\/\//i.test(href))
538
+ return false;
539
+ if (!origin) return true;
540
+ try {
541
+ return new URL(href, origin).origin !== origin;
542
+ } catch {
543
+ return false;
544
+ }
545
+ }
546
+
547
+ // src/primitives/InlineLink.tsx
548
+ var import_jsx_runtime10 = require("react/jsx-runtime");
549
+ function InlineLink({
550
+ as,
551
+ external,
552
+ showIcon = true,
553
+ size = "inherit",
554
+ tone = "accent",
555
+ className,
556
+ children,
557
+ ...linkProps
558
+ }) {
559
+ const Component = as || "a";
560
+ const isExternal = external ?? isExternalHref(linkProps.href);
561
+ return /* @__PURE__ */ (0, import_jsx_runtime10.jsxs)(
562
+ Component,
563
+ {
564
+ target: isExternal && as !== "button" ? "_blank" : void 0,
565
+ rel: isExternal && as !== "button" ? "noopener noreferrer" : void 0,
566
+ className: ["polli-link", className].filter(Boolean).join(" "),
567
+ "data-size": size,
568
+ "data-tone": tone,
569
+ ...linkProps,
570
+ children: [
571
+ children,
572
+ showIcon && isExternal && /* @__PURE__ */ (0, import_jsx_runtime10.jsx)(
573
+ ExternalLinkIcon,
574
+ {
575
+ "aria-hidden": "true",
576
+ className: "polli-link-external-icon"
577
+ }
578
+ )
579
+ ]
580
+ }
581
+ );
582
+ }
583
+
333
584
  // src/modules/wallet/format-pollen.ts
334
585
  var BUDGET = 5;
335
586
  var MAX_DECIMALS = 4;
@@ -359,139 +610,344 @@ function formatPollen(value) {
359
610
  return Number(floored.toFixed(decimals)).toString();
360
611
  }
361
612
 
362
- // src/modules/wallet/Balance.tsx
613
+ // src/modules/wallet/wallet-display.tsx
363
614
  var import_jsx_runtime11 = require("react/jsx-runtime");
364
- function Balance({ className } = {}) {
365
- const { isLoggedIn } = (0, import_react9.useAuthState)();
366
- const { data: balance } = (0, import_react9.useAccountBalance)({ enabled: isLoggedIn });
367
- if (!isLoggedIn || balance == null) return null;
368
- return /* @__PURE__ */ (0, import_jsx_runtime11.jsxs)(
615
+ var walletTextClasses = {
616
+ paid: "polli-wallet-text-paid",
617
+ tier: "polli-wallet-text-tier"
618
+ };
619
+ var walletKindIcons = {
620
+ paid: CardIcon,
621
+ tier: SproutIcon
622
+ };
623
+ var WalletKindIcon = ({
624
+ kind,
625
+ className
626
+ }) => {
627
+ const Icon = walletKindIcons[kind];
628
+ return /* @__PURE__ */ (0, import_jsx_runtime11.jsx)(
629
+ Icon,
630
+ {
631
+ "aria-hidden": "true",
632
+ className: cn(
633
+ "polli:h-3.5 polli:w-3.5 polli:shrink-0",
634
+ walletTextClasses[kind],
635
+ className
636
+ )
637
+ }
638
+ );
639
+ };
640
+
641
+ // src/modules/wallet/AccountPollen.tsx
642
+ var import_jsx_runtime12 = require("react/jsx-runtime");
643
+ function isEmpty(amount) {
644
+ return amount != null && amount <= 0;
645
+ }
646
+ var labels = {
647
+ "limit-reached": "Limit reached",
648
+ "no-pollen": "No Pollen",
649
+ unlimited: "Unlimited"
650
+ };
651
+ function PollenStatusBadge({
652
+ state,
653
+ topUpHref
654
+ }) {
655
+ const Icon = state === "no-pollen" ? WalletIcon : KeyIcon;
656
+ const label = labels[state];
657
+ return /* @__PURE__ */ (0, import_jsx_runtime12.jsxs)(
369
658
  Chip,
370
659
  {
371
- "data-polli": "balance",
372
- className: cn("polli:tabular-nums", className),
660
+ size: "sm",
661
+ intent: state === "unlimited" ? "info" : "danger",
662
+ "aria-label": label,
373
663
  children: [
374
- formatPollen(balance.balance),
375
- " pollen"
664
+ /* @__PURE__ */ (0, import_jsx_runtime12.jsx)(
665
+ Icon,
666
+ {
667
+ "aria-hidden": "true",
668
+ className: "polli:h-3.5 polli:w-3.5 polli:shrink-0"
669
+ }
670
+ ),
671
+ label,
672
+ state === "no-pollen" && topUpHref && /* @__PURE__ */ (0, import_jsx_runtime12.jsxs)(import_jsx_runtime12.Fragment, { children: [
673
+ /* @__PURE__ */ (0, import_jsx_runtime12.jsx)("span", { "aria-hidden": "true", children: "\xB7" }),
674
+ /* @__PURE__ */ (0, import_jsx_runtime12.jsx)(
675
+ InlineLink,
676
+ {
677
+ href: topUpHref,
678
+ "aria-label": `${label}. Top up`,
679
+ children: "Top up"
680
+ }
681
+ )
682
+ ] })
376
683
  ]
377
684
  }
378
685
  );
379
686
  }
687
+ function AccountPollen({
688
+ source,
689
+ topUpHref
690
+ }) {
691
+ if (source.type === "budget") {
692
+ if (source.generationEnabled === false) return null;
693
+ const unlimited = source.remaining === null;
694
+ if (!unlimited && source.remaining === void 0) return null;
695
+ if (unlimited) return /* @__PURE__ */ (0, import_jsx_runtime12.jsx)(PollenStatusBadge, { state: "unlimited" });
696
+ const remaining = source.remaining;
697
+ if (isEmpty(remaining))
698
+ return /* @__PURE__ */ (0, import_jsx_runtime12.jsx)(PollenStatusBadge, { state: "limit-reached" });
699
+ return /* @__PURE__ */ (0, import_jsx_runtime12.jsxs)(
700
+ "span",
701
+ {
702
+ title: "App budget left",
703
+ className: "polli:inline-flex polli:items-center polli:gap-1 polli:tabular-nums",
704
+ children: [
705
+ /* @__PURE__ */ (0, import_jsx_runtime12.jsx)(
706
+ KeyIcon,
707
+ {
708
+ "aria-hidden": "true",
709
+ className: "polli:h-3.5 polli:w-3.5 polli:shrink-0"
710
+ }
711
+ ),
712
+ /* @__PURE__ */ (0, import_jsx_runtime12.jsx)("span", { className: "polli:sr-only", children: "App budget: " }),
713
+ formatPollen(remaining),
714
+ " pollen"
715
+ ]
716
+ }
717
+ );
718
+ }
719
+ const { balances } = source;
720
+ if (!balances) return null;
721
+ if (isEmpty(balances.paid) && isEmpty(balances.quest))
722
+ return /* @__PURE__ */ (0, import_jsx_runtime12.jsx)(PollenStatusBadge, { state: "no-pollen", topUpHref });
723
+ return /* @__PURE__ */ (0, import_jsx_runtime12.jsx)("span", { className: "polli:inline-flex polli:items-center polli:gap-2 polli:tabular-nums", children: ["quest", "paid"].map((kind) => {
724
+ const amount = balances[kind];
725
+ return /* @__PURE__ */ (0, import_jsx_runtime12.jsxs)(
726
+ "span",
727
+ {
728
+ className: "polli:inline-flex polli:items-center polli:gap-1",
729
+ children: [
730
+ /* @__PURE__ */ (0, import_jsx_runtime12.jsx)(
731
+ WalletKindIcon,
732
+ {
733
+ kind: kind === "paid" ? "paid" : "tier"
734
+ }
735
+ ),
736
+ /* @__PURE__ */ (0, import_jsx_runtime12.jsxs)("span", { className: "polli:sr-only", children: [
737
+ kind === "paid" ? "Paid" : "Quest",
738
+ " Pollen:",
739
+ " "
740
+ ] }),
741
+ formatPollen(Math.max(0, amount))
742
+ ]
743
+ },
744
+ kind
745
+ );
746
+ }) });
747
+ }
380
748
 
381
749
  // src/modules/app-user-menu/AppUserMenu.tsx
382
- var import_jsx_runtime12 = require("react/jsx-runtime");
750
+ var import_jsx_runtime13 = require("react/jsx-runtime");
383
751
  var defaultLabels = {
384
- authorize: "Authorize app",
752
+ authorize: "Pollinations Connect",
385
753
  appUserMenu: "App user menu",
386
- topUpAccount: "Top up account",
387
- logout: "Log out from this app"
754
+ permissions: "Permissions",
755
+ buyPollen: "Buy Pollen",
756
+ logout: "Disconnect"
388
757
  };
389
- function isEmbeddedContext(embedQueryParam = "embed") {
390
- if (typeof window === "undefined") return false;
391
- const search = new URLSearchParams(window.location.search);
392
- if (search.get(embedQueryParam) === "1") return true;
393
- try {
394
- return window.self !== window.top;
395
- } catch {
396
- return true;
758
+ var CONNECT_SIZES = {
759
+ md: {
760
+ button: "polli:h-10",
761
+ cell: "polli:w-10",
762
+ mark: "polli:h-6 polli:w-6",
763
+ label: "polli:px-3"
764
+ },
765
+ lg: {
766
+ button: "polli:h-12 polli:text-base",
767
+ cell: "polli:w-12",
768
+ mark: "polli:h-7 polli:w-7",
769
+ label: "polli:px-4"
397
770
  }
398
- }
771
+ };
399
772
  function AppUserMenu({
400
773
  dashboardHref,
401
- labels: labelOverrides,
402
- hiddenWhenEmbedded = false,
403
- embedQueryParam = "embed"
774
+ connectSize = "md",
775
+ labels: labelOverrides
404
776
  }) {
405
- if (hiddenWhenEmbedded && isEmbeddedContext(embedQueryParam)) return null;
406
- return /* @__PURE__ */ (0, import_jsx_runtime12.jsx)(
407
- AppUserMenuContent,
777
+ const labels2 = { ...defaultLabels, ...labelOverrides };
778
+ const size = CONNECT_SIZES[connectSize];
779
+ const { logout, enterUrl } = (0, import_react4.useAuthActions)();
780
+ const { isLoggedIn } = (0, import_react4.useAuthState)();
781
+ const profile = (0, import_react4.useAccountProfile)({ enabled: isLoggedIn });
782
+ const key = (0, import_react4.useAccountKey)({ enabled: isLoggedIn });
783
+ const canReadWallet = key.data?.pollenBudget === null && (key.data.permissions?.account?.includes("usage") ?? false);
784
+ const balance = (0, import_react4.useAccountBalance)({
785
+ enabled: isLoggedIn && canReadWallet
786
+ });
787
+ const wallet = balance.data?.accountBalance;
788
+ (0, import_react5.useEffect)(() => {
789
+ if (!isLoggedIn) return;
790
+ const onVisible = () => {
791
+ if (document.visibilityState !== "visible") return;
792
+ void key.refresh();
793
+ void balance.refresh();
794
+ };
795
+ document.addEventListener("visibilitychange", onVisible);
796
+ return () => document.removeEventListener("visibilitychange", onVisible);
797
+ }, [isLoggedIn, key.refresh, balance.refresh]);
798
+ const returnUrl = typeof window === "undefined" ? void 0 : window.location.href;
799
+ const topUpUrl = new URL("/top-up", enterUrl);
800
+ if (returnUrl) topUpUrl.searchParams.set("redirect", returnUrl);
801
+ const keyId = key.data?.id;
802
+ let editKeyUrl;
803
+ if (keyId) {
804
+ editKeyUrl = new URL("/edit-key", enterUrl);
805
+ editKeyUrl.searchParams.set("id", keyId);
806
+ if (returnUrl) editKeyUrl.searchParams.set("redirect", returnUrl);
807
+ }
808
+ let pollenSource;
809
+ if (key.data && key.data.pollenBudget !== null) {
810
+ pollenSource = {
811
+ type: "budget",
812
+ remaining: key.data.pollenBudget,
813
+ generationEnabled: key.data.permissions?.models?.length !== 0
814
+ };
815
+ } else if (wallet) {
816
+ pollenSource = {
817
+ type: "wallet",
818
+ balances: { paid: wallet.paid, quest: wallet.tier }
819
+ };
820
+ } else if (key.data && !canReadWallet) {
821
+ pollenSource = { type: "budget", remaining: null };
822
+ }
823
+ return /* @__PURE__ */ (0, import_jsx_runtime13.jsx)(
824
+ "div",
408
825
  {
409
- dashboardHref,
410
- labels: labelOverrides
826
+ "data-theme": "accent",
827
+ className: "polli:flex polli:shrink-0 polli:justify-end",
828
+ children: !isLoggedIn ? /* @__PURE__ */ (0, import_jsx_runtime13.jsxs)(
829
+ LoginButton,
830
+ {
831
+ className: cn(
832
+ "polli:gap-0 polli:overflow-hidden polli:border polli:border-theme-bg-active polli:bg-surface-white polli:p-0 polli:text-theme-text-strong polli:whitespace-nowrap polli:hover:bg-surface-white polli:[.dark_&]:bg-transparent polli:[.dark_&]:hover:bg-transparent",
833
+ size.button
834
+ ),
835
+ children: [
836
+ /* @__PURE__ */ (0, import_jsx_runtime13.jsx)(
837
+ "span",
838
+ {
839
+ "aria-hidden": "true",
840
+ className: cn(
841
+ "polli:flex polli:h-full polli:shrink-0 polli:items-center polli:justify-center polli:bg-theme-bg-active",
842
+ size.cell
843
+ ),
844
+ children: /* @__PURE__ */ (0, import_jsx_runtime13.jsx)(
845
+ BrandMark,
846
+ {
847
+ className: cn(
848
+ "polli:relative polli:-top-px polli:left-px",
849
+ size.mark
850
+ )
851
+ }
852
+ )
853
+ }
854
+ ),
855
+ /* @__PURE__ */ (0, import_jsx_runtime13.jsx)("span", { className: size.label, children: labels2.authorize })
856
+ ]
857
+ }
858
+ ) : /* @__PURE__ */ (0, import_jsx_runtime13.jsx)(
859
+ AccountMenu,
860
+ {
861
+ name: profile.data?.name || profile.data?.githubUsername || "Connected user",
862
+ avatarUrl: profile.data?.image,
863
+ dashboardHref: dashboardHref ?? new URL("/pollen", enterUrl).href,
864
+ menuLabel: labels2.appUserMenu,
865
+ className: "polli:max-w-80",
866
+ secondaryContent: pollenSource ? /* @__PURE__ */ (0, import_jsx_runtime13.jsx)(AccountPollen, { source: pollenSource }) : void 0,
867
+ children: (close) => /* @__PURE__ */ (0, import_jsx_runtime13.jsxs)(import_jsx_runtime13.Fragment, { children: [
868
+ editKeyUrl && /* @__PURE__ */ (0, import_jsx_runtime13.jsxs)(
869
+ DropdownItem,
870
+ {
871
+ as: "a",
872
+ href: editKeyUrl.href,
873
+ target: "_blank",
874
+ rel: "noopener noreferrer",
875
+ onClick: close,
876
+ children: [
877
+ /* @__PURE__ */ (0, import_jsx_runtime13.jsx)(
878
+ KeyIcon,
879
+ {
880
+ className: "polli:h-4 polli:w-4 polli:shrink-0",
881
+ "aria-hidden": "true"
882
+ }
883
+ ),
884
+ labels2.permissions,
885
+ /* @__PURE__ */ (0, import_jsx_runtime13.jsx)(
886
+ ExternalLinkIcon,
887
+ {
888
+ className: "polli:ml-auto polli:h-3.5 polli:w-3.5 polli:shrink-0",
889
+ "aria-hidden": "true"
890
+ }
891
+ )
892
+ ]
893
+ }
894
+ ),
895
+ /* @__PURE__ */ (0, import_jsx_runtime13.jsxs)(
896
+ DropdownItem,
897
+ {
898
+ as: "a",
899
+ href: topUpUrl.href,
900
+ target: "_blank",
901
+ rel: "noopener noreferrer",
902
+ onClick: close,
903
+ children: [
904
+ /* @__PURE__ */ (0, import_jsx_runtime13.jsx)(
905
+ WalletIcon,
906
+ {
907
+ className: "polli:h-4 polli:w-4 polli:shrink-0",
908
+ "aria-hidden": "true"
909
+ }
910
+ ),
911
+ labels2.buyPollen,
912
+ /* @__PURE__ */ (0, import_jsx_runtime13.jsx)(
913
+ ExternalLinkIcon,
914
+ {
915
+ className: "polli:ml-auto polli:h-3.5 polli:w-3.5 polli:shrink-0",
916
+ "aria-hidden": "true"
917
+ }
918
+ )
919
+ ]
920
+ }
921
+ ),
922
+ /* @__PURE__ */ (0, import_jsx_runtime13.jsxs)(
923
+ DropdownItem,
924
+ {
925
+ type: "button",
926
+ className: "polli:justify-start polli:text-left",
927
+ onClick: () => {
928
+ close();
929
+ logout();
930
+ },
931
+ children: [
932
+ /* @__PURE__ */ (0, import_jsx_runtime13.jsx)(
933
+ PowerIcon,
934
+ {
935
+ className: "polli:h-4 polli:w-4 polli:shrink-0",
936
+ "aria-hidden": "true"
937
+ }
938
+ ),
939
+ labels2.logout
940
+ ]
941
+ }
942
+ )
943
+ ] })
944
+ }
945
+ )
411
946
  }
412
947
  );
413
948
  }
414
- function AppUserMenuContent({
415
- dashboardHref,
416
- labels: labelOverrides
417
- }) {
418
- const labels = { ...defaultLabels, ...labelOverrides };
419
- const { logout } = (0, import_react10.useAuthActions)();
420
- return /* @__PURE__ */ (0, import_jsx_runtime12.jsxs)("div", { "data-theme": "amber", className: "polli:flex polli:justify-end", children: [
421
- /* @__PURE__ */ (0, import_jsx_runtime12.jsx)(WhenLoggedOut, { children: /* @__PURE__ */ (0, import_jsx_runtime12.jsx)(LoginButton, { theme: "amber", children: labels.authorize }) }),
422
- /* @__PURE__ */ (0, import_jsx_runtime12.jsx)(WhenLoggedIn, { children: /* @__PURE__ */ (0, import_jsx_runtime12.jsx)(
423
- Dropdown,
424
- {
425
- theme: "amber",
426
- align: "end",
427
- className: "polli:w-64 polli:p-1",
428
- trigger: (open) => /* @__PURE__ */ (0, import_jsx_runtime12.jsxs)(
429
- "button",
430
- {
431
- type: "button",
432
- "data-theme": "amber",
433
- "aria-label": labels.appUserMenu,
434
- className: "polli-control polli:flex polli:min-w-0 polli:items-center polli:gap-2 polli:rounded-full polli:bg-theme-bg-active polli:py-1 polli:pl-1 polli:pr-3 polli:text-theme-text-base polli:shadow-sm polli:transition-colors polli:hover:bg-theme-bg-hover",
435
- children: [
436
- /* @__PURE__ */ (0, import_jsx_runtime12.jsx)(
437
- UserAvatar,
438
- {
439
- size: "md",
440
- className: "polli:h-8 polli:w-8"
441
- }
442
- ),
443
- /* @__PURE__ */ (0, import_jsx_runtime12.jsxs)("span", { className: "polli:flex polli:min-w-0 polli:flex-col polli:items-start polli:leading-tight", children: [
444
- /* @__PURE__ */ (0, import_jsx_runtime12.jsx)(UserName, { className: "polli:max-w-32 polli:truncate polli:text-sm polli:font-semibold" }),
445
- /* @__PURE__ */ (0, import_jsx_runtime12.jsx)(Balance, { className: "polli:bg-transparent polli:px-0 polli:py-0 polli:text-xs polli:text-theme-text-base" })
446
- ] }),
447
- /* @__PURE__ */ (0, import_jsx_runtime12.jsx)(
448
- ChevronIcon,
449
- {
450
- expanded: open,
451
- className: "polli:h-4 polli:w-4 polli:text-theme-text-base"
452
- }
453
- )
454
- ]
455
- }
456
- ),
457
- children: (close) => /* @__PURE__ */ (0, import_jsx_runtime12.jsxs)(
458
- "div",
459
- {
460
- "data-theme": "amber",
461
- className: "polli:flex polli:flex-col",
462
- children: [
463
- /* @__PURE__ */ (0, import_jsx_runtime12.jsx)(
464
- DropdownItem,
465
- {
466
- as: "a",
467
- href: dashboardHref,
468
- target: "_blank",
469
- rel: "noopener noreferrer",
470
- onClick: close,
471
- children: labels.topUpAccount
472
- }
473
- ),
474
- /* @__PURE__ */ (0, import_jsx_runtime12.jsx)(
475
- DropdownItem,
476
- {
477
- type: "button",
478
- onClick: () => {
479
- close();
480
- logout();
481
- },
482
- children: labels.logout
483
- }
484
- )
485
- ]
486
- }
487
- )
488
- }
489
- ) })
490
- ] });
491
- }
492
949
  // Annotate the CommonJS export names for ESM import in node:
493
950
  0 && (module.exports = {
494
- AppUserMenu,
495
- isEmbeddedContext
951
+ AppUserMenu
496
952
  });
497
953
  //# sourceMappingURL=sdk.cjs.map