velo-text 1.0.1 → 1.0.2

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/CHANGELOG.md CHANGED
@@ -8,6 +8,12 @@ All notable changes follow [Keep a Changelog](https://keepachangelog.com/) and [
8
8
  - CLI `npx velo-text@beta skill` / `pnpx velo-text@beta skill` installs the agent skill into `.cursor/skills` and `.agents/skills`
9
9
  - Four document faces (Velo Sans / Serif / Mono / Display): same TTF in the editor and PDF FontFile2
10
10
 
11
+ ### Changed
12
+ - Toolbar and table chrome wrap instead of nested horizontal scroll
13
+ - Chrome metrics via `--pde-icon-size` / `--pde-control-size` (default 16px / 28px); hosts override on `[data-pde-theme]`
14
+
15
+
16
+
11
17
 
12
18
 
13
19
 
@@ -17,6 +23,10 @@ All notable changes follow [Keep a Changelog](https://keepachangelog.com/) and [
17
23
 
18
24
 
19
25
 
26
+ ## [1.0.2] - 2026-09-02
27
+
28
+ ### Added
29
+ -
20
30
 
21
31
  ## [1.0.1] - 2026-08-31
22
32
 
@@ -132,3 +142,4 @@ First public **beta** on npm (`velo-text@beta`). Treat it as a trial API: layout
132
142
  [1.0.0-beta.8]: https://github.com/velo-text/velo-text/releases/tag/v1.0.0-beta.8
133
143
  [1.0.0]: https://github.com/velo-text/velo-text/releases/tag/v1.0.0
134
144
  [1.0.1]: https://github.com/velo-text/velo-text/releases/tag/v1.0.1
145
+ [1.0.2]: https://github.com/velo-text/velo-text/releases/tag/v1.0.2
package/README.md CHANGED
@@ -1,6 +1,6 @@
1
1
  # velo-text
2
2
 
3
- **1.0.1** — public beta. APIs and export layout can still change. Install with the `beta` tag, not as if it were a stable 1.0.
3
+ **1.0.2** — public beta. APIs and export layout can still change. Install with the `beta` tag, not as if it were a stable 1.0.
4
4
 
5
5
  Portable document editor with variables `{{name}}`, tables, images, LaTeX equations and deterministic export to **PDF, ODT, and DOCX** — **zero runtime dependencies**, TypeScript strict. LibreOffice/Word CI and full visual parity across Office formats are still open.
6
6
 
@@ -13,10 +13,10 @@ Requires **Node >= 18**. Use **pnpm**.
13
13
  ```bash
14
14
  pnpm add velo-text@beta
15
15
  # exact prerelease
16
- pnpm add velo-text@1.0.1
16
+ pnpm add velo-text@1.0.2
17
17
  ```
18
18
 
19
- Do not run `pnpm add velo-text` expecting a stable `latest` until 1.0.1 is published.
19
+ Do not run `pnpm add velo-text` expecting a stable `latest` until 1.0.2 is published.
20
20
 
21
21
  ### Agent skill (any project)
22
22
 
@@ -38,7 +38,7 @@ import "velo-text/themes/components.css";
38
38
 
39
39
  ## Publish / GitHub Actions
40
40
 
41
- Do **not** put an npm token in the repo. Create GitHub secret **`NPM_TOKEN`**, then push tag `v1.0.1`. CI publishes to npm (`beta`) and opens a GitHub Release. Details: [docs/guide/publish.md](docs/guide/publish.md).
41
+ Do **not** put an npm token in the repo. Create GitHub secret **`NPM_TOKEN`**, then push tag `v1.0.2`. CI publishes to npm (`beta`) and opens a GitHub Release. Details: [docs/guide/publish.md](docs/guide/publish.md).
42
42
 
43
43
  ## Quick start
44
44
 
@@ -107,10 +107,10 @@ pnpm run test:visual # HTML snapshots in tests/visual/snapshots
107
107
  pnpm run fuzz -- --iterations=5000
108
108
  pnpm run build # tsc → dist/
109
109
  pnpm docs:dev # VitePress docs + playground at /playground/
110
- pnpm version:set 1.0.1 # bump version (then tag v1.0.1 and push)
110
+ pnpm version:set 1.0.2 # bump version (then tag v1.0.2 and push)
111
111
  ```
112
112
 
113
- Publish is **GitHub Actions only** (push tag `v1.0.1` after setting secret `NPM_TOKEN`).
113
+ Publish is **GitHub Actions only** (push tag `v1.0.2` after setting secret `NPM_TOKEN`).
114
114
 
115
115
  ## Zero dependencies
116
116
 
@@ -21,5 +21,5 @@ export declare function listIconNames(): IconName[];
21
21
  /**
22
22
  * CSS for icons + selection color — icons inherit color, selection uses theme token.
23
23
  */
24
- export declare const iconCss = "\n.pde-icon {\n display: inline-block;\n vertical-align: middle;\n flex-shrink: 0;\n color: var(--pde-icon-color, currentColor);\n pointer-events: none;\n}\n.pde-root::selection {\n background: var(--pde-color-selection, #cbd7ff);\n}\n.pde-toolbar button:hover .pde-icon,\n.pde-toolbar button[aria-pressed=\"true\"] .pde-icon {\n color: var(--pde-color-primary, #3659e3);\n}\n.pde-toolbar button:disabled .pde-icon {\n color: var(--pde-color-muted, #667085);\n opacity: 0.5;\n}\n";
24
+ export declare const iconCss = "\n.pde-icon {\n display: inline-block;\n vertical-align: middle;\n flex-shrink: 0;\n width: var(--pde-icon-size, 16px);\n height: var(--pde-icon-size, 16px);\n color: var(--pde-icon-color, currentColor);\n pointer-events: none;\n}\n.pde-root::selection {\n background: var(--pde-color-selection, #cbd7ff);\n}\n.pde-toolbar button:hover .pde-icon,\n.pde-toolbar button[aria-pressed=\"true\"] .pde-icon {\n color: var(--pde-color-primary, #3659e3);\n}\n.pde-toolbar button:disabled .pde-icon {\n color: var(--pde-color-muted, #667085);\n opacity: 0.5;\n}\n";
25
25
  //# sourceMappingURL=index.d.ts.map
@@ -1 +1 @@
1
- {"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../../../src/assets/icons/index.ts"],"names":[],"mappings":"AAAA;;;;GAIG;AAEH,MAAM,MAAM,QAAQ,GAChB,MAAM,GACN,QAAQ,GACR,WAAW,GACX,eAAe,GACf,MAAM,GACN,UAAU,GACV,UAAU,GACV,UAAU,GACV,eAAe,GACf,aAAa,GACb,OAAO,GACP,MAAM,GACN,OAAO,GACP,WAAW,GACX,OAAO,GACP,UAAU,GACV,UAAU,GACV,WAAW,GACX,aAAa,GACb,YAAY,GACZ,cAAc,GACd,OAAO,GACP,OAAO,GACP,aAAa,GACb,OAAO,GACP,YAAY,GACZ,cAAc,GACd,MAAM,GACN,OAAO,GACP,aAAa,GACb,aAAa,GACb,cAAc,GACd,SAAS,GACT,UAAU,GACV,SAAS,GACT,MAAM,GACN,MAAM,GACN,UAAU,GACV,OAAO,GACP,eAAe,GACf,gBAAgB,GAChB,gBAAgB,GAChB,gBAAgB,GAChB,WAAW,GACX,WAAW,GACX,aAAa,GACb,YAAY,GACZ,WAAW,GACX,UAAU,GACV,aAAa,GACb,aAAa,GACb,QAAQ,GACR,UAAU,GACV,WAAW,GACX,OAAO,GACP,gBAAgB,GAChB,OAAO,CAAC;AAEZ,MAAM,WAAW,WAAW;IAC1B,IAAI,CAAC,EAAE,MAAM,CAAC;IACd,KAAK,CAAC,EAAE,MAAM,CAAC;IACf,SAAS,CAAC,EAAE,MAAM,CAAC;IACnB,KAAK,CAAC,EAAE,MAAM,CAAC;IACf,WAAW,CAAC,EAAE,MAAM,CAAC;CACtB;AAgED;;;GAGG;AACH,wBAAgB,UAAU,CAAC,IAAI,EAAE,QAAQ,EAAE,IAAI,GAAE,WAAgB,GAAG,MAAM,CASzE;AAED,wBAAgB,WAAW,CAAC,IAAI,GAAE,WAAgB,GAAG,MAAM,CAAC,QAAQ,EAAE,MAAM,CAAC,CAI5E;AAED,wBAAgB,aAAa,IAAI,QAAQ,EAAE,CAE1C;AAED;;GAEG;AACH,eAAO,MAAM,OAAO,6eAmBnB,CAAC"}
1
+ {"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../../../src/assets/icons/index.ts"],"names":[],"mappings":"AAAA;;;;GAIG;AAEH,MAAM,MAAM,QAAQ,GAChB,MAAM,GACN,QAAQ,GACR,WAAW,GACX,eAAe,GACf,MAAM,GACN,UAAU,GACV,UAAU,GACV,UAAU,GACV,eAAe,GACf,aAAa,GACb,OAAO,GACP,MAAM,GACN,OAAO,GACP,WAAW,GACX,OAAO,GACP,UAAU,GACV,UAAU,GACV,WAAW,GACX,aAAa,GACb,YAAY,GACZ,cAAc,GACd,OAAO,GACP,OAAO,GACP,aAAa,GACb,OAAO,GACP,YAAY,GACZ,cAAc,GACd,MAAM,GACN,OAAO,GACP,aAAa,GACb,aAAa,GACb,cAAc,GACd,SAAS,GACT,UAAU,GACV,SAAS,GACT,MAAM,GACN,MAAM,GACN,UAAU,GACV,OAAO,GACP,eAAe,GACf,gBAAgB,GAChB,gBAAgB,GAChB,gBAAgB,GAChB,WAAW,GACX,WAAW,GACX,aAAa,GACb,YAAY,GACZ,WAAW,GACX,UAAU,GACV,aAAa,GACb,aAAa,GACb,QAAQ,GACR,UAAU,GACV,WAAW,GACX,OAAO,GACP,gBAAgB,GAChB,OAAO,CAAC;AAEZ,MAAM,WAAW,WAAW;IAC1B,IAAI,CAAC,EAAE,MAAM,CAAC;IACd,KAAK,CAAC,EAAE,MAAM,CAAC;IACf,SAAS,CAAC,EAAE,MAAM,CAAC;IACnB,KAAK,CAAC,EAAE,MAAM,CAAC;IACf,WAAW,CAAC,EAAE,MAAM,CAAC;CACtB;AAgED;;;GAGG;AACH,wBAAgB,UAAU,CAAC,IAAI,EAAE,QAAQ,EAAE,IAAI,GAAE,WAAgB,GAAG,MAAM,CASzE;AAED,wBAAgB,WAAW,CAAC,IAAI,GAAE,WAAgB,GAAG,MAAM,CAAC,QAAQ,EAAE,MAAM,CAAC,CAI5E;AAED,wBAAgB,aAAa,IAAI,QAAQ,EAAE,CAE1C;AAED;;GAEG;AACH,eAAO,MAAM,OAAO,0jBAqBnB,CAAC"}
@@ -71,7 +71,7 @@ export function getIconSvg(name, opts = {}) {
71
71
  const inner = ICONS[name];
72
72
  if (!inner)
73
73
  throw new Error(`Unknown icon: ${name}`);
74
- const size = opts.size ?? 18;
74
+ const size = opts.size ?? 16;
75
75
  const color = opts.color ?? "currentColor";
76
76
  const strokeWidth = opts.strokeWidth ?? 2;
77
77
  const klass = ["pde-icon", `pde-icon--${name}`, opts.className].filter(Boolean).join(" ");
@@ -95,6 +95,8 @@ export const iconCss = `
95
95
  display: inline-block;
96
96
  vertical-align: middle;
97
97
  flex-shrink: 0;
98
+ width: var(--pde-icon-size, 16px);
99
+ height: var(--pde-icon-size, 16px);
98
100
  color: var(--pde-icon-color, currentColor);
99
101
  pointer-events: none;
100
102
  }
@@ -1 +1 @@
1
- {"version":3,"file":"index.js","sourceRoot":"","sources":["../../../src/assets/icons/index.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"index.js","sourceRoot":"","sources":["../../../src/assets/icons/index.ts"],"names":[],"mappings":"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"}
package/package.json CHANGED
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "name": "velo-text",
3
- "version": "1.0.1",
3
+ "version": "1.0.2",
4
4
  "description": "Editor documental portable con variables, imágenes y exportación PDF/ODT/DOCX — cero dependencias runtime (beta)",
5
5
  "type": "module",
6
6
  "license": "MIT",
package/skill/editor.md CHANGED
@@ -34,7 +34,7 @@ SSR/Astro: `renderDocumentToHtml` / `renderBlocksToHtml` at build; hydrate edito
34
34
 
35
35
  Document fonts: `DOCUMENT_FONTS` (`Velo Sans`, `Velo Serif`, `Velo Mono`, `Velo Display`). `setFontFamily` writes those names; PDF embeds the same TTF.
36
36
 
37
- Toolbar buttons: `preventDefault` on `mousedown` (keep caret, including in cells).
37
+ Toolbar buttons: `preventDefault` on `mousedown` (keep caret, including in cells). Toolbar and table/column bars wrap; size via `--pde-icon-size` / `--pde-control-size`.
38
38
 
39
39
  ## DOM / input
40
40
 
package/skill/themes.md CHANGED
@@ -7,6 +7,8 @@ Tokens only — no color literals outside theme CSS.
7
7
  --pde-color-bg: #ffffff;
8
8
  --pde-color-primary: /* override */;
9
9
  --pde-icon-color: currentColor;
10
+ --pde-icon-size: 16px;
11
+ --pde-control-size: 28px;
10
12
  }
11
13
  ```
12
14
 
@@ -2,6 +2,12 @@
2
2
  @import "./editor-overlays.css";
3
3
  @import "./editor-columns.css";
4
4
 
5
+ /* Chrome metrics — override on the host (`data-pde-theme` / `.pde-host`). */
6
+ [data-pde-theme] {
7
+ --pde-icon-size: 16px;
8
+ --pde-control-size: 28px;
9
+ }
10
+
5
11
  [data-pde-theme="light-neutral"] {
6
12
  --pde-color-bg: #ffffff;
7
13
  --pde-color-surface: #f7f8fa;
@@ -120,6 +126,8 @@
120
126
  display: inline-block;
121
127
  vertical-align: middle;
122
128
  flex-shrink: 0;
129
+ width: var(--pde-icon-size, 16px);
130
+ height: var(--pde-icon-size, 16px);
123
131
  color: var(--pde-icon-color, currentColor);
124
132
  }
125
133
  .pde-toolbar .pde-icon {
@@ -111,13 +111,13 @@
111
111
  position: absolute;
112
112
  z-index: 28;
113
113
  display: flex;
114
- flex-wrap: nowrap;
114
+ flex-wrap: wrap;
115
115
  align-items: center;
116
116
  gap: 2px;
117
117
  padding: 4px;
118
118
  width: max-content;
119
- max-width: 100%;
120
- overflow-x: auto;
119
+ max-width: min(100%, 28rem);
120
+ overflow: visible;
121
121
  border: 1px solid var(--pde-color-border);
122
122
  background: var(--pde-color-surface);
123
123
  border-radius: var(--pde-radius-md);
@@ -126,8 +126,8 @@
126
126
  font-family: var(--pde-font-ui);
127
127
  }
128
128
  .pde-table-bar button {
129
- min-width: 28px;
130
- height: 28px;
129
+ min-width: var(--pde-control-size, 28px);
130
+ height: var(--pde-control-size, 28px);
131
131
  display: inline-flex;
132
132
  align-items: center;
133
133
  justify-content: center;
@@ -158,6 +158,7 @@
158
158
  padding: 8px;
159
159
  margin: 0 auto 16px;
160
160
  max-width: 860px;
161
+ overflow: visible;
161
162
  background: var(--pde-color-surface);
162
163
  border: 1px solid var(--pde-color-border);
163
164
  border-radius: var(--pde-radius-md);
@@ -165,6 +166,8 @@
165
166
  }
166
167
  .pde-toolbar-group {
167
168
  display: flex;
169
+ flex-wrap: wrap;
170
+ align-items: center;
168
171
  gap: 2px;
169
172
  padding: 0 6px;
170
173
  border-right: 1px solid var(--pde-color-border);
@@ -174,8 +177,8 @@
174
177
  display: inline-flex;
175
178
  align-items: center;
176
179
  justify-content: center;
177
- width: 32px;
178
- height: 32px;
180
+ width: var(--pde-control-size, 28px);
181
+ height: var(--pde-control-size, 28px);
179
182
  border: none;
180
183
  border-radius: var(--pde-radius-sm);
181
184
  background: none;
@@ -280,8 +283,8 @@
280
283
  max-width: min(100%, 360px);
281
284
  }
282
285
  .pde-sel-bubble button {
283
- min-width: 28px;
284
- height: 28px;
286
+ min-width: var(--pde-control-size, 28px);
287
+ height: var(--pde-control-size, 28px);
285
288
  display: inline-flex;
286
289
  align-items: center;
287
290
  justify-content: center;