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

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