@yuneta/gobj-ui 5.0.0 → 5.1.0

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
@@ -65,17 +65,23 @@ consumers. They are independent snapshots (no shared git ancestry):
65
65
 
66
66
  | Line | Branch | Tag | Layout | Consumed by | How | Status |
67
67
  |------|--------|-----|--------|-------------|-----|--------|
68
- | **v2** | `main` | `2.0.0`+ | `src/` subdir | **wattyzer**, **gui_agent**, **gui_treedb** | local `file:` dep on the yunetas submodule | active development |
68
+ | **v2** | `main` | `2.0.0`+ | `src/` subdir | **gui_agent**, **gui_treedb** | local `file:` dep on the yunetas submodule | active development |
69
+ | **v2** | `main` | `2.0.0`+ | `src/` subdir | **wattyzer** | published npm `@yuneta/gobj-ui@^5.0.0` (dist-tag `latest`) | active development |
69
70
  | **v1** | `v1` | `1.0.1` | `src/` subdir | **estadodelaire**, **hidraulia** | published npm `@yuneta/gobj-ui@^1.0.1` (dist-tag `legacy`) | frozen, maintenance-only |
70
71
 
71
72
  - **v2 / `main`** is the active development line: the declarative shell
72
73
  (legacy-stack-free since `3.0.0`). It is embedded as a git submodule in **yunetas** at
73
- `kernel/js/gobj-ui`, and **wattyzer** plus the in-repo JS yunos
74
+ `kernel/js/gobj-ui`, and the in-repo JS yunos
74
75
  (**`yunos/js/gui_agent`**, **`yunos/js/gui_treedb`**) consume that checkout as a
75
- `file:` dependency (`@yuneta/gobj-ui` → `../../../kernel/js/gobj-ui` from a
76
- yuno; `../../../yunetas/kernel/js/gobj-ui` from wattyzer), importing by package
77
- specifier (`@yuneta/gobj-ui/src/*.js`, exports map `"./src/*"`; the `index.js`
78
- barrel and the vite plugin stay at the package root).
76
+ `file:` dependency (`@yuneta/gobj-ui` → `../../../kernel/js/gobj-ui`), importing
77
+ by package specifier (`@yuneta/gobj-ui/src/*.js`, exports map `"./src/*"`; the
78
+ `index.js` barrel and the vite plugin stay at the package root).
79
+ **wattyzer takes the same line from the registry** (since 2026-07-25): the
80
+ published tarball ships `src/`, `index.js` and the vite plugin, so the import
81
+ specifiers are identical — but library work only reaches it after a
82
+ `npm publish` and a range bump on its side. Two consequences worth knowing:
83
+ a fix cannot be validated in wattyzer before it is released, and wattyzer is
84
+ the consumer that proves the **tarball** is complete, not just the checkout.
79
85
  - **v1 / `v1`** is the frozen legacy-only stack (the declarative shell is not on
80
86
  this line). It is **published to npm**; estadodelaire and hidraulia depend on
81
87
  `@yuneta/gobj-ui@^1.0.0` from the registry. Land only maintenance fixes here,
@@ -86,10 +92,13 @@ All new feature work lands on `main`/v2.
86
92
  ## Usage
87
93
 
88
94
  ```bash
89
- # v2 (active): clone yunetas with submodules; wattyzer picks it up via file:
95
+ # v2 (active): clone yunetas with submodules; the in-repo yunos pick it up via file:
90
96
  git clone --recurse-submodules <yunetas>
91
97
  git submodule update --init kernel/js/gobj-ui # yunetas tracks main/v2
92
98
 
99
+ # v2 from the registry (wattyzer, and any out-of-tree consumer)
100
+ npm install @yuneta/gobj-ui@^5.0.0
101
+
93
102
  # v1 (frozen): consumers just install the published package
94
103
  npm install @yuneta/gobj-ui@^1.0.0
95
104
  ```
@@ -107,8 +116,9 @@ npm test # vitest (v2/main only; v1 has no test target)
107
116
  ```
108
117
 
109
118
  `dist/` is gitignored. v1 consumers get `dist/` from the **published** npm
110
- tarball; v2 (wattyzer) imports source files by specifier. Rebuild `dist/` to
111
- validate and before publishing a v1 release.
119
+ tarball; v2 consumers import source files by specifier, whether they resolve
120
+ them from the checkout or from the tarball's `src/`. Rebuild `dist/` to
121
+ validate and before publishing a release.
112
122
 
113
123
  ## Components
114
124
 
package/package.json CHANGED
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "name": "@yuneta/gobj-ui",
3
- "version": "5.0.0",
3
+ "version": "5.1.0",
4
4
  "type": "module",
5
5
  "main": "dist/gobj-ui.cjs.js",
6
6
  "module": "dist/gobj-ui.es.js",
package/src/tabulator.css CHANGED
@@ -176,6 +176,34 @@
176
176
  color: var(--bulma-text) !important;
177
177
  }
178
178
 
179
+ /* ====================================================================
180
+ * The CELL EDITOR — typography and box, in EVERY theme.
181
+ *
182
+ * Tabulator hands the editor a bare <input>, and a bare form control does
183
+ * not inherit typography: the browser gives it its own default (13.33px
184
+ * Arial), so the value visibly SHRINKS and changes face the moment the cell
185
+ * enters edit mode. The theme also drops the editing cell's padding
186
+ * (`.tabulator-editing {padding: 0}`) and the control brings its own, so
187
+ * the text jumps sideways too. Inherit the font and restore the cell's 4px
188
+ * so entering edit mode changes nothing but the caret.
189
+ * ==================================================================== */
190
+ .tabulator-row .tabulator-cell.tabulator-editing input,
191
+ .tabulator-row .tabulator-cell.tabulator-editing select,
192
+ .tabulator-row .tabulator-cell.tabulator-editing textarea,
193
+ .tabulator .tabulator-header .tabulator-header-filter input,
194
+ .tabulator .tabulator-header .tabulator-header-filter select {
195
+ font-family: inherit;
196
+ font-size: inherit;
197
+ box-sizing: border-box;
198
+ width: 100%;
199
+ padding: 0 4px;
200
+ }
201
+
202
+ .tabulator-row .tabulator-cell.tabulator-editing input,
203
+ .tabulator-row .tabulator-cell.tabulator-editing select {
204
+ height: 100%;
205
+ }
206
+
179
207
  /*
180
208
  * The CELL EDITOR in dark theme.
181
209
  *
@@ -183,16 +211,22 @@
183
211
  * browser default: BLACK text on the dark cell — the value disappears the
184
212
  * moment you click into it, and comes back when the field loses focus. Same
185
213
  * for a header-filter input and for a <select>.
214
+ *
215
+ * `--bulma-body-color` is the DIMMED body text; on the near-black editor
216
+ * wash it reads washed out just when the eye needs it most (you are typing
217
+ * into it). The editing state gets `--bulma-text-strong` plus a wash one
218
+ * step lighter than the row and a link-coloured border, so the open field
219
+ * is the brightest thing in the table.
186
220
  */
187
221
  [data-theme=dark] .tabulator-row .tabulator-cell.tabulator-editing input,
188
222
  [data-theme=dark] .tabulator-row .tabulator-cell.tabulator-editing select,
189
223
  [data-theme=dark] .tabulator-row .tabulator-cell.tabulator-editing textarea,
190
224
  [data-theme=dark] .tabulator .tabulator-header .tabulator-header-filter input,
191
225
  [data-theme=dark] .tabulator .tabulator-header .tabulator-header-filter select {
192
- background-color: var(--bulma-scheme-main, #16181d);
193
- color: var(--bulma-body-color, #e6e6e6) !important;
194
- caret-color: var(--bulma-body-color, #e6e6e6);
195
- border-color: var(--bulma-border);
226
+ background-color: var(--bulma-grey-darker, #2b2f38);
227
+ color: var(--bulma-text-strong, #f5f6f7) !important;
228
+ caret-color: var(--bulma-text-strong, #f5f6f7);
229
+ border-color: var(--bulma-link, #4a9eff);
196
230
  }
197
231
 
198
232
  [data-theme=dark] .tabulator-row .tabulator-cell.tabulator-editing input::placeholder,
@@ -276,6 +310,21 @@
276
310
  background-color: var(--bulma-background) !important;
277
311
  color: var(--bulma-body-color) !important;
278
312
  }
313
+ /* same editor fix as [data-theme=dark] above */
314
+ [data-theme=system] .tabulator-row .tabulator-cell.tabulator-editing input,
315
+ [data-theme=system] .tabulator-row .tabulator-cell.tabulator-editing select,
316
+ [data-theme=system] .tabulator-row .tabulator-cell.tabulator-editing textarea,
317
+ [data-theme=system] .tabulator .tabulator-header .tabulator-header-filter input,
318
+ [data-theme=system] .tabulator .tabulator-header .tabulator-header-filter select {
319
+ background-color: var(--bulma-grey-darker, #2b2f38);
320
+ color: var(--bulma-text-strong, #f5f6f7) !important;
321
+ caret-color: var(--bulma-text-strong, #f5f6f7);
322
+ border-color: var(--bulma-link, #4a9eff);
323
+ }
324
+ [data-theme=system] .tabulator-row .tabulator-cell.tabulator-editing input::placeholder,
325
+ [data-theme=system] .tabulator .tabulator-header .tabulator-header-filter input::placeholder {
326
+ color: var(--bulma-text-weak, #8a8f98);
327
+ }
279
328
  [data-theme=system] .tabulator-row.tabulator-selected {
280
329
  background-color: var(--bulma-link) !important;
281
330
  color: var(--bulma-link-invert) !important;
package/src/yui_icons.css CHANGED
@@ -286,7 +286,12 @@
286
286
  mask-image: url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 640 512'%3E%3Cpath d='M579.8 267.7c56.5-56.5 56.5-148 0-204.5c-50-50-128.8-56.5-186.3-15.4l-1.6 1.1c-14.4 10.3-17.7 30.3-7.4 44.6s30.3 17.7 44.6 7.4l1.6-1.1c32.1-22.9 76-19.3 103.8 8.6c31.5 31.5 31.5 82.5 0 114L422.3 334.8c-31.5 31.5-82.5 31.5-114 0c-27.9-27.9-31.5-71.8-8.6-103.8l1.1-1.6c10.3-14.4 6.9-34.4-7.4-44.6s-34.4-6.9-44.6 7.4l-1.1 1.6C206.5 251.2 213 330 263 380c56.5 56.5 148 56.5 204.5 0L579.8 267.7zM60.2 244.3c-56.5 56.5-56.5 148 0 204.5c50 50 128.8 56.5 186.3 15.4l1.6-1.1c14.4-10.3 17.7-30.3 7.4-44.6s-30.3-17.7-44.6-7.4l-1.6 1.1c-32.1 22.9-76 19.3-103.8-8.6C74 372 74 321 105.5 289.5L217.7 177.2c31.5-31.5 82.5-31.5 114 0c27.9 27.9 31.5 71.8 8.6 103.9l-1.1 1.6c-10.3 14.4-6.9 34.4 7.4 44.6s34.4 6.9 44.6-7.4l1.1-1.6C433.5 260.8 427 182 377 132c-56.5-56.5-148-56.5-204.5 0L60.2 244.3z'/%3E%3C/svg%3E");
287
287
  }
288
288
 
289
- /* --- Date navigator (C_YUI_PERIOD) --- */
289
+ /* --- Chevrons: date navigator (C_YUI_PERIOD), disclosure triangles --- */
290
+ .yi-chevron-down::before {
291
+ -webkit-mask-image: url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 512 512'%3E%3Cpath d='M233.4 406.6c12.5 12.5 32.8 12.5 45.3 0l192-192c12.5-12.5 12.5-32.8 0-45.3s-32.8-12.5-45.3 0L256 338.7 86.6 169.4c-12.5-12.5-32.8-12.5-45.3 0s-12.5 32.8 0 45.3l192 192z'/%3E%3C/svg%3E");
292
+ mask-image: url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 512 512'%3E%3Cpath d='M233.4 406.6c12.5 12.5 32.8 12.5 45.3 0l192-192c12.5-12.5 12.5-32.8 0-45.3s-32.8-12.5-45.3 0L256 338.7 86.6 169.4c-12.5-12.5-32.8-12.5-45.3 0s-12.5 32.8 0 45.3l192 192z'/%3E%3C/svg%3E");
293
+ }
294
+
290
295
  .yi-chevron-left::before {
291
296
  -webkit-mask-image: url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 320 512'%3E%3Cpath d='M9.4 233.4c-12.5 12.5-12.5 32.8 0 45.3l192 192c12.5 12.5 32.8 12.5 45.3 0s12.5-32.8 0-45.3L77.3 256 246.6 86.6c12.5-12.5 12.5-32.8 0-45.3s-32.8-12.5-45.3 0l-192 192z'/%3E%3C/svg%3E");
292
297
  mask-image: url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 320 512'%3E%3Cpath d='M9.4 233.4c-12.5 12.5-12.5 32.8 0 45.3l192 192c12.5 12.5 32.8 12.5 45.3 0s12.5-32.8 0-45.3L77.3 256 246.6 86.6c12.5-12.5 12.5-32.8 0-45.3s-32.8-12.5-45.3 0l-192 192z'/%3E%3C/svg%3E");
@@ -297,6 +302,11 @@
297
302
  mask-image: url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 320 512'%3E%3Cpath d='M310.6 233.4c12.5 12.5 12.5 32.8 0 45.3l-192 192c-12.5 12.5-32.8 12.5-45.3 0s-12.5-32.8 0-45.3L242.7 256 73.4 86.6c-12.5-12.5-12.5-32.8 0-45.3s32.8-12.5 45.3 0l192 192z'/%3E%3C/svg%3E");
298
303
  }
299
304
 
305
+ .yi-chevron-up::before {
306
+ -webkit-mask-image: url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 512 512'%3E%3Cpath d='M233.4 105.4c12.5-12.5 32.8-12.5 45.3 0l192 192c12.5 12.5 12.5 32.8 0 45.3s-32.8 12.5-45.3 0L256 173.3 86.6 342.6c-12.5 12.5-32.8 12.5-45.3 0s-12.5-32.8 0-45.3l192-192z'/%3E%3C/svg%3E");
307
+ mask-image: url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 512 512'%3E%3Cpath d='M233.4 105.4c12.5-12.5 32.8-12.5 45.3 0l192 192c12.5 12.5 12.5 32.8 0 45.3s-32.8 12.5-45.3 0L256 173.3 86.6 342.6c-12.5 12.5-32.8 12.5-45.3 0s-12.5-32.8 0-45.3l192-192z'/%3E%3C/svg%3E");
308
+ }
309
+
300
310
  .yi-forward-step::before {
301
311
  -webkit-mask-image: url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 320 512'%3E%3Cpath d='M52.5 440.6c-9.5 7.9-22.8 9.7-34.1 4.4S0 428.4 0 416L0 96C0 83.6 7.2 72.3 18.4 67s24.5-3.6 34.1 4.4l192 160L256 241l0-145c0-17.7 14.3-32 32-32s32 14.3 32 32l0 320c0 17.7-14.3 32-32 32s-32-14.3-32-32l0-145-11.5 9.6-192 160z'/%3E%3C/svg%3E");
302
312
  mask-image: url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 320 512'%3E%3Cpath d='M52.5 440.6c-9.5 7.9-22.8 9.7-34.1 4.4S0 428.4 0 416L0 96C0 83.6 7.2 72.3 18.4 67s24.5-3.6 34.1 4.4l192 160L256 241l0-145c0-17.7 14.3-32 32-32s32 14.3 32 32l0 320c0 17.7-14.3 32-32 32s-32-14.3-32-32l0-145-11.5 9.6-192 160z'/%3E%3C/svg%3E");