glib-web 5.0.8 → 5.0.10

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/app.scss CHANGED
@@ -169,4 +169,17 @@
169
169
  text-align: center;
170
170
  }
171
171
  }
172
- }
172
+ }
173
+
174
+ // A checkbox whose label carries a tooltip gets a "hover me for more info"
175
+ // affordance (dotted underline + help cursor). Scoped to `.has-tooltip` so plain
176
+ // checkboxes — the vast majority — render with no decoration. The marker class is
177
+ // emitted by `$classes()` whenever the spec has a `tooltip`.
178
+ .fields-check.has-tooltip {
179
+ .v-label {
180
+ text-decoration: underline;
181
+ text-decoration-style: dotted;
182
+ text-underline-offset: 0.15em;
183
+ cursor: help;
184
+ }
185
+ }
@@ -7,7 +7,7 @@
7
7
  :suffix="spec.rightText" :min="spec.min" :max="spec.max" :autofocus="spec.autoFocus || false" validate-on="blur"
8
8
  :variant="variant" persistent-placeholder :clearable="spec.clearable" :rounded="spec.rounded"
9
9
  :autocomplete="spec.autocomplete" @click:appendInner="onRightIconClick" @input="onChange"
10
- @keyup="$onTyping({ duration: 2000 })" @wheel.prevent />
10
+ @keyup="$onTyping({ duration: 2000 })" @wheel="onWheel" />
11
11
  </div>
12
12
  </template>
13
13
 
@@ -131,6 +131,17 @@ export default {
131
131
  action_focus() {
132
132
  this.$refs.field.focus();
133
133
  },
134
+ onWheel() {
135
+ // Only number inputs change their value on wheel scroll, and only while
136
+ // focused. Blur the focused number input so the value stays put while the
137
+ // wheel event still bubbles up and scrolls the page. All other field types
138
+ // (and unfocused number fields) are left untouched so the page can scroll.
139
+ if (this.config.type !== "number") return;
140
+ const input = this.$refs.field?.$el?.querySelector("input");
141
+ if (input && document.activeElement === input) {
142
+ input.blur();
143
+ }
144
+ },
134
145
  onChange: eventFiltering.debounce(function () {
135
146
  this.$executeOnChange();
136
147
  }, 300),
@@ -301,6 +301,14 @@ export default {
301
301
  classes.push("glib-clickable")
302
302
  );
303
303
 
304
+ // Marker for elements that carry a tooltip. The tooltip itself is wired up
305
+ // via JS hover/click listeners and leaves no other trace in the DOM, so this
306
+ // class is the only hook consumers have to style a "this has a tooltip"
307
+ // affordance (e.g. a dotted underline) scoped to elements that actually have one.
308
+ Utils.type.ifObject(properties.tooltip, () =>
309
+ classes.push("has-tooltip")
310
+ );
311
+
304
312
  // if (properties.readOnly) {
305
313
  // classes.push("glib-input-disabled");
306
314
  // }
package/package.json CHANGED
@@ -1,7 +1,7 @@
1
1
  {
2
2
  "type": "module",
3
3
  "name": "glib-web",
4
- "version": "5.0.8",
4
+ "version": "5.0.10",
5
5
  "description": "",
6
6
  "main": "index.js",
7
7
  "scripts": {
@@ -1,42 +0,0 @@
1
- {
2
- "permissions": {
3
- "allow": [
4
- "Read(//home/hgani/workspace/glib-web/app/views/json_ui/garage/**)",
5
- "Read(//home/hgani/workspace/glib-web-npm/doc/garage/**)",
6
- "Read(//home/hgani/workspace/glib-web-npm/doc/common/**)",
7
- "Bash(find:*)",
8
- "Bash(npx cypress run:*)",
9
- "Read(//home/hgani/workspace/glib-web/**)",
10
- "Bash(curl:*)",
11
- "Bash(pkill:*)",
12
- "Bash(gh pr list:*)",
13
- "WebSearch",
14
- "WebFetch(domain:vuetifyjs.com)",
15
- "Bash(lsof:*)",
16
- "Bash(readlink:*)",
17
- "WebFetch(domain:github.com)",
18
- "Bash(npm run dev)",
19
- "Bash(npm run)",
20
- "Bash(npx eslint:*)",
21
- "Bash(npm install:*)",
22
- "Bash(yarn lint:*)",
23
- "Bash(bin/rails db:migrate:*)",
24
- "Bash(bin/rails server:*)",
25
- "Bash(dpkg -S:*)",
26
- "Bash(source:*)",
27
- "Bash(node --version:*)",
28
- "Bash(nvm ls:*)",
29
- "Bash(nvm use:*)",
30
- "Bash(git -C /home/hgani/workspace/glib-web-npm diff --cached --stat)",
31
- "Bash(git -C /home/hgani/workspace/glib-web-npm diff --stat)",
32
- "Bash(git *)",
33
- "Bash(npm whoami *)",
34
- "Bash(npm view *)",
35
- "Bash(python3 -c \"import sys,json; d=json.load\\(sys.stdin\\); [print\\(k,v\\) for k,v in list\\(d.items\\(\\)\\)[-12:]]\")",
36
- "Bash(python3 -c \"import json; d=json.load\\(open\\('package.json'\\)\\); print\\('scripts:', json.dumps\\(d.get\\('scripts',{}\\), indent=2\\)\\); print\\('files:', d.get\\('files'\\)\\); print\\('main:', d.get\\('main'\\)\\); print\\('private:', d.get\\('private'\\)\\)\")",
37
- "Bash(npm publish *)"
38
- ],
39
- "deny": [],
40
- "ask": []
41
- }
42
- }