ugly-app 0.1.801 → 0.1.802

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.
package/README.md CHANGED
@@ -444,7 +444,7 @@ Two modes, picked from the `auth` block in the project's `.uglyapp` config:
444
444
  - **Mode A — `mode: 'uglybot'`** (default when no `auth` block is present). Auth is delegated to ugly.bot OAuth. AI / email / push proxies bill the end user's ugly.bot credits.
445
445
  - **Mode B — `mode: 'self'`**. The app issues its own sessions via magic-link email and/or Google OAuth. AI / email / push proxies bill the developer's ugly.bot account using the project's `AI_PROXY_TOKEN`.
446
446
 
447
- `window.__UGLY_APP_AUTH_MODE__` is injected into every page so client code (specifically `<AuthRoot>`) can branch between Mode A (LoginPopup) and Mode B (MagicLinkForm + optional Google button). The old `<AutoLoginGate>` iframe that blocked first paint on a silent-SSO handshake has been removed — silent SSO now runs after render, from `bootstrapApp`.
447
+ `window.__UGLY_APP_AUTH_MODE__` is injected into every page so client code (incl. `<AuthRoot>` and the router's `<AutoLoginGate>`) can branch correctly.
448
448
 
449
449
  ### Mode A — ugly.bot OAuth (default)
450
450
 
@@ -599,12 +599,10 @@ AI calls are proxied through ugly.bot — your app never holds an AI provider ke
599
599
  ### Server-side text generation
600
600
 
601
601
  ```typescript
602
- import { createTextGen } from 'ugly-app';
603
- const textGen = createTextGen(userId);
602
+ import { createTextGenClient } from 'ugly-app';
603
+ const textGen = createTextGenClient(userId);
604
604
 
605
605
  const text = await textGen.generate(messages, { model: 'gemini_2_5_flash' });
606
- const json = await textGen.generateJson(schema, messages, { model: 'gemini_2_5_flash' });
607
- const { response, toolCalls } = await textGen.generateWithTools(messages, tools);
608
606
  ```
609
607
 
610
608
  Or call the framework `textGen` request directly:
@@ -623,8 +621,8 @@ Available models are exposed via `textGenModels` / `textGenModelData` from `ugly
623
621
  ### Server-side image generation
624
622
 
625
623
  ```typescript
626
- import { createImageGen } from 'ugly-app';
627
- const imageGen = createImageGen(userId);
624
+ import { createImageGenClient } from 'ugly-app';
625
+ const imageGen = createImageGenClient(userId);
628
626
 
629
627
  const url = await imageGen.generate('A red panda eating noodles', { model: 'flux_schnell' });
630
628
  ```
@@ -1,2 +1,2 @@
1
- export declare const CLI_VERSION = "0.1.801";
1
+ export declare const CLI_VERSION = "0.1.802";
2
2
  //# sourceMappingURL=version.d.ts.map
@@ -1,3 +1,3 @@
1
1
  // Auto-generated by prebuild — do not edit manually
2
- export const CLI_VERSION = "0.1.801";
2
+ export const CLI_VERSION = "0.1.802";
3
3
  //# sourceMappingURL=version.js.map
@@ -7,7 +7,7 @@
7
7
  import type { CSSProperties, JSX, ReactNode } from 'react';
8
8
  import type { IconNode } from 'lucide';
9
9
  export { View } from '../../client/components/View.js';
10
- export declare function TextNormal({ text, size, style, numberOfLines, disableLocalization: _disableLocalization, }: {
10
+ export declare function TextNormal({ text, size, color, style, numberOfLines, disableLocalization: _disableLocalization, }: {
11
11
  text: string;
12
12
  size?: string;
13
13
  style?: CSSProperties;
@@ -1 +1 @@
1
- {"version":3,"file":"markdownComponents.d.ts","sourceRoot":"","sources":["../../../src/markdown/client/markdownComponents.tsx"],"names":[],"mappings":"AAAA;;;;;GAKG;AAEH,OAAO,KAAK,EAAE,aAAa,EAAE,GAAG,EAAE,SAAS,EAAE,MAAM,OAAO,CAAC;AAC3D,OAAO,KAAK,EAAE,QAAQ,EAAE,MAAM,QAAQ,CAAC;AAIvC,OAAO,EAAE,IAAI,EAAE,MAAM,iCAAiC,CAAC;AAIvD,wBAAgB,UAAU,CAAC,EACzB,IAAI,EACJ,IAAI,EACJ,KAAK,EACL,aAAa,EACb,mBAAmB,EAAE,oBAAoB,GAC1C,EAAE;IACD,IAAI,EAAE,MAAM,CAAC;IACb,IAAI,CAAC,EAAE,MAAM,CAAC;IACd,KAAK,CAAC,EAAE,aAAa,CAAC;IACtB,aAAa,CAAC,EAAE,MAAM,CAAC;IACvB,KAAK,CAAC,EAAE,MAAM,CAAC;IACf,MAAM,CAAC,EAAE,OAAO,CAAC;IACjB,mBAAmB,CAAC,EAAE,OAAO,CAAC;CAC/B,eAiCA;AAID,wBAAgB,gBAAgB,CAAC,EAC/B,QAAQ,EACR,OAAO,EACP,KAAK,EACL,QAAQ,EACR,KAAK,GACN,EAAE;IACD,QAAQ,CAAC,EAAE,SAAS,CAAC;IACrB,OAAO,CAAC,EAAE,MAAM,IAAI,CAAC;IACrB,KAAK,CAAC,EAAE,aAAa,CAAC;IACtB,QAAQ,CAAC,EAAE,OAAO,CAAC;IACnB,KAAK,CAAC,EAAE,MAAM,CAAC;CAChB,eAqBA;AAID,wBAAgB,UAAU,CAAC,EACzB,IAAI,EACJ,IAAI,EACJ,KAAK,EACL,KAAK,GACN,EAAE;IACD,IAAI,EAAE,QAAQ,CAAC;IACf,IAAI,CAAC,EAAE,MAAM,CAAC;IACd,KAAK,CAAC,EAAE,MAAM,CAAC;IACf,KAAK,CAAC,EAAE,aAAa,CAAC;CACvB,eAoBA"}
1
+ {"version":3,"file":"markdownComponents.d.ts","sourceRoot":"","sources":["../../../src/markdown/client/markdownComponents.tsx"],"names":[],"mappings":"AAAA;;;;;GAKG;AAEH,OAAO,KAAK,EAAE,aAAa,EAAE,GAAG,EAAE,SAAS,EAAE,MAAM,OAAO,CAAC;AAC3D,OAAO,KAAK,EAAE,QAAQ,EAAE,MAAM,QAAQ,CAAC;AAIvC,OAAO,EAAE,IAAI,EAAE,MAAM,iCAAiC,CAAC;AAIvD,wBAAgB,UAAU,CAAC,EACzB,IAAI,EACJ,IAAI,EACJ,KAAK,EACL,KAAK,EACL,aAAa,EACb,mBAAmB,EAAE,oBAAoB,GAC1C,EAAE;IACD,IAAI,EAAE,MAAM,CAAC;IACb,IAAI,CAAC,EAAE,MAAM,CAAC;IACd,KAAK,CAAC,EAAE,aAAa,CAAC;IACtB,aAAa,CAAC,EAAE,MAAM,CAAC;IACvB,KAAK,CAAC,EAAE,MAAM,CAAC;IACf,MAAM,CAAC,EAAE,OAAO,CAAC;IACjB,mBAAmB,CAAC,EAAE,OAAO,CAAC;CAC/B,eAoCA;AAID,wBAAgB,gBAAgB,CAAC,EAC/B,QAAQ,EACR,OAAO,EACP,KAAK,EACL,QAAQ,EACR,KAAK,GACN,EAAE;IACD,QAAQ,CAAC,EAAE,SAAS,CAAC;IACrB,OAAO,CAAC,EAAE,MAAM,IAAI,CAAC;IACrB,KAAK,CAAC,EAAE,aAAa,CAAC;IACtB,QAAQ,CAAC,EAAE,OAAO,CAAC;IACnB,KAAK,CAAC,EAAE,MAAM,CAAC;CAChB,eAqBA;AAID,wBAAgB,UAAU,CAAC,EACzB,IAAI,EACJ,IAAI,EACJ,KAAK,EACL,KAAK,GACN,EAAE;IACD,IAAI,EAAE,QAAQ,CAAC;IACf,IAAI,CAAC,EAAE,MAAM,CAAC;IACd,KAAK,CAAC,EAAE,MAAM,CAAC;IACf,KAAK,CAAC,EAAE,aAAa,CAAC;CACvB,eAoBA"}
@@ -2,7 +2,7 @@ import { jsx as _jsx } from "react/jsx-runtime";
2
2
  // ─── View ────────────────────────────────────────────────────────────────────
3
3
  export { View } from '../../client/components/View.js';
4
4
  // ─── Text (replaces TextNormal) ──────────────────────────────────────────────
5
- export function TextNormal({ text, size, style, numberOfLines, disableLocalization: _disableLocalization, }) {
5
+ export function TextNormal({ text, size, color, style, numberOfLines, disableLocalization: _disableLocalization, }) {
6
6
  const fontSize = size === 'smallNormal' || size === 'smallBold'
7
7
  ? 12
8
8
  : size === 'mediumNormal' || size === 'mediumBold'
@@ -22,6 +22,9 @@ export function TextNormal({ text, size, style, numberOfLines, disableLocalizati
22
22
  return (_jsx("span", { style: {
23
23
  fontSize,
24
24
  fontWeight,
25
+ // Apply the `color` prop (it was previously declared but dropped, so
26
+ // callers' colors were silently ignored). `style` can still override.
27
+ ...(color ? { color } : {}),
25
28
  ...lineClamp,
26
29
  ...style,
27
30
  }, children: text }));
@@ -1 +1 @@
1
- {"version":3,"file":"markdownComponents.js","sourceRoot":"","sources":["../../../src/markdown/client/markdownComponents.tsx"],"names":[],"mappings":";AAUA,gFAAgF;AAEhF,OAAO,EAAE,IAAI,EAAE,MAAM,iCAAiC,CAAC;AAEvD,gFAAgF;AAEhF,MAAM,UAAU,UAAU,CAAC,EACzB,IAAI,EACJ,IAAI,EACJ,KAAK,EACL,aAAa,EACb,mBAAmB,EAAE,oBAAoB,GAS1C;IACC,MAAM,QAAQ,GACZ,IAAI,KAAK,aAAa,IAAI,IAAI,KAAK,WAAW;QAC5C,CAAC,CAAC,EAAE;QACJ,CAAC,CAAC,IAAI,KAAK,cAAc,IAAI,IAAI,KAAK,YAAY;YAChD,CAAC,CAAC,EAAE;YACJ,CAAC,CAAC,IAAI,KAAK,aAAa,IAAI,IAAI,KAAK,WAAW;gBAC9C,CAAC,CAAC,EAAE;gBACJ,CAAC,CAAC,EAAE,CAAC;IACb,MAAM,UAAU,GACd,IAAI,EAAE,QAAQ,CAAC,MAAM,CAAC,CAAC,CAAC,CAAC,KAAK,CAAC,CAAC,CAAC,QAAQ,CAAC;IAE5C,MAAM,SAAS,GAAG,aAAa;QAC7B,CAAC,CAAC;YACE,QAAQ,EAAE,QAAiB;YAC3B,OAAO,EAAE,aAAsB;YAC/B,eAAe,EAAE,aAAa;YAC9B,eAAe,EAAE,UAAmB;SACrC;QACH,CAAC,CAAC,EAAE,CAAC;IAEP,OAAO,CACL,eACE,KAAK,EAAE;YACL,QAAQ;YACR,UAAU;YACV,GAAG,SAAS;YACZ,GAAG,KAAK;SACT,YAEA,IAAI,GACA,CACR,CAAC;AACJ,CAAC;AAED,gFAAgF;AAEhF,MAAM,UAAU,gBAAgB,CAAC,EAC/B,QAAQ,EACR,OAAO,EACP,KAAK,EACL,QAAQ,EACR,KAAK,GAON;IACC,OAAO,CACL,iBACE,OAAO,EAAE,OAAO,EAChB,QAAQ,EAAE,QAAQ,EAClB,KAAK,EAAE,KAAK,EACZ,KAAK,EAAE;YACL,UAAU,EAAE,MAAM;YAClB,MAAM,EAAE,MAAM;YACd,MAAM,EAAE,QAAQ,CAAC,CAAC,CAAC,SAAS,CAAC,CAAC,CAAC,SAAS;YACxC,OAAO,EAAE,CAAC;YACV,OAAO,EAAE,MAAM;YACf,UAAU,EAAE,QAAQ;YACpB,cAAc,EAAE,QAAQ;YACxB,OAAO,EAAE,QAAQ,CAAC,CAAC,CAAC,GAAG,CAAC,CAAC,CAAC,CAAC;YAC3B,GAAG,KAAK;SACT,YAEA,QAAQ,GACF,CACV,CAAC;AACJ,CAAC;AAED,gFAAgF;AAEhF,MAAM,UAAU,UAAU,CAAC,EACzB,IAAI,EACJ,IAAI,EACJ,KAAK,EACL,KAAK,GAMN;IACC,MAAM,CAAC,GAAG,IAAI,IAAI,EAAE,CAAC;IACrB,OAAO,CACL,cACE,KAAK,EAAE,CAAC,EACR,MAAM,EAAE,CAAC,EACT,OAAO,EAAC,WAAW,EACnB,IAAI,EAAC,MAAM,EACX,MAAM,EAAC,cAAc,EACrB,WAAW,EAAC,GAAG,EACf,aAAa,EAAC,OAAO,EACrB,cAAc,EAAC,OAAO,EACtB,KAAK,EAAE,EAAE,KAAK,EAAE,GAAG,KAAK,EAAE,YAEzB,IAAI,CAAC,GAAG,CAAC,CAAC,CAAC,GAAG,EAAE,KAAK,CAAC,EAAE,CAAC,EAAE,EAAE;YAC5B,MAAM,GAAG,GAAG,GAAkC,CAAC;YAC/C,OAAO,KAAC,GAAG,OAAa,KAAK,IAAZ,CAAC,CAAe,CAAC;QACpC,CAAC,CAAC,GACE,CACP,CAAC;AACJ,CAAC"}
1
+ {"version":3,"file":"markdownComponents.js","sourceRoot":"","sources":["../../../src/markdown/client/markdownComponents.tsx"],"names":[],"mappings":";AAUA,gFAAgF;AAEhF,OAAO,EAAE,IAAI,EAAE,MAAM,iCAAiC,CAAC;AAEvD,gFAAgF;AAEhF,MAAM,UAAU,UAAU,CAAC,EACzB,IAAI,EACJ,IAAI,EACJ,KAAK,EACL,KAAK,EACL,aAAa,EACb,mBAAmB,EAAE,oBAAoB,GAS1C;IACC,MAAM,QAAQ,GACZ,IAAI,KAAK,aAAa,IAAI,IAAI,KAAK,WAAW;QAC5C,CAAC,CAAC,EAAE;QACJ,CAAC,CAAC,IAAI,KAAK,cAAc,IAAI,IAAI,KAAK,YAAY;YAChD,CAAC,CAAC,EAAE;YACJ,CAAC,CAAC,IAAI,KAAK,aAAa,IAAI,IAAI,KAAK,WAAW;gBAC9C,CAAC,CAAC,EAAE;gBACJ,CAAC,CAAC,EAAE,CAAC;IACb,MAAM,UAAU,GACd,IAAI,EAAE,QAAQ,CAAC,MAAM,CAAC,CAAC,CAAC,CAAC,KAAK,CAAC,CAAC,CAAC,QAAQ,CAAC;IAE5C,MAAM,SAAS,GAAG,aAAa;QAC7B,CAAC,CAAC;YACE,QAAQ,EAAE,QAAiB;YAC3B,OAAO,EAAE,aAAsB;YAC/B,eAAe,EAAE,aAAa;YAC9B,eAAe,EAAE,UAAmB;SACrC;QACH,CAAC,CAAC,EAAE,CAAC;IAEP,OAAO,CACL,eACE,KAAK,EAAE;YACL,QAAQ;YACR,UAAU;YACV,qEAAqE;YACrE,sEAAsE;YACtE,GAAG,CAAC,KAAK,CAAC,CAAC,CAAC,EAAE,KAAK,EAAE,CAAC,CAAC,CAAC,EAAE,CAAC;YAC3B,GAAG,SAAS;YACZ,GAAG,KAAK;SACT,YAEA,IAAI,GACA,CACR,CAAC;AACJ,CAAC;AAED,gFAAgF;AAEhF,MAAM,UAAU,gBAAgB,CAAC,EAC/B,QAAQ,EACR,OAAO,EACP,KAAK,EACL,QAAQ,EACR,KAAK,GAON;IACC,OAAO,CACL,iBACE,OAAO,EAAE,OAAO,EAChB,QAAQ,EAAE,QAAQ,EAClB,KAAK,EAAE,KAAK,EACZ,KAAK,EAAE;YACL,UAAU,EAAE,MAAM;YAClB,MAAM,EAAE,MAAM;YACd,MAAM,EAAE,QAAQ,CAAC,CAAC,CAAC,SAAS,CAAC,CAAC,CAAC,SAAS;YACxC,OAAO,EAAE,CAAC;YACV,OAAO,EAAE,MAAM;YACf,UAAU,EAAE,QAAQ;YACpB,cAAc,EAAE,QAAQ;YACxB,OAAO,EAAE,QAAQ,CAAC,CAAC,CAAC,GAAG,CAAC,CAAC,CAAC,CAAC;YAC3B,GAAG,KAAK;SACT,YAEA,QAAQ,GACF,CACV,CAAC;AACJ,CAAC;AAED,gFAAgF;AAEhF,MAAM,UAAU,UAAU,CAAC,EACzB,IAAI,EACJ,IAAI,EACJ,KAAK,EACL,KAAK,GAMN;IACC,MAAM,CAAC,GAAG,IAAI,IAAI,EAAE,CAAC;IACrB,OAAO,CACL,cACE,KAAK,EAAE,CAAC,EACR,MAAM,EAAE,CAAC,EACT,OAAO,EAAC,WAAW,EACnB,IAAI,EAAC,MAAM,EACX,MAAM,EAAC,cAAc,EACrB,WAAW,EAAC,GAAG,EACf,aAAa,EAAC,OAAO,EACrB,cAAc,EAAC,OAAO,EACtB,KAAK,EAAE,EAAE,KAAK,EAAE,GAAG,KAAK,EAAE,YAEzB,IAAI,CAAC,GAAG,CAAC,CAAC,CAAC,GAAG,EAAE,KAAK,CAAC,EAAE,CAAC,EAAE,EAAE;YAC5B,MAAM,GAAG,GAAG,GAAkC,CAAC;YAC/C,OAAO,KAAC,GAAG,OAAa,KAAK,IAAZ,CAAC,CAAe,CAAC;QACpC,CAAC,CAAC,GACE,CACP,CAAC;AACJ,CAAC"}
package/package.json CHANGED
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "name": "ugly-app",
3
- "version": "0.1.801",
3
+ "version": "0.1.802",
4
4
  "type": "module",
5
5
  "comment:files": "Allowlist what ships to npm. dist = runtime; src = sourcemap targets (dist/*.js.map reference ../../src/); templates = CLI scaffold. Everything else at repo root (.pgdata local Postgres, coverage, assets/icons sources, test/, test-results/) is excluded by omission. The !negations strip the scaffold's installed deps + cruft (templates/node_modules is 200MB+ and must never ship). package.json/README/LICENSE ship automatically.",
6
6
  "files": [
@@ -1,2 +1,2 @@
1
1
  // Auto-generated by prebuild — do not edit manually
2
- export const CLI_VERSION = "0.1.801";
2
+ export const CLI_VERSION = "0.1.802";
@@ -17,6 +17,7 @@ export { View } from '../../client/components/View.js';
17
17
  export function TextNormal({
18
18
  text,
19
19
  size,
20
+ color,
20
21
  style,
21
22
  numberOfLines,
22
23
  disableLocalization: _disableLocalization,
@@ -54,6 +55,9 @@ export function TextNormal({
54
55
  style={{
55
56
  fontSize,
56
57
  fontWeight,
58
+ // Apply the `color` prop (it was previously declared but dropped, so
59
+ // callers' colors were silently ignored). `style` can still override.
60
+ ...(color ? { color } : {}),
57
61
  ...lineClamp,
58
62
  ...style,
59
63
  }}